[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: What's the easiest and/or simplest part of Linux Kernel?



On 8/27/2013 12:50 PM, guojzzz wrote:
在 2013年8月27日星期二UTC+8下午10时10分02秒,Jerry Stuckle写道:
On 8/27/2013 9:49 AM, guojzzz wrote:



I believe what you said. As people know, Linux Kernel is complex and complicated, it's hard to read, especially for newbies like me.



And I don't think I'm going to debug codes or hack it, I even am not capable of doing so. I can play with Python, Common Lisp and Scheme code, as for C... Not now I think.







Guogzzz,



I think the kernel is the LAST place you want to go, especially if

you're not real familiar with C.  As you have found, system kernels are

large and complicated.  Even people with years of experience in C easily

get lost when dumped into system programming.  And you can't just look

at one small part of a kernel by itself; you have to also be aware of

its relationship with the rest of the kernel.  Acquiring such a

knowledge takes time; good books help (sorry, I don't have any

recommendations).



There are many other areas you can help out in, though.  There are

thousands of projects in Debian, each with their own maintainers.  And I

think most of those projects would be glad to have another programmer,

even if you don't have years of experience.



I suggest you look at various projects (smaller in this case *may* be

better - easier to understand but less work needs to be done) and find

one which sounds interesting to you.  Then find the upstream maintainers

and ask if they could use another hand.  In most cases, I think the

answer will be "YES!". :)



Jerry





--

To UNSUBSCRIBE, email to debian-user-REQUEST@lists.debian.org

with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org

Archive: [🔎] 521CB29C.30605@attglobal.net">http://lists.debian.org/[🔎] 521CB29C.30605@attglobal.net

I know some books of OS, as Linus mentioned in his biography book. The reason why
  I choose kernel code is that I think it strict and compact, it's bug-less, it has a code style guide.
  But other softwares' codes may not.


Yes, it is compact (although not necessarily strict - many developers have worked on it over the years). But it also, in the name of efficiency, has code which can be harder to understand. Plus, you're operating at the base level of the microprocessor - which means you have to do a lot of things, from satisfying dependencies in programs and dynamic modules to allocating memory to applications, and a whole lot more. Add to that fact much of the code is poorly commented, makes it very difficult to understand. I've been doing C code for nigh onto 25 years, and even I know better than to get into kernel code unless I have months to study what's going on. What may look like an innocuous change in one place can have major effects in other places.


  As a matter of fact, I've ever thought about starting a project on my own and others may help me,
  but I have little experience in C, hence it seems impossible.


Not impossible, but it is hard to do if you don't have a lot of experience.

  You mean find project on Debian website - develop page?



You can do that, but I was referring just to any packages. Most applications (and even the Linux kernel) are not developed by Debian developers; rather other groups develop and make the packages available; the Debian developers may make some minor modifications (and possibly compile the packages) then package them for Debian, ensuring the proper prerequisites are defined, etc.

For instance, PHP is developed by Zend, a commercial outfit. They supply the source code; Debian developers compile the code and package it for installation. And if you try to install the PHP-Apache module, it knows you need Apache (and probably other things as well) installed. If Apache is not installed, it will install and configure it for you. If Apache is already installed, it will install the PHP module and configure Apache properly to use it (this is NOT a minor task to get done properly - my hats off to the guys who do it!).

But Debian does not develop PHP, and if you wanted to help out with the PHP package, you would talk to Zend (since they are commercial, I don't think they take volunteers - but you get the idea). And while we're at it, Apache is developed by the Apache Software Foundation, which is completely voluntary. But it is not Debian who develops it.

Don't get me wrong - the Debian developers do a great job; it's one that is necessary to keep Debian as good as it is, and makes installation of packages very easy. It also standardizes the system so that other packages will install easily, and if there is a conflict, the conflict is detected at installation time - you don't need to try to figure out what's wrong when the package doesn't work properly.

Jerry


Reply to: