Thứ Năm, 13 tháng 12, 2012

UNIX, LINUX, BSD, MACOS

UNIX

Unix, thời kỳ thai nghén

Tháng 8 năm 1969, Ken Thompson, một lập trình viên của AT&T subsidiary Bell Laboratories, đã sử dụng cơ hội trong một chuyến đi dài ngày (một tháng) của vợ và con trai anh ta để hiện thực hóa ý tưởng một hệ điều hành mới. Anh đã viết phiên bản đầu tiên của Unix trong ngôn ngữ assembly cho một minicomputer PDP-7 của công ty thiết bị số.


Khi đó cả Thompson và một đồng nghiệp Dennis Ritchie, cả hai đều đang trong trạng thái khá nhàn rỗi khi Bell Labs gặp sự cố trong việc phát triển một hệ thống chia sẻ thời gian mang tên Multics (Multiplexed Information and Computing Service). Bên cạnh đó họ không muốn phải trung thành với bất cứ hệ điều hành nào đã có trong thời gian này và cũng không muốn sáng chế lại Multics vì họ cho là kỳ cục và khó sử dụng.

Sau khi đấu tranh với một số ý tưởng cho một hệ thống mới, Thompson đã viết phiên bản đầu tiên của Unix, phiên bản mà cặp đôi này tiếp tục phát triển trong một vài năm, tiếp sau đó họ có một số sự trợ giúp đến từ các đồng nghiệp khác như Doug McIlroy, Joe Ossanna và Rudd Canaday. Một số nguyên lý của Multics đã được đưa sang hệ điều hành mới của họ, tuy nhiên vẻ đẹp của Unix khi đó nằm ở triết lý “ít hơn nhiều” của nó.
“Một hệ điều hành mạnh cho tương tác phải không đắt trong cả thiết bị hoặc nỗ lực con người”, Ritchie và Thompson đã viết 5 năm sau đó trong Communications of the ACM (CACM), tạp chí hiệp hội máy tính. “[Chúng tôi hy vọng rằng] người dùng Unix sẽ tìm thấy các đặc tính quan trọng nhất của hệ điều hành này chính là sự đơn giản, sự tao nhã và tính dễ dàng trong sử dụng của nó”.
Dường như họ đã đạt được mục đích. Unix trở thành một nền móng cho CNTT, đã được phát triển rộng rãi để chạy các máy chủ và máy trạm trong các trường đại học, các công ty và các tổ chức thuộc nhà nước. Sự ảnh hưởng của nó trải rộng hơn cả những triển khai thực. Năm 1983, ACM đã trao tặng cho Thompson và Ritchie giải thưởng A.M. Turing Award giải thưởng hàng đầu của tạp trí này cho việc trợ giúp cho CNTT: “Mô hình của hệ điều hành Unix đã hướng một thế hệ các nhà thiết kế phần mềm theo những suy nghĩ mới về việc lập trình”.
Rõ ràng sự thành công của Unix không chỉ xảy ra một lần. Năm 1971, nó đã được chuyển sang một PDP-11 minicomputer, một máy tính với nền tảng mạnh hơn so với chiếc PDP-7, máy tính ban đầu nó được viết. Khi đó Unix đã được bổ sung thêm các chương trình soạn thảo văn bản, định dạng văn bản và bắt đầu được sử dụng bởi một số nhân viên đánh máy trong phòng Patent của Bell Labs, đây là những người dùng đầu tiên của hệ điều hành mới này ngoài nhóm phát triển.
Vào năm 1972, Ritchie đã viết ngôn ngữ lập trình mức cao hơn (ngôn ngữ C, dựa trên ngôn ngữ B trước đó của Thompson); sau đó Thompson lại viết lại Unix bằng C, ngôn ngữ giúp tăng khă năng linh động của hệ điều hành trên các môi trường tính toán. Cùng với cách đó, nó đã được đổi tên thành Unics (Uniplexed Information and Computing Service), tuy nhiên ngay sao đó lại được sửa lại thành Unix.
Đây chính là thời gian để phổ biến rộng rãi hệ điều hành trên toàn thế giới. Bài báo của Ritchie và Thompson mang tiêu đề "The UNIX Time-Sharing System," đã bây bàng hoàng cho cả lĩnh vực CNTT toàn thế giới.
“Bài báo của CACM đã có một tầm ảnh hưởng rõ rệt ”, sử gia trong lĩnh vực CNTT, Peter Salus, người đã viết một cuốn sách mang tên “The Daemon, the Gnu and the Penguin” đã cho biết như vậy.
Thompson và Ritchie là những hacker rất giỏi, thuật ngữ đó ám chỉ đến những người biết kết hợp óc sáng tạo của mình với kiến thức lập trình máy tính và sức lao động để giải quyết các vấn đề phần mềm.
Phương pháp của họ và mã mà họ viết, đã hấp dẫn được các lập trình viên tại các trường đại học và sau đó là ở các công ty mà không cần nhiều ngân khố cho IBM, Hewlett-Packard hoặc Microsoft. Unix là tất cả những gì mà họ cũng như các hacker khác như Bill Joy tại Đại học California, Rick Rashid tại Đại học Carnegie Mellon và David Korn ở Bell Labs, mong muốn có.
“Gần như ngay từ đầu, hệ thống đã có thể tự duy trì”, Thompson và Ritchie đã viết như vậy trong một bài báo. “Vì tất cả các chương trình nguồn đều được cung cấp sẵn và có thể thay đổi dễ dàng trực tuyến nên chúng tôi hoàn toàn sẵn lòng để sửa và viết lại hệ thống và phần mềm của nó khi có các ý tưởng, phát minh mới hay có những gợi ý bởi những người dùng khác”.
Korn, một AT&T Fellow ngày nay, làm một lập trình viên làm việc tại Bell Labs trong những năm1970. “Một trong những dấu hiệu khác biệt của Unix là bạn có thể viết các công cụ cho nó và thay thế chúng bằng các công cụ tốt hơn. Nó không phải là một tảng đá đơn thuần cần phải mua mọi thứ mà bạn có thể phát triển lên các phiên bản tốt hơn”. Ông đã phát triển Korn shell một cách thuyết phục, về bản chất là một ngôn ngữ lập trình để hướng các hoạt động của Unix, hiện được cung cấp như một phần mềm mã nguồn mở.
Ưu điểm chính của Unix được một số người cho là tính năng "pipe" của nó, giới thiệu năm 1973, tính năng này làm cho nó có thể dễ dàng pass (chuyển) đầu ra của một chương trình  này sang một chương trình khác. Khái niệm pipeline được phát minh bởi McIlroy của Bell Labs,Unix đã được phát triển tại trụ sở văn phòng của Bell Labs ở Murray Hill, NJ. Và một ưu điểm khác của Unix – ưu điểm thứ hai, như Salus nhận định – nó không yêu cầu đến một mainframe triệu đôla mà thay vào đó có thể được viết cho các minicomputer PDP-7 vì đó là tất cả những gì Thompson và Ritchie có trong tay họ vào thời điểm 1969.
Rất nhiều tính năng khác được phát triển thêm sau đó. Các nhà nghiên cứu tại trường đại học đã chấp nhận Unix bởi tính đơn giản và dễ dàng thay đổi, nó cũng dễ thỏa mãn các yêu cầu về tài nguyên và mã nguồn được cung cấp miễn phí. Bắt đầu như Sun Microsystems và một công ty không tồn tại nữa đã sử dụng trong tính toán khoa học chẳng hạn như Multiflow Computer, làm cho nó trở thành một hệ điều hành của họ trong thực hiện một số nhiệm vụ riêng.

Họ hàng nhà Unix

Unix đã được phát triển với tư cách là một hệ thống mã nguồn mở, tuy nhiên vào năm 1956, AT&T đã nhận một chỉ thị từ liên ban về việc đi chệnh hướng từ nhiệm vụ của nó đến cung cấp dịch vụ điện thoại. Mặc dù có thể phát triển phần mềm và thậm chí đăng ký để đánh mức phí nhưng công ty đã gặp trở ngại trong việc nhảy vào kinh doanh máy tính.
Chính vì vậy mà Unix đã được phát triển mà không hề nhận được sự khích lệ từ phía ban lãnh đạo, ban đầu chỉ được coi như một vấn đề mang tính tò mò và chỉ gây phiền toái về tính pháp lý.

       Sự hình thành Minux

Vào cuối những năm 1970, AT&T đã nhận ra Unix có một tầm quan trọng trong vấn đề thương mại ở một góc độ nào đó. Các luật sư của hãng bắt đầu nhảy vào cuộc và họ đã tìm mọi cách để bảo vệ Unix như một bí quyết thương mại. Bắt đầu năm 1979, với phát hành phiên bản 7, các đăng ký của Unix đã không cho sinh viên các trường đại học sử dụng mã nguồn của nó cho việc nghiên cứu.
Điều này không gây ảnh hưởng nhiều, một giáo sư về khoa học máy tính Andrew Tanenbaum đã nói vậy, ông cũng đã sử dụng Unix V6 tại một trường đại học ở Amsterdam. Năm 1978, ông đã viết một bản Unix “nhái” để sử dụng trong lớp học của mình, tạo một hệ điều hành Minix mã nguồn mở để chạy trên các máy tính Intel 80286.
“Minix đã hợp nhất tất cả các ý tưởng của Unix và nó là một công việc phi thường”, Salus nói vậy. “Chỉ có một lập trình viên lớn, người hiểu biết sâu những thứ bên trong của hệ điều hành mới có thể làm được điều đó”. 

       Sự hình thành BSD

Quay trở lại một thập kỷ cách đây, Bill Joy, một sinh viên tốt nghiệp và là một lập trình viên tại đại học California ở Berkeley trong những năm 70, đã nghiên cứu một copy của Unix từ Bell Labs và ông đã thấy đây chính là một nền tảng tốt cho công việc của chính mình trên trình biên dịch Pascal và bộ soạn thảo văn bản.
Những thay đổi và những mở rộng mà ông ta và những thành viên khác tại Berkeley đã thực hiện đã cho ra đời một nhánh thứ hai của Unix mang tên Berkeley Software Distribution (BSD) Unix. Tháng 3 năm 1978, Joy đã bán đi các copy 1BSD  này với giá 50$ mỗi copy.
      Chính vì vậy tính đến năm 1980 đã có hai dòng Unix chủ yếu, một từ Berkeley và một từ AT&T, giai đoạn này được biết đến với những gì mà sau này gọi là cuộc chiến Unix. Tuy nhiên vấn đề ở đây là các chuyên gia phát triển phần mềm ở bất kỳ nơi đâu cũng đều có thể nhận được mã nguồn của Unix và có thể biến đổi nó sao cho phù hợp với nhu cầu của mình.
Năm 1982, Joy một người đã sáng lập ra Sun Microsystems và đã cung cấp máy trạm, Sun-1, đang chạy phiên bản BSD mang tên SunOS. (Solaris đã xuất hiện khoảng một thập kỷ sau đó). Một năm sau đó, AT&T đã phát hành phiên bản thứ hai của Unix System V, một hệ điều hành rất có sức thuyết phục với mong muốn trở thành nền tảng cơ bản cho AIX của IBM và HP-UX của Hewlett-Packard.

 Cuộc chiến Unix

Trong khoảng giữa những năm 80, người dùng, gồm trong đó cả chính quyền liên bang, đã phàn nàn rằng tuy Unix theo lý thuyết chỉ là một hệ điều hành portable nhưng trong thực tế nó lại không giống vậy chút nào. Các hãng đã để ngoài tai và chỉ thừa nhận bên ngoài sự phàn nàn nhưng bên trong vẫn làm việc hàng ngày để ngăn chặn khách hàng bằng các tính năng của Unix và API.
Năm 1987, Unix System Laboratories, một phần của Bell Labs khi đó, đã bắt đầu công việc với Sun trên một hệ thống để hợp nhất hai nhánh chủ yếu của Unix. Sản phẩm trong sự cộng tác của họ được gọi là Unix System V Release 4.0 và được phát hành hai năm sau đó, sản phẩm này có kết hợp các tính năng từ System V Release 3, BSD, SunOS và Xenix của Microsoft.
Cuộc chiến diễn ra, các hãng Unix khác đã e sợ sự liên minh AT&T/Sun và đã tạo nên các liên minh cạnh tranh như X/Open, Open Software Foundation, Unix International and Corporation for Open Systems. Một mặt tất cả họ đều có yêu cầu hợp nhất Unix tuy nhiên vẫn thầm lén loại bỏ lẫn nhau.
Các cuộc chiến Unix đã thất bại trong việc giải quyết những khác biệt hay thiết lập một chuẩn cho hệ điều hành. Tuy nhiên năm 1993, cộng đồng Unix đã nhận được một lời cảnh tỉnh từ phía Microsoft dưới dạng Windows NT, một hệ điều hành đa nhiệm 32-bit dành cho khối doanh nghiệp. Mã độc quyền NT đã nện một đòn trực tiếp vào Unix và được dự định sẽ mở rộng quyền bá chủ về máy trạm của Microsoft trong một số lĩnh vực trung tâm dữ liệu lẫn máy chủ.
Những người dùng của Microsoft đã rất hoan nghênh. Còn các hãng Unix đã bị một đòn bất ngờ. Tất cả các đối thủ Unix chính đã liên minh trong một sáng kiến mang tên Common Open Software Environment, và năm sau đó đã kết hợp nhóm AT&T/Sun-backed Unix International với Open Software Foundation. Sự liên minh đó mở raThe Open Group ngày nay.

Tiêu chuẩn để hệ điều hành mang thương hiệu UNIX.

Unix, một hệ điều hành được viết cách đây nhiều thập kỷ tạo AT&T's Bell Labs. Các phiên bản chính của Unix ngày nay phân thành hai nhánh lớn: Một nhánh bắt nguồn trực tiếp từ AT&T và một nhánh từ AT&T thông qua University of California tại Berkeley. Các nhánh chính ngày nay là AIX từ IBM, HP-UX từ HP và Solaris từ Sun.
Mặc dù vậy, Open Group, nhóm sở hữu thương hiệu Unix đã định nghĩa Unix là tất cả các hệ điều hành được cấp chứng chỉ nhờ phù hợp với Single Unix Specification (SUS). Gồm có các hệ điều hành chẳng hạn như Mac OS X Leopard (hệ điều hành có nguồn gốc từ BSD Unix) và z/OS của IBM (có nguồn gốc từ hệ điều hành mainframe MVS), nhưng vì chúng phù hợp với SUS và hỗ trợ các API của SUS. Ý tưởng cơ bản ở đây rất đơn giản, là Unix nếu nó hoạt động như Unix chứ không cần quan tâm đến mã nằm bên trong của nó.
Một định nghĩa rộng hơn đối với Unix gồm cả các hệ điều hành giống Unix – đôi khi được gọi là Unix "nhái" hoặc trông giống – mà đã copy các ý tưởng từ Unix nhưng không trực tiếp cộng tác mã từ Unix. Một phân phối trong đó là Linux.

Thêm vào kernel của hệ điều hành, các thực thi của Unix còn gồm có các tiện ích như các trình soạn thảo dòng lệnh, các giao diện ứng dụng chương trình, các môi trường phát triển, thư viện và tài liệu.

GNU/Linux.

            GNU

Dự án GNU được khởi đầu vào năm1984, mục đích nhằm phát triển một hệ điều hành dạng Unix đầy đủ, đó là phần mềm tự do: hệ thống GNU. GNU được cấu tạo từ các chữ đầu của cụm từ "GNU's Not Unix"; phát âm như "gờ-nu." 

           LINUX

Linux là tên gọi nhân hệ điều hành (lõi hay kernel) có thể hiểu đơn giản là một tập hợp các chương trình thường trú trong bộ nhớ. Nó là phần chính của hệ điều hành, phụ trách hầu hết các chức năng chính của hệ điều hành như quản lý bộ nhớ, thực thi nhiệm vụ và truy nhập phần cứng... 
Dự án được khởi tạo vào năm 1991 bởi Linus Tovalds (một sinh viên Phần lan) bằng một bài viết nổi tiếng trong nhóm tin Usenet comp.os.minix, trong đó có đoạn viết:
"I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones..." ( "Tôi đang xây dựng một hệ điều hành tự do (chỉ là sở thích và sẽ không lớn và chuyên nghiệp như gnu) cho 386(486) ..." )
Vào tháng 8 năm 1991, Linus Tovalds đã cho ra bản Linux đầu tiên  trên cơ sở cải tiến một bản UNIX nhái có tên Minix do Giáo sư Andrew S. Tanenbaum xây dự ng và phổ  biế n. Nhân Linux tuy nhỏ song là tự đóng gói.
Năm 1992, Torvals đã quyết định cho phát hành Linux dưới dạng mã nguồn mở của giấy phép GPL, cho phép tất cả mọi người có quyền download về để xem mã nguồn để cung chung tay phát triển. Vào thời điểm này, dự án GNU đã hoàn thành nhiều cấu thành thiết yếu cho một hệ điều hành tự do, tuy nhiên phần hạt nhân (lõi - Kernel) của hệ điều hành này vẫn chưa được hoàn thành. Trong khi đó hệ điều hành BSD vẫn chưa được tự do hóa do các trở ngại về mặt pháp lý. Do đó Torvals cho phát hành Linux dưới giấy phép GPL đã tạo điều kiện thuận lợi cho Linux có cơ hội kết hợp với các thành phần trong hệ thống GNU tạo nên một hệ điều hành hoàn chỉnh Linux/Gnu. Những điều này đã tạo ra một chỗ đứng thuận lợi cho hạt nhân Linux, nó nhanh chóng giành được sự quan tâm của các nhà phát triển cũng như người dùng. Từ đó, theo tư tưởng GNU, rất nhiều chuyên gia đã tham gia phát triển Linux, hình thành nên cộng đồng Linux
Ngày 14/3/1994, Torvalds cho ra mắt phiên bản hoàn thiện đầu tiên, Linux 1.0 với 176.250 dòng lệnh. 1 năm sau đó, phiên bản 1.2 ra mắt với 310.950 dòng lệnh.
Năm 1996, Linus Torvalds ghé thăm công viên hải dương học, tại đây, ông đã quyết định sử dụng hình ảnh chú chim cánh cụt để làm biểu tượng chính thức của Linux.
Năm 1998, Linux bắt đầu được các “ông lớn” công nghệ quan tâm và đầu tư để phát triển. Nổi bật trong số đó là IBM. Công ty này đã đầu tư hàng tỉ USD để phát triển các dịch vụ và phần mềm trên nền tảng Linux, với đội ngũ nhân viên phát triển hơn 300 người. Ngoài IBM, Compaq và Oracle cũng bắt đầu đầu tư và phát triển Linux.
Năm 2007, hàng loạt hãng sản xuất máy tính lớn như HP, ASUS, Dell, Lenovo bắt đầu bán ra các sản phẩm laptop được cài đặt sẵn Linux.

So sanh Linux và BSD

  • FreeBSD là một hệ điều hành hoàn chỉnh, trong khi Linux là một nhân (kernel) của hệ điều hành; thực ra Linux kết hợp với bộ các phần mềm GNU tạo nên hệ điều hành GNU/Linux.
  • FreeBSD được phát triển bởi một số nhất định các thành viên có chuyên môn trong nhóm; trong khi Linux thuộc quyền sở hữu của Linus Torvalds nhưng các phần mềm Linux không hạn chế số người viết.
  • Hệ thống gói chương trình (BSD ports); so với các gói deb của Debian/Ubuntu hoặc rpm của Red Hat/Fedora Core.
  • Thông thường các file (nhị phân) chạy được trên Linux thì cũng chạy được trên FreeBSD, nhưng ngược lại thì không được.



tổng hợp từ google 





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

Đăng nhận xét