I'm a associate embedded software engineer with a background in electrical engineering. I know that seems strange but I would like to come up to speed on the Linux kernel more so I can be more knowledgeable about embedded Linux.<p>The problem is that I not taken a "Introduction to Operating Systems" course before like most CS folks have. I believe I need to approach this first before diving into learning the Kernel.<p>What is the most optimal learning solution here for this. Reading a book gets a person so far so I was hoping for a more course like experience with some user interaction (labs/assignments, aka "hands on")? Has anyone else been in my shoes and if so what online courses or books did you find the most effective? I want to make sure that whatever material or resource I use is Linux driven.
Write a character device driver for your machine. It can be a simple echo of what's written to it. You'll probably need to write device drivers or work with someone else's drivers when your project gets to the prototype stage.