NetBSD-Users archive

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

Re: skills to document the netbsd kernel?



> Sent: Tuesday, April 13, 2021 at 9:31 AM
> From: "Mayuresh Kathe" <mayuresh%sdf.org@localhost>
> To: netbsd-users%netbsd.org@localhost
> Subject: skills to document the netbsd kernel?

Hello!

> while i possess decent technical skills, i lack knowledge of
> ansi-c which i believe would be a must to read the source of
> the netbsd kernel and most of the userland.

Yes, knowing the C language is a necessary condition. Which part of C
language? Anything, but above all pointers, double pointers, function
pointers, structs, preprocessor macros (like `#define').

> my question is; what topics should i acquire command over to
> understand the netbsd kernel source with the intent of
> documenting it? i guess i should be well versed in operating
> systems theory and practise, but what else?
> thank you.

I have a very similar intention and my questions and doubts are exactly
the same as yours. According to the (very few) hints I collected so far,
first try to understand the kernel source tree: how it is internally
organized, where drivers are positioned, where machine-dependent code is
positioned, where other fundamental OS components are placed, and so on. I
think you may (and should!) surely have an overall idea of the kernel,
but you can not know everything about it with the same deep detail. I
think it's humanly impossible.  Therefore, I would suggest you to focus
on some area you are interested in (device drivers? Schedulers? Memory
management? TCP/IP stack?) and explore the relevant sourcefiles. Also try
the documentation (section 9 of the manpages), because while it may be
not enough to understand a topic, it is anyway very helpful.  Of course,
download the sourcetree of the kernel and try to build it, following
the instructions in Chapter 30 and Chapter 31 of The NetBSD Guide:

 <http://www.netbsd.org/docs/guide/en/chap-fetch.html>
 <http://www.netbsd.org/docs/guide/en/chap-build.html>

Also, try to make some elementary modifications to your kernel (for
example, to the devices included in the GENERIC file, or to the messages
generated during the autoconfiguration) just to make some practice with
its files. Try to google something you do not know (an absolutely random
example search: `netbsd scheduler'); you could find some old message or
some guide (there are few) about what you are dealing with.

Last but not least, if you are working (or would like to work) on
something specific, and you have doubts or questions, let's talk about
it! Through the Mailing List or the Freenode IRC channel #netbsd.

Bye!

Rocky


Home | Main Index | Thread Index | Old Index