Thứ Ba, 14 tháng 9, 2010

Thấy gì qua các con số thống kê về việc phát triển nhân Linux

Sự khác biệt lớn nhất và có ý nghĩa nhất trong phát triển nhân Linux nằm ở mô hình phát triển phần mềm của nó với tốc độ tung ra phiên bản mới cứ 2-3 tháng một lần bởi một cộng đồng rộng lớn khắp thế giới với gần 5.000 người là các lập trình viên cá nhân tình nguyện và nhân viên của hơn 500 công ty, cả phần mềm lẫn phần cứng, thậm chí là cả từ một vài công ty không nằm trong nền công nghiệp công nghệ thông tin, điều chưa từng thấy đối với bất kỳ phần mềm nào trên thế giới từ trước tới nay.

Ai đang làm ra các phiên bản nhân Linux, nó đang được làm như thế nào, nhanh tới mức độ nào, là những câu hỏi mà lời giải đáp của chúng nằm trong tài liệu do Quỹ Linux (Linux Foundation) xuất bản lần thứ 2 vào tháng 08/2009 mang tựa đề: “Phát triển nhân Linux”.

Đã từ nhiều năm nay, cuộc tranh cãi và so sánh giữa hệ điều hành tự do nguồn mở GNU/Linux và các hệ điều hành khác, như Windows, Mac OS X hay Unix về những khả năng của chúng về an ninh, ổn định, tính bền vững, tốc độ thực thi, khả năng có lỗi và sửa lỗi, khả năng tương thích với các trình điều khiển thiết bị phần cứng, sự áp dụng của các doanh nghiệp trong cả các máy tính chủ cũng như các máy tính cá nhân cùng nhiều so sánh khác, vẫn luôn là điều mà hầu hết mọi người có cảm tưởng sẽ không có hồi kết.

Tuy nhiên, nhiều câu trả lời cho những so sánh ở trên là có thể hình dung được, suy luận được từ thực tế phát triển nhân Linux, thành phần - khó có thể nghi ngờ - của một hệ điều hành của tương lai, thành phần cốt lõi của hệ điều hành GNU/Linux, thành phần mà có nhiệm vụ quản lý phần cứng, chạy các chương trình của người sử dụng, và duy trì tổng thể an ninh và tính toàn vẹn của toàn bộ hệ điều hành.

Nhờ có hệ thống quản lý mã nguồn Git, mọi con số thống kê cho sự phát triển nhân Linux từ năm 2005, chính xác hơn là từ phiên bản nhân 2.6.11 cho tới thời điểm mà tài liệu được xuất bản, phiên bản nhân 2.6.30, đã được ghi chép lại một cách hết sức đầy đủ. Một vài con số thống kê có thể chỉ ra bên dưới.

1. Mô hình phát triển và tần suất tung ra phiên bản

Có thể nói rằng, sự khác biệt lớn nhất và có ý nghĩa nhất trong phát triển nhân Linux nằm ở mô hình phát triển phần mềm của nó. Nhân Linux được phát triển theo một mô hình lỏng lẻo, dựa vào thời gian, với một phiên bản nhân chính và mới cứ mỗi 2-3 tháng một lần được tung ra một lần. Từ ngày 02/03/2005 cho tới ngày 09/06/2009 (trong vòng 4 năm 3 tháng) đã có tới 20 phiên bản ổn định của nhân được tung ra, từ phiên bản 2.6.11 cho tới 2.6.30.

2. Tốc độ của những thay đổi trong nhân Linux

Khi chuẩn bị công việc để đệ trình cho nhân Linux, các lập trình viên chẻ các thay đổi của họ thành các đơn vị nhỏ, riêng rẽ, gọi là các bản vá. Các bản vá này có liên quan tới việc thêm, sửa hoặc xóa các dòng mã lệnh được đưa vào nhân đang được xây dựng nhằm đảm bảo chất lượng mã nguồn và sửa các lỗi trong nhân. Số lượng các bản vá ngày một gia tăng, nếu ở phiên bản 2.6.11 số lượng bản vá là 3.616 thì tới phiên bản 2.6.30 đã là 11.989. Tốc độ thay đổi các bản vá theo thời gian cũng gia tăng, nếu ở phiên bản 2.6.11 là trung bình 2.18 bản vá trong 1 giờ đồng hồ thì tới phiên bản 2.6.30 con số này đã là 6.40, và con số này vẫn tiếp tục gia tăng.

3. Kích cỡ nguồn của nhân Linux

Điều đáng lưu ý là những con số về bản vá nêu ở trên chưa phải là tất cả, nếu biết rằng nhiều bản vá đã không bao giờ được chấp nhận để đưa vào nhân dòng chính thống. Vì thế mà khả năng giữ vững được tốc độ thay đổi như vậy trong nhiều năm là chưa từng thấy trong bất kỳ dự án phần mềm công cộng nào từ trước tới nay.

Nhân Linux giữ tăng trưởng về kích cỡ qua thời gian khi mà nhiều phần cứng được hỗ trợ hơn và nhiều tính năng khác được bổ sung thêm. Nếu chỉ tính tới các con số thực sự được đưa ra như là “mã nguồn”, thì số lượng tệp và số lượng các dòng mã lệnh của từng phiên bản nhân cũng ngày một gia tăng, nếu ở phiên bản 2.6.11 có số lượng tệp là 17.090 và số dòng lệnh là 6.624.076 thì tới phiên bản 2.6.30 các con số tương ứng đã là 27.911 và 11.560.971. Một lưu ý nữa là tốc độ tăng trưởng của nhân luôn ở mức cao, nhưng nó đã gia tăng đáng kể sau phiên bản nhân 2.6.27, khi có sự bổ sung cây Linux tiếp theo (chứa đựng nhưng thay đổi được mong đợi trong phiên bản tiếp theo của nhân).

Số lượng dòng mã lệnh được thêm, xóa và sửa trong từng ngày theo từng phiên bản nhân cũng gia tăng. Nếu ở phiên bản 2.6.11 các con số cho các dòng lệnh được thêm, xóa và sửa là 3.224; 1.360 và 1.290, thì tới phiên bản 2.6.30 các con số tương ứng đã là 12.993; 4.958 và 2.830 một cách tương ứng. Tốc độ thay đổi này là lớn hơn bất kỳ dự án phần mềm công cộng nào với bất kỳ kích cỡ nào từ trước tới nay.

4. Ai đang tiến hành công việc

Số lượng đa dạng các lập trình viên và các công ty có thể nhận biết được đang đỡ đầu cho phát triển nhân Linux đã và đang gia tăng qua các phiên bản nhân khác nhau. Trên thực tế, cộng đồng phát triển của các cá nhân đã tăng gấp đôi trong 3 năm qua. Nếu ở phiên bản 2.6.11 có 389 lập trình viên từ 68 công ty được biết tên tham gia phát triển nhân Linux, thì tới phiên bản 2.6.30 các con số này đã là 4.910 và 532 một cách tương ứng.

5. Ai đang đỡ đầu cho công việc này

Nhân Linux là một nguồn có số lượng lớn các công ty khác nhau sử dụng. Trong số đó, nhiềucông ty đó chưa bao giờ tham gia vào sự phát triển của nhân cho dù số lượng các công ty đang làm việc để cải tiến cho nhân vẫn đang ngày một gia tăng. Hiện các lập trình viên được thuê, được trả tiền từ các công ty đang tiến hành gần 75% lượng công việc của nhân, trong số hơn 25% còn lại thì 7.6% số lượng công việc được thực hiện mà còn chưa rõ từ công ty nào, và 18.2% là từ các lập trình viên độc lập và những người tình nguyện mà không nhận tài chính từ bất kỳ công ty nào.

Trong số gần 75% công việc của nhân được nêu ở trên, các công ty và tổ chức có đóng góp cho sự phát triển nhân Linux trong vòng 3 năm vừa qua theo thứ tự xếp hạng từ trên xuống, với con số trong ngoặc là số % đóng góp, lần lượt là: Red Hat (12.3), IBM (7.6), Novell (7.6), Intel (5.3), Consultant (2.5), Oracle (2.4), Linux Foundation (1.6), SGI (1.6), Parallels (1.3), Renesas Technology (1.3), Academia (1.2), Fujitsu (1.1), MontaVista (1.1), MIPS Technologies (1.1), Analog Devices (1.0), HP (1.0), Freescale (0.9), Google (0.9), Linutronix (0.9), Astaro (0.8), NetApp (0.7), Marvell (0.6), Nokia (0.6), Simtec (0.6), QLogic (0.6), Movial (0.5), AMD (0.5), Microsystems (0.5) và hơn 500 công ty khác mà không được liệt kê tên ở đây.

Lưu ý là nếu tính tới sự phát triển của từng phiên bản nhân Linux, thì số lượng và tên của các công ty có thể sẽ là khác với các tỷ lệ đóng góp cũng sẽ khác so với danh sách ở trên. Ví dụ như, nếu lấy sự phát triển của phiên bản nhân 2.6.24 làm ví dụ, thì sẽ thấy có tên của một số công ty khác như: NTT (0.7), AMD (0.8); XenSource (0.7)...

6. Ai đang rà soát lại công việc

Các bản vá không thường đi một cách trực tiếp vào trong nhân dòng chính thống; thay vào đó, chúng đi qua một trong hàng trăm cây của các hệ thống phụ. Mỗi cây của các hệ thống phụ được chuyên biệt cho một phần nhất định của nhân (những ví dụ có thể là các trình điều khiển cho đĩa cứng SCSI, mã cho kiến trúc x86, hoặc mạng) và theo sự kiểm soát của một người duy trì cụ thể nhất định. Khi một người duy trì của một hệ thống phụ phê chuẩn một bản vá đưa vào trong một cây hệ thống phụ, thì anh hoặc chị ta sẽ gắn một dòng “Được ký bởi” vào đó. Trên thực tế, việc ký phê duyệt mã nguồn để được đưa vào các phiên bản nhân có thể là các cá nhân hoặc đại diện của các công ty (lưu ý là nhân Linux được cấp phép theo giấy phép GPLv2, vì thế dù là ai thay mặt công ty bất kỳ nào ký phê chuẩn mã nguồn để đưa vào nhân, thì các mã nguồn đó đều là phần mềm tự do và không phải là sở hữu của các công ty đó), cụ thể như sau:

Đối với các phiên bản trước 2.6.24, 10 cá nhân xếp hạng hàng đầu (với số phần trăm được để trong dấu ngoặc) ký phê chuẩn mã nguồn để đưa vào nhân là: Andrew Morton (10.5), Ingo Molnar (9.9), David S. Miller (9.6), John W. Linville (6.0), Mauro Carvalho Chehab (5.4), Greg Kroah-Hartman (3.8), Jeff Garzik (3.0), Thomas Gleixner (2.7), Linus Torvalds (2.7) và James Bottomley (2.1). Như chung ta có thể thấy, Linus Torvalds trực tiếp trộn chỉ dưới 3% tổng các dòng của các bản vá dù ông vẫn là người quan trọng nhất trong sự phát triển của nhân Linux, khi ông là người chịu trách nhiệm với các “ủy thác trộn”, nơi mà một tập hợp những thay đổi được trộn trong những thay đổi khác. Linus Torvalds tạo ra số lượng lớn những ủy thác trộn đó.

Đại diện 10 công ty và tổ chức xếp hạng hàng đầu ký phê chuẩn mã nguồn để đưa vào nhân là: Red Hat (36.4), Google (10.5), Novell (8.2), các tình nguyện viên (7.6), Intel (6.4), IBM (5.3), Linutronix (2.8), Linux Foundation (2.7), Consultant (1.9) và Hansen Partnership (1.6).

7. Vì sao các công ty hỗ trợ phát triển nhân Linux

Danh sách các công ty tham gia trong sự phát triển nhân Linux có nhiều công ty công nghệ thành công nhất đang tồn tại. Không có công ty nào đang hỗ trợ sự phát triển của Linux như một hành động từ thiện; trong từng trường hợp, những công ty này thấy rằng việc cải tiến nhân sẽ giúp họ có tính cạnh tranh hơn trong các thị trường của họ. Một số ví dụ:

  • Các công ty như IBM, Intel, SGI, MIPS, Freescale, HP, Fujitsu, … tất cả đang làm việc để đảm bảo rằng Linux chạy tốt trên các phần cứng của họ. Và đổi lại, làm cho những chào mời của họ cuốn hút hơn đối với những người sử dụng Linux, kết quả là bán hàng được gia tăng.

  • Các nhà phân phối như Red Hat, Novell, và MontaVista có sự quan tâm rõ ràng trong việc làm cho Linux có khả năng nhất có thể. Qua đó các công ty này cạnh tranh mạnh mẽ với nhau vì các khách hàng, tất cả họ làm việc cùng nhau để làm cho nhân Linux được tốt hơn.

  • Các công ty như Sony, Nokia, và Samsung xuất xưởng Linux như một thành phần của các sản phẩm như máy quay video, các đầu TV, và các điện thoại di động. Làm việc với quá trình phát triển nhân Linux giúp cho các công ty của họ đảm bảo rằng Linux tiếp tục sẽ là một cơ sở vững chắc cho các sản phẩm của họ trong tương lai.

  • Các công ty mà không kinh doanh công nghệ thông tin có thể vẫn thấy làm việc với Linux là có ích lợi. Nhân 2.6.25 đã đưa vào một triển khai của giao thức mạng PF_CAN mà đã được Volkswagen đóng góp. Nhân 2.6.30 đã có một bản vá từ Quantum Controls BV, mà nó làm các thiết bị định tuyến cho các tàu thuyền. Những công ty này thấy Linux sẽ là một nền tảng vững chắc mà dựa vào đó để xây dựng các sản phẩm của họ; họ đóng góp cho nhân Linux để giúp đảm bảo rằng Linux tiếp tục đáp ứng được các nhu cầu của họ trong tương lai. Không một hệ điều hành nào khác trao sức mạnh như vậy để gây ảnh hưởng tới sự phát triển trong tương lai cho những người sử dụng nó.

Có một số các lý do đối với các công ty để hỗ trợ nhân Linux. Kết quả là, Linux có được một cơ sở rộng rãi sự hỗ trợ mà nó không phụ thuộc vào bất kỳ công ty duy nhất nào. Thậm chí nếu người đóng góp lớn nhất mà có chấm dứt tham gia vào ngày mai, thì nhân Linux vẫn cứ giữ được là một cơ sở vững chắc với một cộng đồng phát triển tích cực và rộng lớn.

8. Kết luận

Nhân Linux là một trong những dự án nguồn mở thành công nhất từ trước tới giờ. Tốc độ thay đổi và số lượng những cá nhân đóng góp khổng lồ chỉ ra rằng nó có một cộng đồng mạnh mẽ và tích cực, tạo ra một cách ổn định sự tiến bộ của nhân đáp ứng số lượng những môi trường khác nhau mà nó được sử dụng trong đó. Tốc độ của sự thay đổi này tiếp tục gia tăng, khi mà số lượng các lập trình viên và các công ty tham gia vào trong quá trình này gia tăng; vì thế xa hơn, quá trình phát triển này đã chứng minh rằng có khả năng để mở rộng về phạm vi với tốc độ cao hơn mà không có lo lắng gì.

Có đủ các công ty tham gia cấp vốn cho phần lớn nỗ lực phát triển này, thậm chí cả khi nhiều công ty có thể hưởng lợi từ việc đóng góp cho Linux mà không cấp vốn cho nó. Với sự mở rộng hiện hành của Linux ở các thị trường máy chủ, máy để bàn và nhúng, hợp lý để mong đợi số lượng những công ty đóng góp - và các lập trình viên cá nhân - sẽ tiếp tục gia tăng. Cộng đồng phát triển nhân chào đón những lập trình viên mới; những cá nhân hoặc công ty có quan tâm trong việc đóng góp cho nhân Linux được khuyến khích tư vấn “Làm thế nào để tham gia vào cộng đồng Linux” (có thể thấy được tại http://ldn.linuxfoundation.org/book/how-participate-linux-community) hoặc liên hệ với các tác giả của tài liệu này hoặc với Quỹ Linux để có thêm thông tin.

Trần Lê

Nguồn: Linux Kernel Devolopment, The Linux Foundation, tháng 08/2009.


Không có nhận xét nào:

Đăng nhận xét

Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.