Link to Ken Thompson, link to Quines and that one dude who always goes 'When I wrote Apple Writer...' - all in the first few comments.. thread complete?
How can the Linux kernel compile itself?
11–20 of 33 posts
Re: How can the Linux kernel compile itself?
#12This is why I think more people should expose themselves to hardware design, CPU design, and compiler writing, if only at an abstract/academic level. I've worked with a lot of entry-level programmers, and even some that were not so entry-level, that wouldn't have a clue how to answer this question, which is quite depressing.
I'm not a programmer at all, and I found this answer quite obvious. Where else does new binary software come from, if not from a computer running older software?
The answer is that somebody punched in a program from a computer's console, probably somewhere in the early 1960s, but possibly earlier. That program was used to make it easier to enter other programs, etc.
Given that copying working code is so simple, chances are that most of the currently running hardware can be traced back to a few persons entering a boot loader by hand.
That might even be one person. For example, Windows NT was initially developed for Intel's i860 (http://en.wikipedia.org/wiki/Windows_NT#Development), so chances are that it was bootstrapped from a Unix machine. Because of that, it may trace back to the same initial boot loader as, for example, Mac OS X.
Re: How can the Linux kernel compile itself?
#13Re: How can the Linux kernel compile itself?
#14Earlier quoted context omitted.
It shouldn't be such a mystery, because it follows a biological model -- small, simple organisms produce more complex descendants by way of natural selection, all fueled by proteins. The same process creates complex software systems out of simple predecessors, all fueled by coffee.
The biological model also explains why people can get confused about it. The chicken or egg problem shows that at some point you lose the connection to the predecessor and the process goes around in endless circles. Then you might wonder how it ever came to be when the first thing depends on the second and the second depends on the first.
No, this isn't so. It's a myth about biology that's repeated by people who don't understand natural selection. An egg is a chicken's way to make an insurance salesman.
Re: How can the Linux kernel compile itself?
#15Earlier quoted context omitted.
It shouldn't be such a mystery, because it follows a biological model -- small, simple organisms produce more complex descendants by way of natural selection, all fueled by proteins. The same process creates complex software systems out of simple predecessors, all fueled by coffee.
The biological model also explains why people can get confused about it. The chicken or egg problem shows that at some point you lose the connection to the predecessor and the process goes around in endless circles. Then you might wonder how it ever came to be when the first thing depends on the second and the second depends on the first.
Ultimately you don't need life to create life, and ultimately you don't need a computer program to build a computer program. There are other methods, even though we don't see those methods executed today.
Re: How can the Linux kernel compile itself?
#16It seems like it would be relevant if a new architecture was developed at least.
Re: How can the Linux kernel compile itself?
#17Re: How can the Linux kernel compile itself?
#18This does make me wonder about something though: is there a crashplan for a compiler? Can a very minimal gcc be written which would be capable of bootstrapping the entire gcc compiler? It seems like it would be relevant if a new architecture was developed at least.
Re: How can the Linux kernel compile itself?
#19> How can the linux kernel compile itself? Short answer: it can't. Each software system relies for its own existence on a predecessor, usually one of smaller scope. Sort of like biology and evolution. When I wrote Apple Writer in 1978, there were no high-level development tools available, just a primitive assembler built into the Apple II BIOS. By making direct hand entries, I used the BIOS assembler to write a bette…