

Linux Kernel Reading Guide (2014) - chatmasta
http://www.linux.org/threads/linux-kernel-reading-guide.5384/

======
teraflop
I'm having a really hard time understanding what the purpose of this is, or in
what sense it's a "reading guide". The vast majority of it seems to just be
paraphrases of the kernel config documentation. For example:

> Here, we are asked about “IBM Calgary IOMMU support (CALGARY_IOMMU)”. This
> option will enable support for IOMMUs that belong to the xSeries x366 and
> x460 by IBM. This will also allow 32-bit PCI that do not support DAC (Double
> Address Cycle) devices of such systems to run properly because this system
> setup will have issues accessing more than 3GB of RAM. If needed, these
> IOMMU devices can be turned off at boot time using the “iommu=off”
> parameter. (These kernel/module parameters will be discussed in a later
> article.)

Compare to the original:
[https://github.com/torvalds/linux/blob/v3.19/arch/x86/Kconfi...](https://github.com/torvalds/linux/blob/v3.19/arch/x86/Kconfig#L769-785)
And this goes on for page after page.

Is this kind of thing really useful to anyone? Because it looks to me like its
only purpose is to attract and farm ad clicks.

\---

EDIT: also much of it is confusingly written at best, and factually wrong at
worst. For instance:

"Rados devices are block storage units that use CephFS."

"The following feature allows modules to be loaded into user space (Userspace
firmware loading support)."

"The Linux kernel can use a rewritable compact-disc as cache space (Enable
write caching). This feature is still experimental."

"Asynchronous I/O is input/output processing that allows other threads to get
processed before transmission is complete."

And so on... these are just the most glaring examples that jumped out at me
after 5 minutes of reading.

~~~
chatmasta
I submitted it because I consider it to be nearly a primary source of
documentation. Experts write stickied posts on linux.org forum in 2007.
Everyone reading those posts could also read the kernel config documentation,
yet they stickied this.

The primary kernel docs lack the wider context necessary to capture an
inexperienced audience. Optimally, you want as many inexperienced people to be
drawn to your project as possible, because if your documentation is good it
will turn them into experienced people who can contribute to the project.
Therefore posts like this one, albeit a secondary source by most definitions,
benefit the linux ecosystem and are also educational.

Agreed the content is messy but it's the clarity of organization that got me
to read it. The structure of his content taught me as much as the content
itself. I have been looking for a resource to clearly explain the kernel, the
boot process, modules, and drivers. I think this did a good job at that and
also clarified the bigger picture for me.

~~~
teraflop
> Experts write stickied posts on linux.org forum in 2007. Everyone reading
> those posts could also read the kernel config documentation, yet they
> stickied this.

But what is linux.org, and why is it credible? The domain seems to have
changed hands a number of times over the years, and it's not affiliated with a
well-known organization like the Linux Foundation.

> Optimally, you want as many inexperienced people to be drawn to your project
> as possible, because if your documentation is good it will turn them into
> experienced people who can contribute to the project. Therefore posts like
> this one, albeit a secondary source by most definitions, benefit the linux
> ecosystem and are also educational.

"Good documentation" would be great, but these pages are not it. I strongly
disagree that it has any kind of "clarity of organization", but that's not
even the issue; the issue is that the author has no idea what he's talking
about. If you try to learn from it, you are getting a mixture of useful
information, useless trivialities, and outright falsehoods that will only
confuse you later. Anyone who thinks these statements are clear and accurate:

> NOTE: Not all “.ko” files are modules. Linux also uses “.ko” for Linux's
> analogy of Window's “.dll” files.

> The Linux kernel is a monolithic kernel. This means that the whole operating
> system is on the RAM reserved as kernel space. To clarify, the kernel is put
> on the RAM.

> As many of you know, Linux is written in C/C++ and Assembly.

> [in the context of defining UID, GID, PID, etc.] A Session ID is used for
> communication purposes so only the authenticated processes can communicate
> together on that particular session only. This helps to prevent hijackers
> and malware from intercepting a data transaction.

> Many of you may be unaware of this, but Android is Linux. True, they are not
> quite the same, but Android is Linux. For example, Ubuntu is "GNU/Linux"
> while Android is "Dalvik/Linux".

has no business writing technical documentation about the Linux kernel.

