Câu chuyện Unix

unixBản gốc tiếng Anh : Unix turns 40: The past, present and future of a revolutionary OS
Bài viết lợi dụng bản dịch từ QTM

Mùa hè cách đây 40 năm, một lập trình viên đã bắt tay và thực hiện vội trong vòng một tháng một điều kỳ diệu, sau này nó trở thành một trong những sản phẩm phần mềm quan trọng nhất trong lịch sử.

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”.

Những bước đi ban đầu

Ken Thompson and Dennis Ritchie
Thompson và Ritchie trong những ngày đầu của Unix

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.

Thiên đường của hacker

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, sau đó được sử dụng trong nhiều hệ điều hành khác, gồm có các biến thể của Unix, Linux, DOS và Windows.

Bell Labs, Murray Hill, NJ
Unix đã được phát tiển tại trụ sở của Bell Labs ở Murray Hill, NJ

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ý.
Tuy nhiên sau đó 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 đó”. Minix trở thành điểm khởi đầu cho việc phát triển thành Linux sau này.

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.

Unix versions chart
Các nhánh trong họ hàng nhà Unix

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ở ra The Open Group ngày nay.

Như một vấn đề mang tính thực tế, những phát triển này đã có thể chuẩn hóa Unix. Tuy nhiên chúng có thể đã quá muộn để ngăn chặn một trận chiều cường mang tên Linux, một hệ điều hành mã nguồn mở được phát triển khác.

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.

Tương lai của Unix

Việc liên tục thiếu khả năng portable giữa các phiên bản cạnh tranh của Unix cũng như ưu điểm về giá thành của Linux và Windows trên các bộ vi xử lý x86, sẽ nhắc nhở các tổ chức CNTT di trú khỏi Unix.

“Các kết quả đã xác nhận cho thấy sự nhiệt tình với Lunix với tư cách một nền tảng máy chủ và Windows tăng, tuy nhiên với Unix thì sự nhiệt tình này đang giảm dần”, đây là các các báo cáo đã được công bố vào tháng 2 năm nay.

Tuy vậy, theo nhận xét từ một nhà phân tích của Gartner, George Weiss: “Unix đã có một quá khứ lâu đời và không hề biến mất, sự thật Linux chính là một kế thừa hợp lý của Unix”.

Theo một thống kê gần đây được thực hiện bởi Computerworld gợi ý rằng bất cứ di trú nào khỏi Unix sẽ không xảy ra nhanh chóng đến vậy. Trong thống kế từ 130 người dùng Unix trong số 211 nhà quản lý CNTT, 90% nói rằng các công ty của họ vẫn rất tín nhiệm Unix. Có hơn một nửa cho rằng, “Unix là một nền tảng cần thiết cho họ và sẽ để lại” , chỉ 12% nói rằng “Chúng tôi muốn di trú khỏi Unix trong tương lai” với lý do tiết kiệm chi phí, đơn giản hóa thông qua sự hợp nhất máy chủ.

Còn Weiss lại cho rằng sự di trú sang các bộ vi xử lý x86 sẽ tăng nhanh vì các thuận lợi về giá thành của phần cứng. “Kiến trúc có thể nâng cấp, mở rộng; việc cluster; điện toán đám mây; ảo hóa trên x86 – khi bạn kết hợp tất cả các xu hướng đó, hệ điều hành lựa chọn của bạn sẽ là Linux và Windows”.

Tuy nhiên Open Group, chủ sở hữu của Single Unix Specification và nhà chứng thực các hệ thống của Unix, lại cho rằng Unix có những ưu điểm nổi trội hơn vì những tính năng của nó cũng như khả năng mở rộng lẫn hiệu suất cho các ứng dụng mang nhiệm vụ quan trọng. Còn Linux chỉ thiên về các chuẩn nhỏ hơn, các ứng dụng kém quan trọng hơn.

Gia tài Unix

Không quan tâm đến số mệnh tối thượng của Unix, hệ điều hành đã sinh ra ở Bell Labs cách đây 40 năm đã thiết lập một gia tài tồn tại trong nhiều thập kỷ. Nó có thể khẳng định chính là nguồn gốc tổ tiên của một loạt các phần mềm phổ biến, gồm có Unix cho máy IBM, HP, Sun, Mac OS X và Linux cho. Bên cạnh đó  nó cũng tạo sự ảnh hưởng tới các hệ thống chẳng hạn như Windows NT của Microsoft và IBM, các phiên bản Microsoft cho DOS.

Posted in News. Thẻ: . 9 Comments »

9 phản hồi to “Câu chuyện Unix”

  1. St.Konqueror Says:

    Rất hay và đầy đủ. Thông tin về hợp ngữ PDP-7 ở trên cũng rất đáng chú ý vì vốn nhiều người nghĩ rằng UNIX nguyên thuỷ được viết bởi C mà không biết rằng bản viết bằng C chính là sự viết lại từ bản PDP-7.

    Chúc mừng anh tuyetkiem có 1 bài viết hay như thế này.

  2. hbk123 Says:

    Hờ hờ em bác Tuyetkiem lâu òi mới viết bài nhề (undertaker đây – ubuntu-vn)

  3. .... Says:

    hơ . vào xem thử cho bình luận cái .hì

  4. .... Says:

    eo ôi! sao cái hình mặc định xấu chít thía!:(

  5. ngoc1414 Says:

    ô thế hóa ra unix là mẹ của windows luôn à


Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s

%d bloggers like this: