Thứ nhất:
Đối với các giai đoạn bé, viết các biến thể khác nhau cho các mô-đun "hello world" và trình điều khiển phần cứng ảo, là cách tốt nhất để bắt đầu (phần cứng thực sự giới thiệu các vấn đề trong thế giới thực phải đối mặt tốt nhất khi bạn có nhiều ý tưởng về những gì bạn đang làm).
"Trình điều khiển thiết bị Linux" là một cuốn sách tuyệt vời và rất đáng để bắt đầu với: http://lwn.net/Kernel/LDD3/
LDD (ít nhất là trước đây) có các bài tập mà bạn đã viết trình điều khiển ảo, ví dụ như đĩa RAM và các thiết bị mạng ảo.
Thứ hai:
đăng ký https://lkml.org/ hoặc vào danh sách gửi thư của một hệ thống phụ mà bạn sẽ hack. Lurk một chút, quét qua các chủ đề, đọc đánh giá mã (trả lời các bản vá) để xem mọi người đang làm gì vấp ngã hoặc nhặt lên.
Xem bạn có thể có được phần cứng (giá rẻ) cho một thiết bị chưa được hỗ trợ hay chưa được hỗ trợ tốt. Các ứng cử viên tốt là các USB USB giá rẻ hoặc các thiết bị ngoại vi USB tương tự, chi phí thấp. Một cái gì đó với trình điều khiển đã lỗi thời hoặc lỗi thời, có lẽ là do nhà cung cấp viết, có lẽ cho 2.4.x, là lý tưởng, vì bạn có thể bắt đầu với một cái gì đó hoạt động (sắp xếp) và dần dần điều chỉnh / viết lại nó, thử nghiệm khi bạn đi. Nỗ lực trình điều khiển đầu tiên của tôi là cho một USB USB Davicom DM9601. Có một trình điều khiển kernel được viết bởi nhà cung cấp 2,4-series mà tôi dần dần thích nghi với 2.6. (Lưu ý: trình điều khiển trong dòng chính không phải là trình điều khiển của tôi, cuối cùng người khác đã viết một từ đầu).
Một cách tốt khác là xem trang web Kernel Newbies, cụ thể là "công cụ nhân kernel" cần làm: http: // kernelnewbies.org/KernelJanitor/Todo Đây là danh sách các nhiệm vụ mà người mới bắt đầu có thể giải quyết.