Đọc qua khá nhiều bài viết về Linux trên diễn đàn Tinh Tế cũng như một số nơi khác, mình thấy một số bạn có xu hướng đánh đồng 2 hệ điều hành (HĐH) UNIX và Linux. Bài viết này hy vọng đáp ứng phần nào thông tin cần thiết cho mọi người về những điểm khác nhau giữa 2 khái niệm này này. * Bài này mình dịch một phần từ bài viết trên trang web của IBM, cộng thêm thông tin từ các nguồn khác và đánh giá cá nhân. Bạn nào phát hiện lỗi hoặc thiếu sót xin comment góp ý, đừng ném đá. Cảm ơn. Giới thiệu sơ lược UNIX là một HĐH đa nhiệm, đa người dùng được phát triển vào năm 1969 bởi một nhóm nhân viên của công ty AT&T tại phòng thí nghiệm Bell Labs. Qua nhiều năm, nó đã được phát triển thành nhiều phiên bản sử dụng trên nhiều môi trường phần cứng khác nhau. Hầu hết các phiên bản UNIX hiện nay đều là những biến thể của UNIX gốc và được các nhà phát triển sửa đổi, viết lại hoặc thêm các tính năng, công nghệ riêng biệt. Các phiên bản UNIX hiện nay có thể kể đến: - HP-UX (HP) - AIX (IBM) - Solaris (Sun/Oracle) - Mac OS X (Apple) Linux là HĐH được phát triển bởi Linus Torvarlds tại trường đại học Helsinki (Phần Lan) vào năm 1991. Linux được tạo ra với mục đích cung cấp cho người dùng 1 giải pháp phần mềm miễn phí thay thế cho UNIX. Linux có thể chạy trên rất nhiều nền tảng khác nhau như x86 và x64 từ Intel/AMD trong khi UNIX chỉ chạy trên 1 hoặc 2 kiến trúc nhất định. Khác biệt về kỹ thuật Các hãng phát triển UNIX thường thường có những đối tượng khách hàng và nền tảng nhất định, và các phiên bản UNIX đều là HĐH thương mại và đươc bán với giá ko hề rẻ chút nào. Những HĐH này thường được phát triển có mục đích, có các tiêu chuẩn cho khách hàng và thống nhất giữa các phiên bản. Khi một phiên bản UNIX mới được nâng cấp, khách hàng sẽ nhận được những thông tin chi tiết từ nhà phát triển về các tính năng, công nghệ mới được áp dụng, tính tương thích đối với các bản cũ hơn, v.v... Trong khi đó, Linux được phát triển bởi nhiều lập trình viên với nhiều bối cảnh khác nhau, và vì thế họ có những ý kiến, quan điểm và mục tiêu khác nhau. Trong cộng đồng Linux ko hề có một tiêu chuẩn chính xác nào về môi trường, công cụ lập trình cũng như khả năng đáp ứng của HĐH. Kiến trúc phần cứng Hầu hết các HĐH UNIX đều được lập trình để chạy trên một hoặc một nhóm kiến trúc phần cứng nhất định ví dụ HP-UX chạy trên hệ thống PA-RISC và Itanium, Solaris chạy trên SPARC và x86,... Việc giới hạn phần cứng giúp những công ty bán UNIX có thể tối ưu HĐH của mình để chạy thật tốt trên một hệ thống phần cứng nào đó. Trái lại, vốn được thiết kế với mục đích cạnh tranh và thay thế UNIX nên Linux có thể chạy trên rất nhiều cấu trúc phần cứng, và số lượng các thiết bị gắn ngoài, thiết bị I/O được sử dụng hầu như ko giới hạn. Chính vì thế mà nhà phát triển Linux ko thể xác định người dùng sử dụng loại phần cứng nào nên không thể tối ưu HĐH cho phần cứng đó. Nhân HĐH (kernel) Kernel là cốt lõi của mọi HĐH. Đối với các bản thương mại của UNIX, mã nguồn đều ko được phân phối tự do, và các hãng sản xuất UNIX thường cung cấp kernel dưới dạng nhị phân hay các gói “nguyên khối” (monolithic package), và những người khác chỉ có thể nâng cấp, chỉnh sửa một phần nhỏ. Đối với Linux, việc biên tập, vá lỗi kernel và driver dễ dàng hơn. Các bản vá lỗi được cung cấp dưới dạng mã nguồn và người dùng có thể tự do cài đặt, thậm chí chỉnh sửa nếu muốn. Các bản vá này thường ko được kiểm tra kỹ bằng UNIX. Và với các lập trình viên Linux, họ ko có thông tin đầy đủ về các môi trường và ứng dụng cần được kiểm tra, thử nghiệm, họ chỉ có thể dựa vào đánh giá của người dùng và các nhà phát triển khác để tìm lỗi. Đa số các hãng phát triển UNIX thường viết lại nhân HĐH để phục vụ cho mục đích của mình. Ví dụ HĐH Mac OS X của hãng Apple có nhân là Darwin, được viết lại từ nền tảng BSD. Vì thế, các HĐH này được gọi là các phiên bản hay biến thể của UNIX. Trong khi đó, các nhà phát triển Linux thường sử dụng chính nhân Linux trên HĐH của mình. Kernel của các HĐH như Fedora, Ubuntu, OpenSUSE,... đều gọi là Linux mặc dù chúng ko phải do Linus Torvalds phát triển. Do đó chúng ko được xem là các phiên bản khác nhau của Linux mà chỉ là các bản phân phối. Tính mở UNIX là 1 HĐH đóng. Có lẽ trái với quan điểm của 1 số người, cho rằng Linux mở thì UNIX cũng là mở, nhưng thực ra nó là nguồn đóng. Và câu hỏi đặt ra là: Nếu UNIX là nguồn đóng thì tại sao nhiều hãng lại có mã nguồn để phát triển riêng? Câu trả lời có lẽ khiến bạn càng bất ngờ. Ban đầu, UNIX được phân phối cho các trường đại học và những doanh nghiệp có nhu cầu, với đầy đủ mọi thứ từ mã nguồn đến các công cụ lập trình. Nói cách khác, nếu UNIX là 1 chiếc xe thì khách hàng được cung cấp mọi thứ từ bản vẽ đến từng cái tua vít. Cũng chính vì thế mà các trường học và công ty có thể chỉnh sửa, thậm chí viết lại cả HĐH. Linux mặt khác là 1 HĐH mã nguồn mở, người ta có thể tải, sử dụng, chỉnh sửa miển phí mà ko gặp trở ngại về luật bản quyền. The Open Group và Single UNIX Specification Có lẽ bạn cảm thấy khó hiểu khi các phiên bản của UNIX hầu hết là nguồn đóng nhưng chúng lại được gọi chung là UNIX. Vậy cái tên UNIX là mở hay sao? Nếu nghĩ vậy thì bạn đã lầm. UNIX là một cái tên được đăng ký thương hiệu và được sở hữu bởi một tổ chức tài chính Mỹ gọi là Open Group. Open Group đưa ra 1 tiêu chuẩn cho các HĐH máy tính gọi là Single UNIX Specification (SUS), và những HĐH nào đạt được các yêu cầu của SUS thì mới được gọi là UNIX, ko cần biết nó được xây dựng dựa trên cái gì (HĐH Mac OS X được phát triển dựa trên nền tảng BSD, vốn ko thoả mãn SUS, nhưng nó được viết lại và đạt yêu cầu nên được phép mang thương hiệu UNIX). Ngoài ra, những HĐH khác ko thoả mãn SUS sẽ ko được mang thương hiệu UNIX và ko được gọi là UNIX-based mà được gọi là UNIX-like (giống UNIX), điển hình là BSD, FreeBSD. Linux được Linus Torvalds viết trên 1 chiếc máy chạy HĐH MINIX, sau đó, nó được phát triển ngày càng hoàn thiện và có thể chạy độc lập với MINIX. Mà MINIX vốn chỉ là HĐH UNIX-like, nên có thể thấy quan hệ bà con giữa UNIX và Linux hơi bị xa chứ ko gần như chúng ta tưởng. Dự án GNU và giấy phép GPL GNU là chữ viết tắt của GNU’s not UNIX (bên trong lại có GNU, bó tay, chả biết GNU kia là gì). Đây là một dự án do Richard Stallman khởi xướng vào năm 1983 với mục đích tạo ra 1 hệ thống phần mềm có thể cạnh tranh và thay thế phần mềm UNIX. Stallman cũng cho ban hành giấy phép GNU General Public License (GNU GPL). Giấy phép này yêu cầu nhà phân phối phần mềm phải kèm theo mã nguồn của phần mềm đó (mã nguồn mở), và mã nguồn Linux được phân phối tự do cũng là vì lý do này. Tổng kết UNIX và Linux về cơ bản cũng ko khác nhau nhiều lắm, việc một nhà phát triển hay một doanh nghiệp muốn chuyển hệ thống máy tính của họ từ UNIX sang Linux cũng không quá khó khăn. Nhưng dù sao 2 người trông giống nhau ko có nghĩa họ là bà con với nhau. Linux và UNIX ko phải anh em mà còn là kẻ thù, ít nhất là về quan điểm của Linus Torvalds và dự án GNU. PS: Xin lỗi vì bài viết hơi khô khan, toàn chữ là chữ. Mình đã ráng kiếm 1 cái hình minh họa nhưng vẫn ko biết bỏ cái gì vào. Cảm ơn bạn đã đọc đến phần này.
monolithic = nguyên khối, chỉ kiến trúc os là liền 1 khối thay vì nhiều module, hồi trc học môn os có gặp khái niệm này..
đây là kiểu viết tắt đệ quy, tương tự như PHP = PHP: Hypertext Preprocessor hay WINE = Wine Is Not an Emulator thực ra ban đầu các chữ này thường đc viết tắt bởi 1 cụm từ nào đó nhưng sau đó ngta thay đổi từ viết tắt đi. VD như WINE ban đầu là viết tắt của WINdows Emulator nhưng ngta đổi lại để cho biết rằng nó ko phải trình giả lập như các máy ảo khác mà chỉ là chương trình chuyển đổi các lời gọi API, các tham số... cho tương thích thôi, hoặc PHP ban đầu có nghĩa là Personal Home Page http://en.wikipedia.org/wiki/Recursive_acronym
bài viết khô khan nhưng khá hay mình đã hiểu thêm về linux và unix trước giờ vẫn nghĩ 2 cái này là anh em ruột
1 lời khen , sự tinh tế từ cá nhân , không dịch hay trích dẫn . Tuy nhiên , chưa được toàn diện và đủ rộng .
Cũng có dịch từ nguồn khác nhưng chỉ dịch 1 phần. Còn về vấn đề rộng thì mình nghĩ ko cần thiết, chỉ cần nêu những điểm chính. Viết dài quá sợ bà con ko thèm đọc.
Đúng như bạn viết cuối bài là bài viết này hơi khô khan. Nhưng khi đọc xong bài viết này của bạn đã cho mình hiểu rõ hơn về hai hệ điều hành này, trước mình thường đánh đồng hai hệ điều hành này đều là mở. Sau bài viết này mình mới hiểu rõ hơn.
Linux là HĐH, nhân của nó cũng là Linux. UNIX thực ra bây giờ chỉ còn là cái tên, nhân HĐH nhiều khi lại mang tên khác.
Từ lâu mọi người luôn đánh đồng Linux là hệ điều hành, nhưng thực tế cái tên hợp lý nhất vẫn là Unix Like. Unix nó là một hệ điều hành và sau này có nhiều nhánh như IBM AIX, HP UX, Oracle Solaris, BSD Unix.... Mac OSX là một nhánh phát triển từ FreeBSD lên. Việt Nam mình thì BSD Unix không thật sự phổ biến nhưng trên thế giới lại rất phổ biến. Ví dụ như Yahoo Mail, hệ thống đang chạy trên FreeBSD.....
Gọi là Linux hợp lý hơn vì Unix-like chưa hẳn là Linux. Unix hiện này ko chỉ lả 1 HĐH mà còn là 1 thương hiệu. Việc một HĐH có mang được cái mác Unix lên người hay ko còn phụ thuộc vào Open Goup nữa, những HĐH BSD, FreeBSD chỉ là Unix-like, nhưng Mac OS X dựa trên nền tảng này lại được phép gọi là Unix.
1. Xét về mặt lịch sử: UNIX là hệ điều hành được nhóm các chuyên gia tại phòng thí nghiệm Bell viết ra vào khoảng thập niên 70 của thế kỉ trước. Sau đó, nhiều công ty, trường đại học cũng đã phát triển những hệ điều hành dựa trên cấu trúc UNIX cho riêng mình, ví dụ như: + Berkerly UNIX của trường UCB + AIX của IBM + UX của HP + SunOS của Sun Các hệ điều hành này có cấu trúc, phương thức hoạt động và mã nguồn rất giống với UNIX nguyên thuỷ từ Bell Lab, do đó người ta gọi chúng là các hệ điều hànhUNIX-based. Ngoài ra, trong khoảng thời gian từ những năm 80s trở lại đây, một số nhóm/cá nhân/công ty đã phát triển những hệ điều hành có nguyên lí thiết kế gần giống với UNIX nguyên thủy (tức là phát triển dựa trên UNIX Philosophy, chứ không phải dựa trên mã nguồn của UNIX nguyên thủy) và được gọi là các hệ điều hành UNIX-like. Trong số đó ta có thể kể đến: + Solaris của Sun (phát triển tiếp tục dựa trên SunOS) + GNU của GNU project + BSD (phát triển dựa trên Berkerly UNIX) + GNU/Linux Như vậy, đó là 3 khái niệm UNIX, UNIX-based và UNIX-like xét theo mặt lịch sử. Tuy nhiên ngày nay thì UNIX nguyên thủy từ AT&T Bell Lab đã không còn tồn tại, cho nên dần dần người ta bắt đầu phân chia gia đình UNIX theo cấu trúc của hệ điều hành (như đề cập dưới đây). 2. Xét về mặt cấu trúc hệ điều hành Sau một quá trình lịch sử thì mã nguồn UNIX gốc được chuyển về cho SCO group ngày nay còn thương hiệu UNIX được nắm giữ bởi The Open Group. The Open Group đã đưa ra một hệ thống tiêu chuẩn được gọi là "Single UNIX Specification" và bất kì hệ điều hành nào có được đầy đủ các tiêu chuẩn được quy định và được chứng nhận bới The Open Group sẽ được mang tên thương hiệu là UNIX. Còn các hệ điều hành khác không tham gia vào hệ thống tiêu chuẩn này nhưng có nhiều điểm tương đồng vớ các nguyên tắc thiết kế của UNIX thì thường được gọi là UNIX-like. Các hệ điều hành nổi tiếng đã tham gia hệ thống Single UNIX Specification: (tức là được chứng nhận là UNIX) + IBM AIX + HP UX + SCO Unixware + SCO OpenServer + Sun Solaris + Mac OS X "Leopard" (on Intel processors) Ngoài ra các hệ điều hành sau không tham gia hệ thống chứng nhận trên và được gọi là UNIX-like + BSD + GNU/Linux + GNU (still under development, no stable release yet) + Mac OS (tất cả phiên bản trừ Mac OS X Leopard chạy trên các bộ xử lí Intel) + Open Solaris Các nhà phát triển của BSD và GNU/Linux không đưa sản phẩm của mình vào hệ thống chứng nhận này vì 2 lí do: chi phí của việc chứng nhận và sự thay đổi quá nhanh chóng trong quá trình phát triển 2 hệ điều hành này dẫn đến chi phí để duy trì thương hiệu UNIX sẽ trở nên khổng lồ. nhặt lung tung. không rõ nguồn.
Mình có nh cuốn pdf về HP-UX. Bro nào quan tâm pm mình share cho nha . Nhưng nói trước là HP-UX ko cài được cho PC đâu nha . AIX có file cứng ko hà, nên hok share được. Lên trang IBM có đầy ah
thanks..bài viết rất bổ ích... mình cũng đang chập chững dấn thân vào linux...nên đọc cũng mường tượng được chút ích...nhưng thực sự chưa hiểu được nhiều.. chắc phải đọc tiếp lần 2 lần 3 nữa dù sao vẫn thanks và cần nhiều bài mang tích tổng hợp như thế này ở box Linux này nha mấy bro..để tụi e còn mở mang kiến thức.
Mình cũng không rõ quan điểm bạn ra sao nhưng mình thấy unix với lại linux hay bị người ta hiểu theo nhiều nghĩa khác nhau như tưởng 2 hđh khác nhau vậy, theo thông tin mình được biết unix có nghĩa là nhân hđh tức nó đảm nhiệm các nhiệm vụ cơ bản của hệ thống như đọc ghi,.. và nó chưa phải là một hệ điều hành, để có thể sử dụng unix người ta phải viết bộ installer và gán nhãn tên của nhà sản xuất, linux là một hđh thực sự có thể hoạt động được nhưng bản chất lõi của nó chính là unix vì thế người ta hay gọi linux/unix là một không có gì khác nhau cả, ngoài ra linux được phát triển bởi rất nhiều các hãng khác nhau được gọi là các distributions và cũng có rất nhiều bản linux như fedora core, ubuntu, kbuntu, ..