Document cho source code của Linux kernel.
Hôm nay tình cờ có bạn trong group hỏi một câu khá sâu về kỹ thuật. Câu đó mình chỉ biết mang máng phương hướng nhưng để trả lời chính xác thì mình cũng phải google. Đầu tiên mình thử tìm trong các tài liệu liên quan nhưng không thấy chỗ nào nói cả, cũng không thấy có ai hỏi câu hỏi tương tự. Thành ra cuối cùng mình đành phải ngồi đọc source code của kernel để tìm câu trả lời. Cũng không mất nhiều thời gian lắm để tìm được đúng đoạn code đó.
Trước đây mình rất băn khoăn về vấn đề tài liệu cho source code của linux kernel. Nếu như với các sản phẩm phần mềm khác, chúng ta thường có architecture design, detail design để giải thích chi tiết về từng function, mối quan hệ giữa các function. Trước khi đọc code chúng ta thường đọc tài liệu về nó trước. Như thế sẽ rất dễ hiểu.
Nhưng linux kernel thì không như vậy, hoàn toàn ko có detail design. Chúng ta chỉ có 2 nguồn tài liệu chính đó là sách và các file text trong thư mục document. Trước đây mình hay nghĩ là do open source nên phần tài liệu họ làm cẩu thả.
Sau đó có 1 lần mình được gặp 1 bác là owner của linux kernel, mình cũng hỏi bác đó câu hỏi như vậy. Bác đó trả lời là do style của đội bên đó là như vậy. Họ cố gắng viết code dễ hiểu thay vì viết doc để giải thích source code. Vì nếu viết doc thì sau này sẽ rất khó maintain phần doc, không cẩn thận thì doc sẽ bị out date so với code.
Ngẫm lại thì mình thấy cũng đúng. Kernel có source code viết tương đối dễ đọc hiểu. Mình cũng thường hay ngồi đọc code kernel để lấy thông tin nếu sau 5 10 phút google không ra kết quả.
Mình nghĩ đây cũng là một phương pháp hay để mọi người có thể thử