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

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



(Mind you, I'm pretty much in agreement with much that others have
said in this thread. You're looking for something that is not where
you're looking for it. But, ...)

On Wed, Aug 28, 2013 at 10:36 AM, guojzzz <rush.guo@gmail.com> wrote:
> 在 2013年8月28日星期三UTC+8上午9时00分01秒,Joel Rees写道:
>> On Wed, Aug 28, 2013 at 1:50 AM, guojzzz <rush.guo@gmail.com> wrote:
>>
>> > [...]
>>
>> > 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.

Kernel is also huge and has a lot of implicit linkages/dependencies
that you basically will never see in the code until you've hacked in
the code for several years and made lots of mistakes because of the
things you can't see.

It's not a place to start unless you mean by start that you've already
been through the original K&R book and it's most recent incarnation,
have done all the practice exercises in a modern dev environment, and
now need to start in on "real" code.

In which case, you have to understand that there is not a single
standard style in C any more than there was in the old CoBOL. And a
good style for kernel may not be a good style for even some of the
loadable modules and drivers. And most userland applications will use
different styles, and will not benefit from kernel style rules.

>> >  But other softwares' codes may not.

Which is irrelevant.

>> >  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.
>>
>> >  You mean find project on Debian website - develop page?
>>
>> Most of what is in the debian distribution is packages of projects
>> that are developed and maintained elsewhere. Those projects may be
>> easier places to start because they deal more directly with the code
>> itself. And the code is more focused.
>>
>> So if you're just trying to learn C, there are lots of interesting
>> projects on github, sourceforge, and the other public repositories.
>>
>> Look for a project you are interested in and dig in.

**********************************************************************************
***************    Read and understand this:

>> Expect to find yourself learning a lot of things that you won't see an
>> immediate use for. Don't worry about that, just keep mucking around.

***************    There is no high road.
**********************************************************************************
>>
>> (I'd recommend my book on programming, but I haven't written it yet. ;-)
>> [...]
>> Archive: [🔎] CAAr43iPuJ2q853i7gtZtxcjcO7mDOOw3dCaer-hSQ9=jCwbZmg@mail.gmail.com">http://lists.debian.org/[🔎] CAAr43iPuJ2q853i7gtZtxcjcO7mDOOw3dCaer-hSQ9=jCwbZmg@mail.gmail.com
>
> The reason why I choose some *formal* projects is that I think codes are clear and there are less bugs.
> I will see on Github and some other projects.

I thought of minix after I posted the last post. Minix is on github
and they have a site with documentation and user forums and stuff.

http://en.wikipedia.org/wiki/MINIX
http://www.minix3.org/

It's a university project specifically for studying and teaching
operating systems, so the code has been worked on by many students and
several professors for many years.

Since it's intended for student work,  they try to make the code
clear. It's relatively clean and self-commenting.

But it's not real-world code. Very usable for many things, but it's
not real-world code.

But then it seems that real-world code isn't what you're looking for.

It apparently can be run in a VM, so that might be to your taste as well.

--
Joel Rees


Reply to: