For linux driver development you can start by reading “Linux Device Drivers, Third Edition” pdf.
It is free and give you an idea about how everything works.
The real learning is by reading and using the linux kernel api doc or directly the source code of the api you want to call.
Source : i did this for a school project where i had to implement multiple kernel modules.
I think the real issue with driver development is that almost nobody ever has a reason to do it. It’s a much more constrained way of programming compared to normal programs, and isn’t necessary unless you need to talk to hardware or something. So, nobody has an excuse to learn it.
“There are lots of books on harvesting your own primal power source, but most people these days make a pact with the demon Linus and simply channel his power”
This makes me feel so much better after spending a morning banging my head against some wild pointer arithmetic, thank you much much! (Ultimately the pointer incantations were successful, praise be!)
“If”
You realize embedded systems engineers are real, right?
And if anything qualifies as esoteric, arcane knowledge, it’s embedded systems programming
I’d say OS and driver programming is also in that category. It is the deep magic.
True, true. I have a vague idea how embedded systems work. I have no idea how you even get started with driver development.
OS development isn’t terrible though. There are numerous books to help you make your own kernel and OS
For linux driver development you can start by reading “Linux Device Drivers, Third Edition” pdf.
It is free and give you an idea about how everything works.
The real learning is by reading and using the linux kernel api doc or directly the source code of the api you want to call.
Source : i did this for a school project where i had to implement multiple kernel modules.
Neat! I’ll add it to my long list of things ADHD will never let me finish!
I think the real issue with driver development is that almost nobody ever has a reason to do it. It’s a much more constrained way of programming compared to normal programs, and isn’t necessary unless you need to talk to hardware or something. So, nobody has an excuse to learn it.
… Unless you want to talk to hardware. Or something.
Yes… as I said. But, most people use hardware provided by other people, which means other people write the drivers.
Yes, and those people are people.
Also, sometimes the drivers are total garbage, and other people have to rewrite the garbage from the first people.
Also also, sometimes there is no driver.
“There are lots of books on harvesting your own primal power source, but most people these days make a pact with the demon Linus and simply channel his power”
This makes me feel so much better after spending a morning banging my head against some wild pointer arithmetic, thank you much much! (Ultimately the pointer incantations were successful, praise be!)
Three things in CS meet the qualifications for arcane runes: complex regular expressions, pointer arithmetic, and bit shifting.