Page 1 of 1
Tools used in commercial operating systems
Posted: Sat Aug 25, 2007 12:37 am
by MCC
I was just curious as to what tools were used in the development of Windows, Mac OS, Unix and the like etc?
Because most of the assemblers and compilers we use today run on these operating systems, so how were these OS's made in the first place?
Posted: Sat Aug 25, 2007 12:47 am
by Zacariaz
as far as i know the first version of dos was hardcoded, with all the binary instryctions and so on. Its a tough job, but its definently possible...
Posted: Sat Aug 25, 2007 4:01 am
by Brynet-Inc
Zacariaz wrote:as far as i know the first version of dos was hardcoded, with all the binary instryctions and so on. Its a tough job, but its definently possible...
That's just silly, Intel introducing their new architecture to the market would of most definitely distributed documentation and "cross-assemblers"...
If for some reason Intel never did do this, People targeting the new architecture would have created their own cross-assembler, possibly in some high level language.. but I highly doubt anyone would write an OS in pure hexadecimal opcodes! (
Some earlier systems loaded operating systems from "paper tape" readers though..)
When UNIX was being ported to different architectures, cross-compilers were obviously coded.. initially UNIX was written in assembly for a specific architecture.. later it was re-written in C for greater portability..
So basically, Software is often written and compiled on a predecessor of the new OS/architecture.. but technically, you can design an OS on any type of platform.. (
Although it would be easier using a system that shares the same type of removable disk drive..)
Posted: Sat Aug 25, 2007 4:17 am
by Solar
Remember that DOS wasn't something Intel, IBM, or even Microsoft came up with; it was hobbyist stuff that Gates bought out.
UNIX was written for the PDP-7, quote: "All this was written in assembly language for a cross-assembler that ran under GECOS and produced paper tapes to be carried to the PDP-7."
AmigaOS was first emulated on a SAGE, later on SUN workstations, and IIRC used several different cross-compilers to be built, which became quite a headache down the line...
Posted: Sat Aug 25, 2007 2:57 pm
by Zacariaz
I know i know, i was just talking about the fact that it all had to start somewhere. Allthough i would find it rather amusing trying to program a an os from the bottom op, i am ofcourse aware that it is not the way it is done today, just saying that it is possible. Im not certain of which tools microsoft uses, but i could quickly come up with some suggestions.
Posted: Wed Aug 29, 2007 8:37 am
by JamesM
There was a quote from Von Neumann that went something like (on the subject of assemblers):
Wasting precious scientific resources on such petty tasks is a crime
Apparently, the trend at the time was to write the program in assembly, then get grad students to handcraft it into opcodes!
JamesM
Posted: Wed Aug 29, 2007 8:55 am
by Candy
JamesM wrote:There was a quote from Von Neumann that went something like (on the subject of assemblers):
Wasting precious scientific resources on such petty tasks is a crime
Apparently, the trend at the time was to write the program in assembly, then get grad students to handcraft it into opcodes!
JamesM
In a time when a machine with 4k of memory was scarce and very expensive to buy ($100.000's) this was a fair statement (not good, just fair). In the time when a machine with half a gigabyte of memory is going for $250, that's plain stupid.
Posted: Thu Aug 30, 2007 2:56 pm
by jerryleecooper
For Microsoft, they probably eat their own dogfood (VIsual C++?) to make Windows, or use the intel compilers. Or they have a special version of their c++ compiler just for the task of compiling the windows.
Macos X is compiled with gcc.
linux, gcc, but can also be compiled with tcc or some other compiler.
http://fabrice.bellard.free.fr/tcc/
The first basic from Microsoft for the Altair was programmed bit by bit on a roll of paper, when Bill Gates was making an error, he had to restart again a new roll.