Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Linux Development Model

Linux Development Model

My talk about the Linux kernel development model @ Hanoi University of Science and Technology @ 3rd October, 2012

Ha-Duong Nguyen

October 03, 2012
Tweet

More Decks by Ha-Duong Nguyen

Other Decks in Technology

Transcript

  1. Mô hình phát triển Linux kernel Nguyễn Hà Dương, @cmpitg

    Đại sứ Fedora, Certified Mozillian Không gian Cộng đồng cmpitg [at] gmail dot com Tài liệu này được chia sẻ dưới điều khoản của giấy phép Creative Commons Attribution Share-Like 3.0 Unported Đại học Bách khoa Hà Nội @ 03/10/2012
  2. Chủ đề • Giới thiệu • Hệ điều hành &

    dự án GNU • Sơ lược lịch sử Linux • Mô hình phát triển Linux kernel • Hỏi đáp
  3. Giới thiệu • Link bài trình chiếu: https://speakerdeck.com/u/cmpitg/linux-development-model Hoặc http://goo.gl/hXOQN

    • Form đặt câu hỏi/góp ý: http://goo.gl/fy3UM • Đóng góp: http://goo.gl/o01Rq • Nhóm Không gian Cộng đồng: http://khonggiancongdong.org
  4. Hệ điều hành & dự án GNU Richard M. Stallman

    (RMS) tại MIT AI Lab những năm 1980: – Lỗi máy in → không được phép sửa – Password giới hạn người dùng – Đấu tranh cho tự do phần mềm Nguồn hình ảnh: http://www.opensource.ps
  5. Hệ điều hành & dự án GNU Dự án GNU

    và quyền tự do phần mềm: • Sử dụng bất kể mục đích • Nguyên cứu, sửa đổi và áp dụng • Phân phối (miễn phí hoặc có tính phí) • Phân phối lại bản sửa đổi Nguồn hình ảnh: Wikipedia
  6. Hệ điều hành & dự án GNU • Công cụ

    từ GNU – Trình biên dịch – Trình soạn thảo – Trình duyệt mail – Trình duyệt web – Các công cụ mạng – Trình IM – Trình điều khiển (driver) – Các công cụ văn phòng – …
  7. Sơ lược lịch sử Linux • Hệ điều hành MINIX

    của giáo sư Andrew S. Tanenbaum • Linus Torvalds: – Viết nhân HĐH cho riêng mình – Công bố rộng rãi trên Internet – Phân phối dưới giấy phép GPL Nguồn hình ảnh: http://corelab.ntua.gr
  8. Sơ lược lịch sử Linux • Mốc thời gian: –

    1971: Bản UNIX đầu tiên ra đời – 1972: Dennis Ritchie viết lại B và đặt tên là C – 1975: Bourne shell ra đời – 1977: Berkeley Software Design phát hành BSD – 1984: RMS bắt đầu dự án GNU – 1985: RMS thành lập Free Software Foundation – 1989: GNU và giấy phép GPL 1 được phát hành – 1991: Linus Torvalds thông báo phát hành Linux kernel – 10/1991: Linux 0.02 - bản Linux đầu tiên – 10/1991: Linux 0.12 - bản Linux đầu tiên dùng được – 04/1991: Linux 0.95, chạy được X – 03/1994: 1.0 – 06/1996: 2.0 – 12/2003: 2.6.0 – 07/2011: 3.0
  9. Mô hình phát triển Linux • Mô hình „Chợ“: –

    „Thánh Đường và Chợ“ (The Cathedral and the Bazaar) – Eric S. Raymond (ESR) • Version Control System: Git
  10. Mô hình phát triển Linux • Đóng góp: – Tổng

    số: • 8000 nhà phát triển • 900 công ty – Từ 05/2011 – 05/2012 • 2,833 nhà phát triển • 373 công ty
  11. Mô hình phát triển Linux • Kích thước kernel 3.2

    – 37,626 file – 15,004,006 dòng mã • Mỗi bản kernel phát hành đều được ký bằng chữ ký số (digital signature)
  12. Mô hình phát triển Linux • Quy trình: Design Emulation

    Simulation Kernel code submission Tape out Power on Integration Kernel code accepted OS bring up Time
  13. Mô hình phát triển Linux • Mỗi 2-3 tháng phát

    hành một phiên bản lớn (major release) • Với một phiên bản lớn ra đời → bắt đầu quá trình stable maintenance – Kéo dài ngắn nhất là 2 chu kỳ phát triển (140-180 ngày) – Thông thường: không dưới 01 năm – Nhánh embedded có chính sách khác: „The embedded long term support initiative“
  14. Mô hình phát triển Linux • Các thay đổi: –

    Chia rất nhỏ thành một patch – Patch được review công phu và cẩn thận trước khi được đưa vào nhánh phát triển chính • Merge commit do maintainer đảm nhiệm – Nếu xảy ra conflict → downstream chịu trách nhiệm sửa
  15. Mô hình phát triển Linux • Cách thức làm việc:

    – Trao đổi chính qua email trực tiếp – Mailing list có tác dụng tra cứu – Họp qua IRC – Issue tracker
  16. Mô hình phát triển Linux • Quy tắc làm việc:

    – Làm việc bằng logic, không phải bằng cảm tính – Họp qua IRC – Thông báo qua issue tracker
  17. This work is licensed under a Creative Commons Attribution­ShareAlike 3.0

    Unported License. It makes use of the works of Kelly Loves Whales and Nick Merritt