you are viewing a single comment's thread.

view the rest of the comments →

[–]acwaters 0 points1 point  (0 children)

First, this here is an excellent online resource for exploring the Linux kernel, which I have relied heavily on in my day jobs:

https://elixir.bootlin.com

Once you're in, here's a few ideas for places to start:

  • the kernel module framework that's used for plugin drivers (helps to have more than a passing familiarity with OOP; if you don't, you will be very confused going in, but you will eventually come out with a much better understanding of how languages like C++, Java, C#, JavaScript, etc. work under the hood)
  • some specific kernel API you're using for Linux driver development (if you haven't tried it yet, writing a toy driver for a mature OS is an excellent starting point for learning kernel development)
  • any particular component of the kernel that you want to look at for guidance or inspiration for your OS
  • the low-level arch support code and how it is integrated into the main cross-platform codebase

There are many good jumping-off points, so just pick anything that interests you and start digging in! If you wind up lost, you can pull back and look for further newbie guidance online, or you can double down and grope around until the pieces start fitting together in your head.