Hệ điều hành Unix được phát triển vào năm Unix khác với Linux như thế nào

chủ âm tiết Ngày 19 tháng 3 năm 2011 lúc 11:16 chiều

Linux khác với UNIX như thế nào và hệ điều hành giống UNIX là gì?

  • Phòng gỗ *
UNIX
UNIX (không đáng nhầm lẫn với định nghĩa “hệ điều hành giống UNIX”) - một họ hệ điều hành (Mac OS X, GNU/Linux).
Hệ thống đầu tiên được phát triển vào năm 1969 tại Phòng thí nghiệm Bell, một tập đoàn cũ của Mỹ.

Các tính năng đặc biệt của UNIX:

  1. Cấu hình hệ thống dễ dàng bằng cách sử dụng các tập tin đơn giản, thường là văn bản.
  2. Sử dụng rộng rãi dòng lệnh.
  3. Sử dụng băng tải.
Trong của chúng tôi thời gian UNIXđược sử dụng chủ yếu trên các máy chủ và như một hệ thống cho thiết bị.
Không thể không ghi nhận tầm quan trọng lịch sử to lớn của hệ thống UNIX. Hiện tại chúng được công nhận là một trong những hệ điều hành quan trọng nhất trong lịch sử. Trong quá trình phát triển hệ thống UNIX, ngôn ngữ C đã được tạo ra.

Các biến thể UNIX theo năm

Hệ điều hành giống UNIX
Hệ điều hành giống UNIX (Thỉnh thoảng sử dụng chữ viết tắt *nix) - một hệ thống được hình thành dưới ảnh hưởng của UNIX.

Từ UNIX được sử dụng như một dấu hiệu của sự phù hợp và như một nhãn hiệu.

Tập đoàn Open Group sở hữu nhãn hiệu "UNIX", nhưng được biết đến nhiều nhất với tư cách là cơ quan chứng nhận cho nhãn hiệu UNIX. Gần đây, The Open Group đã làm sáng tỏ việc xuất bản Đặc tả UNIX Đơn, các tiêu chuẩn mà một hệ điều hành phải đáp ứng để được tự hào gọi là Unix.

Bạn có thể xem qua gia phả Hệ điều hành giống UNIX.

Linux
Linux- tên chung cho các hệ điều hành dựa trên UNIX được phát triển trong khuôn khổ dự án GNU (dự án phát triển phần mềm nguồn mở). Linux chạy trên rất nhiều kiến ​​trúc bộ xử lý khác nhau, từ ARM đến Intel x86.

Các bản phân phối nổi tiếng và phổ biến nhất là Arch Linux, CentOS, Debian. Ngoài ra còn có nhiều “nội địa” Bản phân phối của Nga- ALT Linux, ASPLinux và những thứ khác.

Có khá nhiều tranh cãi về cách đặt tên cho GNU/Linux.
Người ủng hộ" mã nguồn mở" sử dụng thuật ngữ "Linux" và những người ủng hộ "phần mềm miễn phí" sử dụng "GNU/Linux". Tôi thích lựa chọn đầu tiên hơn. Đôi khi, để thuận tiện cho việc trình bày thuật ngữ GNU/Linux, các cách viết “GNU+Linux”, “GNU-Linux”, “GNU Linux” được sử dụng.

Không giống như các hệ thống thương mại (MS Windows, Mac OS X), Linux không có trung tâm phát triển về mặt địa lý và một tổ chức cụ thể sở hữu hệ thống. Bản thân hệ thống và các chương trình dành cho nó là kết quả công việc của các cộng đồng khổng lồ, hàng nghìn dự án. Bất cứ ai cũng có thể tham gia dự án hoặc tạo dự án của riêng mình!

Phần kết luận
Như vậy, chúng ta đã học được chuỗi: UNIX -> UNIX-like OS -> Linux.

Tóm lại, tôi có thể nói rằng sự khác biệt giữa Linux và UNIX là rõ ràng. UNIX là một khái niệm rộng hơn nhiều, là nền tảng để xây dựng và chứng nhận tất cả các hệ thống giống UNIX, và Linux là một trường hợp đặc biệt của UNIX.

Tags: unix, linux, nix, Linux, unix

Hệ điều hành UNIX, tiền thân của nhiều hệ điều hành hiện đại như Linux, Android, Mac OS X và nhiều hệ điều hành khác, được tạo ra trong khuôn viên của trung tâm nghiên cứu Bell Labs, một bộ phận của AT&T. Nói chung, Bell Labs là nơi ươm mầm cho các nhà khoa học đã có những khám phá làm thay đổi công nghệ theo đúng nghĩa đen. Ví dụ, tại Phòng thí nghiệm Bell, các nhà khoa học như William Shockley, John Bardeen và Walter Brattain đã làm việc, những người đầu tiên tạo ra bóng bán dẫn lưỡng cực vào năm 1947. Chúng ta có thể nói rằng chính tại Bell Labs đã phát minh ra tia laser, mặc dù vào thời điểm đó người ta đã tạo ra maser. Claude Shannon, người sáng lập lý thuyết thông tin, cũng từng làm việc tại Bell Labs. Những người tạo ra ngôn ngữ C, Ken Thompson và Denis Ritchie (chúng ta sẽ nhớ họ sau), cũng làm việc ở đó, và tác giả của C++, Bjarne Stroustrup, cũng làm việc ở đó.

Trên đường tới UNIX

Trước khi nói về UNIX, chúng ta hãy nhớ lại những hệ điều hành đã được tạo ra trước nó và nó đã xác định phần lớn UNIX là gì và thông qua nó, nhiều hệ điều hành hiện đại khác.

Sự phát triển UNIX không phải là công việc đầu tiên trong lĩnh vực hệ điều hành được thực hiện tại Bell Labs. Năm 1957, phòng thí nghiệm bắt đầu phát triển hệ điều hành mang tên BESYS (viết tắt của Bell Operating System). Người quản lý dự án là Viktor Vysotsky, con trai của một nhà thiên văn học người Nga đã di cư sang Mỹ. BESYS là một dự án nội bộ không được phát hành dưới dạng sản phẩm thương mại hoàn chỉnh, mặc dù BESYS đã được phân phối trên băng từ cho mọi người. Hệ thống này được thiết kế để chạy trên các máy tính dòng IBM 704 – 709x (IBM 7090, 7094). Tôi muốn gọi những thứ này là từ cổ xưa “máy tính”, nhưng để không làm nhức tai, chúng ta sẽ tiếp tục gọi chúng là máy tính.

IBM704

Trước hết, BESYS được thiết kế để thực hiện hàng loạt một số lượng lớn chương trình, nghĩa là theo cách mà danh sách các chương trình được chỉ định và việc thực hiện chúng được lên lịch theo cách chiếm tối đa tài nguyên có thể để máy tính không ở chế độ chờ. Đồng thời, BESYS đã có sự khởi đầu của hệ điều hành chia sẻ thời gian - về bản chất, cái mà ngày nay được gọi là đa nhiệm. Chúng xuất hiện khi nào hệ thống hoàn chỉnh với việc chia sẻ thời gian, cơ hội này được tận dụng để nhiều người có thể làm việc với một máy tính cùng lúc, mỗi người từ thiết bị đầu cuối của riêng họ.

Vào năm 1964, Bell Labs đã tiến hành nâng cấp máy tính, kết quả là BESYS không thể chạy trên các máy tính mới của IBM nữa; đa nền tảng đã không còn là vấn đề vào thời điểm đó. Vào thời điểm đó, IBM cung cấp máy tính không có hệ điều hành. Các nhà phát triển từ Bell Labs lẽ ra đã có thể bắt đầu viết một hệ điều hành mới, nhưng họ đã làm khác - họ tham gia phát triển hệ điều hành Multics.

Dự án Multics (viết tắt của Multiplexed Information and Computing Service) được giáo sư Jack Dennis của MIT đề xuất. Năm 1963, ông và các sinh viên của mình đã phát triển một đặc điểm kỹ thuật cho một hệ điều hành mới và thu hút được sự quan tâm của các đại diện của General Electric trong dự án. Kết quả là Bell Labs đã cùng với MIT và General Electric phát triển một hệ điều hành mới.

Và những ý tưởng cho dự án rất tham vọng. Đầu tiên, nó phải là một hệ điều hành có khả năng chia sẻ toàn thời gian. Thứ hai, Multics không được viết bằng hợp ngữ mà bằng một trong những ngôn ngữ cấp cao đầu tiên - PL/1, được phát triển vào năm 1964. Thứ ba, Multics có thể chạy trên các máy tính có nhiều bộ xử lý. Hệ điều hành tương tự có hệ thống tệp phân cấp, tên tệp có thể chứa bất kỳ ký tự nào và khá dài, đồng thời hệ thống tệp cũng cung cấp các liên kết tượng trưng đến các thư mục.

Thật không may, công việc phát triển Multics bị kéo dài trong một thời gian dài; các lập trình viên của Bell Labs chưa bao giờ thấy sản phẩm này được ra mắt và đã rời bỏ dự án vào tháng 4 năm 1969. Và việc phát hành diễn ra vào tháng 10 cùng năm, nhưng họ nói rằng phiên bản đầu tiên có nhiều lỗi nghiêm trọng và trong một năm nữa, các nhà phát triển còn lại đã sửa các lỗi mà người dùng đã báo cáo với họ, mặc dù một năm sau Multics đã là một hệ thống đáng tin cậy hơn .

Sự phát triển của Multics vẫn đang được tiến hành trong một khoảng thời gian dài, bản phát hành cuối cùng là vào năm 1992 và đó là phiên bản 12.5, mặc dù đó là một câu chuyện hoàn toàn khác nhưng Multics đã có tác động rất lớn đến tương lai của UNIX.

Sự ra đời của UNIX

UNIX gần như xuất hiện một cách tình cờ, và trò chơi máy tính “Space Travel”, một trò chơi du hành vũ trụ do Ken Thompson viết, là nguyên nhân gây ra điều này. Trở lại năm 1969, trò chơi “Du hành vũ trụ” lần đầu tiên được thiết kế cho cùng hệ điều hành Multics đó và sau khi Bell Labs bị cắt quyền truy cập vào các phiên bản mới của Multics, Ken đã viết lại trò chơi trong Fortran và chuyển nó sang hệ điều hành GECOS. hệ thống đi kèm với máy tính GE-635. Nhưng ở đây có hai vấn đề xuất hiện. Thứ nhất, chiếc máy tính này không quá tuyệt vời hệ thống tốtđối với đầu ra hiển thị và thứ hai, chơi trên máy tính này hơi đắt - khoảng 50-75 đô la một giờ.

Nhưng một ngày nọ, Ken Thompson tình cờ thấy một chiếc máy tính DEC PDP-7 hiếm khi được sử dụng và có thể phù hợp để chạy Space Travel, đồng thời nó cũng có bộ xử lý video tốt hơn.

Ken Thompson

Lần này các nhà phát triển chưa (chưa) thử nghiệm các ngôn ngữ cấp cao và phiên bản đầu tiên của Unics được viết bằng hợp ngữ. Bản thân Thompson, Denis Ritchie, và sau đó là Douglas McIlroy, Joey Ossanna và Rad Kennedy đã tham gia vào quá trình phát triển Unics. Lúc đầu, Kernighan, người đề xuất tên hệ điều hành, chỉ đưa ra sự hỗ trợ về mặt tinh thần.

Một thời gian sau, vào năm 1970, khi đa nhiệm được triển khai, hệ điều hành được đổi tên thành UNIX và không còn được coi là viết tắt nữa. Năm nay được coi là năm chính thức ra đời của UNIX và phải tính từ ngày 1/1/1970 thì thời gian hệ thống được tính (số giây bắt đầu từ ngày này). Ngày tương tự được gọi một cách thảm hại hơn - sự khởi đầu của kỷ nguyên UNIX (bằng tiếng Anh - UNIX Epoch). Bạn có nhớ tất cả chúng ta đều sợ hãi trước vấn đề Y2K không? Vì vậy, một vấn đề tương tự đang chờ đợi chúng ta vào năm 2038, khi các số nguyên 32 bit, thường được sử dụng để xác định ngày, sẽ không đủ để biểu thị thời gian và thời gian và ngày tháng sẽ trở thành số âm. Tôi muốn tin rằng vào thời điểm này, tất cả phần mềm quan trọng sẽ sử dụng các biến 64-bit cho mục đích này nhằm đẩy lùi ngày khủng khiếp này thêm 292 triệu năm nữa và khi đó chúng ta sẽ nghĩ ra điều gì đó.

Đến năm 1971, UNIX đã là một hệ điều hành chính thức và Bell Labs thậm chí còn đưa ra tuyên bố của mình Nhãn hiệu UNIX. Cùng năm đó, UNIX được viết lại để chạy trên máy tính PDP-11 mạnh hơn và chính trong năm này, phiên bản chính thức đầu tiên của UNIX (còn gọi là First Edition) đã được phát hành.

Song song với sự phát triển của Unics/UNIX, Ken Thompson và Denis Ritchie, bắt đầu từ năm 1969, đã phát triển Ngôn ngữ mới B (Bi), dựa trên ngôn ngữ BCPL, do đó, có thể được coi là hậu duệ của ngôn ngữ Algol-60. Ritchie đề xuất viết lại UNIX bằng B, có thể di chuyển được mặc dù đã được thông dịch, và sau đó ông tiếp tục sửa đổi ngôn ngữ cho phù hợp với nhu cầu mới. Năm 1972, phiên bản thứ hai của UNIX, Second Edition, được phát hành, được viết gần như hoàn toàn bằng B; một mô-đun khá nhỏ khoảng 1000 dòng vẫn còn trong trình biên dịch mã, vì vậy việc chuyển UNIX sang các máy tính khác giờ đây tương đối dễ dàng. Đây là cách UNIX trở nên di động.

Ken Thompson và Dennis Ritchie

Sau đó, ngôn ngữ B phát triển cùng với UNIX cho đến khi khai sinh ra ngôn ngữ C, một trong những ngôn ngữ lập trình nổi tiếng nhất hiện nay thường bị vu khống hoặc ca tụng như một ngôn ngữ lý tưởng. Năm 1973, phiên bản thứ ba của UNIX được phát hành với trình biên dịch C tích hợp và bắt đầu từ phiên bản thứ 5, được phát hành năm 1974, người ta tin rằng UNIX được viết lại hoàn toàn bằng C. Nhân tiện, đó là trong UNIX vào năm 1973 khái niệm về đường ống

Bắt đầu từ năm 1974-1975, UNIX bắt đầu lan rộng ra ngoài Bell Labs. Thompson và Ritchie xuất bản UNIX trong Truyền thông của ACM và AT&T cung cấp UNIX cho các tổ chức giáo dục như một công cụ giảng dạy. Vào năm 1976, chúng ta có thể nói rằng lần chuyển UNIX đầu tiên sang một hệ thống khác đã diễn ra - sang máy tính Interdata 8/32. Ngoài ra, vào năm 1975, phiên bản thứ 6 của UNIX đã được phát hành, bắt đầu từ đó xuất hiện nhiều triển khai khác nhau của hệ điều hành này.

Hệ điều hành UNIX hóa ra thành công đến mức, bắt đầu từ cuối những năm 70, các nhà phát triển khác bắt đầu tạo ra các hệ thống tương tự. Bây giờ chúng ta hãy chuyển từ UNIX gốc sang bản sao của nó và xem những hệ điều hành khác đã xuất hiện nhờ nó.

Sự xuất hiện của BSD

Sự phổ biến của hệ điều hành này phần lớn được tạo điều kiện thuận lợi bởi các quan chức Mỹ, ngay cả trước khi UNIX ra đời vào năm 1956, những người đã áp đặt các hạn chế đối với AT&T, công ty sở hữu Bell Labs. Sự thật là khi đó Bộ Tư pháp đã buộc AT&T phải ký một thỏa thuận cấm công ty tham gia vào các hoạt động không liên quan đến mạng và thiết bị điện thoại, điện báo, nhưng đến những năm 70, AT&T đã nhận ra dự án UNIX thành công là như thế nào và muốn biến nó thành thương mại. Để giới chức cho phép làm điều này, AT&T đã chuyển mã nguồn UNIX cho một số trường đại học Mỹ.

Một trong những trường đại học có quyền truy cập vào phần nội dung của mã nguồn là Đại học California ở Berkeley, và nếu có mã nguồn của người khác, thì mong muốn sửa một cái gì đó trong chương trình cho chính bạn sẽ vô tình nảy sinh, đặc biệt là vì giấy phép đã làm như vậy. không cấm điều này. Do đó, vài năm sau (năm 1978), hệ thống tương thích UNIX đầu tiên đã xuất hiện, không được tạo ra trong các bức tường của AT&T. Đó là BSD UNIX.

Đại học California tại Berkeley

BSD là tên viết tắt của Berkeley Software Distribution, một hệ thống đặc biệt để phân phối các chương trình bằng mã nguồn với giấy phép rất mềm. Giấy phép BSD được tạo ra chỉ để phân phối hệ thống tương thích UNIX mới. Giấy phép này cho phép sử dụng lại mã nguồn được phân phối theo nó, và ngoài ra, không giống như GPL (chưa tồn tại), nó không áp đặt bất kỳ hạn chế nào đối với các chương trình phái sinh. Ngoài ra, nó rất ngắn và không đề cập đến nhiều điều khoản pháp lý tẻ nhạt.

Phiên bản đầu tiên của BSD (1BSD) là một phần bổ sung cho phiên bản UNIX 6 gốc hơn là một hệ thống độc lập. 1BSD đã thêm trình biên dịch Pascal và trình soạn thảo văn bản cũ. Phiên bản thứ hai của BSD, phát hành năm 1979, bao gồm: chương trình nổi tiếng, giống như vi và C Shell.

Sau khi BSD UNIX xuất hiện, số lượng hệ thống tương thích với UNIX bắt đầu tăng lên nhanh chóng. Đã từ BSD UNIX, các nhánh hệ điều hành riêng biệt bắt đầu phân nhánh, các hệ điều hành khác nhau trao đổi mã với nhau, việc đan xen trở nên khá khó hiểu, vì vậy trong tương lai chúng ta sẽ không tập trung vào từng phiên bản của tất cả các hệ thống UNIX mà sẽ xem xét người nổi tiếng nhất trong số họ xuất hiện như thế nào.

Có lẽ hậu duệ trực tiếp nổi tiếng nhất của BSD UNIX là hệ điều hành Hệ thống FreeBSD, OpenBSD và ở mức độ thấp hơn một chút là NetBSD. Tất cả chúng đều có nguồn gốc từ cái gọi là 386BSD, được phát hành vào năm 1992. 386BSD, như tên cho thấy, là một cổng BSD UNIX cho bộ xử lý Intel 80386. Hệ thống này cũng được tạo ra bởi các sinh viên tốt nghiệp Đại học Berkeley. Các tác giả tin rằng mã nguồn UNIX nhận được từ AT&T đã được sửa đổi đủ để làm mất hiệu lực giấy phép của AT&T, tuy nhiên, bản thân AT&T lại không nghĩ như vậy nên đã xảy ra các vụ kiện xung quanh hệ điều hành này. Đánh giá bằng thực tế rằng bản thân 386BSD đã trở thành cha mẹ của nhiều hệ điều hành khác, mọi thứ đều kết thúc tốt đẹp đối với nó.

Dự án FreeBSD (lúc đầu nó không có tên riêng) xuất hiện dưới dạng một tập hợp các bản vá cho 386BSD, tuy nhiên, vì lý do nào đó, các bản vá này không được chấp nhận, và sau đó, khi có thông tin rõ ràng rằng 386BSD sẽ không còn được phát triển nữa, vào năm 1993, dự án đã được triển khai nhằm tạo ra một hệ điều hành chính thức, được gọi là FreeBSD.

Quái vật. Linh vật FreeBSD

Đồng thời, chính các nhà phát triển 386BSD đã tạo ra một dự án mới, NetBSD, từ đó OpenBSD sẽ phân nhánh. Như bạn có thể thấy, nó hóa ra là một cây hệ điều hành khá rộng lớn. Mục tiêu của dự án NetBSD là tạo ra một hệ thống UNIX có thể chạy trên nhiều nền tảng. hơn kiến trúc, nghĩa là đạt được tính di động tối đa. Ngay cả trình điều khiển NetBSD cũng phải đa nền tảng.

Logo NetBSD

Solaris

Tuy nhiên, hệ điều hành đầu tiên tách ra từ BSD là hệ điều hành SunOS, đứa con tinh thần, như bạn hiểu từ tên gọi, của công ty Sun Microsystems, không may hiện đã qua đời. Điều này đã xảy ra vào năm 1983. SunOS là một hệ điều hành đi kèm với các máy tính do chính Sun sản xuất. Nói chung, Sun một năm trước đó, vào năm 1982, đã tung ra hệ điều hành Sun UNIX, dựa trên cơ sở mã Unisoft Unix v7 (Unisoft là một công ty được thành lập vào năm 1981 chuyên chuyển Unix sang nhiều phần cứng khác nhau), nhưng SunOS 1.0 dựa trên mã BSD 4.1. SunOS được cập nhật thường xuyên cho đến năm 1994, khi phiên bản 4.1.4 được phát hành, sau đó được đổi tên thành Solaris 2. Cả hai đến từ đâu? Ở đây có một câu chuyện hơi khó hiểu, vì Solaris ban đầu được gọi là SunOS phiên bản 4.1.1 – 4.1.4, được phát triển từ năm 1990 đến 1994. Hãy coi đây là một kiểu đổi tên thương hiệu chỉ bắt nguồn từ phiên bản Solaris 2. Sau đó, cho đến năm 1997, Solaris 2.1, 2.2, v.v. mới được phát hành. lên 2.6, và thay vì Solaris 2.7 năm 1998, chỉ có Solaris 7 được phát hành, sau đó con số này mới bắt đầu tăng lên. TRÊN khoảnh khắc này Phiên bản mới nhất của Solaris là 11, phát hành vào ngày 9 tháng 11 năm 2011.

Logo OpenSolaris

Lịch sử của Solaris cũng khá phức tạp, cho đến năm 2005 Solaris vẫn là một hệ điều hành thương mại hoàn toàn nhưng đến năm 2005 Sun quyết định mở một phần mã nguồn của Solaris 10 và tạo ra dự án OpenSolaris. Ngoài ra, trước đây, khi Sun còn sống, Solaris 10 có thể được sử dụng miễn phí hoặc bạn có thể mua hỗ trợ kỹ thuật chính thức. Sau đó, vào đầu năm 2010, khi Oracle mua lại Sun, họ đã biến Solaris 10 thành một hệ thống trả phí. May mắn thay, Oracle vẫn chưa thể hủy hoại OpenSolaris.

Linux. Chúng ta sẽ ở đâu nếu không có anh ấy?

Và bây giờ đến lượt nói về triển khai UNIX nổi tiếng nhất – Linux. Lịch sử của Linux rất đáng chú ý vì có ba dự án thú vị cùng nhau xuất hiện trong đó. Nhưng trước khi nói về người tạo ra Linux, Linus Torvalds, chúng ta cần đề cập đến hai lập trình viên nữa, một trong số họ, Andrew Tanenbaum, đã vô tình thúc đẩy Linus tạo ra Linux, và người thứ hai, Richard Stallman, người có công cụ mà Linus sử dụng khi tạo hệ điều hành của mình. hệ thống .

Andrew Tanenbaum là giáo sư tại Vrije Universiteit Amsterdam và chủ yếu tham gia phát triển hệ điều hành. Cùng với Albert Woodhull, ông đã viết một cuốn sách nổi tiếng như “Hệ điều hành: Thiết kế và triển khai”, cuốn sách đã truyền cảm hứng cho Torvalds viết Linux. Cuốn sách này thảo luận về một hệ thống giống UNIX có tên là Minix. Thật không may, Tanenbaum trong một thời gian dài chỉ xem Minix như một dự án dạy các kỹ năng về hệ điều hành chứ không phải là một hệ điều hành hoạt động chính thức. Mã nguồn Minix có giấy phép khá hạn chế, nơi bạn có thể nghiên cứu mã của nó, nhưng bạn không thể phân phối các phiên bản Minix đã sửa đổi của riêng mình và trong một thời gian dài, bản thân tác giả cũng không muốn áp dụng các bản vá được gửi cho mình.

Andrew Tanenbaum

Phiên bản đầu tiên của Minix được phát hành cùng với ấn bản đầu tiên của cuốn sách vào năm 1987, phiên bản thứ hai và thứ ba tiếp theo của Minix được xuất bản cùng với các ấn bản tương ứng của cuốn sách về hệ điều hành. Phiên bản thứ ba của Minix, được phát hành năm 2005, có thể được sử dụng làm hệ điều hành độc lập cho máy tính (có các phiên bản LiveCD của Minix không yêu cầu cài đặt trên ổ cứng) và làm hệ điều hành nhúng cho bộ vi điều khiển . Phiên bản mới nhất của Minix 3.2.0 được phát hành vào tháng 7 năm 2011.

Bây giờ chúng ta hãy nhớ đến Richard Stallman. Gần đây, ông bắt đầu chỉ được coi là người tuyên truyền về phần mềm miễn phí, mặc dù nhờ ông mà nhiều chương trình nổi tiếng hiện nay đã xuất hiện, và đã có lúc dự án của ông giúp cuộc sống của Torvalds dễ dàng hơn nhiều. Điều thú vị nhất là cả Linus và Richard đều tiếp cận việc tạo ra hệ điều hành từ những góc độ khác nhau, và kết quả là các dự án đã hợp nhất vào GNU/Linux. Ở đây chúng ta cần đưa ra một số giải thích về GNU là gì và nó đến từ đâu.

Richard Stallman

Bạn có thể nói về Stallman trong một thời gian khá dài, chẳng hạn như việc ông đã nhận được bằng danh dự về vật lý của Đại học Harvard. Ngoài ra, Stallman còn làm việc tại MIT, nơi ông bắt đầu viết bài biên tập EMACS nổi tiếng của mình vào những năm 1970. Đồng thời, mã nguồn của trình soạn thảo có sẵn cho tất cả mọi người, đây không phải là một tính năng ở MIT, nơi trong một thời gian dài đã tồn tại một kiểu tình trạng hỗn loạn thân thiện, hay như Steven Levy, tác giả của cuốn sách tuyệt vời “ Tin tặc,” đã gọi nó. Những anh hùng của cuộc cách mạng máy tính", "đạo đức hacker". Nhưng một thời gian sau, MIT bắt đầu quan tâm đến vấn đề bảo mật máy tính, người dùng được cấp mật khẩu và những người dùng trái phép không thể truy cập vào máy tính. Stallman cực lực phản đối cách làm này; ông đã tạo ra một chương trình có thể cho phép bất cứ ai tìm ra bất kỳ mật khẩu nào của bất kỳ người dùng nào và ủng hộ việc để trống mật khẩu. Ví dụ: anh ấy đã gửi tin nhắn sau cho người dùng: “Tôi thấy rằng bạn đã chọn mật khẩu [chẳng hạn như vậy]. Tôi đoán bạn có thể chuyển sang mật khẩu "trả xe". Nó dễ gõ hơn nhiều và phù hợp với nguyên tắc không nên có mật khẩu ở đây." Nhưng những nỗ lực của anh ấy chẳng mang lại kết quả gì. Hơn nữa, những người mới đến MIT đã bắt đầu lo lắng về các quyền đối với chương trình của họ, về bản quyền và những điều ghê tởm tương tự khác.

Stallman sau đó đã nói (trích từ cuốn sách tương tự của Levy): “Tôi không thể tin rằng phần mềm lại có chủ sở hữu. Những gì đã xảy ra đã phá hoại toàn thể nhân loại. Nó ngăn cản mọi người tận dụng tối đa các chương trình.” Hoặc đây là một câu nói khác của anh ấy: “Những chiếc xe bắt đầu hỏng hóc và không có ai sửa chữa. Không ai thực hiện những thay đổi cần thiết đối với phần mềm. Những người không phải tin tặc phản ứng với điều này một cách đơn giản - họ bắt đầu sử dụng các hệ thống thương mại đã mua, mang theo chủ nghĩa phát xít và các thỏa thuận cấp phép."

Kết quả là Richard Stallman rời MIT và quyết định tạo ra hệ điều hành tương thích UNIX miễn phí của riêng mình. Vì vậy, vào ngày 27 tháng 9 năm 1983, dự án GNU xuất hiện, tạm dịch là “Gnu không phải là UNIX”. Chương trình GNU đầu tiên là EMACS. Trong khuôn khổ dự án GNU, vào năm 1988, giấy phép GNU GPL của riêng nó đã được phát triển - Giấy phép Công cộng GNU, bắt buộc các tác giả của các chương trình dựa trên mã nguồn được phân phối theo giấy phép này cũng phải mở mã nguồn theo giấy phép GPL.

Cho đến năm 1990, trong khuôn khổ GNU (không chỉ bởi Stallman), nhiều phần mềm khác nhau đã được viết cho hệ điều hành tương lai, nhưng hệ điều hành này không có nhân riêng. Họ chỉ bắt đầu làm việc trên kernel vào năm 1990, đó là một dự án có tên GNU Hurd, nhưng nó đã không thành công; phiên bản cuối cùng của nó được phát hành vào năm 2009. Nhưng Linux đã thành công và cuối cùng chúng ta cũng đã đạt được thành công.

Và tại đây cậu bé Phần Lan Linus Torvalds đã ra tay hành động. Khi học tại Đại học Helsinki, Linus đã tham gia các khóa học về ngôn ngữ C và hệ thống UNIX; để đón đầu chủ đề này, anh đã mua chính cuốn sách mô tả Minix của Tanenbaum. Và nó đúng như mô tả, bản thân Minix phải được mua riêng trên 16 đĩa mềm và nó có giá 169 đô la vào thời điểm đó (ồ, Gorbushka của chúng tôi khi đó không có ở Phần Lan, nhưng bạn có thể làm gì, đồ man rợ). Ngoài ra, Torvalds còn phải mua trả chậm một chiếc máy tính có bộ xử lý 80386 với giá 3.500 USD, vì trước đó anh chỉ có một chiếc máy tính cũ với bộ xử lý 68008 mà Minix không thể chạy được (may mắn thay, khi anh đã tạo ra phiên bản đầu tiên). của Linux, những người dùng biết ơn đã tham gia và trả tiền vay máy tính của anh ấy).

Linus Torvalds

Mặc dù thực tế là Torvalds thường thích Minix, nhưng anh dần dần bắt đầu hiểu những hạn chế và bất lợi của nó. Anh đặc biệt khó chịu với chương trình mô phỏng thiết bị đầu cuối đi kèm với hệ điều hành. Do đó, anh quyết định viết trình mô phỏng thiết bị đầu cuối của riêng mình, đồng thời tìm hiểu hoạt động của bộ xử lý 386. Torvalds đã viết trình giả lập ở mức độ thấp, tức là anh ấy bắt đầu với bộ tải khởi động BIOS, dần dần trình giả lập có được các khả năng mới, sau đó, để tải xuống các tệp, Linus phải viết trình điều khiển cho ổ đĩa và hệ thống tệp, và chúng tôi tắt đi. Đây là cách phòng mổ xuất hiện hệ thống Linux(lúc đó nó chưa có tên).

Khi hệ điều hành bắt đầu hình thành ít nhiều, chương trình đầu tiên Linus chạy trên đó là bash. Sẽ đúng hơn nếu nói rằng anh ấy đã điều chỉnh hệ điều hành của mình để bash cuối cùng có thể hoạt động. Sau đó, anh dần dần bắt đầu khởi chạy các chương trình khác trong hệ điều hành của mình. Và hệ điều hành hoàn toàn không nên được gọi là Linux. Đây là một trích dẫn từ cuốn tự truyện của Torvalds, được xuất bản với tựa đề “Chỉ để giải trí”: “Trong tâm trí tôi, tôi gọi nó là Linux. Thành thật mà nói, tôi chưa bao giờ có ý định phát hành nó dưới cái tên Linux vì đối với tôi nó có vẻ quá khiếm nhã. Tôi đã nghĩ đến cái tên nào cho phiên bản cuối cùng? Freax. (Hiểu chưa? Những kẻ lập dị là những người hâm mộ – và ở cuối chữ x từ Unix).”

Vào ngày 25 tháng 8 năm 1991, thông điệp lịch sử sau đây xuất hiện trong hội nghị comp.os.minix: “Xin chào tất cả người dùng minix! Tôi đang viết một hệ điều hành (miễn phí) (phiên bản nghiệp dư - nó sẽ không lớn và chuyên nghiệp như gnu) cho 386 và 486 AT. Tôi đã làm việc này từ tháng 4 và có vẻ như nó sẽ sớm sẵn sàng. Hãy viết cho tôi những điều bạn thích/không thích về minix, vì hệ điều hành của tôi tương tự như nó (trong số những thứ khác, vì lý do thực tế, nó có cùng bố cục vật lý của hệ thống tệp). Cho đến nay tôi đã chuyển bash (1.08) và gcc (1.40) sang nó và mọi thứ dường như đều hoạt động. Điều này có nghĩa là trong những tháng tới tôi sẽ có thứ gì đó hoạt động và tôi muốn biết hầu hết mọi người cần những tính năng nào. Tất cả các ứng dụng đều được chấp nhận, nhưng việc thực hiện không được đảm bảo"

Xin lưu ý rằng GNU và chương trình gcc đã được đề cập ở đây (vào thời điểm đó chữ viết tắt này là viết tắt của GNU C Compiler). Và hãy nhớ đến Stallman và GNU của anh ấy, những người đã bắt đầu phát triển hệ điều hành từ đầu bên kia. Cuối cùng, việc sáp nhập đã diễn ra. Vì vậy, Stallman cảm thấy khó chịu khi hệ điều hành được gọi đơn giản là Linux chứ không phải GNU/Linux; suy cho cùng, Linux là hạt nhân và nhiều tính năng được lấy từ dự án GNU.

Vào ngày 17 tháng 9 năm 1991, Linus Torvalds lần đầu tiên đăng hệ điều hành của mình, lúc đó là phiên bản 0,01, trên một máy chủ FTP công cộng. Kể từ đó, toàn thể nhân loại tiến bộ đã kỷ niệm ngày này là ngày sinh nhật của Linux. Những người đặc biệt thiếu kiên nhẫn bắt đầu ăn mừng nó vào ngày 25 tháng 8, khi Linus thừa nhận tại hội nghị rằng anh ấy đang viết một hệ điều hành. Từ đó nó đi Phát triển Linux, và bản thân cái tên Linux đã được củng cố, bởi vì địa chỉ nơi hệ điều hành được đăng trông giống như ftp.funet.fi/pub/OS/Linux. Thực tế là Ari Lemke, giáo viên đã phân bổ không gian trên máy chủ cho Linus, nghĩ rằng Freax trông không đẹp đẽ cho lắm và ông đã đặt tên cho thư mục là “Linux” - là sự kết hợp giữa tên tác giả và chữ “x” ở phía sau. kết thúc từ UNIX.

Tux. Biểu tượng Linux

Ngoài ra còn có một điểm là mặc dù Torvalds viết Linux dưới ảnh hưởng của Minix, nhưng có sự khác biệt cơ bản giữa Linux và Minix từ quan điểm lập trình. Thực tế là Tanenbaum là người hỗ trợ các hệ điều hành vi nhân, nghĩa là khi hệ điều hành có một nhân nhỏ với một số chức năng nhỏ và tất cả các trình điều khiển và dịch vụ của hệ điều hành hoạt động như các mô-đun độc lập riêng biệt, trong khi Linux có một hạt nhân nguyên khối, có nhiều tính năng của hệ điều hành được bao gồm, vì vậy trong Linux, nếu bạn cần một số tính năng đặc biệt, bạn có thể cần phải biên dịch lại hạt nhân, thực hiện một số thay đổi ở đó. Một mặt, kiến ​​trúc vi nhân có ưu điểm là độ tin cậy và đơn giản, đồng thời, với thiết kế vi nhân bất cẩn, hạt nhân nguyên khối sẽ hoạt động nhanh hơn vì không cần trao đổi lượng lớn dữ liệu với các mô-đun của bên thứ ba. Sau sự ra đời của Linux vào năm 1992, một cuộc tranh luận ảo đã nổ ra giữa Torvalds và Tanenbaum, cũng như những người ủng hộ họ, tại hội nghị comp.os.minix về kiến ​​trúc nào tốt hơn - vi nhân hay nguyên khối. Tanenbaum lập luận rằng kiến ​​trúc vi nhân là tương lai và Linux đã lỗi thời trước khi nó được phát hành. Đã gần 20 năm trôi qua kể từ ngày đó... Nhân tiện, GNU Hurd, được cho là trở thành hạt nhân của hệ điều hành GNU, cũng được phát triển dưới dạng hạt nhân vi mô.

Linux di động

Vì vậy, kể từ năm 1991, Linux đã dần dần phát triển và mặc dù thị phần của Linux trên máy tính của người dùng thông thường vẫn chưa lớn nhưng nó đã phổ biến từ lâu trên các máy chủ và siêu máy tính, và Windows đang cố gắng giành lấy thị phần của mình trong lĩnh vực này. Ngoài ra, Linux hiện đã chiếm được vị trí tốt trên điện thoại và máy tính bảng, bởi Android cũng là Linux.

Logo Android

Lịch sử của Android bắt đầu với công ty Android Inc, xuất hiện vào năm 2003 và dường như đang phát triển các ứng dụng di động (những phát triển cụ thể của công ty này trong những năm đầu tồn tại vẫn chưa được quảng cáo cụ thể). Nhưng chưa đầy hai năm sau Công ty Android Inc mua lại Google. Không thể tìm thấy bất kỳ thông tin chi tiết chính thức nào về chính xác những gì các nhà phát triển Android Inc đang làm trước khi tiếp quản, mặc dù vào năm 2005, sau khi Google mua lại, có tin đồn rằng họ đã phát triển một hệ điều hành mới cho điện thoại. Tuy nhiên, lần phát hành đầu tiên của Android diễn ra vào ngày 22 tháng 10 năm 2008, sau đó các phiên bản mới bắt đầu được phát hành thường xuyên. Một trong những đặc điểm của sự phát triển Android có thể là việc các cuộc tấn công vào hệ thống này bắt đầu liên quan đến các bằng sáng chế bị cáo buộc vi phạm và tình hình triển khai Java không rõ ràng từ quan điểm pháp lý, nhưng chúng ta đừng đi sâu vào những cuộc tranh cãi phi kỹ thuật này. .

Nhưng Android không phải là đại diện di động duy nhất của Linux, bên cạnh đó còn có hệ điều hành MeeGo. Nếu Android được hỗ trợ bởi một tập đoàn hùng mạnh như Google thì MeeGo không có một người được ủy thác mạnh mẽ; nó được phát triển bởi một cộng đồng dưới sự bảo trợ của The Linux Foundation, được hỗ trợ bởi các công ty như Intel, Nokia, AMD, Novell, ASUS, Acer, MSI và những hãng khác. Hiện tại, sự trợ giúp chính đến từ Intel, điều này không có gì đáng ngạc nhiên vì bản thân dự án MeeGo đã phát triển từ dự án Moblin do Intel khởi xướng. Moblin là như vậy Phân phối Linux, được cho là có tác dụng với thiết bị cầm tay, được điều khiển bởi bộ xử lý nguyên tử Intel. Hãy đề cập đến một Linux di động khác – Openmoko. Linux đang cố gắng khá nhanh chóng để có được chỗ đứng trên điện thoại và máy tính bảng, Google và Android đã xem xét vấn đề này một cách nghiêm túc, nhưng triển vọng của phần còn lại phiên bản di động Linux vẫn còn mơ hồ.

Như bạn có thể thấy, Linux hiện có thể chạy trên nhiều hệ thống chạy các bộ xử lý khác nhau, tuy nhiên, vào đầu những năm 1990, Torvalds không tin rằng Linux có thể được chuyển sang bất kỳ nơi nào khác ngoài bộ xử lý 386.

Mac OS X

Bây giờ chúng ta hãy chuyển sang một hệ điều hành khác cũng tương thích với UNIX - Mac OS X. Các phiên bản đầu tiên của Mac OS, cho đến phiên bản thứ 9, không dựa trên UNIX, vì vậy chúng tôi sẽ không tập trung vào chúng. Điều thú vị nhất đối với chúng tôi bắt đầu sau khi Steve Jobs bị trục xuất khỏi Apple vào năm 1985, sau đó ông thành lập công ty NeXT, chuyên phát triển máy tính và phần mềm cho họ. NeXT đã thuê lập trình viên Avetis Tevanyan, người trước đây đã phát triển vi nhân Mach cho hệ điều hành tương thích với UNIX đang được phát triển tại Đại học Carnegie Mellon. Hạt nhân Mach được thiết kế để thay thế hạt nhân BSD UNIX.

Logo công ty NeXT

Avetis Tevanyan là trưởng nhóm phát triển hệ điều hành tương thích UNIX mới, được gọi là NeXTSTEP. Để tránh phải phát minh lại bánh xe, NeXTSTEP được dựa trên cùng lõi Mach. Từ quan điểm lập trình, NeXTSTEP, không giống như nhiều hệ điều hành khác, là hướng đối tượng và vai trò to lớn trong đó là ngôn ngữ lập trình Objective-C, hiện được sử dụng rộng rãi trong Mac OS X. Phiên bản đầu tiên của NeXTSTEP được phát hành vào năm 1989. Mặc dù NeXTSTEP ban đầu được thiết kế cho bộ xử lý Motorola 68000 nhưng vào đầu những năm 1990, hệ điều hành này đã được chuyển sang bộ xử lý 80386 và 80486. Mọi chuyện không suôn sẻ với NeXT Cách tốt nhất có thể, và vào năm 1996 công ty táođề nghị Jobs mua NeXT để sử dụng NeXTSTEP thay vì Mac OS. Ở đây chúng ta cũng có thể nói về sự cạnh tranh giữa hệ điều hành NeXTSTEP và BeOS, kết thúc với chiến thắng thuộc về NeXTSTEP, nhưng chúng ta sẽ không kéo dài câu chuyện vốn đã dài dòng, bên cạnh đó, BeOS không hề liên quan đến UNIX, vì vậy hiện tại nó chúng tôi không quan tâm, mặc dù bản thân nó, hệ điều hành này rất thú vị và thật đáng tiếc khi quá trình phát triển của nó bị gián đoạn.

Một năm sau, khi Jobs trở lại Apple, chính sách điều chỉnh NeXTSTEP cho máy tính Apple vẫn tiếp tục, và vài năm sau hệ điều hành này được chuyển sang bộ vi xử lý PowerPC và Intel. Do đó, phiên bản máy chủ của Mac OS X (Mac OS X Server 1.0) đã được phát hành vào năm 1999 và vào năm 2001, hệ điều hành dành cho người dùng cuối, Mac OS X (10.0), đã được phát hành.

Sau này, dựa trên Mac OS X, một hệ điều hành dành cho điện thoại iPhone đã được phát triển, được gọi là Apple iOS. Đầu tiên Phiên bản iOS ra mắt vào năm 2007 IPad cũng chạy trên cùng một hệ điều hành.

Phần kết luận

Sau tất cả những điều trên, có thể bạn đang thắc mắc loại hệ điều hành nào có thể được coi là UNIX? Không có câu trả lời rõ ràng cho điều này. Từ quan điểm hình thức, có Đặc tả UNIX thống nhất - một tiêu chuẩn mà một hệ điều hành phải đáp ứng để được gọi là UNIX. Đừng nhầm lẫn nó với tiêu chuẩn POSIX, tiêu chuẩn này có thể được tuân theo bởi một hệ điều hành không giống UNIX. Nhân tiện, cái tên POSIX cũng được đề xuất bởi Richard Stallman và tiêu chuẩn POSIX chính thức có số ISO/IEC 9945. Việc có được một thông số kỹ thuật duy nhất rất tốn kém và mất thời gian, vì vậy không có nhiều hệ điều hành được liên kết với điều này. Các hệ điều hành đã nhận được chứng chỉ như vậy bao gồm Mac OS X, Solaris, SCO và một số hệ điều hành ít được biết đến khác. Điều này không bao gồm Linux hoặc *BSD, nhưng không ai nghi ngờ về “Tính Unix” của chúng. Vì vậy, chẳng hạn, lập trình viên và nhà văn Eric Raymond đã đề xuất thêm hai dấu hiệu nữa để xác định xem một hệ điều hành cụ thể có giống UNIX hay không. Dấu hiệu đầu tiên trong số này là sự “không kế thừa” của mã nguồn từ UNIX gốc, được phát triển tại AT&T và Bell Labs. Điều này bao gồm các hệ thống BSD. Dấu hiệu thứ hai là “UNIX có chức năng”. Điều này bao gồm các hệ điều hành hoạt động gần giống như được mô tả trong đặc tả UNIX, nhưng chưa nhận được chứng chỉ chính thức và hơn nữa, không liên quan gì đến mã nguồn của UNIX gốc. Điều này bao gồm Linux, Minix, QNX.

Có lẽ chúng ta sẽ dừng ở đây, nếu không thì đã có quá nhiều thư rồi. Đánh giá này chủ yếu bao gồm lịch sử xuất hiện của các hệ điều hành nổi tiếng nhất - các biến thể của BSD, Linux, Mac OS X, Solaris, một số UNIX đã bị loại bỏ, chẳng hạn như QNX, Plan 9, Plan B và một số khác. Ai biết được, có thể trong tương lai chúng ta sẽ nhớ về họ.

Liên kết

  • Hacker, anh hùng của cuộc cách mạng máy tính
  • Hướng dẫn sử dụng FreeBSD

Tất cả các hình ảnh được lấy từ Wikipedia

Unix là gì (dành cho người mới bắt đầu)


Dmitry Y. Karpov


Tôi đang nói về cái gì vậy?


Tác phẩm này không giả vờ là một mô tả đầy đủ. Hơn nữa, để đơn giản, một số chi tiết đã được cố tình lược bỏ. Lúc đầu, chu trình này được dự định là một Câu hỏi thường gặp (FAQ - những câu hỏi thường gặp), nhưng dường như nó sẽ trở thành “Khóa học dành cho người lính trẻ” hoặc “Trường trung sĩ”.

Tôi đã cố gắng đưa ra một mô tả so sánh về các hệ điều hành khác nhau - theo tôi, đây là điều mà hầu hết các sách giáo khoa và sách hướng dẫn kỹ thuật đều thiếu.

Không cần đợi sự tiếp xúc từ các "oid" Unix có kinh nghiệm, tôi tự nguyện thú nhận - tôi không thể tự nhận mình là một chuyên gia Unix giỏi và kiến ​​​​thức của tôi chủ yếu xoay quanh FreeBSD. Tôi hy vọng điều này không gây trở ngại.

Tệp này sẽ ở trạng thái "đang xây dựng" trong một thời gian dài. :-)

Unix là gì?


Unix là một hệ điều hành hoàn chỉnh, đa người dùng, đa tác vụ và đa thiết bị đầu cuối. Chính xác hơn, đây là cả một nhóm hệ thống gần như hoàn toàn tương thích với nhau ở cấp độ mã nguồn.

Có những loại Unix nào và chúng chạy trên những máy nào?


Danh sách này không giả vờ đầy đủ, vì ngoài những danh sách được liệt kê, còn có nhiều Unix và hệ thống tương tự Unix ít phổ biến hơn, chưa kể các Unix cổ dành cho các máy lỗi thời.

Thông thường, chúng ta có thể phân biệt họ Hệ thống V và họ Berkeley. System V (đọc là "System Five") có một số biến thể, phiên bản mới nhất, theo như tôi biết, là System V Release 4. Đại học Berkeley nổi tiếng không chỉ vì sự phát triển của BSD mà còn về hầu hết các giao thức Internet. Tuy nhiên, nhiều Unix kết hợp các thuộc tính của cả hai hệ thống.

Tôi có thể nhận Unix miễn phí ở đâu?


  • Họ BSD: FreeBSD, NetBSD, OpenBSD.
  • Họ Linux: RedHat, SlackWare, Debian, Caldera,
  • SCO và Solaris được cung cấp miễn phí cho mục đích sử dụng phi thương mại (chủ yếu dành cho các tổ chức giáo dục).

    Sự khác biệt chính giữa Unix và các hệ điều hành khác là gì?


    Unix bao gồm một hạt nhân với các trình điều khiển và tiện ích đi kèm (các chương trình bên ngoài hạt nhân). Nếu bạn cần thay đổi cấu hình (thêm thiết bị, thay đổi cổng hoặc ngắt), thì hạt nhân sẽ được xây dựng lại (được liên kết) từ các mô-đun đối tượng hoặc (ví dụ: trong FreeBSD) từ các nguồn. /* Điều này không hoàn toàn đúng. Một số thông số có thể được sửa mà không cần xây dựng lại. Ngoài ra còn có các mô-đun hạt nhân có thể tải được. */

    Ngược lại với Unix, Windows (nếu không chỉ định cái nào thì chúng tôi muốn nói là 3.11, 95 và NT) và OS/2 thực sự liên kết các trình điều khiển một cách nhanh chóng khi tải. việc sử dụng lại mã thông thường thấp hơn nhiều so với Unix. Ngoài ra, với cấu hình hệ thống không thay đổi, nhân Unix không cần sửa đổi (bạn chỉ cần thay đổi phần khởi động của BIOS) có thể được ghi vào ROM và thực thi _không_ tải_ vào RAM. Tính nhỏ gọn của mã đặc biệt quan trọng, vì kernel và trình điều khiển không bao giờ rời khỏi bộ nhớ RAM vật lý sẽ không được chuyển sang đĩa.

    Unix là hệ điều hành đa nền tảng nhất. WindowsNT đang cố gắng bắt chước nó, nhưng cho đến nay vẫn chưa thành công - sau khi MIPS và POWER-PC bị loại bỏ, W"NT chỉ còn trên hai nền tảng - i*86 truyền thống và DEC Alpha. Tất nhiên, tính di động của các chương trình từ phiên bản Unix này sang phiên bản khác bị hạn chế. Một chương trình được viết không chính xác mà không tính đến sự khác biệt trong việc triển khai Unix và đưa ra các giả định vô lý như "một biến số nguyên phải chiếm bốn byte" có thể cần phải làm lại nghiêm túc, nhưng vẫn còn nhiều các đơn đặt hàng có cường độ lớn dễ dàng hơn, chẳng hạn như chuyển từ OS/2 sang NT.

    Tại sao lại là Unix?


    Unix được sử dụng vừa làm máy chủ vừa làm trạm làm việc. Trong hạng mục máy chủ, nó cạnh tranh với MS WindowsNT, Novell Netware, IBM OS/2 Warp Connect, DEC VMS và các hệ điều hành máy tính lớn. Mỗi hệ thống có lĩnh vực ứng dụng riêng, trong đó nó tốt hơn các hệ thống khác.

  • WindowsNT dành cho những quản trị viên thích giao diện quen thuộc để sử dụng tiết kiệm tài nguyên và hiệu suất cao.
  • Netware - dành cho các mạng cần có dịch vụ máy in và tệp hiệu suất cao và các dịch vụ khác không quá quan trọng. Nhược điểm chính là khó chạy các ứng dụng trên máy chủ Netware.
  • OS/2 phù hợp khi bạn cần một máy chủ ứng dụng "nhẹ". Nó yêu cầu ít tài nguyên hơn NT, linh hoạt hơn trong quản lý (mặc dù có thể khó cấu hình hơn) và đa nhiệm rất tốt. Việc ủy ​​quyền và phân biệt quyền truy cập không được triển khai ở cấp hệ điều hành, điều này được bù đắp nhiều hơn bằng cách triển khai ở cấp ứng dụng máy chủ. (Tuy nhiên các OS khác cũng thường làm tương tự). Nhiều đài FIDOnet và BBS dựa trên OS/2.
  • VMS là một máy chủ ứng dụng mạnh mẽ, không hề thua kém Unix (và vượt trội hơn nó về nhiều mặt), nhưng chỉ dành cho nền tảng VAX và Alpha của DEC.
  • Máy tính lớn - để phục vụ số lượng người dùng rất lớn (vào khoảng vài nghìn). Nhưng công việc của những người dùng này thường không được tổ chức theo hình thức tương tác giữa máy khách và máy chủ mà dưới dạng tương tác máy chủ-thiết bị đầu cuối. Thiết bị đầu cuối trong cặp này nhiều khả năng không phải là máy khách mà là máy chủ (Internet World, N3, 1996). Ưu điểm của máy tính lớn bao gồm tính bảo mật cao hơn và khả năng chống hỏng hóc, còn nhược điểm là giá tương ứng với những phẩm chất này.

    Unix phù hợp với một quản trị viên có trình độ (hoặc sẵn sàng trở thành một quản trị viên) vì... đòi hỏi kiến ​​thức về nguyên tắc hoạt động của các quá trình xảy ra trong đó. Đa nhiệm thực sự và chia sẻ bộ nhớ nghiêm ngặt đảm bảo độ tin cậy cao của hệ thống, mặc dù các dịch vụ in và tệp của Unix kém hơn Netware về hiệu suất của các dịch vụ tệp và in.

    Việc thiếu tính linh hoạt trong việc cấp quyền truy cập tệp cho người dùng so với WindowsNT gây khó khăn cho việc tổ chức quyền truy cập dữ liệu của nhóm _at_the_file_system_ (chính xác hơn là vào tệp), theo tôi, điều này được bù đắp bằng tính dễ thực hiện, nghĩa là phần cứng thấp hơn yêu cầu. Tuy nhiên, các ứng dụng như máy chủ SQL tự giải quyết vấn đề truy cập dữ liệu nhóm, do đó, khả năng bị thiếu trong Unix là từ chối quyền truy cập vào _file_ đối với một người dùng cụ thể, theo ý kiến ​​​​của tôi, rõ ràng là dư thừa.

    Hầu như tất cả các giao thức mà Internet dựa trên đều được phát triển dưới Unix, đặc biệt là ngăn xếp giao thức TCP/IP được phát minh tại Đại học Berkeley.

    Bảo mật của Unix khi được quản lý đúng cách (và khi nào thì không?) không thua kém gì Novell hoặc WindowsNT.

    Một đặc tính quan trọng của Unix, đưa nó đến gần hơn với các máy tính lớn, là tính chất đa thiết bị đầu cuối của nó; nhiều người dùng có thể chạy đồng thời các chương trình trên một máy Unix. Nếu không cần sử dụng đồ họa, bạn có thể sử dụng các thiết bị đầu cuối văn bản giá rẻ (chuyên dụng hoặc dựa trên PC giá rẻ) được kết nối qua đường truyền chậm. Trong đó, chỉ có VMS cạnh tranh với nó. Bạn cũng có thể sử dụng thiết bị đầu cuối đồ họa X khi cùng một màn hình chứa các cửa sổ của các tiến trình đang chạy trên các máy khác nhau.

    Trong hạng mục máy trạm, MS Windows*, IBM OS/2, Macintosh và Acorn RISC-OS cạnh tranh với Unix.

  • Windows - dành cho những người coi trọng khả năng tương thích hơn hiệu quả; dành cho những người sẵn sàng mua một số lượng lớn ký ức, không gian đĩa và megahertz; dành cho những ai thích bấm vào các nút trong cửa sổ mà không đi sâu vào bản chất. Đúng vậy, sớm hay muộn bạn vẫn sẽ phải nghiên cứu các nguyên tắc hoạt động của hệ thống và các giao thức, nhưng rồi sẽ quá muộn - sự lựa chọn đã được đưa ra. Quan trọng như nhau ưu điểm của Windows Chúng ta cũng phải thừa nhận khả năng bị đánh cắp hàng loạt phần mềm.
  • OS/2 - dành cho những người yêu thích OS/2. :-) Mặc dù, theo một số thông tin, OS/2 tương tác tốt hơn với các máy tính và mạng lớn của IBM so với các mạng khác.
  • Macintosh - dành cho công việc đồ họa, xuất bản và âm nhạc, cũng như dành cho những người yêu thích giao diện đẹp, rõ ràng và không muốn (không thể) hiểu chi tiết về hoạt động của hệ thống.
  • RISC-OS, được flash vào ROM, cho phép bạn tránh lãng phí thời gian cài đặt hệ điều hành và khôi phục nó sau khi bị lỗi. Ngoài ra, hầu hết tất cả các chương trình trong đó đều sử dụng tài nguyên rất tiết kiệm, do đó chúng không yêu cầu chuyển đổi và hoạt động rất nhanh.

    Unix hoạt động cả trên PC và các máy trạm mạnh mẽ với bộ xử lý RISC; CAD và Hệ thống thông tin địa lý. Khả năng mở rộng của Unix, do tính chất đa nền tảng của nó, lớn hơn bất kỳ hệ điều hành nào khác mà tôi biết.

    Khái niệm Unix


    Unix dựa trên hai khái niệm cơ bản: "process" và "file". Các quy trình đại diện cho mặt năng động của hệ thống, chúng là chủ thể; và các tập tin là tĩnh, chúng là đối tượng hoạt động của các tiến trình. Hầu như toàn bộ giao diện của các tiến trình tương tác với kernel và với nhau trông giống như việc ghi/đọc tệp. /* Mặc dù chúng ta cần thêm những thứ như tín hiệu, bộ nhớ dùng chung và ngữ nghĩa. */

    Không nên nhầm lẫn các quy trình với các chương trình - một chương trình (thường có dữ liệu khác nhau) có thể được thực thi trong các quy trình khác nhau. Các quy trình có thể được chia thành hai loại - nhiệm vụ và daemon. Nhiệm vụ là một quá trình thực hiện công việc của nó, cố gắng hoàn thành nó một cách nhanh chóng và được hoàn thành. Daemon chờ các sự kiện được xử lý, xử lý các sự kiện đã xảy ra và chờ lại; nó thường kết thúc theo lệnh của một tiến trình khác; thông thường nó bị người dùng giết bằng cách đưa ra lệnh “kill process_number”. /* Theo nghĩa này, hóa ra một tác vụ tương tác xử lý thông tin đầu vào của người dùng giống một daemon hơn là một tác vụ. :-) */

    Hệ thống tập tin


    Trong các Unix cũ, 14 chữ cái được phân bổ cho mỗi tên, trong các tên mới, hạn chế này đã bị loại bỏ. Ngoài tên tệp, thư mục còn chứa mã định danh inode của nó - một số nguyên xác định số khối chứa các thuộc tính của tệp Trong số đó: số người dùng - chủ sở hữu của tệp, nhóm số, số lượng liên kết đến tệp (xem bên dưới), ngày và giờ tạo, sửa đổi lần cuối và lần truy cập cuối cùng vào tệp, thuộc tính truy cập. chứa loại tệp (xem bên dưới), các thuộc tính để thay đổi quyền khi khởi động (xem bên dưới) và quyền truy cập vào tệp đó để chủ sở hữu, bạn cùng lớp và những người khác đọc, ghi và thực thi. Quyền xóa một tệp được xác định bởi quyền ghi vào thư mục phía trên.

    Mỗi tệp (không phải thư mục) có thể được đặt dưới nhiều tên, nhưng chúng phải nằm trên cùng một phân vùng. Tất cả các liên kết đến tập tin đều như nhau; tập tin sẽ bị xóa khi liên kết cuối cùng tới tập tin bị xóa. Nếu tệp được mở (để đọc và/hoặc ghi), thì số lượng liên kết đến nó sẽ tăng thêm một; rất nhiều chương trình mở tập tin tạm thời, hãy loại bỏ nó ngay lập tức để khi tai nạn Khi hệ điều hành đóng các tệp được mở bởi một tiến trình, tệp tạm thời này đã bị hệ điều hành xóa.

    Có một cái khác tính năng thú vị hệ thống tệp: nếu sau khi tạo tệp, việc ghi vào tệp đó không được thực hiện liên tiếp mà theo các khoảng thời gian lớn, thì dung lượng ổ đĩa không được phân bổ cho các khoảng thời gian này. Do đó, tổng dung lượng tệp trong một phân vùng có thể lớn hơn dung lượng của phân vùng đó và khi tệp đó bị xóa, dung lượng trống sẽ được giải phóng ít hơn kích thước của nó.

    Các tập tin có các loại sau:

    • tập tin truy cập trực tiếp thường xuyên;
    • thư mục (một tệp chứa tên và mã định danh của các tệp khác);
    • liên kết tượng trưng (một chuỗi có tên của tệp khác);
    • thiết bị chặn (đĩa hoặc băng từ);
    • thiết bị nối tiếp (thiết bị đầu cuối, cổng nối tiếp và song song; đĩa và băng từ cũng có giao diện thiết bị nối tiếp)
    • kênh có tên.

    Các tệp đặc biệt được thiết kế để hoạt động với các thiết bị thường nằm trong thư mục “/dev”. Dưới đây là một số trong số đó (trong đề cử FreeBSD):

    • tty* - thiết bị đầu cuối, bao gồm:
      • ttyv - bảng điều khiển ảo;
      • ttyd - DialIn terminal (thường là cổng nối tiếp);
      • cuaa - Dòng DialOut
      • ttyp - thiết bị đầu cuối giả mạng;
      • tty - thiết bị đầu cuối mà tác vụ được liên kết;
    • wd* - ổ đĩa cứng và các phân vùng phụ của chúng, bao gồm:
      • wd - ổ cứng;
      • wds - phân vùng của đĩa này (ở đây gọi là "lát");
      • wds - phần phân vùng;
    • fd - đĩa mềm;
    • rwd*, rfd* - giống như wd* và fd*, nhưng có quyền truy cập tuần tự;

    Đôi khi, yêu cầu một chương trình do người dùng khởi chạy không có các quyền của người dùng đã khởi chạy chương trình đó mà là một số quyền khác. Trong trường hợp này, thuộc tính thay đổi quyền được đặt thành quyền của người dùng - chủ sở hữu chương trình. (Ví dụ: tôi sẽ đưa ra một chương trình đọc một tệp có câu hỏi và câu trả lời, dựa trên những gì nó đọc được sẽ kiểm tra học sinh đã khởi chạy chương trình này. Chương trình phải có quyền đọc tệp có câu trả lời, nhưng học sinh Ai đã khởi chạy nó thì không.) Ví dụ: đây là cách chương trình passwd hoạt động, nhờ đó người dùng có thể thay đổi mật khẩu của mình. Người dùng có thể chạy chương trình passwd, nó có thể thực hiện các thay đổi đối với cơ sở dữ liệu hệ thống - nhưng người dùng không thể.

    Không giống như DOS, cái mà Họ và tên tệp trông giống như "drive:\path\name" và RISC-OS, trong đó nó trông giống như "-filesystem-drive:$.path.name" (nói chung là có những ưu điểm của nó), Unix sử dụng ký hiệu minh bạch như " / đường dẫn/tên". Root được đo từ phân vùng mà nhân Unix được tải. Nếu chúng ta định sử dụng một phân vùng khác (và phân vùng khởi động thường chỉ chứa những thứ cần thiết để khởi động), lệnh `mount /dev/partition_file folder` sẽ được sử dụng. Trong trường hợp này, các tệp và thư mục con trước đây nằm trong thư mục này sẽ không thể truy cập được cho đến khi phân vùng được ngắt kết nối (đương nhiên, tất cả người bình thường đều sử dụng các thư mục trống để gắn kết các phân vùng). Chỉ người giám sát mới có quyền gắn và tháo.

    Khi bắt đầu, mỗi quy trình có thể mong đợi có ba tệp đã được mở cho nó, tệp này được gọi là stdin đầu vào tiêu chuẩn ở bộ mô tả 0; đầu ra tiêu chuẩn thiết bị xuất chuẩn trên bộ mô tả 1; và stderr đầu ra tiêu chuẩn trên bộ mô tả 2. Khi đăng nhập vào hệ thống, khi người dùng nhập tên và mật khẩu, shell được khởi chạy cho anh ta, cả ba đều được chuyển hướng đến /dev/tty; sau này bất kỳ trong số chúng có thể được chuyển hướng đến bất kỳ tập tin nào.

    Thông dịch lệnh


    Unix hầu như luôn bao gồm hai trình thông dịch lệnh - sh (shell) và csh (shell giống C). Ngoài họ, còn có bash (Bourne), ksh (Korn) và những người khác. Không đi sâu vào chi tiết, tôi sẽ đưa ra những nguyên tắc chung:

    Tất cả các lệnh ngoại trừ thay đổi thư mục hiện tại, thiết lập các biến môi trường và toán tử lập trình có cấu trúc - chương trình bên ngoài. Các chương trình này thường nằm trong thư mục /bin và /usr/bin. Các chương trình quản trị hệ thống nằm trong thư mục /sbin và /usr/sbin.

    Lệnh bao gồm tên của chương trình sẽ được khởi chạy và các đối số. Các đối số được phân tách khỏi tên lệnh và với nhau bằng dấu cách và tab. Một số ký tự đặc biệt được chính Shell giải thích. Các ký tự đặc biệt là " " ` \ ! $ ^ * ? | & ; (còn gì nữa không?).

    Bạn có thể đưa ra nhiều lệnh trên một dòng lệnh. Các đội có thể được chia ra; (thực thi lệnh tuần tự), & (thực thi lệnh đồng thời không đồng bộ), | (thực thi đồng bộ, thiết bị xuất chuẩn của lệnh đầu tiên sẽ được đưa vào thiết bị xuất chuẩn của lệnh thứ hai).

    Bạn cũng có thể lấy đầu vào tiêu chuẩn từ một tệp bằng cách thêm "<файл" (без кавычек); можно направить стандартный вывод в файл, используя ">file" (tệp sẽ có giá trị 0) hoặc ">>file" (việc ghi sẽ được thực hiện ở cuối tệp). Bản thân chương trình sẽ không nhận đối số này; để biết rằng đầu vào hoặc đầu ra đã được gán lại, bản thân chương trình phải thực hiện một số cử chỉ rất không tầm thường.

    Hướng dẫn sử dụng - người đàn ông


    Nếu bạn cần lấy thông tin về bất kỳ lệnh nào, hãy đưa ra lệnh "man command_name". Điều này sẽ được hiển thị trên màn hình thông qua chương trình “thêm” - xem cách quản lý nó trên Unix của bạn bằng lệnh `man more`.

    Tài liệu bổ sung

  • UNIX có nguồn gốc từ Bell Labs của AT&T hơn 20 năm trước.

    UNIX là một hệ điều hành đa người dùng, đa tác vụ bao gồm các phương tiện khá mạnh mẽ để bảo vệ các chương trình và tệp của nhiều người dùng khác nhau. Được viết bằng ngôn ngữ C và độc lập với máy, đảm bảo tính di động cao và tính di động dễ dàng chương trình ứng dụng trên các PC có kiến ​​trúc khác nhau. Một tính năng quan trọng của dòng hệ điều hành UNIX là tính mô-đun và một bộ chương trình tiện ích phong phú giúp tạo ra môi trường vận hành thuận lợi cho người dùng lập trình viên.

    Hỗ trợ cấu trúc file phân cấp, bộ nhớ ảo, giao diện đa cửa sổ, hệ thống đa bộ xử lý, hệ thống quản lý cơ sở dữ liệu nhiều người dùng, mạng máy tính không đồng nhất.

    Hệ điều hành UNIX có các đặc điểm chính sau:

    Tính di động;

    - đa nhiệm ưu tiên dựa trên các tiến trình đang chạy trong không gian địa chỉ biệt lập trong bộ nhớ ảo;

    Hỗ trợ công việc đồng thời của nhiều người dùng;

    Hỗ trợ các quy trình không đồng bộ;

    Hệ thống tập tin phân cấp;

    Hỗ trợ các hoạt động I/O độc lập với thiết bị (thông qua các tệp thiết bị đặc biệt);

    Giao diện chuẩn cho các chương trình (kênh chương trình, IPC) và người dùng (trình thông dịch lệnh, không có trong nhân hệ điều hành);

    Tích hợp sẵn các công cụ kế toán sử dụng hệ thống.

    Kiến trúc hệ điều hành UNIX- đa cấp. TRÊN mức độ thấp hơn làm cốt lõi hệ điều hành. Các chức năng hạt nhân (quản lý quy trình, quản lý bộ nhớ, xử lý ngắt, v.v.) có thể truy cập được thông qua giao diện cuộc gọi hệ thống, hình thành cấp độ thứ hai. Cuộc gọi hệ thống cung cấp một giao diện phần mềm để truy cập các thủ tục kernel. TRÊN cấp độ tiếp theo công việc thông dịch lệnh , các lệnh và tiện ích quản trị hệ thống, liên lạc trình điều khiểngiao thức , - mọi thứ thường được quy cho phần mềm hệ thống . Cấp độ bên ngoài được hình thành chương trình ứng dụng người dùng, mạng và các dịch vụ truyền thông khác, DBMS và các tiện ích.

    Hệ điều hành thực hiện hai nhiệm vụ chính: thao tác và lưu trữ dữ liệu. Hầu hết các chương trình chủ yếu thao tác dữ liệu nhưng cuối cùng nó được lưu trữ ở đâu đó. Trên hệ thống UNIX, vị trí lưu trữ này là hệ thống tập tin. Hơn nữa, trong UNIX tất cả các thiết bị, mà hệ điều hành hoạt động, cũng được trình bày dưới dạng các tệp đặc biệt trong hệ thống tệp.

    Hệ thống tập tin logic trong hệ điều hành UNIX (hoặc đơn giản là hệ thống tập tin ) là cấu trúc được tổ chức theo thứ bậc của tất cả các thư mục và tệp trong hệ thống, bắt đầu bằng nguồn gốc mục lục. Hệ thống tập tin UNIX cung cấp giao diện thống nhất truy cập vào dữ liệu nằm trên các phương tiện khác nhau và để thiết bị ngoại vi. Một hệ thống tập tin logic có thể bao gồm một hoặc nhiều hệ thống tập tin vật lý (phụ), là các phần của phương tiện vật lý (đĩa, CD-ROM hoặc đĩa mềm).


    Hệ thống tệp kiểm soát các quyền của tệp, thực hiện các hoạt động tạo và xóa tệp cũng như ghi/đọc dữ liệu tệp. Hệ thống tệp cung cấp sự chuyển hướng các yêu cầu được gửi đến các thiết bị ngoại vi tương ứng với các mô-đun hệ thống con I/O.

    Cấu trúc phân cấp của hệ thống tệp UNIX giúp dễ dàng điều hướng. Mỗi thư mục bắt đầu từ thư mục gốc ( / ), lần lượt chứa các tập tin và thư mục con.

    UNIX không có giới hạn về mặt lý thuyết về số lượng thư mục con, nhưng có giới hạn về chiều dài tối đa Tên tệp được chỉ định trong lệnh là 1024 ký tự.

    Trong UNIX, có một số loại tệp khác nhau về chức năng:

    Tập tin thông thường - Loại tệp phổ biến nhất chứa dữ liệu ở một số định dạng. Đối với hệ điều hành, các tệp như vậy chỉ đơn giản là một chuỗi byte. Những tệp này bao gồm tệp văn bản, dữ liệu nhị phân và các chương trình thực thi.

    Mục lục-đây là một tệp chứa tên của các tệp có trong đó, cũng như các con trỏ tới thông tin bổ sung cho phép hệ điều hành thực hiện các hành động với các tệp này. Các thư mục được sử dụng để tạo thành một cây hệ thống tập tin logic.

    Tập tin đặc biệt của thiết bị - Cung cấp quyền truy cập vào các thiết bị vật lý. Các thiết bị được truy cập bằng cách mở, đọc và ghi vào một tệp thiết bị đặc biệt.

    FIFO - ống có tên. Tệp này được sử dụng để liên lạc giữa các tiến trình trên cơ sở hàng đợi.

    Ổ cắm- cho phép bạn biểu diễn kết nối mạng dưới dạng một tập tin.

    Mỗi tệp trong UNIX chứa một tập hợp các quyền xác định cách người dùng tương tác với tệp.

    Mỗi ổ cứng bao gồm một hoặc nhiều phần logic - phân vùng. Vị trí và kích thước của phân vùng được xác định khi đĩa được định dạng. Trong UNIX, các phân vùng hoạt động như các thiết bị độc lập được truy cập dưới dạng các phương tiện lưu trữ khác nhau. Một phần chỉ có thể chứa một hệ thống tập tin vật lý.

    Có nhiều loại hệ thống tệp vật lý, chẳng hạn như FAT16 và NTFS, với các cấu trúc khác nhau. Hơn nữa, có nhiều loại hệ thống tập tin vật lý UNIX ( ừm, s5fs, ext2, vxfs, jfs, ff vân vân.).

    Giới thiệu

    Unix là gì?

    Tôi có thể nhận Unix miễn phí ở đâu?

    Sự khác biệt chính giữa Unix và các hệ điều hành khác là gì?

    Tại sao lại là Unix?

    Khái niệm Unix

    Hệ thống tập tin

    Thông dịch lệnh

    Hướng dẫn sử dụng - người đàn ông

    Giới thiệu

    Viết về hệ điều hành Unix là điều vô cùng khó khăn. Thứ nhất, vì đã có rất nhiều bài viết về hệ thống này. Thứ hai, bởi vì các ý tưởng và giải pháp Unix đã và đang có tác động rất lớn đến sự phát triển của tất cả các hệ điều hành hiện đại, và nhiều ý tưởng trong số này đã được mô tả trong cuốn sách này. Thứ ba, vì Unix không phải là một hệ điều hành mà là cả một họ hệ thống, và không phải lúc nào cũng có thể “theo dõi” mối quan hệ của chúng với nhau và đơn giản là không thể mô tả tất cả các hệ điều hành có trong họ này. Tuy nhiên, không hề tuyên bố là đã hoàn thành, chúng tôi sẽ cố gắng cung cấp một cái nhìn tổng quan nhanh về “thế giới Unix” trong những lĩnh vực mà chúng tôi thấy thú vị vì mục đích của khóa đào tạo của chúng tôi.

    Sự ra đời của hệ điều hành Unix bắt nguồn từ cuối những năm 60 và câu chuyện này đã trở nên tràn ngập những “huyền thoại” đôi khi kể những câu chuyện khác nhau về chi tiết của sự kiện này. Hệ điều hành Unix được ra đời tại trung tâm nghiên cứu Phòng thí nghiệm Điện thoại Bell (Bell Labs), một phần của Tập đoàn AT&T. Ban đầu, dự án sáng kiến ​​​​này dành cho máy tính PDP-7 (sau này - dành cho PDP-11) là một hệ thống tệp hoặc trò chơi máy tính hoặc hệ thống chuẩn bị văn bản hoặc cả hai. Tuy nhiên, điều quan trọng là ngay từ đầu dự án, mà cuối cùng đã trở thành một hệ điều hành, đã được hình thành như môi trường phần mềmđể sử dụng chung. Tác giả của phiên bản Unix đầu tiên là Ken Thompson, nhưng một nhóm lớn nhân viên (D. Ritchie, B. Kernighan, R. Pike và những người khác) đã tham gia thảo luận về dự án và sau đó là triển khai nó. Theo quan điểm của chúng tôi, một số hoàn cảnh may mắn trong sự ra đời của Unix đã quyết định sự thành công của hệ thống này trong nhiều năm tới.

    Đối với hầu hết nhân viên của nhóm nơi hệ điều hành Unix ra đời, hệ điều hành này là “hệ thống thứ ba”. Có ý kiến ​​​​(ví dụ: xem) rằng một lập trình viên hệ thống chỉ đạt được trình độ cao khi hoàn thành dự án thứ ba của mình: dự án đầu tiên vẫn là dự án “của sinh viên”, trong dự án thứ hai, nhà phát triển cố gắng đưa mọi thứ không thành công vào cái đầu tiên, và cuối cùng thì nó trở nên quá cồng kềnh , và chỉ ở cái thứ ba thì mới đạt được sự cân bằng cần thiết giữa mong muốn và khả năng. Được biết, trước khi Unix ra đời, nhóm Bell Labs đã tham gia (cùng với một số công ty khác) vào việc phát triển MULTICS OS. Sản phẩm cuối cùng, MULTICS (Bell Labs không tham gia vào giai đoạn phát triển cuối cùng), mang tất cả các đặc điểm nổi bật của "hệ thống thứ hai" và không được sử dụng rộng rãi. Tuy nhiên, cần lưu ý rằng nhiều ý tưởng và giải pháp quan trọng về cơ bản đã ra đời từ dự án này và một số khái niệm mà nhiều người cho là ra đời trong Unix thực ra có nguồn gốc từ dự án MULTICS.

    Hệ điều hành Unix là một hệ thống được tạo ra "cho chính bạn và cho bạn bè của bạn". Unix không có nhiệm vụ chiếm lĩnh thị trường và cạnh tranh với bất kỳ sản phẩm nào. Bản thân các nhà phát triển hệ điều hành Unix cũng là người dùng của nó và chính họ đã đánh giá tính phù hợp của hệ thống với nhu cầu của mình. Nếu không có áp lực của điều kiện thị trường, đánh giá như vậy có thể cực kỳ khách quan.

    Hệ điều hành Unix là một hệ thống được tạo ra bởi các lập trình viên và dành cho các lập trình viên. Điều này một mặt quyết định sự sang trọng và hài hòa về mặt khái niệm của hệ thống, mặt khác, nhu cầu hiểu biết về hệ thống đối với người dùng Unix và ý thức trách nhiệm nghề nghiệp đối với lập trình viên phát triển phần mềm cho Unix. Và không có nỗ lực tiếp theo nào nhằm tạo ra “Unix dành cho người mới bắt đầu” có thể loại bỏ lợi thế này của hệ điều hành Unix.

    Năm 1972-73 Ken Thompson và Dennis Ritchie đã viết phiên bản mới Unix. Đặc biệt với mục đích này, D. Ritchie đã tạo ra ngôn ngữ lập trình C, không cần thiết phải giới thiệu nữa. Hơn 90% Mã chương trình Unix được viết bằng ngôn ngữ này và ngôn ngữ này đã trở thành một phần không thể thiếu của HĐH. Việc phần chính của HĐH được viết bằng ngôn ngữ cấp cao giúp nó có thể biên dịch lại thành mã của bất kỳ nền tảng phần cứng nào và là hoàn cảnh quyết định việc sử dụng rộng rãi Unix.

    Trong quá trình tạo ra Unix, luật chống độc quyền của Hoa Kỳ đã không cho AT&T cơ hội thâm nhập thị trường phần mềm. Do đó, hệ điều hành Unix không mang tính thương mại và được phân phối tự do, chủ yếu ở các trường đại học. Ở đó, sự phát triển của nó vẫn tiếp tục và nó được thực hiện tích cực nhất tại Đại học California ở Berkeley. Tại trường đại học này, nhóm Phân phối Phần mềm Berkeley đã được thành lập, nhóm này tham gia vào việc phát triển một nhánh riêng của HĐH - BSD Unix. Trong suốt lịch sử tiếp theo, nhánh chính của Unix và BSD Unix đã phát triển song song, liên tục làm phong phú lẫn nhau.

    Khi hệ điều hành Unix lan rộng, sự quan tâm đến nó từ các công ty thương mại bắt đầu tăng lên và họ bắt đầu phát hành phiên bản thương mại của riêng mình cho hệ điều hành này. Theo thời gian, nhánh Unix "chính thống" của AT&T đã trở thành thương mại và một công ty con, Phòng thí nghiệm hệ thống Unix, được thành lập để quảng bá nó. Nhánh BSD của Unix lần lượt phân nhánh thành BSD thương mại và BSD miễn phí. Nhiều hệ thống giống Unix thương mại và có sẵn miễn phí khác nhau được xây dựng trên nhân Unix của AT&T, nhưng chúng cũng bao gồm các tính năng mượn từ BSD Unix, cũng như các tính năng gốc. Mặc dù có nguồn gốc chung, nhưng sự khác biệt giữa các thành viên trong họ Unix đã tích lũy và cuối cùng dẫn đến việc chuyển các ứng dụng từ hệ điều hành giống Unix này sang hệ điều hành giống Unix khác trở nên vô cùng khó khăn. Theo sáng kiến ​​của người dùng Unix, một phong trào đã nảy sinh nhằm chuẩn hóa Unix API. Phong trào này được sự hỗ trợ của Tổ chức Tiêu chuẩn Quốc tế ISO và dẫn tới POSIX (Portable Hệ điêu hanh Giao diện eXecution), vẫn đang được phát triển và là tiêu chuẩn có thẩm quyền nhất cho HĐH. Tuy nhiên, việc thiết lập đặc tả POSIX làm tiêu chuẩn chính thức là một quá trình chậm chạp và không thể đáp ứng nhu cầu của các nhà sản xuất phần mềm, dẫn đến sự xuất hiện của các tiêu chuẩn ngành thay thế.

    Với sự chuyển đổi của AT&T Unix sang Nowell, tên của hệ điều hành này đã đổi thành Unixware và các quyền đối với nhãn hiệu Unix đã được chuyển giao cho tập đoàn X/Open. Tập đoàn này (nay là Open Group) đã phát triển các thông số kỹ thuật hệ thống (rộng hơn POSIX) của riêng mình, được gọi là Đặc tả Unix đơn. Phiên bản thứ hai của tiêu chuẩn này đã được phát hành gần đây, phù hợp hơn nhiều với POSIX.

    Cuối cùng, một số công ty sản xuất phiên bản Unix của riêng họ đã thành lập một tập đoàn Mở phần mềm Foundation (OSF), đã phát hành phiên bản Unix của riêng mình - OSF/1, dựa trên vi nhân Mach. OSF cũng đưa ra các đặc tả hệ thống OSF/1, khiến các công ty thành viên OSF sản xuất hệ thống Unix của riêng họ. Trong số các hệ thống như vậy: SunOS của Sun Microsystems, AIX của IBM, HP/UX của Hewlett-Packard, DIGITAL UNIX của Compaq và các hệ thống khác.

    Lúc đầu, hệ thống Unix của các công ty này chủ yếu dựa trên BSD Unix, nhưng hiện nay hầu hết các hệ thống Unix công nghiệp hiện đại đều được xây dựng bằng cách sử dụng (theo giấy phép) hạt nhân AT&T Unix System V Release 4 (S5R4), mặc dù chúng cũng kế thừa một số đặc tính của BSD. Unix. Chúng tôi không chịu trách nhiệm so sánh các hệ thống Unix thương mại, vì những so sánh kiểu này xuất hiện định kỳ trên báo chí thường đưa ra những kết quả hoàn toàn trái ngược nhau.

    Nowell đã bán công ty Unix Santa Crouse Operations, công ty sản xuất sản phẩm Unix của riêng mình, SCO Open Server. SCO Open Server được dựa trên nhiều hơn nữa phiên bản đầu kernel (System V Release 3), nhưng được sửa lỗi tuyệt vời và có độ ổn định cao. Santa Crouse Operations đã tích hợp sản phẩm của mình với AT&T Unix và phát hành Open Unix 8, nhưng sau đó bán Unix cho Caldera, công ty sở hữu hệ điều hành Unix "cổ điển" ngày nay (cuối năm 2001).

    Sun Microsystems bắt đầu hiện diện trong thế giới Unix với hệ thống SunOS, được tạo trên cơ sở nhân BSD. Tuy nhiên, sau đó nó đã được thay thế bằng hệ thống Solaris dựa trên S5R4. Hiện nay phiên bản 8 của hệ điều hành này đã được phân phối (có cả v.9-beta). Solaris chạy trên SPARC (bộ xử lý RISC được sản xuất theo thông số kỹ thuật của Sun) và nền tảng Intel-Pentium.

    Hewlett-Packard cung cấp hệ điều hành HP-UX. v.11 trên nền tảng PA-RISC. HP-UX dựa trên S5R4, nhưng chứa nhiều tính năng cho biết nguồn gốc của nó trong BSD Unix. Tất nhiên, HP-UX cũng sẽ có sẵn trên nền tảng Intel-Itanium.

    IBM ra mắt hệ điều hành AIX, phiên bản mới nhất cho đến nay là 5L (chúng ta sẽ nói về nó sau). IBM không công bố "phả hệ" của AIX, nó chủ yếu là sự phát triển ban đầu, nhưng các phiên bản đầu tiên mang dấu hiệu xuất xứ từ Unix miễn phíBSD. Tuy nhiên, hiện nay AIX giống S5R4 hơn. Hệ điều hành AIX ban đầu có sẵn trên nền tảng Intel-Pentium, nhưng sau đó (theo chính sách chung của IBM) không còn được hỗ trợ trên nền tảng này nữa. AIX hiện đang chạy trên các máy chủ IBM RS/6000 và các nền tảng điện toán dựa trên PowerPC khác (bao gồm cả siêu máy tính IBM).

    Hệ điều hành DIGITAL UNIX OS của DEC là hệ thống triển khai thương mại duy nhất của hệ thống OSF/1. Hệ điều hành DIGITAL UNIX chạy trên máy chủ DEC Alpha RISC. Khi DEC được Compaq mua lại vào năm 1998, cả máy chủ Alpha và DIGITAL UNIX đều chuyển sang Compaq. Compaq dự định khôi phục sự hiện diện của mình trên thị trường máy chủ Alpha và liên quan đến việc này, họ đang phát triển mạnh mẽ hệ điều hành cho họ. Tên hiện tại của HĐH này là Tru64 Unix (phiên bản hiện tại là 5.1A), nó tiếp tục dựa trên nhân OSF/1 và mang nhiều tính năng của BSD Unix.

    Mặc dù hầu hết các hệ thống Unix thương mại đều dựa trên một hạt nhân duy nhất và tuân thủ các yêu cầu POSIX, nhưng mỗi hệ thống đều có phương ngữ API riêng và sự khác biệt giữa các phương ngữ sẽ tích lũy. Điều này dẫn đến thực tế là việc chuyển các ứng dụng công nghiệp từ hệ thống Unix này sang hệ thống Unix khác là rất khó khăn và đòi hỏi tối thiểu phải biên dịch lại và thường xuyên sửa mã nguồn. Một nỗ lực nhằm khắc phục “sự nhầm lẫn” và tạo ra một hệ điều hành Unix duy nhất cho tất cả mọi người đã được thực hiện vào năm 1998 bởi liên minh SCO, IBM và Sequent. Các công ty này hợp nhất trong dự án Monterey với mục tiêu tạo ra một hệ điều hành duy nhất dựa trên Unixware, lúc đó thuộc sở hữu của SCO, IBM AIX và DYNIX OS của Sequent. (Công ty Sequent chiếm vị trí hàng đầu trong việc sản xuất máy tính có kiến ​​trúc NUMA - bộ đa xử lý bất đối xứng - và DYNIX - đây là Unix dành cho các máy tính như vậy). Monterey OS sẽ chạy trên nền tảng Intel-Pentium 32-bit, nền tảng PowerPC 64-bit và nền tảng Intel-Itanium 64-bit mới. Hầu hết tất cả các nhà lãnh đạo trong ngành phần cứng và phần mềm trung gian đều bày tỏ sự ủng hộ đối với dự án. Ngay cả những công ty có bản sao của riêng mình Unix (ngoại trừ Sun Microsystems), đã thông báo rằng vào ngày Nền tảng Intel họ sẽ chỉ ủng hộ Monterey. Công việc trong dự án dường như đang diễn ra tốt đẹp. Monterey OS là một trong những hệ điều hành đầu tiên chứng minh được hiệu năng của mình trên Intel-Itanium (cùng với Windows NT và Linux) và là hệ điều hành duy nhất không mô phỏng kiến ​​trúc Intel-Pentium 32-bit. Tuy nhiên, ở giai đoạn cuối của dự án, một sự kiện tai hại đã xảy ra: SCO đã bán bộ phận Unix của mình. Thậm chí trước đó, Sequent đã trở thành một phần của IBM. "Người kế nhiệm" của tất cả các thuộc tính của Hệ điều hành Monterey là Hệ điều hành IBM AIX v.5L. Tuy nhiên, không phải tất cả mọi người. Nền tảng Intel-Pentium không phải là trọng tâm chiến lược của IBM và AIX không có sẵn trên nền tảng này. Và vì các nhà lãnh đạo khác trong ngành máy tính không chia sẻ (hoặc không hoàn toàn chia sẻ) quan điểm của IBM, nên ý tưởng về một hệ điều hành Unix chung chưa bao giờ thành hiện thực.