Thread: starting linux's source code and kernel

  1. #1
    Registered User
    Join Date
    Jan 2006
    Posts
    61

    starting linux's source code and kernel

    Hi friends
    I want to learn how linux works, how its kernel works.I have been reading books about windows because i want to learn how an OP works.It will be very useful and more easy to learn it by open source linux.I have some questions

    1-)I am beginner.Which linux must i install my notebook(AMD 64 bit Athlon) to learn.I want to install it by wmware.What do you advice me?Which version?

    2-)This question is very important for me.I said i want to install linux because i am interest with its source codes.Do all linux systems install with its source code.If not which of them have include its source codes?I must install it with source codes.

    3-)I have looked debian site for downloading it.But it seems there are 14 .iso file.Is this true?Must i download both 14 cd image?Do i need all of them?Can you give me please any information about that.(Is debian include source codes)

    4-)General advices:What must my roadmap be?What do you advice me general.

    I am looking for your answers

    Thanks.

  2. #2
    !anExpert
    Join Date
    Mar 2005
    Location
    pa
    Posts
    155
    generally you only need the first cd, possibly the second one, for most distros. all the other stuff is extras that are not needed (bloat?).. i have never heard of an install with 14 cds. that cant be right, there must be different versions or something, either that or someone lost thier minds..

    the source code for the kernel is also available for download, kernel.org, and it is all their for your browsing enjoyment. i dont know much about drivers and such so i cant really comment on the code.. but there is a book that is generally talked well about, OReilly's 'Linux Device Drivers'.. and it is free..

    as far as reccommendations for a distro, you will get hundreds of opinions. trial and error is your friend (well that and lerning how to partition a drive so you dont wipe out /home and /usr/local with every install ) .. i would suggest slackware, because that is all i have used for a long time.. but there are others like fedora core, ubuntu, and mandrake that i have heard are good for beginners..

    have fun.

  3. #3
    User
    Join Date
    Jan 2006
    Location
    Canada
    Posts
    499
    Yeah, right now Debian only need 2 install CDs. One to hold the main kernel and important files, and a second CD to hold the extras, or "goodies". Also, if you have a DVD burner, you can avoid the need to burn 2 discs by combining the 2 ISOs, and then burning them to a single DVD.

    As for source code, you don't really need to worry about that. Simply go to kernel.org, and then download the source code!

    Right now I'm using Gentoo Linux, which is probably a little bit too advanced for you. What I've heard is that SuSE and Mandrake are supposed to be easy to install. Go that rotue if you don't want to have any troubles.

    Good luck!

  4. #4
    Registered User
    Join Date
    Jan 2006
    Posts
    61
    ok
    thanks xhi and joeprogrammer
    I am downloading Linux Device Drivers book thank you.It seems perfect book.
    Also your answers are useful friends now i am looking kernel.org.
    Good works

  5. #5
    pwns nooblars
    Join Date
    Oct 2005
    Location
    Portland, Or
    Posts
    1,094
    Learn what an ndiswrapper is if you want wireless. Unless you are lucky and your wireless card is one of the very few supported cards.

  6. #6
    Cat without Hat CornedBee's Avatar
    Join Date
    Apr 2003
    Posts
    8,895
    Gentoo compiles from source, so you always have the source code of the particular version you have installed, which could be quite nice for you. But I agree with joe that it might be a bit too advanced.

    If you run a 64-bit system, note that your binary drivers must be 64-bit too for ndiswrapper to support them. It might be difficult to find drivers.
    All the buzzt!
    CornedBee

    "There is not now, nor has there ever been, nor will there ever be, any programming language in which it is the least bit difficult to write bad code."
    - Flon's Law

  7. #7
    Disrupting the universe Mad_guy's Avatar
    Join Date
    Jun 2005
    Posts
    258
    If you want to learn how an operating system works, you might not want to be reading a book on Device drivers and looking at a source code tree as big as Linux.

    I'd recommend you pick up a copy of "Operating Systems: Design and Implementation" if you want a good book on systems. The author, Andrew Tanenbaum, wrote the Minix system and the book uses that as it's example throughout all it's chapters. Minix follows a slightly different ideology than Linux (microkernel,) however, the source code is littered with thousands of comments and it's much easier to navigate around and look at than the linux kernel code (to the average person just wanting to learn how an OS works with as little pain as possible, at least.) That's due to the fact Minix was designed to teach operating system concepts since it's invention. Tanenbaum has literally rejected thousands upon thousands of ideas from people who used it, just in order to keep the operating system simple and to the point so people could learn from it.

    The only disadvantage is that the book is small by some standards. The actual book is about 900 pages, but only about half of that is the actual book. The other half of the book actually contains the source code to Minix. The book also only has about 6 chapters, and only 4 focus on operating system design majorly (the first chapter is an intro. The others cover processes, i/o, memory management and file systems for an OS.)


    Even if you don't buy the book, I'd highly recommend you take a look at the Minix code if you want to learn how an OS works and don't want to get overwhelmed. Linux has graduated beyond the toy stage, it's a big system and it keeps expanding, so don't expect learning how an OS works with it as your base to be easy.
    Last edited by Mad_guy; 07-25-2006 at 09:41 AM.
    operating systems: mac os 10.6, debian 5.0, windows 7
    editor: back to emacs because it's more awesomer!!
    version control: git

    website: http://0xff.ath.cx/~as/

  8. #8
    Registered User
    Join Date
    Jan 2006
    Posts
    61
    Thanks for all answers
    Mad_guy thank you.
    Your answer give me a new perspective.I think you are right.Now i am looking for this book.
    I see that linux is not well documented.And also while serching i faced intersting thing, there are few men in the world that actually know what linux source code is.This is very intersting and surprised me.I thought , every linux programmer is also knows its source code or at least interesting with its source codes.

    Anyway i will try your advices.
    Thanks again.

  9. #9
    Just kidding.... fnoyan's Avatar
    Join Date
    Jun 2003
    Location
    Still in the egg
    Posts
    275
    You may want to have a look to Linux kernel ver0.01 which is the first release of the kernel and is the simplest to follow the code.

    The "Operating Systems : Desing and Implementation" a book whose half of the contents is C source. I also recommend you to read "Operating Systems, Gary Nutt". It explains the main concepts of how an OS works!

    And a useful address : kernelnewbies.org

  10. #10
    Registered User
    Join Date
    Dec 2005
    Posts
    5
    Quote Originally Posted by fnoyan
    And a useful address : kernelnewbies.org
    Very good resource.

    If you are interested in Linux, then I advise Understanding the Linux Kernel. Alongside xhi's recomendation of Linux Device Drivers, my knowledge of the Linux kernel has been greatly improved.

    MDofRockyView, thanks for recomending that book. I've seen it before, and am inclined to check it out now!

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Linux raw socket programming
    By cnb in forum Networking/Device Communication
    Replies: 17
    Last Post: 11-08-2010, 08:56 AM
  2. Kernel bug? (attn matsp)
    By brewbuck in forum Linux Programming
    Replies: 7
    Last Post: 04-13-2009, 10:31 AM
  3. CreateThread ?!
    By Devil Panther in forum Windows Programming
    Replies: 13
    Last Post: 11-15-2005, 10:55 AM
  4. fopen();
    By GanglyLamb in forum C Programming
    Replies: 8
    Last Post: 11-03-2002, 12:39 PM
  5. queued signals problem, C programming related
    By Unregistered in forum Linux Programming
    Replies: 3
    Last Post: 01-22-2002, 12:30 AM