> Sent: Tuesday, April 13, 2021 at 9:31 AM > From: "Mayuresh Kathe" <mayur...@sdf.org> > To: netbsd-users@netbsd.org > 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