Networks Business Online Việt Nam & International VH2

Unix vs Linux. Nguồn gốc và sự khác biệt

Đăng ngày 04 October, 2022 bởi admin

Lời mở đầu

Thời gian gần đây, tôi có nhiều hứng thú và muốn tìm hiểu về Infrastructure, một lĩnh vực tôi thấy là quá sức rộng lớn nhưng mà kiến thức bản thân thì quá ư là hạn hẹp (facepalm). Sau một vài tháng tìm hiểu, học tập, đọc sách, tôi cảm thấy thế giới của Linux thật là hấp dẫn và lôi cuốn. Tôi nhận ra một điều, đó là:

Và đó cũng chính là động lực để tôi bắt đầu viết series mới này, Become A SuperUser.

Tôi sẽ nỗ lực viết ra những gì mình biết, những gì mình học được về quốc tế của Linux, bởi tôi luôn nghĩ rằng viết ra những kỹ năng và kiến thức mà mình học được sẽ giúp mình hiểu và nhớ chúng hơn. Cũng đã lâu lắm rồi, kể từ hồi tôi viết series về Laravel mang tên Laravel Beauty, tôi mới lại có cảm hứng viết bài trên Viblo như thế này. Hy vọng series về Linux sẽ có ích cho nhiều bạn, và nhận được nhiều phản hồi tích cực như series về Laravel trước đây vậy .

Trong bài viết đầu tiên của Series Become A SuperUser, tôi sẽ không bắt đầu ngay đi vào các vấn đề kỹ thuật của Linux, mà thay vào đó, tôi sẽ kể cho các bạn về câu chuyện lịch sử phát triển của nó, cũng như mối quan hệ giữa Linux với hệ điều hành nổi tiếng khác là Unix.

Sở dĩ tôi rất muốn viết ra một bài như thế này là bởi chính bản thân tôi cũng đã từng có rất nhiều hiểu nhầm về Linux, và tôi nghĩ rằng cũng sẽ có nhiều người cũng có những hiểu nhầm giống như tôi. Tôi kỳ vọng rằng qua bài viết này, những bạn hoàn toàn có thể có được một cái nhìn tổng quát về quốc tế của Linux, trước khi đi sâu hơn về nó trong những bài viết tiếp theo .
Hãy cùng bước vào quốc tế của Linux nhé .

Unix & BSD

Nhắc đến Linux thì trước tiên, ta phải quay ngược thời gian để tìm hiểu về một cái tên khác, đó là Unix.

Unix là một hệ điều hành vốn ra đời đã từ rất lâu, tại phòng thí nghiệm Bell Labs của AT&T. Dự án được dẫn dắt bởi Ken Thompson và Dennis Ritchie, 2 nhà khoa học máy tính nổi tiếng.

Công việc tăng trưởng Unix chính thức được mở màn vào mùa hè năm 1969, và phiên bản tiên phong của Unix được sinh ra vào tháng 3 năm 1971, tiếp đó là phiên bản thứ 2 sinh ra năm 1972 .
Ngoài lề một chút ít, nếu bạn gõ lệnh date trên một máy Linux, hay trên MacOS … bạn sẽ nhận được một số lượng gọi là Unix Timestamp. Con số này là số giây tính từ thời gian 00:00:00 ngày 1 tháng 1 năm 1970. Còn tại sao lại là thời gian ngày 1 tháng 1 năm 1970 thì chắc giờ bạn cũng có câu vấn đáp rồi nhỉ. Đó chính là thời thời gian mà Unix đang nằm trong quy trình tăng trưởng đấy

Ngoài lề một chút nữa, 2 thánh Ken Thompson và Dennis Ritchie chính là 2 người đã tạo ra B, ngôn ngữ lập trình vốn được support ở Unix những phiên bản đầu. Sau đó, vào năm 1972, Ritchie đã viết lại ngôn ngữ B, cải thiện nó tốt hơn, để trở thành ngôn ngữ lập C, ngôn ngữ lập trình còn rất phổ biến cho đến tận ngày nay. Hầu hết các components của Unix sau này đều được viết bằng C.

Những năm sau của thập niên 70, AT&T chia sẻ Unix cho những tổ chức giáo dục, hay tổ chức thương mại bên ngoài, từ đó dẫn đến sự ra đời của nhiều phiên bản Unix khác nhau. Nổi bật nhất trong số đó là phiên bản giáo dục được xây dựng bởi Computer Systems Research Group thuộc đại học California, Berkeley. Phiên bản này được biết đến rộng rãi với cái tên Berkeley Software Distribution, hay BSD.

Ban đầu, BSD được kiến thiết xây dựng dựa trên codebase cũng như design của Unix, tuy nhiên càng về sau, những phiên bản của Unix và BSD càng có những điểm đặc trưng, khác biêt, dẫn đến việc xảy ra những “ đại chiến ” để trở thành “ tiêu chuẩn ” giữa phiên bản Unix BSD và phiên bản Unix của AT&T mang tên mã System V. Kết quả là phần thắng thuộc về System V. Các phiên bản BSD sau đó đã xích gần lại System V hơn với việc học tập và đưa vào những tiêu chuẩn chung đã được công nhận .

Nhánh BSD đi đến hồi kết của quá trình phát triển lịch sử của nó, với sự ra đời và của các open source project như: FreeBSDNetBSD và OpenBSD. Phiên bản cuối cùng của BSD được giới thiệu năm 1995. Trong khi đó, phiên bản cuối cùng của Unix được phát triển bởi Bell Laps, phiên bản Unix 10, được ra mắt vào năm 1989.

Mặc dù phiên bản chính thức của Unix, BSD đã dừng tăng trưởng từ lâu, thế nhưng những di sản mà chúng để lại là rất lớn cho đến ngày thời điểm ngày hôm nay. Rất nhiều hệ điều hành, từ close source cho đến open source đựa dựa trên 2 nhánh này .

Phiên bản thương mại, close source nổi tiếng, thành công nhất, có lẽ chính là MacOS đình đám của Apple. MacOS cũng như các hệ điều hành khác của Apple hiện nay là iOS, watchOS, và tvOS đều được dựa trên nền tảng của BSD. Và MacOS cũng là một trong số ít các hệ điều hành được coi là Unix-like, khi có được chứng nhận Single UNIX Specification. Chúng ta sẽ còn nói rõ hơn về khái niệm Unix-like ở phần cuối của bài viết này.

GNU

Trong dòng chảy của sự tăng trưởng của Unix, năm 1983 đã diễn ra một sự kiện quan trọng, là tiền đề cho những dịch chuyển lớn sau này .

Tháng 9 năm 1983, Richard Stallman thông báo về sự ra đời của dự án GNU (GNU là viết tắt của từ GNU’s not Unix)

Biểu tượng quen thuộc của GNU

Mục tiêu của dự án GNU là tạo ra được một hệ điều hành miễn phí, giống Unix, nơi mà mọi người có quyền tự do copy, phát triển, chỉnh sửa và phân phối phần mềm, và việc tái phân phối là không bị giới hạn. (Nên nhớ, Unix và các phiên bản rẽ nhánh từ Unix ban đầu đều là close source và bị ràng buộc bản quyền)

Năm 1985, Richard thành lập tổ chức Free Software Foundation, hay FSF, một tổ chức phi lợi nhuận muốn thúc đẩy sự tự do trong trong phát triển phần mềm.

Project GNU đã tạo ra được rất nhiều sản phẩm quan trọng như GNU Compiler Collection (gcc)GNU DebuggerGNU Emacs text editor (Emacs)GNU build automator (make) … Ngoài ra còn phải kể đến giấy phép nổi tiếng được sử dụng rộng rãi nhất hiện nay: GNU General Public License (GPL)

GNU Project đã đạt được nhiều thành tựu lớn, tạo ra được nhiều công cụ tương tự như những gì có trên Unix. Tuy nhiên, GNU vẫn thiếu một thành phần quan trọng, mảnh ghép cuối cùng để nó trở thành một hệ điều hành hoàn chỉnh. Đó chính là Kernel, phần thực hiện công việc điều khiển, giao tiếp với các thiết bị phần cứng (CPU, RAM, Devices …).

Và Linus Torvalds Open

Linux

Ngày 25 tháng 8 năm 1991, một cậu sinh viên ở Phần Lan mang tên Linus Torvalds ra mắt một mẫu sản phẩm cá thể, sau này trở thành Linux Kernel. Đây là những gì Linus đã viết trên newsgroup ở Usenet :
I’m doing a ( không tính tiền ) operating system ( just a hobby, won’t be big and professional like gnu ) for 386 ( 486 ) AT clones. This has been brewing since April, and is starting to get ready. I’d like any feedback on things people like / dislike in minix, as my OS resembles it somewhat ( same physical layout of the file-system ( due to practical reasons ) among other things ) .
I’ve currently ported bash ( 1.08 ) and gcc ( 1.40 ), and things seem to work. This implies that I’ll get something practical within a few months [ … ] Yes – it’s không tính tiền of any minix code, and it has a multi-threaded fs. It is NOT portable ( uses 386 task switching etc ), and it probably never will tư vấn anything other than AT-harddisks, as that’s all I have : – ( .
[ … ] It’s mostly in C, but most people wouldn’t call what I write C. It uses every conceivable feature of the 386 I could find, as it was also a project to teach me about the 386. As already mentioned, it uses a MMU, for both paging ( not to disk yet ) and segmentation. It’s the segmentation that makes it REALLY 386 dependent ( every task has a 64M b segment for code và data – max 64 tasks in 4G b. Anybody who needs more than 64M b / task – tough cookies ). [ … ] Some of my “ C ” – files ( specifically mm. c ) are almost as much assembler as C. [ … ] Unlike minix, I also happen to LIKE interrupts, so interrupts are handled without trying to hide the reason behind them .

Project của Linus nhanh chóng nhận được sự chú ý cùng với đó là những đóng góp của nhiều cá nhân, tổ chức.

Sự kết hợp giữa nhân Linux, với các phần mềm của GNU đã tạo ra một hệ điều hành hoàn chỉnh, hệ điều hành hoàn toàn miễn phí đầu tiên. Nó được mang tên GNU/Linux.

Thực tế lúc bấy giờ vẫn còn rất nhiều hiểu nhầm tương quan đến Linux. Bản thân tôi cũng đã từng trải qua thời hạn dài hiểu nhầm như vậy
Và dưới đây là 1 số ít điểm chắc bạn cũng hoàn toàn có thể rút ra được khi đọc bài viết từ đầu đến giờ

  • Bản thân Linux chỉ là một Kernel, nó không phải là một hệ điều hành hoàn chỉnh. Hệ điều hành mà các bạn có thể vẫn đang sử dụng thực tế trên máy tính của mình có tên là GNU/Linux, nhưng có lẽ vì cái tên nó dài dòng nên người ta đã gọi ngắn gọn nó là Linux chăng. Việc lược bỏ đi GNU trong tên gọi hệ điều hành được cho là không công bằng, và đánh giá thấp vai trò của GNU. Tuy nhiên, biết sao được, nhiều người vẫn dùng cái tên Linux để thay cho tên gọi hệ điều hành GNU/Linux. Và khi nhắc đến Hệ Điều Hành Linux, ta cần hiểu đó là Hệ Điều Hành GNU/Linux. Trong series này tôi cũng sẽ sử dụng cách gọi đó, hệ điều hành Linux.

  • Hệ điều hành Linux trọn vẹn không sử dụng chung, hay thừa kế bất kể phần code nào của Unix, hay BSD. Nó được kiến thiết xây dựng mới trọn vẹn bởi Linus và GNU Project để hoàn toàn có thể trở thành … một phiên bản clone của Unix. Chính do đó Linux và những hệ điều hành con cháu của Unix lúc bấy giờ ( như MacOS ví dụ điển hình ) có rất nhiều điểm giống nhau .

Tôi đã từng thấy một anh hỏi về việc chạy lệnh grep trên Linux thì có option là -P, nhưng trên máy Mac của anh ý thì lệnh grep không có option đó, vậy phải giải quyết thế nào. Trước tôi cứ nghĩ mấy lệnh như ls, cat, grep … các kiểu thì vốn nó chỉ là chung một ruột, dù chạy trên MacOS hay Linux đi chăng nữa. Thế nhưng hôm đó tôi mới nhận ra là hoá ra chúng là 2 công cụ khác nhau. Chạy lệnh grep –help hay man grep trên Ubuntu tôi nhận được một lời giới thiệu về phiên bản của GNU, còn chạy trên máy Mac, tôi nhận được thông báo về phiên bản BSD. Đương nhiên phần lớn các công cụ của GNU và BSD (Unix) sẽ giống nhau đến từng option một, thế nhưng cũng có những ngoại lệ đấy. Thi thoảng nếu bạn gặp phải trường hợp command trên máy Mac nó lại khác với command mình vẫn dùng trên máy Linux thì cũng đừng quá bất ngờ nhé.

Và để sử dụng được command giống với trên Linux thì cách giải quyết cũng rất đơn giản thôi, bạn chỉ cần cài đặt biên bản của GNU lên máy Mac của mình thay thế cho phiên bản mặc định là được. Rất may là chúng chạy rất ổn định và có thể cài đặt dễ dàng bằng homebrew đấy.

Linux Distribution

Linux chỉ là phần Kernel, còn GNU phân phối những công cụ thiết yếu chạy trên Kernel đó. Tuy nhiên, việc config Kernel như thế nào, thiết lập, sử dụng những ứng dụng nào thì ta hoàn toàn có thể tự do quyết định hành động .

Một số các tổ chức, công ty giúp chúng ta làm sẵn những việc đó với việc phối kết hợp Linux Kernel với các utilities, hay package manager để tạo ra một bản phân phối một hệ điều hành hoàn chỉnh. Chúng được gọi là Linux Distribution, hay Distro.

Ngày nay, có vô vàn những bản phân phối Linux, nhiều cái rất quen thuộc, phổ cập, và cũng có nhiều distro hoàn toàn có thể bạn còn chưa được nghe tên khi nào. Một số Distro được sử dụng nhiều nhất hoàn toàn có thể kể ra như Ubuntu, Debian, CentOS, Fedora, Redhat, Linux Mint … .
Các Distro hoàn toàn có thể được build dựa trên một Distro khác, dẫn đến việc một Distro hoàn toàn có thể coi là cháu chắt của một Distro khác. Do đó, thực tiễn thì những Distro mà tôi kể ở trên chúng có nhiều quan hệ mật thiết với nhau lắm đấy
Lại kể một chút ít câu truyện về những Linux Distribution vậy .
2 Distro truyền kiếp nhất ( và vẫn còn active đến thời gian hiện tại ) là Slackware và Debian. Chúng được tạo ra từ năm 1993. Các Distro con cháu của Slackware thì tôi không biết mấy, thế nhưng những Distro con cháu của Debian thì thực sự hiện đang làm mưa làm gió. Nhánh con cháu của Debian có lẽ rằng cũng là nhánh Distro lớn nhất luôn. Bên cạnh chính bản thân Debian, những khuôn mặt điển hình nổi bật của nhánh này hoàn toàn có thể kể đến đó là Ubuntu ( được build dựa trên Debian ), Linux Mint ( được build dựa trên Ubuntu ), hay Kali Linux .

Ngoài ra, không thể không kể đến một nhánh Distro nổi tiếng khác, đó chính là Redhat, với Distro chủ đạo là Red Hat Enterprise Linux (RHEL), một trong những Distro hướng tới khách hàng Enterprise của người khổng lồ Redhat. Bên cạnh việc cung cấp RHEL với tư cách là một Distro trả phí, thì Redhat còn cung cấp một Distro khác miễn phí cho cộng đồng, đó là Fedora. Thực tế thì các phiên bản Fedora thường được ra mắt thử nghiệm trước để lấy feedbacks và fix lỗi, sau đó RHEL sẽ được xây dựng trên phiên bản Fedora đã ổn đinh. Ngoài ra Redhat còn cung cấp miễn phí source code của hầu hết các thành phần trên RHEL, và cộng đồng có thể từ đó xây dựng lên phiên bản Distro … “giống” với RHEL. Cái tên nổi bật nhất trong số này chính là CentOS (Community Enterprise Operating System). CentOS là một sản phẩm của cộng đồng (không phải là được Redhat support), hoàn toàn miễn phí với mong muốn đem lại một Distro với chất lượng Enterprise-class tương tự như RHEL (đương nhiên đồ miễn phí thì không bằng hàng chính chủ có phí được, nhưng CentOS vẫn được đánh giá rất cao)

Để học tập và làm quen với Linux, thì theo quan điểm cá thể của tôi, Ubuntu ( hoặc Debian ) cùng CentOS sẽ là bộ đôi mà bạn nên làm quen. Nó sẽ giúp bạn có được cái nhìn tổng quan, cũng như sự độc lạ giữa 2 nhánh Debian và Redhat. Bản thân tôi cũng có 2 cái máy ảo Ubuntu và CentOS để dùng mỗi khi cần .
Bên cạnh Linux Distribution, hệ điều hành sử dụng nhân Linux và những thành phần của GNU, thì cũng có những hệ điều hành khác chỉ dựa trên nhân Linux. Và điển hình nổi bật nhất trong số đó chính là Android. Android có lẽ rằng chính là hệ điều hành sử dụng nhân Linux thông dụng nhất cũng nên .

Linux Kernel version

Tính đến thời hiểm hiện tại ( 7/1/2017 ), thì phiên bản Linux Stable mới nhất là 4.9 .

Unix-like

Ở phần đầu, tôi đã nhắc đến việc MacOS là một trong số ít các hệ điều hành được chứng nhận của Single UNIX Specification (SUS), và được coi là một hệ điều hành Unix-like.

Hiện thương hiệu UNIX thuộc bản quyền của tổ chức The Open Group (chú ý là các chữ cái trong tên thương hiệu UNIX đều được viết hoa, trong khi để chỉ hệ điều thành thì ta có thể viết Unix hoặc UNIX).

Khái niệm “ Unix-like ” vốn được dùng để chỉ những hệ điều hành có được ghi nhận SUS, và hoàn toàn có thể sử dụng tên thương hiệu UNIX .
Một câu hỏi đặt ra là : Vậy theo định nghĩa ở trên thì Linux có phải là một hệ điều hành “ Unix-like ” hay không ?

Đáng tiếc câu trả lời là Không.

Đã từng có dự án Bất Động Sản giúp Linux đạt được SUS, nhưng ở đầu cuối không đi đến đâu cả, và hiện tại những Distro Linux cũng không được phép sử dụng trademark UNIX .
Bên cạnh cách hiểu “ Unix-like ” như thể một phần gắn kèm với SUS, còn có những quan điểm cho rằng nên dùng từ Unix-like theo nghĩa rộng hơn. Cụ thể, hoàn toàn có thể chia ra làm 3 loại Unix-like :

  • Genetic UNIX: Chỉ những hệ điều hành có liên quan trực tiếp đến codebase của phiên bản Unix của Bell Labs.

  • Trademark UNIX: Những hệ điều hành thoản mãn yêu cầu SUS và có thể sử dụng thương hiệu UNIX.

  • Functional UNIX: Những hệ điều hành “hoạt động giống Unix”, và Linux có thể được xếp vào loại này.

Dưới đây là một biểu đồ đơn giản mô tả quá trình hình thành và phát triển của Unix cũng như những hệ điều hành liên quan mật thiết đến Unix.

 

Lời kết

Như vậy là tôi đã hoàn toàn có thể ra mắt qua về một vài điểm quan trọng trong quốc tế của Linux, cũng như mối quan hệ lịch sử dân tộc giữa Linux với Unix. Hy vọng hoàn toàn có thể giúp những bạn giải đáp được những vướng mắc ( nếu có ) bấy lâu nay của mình .

Source: https://vh2.com.vn
Category : Ứng Dụng