Hello All, I was going through the linux kernel newbie articles in kernelnewbies.com and found it very interesting. I downloaded the tarballs for the 0.01 version of kernel from : http://www.kernel.org/pub/linux/kernel/Historic/ Then the next thing I was trying to do was to compile the source code and try to understand the various methods/function calls, system calls etc, but I'm not able to compile the code, I'm getting the following errors: $ make -f Makefile gas -c -o boot/head.o boot/head.s make: gas: Command not found make: *** [boot/head.o] Error 127 Then I searched in the web for GAS and found that it GNU AS. I've "as" installed in my box, so I tried creating a symlink with the name "gas" but then bumped into another error: $ make gas -c -o boot/head.o boot/head.s gas: unrecognized option `-c' make: *** [boot/head.o] Error 1 Is GNU AS same as "as" ? when running version check I got this: $ as --version GNU assembler (GNU Binutils) 2.20.51.20100410 Copyright 2010 Free Software Foundation, Inc. This program is free software; you may redistribute it under the terms of the GNU General Public License version 3 or later. This program has absolutely no warranty. This assembler was configured for a target of `i686-cygwin'. I tried searching on the web to find ways to install "GNU AS" but could not get any useful info. I'm facing similar problem with "GNU LD". Is it different from the "ld": $ ld --version GNU ld (GNU Binutils) 2.20.51.20100410 Copyright 2010 Free Software Foundation, Inc. This program is free software; you may redistribute it under the terms of the GNU General Public License version 3 or (at your option) a later version. This program has absolutely no warranty. Can someone help me installing these two or let me know what is the fix for the same. I'm running cygwin on Win7-64 bit Thanks
Hello,
Then the next thing I was trying to do was to compile the source code and try to understand the various methods/function calls, system calls etc, but I'm not able to compile the code, I'm getting the following errors:
If you want to compile this kernel to understand how an operating system works. I would recommend using a newer kernel version that you can easily compile and test with current tools. Compiling a 0.01 with today tools will be a pain and you would learn more about C compiling and linking than operating system internals. The Linux kernel is a really complex beast but also it is highly modularized, so you can try to understand one aspect at a time. Also there is much more documentation about recent kernels code that for a kernel that old. I would recommend buying some of the excellent books about Linux kernel internals, the best book in my opinion is Robert Love's Linux Kernel Development (http://amzn.to/i34vbB). Another great books are Linux Device Drivers (http://lwn.net/Kernel/LDD3/), Essential Linux Device Drivers (http://amzn.to/bvELFI) and IA-64 Linux Kernel: Design and Implementation (http://amzn.to/fTvV9z). Also lwn.net site has a lot of documentation about the kernel in its Kernel index page (http://lwn.net/Kernel/Index/). I think that reading about the kernel internals while looking at the source code and latter trying to hack the code is the best way to learn about the Linux kernel an operating systems internals. -- Best regards, ----------------------------------------- Javier Martínez Canillas (+34) 682 39 81 69
On 1/9/2011 9:41 PM, Javier Martinez Canillas wrote:
Hello,
Then the next thing I was trying to do was to compile the source code and try to understand the various methods/function calls, system calls etc, but I'm not able to compile the code, I'm getting the following errors:
If you want to compile this kernel to understand how an operating system works. I would recommend using a newer kernel version that you can easily compile and test with current tools. Compiling a 0.01 with today tools will be a pain and you would learn more about C compiling and linking than operating system internals.
The Linux kernel is a really complex beast but also it is highly modularized, so you can try to understand one aspect at a time. Also there is much more documentation about recent kernels code that for a kernel that old.
I would recommend buying some of the excellent books about Linux kernel internals, the best book in my opinion is Robert Love's Linux Kernel Development (http://amzn.to/i34vbB).
Another great books are Linux Device Drivers (http://lwn.net/Kernel/LDD3/), Essential Linux Device Drivers (http://amzn.to/bvELFI) and IA-64 Linux Kernel: Design and Implementation (http://amzn.to/fTvV9z). Also lwn.net site has a lot of documentation about the kernel in its Kernel index page (http://lwn.net/Kernel/Index/).
I think that reading about the kernel internals while looking at the source code and latter trying to hack the code is the best way to learn about the Linux kernel an operating systems internals.
Thanks for your suggestion, Martinez. You got me right, basically I want to learn the more about the linux kernel internals. I know the its almost next to impossible to get a good grasp of the current kernel, I thought may be I should start with the older kernels and try to get good basic understanding, play around and thereby learn things. and once I've got a decent understanding of things I'll select any particular module of my interest and go ahead digging deeper in that particular section. I dint know that compiling the older kernel is such a pain and yes this exercise will end up learning more on compilation/linking etc and not what I exactly want. Thanks for your suggestion. I'm going to buy some really good book in linux kernel and start learning and hacking. Please let me know if you have any other suggestion on learning linux kernel internals. Thanks, KK.
hi: 2011/1/9 KK <nitric.acid@gmx.us>: > Hello All, > I was going through the linux kernel newbie articles in > kernelnewbies.com and found it very interesting. I downloaded the > tarballs for the 0.01 version of kernel from : > http://www.kernel.org/pub/linux/kernel/Historic/ > > Then the next thing I was trying to do was to compile the source code > and try to understand the various methods/function calls, system calls > etc, but I'm not able to compile the code, I'm getting the following > errors: > > $ make -f Makefile > gas -c -o boot/head.o boot/head.s > make: gas: Command not found > make: *** [boot/head.o] Error 127 > > Then I searched in the web for GAS and found that it GNU AS. I've "as" > installed in my box, so I tried creating a symlink with the name "gas" > but then bumped into another error: > > $ make > gas -c -o boot/head.o boot/head.s > gas: unrecognized option `-c' > make: *** [boot/head.o] Error 1 > > Is GNU AS same as "as" ? when running version check I got this: > $ as --version > GNU assembler (GNU Binutils) 2.20.51.20100410 > Copyright 2010 Free Software Foundation, Inc. > This program is free software; you may redistribute it under the > terms of > the GNU General Public License version 3 or later. > This program has absolutely no warranty. > This assembler was configured for a target of `i686-cygwin'. > > I tried searching on the web to find ways to install "GNU AS" but could > not get any useful info. I'm facing similar problem with "GNU LD". Is it > different from the "ld": > $ ld --version > GNU ld (GNU Binutils) 2.20.51.20100410 > Copyright 2010 Free Software Foundation, Inc. > This program is free software; you may redistribute it under the > terms of > the GNU General Public License version 3 or (at your option) a > later version. > This program has absolutely no warranty. > > Can someone help me installing these two or let me know what is the fix > for the same. > > I'm running cygwin on Win7-64 bit I have never try this before, but I can give you some suggestions that I may try: 1. check Makefile and modify AS as the name on your machine. 2. try alias the gas with as on your cygiwn machine. 3. use a managed mount; this will help you avoid some file name case-sensitivity issues that crop up in the kernel source code (ex, the netfiler code uses file names that differ only in case). http://cygwin.com/faq/faq.using.html PS: about item3 is excerpted from http://www.cygwin.com/ml/cygwin/2007-07/msg00737.html BTW, I sincerely suggest you may find any useful information on cygwin mailing list. Since most of people on cygwin can compile kernel successfully. HTH, miloody
On Sun, 9 Jan 2011, KK wrote:
Hello All,
I was going through the linux kernel newbie articles in kernelnewbies.com and found it very interesting. I downloaded the tarballs for the 0.01 version of kernel from : http://www.kernel.org/pub/linux/kernel/Historic/
but ... why? i can appreciate the historical entertainment value to some extent, but nobody's going to hire you based on your familiarity with the 0.01 version of the linux kernel. surely there are more interesting and potentially profitable ways to spend your time that employers would care about. rday -- ======================================================================== Robert P. J. Day Waterloo, Ontario, CANADA http://crashcourse.ca Twitter: http://twitter.com/rpjday LinkedIn: http://ca.linkedin.com/in/rpjday ========================================================================
There is a compilable 0.01 version of linux out there. Don't take the actual source. You need a custom 0.01 kernel to work with the modern compiler tools out there. If you do make a version, you might try creating a VMWare VM and putting it online. This might be it. http://draconux.free.fr/os_dev/linux0.01.html On Sun, Jan 9, 2011 at 11:32 AM, Robert P. J. Day <rpjday@crashcourse.ca>wrote:
On Sun, 9 Jan 2011, KK wrote:
Hello All,
I was going through the linux kernel newbie articles in kernelnewbies.com and found it very interesting. I downloaded the tarballs for the 0.01 version of kernel from : http://www.kernel.org/pub/linux/kernel/Historic/
but ... why? i can appreciate the historical entertainment value to some extent, but nobody's going to hire you based on your familiarity with the 0.01 version of the linux kernel.
surely there are more interesting and potentially profitable ways to spend your time that employers would care about.
rday
--
======================================================================== Robert P. J. Day Waterloo, Ontario, CANADA http://crashcourse.ca
Twitter: http://twitter.com/rpjday LinkedIn: http://ca.linkedin.com/in/rpjday ========================================================================
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
-- Berlin Brown (berlin dot brown at gmail.com) http://botnode.com http://berlinbrowndev.blogspot.com/
On 1/10/2011 4:09 AM, Berlin Brown wrote:
There is a compilable 0.01 version of linux out there. Don't take the actual source. You need a custom 0.01 kernel to work with the modern compiler tools out there.
If you do make a version, you might try creating a VMWare VM and putting it online.
This might be it.
http://draconux.free.fr/os_dev/linux0.01.html
On Sun, Jan 9, 2011 at 11:32 AM, Robert P. J. Day <rpjday@crashcourse.ca <mailto:rpjday@crashcourse.ca>> wrote:
On Sun, 9 Jan 2011, KK wrote:
> Hello All,
> I was going through the linux kernel newbie articles in > kernelnewbies.com <http://kernelnewbies.com> and found it very interesting. I downloaded the > tarballs for the 0.01 version of kernel from : > http://www.kernel.org/pub/linux/kernel/Historic/
but ... why? i can appreciate the historical entertainment value to some extent, but nobody's going to hire you based on your familiarity with the 0.01 version of the linux kernel.
surely there are more interesting and potentially profitable ways to spend your time that employers would care about.
rday
--
======================================================================== Robert P. J. Day Waterloo, Ontario, CANADA http://crashcourse.ca
Twitter: http://twitter.com/rpjday LinkedIn: http://ca.linkedin.com/in/rpjday ========================================================================
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org <mailto:Kernelnewbies@kernelnewbies.org> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
-- Berlin Brown (berlin dot brown at gmail.com <http://gmail.com>) http://botnode.com http://berlinbrowndev.blogspot.com/
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
Thanks to all of you for all your help. Berlin, I'm downloading the source code for compilable 0.01 kenel that I can compile/run on my box. Thanks for everything. And once everything works out I'll put VMware/Virtualbox image on the web so that others like me can benefit from that. Thanks for the nice suggestion. Thanks, KK
There might be other linux 0.01 variants, I can't remember which one is the most stable. If that version doesn't work, then try others. I tried to create a similar project and it is tough work, but the Linux 0.01 code itself is not that complicated. If I remember it ranged in size of about 15,000 lines of code. That was only the kernel. I had issues with trying to get other software to work like VI, Bash, etc. On Sun, Jan 9, 2011 at 11:04 PM, KK <nitric.acid@gmx.us> wrote:
On 1/10/2011 4:09 AM, Berlin Brown wrote:
There is a compilable 0.01 version of linux out there. Don't take the actual source. You need a custom 0.01 kernel to work with the modern compiler tools out there.
If you do make a version, you might try creating a VMWare VM and putting it online.
This might be it.
http://draconux.free.fr/os_dev/linux0.01.html
On Sun, Jan 9, 2011 at 11:32 AM, Robert P. J. Day <rpjday@crashcourse.ca>wrote:
On Sun, 9 Jan 2011, KK wrote:
Hello All,
I was going through the linux kernel newbie articles in kernelnewbies.com and found it very interesting. I downloaded the tarballs for the 0.01 version of kernel from : http://www.kernel.org/pub/linux/kernel/Historic/
but ... why? i can appreciate the historical entertainment value to some extent, but nobody's going to hire you based on your familiarity with the 0.01 version of the linux kernel.
surely there are more interesting and potentially profitable ways to spend your time that employers would care about.
rday
--
======================================================================== Robert P. J. Day Waterloo, Ontario, CANADA http://crashcourse.ca
Twitter: http://twitter.com/rpjday LinkedIn: http://ca.linkedin.com/in/rpjday ========================================================================
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
-- Berlin Brown (berlin dot brown at gmail.com) http://botnode.com http://berlinbrowndev.blogspot.com/
_______________________________________________ Kernelnewbies mailing listKernelnewbies@kernelnewbies.orghttp://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
Thanks to all of you for all your help. Berlin, I'm downloading the source code for compilable 0.01 kenel that I can compile/run on my box. Thanks for everything. And once everything works out I'll put VMware/Virtualbox image on the web so that others like me can benefit from that. Thanks for the nice suggestion.
Thanks, KK
-- Berlin Brown (berlin dot brown at gmail.com) http://botnode.com http://berlinbrowndev.blogspot.com/
This guy has ported Linux to gcc4.x: http://www.kernel.org/pub/linux/kernel/people/abdel/readme I think that will help you On Sun, Jan 9, 2011 at 6:14 PM, KK <nitric.acid@gmx.us> wrote:
Hello All, I was going through the linux kernel newbie articles in kernelnewbies.com and found it very interesting. I downloaded the tarballs for the 0.01 version of kernel from : http://www.kernel.org/pub/linux/kernel/Historic/
Then the next thing I was trying to do was to compile the source code and try to understand the various methods/function calls, system calls etc, but I'm not able to compile the code, I'm getting the following errors:
$ make -f Makefile gas -c -o boot/head.o boot/head.s make: gas: Command not found make: *** [boot/head.o] Error 127
Then I searched in the web for GAS and found that it GNU AS. I've "as" installed in my box, so I tried creating a symlink with the name "gas" but then bumped into another error:
$ make gas -c -o boot/head.o boot/head.s gas: unrecognized option `-c' make: *** [boot/head.o] Error 1
Is GNU AS same as "as" ? when running version check I got this: $ as --version GNU assembler (GNU Binutils) 2.20.51.20100410 Copyright 2010 Free Software Foundation, Inc. This program is free software; you may redistribute it under the terms of the GNU General Public License version 3 or later. This program has absolutely no warranty. This assembler was configured for a target of `i686-cygwin'.
I tried searching on the web to find ways to install "GNU AS" but could not get any useful info. I'm facing similar problem with "GNU LD". Is it different from the "ld": $ ld --version GNU ld (GNU Binutils) 2.20.51.20100410 Copyright 2010 Free Software Foundation, Inc. This program is free software; you may redistribute it under the terms of the GNU General Public License version 3 or (at your option) a later version. This program has absolutely no warranty.
Can someone help me installing these two or let me know what is the fix for the same.
I'm running cygwin on Win7-64 bit
Thanks
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
-- Regards, Denis
Thanks for you suggestion Denis, I'll look into that link. --KK On 1/9/2011 10:10 PM, Denis Kirjanov wrote:
This guy has ported Linux to gcc4.x: http://www.kernel.org/pub/linux/kernel/people/abdel/readme I think that will help you
On Sun, Jan 9, 2011 at 6:14 PM, KK<nitric.acid@gmx.us> wrote:
Hello All, I was going through the linux kernel newbie articles in kernelnewbies.com and found it very interesting. I downloaded the tarballs for the 0.01 version of kernel from : http://www.kernel.org/pub/linux/kernel/Historic/
Then the next thing I was trying to do was to compile the source code and try to understand the various methods/function calls, system calls etc, but I'm not able to compile the code, I'm getting the following errors:
$ make -f Makefile gas -c -o boot/head.o boot/head.s make: gas: Command not found make: *** [boot/head.o] Error 127
Then I searched in the web for GAS and found that it GNU AS. I've "as" installed in my box, so I tried creating a symlink with the name "gas" but then bumped into another error:
$ make gas -c -o boot/head.o boot/head.s gas: unrecognized option `-c' make: *** [boot/head.o] Error 1
Is GNU AS same as "as" ? when running version check I got this: $ as --version GNU assembler (GNU Binutils) 2.20.51.20100410 Copyright 2010 Free Software Foundation, Inc. This program is free software; you may redistribute it under the terms of the GNU General Public License version 3 or later. This program has absolutely no warranty. This assembler was configured for a target of `i686-cygwin'.
I tried searching on the web to find ways to install "GNU AS" but could not get any useful info. I'm facing similar problem with "GNU LD". Is it different from the "ld": $ ld --version GNU ld (GNU Binutils) 2.20.51.20100410 Copyright 2010 Free Software Foundation, Inc. This program is free software; you may redistribute it under the terms of the GNU General Public License version 3 or (at your option) a later version. This program has absolutely no warranty.
Can someone help me installing these two or let me know what is the fix for the same.
I'm running cygwin on Win7-64 bit
Thanks
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
Hi...:) On Sun, Jan 9, 2011 at 22:14, KK <nitric.acid@gmx.us> wrote:
Hello All, I was going through the linux kernel newbie articles in kernelnewbies.com and found it very interesting. I downloaded the tarballs for the 0.01 version of kernel from : http://www.kernel.org/pub/linux/kernel/Historic/
OK, nice try, I appreciate that. Maybe you could try hacking that old kernel inside such old distro too, let's say Slackware 3.3 which can be found in this URL (this is just Slackware mirror): http://ftp.isu.edu.tw/pub/Linux/Slackware/ Look for version "3.3", that's the oldest I could find there. It's dated October 3rd 1997. Good luck.... -- regards, Mulyadi Santosa Freelance Linux trainer and consultant blog: the-hydra.blogspot.com training: mulyaditraining.blogspot.com
participants (7)
-
Berlin Brown -
Denis Kirjanov -
Javier Martinez Canillas -
KK -
loody -
Mulyadi Santosa -
Robert P. J. Day