Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Linux Kernel Reading Guide (2014) (linux.org)
57 points by chatmasta on April 1, 2015 | hide | past | favorite | 4 comments


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... 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.


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.


> 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.


>Is this kind of thing really useful to anyone?

To me it reads like the kind of documentation that gets written by a person who is intimately familiar with a system but doesn't really succeed at getting into the headspace of what a newbie needs from their documentation.

I find lots of manpages are like this, actually.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: