I know that a great deal of knowledge is necessary to program a driver for the linux operating system. It takes excellent coding skills (in C) and a good deal of knowledge about the kernel.
I was just wondering if anyone has accomplished such a task and if so was it a long project?
did you do it just for the knowledge of doing so?
or to actually utilize it and help out the open source community?
I think it would be fun to gain the knowledge necessary to understand exactly how a driver allows you to directly communicate with hardware or other devices.
or maybe using an already written driver and trying to recreate it using the completed one as a guideline.
theres probably some assembly knowledge involved also..
What do you think about a project like this?
"Never memorize what you can look up in books." -Albert Einstein
My best guess on how to start a project like this would be to find the some sudo-code or a flow chart. This will help you narrow the project down to a specific type of driver/ programming language/ type of programming. After you understand the programming languages used, llook at some source code.
From what I've heard you will need to know a fair deal of asm. Asm is hardware-specific programming, unlike high level programming, and you will need a good book for asm alone. Usually asm starts with small things like moving aroung data, so big project.
Linux, as always, has nice learning communities and documenation. However, I did a quick glance at some of the related cources and they seem "fluffy" (as in profesional hooplah) and expencive. The books are genrally complex. Unlike too many other fat, heavy, tech books that just have lots of information, skipping around is counter-productive.