Một số chỉ dẫn khi muốn trở thành Linux Kernel Developer


Hôm rồi mình có nhận được email của một người bạn hỏi rằng: “Một developer nếu muốn tham gia vào quá trình phát triển Linux kernel thì nên bắt đầu từ đầu? Tôi có hẳn source code của Linux kernel, trong đó có hàng nghìn file thì tôi nên tìm hiểu chúng như thế nào?”

Người bạn đó chưa có kiến thức về Linux và thế giới Open Source nên mình có tra khảo thông tin trên mạng và hình thành nên một số gợi ý dành cho thắc mắc trên.

Nếu có ý định tham gia vào cộng đồng các nhà phát triển (developer) hay người đóng góp (contributor) cho dự án xây dựng, duy trì và phát triển mã nguồn của Linux Kernel thì bạn khoan vội mày mò tìm hiểu nội dung trong gói source code của Linux Kernel nếu chưa thực sự có kiến thức và sự hiểu biết về các vấn đề sau:

1. Triết lý của phần mềm tự do (Free Software) và những quy định trong giấy phép GNU GPL mà Linux Kernel tuân theo:

=> điều này giúp bạn biết cách sử dụng và phân phối Linux sao cho đúng *luật lệ và tinh thần* của cộng đồng nguồn mở.

Xem thêm:

http://www.gnu.org/philosophy/
http://www.gnu.org/licenses/gpl.html

2. Quy trình phát triển Linux kernel:

=> gồm các bước, thủ tục, nguyên tắc nào cần phải tuân thủ; cách thức làm việc, cộng tác với các developer khác trong cộng đồng Linux Kernel Development…. Thông qua đây bạn cũng biết được quy trình phát triển phần mềm nguồn mở nói chung.

Xem thêm:

http://ldn.linuxfoundation.org/how-participate-linux-community
http://www.kernel.org/doc/Documentation/HOWTO

Hai documentation trên chỉ mang tính định hướng cho bạn khi tham gia vào quá trình phát triển Linux kernel chứ không chứa chi tiết các vấn đề kỹ thuật liên quan đến cách thức lập trình Linux kernel ra làm sao.

Trong gói source code của Linux kernel có một số file tham khảo quan trọng mà bạn cần đọc, tham khảo phần Documentation ở link sau để biết những file nào cần đọc

http://www.kernel.org/doc/Documentation/HOWTO

3. Nắm vững C – ngôn ngữ lập trình chủ đạo mà tạo nên gần hết mã nguồn Linux kernel

=> thành thạo lập trình C ở mức sâu là cực kỳ cần thiết. Một số phần của mã nguồn Linux cũng được viết bằng Assembly nhưng chỉ cần thiết học nó nếu bạn muốn phát triển Linux ở mức thấp dành cho một kiến trúc (architecture) cụ thể nào đó như x86, x64,… Tham khảo một số sách tốt về C sau:

4. Một số nguồn tài nguyên trợ giúp bạn trong quá trình học tập, nghiên cứu và phát triển Linux kernel

Sách:

Website:

http://kernelnewbies.org/ 
http://lwn.net/ 
http://kernel.org/ 

—-

Kết luận:

Tất cả những điều trên đôi khi rất khó để thực hiện đúng và đủ. Có thể phải mất nhiều năm để luyện tập, thích ứng và hoàn thiện công việc phát triển Linux. Nó là một quá trình liên tục và cải tiến không ngừng nên đòi hỏi cần có sự đam mê, quyết tâm và sự bền bỉ, kiên trì. Nhưng như bạn thấy đấy, đã có rất nhiều người tham gia dự án này và trở thành Core Linux Developer và ai cũng vậy thôi, tất cả đều bắt đầu từ những thứ căn bản nhất mà mình đã đề cập ở trên.

–manthang.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s