KernelTrap offers an informative look back in time at the November 1991 release of the 0.10 Linux kernel, continuing their historical series of articles about the early beginnings of Linux. Quite entertaining is a quote from Linus Torvalds talking about when he accidentally deleted the Minix partition that he was developing Linux from, causing him to make Linux usable for more than just reading and posting to newsgroups. The article also discusses the creation of the linux-activists mailing list, offering browsable archives of that first Linux discussion forum, full of interesting gems. And finally it describes the first Linux distribution, MCC Interim, which was created and used by the University of Manchester to teach C programming and UNIX.
Linux was still light and efficient software at this stage, despite its very alpha stability and functionality — not even 2500 lines. (I didn’t know that it had jumped from 0.03 to 0.10 though — I thought that 0.04 through 0.09 were just lost as trivialia or something.)
Hmm. Gives me the idea for a crazy project…
Auto-dialing a *hard drive*? That is a goof of epic proportions — and apparently, if it stirred him to develop Linux, it was the kind of goofs epics are made of.
It’s an impressive goof. Auto-dialing a hard drive… that doesn’t happen every day … I’m sitting here with the biggest smile in a very long time
It’s one good reason to keep character and block devices very separate
Unfortunately, being able to treat block devices as character devices is quite handy.
I particularly enjoyed this comment, on kernel/sched.c:
* ‘schedule()’ is the scheduler function. This is GOOD CODE! There
* probably won’t be any reason to change this, as it should work well
* in all circumstances (ie gives IO-bound processes good response etc).
ROFL =)
I think someone should try pluging it in recent kernel. Maybe if would fix all current issues? =)
Sorry, you’d have too many dependencies to resolve first. 😉
This is a pretty good algorithm, all things considered. Remember, Linux won’t support SMP for another four years. Traversing the task list 2-4 times isn’t great, but O(N) is perfectly acceptable for dozens of tasks. Some commercial UNIX schedulers still scale linearly.
They also still use the “C = C/2 + P” function to give sleepers a bounded priority boost over hogs. Maverick sysadmins can tune the denominator these days, but the theory is identical. Yes, the algorithm is non-deterministic fuzzy math, but it’s simple and it works.
see http://www.manlug.org/content/blogsection/5/71/ for qemu images of mcc linux.
Well, this shows that Linus’ word is not gospel. He made a lot of silly comments and tons of design f–kups for others to clean up.
That said, boy, that’s one clever dude.
Design is evolutionary and synchronous with the hardware and functional loads of the time.And remember, that Linux wasn’t started to create an enterprise operating system. That sort of happened by accident.
Originally, it was a kernel to run on cheap x86 hardware.
People’s learning is also evolutionary. Finally, point me out to any place where I can check on your ability to write a kernel at the same age when Linus started Linux.