how to write any programme in fedora 38 desktop without using any software like “fortran” ?
I am not sure I understand the question. You can certainly write software without using fortran. In fact, most programs are not written in fortran.
However, you would have to use some type of software development language or tools.
i want to know how the first software is written when there was no software available … no compiler…?
More precisely how to write a programme without any software…i search the internet there is only story not the solution ?
Before high level programming languages, people used assembly language. Assembly is something like a readable form of the low level instructions.
Lower level than that is working in raw machine code.
The software is written out on paper as a list of numbers.
Then the numbers are loaded into memory for example by using buttons on the computer.
Once the numbers are in memory the CPU is started running.
Often you would load a short sequence of numbers that are a bootstrap
that allows a larger program to be loaded from a device, paper taper reader,
magnetic tape or disk.
For example tgat is how to start a pdp-11, see the picture PDP-11 - Wikipedia that shows the dec tapes and toggle switches needed to boot up the os.
An other link:
This reminded me how when I was a Junior Support Engineer at a hosting provider we had an argument about what customers can or can not do on the shared hosting plan (the one where you don’t have root access to machine, only ssh as a user).
And I made a bet that I will be able to run Haskell compiler there. “I’ll just build it from sources” - I said.
And then I got the sources and the README included in them said:
To build the ghc sources run
In the end I was able to bootstrap it from another machine and won the bet. But that was mind-blowing:
“to build a Haskell compiler run a Haskell compiler”
The origin of higher level programming languages is a fun topic, indeed.
When I worked at DEC a team wrote a pearl compiler (not perl) and they
wrote it in pearl. To boot strap they hand compiled the code in pdp-11 macro assembler. After that it was self hosted.
This makes you think about the definition of ‘sources’.
You expect that the source file is something which gives you enough information to rebuild the thing.
But in this case compiler sources are not really self contained. If you lose compiler binaries, you won’t be able to recover them from sources.
The debian(?) project to have fully reproducible builds of gcc compilers faced this issue I recall.
And that is what makes the The Ken Thompson Hack possible.
how cant i get the whole project of whole machine codes…
The whole project of what machine codes? To be clear, it would be highly impractical to write an actual application in machine code. You would need a tremendous amount of both knowledge and patience to do this.
Can you explain what you are trying to achieve with these questions?
If you want to dive into this, start with an Arduino. You can easily view the machine code for a simple program, like to blink an LED. You will see that the machine code for even a simple program can be fairly complex on a modern CPU, but no so complex that it can’t be programmed (with effort) by hand with individual CPU instructions.
Of course the Ardunio machine code itself has to get into the CPU in the first place. That is what the bootloader is for. Understanding how the bootloader works is interesting all by itself.
More fun facts! When a programming language can be used to write the compiler for that language, it is said to be “self-hosting”. We say the same about Fedora Linux in a wider sense — our OS is made using… Fedora Linux.
They’re processor dependant
Guix perhaps. They’re down to 357 bytes of binary code, everything else is boot strapped in stages from this
In 2020 their bootstrap seed got reduced to 25%
And in 2019 to 50% Guix Reduces Bootstrap Seed by 50% — 2019 — Blog — GNU Guix
While CentOS Stream is not fully self-hosting using the public repos
I really like GuixSD. I find the declarative method of system setup/build to be excellent. With the advent of the system containers that accept the standard directory layout, it is quite fun developing software with.