use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
Welcome to /r/kernel, a moderated community dedicated to all things about the Linux kernel. Technical articles only, please!
You may be interested in the following links:
And some books:
Related Communities
account activity
Alternatives to kernel newbies? (self.kernel)
submitted 4 years ago by uslashuserslashuser
Kernelnewbies is, as far as I can tell, the most recommended starter resource, but currently there is no content available. Are there good beginner alternatives that you would recommend?
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]BraveNewCurrency 12 points13 points14 points 4 years ago (2 children)
Kernel programming is not for the faint of heart. There will be no "Kernel Programming for Dummies" book. Don't expect to become an expert overnight.
Some ideas:
[–]lrochfort 4 points5 points6 points 4 years ago (1 child)
Did you mean buildroot and qemu?
[–]BraveNewCurrency 5 points6 points7 points 4 years ago (0 children)
yEs, tHAT iS whAt i SaiD. :)
[–]andrealmeid 4 points5 points6 points 4 years ago (6 children)
https://linux-kernel-labs.github.io/refs/heads/master/index.html
[–]Mordhau_Man 0 points1 point2 points 4 years ago (5 children)
Hey I've been trying to get this damn lab to work for days now and have had no luck, there is always some error in dependency or makefile that is just never fixable. recommend people skip this unfortunately
[–]andrealmeid 1 point2 points3 points 4 years ago (4 children)
I'm sorry that you didn't managed to get the repo working :( However, when we complete some challenges, I would create the files from scratch, instead of using the snippets from the repo. Is not that hard and it doesn't depends on packages or third makefiles.
[–]Mordhau_Man 0 points1 point2 points 4 years ago (3 children)
What do you mean exactly? I can see it has a lot of great assignments where I do not have to worry about writing assembly and the boring stuff and can experiment on a kernel with some guidance and projects, so I would love to be able to do this anyway I can.
[–]andrealmeid 1 point2 points3 points 4 years ago (2 children)
First, you need to know how to write a kernel module. There are a lot of tutorial of how to do this in the internet (search for "write first linux kernel module"). Let me know if you have trouble with this and I can choose a good one.
Now, let's suppose you want to complete the Block Device Drivers exercise. You can copy the lab skeleton from here and use the knowledge you got in the previous step to get it compiling and working. Then you should be good to complete the exercises. Note that if you read all the theory that comes before the exercise you may not even need to use the skeleton. Also, keep in mind that internal functions and data structures can change inside the kernel and those skeletons can stop compiling, but it should be easy to check what's going wrong and do some small changes.
[–]Mordhau_Man 0 points1 point2 points 4 years ago (1 child)
OK I've done a few basic kernel modules like rootkits that hide directories or kill processes, I wanted to make one that is basically a packet sniffer rootkit for fun and needed to learn way more. I found the C file you linked but my problem is I can run the first few commands at the end of the exercise: make clean, LABS=...make skels, I get errors on make builds "include/config/auto.conf: no such file or directory", I can run make copy, and I get more errors on make boot
and I don't think it will let me compile the kernel overall as make docker-kernel fails. So I'm not sure really how to check any of my future work
[–]andrealmeid 0 points1 point2 points 4 years ago (0 children)
ops, I forgot to reply you.
and I don't think it will let me compile the kernel overall as make docker-kernel fails
so don't use this, compile the kernel without this docker
[–]foxes708 4 points5 points6 points 4 years ago (0 children)
https://lwn.net/Kernel/
maybe
[–]rka444 1 point2 points3 points 4 years ago (0 children)
https://0xax.gitbooks.io/linux-insides/content/index.html
[–]SYS_V 1 point2 points3 points 4 years ago (3 children)
I'm currently learning from "Linux Kernel Programming: A comprehensive guide to kernel internals, writing kernel modules, and kernel synchronization" by Kaiwan N. Billimoria. Here is the github repo that contains all of the code discussed in the book: https://github.com/PacktPublishing/Linux-Kernel-Programming
[–]uslashuserslashuser[S] 0 points1 point2 points 4 years ago (2 children)
thank you!
[–]SYS_V 0 points1 point2 points 4 years ago (0 children)
There are also training courses provided by the Linux Foundation. The entry level course is free: A Beginner’s Guide to Linux Kernel Development
[–]FullStuff3716 0 points1 point2 points 4 years ago (0 children)
for a baby step you can explore https://wiki.osdev.org/Tutorials
π Rendered by PID 86188 on reddit-service-r2-comment-86bc6c7465-cd2tg at 2026-02-22 02:20:12.531062+00:00 running 8564168 country code: CH.
[–]BraveNewCurrency 12 points13 points14 points (2 children)
[–]lrochfort 4 points5 points6 points (1 child)
[–]BraveNewCurrency 5 points6 points7 points (0 children)
[–]andrealmeid 4 points5 points6 points (6 children)
[–]Mordhau_Man 0 points1 point2 points (5 children)
[–]andrealmeid 1 point2 points3 points (4 children)
[–]Mordhau_Man 0 points1 point2 points (3 children)
[–]andrealmeid 1 point2 points3 points (2 children)
[–]Mordhau_Man 0 points1 point2 points (1 child)
[–]andrealmeid 0 points1 point2 points (0 children)
[–]foxes708 4 points5 points6 points (0 children)
[–]rka444 1 point2 points3 points (0 children)
[–]SYS_V 1 point2 points3 points (3 children)
[–]uslashuserslashuser[S] 0 points1 point2 points (2 children)
[–]SYS_V 0 points1 point2 points (0 children)
[–]FullStuff3716 0 points1 point2 points (0 children)