2009-11-05 16 views
5

Tôi đã đọc về trình điều khiển thiết bị/phát triển hạt nhân Linux và tất cả các sách tôi đã xem use the pre-2.6.20 workqueue interface. Điều này bao gồm Linux Kernel Module Programming Guide, số Linux Kernel Development của Robert Love và số Essential Linux Device Drivers của Sreekrishnan Venkateswaran được xuất bản vào tháng 4 năm 2008!Sử dụng giao diện làm việc mới (kể từ Linux kernel 2.6.20)

Có ai có hướng dẫn sử dụng "mới" 2.6.20+ workqueue interface không?

Chỉ để tham khảo, Ubuntu 8.04 mà tôi đang phát triển vào lúc này, đã được phát hành hơn một năm rưỡi trước và bao gồm hạt nhân 2.6.24.

Sửa

câu trả lời stsquad của dẫn tôi đến this guide to porting code to the new 2.6.20 workqueue's.

Trả lời

5

Bạn không thể đi sai với các bài viết API tuyệt vời trên LWN (http://lwn.net/Kernel/Index/) để ghi lại nhiều API mới khi chúng đi vào hạt nhân. Có cả một phần dành cho Workqueues đáng để đọc.

Công việc đã có trong hạt nhân trong một thời gian vì vậy tôi giả sử suy nghĩ của bạn về recent-ish rework of the API.

Trong khi tôi đang ở đó, tôi có thể chân thành khuyên bạn nên đăng ký LWN. Tất cả các bài viết của họ có sẵn miễn phí sau một tuần hoặc lâu hơn nhưng nó đáng để hỗ trợ việc viết chất lượng cao, đặc biệt nếu bạn là một hacker hạt nhân đầy tham vọng.

+0

+1: Cảm ơn. Bạn có bất kỳ liên kết đến một hướng dẫn/hướng dẫn trên thực tế bằng cách sử dụng giao diện làm việc mới? Hoặc bạn có biết nói một trình điều khiển khá đơn giản trong cây nguồn có thể phục vụ như là một ví dụ tốt? –

+0

Về trình điều khiển đơn giản mà không yêu cầu kiến ​​thức thân mật của phần còn lại của hạt nhân tôi đề nghị mã vt (drivers/char/vt.c) hoặc có thể trình điều khiển sysreq (drivers/char/sysrq.c). Nếu không grep xung quanh cho queue_work trong một hệ thống phụ bạn đã quen thuộc với. Thư mục tài liệu bao gồm một số ví dụ cụ thể cho các hệ thống phụ khác nhau (ví dụ: IO bị trì hoãn) mặc dù chúng thường bao bọc nó trong khuôn khổ hệ thống con riêng của chúng. – stsquad

+2

Câu trả lời của bạn đã dẫn tôi đến hướng dẫn này để chuyển mã sang 2.6.20 bảng tính mới: http://lwn.net/Articles/213149/ –

Các vấn đề liên quan