Hello! I am not a professional kernel developer but I do like learning how things work..especially operating systems like linux. I know the basis stuff about the linux kernel (enough to write a very simple kernel module). But I wanted to learn how things like a simple scheduler or a memory manager would work. Only reading the current kernel code is sometimes difficult because all the layers of abstraction implemented in order to make Linux code scale. So I was thinking taking a much much older version of the kernel and starting to analyze it. Something like...v0.01. Seems like I'm on a good track since sched.c in v0.01 has 250 lines while shed.h in the current kernel has 1200 :P. But I couldn't get v0.01 to compile and I've search the Internet and found that it needs a _lot_ of hacking to get it to work. So I moved to try 1.0 which seems to have all of the basic features implemented yet simple enough to understand. But I am still having trouble compiling (having trouble with header files...). Although I could just read the code and try to figure out what it does, I would like to be able to modify it and compile and run it. In order to avoid useless trial and error, I wanted to ask other people that maybe did this: What is the oldest kernel version that can be compiled on a current system and then pun on a virtual machine like qemu-kvm or vmware? On a side note, I did look into the "Linux from scratch" documentation project, but that seems to tell you how to build a distribution, not a kernel. Thank you.
On Tue, Apr 9, 2013 at 12:49 PM, Alexandru Juncu <alexj@rosedu.org> wrote:
Hello!
I am not a professional kernel developer but I do like learning how things work..especially operating systems like linux. I know the basis stuff about the linux kernel (enough to write a very simple kernel module). But I wanted to learn how things like a simple scheduler or a memory manager would work.
Only reading the current kernel code is sometimes difficult because all the layers of abstraction implemented in order to make Linux code scale. So I was thinking taking a much much older version of the kernel and starting to analyze it. Something like...v0.01. Seems like I'm on a good track since sched.c in v0.01 has 250 lines while shed.h in the current kernel has 1200 :P.
But I couldn't get v0.01 to compile and I've search the Internet and found that it needs a _lot_ of hacking to get it to work. So I moved to try 1.0 which seems to have all of the basic features implemented yet simple enough to understand. But I am still having trouble compiling (having trouble with header files...). Although I could just read the code and try to figure out what it does, I would like to be able to modify it and compile and run it.
In order to avoid useless trial and error, I wanted to ask other people that maybe did this: What is the oldest kernel version that can be compiled on a current system and then pun on a virtual machine like qemu-kvm or vmware?
On a side note, I did look into the "Linux from scratch" documentation project, but that seems to tell you how to build a distribution, not a kernel.
I remember someone on kernel-newbies trying to do the same thing some while ago[1]. Although the thread does not provide the solution it highlights some of the obstacles you might face. I also found a small blog post[2] about this. But the article is from 2007, and you're going for something way older than 2.4 so probably a plethora of errors are coming your way. Hope this helps and good luck. [1] http://thread.gmane.org/gmane.linux.kernel.kernelnewbies/42878/focus=42884 [2] https://divyad.wordpress.com/2007/04/28/compiling-older-linux-kernels-prepar... -- Silviu Popescu
On Tue, Apr 9, 2013 at 4:49 PM, Alexandru Juncu <alexj@rosedu.org> wrote:
In order to avoid useless trial and error, I wanted to ask other people that maybe did this: What is the oldest kernel version that can be compiled on a current system and then pun on a virtual machine like qemu-kvm or vmware?
try to check this out: http://draconux.free.fr/os_dev/linux0.01.html -- regards, Mulyadi Santosa Freelance Linux trainer and consultant blog: the-hydra.blogspot.com training: mulyaditraining.blogspot.com
On 9 April 2013 14:32, Mulyadi Santosa <mulyadi.santosa@gmail.com> wrote:
On Tue, Apr 9, 2013 at 4:49 PM, Alexandru Juncu <alexj@rosedu.org> wrote:
In order to avoid useless trial and error, I wanted to ask other people that maybe did this: What is the oldest kernel version that can be compiled on a current system and then pun on a virtual machine like qemu-kvm or vmware?
try to check this out: http://draconux.free.fr/os_dev/linux0.01.html
That's the site that made me think of trying 1.0 :P
On Tue, Apr 9, 2013 at 7:18 PM, Alexandru Juncu <alexj@rosedu.org> wrote:
On 9 April 2013 14:32, Mulyadi Santosa <mulyadi.santosa@gmail.com> wrote:
On Tue, Apr 9, 2013 at 4:49 PM, Alexandru Juncu <alexj@rosedu.org> wrote:
In order to avoid useless trial and error, I wanted to ask other people that maybe did this: What is the oldest kernel version that can be compiled on a current system and then pun on a virtual machine like qemu-kvm or vmware?
try to check this out: http://draconux.free.fr/os_dev/linux0.01.html
That's the site that made me think of trying 1.0 :P
Well, that's up to you, but I think that site is a good starting point. You need something really simply but yet able to run applications, no? -- regards, Mulyadi Santosa Freelance Linux trainer and consultant blog: the-hydra.blogspot.com training: mulyaditraining.blogspot.com
On Tue, 9 Apr 2013, Alexandru Juncu wrote:
Hello!
I am not a professional kernel developer but I do like learning how things work..especially operating systems like linux. I know the basis stuff about the linux kernel (enough to write a very simple kernel module). But I wanted to learn how things like a simple scheduler or a memory manager would work.
Only reading the current kernel code is sometimes difficult because all the layers of abstraction implemented in order to make Linux code scale. So I was thinking taking a much much older version of the kernel and starting to analyze it. Something like...v0.01. Seems like I'm on a good track since sched.c in v0.01 has 250 lines while shed.h in the current kernel has 1200 :P.
... snip ... please don't. mucking around with v0.01 of linux might be entertaining from a historical perspective but it won't have much value in making you more hireable. :-) just pick a specific topic somewhere in the kernel and dig into it. and make sure you learn git so you can use "git log" to follow along so you can see the ongoing development as well. rday -- ======================================================================== Robert P. J. Day Ottawa, Ontario, CANADA http://crashcourse.ca Twitter: http://twitter.com/rpjday LinkedIn: http://ca.linkedin.com/in/rpjday ========================================================================
participants (4)
-
Alexandru Juncu -
Mulyadi Santosa -
Robert P. J. Day -
Silviu Popescu