Translation(s): Dutch - English - Español - Français - Italiano - Polish - Português (Brasil) - Русский - tiếng Việt - 简体中文
"Tại Sao Debian?", có thể bạn đang băn khoăn. Debian chỉ là một đơn vị phân phối GNU/Linux, và cũng chỉ là một hệ điều hành (HĐH) có họ Unix. Cụ thể là cái gì làm cho nó vượt trội hơn? Tại sao tôi lại nên dùng Linux? Tài liệu này giải thích tất cả những băn khoăn này:
https://people.debian.org/~srivasta/talks/why_debian/talk.html
Để bảo đảm tài liệu này sẵn có cho tất cả mọi người, nó được bảo lưu tại đây:
Contents
- Tại sao Linux? Tại sao Debian?
- Triết lý và Cộng đồng
- Công dụng và tính Hữu dụng
- Chất lượng của phương tiện
- Bộ tính năng và những lựa chọn phần mềm
- Nhân
- Miền Người Dùng (User Land)
- Bảo trì và Quản trị
- Tính linh động và Hỗ trợ phần cứng
- Xây Nguồn
- An Ninh và Bền Vững
- Hiệu Xuất và Độ Nhân Rộng
- Kết Luận
- Ghi Nhận
- Tài Nguyên Khác
Tại sao Linux? Tại sao Debian?
bởi Manoj Srivastava (srivasta at debian.org)
Có thể tôi không phải là người phù hợp nhất để vô tư thảo luận về lựa chọn HĐH, một phần vì quan điểm của tôi không trung lập, một phần vì kinh nghiệm ít ỏi của tôi với các HĐH khác. Tôi cũng không giỏi biện luận về lựa chọn của mình, bởi vì khả năng là lý do của tôi không phải lý do của toàn cầu, và môi trường mà tôi quyết định con đường của mình (vì có một số tác động giữ tôi theo hướng này) không còn tồn tại nữa.
Tuy nhiên, tôi phải cố gắng để làm cho buổi toạ đàm này có quan điểm rộng hơn là góc nhìn của riêng cá nhân tôi, và nêu ra được quan điểm của những người đã lựa chọn tương tự như tôi -- nhưng nhận biết được tính cá nhân của chủ đề này, tôi sẽ truyền đạt đa số từ quan điểm của tôi, và quan điểm của những người đã chọn Debian.
Phán đoán được đọc giả của toạ đàm này, tôi sẽ không tốn quá nhiều thời gian về lý do vì sao nên chọn một HĐH họ UNIX thay vì HĐH của Microsoft. Tóm gọn có thể nói những lý do rành rành sau đây làm tôi tránh xa Windows: Bảo Mật. Linh Hoạt. Kiểm soát về tính năng. Triết lý. Chi Phí. Tốc Độ. Hiệu Năng. Số lượng sẵn có của các phần mềm ứng dụng. Độ nhạy cảm về các loại vi-rút. Độ mở và tốc độ để khắc phục lỗi. Liên kết cụm máy. Tính năng đa dụng người dùng chung một HĐH. Không cần phụ thuộc vào đồ hoạ và trình duyệt HTTP như một phần chính của HĐH.
https://www.michaelhorowitz.com/Linux.vs.Windows.php cung cấp một sự so sánh khá trung lập giữa Linux và Windows, và có thể phục vụ như lời giới thiệu về Linux đến cho người dùng Windows. Bài viết có hơi một chút thiên vị về mặt thương mại (ví dụ như thành công của các công ty/đơn vị phân phối Linux).
Triết lý và Cộng đồng
Suy cho cùng, triết lý là thứ bền vững nhất để tách biệt giữa những HĐH mà chúng ta đang cân nhắc. Hiệu xuất có thể thay đổi. Tính dễ tiếp cận, độ bền, độ sẵn có của phần mềm -- tất cả những thứ này đều có thể thay đổi theo thời gian, và bạn sẽ cần phải tự xem xét lại về những mặt này.
Tôi phải thú nhận là triết lý và cộng đồng là thứ mà đã thúc đẩy tôi sang phía Linux, và rồi đến Debian; và tôi nghĩ tôi những thứ này chính là những điểm quan trọng nhất, mà rất hay bị đánh giá thấp.
Tại sao phần mềm tự do lại là điều tốt? Sau hơn hai mươi năm tôi dính líu đến phần mềm tự do, tôi đã hỏi mọi người xung quanh về điều này (và đa số khá ngạc nhiên về câu trả lời). Lý do phổ biến là vì nó ngầu, hoặc là vì nó không tốn đồng nào. Động cơ của các tác giả cũng rất rộng, nhưng phần lớn họ chỉ được trả công bằng sự công nhận, trong một nhóm bạn nhỏ, hoặc với kinh nghiệm mà có thể giúp ích cho việc kiếm cơm.
Nhưng tôi nghĩ vẫn thiếu triết lý tồn tại của phần mềm tự do -- cái phần đứng trên vai của vị lãnh tụ nào đó. Tôi thích ví von theo cách mà các nhà nghiên cứu hay làm. Nếu các nhà nghiên cứu buộc phải tự phát minh ra hình tròn, và phải tự khám phá cho bản thân những thứ đã có sẵn trong sách giáo khoa, tiến độ công việc ắt phải bị đình trệ. Đa số tôi và bạn bè đều bắt đầu hành trình nghiên cứu của mình từ việc tìm hiểu văn học, tìm kiếm những cuộc điều tra thú vị, và khả năng là suy đoán từ những bài luận ngoài lề, xây dựng trên những ý tưởng và kỹ thuật của những nhà nghiên cứu cùng ngành khác. Tấm màn bí mật che đậy công việc nghiên cứu của mình đa số cũng chỉ tồn tại cho đến ngày công bố -- và rồi mọi người đều chi sẻ kỹ thuật, ý tưởng, thành quả -- đặc biệt tính tái sản xuất luôn là mấu chốt của thành công.
Tương phản điều này với các phần mềm chủ thuộc, thứ mà luôn bắt chúng ta phải bắt đầu lại từ đầu -- tôi nghĩ chúng ta sẽ vươn rất xa nếu chúng ta có thể chia sẻ và xây dựng trên ý tưởng và thành quả của người khác. Điều này sẽ giảm thiểu thời gian, công sức, và chi phí của sự sáng tạo, cho phép cho những tập quán và các xu hướng thiết kế tốt nhất để phát triển và trưởng thành, và giảm thiểu sự nhàm chán của lập trình, thứ mà luôn là rào cản để phát triển những giải pháp từ nội bộ.
Chúng ta chỉ cần đảm bảo rằng động cơ cho sự phát triển vẫn tồn tại (và cũng không nhất thiết là chỉ vì lợi nhuận).
Quan niệm này dẫn tôi đến GPL, và tổ chức phần mềm tự do, thay vì phía giấy phép BSD, dù nó cũng là giấy phép cho phần mềm tự do, và rồi dẫn tôi đến lựa chọn Debian. Theo quan điểm cá nhân của tôi, giấy phép BSD chú trọng về tự tôn bản thân về việc viết phần mềm tự do, mà không quan tâm đến việc phần mềm mình viết sẽ đi về đâu; tôi muốn hơn thế. Tôi muốn sức lao động của tôi giúp xây dựng một cộng đồng màu mỡ; nuôi dưỡng được những phần mềm hữu dụng khác.
Debian là một thực thể của việc xây dựng cộng đồng; cùng nhau, chúng ta đạt được gấp bội lần so với khi làm việc đơn độc. Yếu tố quan trọng trong sự lựa chọn của tôi là hợp đồng xã hội của Debian, với sự pha trộn của phần mềm tự do, và sự nhận biết rất thực tế về những trường hợp khi yêu cầu của một số phần mềm không thể theo xát chủ trương.
Cộng đồng là lý do còn lại tôi chọn Linux thay vì BSD. Lúc đó, tôi đang loay hoay tìm một HĐH họ UNIX để cài vào cái máy 385 mới toanh mà trường đại học vừa phát, BSD chắc chắn hơn rất nhiều, hiệu xuất tốt hơn rất nhiều, bạn bè của tôi có người tôn thờ BSD. Nhưng điều làm tôi phật ý là hệ thống đẳng cấp trong cộng đồng BSD. Phía trên là những nhà phát triển chính, rồi bên dưới là những người mới học đòi đóng góp. Cộng đồng Linux dù rất ồn ào, nhưng có vẻ dễ gần hơn rất nhiều -- huyết thống của bạn không quan trọng bằng mã nguồn bạn đóng góp. Và tôi có thể đóng góp ngay tức thì vào cái HĐH mà tôi sử dụng. Tôi nghĩ đây cũng là lý do tôi thích Debian -- tôi đã dùng nó đủ lâu để điều chỉnh nó thành cái HĐH mà tôi muốn.
Công dụng và tính Hữu dụng
Hy vọng là vẫn còn người theo chủ nghĩa thực dụng đang đọc, những yếu tố chính mà đa số mọi người chú trọng khi lựa chọn HĐH là chi phí, công dụng và độ hữu dụng. Tất nhiên, công dụng sẽ dựa theo mục đích và yêu cầu sử dụng của riêng bạn, nhưng có những mảng rộng hơn mà chúng ta vẫn có thể bàn đến.
Có nhiều thành phần trong một HĐH hơn là chỉ phần nhân và đống phần mềm nằm phía trên - sự tương thích của hệ thống là một chủ đề rất hay bỏ dở khi thảo luận về giá trị của một hệ thống. Nhưng một hệ thống tương hợp - khi mỗi phần nhỏ tương trợ các phần nhỏ khác trong hệ thống - tăng độ hữu dụng lên đáng kể so với những lựa chọn khác.
Debian, từ kinh nghiệm cá nhân, và kinh nghiệm của chúng bạn, là HĐH tương hợp nhất. Các gói của Debian truy xuất quan hệ của nhau không chỉ theo cơ chế phụ thuộc/mâu thuẫn, mà đầy đặn hơn rất nhiều - tiền phụ thuộc, phụ thuộc thường, tiến cử, khuyến cáo, va chạm, tương trợ. Ngoài ra, các gói còn được sắp đặt theo phạm trù tuỳ theo độ quan trọng (cần thiết đến phụ trợ), và tính năng. Những mối quan hệ phong phú này là minh chứng cho hệ thống gói chú tâm và để ý rất cao đến cách mà các phần mềm tương thích với nhau.
Debian được phát triển bởi 1000 tình nguyệt viên. Nghĩa là tất cả nhà phát triển đều có quyền tự chọn phần mềm họ thích hoặc cần bảo trì cho công việc thường ngày của họ. Đây là lý do vì sao Debian có thể bao phủ rất nhiều mảng chuyên sâu khác nhau - các nhà phát triển có thể giải quyết vấn đề đặc thù mà chính cá nhân họ đang cần. Hệ thống chuyên trị phân tản này khác biệt hoàn toàn so với những đơn vị phân phối chỉ có thể tập trung để đáp ứng cho thị trường phổ biến nhất.
Trong thực tế, tôi thấy là những máy chạy Debian không cần săn sóc và dễ cập nhật hơn mà rất ít khi hỏng so với những máy chạy Red Hat hay là Mandrake mà tôi quản lý. Tôi còn nghe nói là quản máy chạy ví dụ như SunOS thì, um, rất thú vị.
Một trong những lý do để chọn Debian thay vì đơn vị phân phối khác là vì kích cỡ của dự án gợi ý rằng nó khó có thể tự dưng biến mất và bỏ mặc để người dùng không còn được hỗ trợ. Debian cũng không thể phá sản. Hợp đồng xã hội cũng không cho phép dự án tự dưng ngừng hỗ trợ những phiên bản không thuộc chủ quyền của doanh nghiệp. Tôi cũng không muốn HĐH của mình bị kiểm soát bởi kế hoạch kinh doanh của một doanh nghiệp nào.
Bạn có thể lựa chọn mức độ rủi ro mà bạn dám chấp nhận, vì Debian có ba phiên bản phát hành: Stable (Ổn Định), Testing (Thử Nghiệm), và Unstable (Không Ổn Định). Trên một vài máy của chúng tôi (máy hầu, máy công cộng) chúng tôi chạy 'Ổn Định'. Một vài máy (đơn lẻ) khác chạy đa dạng các bản Thử Nghiệm và Không Ổn Định. (Lưu ý là không có cập nhật an ninh cho những bản Thử Nghiệm). Tôi cũng chạy vài bản Thử Nghiệm trên vài máy cá nhân của mình. Lợi thế đây là tôi có khả năng quyết định để mỗi máy phục vụ cho từng nhiệm vụ khác nhau. Nhưng kể cả những lựa chọn mạo hiểm vẫn rất chắc chắn để chẳng bao giờ hỏng. Và bản Ổn Định thì không bao giờ hỏng ;-).
Debian cung cấp rất nhiều thông tin cho thượng nguồn. Ví dụ, dự án XFree không tự bảo trì hay gỡ lỗi cho X trên tất cả kiến trúc mà Debian hỗ trợ -- bên đó phải nhờ Debian làm việc này. Đã có rất nhiều chỉnh sửa cho libc (gần đây có lỗi đếm sai trong glibc khi dlopen() một vật chia với các tệp ELF phụ thuộc được tìm thấy bởi các nhà phát triển Debian). Những khắt khe về chi tiết này thật khó để các đơn vị phân phối Linux khác có thể cạnh tranh. Đẳng cấp về kiến thức, tốc độ, và hỗ trợ thân thiện cho người dùng thật đáng kinh ngạc -- chưa có thứ gì có tôi từng dùng thể so sánh ngang được từ thời dùng những sản phẩm thương mại như của DEC -- trừ khi phải trả rất nhiều tiền. Doanh nghiệp có thể nhận được hỗ trợ từ bên thứ ba mà không cần chuyên gia trong nội bộ, khi sử dụng Debian.
Cho những hệ thống dẫn xuất, DFSG và "main" đơn giản hoá hệ thống xây với những giấy phép dễ đoán.
Chất lượng của phương tiện
Người ta thường nói dùng Debian là vì apt-get, hoặc apt là ứng dụng số dzách của Debian. Nhưng apt-get không phải là thứ mà quyết định trải nghiệm tuyệt hảo này: apt-get là một tính năng rất dễ tái lập (và, theo quan điểm cá nhân, không bao giờ sánh bằng), bởi các đơn vị phân phối khác -- gọi là urpmi, apt4rpm, yum, hay cái gì đó tuỳ thích. Điểm khác biệt là chính sách của Debian, chuỗi định dạng gói hết sức chặt chẽ (chú ý đến apt-listchanges, apt-list-bugs, dpkg-builddeps, pbuilder, pbuilder-uml -- không có phương tiện nào mà thiếu chính sách đằng sau (hãy tưởng tượng listchangelog mà thiếu định dạng chặt chẽ của changelog)). Thật sự là rất dễ để cài phần mềm trên máy Debian.
Chuyện này khá giống văn hoá tín đạo Cargo (https://en.wikipedia.org/wiki/Cargo_cult): nghĩa là, apt-get chỉ là bề nổi của hệ thống chính sách của Debian, tương đương với phong tục xây đường băng máy bay giả của Cargo-Cult và các phong tục khác tượng trưng cho nguồn sản phẩm đến từ phương Tây ("cargo"); giả tạo mọi thứ từ gỗ ví dụ như tai nghe cho đài kiểm soát. Tương đương như vậy, các đơn vị phân phối khác cũng giả tạo những thứ nông cạn từ bề nổi của nền tảng gói phần mềm của Debian mà không chú tâm đến vấn đề nằm sâu bên trong chính sách. Tệ hơn: mâu thuẫn giữa mục tiêu kỹ thuật và tiếp thị nằm chồng chéo lên nhau. Những đơn vị phân phối GNU/Linux thì bị ảnh hưởng ít hơn so với phần mềm chủ thuộc, nhưng tình trạng này vẫn khá rõ ràng.
Red Hat, Mandrake, và các đơn vị phân phối trong lớp này đều có cài đặt nền cực lớn. Tại sao? Tôi tin là vì cài phần mềm là việc rất mơ hồ. Kể cả RPM, thủ tục rất rườm rà, không thể hệ thống hoá. Với Debian, thật sự rất nhẹ nhõm.
Vậy là ứng dụng số dzách thật ra là chính sách của Debian, đội an ninh, cơ chế gỡ lỗi theo các cấp ưu tiên, và chính sách về lỗi (chính xác là: bất kì trình nào không có trang man thì tự động là lỗi. Mọi tương tác với người dùng mà không dùng debconf là lỗi). Như trang bách khoa Why Debian Rocks (https://twiki.iwethey.org/Main/WhyDebianRocks) ghi:
This is the crux, the narthex, the throbbing heart of Debian and what makes it so utterly superior to all other operating systems. Policy is defined. It is clear. It is enforced through the tools you use every day. When you issue apt-get install foo, you're not just installing software. You're enforcing policy - and that policy's objective is to give you the best possible system.
Đây là điểm then chốt, là đại sảnh, là trái tim phập phập của Debian và là thứ mà làm cho nó vượt trội lên khỏi các HĐH khác. Chính sách được định nghĩa. Rất rõ ràng. Nó được thực thi qua các công cụ bạn dùng hằng ngày. Khi bạn chạy lệnh apt-get install foo, bạn không chỉ đang cài phần mềm. Bạn đang thực thi chính sách - và mục tiêu của chính sách là thứ dâng tặng cho bạn hệ thống tuyệt vời nhất.
What Policy defines are the bounds of Debian, not your own actions on the system. Policy states what parts of the system the package management system can change, and what it can't, how to handle configuration files, etc. By limiting the scope of the distribution in this way, it's possible for the system administrator to make modifications outside the area without fear that Debian packages will affect these changes. In essence, Policy introduces a new class of bugs, policy bugs. Policy bugs are release-critical -- a package which violates policy will not be included in the official stable Debian release.
Cái mà Chính Sách định nghĩa là những rào cản của Debian, nhưng không phải là đối hoạt động của bạn trên hệ thống. Chính Sách đề ra phần nào của hệ thống mà hệ thống quản lý gói được quyền thay đổi, và phần nào thì không được, và cách xử lý các tệp thiết lập v.v.. Bởi những giới hạn này, quản trị viên có thể điều chỉnh hệ thống bên ngoài vùng đã định mà không phải lo sợ các gói của Debian sẽ bị ảnh hưởng. Suy ra, Chính Sách tạo ra một loại lỗi mới, lỗi chính sách. Lỗi chính sách là cực-nghiêm-trọng -- một gói mà làm sai chính sách sẽ không được bao gồm vào trong bản phát hành chính thức của Debian.
Let me reiterate, because that is the whole secret: A package which violates policy will not be included in the official stable Debian release.
Để tôi nhắc lại, vì đây là toàn bộ bí mật: Gói mà vi phạm chính sách sẽ không được bao gồm trong bản phát hành chính thức của Debian.Thêm vào đó là Đội Đảm Bảo Chất Lượng (Quality Assurant (QA)), đội mà không làm việc bảo trì đăng tải (NMU), họ giúp chỉn chu việc gỡ lỗi, cập nhật an ninh, và đảm bảo có ai đó bao quát toàn bộ hệ thống, và làm việc để thống nhất toàn bộ HĐH, chứ không đơn thuần sửa những lỗi riêng lẻ. Đó là lý do người ta nguyện thề cùng Debian. Có rất nhiều công cụ trong hệ thống con của ĐĐBCL để giúp các nhà phát triển chăm sóc những gói phần mềm -- cứ thử xem qua https://qa.debian.org/developer.php?login=srivasta.
Công đoạn đánh giá từng gói phải được trải qua thời gian trong phiên bản Không Ổn Định trước khi nó được chuyền sang Thử Nghiệm thêm thắt cho chất lượng của sản phẩm. Đến khi một gói nào đó không còn những vấn đề nghiêm trọng qua một quãng thời gian, nó mới được đưa vào phiên bản phát hành Thử Nghiệm. Đây là bản phát hành đợi để được gia nhập vào bản phát hành Ổn Định, bản mà chỉ phát hành khi tất cả các lỗi nghiêm trọng đã được giải quyết. Sự tỉ mỉ trong giai đoạn thử nghiệm này giải thích cho chu kì phát hành chậm hơn so với các đơn vị phân phối khác. Tuy nhiên, xét về mặt ổn định thì đây là một lợi thế. (Ghi chú: RH Enterprise Linux đang nhắm đến chu kì 12 - 24 tháng. Gần gống Debian lúc trước.)
Debian hỗ trợ rất nhiều kiến trúc và điều này cũng tăng chất lượng của các gói: chuyển giao kiến trúc phần mềm thường lộ ra những điểm yếu trong mã nguồn phía dưới. Thêm vào đó tất cả các gói của Debian phải trải qua khoảng 10 lần xây tự động, và yêu cầu không được có lỗi khi đang xây trong nhiều môi trường khác nhau, đòi hỏi độ chắc chắn cho công đoạn xây và trình cài đặt, và yêu cầu theo dõi nghiêm ngặt tiến độ xây dựng các phụ thuộc. Thêm vào đó là những kho bảo lưu và các công cụ theo dõi phiên bản, vậy là bạn có một hệ thống khá kiên cố (snapshot.debian.org cho phép quay về bản cũ dễ dàng hơn).
Hệ thống theo dõi lỗi của Debian là yếu tố quan trọng cho chất lượng của đơn vị phân phối này. Vì các bản phát hành được đánh số theo lỗi trong hệ thống, nó có thể đảm bảo cho chất lượng của bản phát hành vượt hơn bất kì HĐH họ UNIX chủ thuộc nào tôi đã từng dùng. Khi gặp lỗi RC (lỗi lúc chạy), Release Manager loại những gói không cần thiết rất ác liệt nếu lỗi không được khắc phục -- hoặc kìm chậm tiến độ phát hành nếu là gói với cần thiết với lỗi nghiêm trọng.
So sánh với những đơn vị phân phối Linux thị trường, Debian có tỷ lệ giữa nhà phát triển cao hơn rất nhiều trên số lượng gói. Thêm với việc không có hạn chót cho chu kì kinh doanh, Debian thường làm nhiều thứ đúng hơn là gấp rút cho kịp lễ Giáng Sinh.
Theo chuyện kể gần đây từ Slashdot, hiện có nhiều nhà phân phối dựa trên Debian hơn cả số lượng doanh nghiệp đầu ngành, RedHat (63 và vẫn đang tiếp tục đếm, Ubuntu, Xandros, Knoopix, Lycoris, Lindows (Lind--s ?), Libranet, Mophix ...).
Khắc phục lỗi thì đỉnh không thể bàn cãi. Tham khảo http://www.linuxworld.com/story/32607.htm và luôn cả cái trình (http://linuxmafia.com/faq/Debian/packag-databas-rebuild.html) về phục hồi hệ thống Debian mà không có bảo lưu của /var/lib/dpkg.
Bộ tính năng và những lựa chọn phần mềm
Debian hiện có hơn 29.000 gói. Khả năng là tất cả những thứ bạn cần đều đã được gói và bổ sung vào hệ thống, với một người chuyên giữ cho cái gói này (và một số gói khác) được cập nhật, và không bị vướng lỗi.
Debian có lực lượng toàn cầu rất lớn, phiên dịch không chỉ tài liệu (người ta gửi tôi bản phiên dịch cho các trang hướng dẫn của các gói tôi bảo trì), mà cả các tệp thiết lập và trình cài đặt (tất cả các tương tác với debconf đều có thể được toàn cầu hoá một cách cẩn thận). Việc này giúp cho độ phủ cực rộng cho các cộng đồng -- chúng tôi có rất nhiều người cho hàng tá thứ tiếng bản địa. Tôi nghĩ lực lượng toàn cầu của Debian có thể so ngang với Gnome và KDE.
Những điểm đáng chú ý khác mà tôi không có đủ thời gian để quan tâm đến là: dự án tài liệu của Debian, Alioth, Cài Đặt Debian, Debian CD, Lintian, và hệ thống theo dõi gói.
Vài điều khác nữa giữ chân tôi ở lại với Debian cho tới khi có thứ khác thay thế:
- debconf và khả năng lấy tin trước từ cơ sở dữ liệu (pre-seed database).
- make-kpkg với tất cả tin báo thời-điểm-cài được tắt.
- /usr/share/doc/{Changelog.Debian,changelog,copyright,README.Debian}
Debian cũng có các công cụ để thiết lập nhân như debootstrap, chroots, user mode Linux, Xen. Đủ loại công cụ giúp hack cơ chế cài đặt, nhân và trình nhúng.
Có một số cộng đồng nhỏ thích hợp cùng Debian. Đây là những dự án con: Debian-Jr, Debian-med, Debian-Edu, Debian-non-profit, và Debian-lex. Một số nhà phát triển của Debian là những người khiếm thị, Debian rất rất thân thiệt với những người khiếm thị. Có thêm vài tài liệu về Hỗn Hợp Debian Tinh Khiết.
Nhân
Nhân của BSD, xét từ mọi khía cạnh, có vẻ ổn định hơn, và chất lượng hơn so với nhân Linux. Nhân BSD dễ đọc và dễ hiểu hơn. Thay vào đó, nhân Linux có nhiều tính năng hơn, và chất lượng đã được cải thiện đáng kể, hiệu xuất tốt hơn, và hỗ trợ nhiều phần cứng hơn nhân BSD. Đặc biệt, tôi có nghe nói về hỗ trợ trình nhúng của BSD đang ngang tầm với Linux của 5 năm về trước. Tôi sẽ nói thêm về phần cứng phía dưới. Cá nhân tôi thấy những lỗi lặt vặt của nhân Linux vẫn có thể chấp nhận được. Nhìn tổng quát hơn thì tôi nghĩ máy chạy Debian ổn định ngang ngửa so với máy chạy FreeBSD. Tất nhiên, mấy lỗ hổng gần đây trong nhân Linux bắt đầu thách thức điều này. (Tuy nhiên, chúng ta nên nhớ rằng có nhiều tính năng hơn là thứ góp phần cho những lỗ hổng này: hai lỗi gần đây nhất là từ lệnh mremap(2) và lệnh này thì hoàn toàn không tồn tại trong *BSD.)
Tất nhiên, Debian GNU/FreeBSD có thể là lựa chọn tốt nhất để lợi dụng sự tối ưu từ cả hai phe.
Miền Người Dùng (User Land)
Miền người dùng của BSD khác với miền người dùng của GNU. Tôi trưởng thành từ miền người dùng của GNU cài đặt trên các máy như Ultrix/Aix/HP-UX để đồng nhất, và đối với tôi thì miền GNU cảm thấy dễ chịu hơn.
Lưu ý là bạn có thể cài miền người dùng GNU trên máy BSD, và rất nhiều người cũng làm vậy (ví dụ /usr/local/gnu/*). Trên những cài đặt có cả hai bộ công cụ này thì báo cáo cho thấy đa số người dùng sử dụng công cụ của GNU kể cả nó không phải là công cụ mặc định. Nói chung, công cụ của FreeBSD nhẹ hơn nhưng thiếu tính năng, và trên phần cứng hiện đại thì sự tiết kiệm dung lượng này thật không đáng kể.
Công cụ của BSD cũng không có lệnh help; dễ hơn để chỉ những người mới dùng rằng nếu họ gõ foo --help thì họ sẽ nhận được thông tin hữu dụng.
Miền người dùng của OpenBSD thì đầy đủ hơn. Tôi thích dùng GNU hơn vì thói quen, nhưng hệ thống của OBSD thì vẫn dùng được. FBSD là chuyện hoàn toàn khác - tụi FBSD nhắm đến tối giản hoá hệ thống nền, và tụi họ không mong là người ta sẽ sẽ chỉ dùng có chừng đấy - họ để cho người dùng cài thêm. FreeBSD vậy nên giống như Debian trong dòng BSD - bạn cài hệ thống nền rồi bạn xây dựng tiếp lên trên đó. Miền người dùng là cái gì thì tuỳ bạn.
Bảo trì và Quản trị
Người ta đồn là nâng cấp là điều tuyệt vời nhất của Debian. Nhiều hơn tất cả các HĐH khác, mạng lưới là kênh phân phối và là cơ chế nâng cấp của Debian. Chính sách, tư duy nằm trong các trương trình của bảo trì viên, và cách mà những trình này được gọi, và toàn bộ cấu trúc sắp xếp mạng lưới phụ thuộc bởi apt và đồng bọn, tất cả những điều này đều hoạt động cùng nhau để đảm bảo trải nghiệm mượt mà nhất khi nâng cấp tại chỗ (tôi chưa bao giờ phải cài lại toàn bộ máy, kể cả có vài máy đã từng nâng cấp tại chỗ 5 năm rồi). Cài lại cũng không phải là điều chưa từng nghe thấy trên hệ BSD (từ bản 2.8 hay 2.9, OpenBSD đã ít nhất hai lần tuyên ngôn cho người dùng i386 "nâng cấp không được hỗ trợ / không được khuyến khích, cài lại bản mới đi").
Tính dễ dàng sử dụng này góp phần cho an ninh của hệ thống; nâng cấp an ninh là việc thường xuyên trên Debian so với các hệ thống khác, tất cả nhờ đội An Ninh (Security). Đối với lũ thường dân như chúng ta không phải chuyên gia an ninh, có security.debian.org trong danh sách nguồn đảm bảo máy của chúng ta tiện cập nhật, và nhanh, sau khi khám phá đã được công bố -- vì đội an ninh đã bắt đầu kiếm cách vá lỗ hổng trước khi những chi tiết này được công bố. Nghĩa là hệ thống được cập nhật trong vài phút, thay cho cách cập nhật của BSD yêu cầu xây lại toàn bộ hệ thống (hay là toàn "thế giới").
Debian cố gắng đảm bảo nâng cấp vẫn mượt mà khi bỏ qua phiên bản phát hành - thứ này tôi không thấy được hỗ trợ ở những nơi khác. Tôi cứ nói đi nói lại về chất lượng gói.
Quản trị của Debian là lý do chính mà đa số mọi người tiếp tục dùng HĐH này. Tôi không biết có nhà phân phối nào khác mà bạn chỉ cần apt-get install sendmail, rồi bỏ đi chỗ khác mà có toàn bộ trình hầu thư, đầy đủ SASL và TLS, thiết lập đầy đủ, có cả luôn cả giấy chứng nhận. Tất cả việc quản trị có thể làm qua SSH mà chỉ cần tốc độ kết nối cỡ dây đồng điện thoại. (dial-up)
Debian cam kết thay đổi của người dùng luôn được vẹn toàn, và toàn bộ thiết lập nằm trong /etc (thay vì khắp nơi trong hệ thống tệp) làm cho việc bảo lưu rất dễ thao tác (tôi chạy kiểm soát phiên bản trong cái thư mục /etc của tôi).
Debian tương hợp với FHS, và LSB là mục tiêu khi phát hành.
Hệ thống phân phối và phát triển tản quyền theo tự nhiên của Debian tạo tính độc lập cho mọi thiết lập kho phần mềm cho các gói phân phối trong nội bộ; và những chính sách và cơ chế đảm bảo cho các bên thứ ba có thể xây hệ thông dễ dàng và tương hợp.
Tính linh động và Hỗ trợ phần cứng
Linux hay hỗ trợ những phần cứng chủ thuộc hơn là BSD. Đây có phải là vấn đề hay không thì tuỳ vào bạn cần gì. Hỗ trợ cho phần cứng chất lượng cao cũng như vậy. Ngoại lệ đáng kể là RAID cho ổ cứng; thẻ 3ware RAID mới vừa được hỗ trợ trong BSD, nhưng đã được hỗ trợ trên Linux được một thời gian rồi. IBM tin tưởng vào sự hỗ trợ của Linux, và cả HP, là một lợi thế cho Linux. Tôi cũng thích nhiều định dạng hệ thống tệp trên ổ cứng mà nhân Linux được hỗ trợ. Về máy tính bàn thì điều mấu chốt đó là trình nhúng. Và Linux cho tất cả các X86 họ UNIX ngửi khói.
Khi nói đến tính linh hoạt, NetBSD được đồn là dẫn đầu. Tuy nhiên tôi đã kiểm tra tận mắt xem cụ thể là những thứ gì được hỗ trợ bởi NetBSD và Debian: tôi thấy Debian hỗ trợ ibm s/390 và ia64, trong khi NetBSD hỗ trợ cho sun2 (m68010), PC532 (không biết là cái khỉ gì [hình như là bản đặc biệt và chỉ có 200 mẫu được sản xuất]), và VAX. Vậy là tôi biết chắc là tôi có hứng thú với phe nào (dù có vẻ khá hay khi có một con VAX nằm lăn lóc đâu đó dưới tầng hầm). Lưu ý là thứ mà NetBSD gọi là 'architectures' được gọi là 'sub-architectures' bên Debian, và suy ra không được tính trong 11 kiến trúc được hỗ trợ.
Xây Nguồn
Tôi nghe nói rất nhiều thứ về cơ chế chuyển giao của BSD, và hệ thống chuyển giao của Gentoo. Tôi cũng nghe nói có người gặp vấn đề để xây chính cái hệ thống chuyển giao này. Sự thật là xây mọi thứ từ mã nguồn rất mau chán (tôi đã từng ở đó, đã từng trải qua, khi tôi dùng nhà phân phối Soft Landing Systems (SLS) năm '93).
Vấn đề không phải là không có công cụ để chuyển giao kiến trúc tự động như Debian -- chúng ta có auto-builders cho 11 kiến trúc để giải quyết việc này, liên tục, quanh năm -- câu hỏi ở đây là vì sao lại có người muốn xây mã từ mã nguồn? Tôi vẫn chưa thấy bất kì bài thử nghiệm có tính tái tạo nào có thể minh chứng cho sự gia tăng hiệu xuất bởi sự tối ưu hoá quá trình xây phần mềm -- và chắc chắn là không có lý do chính đáng nào, trong mắt tôi, để biện minh cho thời gian dành cho việc canh chỉnh và xây phần mềm lại từ đầu.
Có người nói khi họ còn trẻ và muốn chơi đểu ai đó, họ sẽ điều chỉnh một thông số vô tác dụng trên máy tính của nạn nhân rồi bảo rằng "cái này sẽ làm máy của ông chạy 5% nhanh hơn, nhưng chắc là ông sẽ không nhận ra đâu". Với thách thức này nạn nhân sẽ bật lại bằng cách tự nhận là họ cảm thấy cái 5% khác biệt này!
Kiến thức phổ thông chỉ ra rằng hiệu xuất hệ thống sẽ chỉ gia tăng không đến 1%. Phần mềm đặc dụng có thể hưởng lợi rất nhiều từ điều này, tuy nhiên bạn vẫn có thể tối ưu ứng dụng trong môi trường Debian. Tôi nghĩ thời gian tiết kiệm được khi chạy hệ thống được tối ưu sẽ bù lại nhiều hơn cho thời gian xây lại toàn bộ hệ thống, và xây lại cả những cập nhật cho hệ thống. (Tôi còn nghe nói có người chạy cập nhật thường ngày ở nền sau và làm việc khác ở nền trước.)
Đấy là chưa kể độ tương hợp sẽ phải chịu thiệt vì không có một nơi tập quyền nào để thử nghiệm độ tương hợp cho xát sao, vì mỗi hệ thống sẽ khác nhau rất nhiều tính từ tiêu chuẩn.
Hệ thống xây từ nguồn cũng sẽ phải đối mặt với rất nhiều vấn đề khi có những cập nhật lớn -- tôi có vật chứng vặt vãnh để biện minh việc này không an toàn và tỉnh táo như cập nhật theo cơ chế của Debian.
Gì đi nữa, nếu tôi muốn xây các gói từ nguồn trên Debian, tôi có thể apt-set source -b, apt-src, hoặc các công cụ dạng vậy. Và khi xây tại máy địa phương, thì tôi tin là bản xây địa phương của Debian sẽ được cài vào đúng chỗ và đảm bảo được an toàn và tôi sẽ không phát rồ, và nó sẽ thay thế rất đàng hoàng cho bản cũ. Phụ thuộc của bản xây sẽ kéo tất cả các gói phụ thuộc cho việc xây, và tôi hay xây trong pbuilder-user-mode-linux để đảm bảo các bản xây được đồng nhất.
Điểm chính cần nêu ra ở đây là Gentoo là nhà phân phối cho người dùng theo sở thích và các ông siêu mọt / cực đoan sống chết vì Linux, những người sẵn sàng chi trả thời gian để xây ứng dụng. Tôi biết Gentoo cũng cung cấp các gói xây sẵn -- nhưng như thế chẳng phải huỷ bỏ mục tiêu của họ sao? Đối với môi trường doanh nghiệp, nơi thời gian tu sửa đồng nghĩa với chi phí điều này hoàn toàn không khả thi và Debian là giải pháp tốt nhất. Các quản trị viên đều hiểu rất rõ sự tiện lợi khi chỉ cần chạy apt-get update && apt-get upgrade cùng lúc thay vì phải tải về, thiết lâp, xây và cài phần mềm từ máy này sang máy khác, mà không có công cụ hỗ trợ tự động nào (tôi không biện minh chuẩn xác lắm cho emerge / portage, nhưng hy vọng là ý tôi muốn truyền đạt được làm rõ). Tôi có thể nhận mạnh nữa: cho những trường hợp sử dụng "nghiêm túc"/sản xuất, những nhà phân phối phần mềm xây sẵn là những phương án vững vàng và tốt nhất; Trong số đó Debian ( không chỉ vì APT mà vì tất cả công sức của các DD để đảm bảo chuẩn xác quy trình gói ) là tốt nhất [tôi đã thử SuSE, RedHat và Mandrake, và tôi sẽ không quay lại kể cả có đưa tôi một đống tiền; Gentoo không phải là lựa chọn].
An Ninh và Bền Vững
Luôn có sự đánh đổi giữa an ninh và tiện lợi -- cái máy tính bảo mật nhất là cái máy tính không bao giờ chạy. Bảo mật, nhưng không hữu dụng cho lắm. Bạn phải tự quyết định xem vùng thoải mái của mình nằm ở đâu.
Người ta nghĩ gì khi nói đến an ninh và HĐH họ Unix? OpenBSD, có vài biện chứng. Nó được kiểm tra và có kích cỡ khá nhỏ và yêu cầu hệ thống thấp VÀ cài đặt thuần chữ. Nếu bạn chỉ giữ mình trong phạm vi cài đặt lõi, bạn có một hệ thống đạt kiểm tra, không có dịch vụ nào mở mặc định và yên tâm là không có lỗ hổng nào trong cài đặt mặc định có thể dẫn đến tình trạng bị xâm nhập root từ xa. Tuy nhiên, cài đặt phần lõi không thì chẳng thể làm gì và bạn thường cần phần mềm. W^X và phòng vệ đối với ?StackOverflow (?ProPolice) trên OpenBSD https://www.openbsd.org/33.thml, và exec-shield và adamantix (PaX) bản vá cho Linux (bạn có thể phải xây lại nhân cho Debian để có những thứ này). Đa số mọi người đồng ý là phần được kiểm tra của OpenBSD không đủ cung ứng cho tất cả phần mềm mà họ cần. Thêm nữa, hiệu xuất của OpenBSD, ừmm, tệ, so với SELinux với nhân 2.6.3.
Bảo mật của OpenBSD được biện minh - nhưng chỉ khi bạn biết về dự án, khi bạn hiểu việc gì đang xảy ra. OpenBSD có thể làm tường lửa rất tốt, có khi là cả hầu thư hay hầu Web tĩnh - miễn là bạn đừng rờ tới ports tree, thì bạn sẽ có một hệ thống an ninh đạt kiểm tra. Tôi biết vài ứng dụng cho hệ thống như vậy. Miền người dùng của OpenBSD hay sập hơn là bản ổn định của Debian -- nhưng, trong OpenBSD, ports chính thức không phải là một phần của hệ thống, và nếu có vấn đề an ninh hiện diện thì đấy là vấn đề của riêng bạn.
Debian Ổn Định ngang ngửa hoặc nhỉnh hơn vậy -- và ngoài đời thật thì không khác biệt nhiều giữa Debian và OpenBSD ở thời điểm hiện tại. Bạn sẽ cần phải thiết lập một chút để làm kiên cố cài đặt mặc định của Debian với những gói quang trọng, nhưng việc này chỉ tốn vài phút đối với quản trị viên đã có kinh nghiệm. Kiểm tra mã nguồn là việc phức tạp hơn cho OpenBSD; dù vậy bạn nên cân nhắc là kể cả đã qua kiểm tra thì dạo gần đây đang có vài lỗi lớn trong OpenSSH -- hãy cẩn trọng.
Nhà phân phối Debian GNU/Linux chú tâm rất nhiệt liệt về an ninh và độ ổn định. Chúng tôi có một đội An Ninh (Security), và một hệ thống tự động hoá việc xây phần mềm nhằm giúp đội An Ninh nhanh chóng xây phiên bản cho tất cả kiến trúc được hỗ trợ, cộng với chính sách hướng đến những mục tiêu này. Đây là thông tin so sánh hệ thống an ninh (https://lists.debian.org/debian-user/2003/debian-user-200308/msg00541.html) giữa Open BSD và Debian.
Kể cả khi bạn không cần xây lại chuỗi phần mềm trên hệ thống BSD để cập nhật an ninh ("make release", hoặc là "make package" để xây trên một máy rồi cài trên máy khác), nó vẫn không tiện bằng hệ thống gói của Debian. Debian xử lý việc phân phối gói phần mềm tốt hơn. Bạn có thể sở hữu kho lưu trữ theo dạng apt riêng rồi đẩy các gói về cho các máy hầu sản xuất, lợi dụng ngay cơ chế sẵn có của Debian.
Khi nói về an ninh theo một cách thật sự nghiêm túc, nếu không có cơ chế kiểm soát quyền truy cập thì độ bảo an luôn rất thấp. Vậy nên SELinux (và hiện mới mọc ra TrustedBSD) là lựa chọn tốt hơn rất nhiều so với OpenBSD hoặc là bản nền của Debian ổn định.
Kể cả không có SELinux, tôi vẫn thấy bản Debian ổn định rất vững chắc, và rất an tâm vì có hỗ trợ từ đội An Ninh rất thuyết phục. Nó tạo ra cơ chế rất dễ cho người không có chuyên môn để cập nhật an ninh; giảm khả năng xâm bị xâm nhập. Đây là điều rất quan trọng trong môi trường kinh doanh với rất nhiều máy và không cho phép các phần mềm đang chạy nâng cấp hai ba tháng một lần.
Có một ưu điểm nữa đối với đội An Ninh của Debian khi bàn đến việc phân phối bản ổn định. Đó là vì ports tree chỉ có một bản duy nhất. Trong khi Debian, bạn có rất nhiều bản, ví dụ như cho Apache, KDE và X11 - mỗi bộ phần mềm có một bản cập nhật an ninh riêng cho phiên bản ổn định - điều này không tồn tại trong FreeBSD. Tất nhiên là cái port makefile sẽ được cập nhật khi tìm ra lỗ hổng trong một gói nào đó, nhưng cách duy nhất để bít lỗ hổng trong tình huống như vậy là cài lại bản mới cho cả phần mềm, cùng với đủ các trục trặc mà bản phần mềm mới có thể gây nên. So sánh với Debian, bạn có khả năng cài bản mềm cũ với các lỗ hổng an ninh đã được vá. Thêm nữa, nếu bạn đang chạy phần mềm có điểm yếu từ bản port-installed thì cái lỗ hổng của bạn sẽ tơ hơ cho đến khi bạn nâng cấp, điều này tốn bao nhiêu thời gian là tuỳ bạn.
Tôi có dữ liệu so sánh các nhà phân phối Linux và thời gian vá điểm yếu an ninh, nhưng không có dữ liệu cho BSD. Nó nằm ở đây: https://people.debian.org/~jfs/debconf3/security/data/
Hiệu Xuất và Độ Nhân Rộng
Tôi định là sẽ không bàn đến hiệu xuất, vì các con số này không có nghĩa lý gì mấy đối với tôi, và hiệu xuất luôn thay đổi từ bản này sang bản khác. Tuy nhiên, tôi nhận biết được đây là yếu tố quan trọng cho một số người, nên tôi sẽ thử xem qua những thông số gần đây.
Toàn bộ kết quả thử nghiệm và mã nguồn nằm ở http://bulk.fefe.de/scalability/ Trích lời từ đoạn kết luận, cập nhật để phù hợp hơn cho bản mới nhất.
Linux 2.6 nhân rộng O(1) trong tất cả các bài thử nghiệm. Tôi không còn lời nào để tả sự ấn tượng này. Nếu bạn đang dùng Linux 2.4, hãy chuyển sang Linux 2.6 ngay bây giờ!
NetBSD có độ nhân rộng tốt hơn FreeBSD.
FreeBSD 5.1 có hiệu xuất và độ nhân rộng rất ấn tượng. (Lưu ý là bản này vẫn chưa được phát hành) Tôi cứ tưởng là tất cả BSD có hiệu xuất như nhau, vì chúng nó chia sẻ cùng mã nguồn và tương hợp mã nguồn với nhau khá tự do. Tôi đã sai. FreeBSD đứng thứ hai trên thang hiệu xuất của nhóm BSD và chạy gần bằng Linux 2.6.
Linux 2.4 cũng không quá tệ, nhưng mà nhân rộng không tốt cho nmap và fork.
OpenBSD 3.4 hiệu xuất dở hơn trong những bài thử nghiệm này. Hiệu xuất disk thật lởm, nhân không ổn định, và trong mảng nhân rộng mạng lưới, nó còn thua thằng cha nó là NetBSD. OpenBSD cũng bị mất điểm vì vụ cắt cụt chồng IPv6. Nếu bạn hiện đang chạy OpenBSD, bạn nên chuyển sang thứ khác.
Kết Luận
Chẳng có HĐH nào hoặc nhà phân phối nào mà tôi biết lại pha trộn được các đặc tính này (dễ bảo trì, rẻ, ổn định, kích thước, hiệu chỉnh, hỗ trợ tốt). Phần lớn, tôi không muốn táy máy và gỡ lỗi máy tính chính của mình, tôi chỉ muốn hoàn thành công việc, đơn giản, an toàn, và với tối thiểu sự phiền hà về cái hạ tầng mà tôi đang dùng. Debian cho phép tôi thực hiện việc này.
Và đó là lý do chính tôi vẫn dùng nó cho đến ngày hôm nay, từ quan điểm kỹ thuật. Các gói phần mềm cài đặt và cập nhật hoàn hảo. Bảo trì phần mềm là một phần rất lớn trong công việc của quản trị viên nhưng với Debian thì nó đơn giản là chuyện không đáng kể. Không có trục trặc. Chẳng có gì để nói về trục trặc khi bàn về Debian. Hoàn mỹ.
Ghi Nhận
Wouter Verhelst <wouter@grep.be>
José Luis Tallón <jltallon@adv-solutions.net>
Andrew Suffield <asuffield@debian.org>
Javier Fernández-Sanguino Peña <jfs@computer.org>
Russell Coker <russell@coker.com.au>
Andreas Metzler <ametzler@downhill.at.eu.org>
Steve <sgbirch@imsmail.org>
Toni Mueller <toni@debian.org>
Marc Haber <mh+debian-devel@zugschlus.de>
George Danchev <danchev@spnet.net>
Lionel Elie Mamane <lionel@mamane.lu>
Greg Folkert <greg@gregfolkert.net>
Rudy Godoy <rudy@kernel-panik.org>
Andreas Tille <tillea@rki.de>
Nathanael Nerode <neroden@twcny.rr.com>
Mark Ferlatte <ferlatte@cryptio.net>
Gunnar Wolf <gwolf@gwolf.cx>
Jim ?McCloskey <mcclosk@ucsc.edu>
Bill Wohler <wohler@newt.com>
Bill Richardson <bill@bothan.net>
Alex Perry <alex.perry@qm.com>
Woodrow Kirton <wkirton@surfwayx.net>
David B Harris <dbharris@eelf.ddts.net>
Joost van Baal <joostvb@mdcc.cx>
Bill Allombert <allomber@math.u-bordeaux.fr>
Viktor Rosenfeld <rosenfel@informatik.hu-berlin.de>
"Adrian 'Dagurashibanipal' von Bidder <avbidder@fortytwo.ch>
Razvan Petrescu <rpetrescu@montran.ro>
s. keeling <keeling@spots.ab.ca>
Karsten M. Self <kmself@ix.netcom.com>
Xin cảm ơn tất cả những người đã tham gia đóng góp vào cuộc thảo luận (http://lists.debian.org//debian-devel/2004/02/thrd2.html#00594) trên bó thư.
