What Next After Char, Block, Serial & Parallel Drivers

Sasha Mckinsey iamsasha01 at yahoo.com
Tue Aug 11 14:34:11 EDT 2015



Thanks Jeff! Just a thought. Will it be a good idea to get my hands dirty with socket programming (L2,L3,IPsec,TCP/IP) in the user space to get some experience & understanding and then perhaps dive into kernel network stack at a later stage.

Thanks for all your help

Sasha



On Tuesday, 11 August 2015 11:45 PM, Jeff Haran <Jeff.Haran at citrix.com> wrote:



 
 
From:kernelnewbies-bounces at kernelnewbies.org [mailto:kernelnewbies-bounces at kernelnewbies.org] On Behalf Of Sasha Mckinsey
Sent: Tuesday, August 11, 2015 10:48 AM
To: kernelnewbies at kernelnewbies.org
Subject: What Next After Char, Block, Serial & Parallel Drivers
 
Hello,
 
Finally I can say I have completed learning the following (to a certain extent)
 
    -C and Data structures
    -Operating system concepts ( covered in my undergrad course)
    -Linux kernel Development - Robert Love
    -Linux Device Drivers - Partially (just finished Char, block, serial & parallel )
 
A book called "Essential Linux Device Drivers" - It looked rich a first look but I could go anywhere with it considering I didn't have the required Hardware. I have now cut my teeth into some bit of kernel but still I am not sure where to go from here. I know things but I am not happy or satisfied with what I now. I don't have the feel of a professional device driver programmer. 
 
Here are my questions - two different questions and necessarily not connected to each other
 
What should be the next steps besides looking for a job. Getting a new hardware to write a driver I guess is not feasible all the time. 
 
Note sure why you would consider this not feasible. A lot of consumer level hardware is both relatively inexpensive and lacks Linux support. Just this weekend I was trying to get the video on my Lenovo laptop running Ubuntu to output on its HDMI port  to my TV. It didn’t work and a bit of googling showed that others had the same problem with that video chip. That’s just one example.
 
During my Linux journey i realized Linux network stack development interests me alot but a friend of mine told me to stay away from it as its very vast and would consume me. Any ideas how should i approach it if I want to learn it from practical point of view. I am not looking for the names of books or resources I have all of them including the book understanding Linux network internals. I want to learn it from a practical point of view where in I can be actively involved unlike my status today in the world of device drivers.
 
The networking stack is very big and very mature. Making contributions there above the driver level is likely to require a lot of experience and competence. A lot of consumer 802.11 hardware also lacks Linux support so if you want to cut your teeth in the networking stack, network drivers for unsupported hardware are a good place to start, though you may find yourself stymied by lack of documentation on the HW from its vendor.
 
Now if you are really ambitious, try to figure out how to extend tc to support more than 64K classes per qdisc. That would require no special hardware but would require a great deal of dedication. How many lifetimes do you have available for this effort? 8^)
 
Jeff Haran
 
Thanks!



More information about the Kernelnewbies mailing list