Hệ điều hành unix của công ty t. Xem "UNIX" là gì trong các từ điển khác

Đầu tiênÝ nghĩa của thuật ngữ này dựa trên việc xem xét các cấu trúc mà các tập tin trên phương tiện lưu trữ có thể được tổ chức. Có một số loại cấu trúc như vậy: tuyến tính, cây, đối tượng và các loại khác, nhưng hiện tại chỉ có cấu trúc cây được sử dụng rộng rãi.

Mỗi tệp trong cấu trúc cây được đặt trong một kho lưu trữ tệp cụ thể - mục lục, lần lượt mỗi thư mục cũng nằm trong một thư mục nhất định. Như vậy, theo nguyên tắc lồng các phần tử hệ thống tệp (tệp và thư mục) vào nhau sẽ tạo thành một cây, các đỉnh là các thư mục không trống, các lá là các tệp hoặc thư mục trống. Rễ của cây như vậy được gọi là thư mục gốc và được chỉ định bởi một số tính cách đặc biệt hoặc một nhóm ký tự (ví dụ: "C:" trong hệ điều hành Windows). Mỗi tập tin tương ứng với một số Tên, xác định vị trí của nó trong cây hệ thống tập tin. Tên tệp đầy đủ bao gồm tên của tất cả các đỉnh của cây hệ thống tệp mà qua đó có thể duyệt từ gốc đến một tệp (thư mục) nhất định, viết chúng từ trái sang phải và phân tách chúng bằng các ký tự phân cách đặc biệt.

Hiện đang tồn tại số lượng lớn các hệ thống tập tin, mỗi hệ thống được sử dụng cho một mục đích cụ thể: để truy cập nhanhđối với dữ liệu, để đảm bảo tính toàn vẹn của dữ liệu trong trường hợp xảy ra lỗi hệ thống, để dễ thực hiện, để lưu trữ dữ liệu nhỏ gọn, v.v. Tuy nhiên, trong số rất nhiều hệ thống tệp, chúng ta có thể phân biệt những hệ thống có một số đặc điểm tương tự, cụ thể là:

Các tập tin và thư mục được xác định không phải bằng tên mà bằng nút chỉ mục (i-node) – lập chỉ mục trong mảng tệp chung cho một hệ thống tệp nhất định. Mảng này lưu trữ thông tin về các khối dữ liệu được sử dụng trên phương tiện, cũng như độ dài tệp, chủ sở hữu tệp, quyền truy cập và thông tin dịch vụ khác dưới tên chung “ siêu dữ liệu về tập tin" Các kết nối logic như “name–i-node” không gì khác hơn là nội dung của các thư mục.

Do đó, mỗi tệp được đặc trưng bởi một nút i, nhưng có thể được liên kết với một số tên - trong UNIX, tên này được gọi là liên kết cứng (Xem Hình 1.22, “Ví dụ về Liên kết cứng”). Trong trường hợp này, một tập tin sẽ bị xóa khi liên kết cứng cuối cùng tới tập tin này bị xóa.

Một tính năng quan trọng của các hệ thống tệp như vậy là tên tệp phân biệt chữ hoa chữ thường, nói cách khác, các tệp test.txt và TEST.txt khác nhau (nghĩa là chúng là dòng khác nhau trong tập tin thư mục).

Trong một số khối (cố định cho một hệ thống tệp nhất định) của phương tiện lưu trữ vật lý có cái gọi là. siêu khối. Siêu khối là khu vực quan trọng nhất của hệ thống tệp, chứa thông tin về hoạt động của toàn bộ hệ thống tệp cũng như để nhận dạng nó. Siêu khối chứa " con số kỳ diệu " – mã định danh hệ thống tệp để phân biệt nó với các hệ thống tệp khác, danh sách các khối miễn phí, danh sách các nút i miễn phí và một số thông tin dịch vụ khác.

  • Bên cạnh đó danh mục sản phẩmtập tin thông thường để lưu trữ thông tin, FS có thể chứa các loại sau các tập tin:

    Đặc biệt tập tin thiết bị

    Cung cấp quyền truy cập vào thiết bị vật lý. Khi tạo một thiết bị như vậy, loại thiết bị (khối hoặc ký tự) sẽ được chỉ định. số cao cấp – chỉ mục trình điều khiển trong bảng trình điều khiển hệ điều hành và số cơ sở – một tham số được truyền tới trình điều khiển hỗ trợ nhiều thiết bị để làm rõ chúng ta đang nói đến “thiết bị con” nào (ví dụ: thiết bị nào trong số một số thiết bị IDE hoặc cổng COM).

    Ống được đặt tên Liên kết tượng trưng

    Một loại tệp đặc biệt có nội dung không phải là dữ liệu mà là tên của một số tệp khác (xem Hình 1.23, “Ví dụ về liên kết tượng trưng”. Đối với người dùng, tệp như vậy không thể phân biệt được với tệp mà nó liên kết tới.

    Liên kết tượng trưng có một số ưu điểm so với liên kết cứng: nó có thể được sử dụng để liên kết các tệp trong các hệ thống tệp khác nhau (xét cho cùng, số inode chỉ là duy nhất trong một hệ thống tệp) và việc xóa tệp cũng minh bạch hơn - liên kết có thể được xóa hoàn toàn độc lập với tập tin chính.

    Ổ cắm
  • Như là hệ thống tập tin kế thừa các tính năng của UNIX gốc. Ví dụ: chúng bao gồm: s5 (được sử dụng trong các phiên bản UNIX System V), ufs (BSD UNIX), ext2, ext3, reiserfs (Linux), qnxfs (QNX). Tất cả các hệ thống tệp này khác nhau về định dạng cấu trúc bên trong của chúng, nhưng tương thích về các khái niệm cơ bản.

    Cây thư mục

    Sự xem xét thứ haiÝ nghĩa của thuật ngữ FS dẫn chúng ta đến tập hợp các thủ tục được xác định trước đó để truy cập các tệp trên nhiều phương tiện khác nhau. Một tính năng của họ hệ điều hành UNIX là sự tồn tại của một cây hệ thống tệp duy nhất cho bất kỳ số lượng phương tiện lưu trữ nào có cùng loại hoặc các loại hệ thống tệp khác nhau trên chúng. Điều này đạt được bằng cách gắn – thay thế tạm thời một thư mục của một hệ thống tệp này bằng một cây của hệ thống tệp khác, do đó hệ thống không có một số cây không liên quan gì đến nhau mà chỉ có một cây phân nhánh lớn với một thư mục gốc duy nhất .

    Hệ thống con tập tin của hệ điều hành UNIX có hệ thống độc đáo xử lý yêu cầu tập tin – chuyển đổi hệ thống tập tin hoặc hệ thống tập tin ảo (VFS). VFS cung cấp cho người dùng một bộ chức năng (giao diện) tiêu chuẩn để làm việc với các tệp, bất kể vị trí của chúng và thuộc các hệ thống tệp khác nhau.

    Trong thế giới của các tiêu chuẩn UNIX, người ta xác định rằng thư mục gốc của một cây hệ thống tệp phải được đặt tên là /, cũng như ký tự phân tách khi tạo thành tên tệp đủ điều kiện. Sau đó, tên tệp đầy đủ có thể là, ví dụ: /usr/share/doc/bzip2/README . Nhiệm vụ của VFS là Họ và tên tệp, tìm vị trí của nó trong cây hệ thống tệp, xác định loại của nó ở vị trí này trong cây và “chuyển đổi”, tức là. chuyển tệp để xử lý thêm tới trình điều khiển của một hệ thống tệp cụ thể. Cách tiếp cận này cho phép bạn sử dụng số lượng hệ thống tệp khác nhau gần như không giới hạn trên một máy tính chạy một hệ điều hành và người dùng thậm chí sẽ không biết rằng các tệp này nằm trên các phương tiện lưu trữ khác nhau.

    Việc sử dụng tên chung của các tệp chính và cấu trúc thư mục tạo điều kiện thuận lợi đáng kể cho công việc trong hệ điều hành, quản trị và tính di động của nó. Một số cấu trúc này được sử dụng khi hệ thống khởi động, một số được sử dụng trong quá trình vận hành, nhưng tất cả chúng đều có tầm quan trọng lớn đối với toàn bộ hệ điều hành và việc vi phạm cấu trúc này có thể dẫn đến việc hệ thống hoặc các thành phần riêng lẻ của nó không hoạt động được.

    Hình 1.24. Các thư mục chuẩn trong hệ thống tập tin UNIX

    Dưới đây là mô tả ngắn gọn về các thư mục chính của hệ thống, được mô tả chính thức theo tiêu chuẩn đặc biệt dành cho hệ thống phân cấp tập tin (Tiêu chuẩn phân cấp hệ thống tập tin). Tất cả các thư mục có thể được chia thành hai nhóm: dành cho thông tin tĩnh (hiếm khi thay đổi) - /bin, /usr và thông tin động (thường xuyên thay đổi) - /var, /tmp. Dựa trên điều này, quản trị viên có thể đặt từng thư mục này trên phương tiện riêng của họ với các đặc điểm phù hợp.

    Thư mục gốc

    Thư mục gốc / là cơ sở của bất kỳ hệ thống tệp UNIX nào. Tất cả các thư mục và tệp khác đều nằm trong cấu trúc (cây) do thư mục gốc tạo ra, bất kể vị trí vật lý của chúng.

    /thùng rác

    Thư mục này chứa các lệnh và tiện ích được sử dụng thường xuyên của hệ thống công cộng. Điều này bao gồm tất cả các lệnh cơ bản có sẵn ngay cả khi chỉ hệ thống tập tin gốc được gắn kết. Ví dụ về các lệnh như vậy là: ls , cp , sh và như thế..

    /khởi động

    Thư mục chứa mọi thứ cần thiết cho quá trình khởi động hệ điều hành: chương trình bootloader, hình ảnh kernel của hệ điều hành, v.v.

    /dev

    Thư mục chứa tập tin đặc biệt thiết bị phục vụ như một giao diện truy cập vào các thiết bị ngoại vi. Có một thư mục như vậy không có nghĩa là không thể tạo các tệp thiết bị đặc biệt ở nơi khác, chỉ là sẽ thuận tiện khi có một thư mục cho tất cả các tệp thuộc loại đó.

    /vân vân

    Thư mục này chứa các tập tin cấu hình hệ thống. Các ví dụ bao gồm các tệp /etc/fstab, chứa danh sách các hệ thống tệp sẽ được gắn kết và /etc/resolv.conf, chỉ định các quy tắc để soạn các truy vấn DNS cục bộ. Trong số nhiều nhất tập tin quan trọng– các tập lệnh khởi tạo và khởi tạo hệ thống. Trong các hệ thống kế thừa các tính năng của UNIX System V, các thư mục được phân bổ cho chúng từ /etc/rc0.d đến /etc/rc6.d và một tệp mô tả chung cho tất cả - /etc/inittab.

    /nhà (tùy chọn)

    Thư mục chứa các thư mục chính của người dùng. Sự tồn tại của nó trong thư mục gốc là không cần thiết và nội dung của nó phụ thuộc vào đặc điểm của một hệ điều hành giống UNIX cụ thể.

    /lib

    Thư mục chứa các thư viện tĩnh và động cần thiết để chạy các chương trình nằm trong thư mục /bin và /sbin.

    /mnt

    Một thư mục tiêu chuẩn để gắn tạm thời các hệ thống tệp như đĩa mềm, đĩa flash, CD-ROM, v.v.

    /gốc (tùy chọn)

    Thư mục chứa thư mục chính của superuser. Sự tồn tại của nó trong thư mục gốc là không cần thiết.

    /sbin

    Thư mục này chứa các lệnh và tiện ích dành cho người quản trị hệ thống. Ví dụ về các lệnh như vậy là: tuyến đường , tạm dừng lại , trong đó v.v. Các thư mục /usr/sbin và /usr/local/sbin được sử dụng cho các mục đích tương tự.

    /usr

    Thư mục này tuân theo cấu trúc của thư mục gốc - nó chứa các thư mục /usr/bin, /usr/lib, /usr/sbin, phục vụ các mục đích tương tự.

    Thư mục /usr/include chứa các tệp tiêu đề C cho các thư viện khác nhau nằm trên hệ thống.

    Thư mục /usr/local là cấp độ lặp lại tiếp theo của thư mục gốc và được sử dụng để lưu trữ chương trìnhđược quản trị viên cài đặt ngoài bản phân phối tiêu chuẩn của hệ điều hành.

    Thư mục /usr/share lưu trữ dữ liệu bất biến cho các chương trình đã cài đặt. Đặc biệt quan tâm là thư mục /usr/share/doc, chứa tài liệu về tất cả các chương trình đã cài đặt.

    /var , /tmp

    Được sử dụng để lưu trữ dữ liệu tạm thời của các tiến trình - tương ứng là hệ thống và người dùng.

    Lịch sử của UNIX® bắt đầu từ năm 1969. Hầu hết các hệ thống UNIX hiện đại đều là phiên bản thương mại của các bản phân phối UNIX gốc. Solaris từ Sun, HP-UX từ Hewlett-Packard, AIX® từ IBM là những đại diện tốt nhất của UNIX, cũng có các yếu tố độc đáo và giải pháp cơ bản của riêng họ. Ví dụ, Sun Solaris là UNIX, nhưng nó cũng chứa nhiều công cụ và tiện ích mở rộng được thiết kế riêng cho các máy trạm và máy chủ của Sun.

    Linux® được phát triển với nỗ lực tạo ra một giải pháp thay thế miễn phí cho môi trường UNIX thương mại. Lịch sử của nó bắt đầu vào năm 1991 hoặc thậm chí 1983, khi Dự án GNU được tạo ra, mục tiêu ban đầu của nó là cung cấp một giải pháp thay thế miễn phí cho UNIX. Linux chạy trên nhiều nền tảng hơn, chẳng hạn như Intel®/AMD x86. Hầu hết các hệ điều hành UNIX chỉ có thể chạy trên một nền tảng.

    Linux và UNIX có điểm chung gốc rễ lịch sử, nhưng cũng có những khác biệt nghiêm trọng. Nhiều công cụ, tiện ích và ứng dụng miễn phí đạt tiêu chuẩn của Linux ban đầu được dự định là những lựa chọn thay thế miễn phí cho các chương trình UNIX. Linux thường cung cấp hỗ trợ cho nhiều tùy chọn và ứng dụng, mượn chức năng tốt nhất hoặc phổ biến nhất từ ​​UNIX.

    Đối với quản trị viên hoặc nhà phát triển đã quen làm việc với Linux, hệ thống UNIX có vẻ không thuận tiện lắm khi sử dụng. Mặt khác, nền tảng của hệ điều hành giống UNIX (công cụ, hệ thống tệp, API) khá chuẩn hóa. Tuy nhiên, một số chi tiết của hệ thống có thể khác biệt đáng kể. Những khác biệt này sẽ được thảo luận sau trong bài viết.

    Sự khác biệt về kỹ thuật

    Các nhà phát triển bản phân phối UNIX thương mại dựa vào một nhóm máy khách và nền tảng máy chủ cụ thể cho hệ điều hành của họ. Họ có ý tưởng tốt về việc hỗ trợ và tối ưu hóa những ứng dụng nào cần triển khai. Các nhà sản xuất UNIX cố gắng hết sức để đảm bảo khả năng tương thích giữa các phiên bản khác nhau. Ngoài ra, họ còn công bố các tiêu chuẩn hệ điều hành của mình.

    Mặt khác, việc phát triển GNU/Linux không dành riêng cho nền tảng và máy khách, và các nhà phát triển GNU/Linux có nền tảng và quan điểm khác nhau. Không có bộ công cụ hoặc khuôn khổ tiêu chuẩn nghiêm ngặt nào trong cộng đồng Linux. Để giải quyết vấn đề này, dự án Cơ sở Tiêu chuẩn Linux (LSB) đã được triển khai nhưng nó không hiệu quả như chúng tôi mong muốn.

    Việc thiếu tiêu chuẩn hóa này dẫn đến sự mâu thuẫn đáng kể trong Linux. Đối với một số nhà phát triển, khả năng sử dụng tốt nhất các hệ điều hành khác là một điểm cộng, nhưng việc sao chép các phần tử UNIX vào Linux không phải lúc nào cũng thuận tiện, chẳng hạn như khi tên thiết bị bên trong Linux có thể được lấy từ AIX, trong khi các công cụ hệ thống tệp được chú trọng. trên HP-UX. Sự không tương thích kiểu này cũng xảy ra giữa các bản phân phối Linux khác nhau. Ví dụ: Gentoo và RedHat triển khai các phương pháp cập nhật khác nhau.

    Để so sánh, mỗi bản phát hành mới của hệ thống UNIX đều có mô tả đầy đủ về các tính năng mới và những thay đổi đối với UNIX. Các lệnh, công cụ và các thành phần khác hiếm khi thay đổi và thường các đối số dòng lệnh giống nhau cho các ứng dụng vẫn giữ nguyên trên nhiều phiên bản của phần mềm đó. Khi những thay đổi đáng kể xảy ra trong các thành phần này, các nhà cung cấp hệ thống UNIX thương mại thường cung cấp trình bao bọc cần thiết để đảm bảo khả năng tương thích với các phiên bản trước của công cụ.

    Khả năng tương thích này có nghĩa là các tiện ích và ứng dụng có thể được sử dụng trên các phiên bản hệ điều hành mới mà không cần kiểm tra hoặc thay đổi mã nguồn của chúng. Vì vậy, việc chuyển đổi sang một phiên bản UNIX mới thường không có sự khác biệt cơ bản việc chuyển từ phiên bản cũ hơn đòi hỏi người dùng hoặc quản trị viên ít nỗ lực hơn nhiều so với việc chuyển từ bản phân phối Linux này sang bản phân phối Linux khác.

    Kiến trúc phần cứng

    Hầu hết các phiên bản thương mại của UNIX được thiết kế cho một hoặc nhiều số lượng lớn các kiến ​​trúc phần cứng. HP-UX chỉ chạy trên nền tảng PA-RISC và Itanium, Solaris chạy trên SPARC và x86, còn AIX chỉ chạy trên bộ xử lý POWER.

    Do những hạn chế này, các nhà cung cấp UNIX tương đối tự do sửa đổi mã của họ cho các kiến ​​trúc này và tận dụng mọi ưu điểm của kiến ​​trúc của họ. Vì họ có kiến ​​thức sâu sắc về các thiết bị mà họ hỗ trợ nên trình điều khiển của họ hoạt động tốt hơn và không phải đối mặt với các hạn chế BIOS dành riêng cho PC.

    Mặt khác, Linux về mặt lịch sử được thiết kế để cung cấp khả năng tương thích tối đa. Linux có sẵn trên nhiều kiến ​​trúc khác nhau và số lượng thiết bị I/O cũng như các thiết bị ngoại vi khác có thể được sử dụng với hệ điều hành này gần như là vô hạn. Các nhà phát triển không thể biết trước phần cứng cụ thể nào sẽ được cài đặt trong máy tính và thường không thể đảm bảo rằng phần cứng đó được sử dụng hiệu quả. Một ví dụ là quản lý bộ nhớ trên Linux. Trước đây, Linux sử dụng mô hình bộ nhớ phân đoạn ban đầu được phát triển cho x86. Hiện tại nó đã được điều chỉnh để sử dụng bộ nhớ phân trang nhưng vẫn giữ lại một số yêu cầu về bộ nhớ được phân đoạn, điều này sẽ gây ra vấn đề nếu kiến ​​trúc không hỗ trợ bộ nhớ phân đoạn. Đây không phải là vấn đề đối với các nhà cung cấp UNIX. Họ biết chính xác UNIX của họ sẽ chạy trên phần cứng nào.

    Cốt lõi

    Kernel là trái tim của hệ điều hành. Mã nguồn hạt nhân cho các bản phân phối UNIX thương mại là tài sản của các nhà phát triển và không được phân phối bên ngoài công ty. Tình hình hoàn toàn trái ngược với Linux. Các quy trình biên dịch và vá lỗi hạt nhân và trình điều khiển rất khác nhau. Đối với Linux và các hệ điều hành nguồn mở khác, bản vá có thể được phát hành ở dạng mã nguồn và người dùng cuối có thể cài đặt, kiểm tra và thậm chí sửa đổi nó. Các bản vá này thường không được kiểm tra kỹ lưỡng như các bản vá từ các nhà cung cấp hệ điều hành UNIX thương mại. Bởi vì không danh sách đầy đủ các ứng dụng và môi trường phải được kiểm tra để chạy chính xác trên Linux, các nhà phát triển Linux phụ thuộc vào người dùng cuối và các nhà phát triển khác để phát hiện lỗi.

    Các nhà cung cấp bản phân phối UNIX thương mại chỉ phát hành hạt nhân dưới dạng mã thực thi. Một số bản phát hành là nguyên khối, trong khi những bản phát hành khác chỉ cho phép bạn cập nhật một mô-đun hạt nhân cụ thể. Nhưng trong mọi trường hợp, bản phát hành này chỉ được cung cấp dưới dạng mã thực thi. Nếu cần cập nhật, quản trị viên phải đợi nhà cung cấp phát hành bản vá ở dạng mã nhị phân, nhưng có thể yên tâm khi biết rằng nhà cung cấp sẽ kiểm tra kỹ lưỡng bản vá của họ để biết khả năng tương thích ngược.

    Tất cả các phiên bản thương mại của UNIX đều đã phát triển ở một mức độ nào đó thành hạt nhân mô-đun. Trình điều khiển và đặc điểm cá nhân Các hệ điều hành có sẵn dưới dạng các thành phần riêng biệt và có thể được tải hoặc dỡ khỏi kernel khi cần. Nhưng kiến ​​trúc mô-đun mở của Linux linh hoạt hơn nhiều. Tuy nhiên, tính linh hoạt và khả năng thích ứng của Linux cũng đồng nghĩa với sự thay đổi liên tục. Nguyên bản Mã Linux liên tục thay đổi và theo ý muốn của nhà phát triển, API có thể thay đổi. Khi một mô-đun hoặc trình điều khiển được viết cho phiên bản thương mại của UNIX, nó sẽ tồn tại lâu hơn nhiều so với trình điều khiển tương tự dành cho Linux.

    Hỗ trợ hệ thống tập tin

    Một trong những lý do khiến Linux trở thành một hệ điều hành mạnh mẽ như vậy là khả năng tương thích rộng rãi với các hệ điều hành khác. Một trong những tính năng rõ ràng nhất là có sẵn rất nhiều hệ thống tập tin. Hầu hết các phiên bản thương mại của UNIX đều hỗ trợ hai hoặc ba loại hệ thống tệp. Tuy nhiên, Linux hỗ trợ hầu hết các hệ thống tệp hiện đại. hiển thị hệ thống tập tin nào được hệ điều hành UNIX hỗ trợ. Bất kỳ hệ thống tệp nào trong số này đều có thể được gắn trên Linux, mặc dù không phải tất cả các hệ thống này đều hỗ trợ đầy đủ việc đọc và ghi dữ liệu.

    Bảng 1. Hệ thống tập tin tiêu chuẩn cho UNIX

    Hầu hết các phiên bản thương mại của UNIX đều hỗ trợ hệ thống tệp ghi nhật ký. Ví dụ: HP-UX sử dụng hfs làm hệ thống tệp tiêu chuẩn nhưng nó cũng hỗ trợ hệ thống tệp nhật ký vxfs. Solaris hỗ trợ ufs và zfs. Hệ thống tệp được ghi nhật ký là một thành phần thiết yếu của bất kỳ môi trường máy chủ doanh nghiệp nào. Linux là hãng áp dụng muộn việc hỗ trợ hệ thống tệp ghi nhật ký, nhưng hiện nay có một số tùy chọn, từ bản sao của hệ thống tệp thương mại (xfs, jfs) đến các hệ thống tệp dành riêng cho Linux (ext3, reiserfs).

    Các tính năng khác của hệ thống tệp bao gồm hỗ trợ hạn ngạch, danh sách kiểm soát truy cập tệp, phản chiếu, ảnh chụp nhanh hệ thống và thay đổi kích thước. Chúng được hỗ trợ dưới dạng này hay dạng khác bởi các hệ thống tệp Linux. Hầu hết các tính năng này không phải là tiêu chuẩn trên Linux. Một số tính năng có thể hoạt động trên một hệ thống tệp, trong khi những tính năng khác sẽ yêu cầu một hệ thống tệp khác. Một số tính năng này đơn giản là không có sẵn trên một số hệ thống tệp Linux nhất định và những tính năng khác yêu cầu cài đặt công cụ bổ sung, ví dụ: phiên bản cụ thể LVM hoặc hỗ trợ mảng đĩa (gói đột kích phần mềm). Về mặt lịch sử, Linux đã duy trì khả năng tương thích giữa các giao diện lập trình và công cụ tiêu chuẩnĐiều này khó đạt được nên nhiều hệ thống tệp triển khai các tính năng này theo cách khác nhau.

    Bởi vì các hệ thống UNIX thương mại hỗ trợ một số hệ thống tệp có giới hạn nên các công cụ và kỹ thuật làm việc với chúng được tiêu chuẩn hóa hơn. Ví dụ: vì Irix chỉ hỗ trợ một hệ thống tệp chính nên chỉ có một cách để xác định danh sách kiểm soát truy cập. Điều này thuận tiện hơn nhiều cho người dùng cuối và hỗ trợ thêm cho hệ điều hành này.

    Tính khả dụng của ứng dụng

    Số đông ứng dụng cơ bản giống nhau trên cả UNIX và Linux. Ví dụ: các lệnh cp , ls , vi và cc có sẵn trên UNIX và Linux và rất giống nhau, nếu không nói là giống hệt nhau. Phiên bản Linux của những công cụ này dựa trên phiên bản GNU của những công cụ này, trong khi phiên bản UNIX của những công cụ này dựa trên các công cụ UNIX truyền thống. Những công cụ UNIX này có lịch sử lâu đời và hiếm khi thay đổi.

    Nhưng điều này không có nghĩa là các phiên bản thương mại của UNIX không thể sử dụng được với các công cụ GNU. Trên thực tế, nhiều nhà cung cấp hệ điều hành UNIX thương mại đã đưa nhiều công cụ GNU vào bản phân phối của họ hoặc cung cấp chúng dưới dạng các tiện ích bổ sung miễn phí. Các công cụ GNU không chỉ là các công cụ tiêu chuẩn. Một số tiện ích miễn phí này không có tiện ích thương mại tương đương (emacs hoặc Perl). Hầu hết các nhà sản xuất đều cài đặt sẵn các chương trình này và chúng được cài đặt tự động vào hệ thống hoặc có sẵn dưới dạng thành phần bổ sung.

    Các ứng dụng nguồn mở và miễn phí hầu như luôn được tích hợp sẵn trong tất cả các bản phân phối Linux. Có một lượng lớn phần mềm miễn phí dành cho Linux và nhiều ứng dụng trong số này đã được chuyển sang các phiên bản thương mại của hệ điều hành UNIX.

    Các ứng dụng thương mại và/hoặc nguồn đóng (CAD, chương trình tài chính, trình chỉnh sửa đồ họa) có thể không có ứng dụng tương đương trên Linux. Mặc dù một số nhà cung cấp đang phát hành các phiên bản ứng dụng của họ cho Linux, nhưng hầu hết các nhà cung cấp đều do dự làm điều đó cho đến khi Linux trở nên phổ biến hơn đối với người dùng.

    Mặt khác, các phiên bản thương mại của UNIX trước đây đã hỗ trợ một số lượng lớn các ứng dụng doanh nghiệp, chẳng hạn như Oracle hoặc SAP. Linux bị thiệt hại rất nhiều do khó khăn trong việc chứng nhận các ứng dụng lớn, trong khi các phiên bản thương mại của UNIX không thay đổi nhiều từ phiên bản này sang phiên bản khác. Linux có thể thay đổi rất nhiều không chỉ với mỗi bản phân phối mới mà đôi khi giữa các bản phát hành của cùng một bản phân phối. Điều này khiến nhà sản xuất phần mềm rất khó hiểu chính xác ứng dụng của họ sẽ được sử dụng trong môi trường nào.

    Quản trị hệ thống

    Mặc dù một số bản phân phối Linux đi kèm với một bộ công cụ quản lý hệ thống tiêu chuẩn, chẳng hạn như YaST của SUSE, nhưng không có tiêu chuẩn Linux chung nào cho các công cụ quản trị hệ thống có sẵn, nhưng đôi khi có thể cồng kềnh khi sử dụng ở mỗi phiên bản thương mại. UNIX có giao diện quản lý hệ thống riêng. Sử dụng giao diện này, bạn có thể quản lý và thay đổi các thành phần hệ thống. Dưới đây là ví dụ về Trình quản lý quản trị hệ thống cho HP-UX.

    SAM này chứa các mô-đun sau:

    • Người dùng hoặc nhóm để quản lý.
    • Các thông số hạt nhân có thể được thay đổi.
    • Cấu hình mạng.
    • Thiết lập và khởi tạo đĩa.
    • Cấu hình máy chủ X.

    Chất lượng của gói tiện ích này rất tuyệt vời và gói tiện ích này hoạt động tốt với tập tin văn bản. Không có công cụ tương đương với công cụ này dành cho Linux. Ngay cả YaST trong SUSE cũng không có chức năng tương tự.

    Một khía cạnh khác của UNIX và Linux dường như thay đổi với hầu hết mọi phiên bản hệ điều hành là vị trí của các tập lệnh init hệ thống. May mắn thay, /sbin/init và /etc/inittab là những thư mục tiêu chuẩn. Nhưng các tập lệnh khởi động hệ thống nằm ở các thư mục khác nhau. hiển thị các vị trí lưu trữ tập lệnh khởi tạo hệ thống cho các bản phân phối UNIX và Linux khác nhau.

    Bảng 2. Vị trí các tập lệnh khởi tạo hệ thống cho các phiên bản UNIX khác nhau
    HP-UX/sbin/init.d
    AIX/etc/rc.d/init.d
    Irix/etc/init.d
    Solaris/etc/init.d
    Mũ đỏ/etc/rc.d/init.d
    SUSE/etc/rc.d/init.d
    Debian/etc/init.d
    Phần mềm lười biếng/etc/rc.d

    Do số lượng lớn các bản phân phối Linux và số lượng gần như vô hạn ứng dụng có sẵn(có tính đến thực tế là cũng có nhiều phiên bản của ứng dụng này) đối với HĐH này, việc quản lý chương trình trên Linux trở thành nhiệm vụ đầy thử thách. Việc chọn công cụ phù hợp phụ thuộc vào bản phân phối bạn đang làm việc. Sự bất tiện hơn nữa bắt nguồn từ thực tế là một số bản phân phối sử dụng định dạng tệp Trình quản lý gói Redhat (RPM), trong khi các chương trình của chúng không tương thích. Sự tách biệt này dẫn đến một số lượng lớn các tùy chọn để làm việc với các gói và không phải lúc nào cũng rõ ràng hệ thống nào được sử dụng trong một môi trường cụ thể.

    Mặt khác, các bản phân phối UNIX thương mại có chứa quản lý tiêu chuẩn gói. Mặc dù có nhiều phiên bản ứng dụng và định dạng cụ thể khác nhau cho các phiên bản UNIX khác nhau nhưng môi trường quản lý ứng dụng vẫn giống nhau. Ví dụ: Solaris đã sử dụng các công cụ quản lý gói ứng dụng tương tự kể từ khi thành lập. Và rất có thể cách nhận dạng, thêm hoặc bớt các gói phần mềm trong Solaris sẽ không thay đổi.

    Các nhà sản xuất bản phân phối UNIX thương mại cũng cung cấp phần cứng mà hệ điều hành của họ được thiết kế để chạy trên đó, vì vậy họ có thể đưa các thiết bị mới vào hệ điều hành của mình, điều này khó thực hiện hơn nhiều với Linux. Ví dụ: trong các phiên bản Linux gần đây đã có những nỗ lực triển khai hỗ trợ cho các thành phần có thể thay thế nhanh (với mức độ thành công khác nhau). Các phiên bản thương mại của UNIX đã có khả năng này trong nhiều năm. Ngoài ra, các phiên bản thương mại của UNIX có khả năng giám sát phần cứng tốt hơn Linux. Các nhà sản xuất có thể viết trình điều khiển và triển khai chúng vào hệ điều hành của họ, điều này sẽ theo dõi tình trạng của hệ thống, chẳng hạn như số lỗi bộ nhớ ECC, thông số tiêu thụ điện năng hoặc bất kỳ thành phần phần cứng nào khác. Kiểu hỗ trợ này dành cho Linux chỉ được mong đợi trong tương lai xa.

    Phần cứng dành cho hệ thống UNIX thương mại cũng có nhiều tùy chọn khởi động nâng cao hơn. Trước khi hệ điều hành khởi động, có nhiều tùy chọn để định cấu hình cách khởi động, kiểm tra tình trạng của hệ thống hoặc điều chỉnh cài đặt phần cứng. BIOS của một PC tiêu chuẩn có rất ít tùy chọn này, nếu có.

    Ủng hộ

    Một trong những khác biệt đáng kể nhất giữa Linux và UNIX là chi phí. Các nhà cung cấp hệ thống UNIX thương mại đã đặt giá cao cho UNIX của họ, mặc dù nó chỉ có thể được sử dụng với nền tảng phần cứng của họ. Mặt khác, các bản phân phối Linux tương đối rẻ, nếu không muốn nói là miễn phí.

    Khi mua phiên bản thương mại của UNIX, nhà sản xuất thường cung cấp hỗ trợ kỹ thuật. Hầu hết người dùng Linux không nhận được sự hỗ trợ từ nhà sản xuất hệ điều hành. Họ chỉ có thể nhận được sự hỗ trợ khi được giúp đỡ E-mail, từ các diễn đàn và từ nhiều cộng đồng người dùng Linux khác nhau. Tuy nhiên, những nhóm này không chỉ dành cho người dùng Linux. Nhiều quản trị viên của hệ điều hành UNIX thương mại tham gia vào các nhóm hỗ trợ mở này để có thể vừa cung cấp hỗ trợ vừa có thể sử dụng nó nếu cần. Nhiều người nhận thấy những nhóm tự trợ giúp này thậm chí còn hữu ích hơn cả hệ thống hỗ trợ do nhà sản xuất hệ điều hành cung cấp.

    Phần kết luận

    Các nguyên tắc cơ bản của UNIX và Linux rất giống nhau. Người dùng hoặc quản trị hệ thống Việc chuyển từ Linux sang UNIX sẽ gây ra một số bất tiện cho công việc của bạn, nhưng nhìn chung quá trình chuyển đổi sẽ không gây khó khăn gì. Ngay cả khi hệ thống tệp và nhân của chúng khác nhau và cần chút thời gian để thành thạo, các công cụ và API vẫn giống nhau. Nhìn chung, những khác biệt này không đáng kể hơn những khác biệt giữa các phiên bản chính của UNIX. Tất cả các nhánh của UNIX và Linux đang dần phát triển và sẽ hơi khác nhau một chút, nhưng do các khái niệm UNIX đã trưởng thành nên các nguyên tắc cơ bản của HĐH sẽ không thay đổi nhiều.

    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ụ, chính tại Bell Labs mà 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 đến 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 Hệ điều hành). 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

    BESYS chủ yếu dành cho thực hiện hàng loạt một số lượng lớn các 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 kế hoạch sao cho chiếm dụng tài nguyên tối đa có thể để máy tính không ở trạng thái 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. Khi các hệ thống chia sẻ thời gian chính thức xuất hiện, 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, do đó BESYS không thể chạy trên các máy tính đa nền tảng mới của IBM nữa; 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 đề xuất bởi giáo sư Jack Dennis của MIT. 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ữ đầu tiên cấp độ cao– 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 đã 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 .

    Multics vẫn đang được phát triển trong một thời gian khá lâu, phiên bản cuối cùng là vào năm 1992 và đó là phiên bản 12.5, mặc dù đây 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 xuất hiện gần như ngẫu nhiên và đó là nguyên nhân trò chơi vi tính"Du hành vũ trụ" là một trò chơi bay vào vũ trụ được viết bởi Ken Thompson. 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ừ ngày 1 tháng 1 năm 1970 nó mới được tính thời gian hệ thống(số giây kể 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ớ mọi người đã khiến chúng ta sợ hãi về vấn đề Y2K như thế nào 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 đã hoàn thiện hệ điều hành và Bell Labs thậm chí còn đăng ký 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, Phiên bản thứ hai, được phát hành, được viết gần như hoàn toàn bằng B; một mô-đun khá nhỏ gồm khoảng 1000 dòng vẫn còn trong trình biên dịch mã, do đó 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, nó nằm 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 cơ sở giáo dục như một phương tiện để học tập. 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à vào thời điểm đó 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 như thế nào đã và đang 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 nội dung 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à viết tắt của Phân phối phần mềm Berkeley. hệ thống đặc biệt phân phối các chương trình trong 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. Họ đã bắt đầu phân nhánh từ BSD UNIX chi nhánh riêng biệt hệ điều hà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 phiên bản nổi tiếng nhất trong số chúng 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à các hệ điều hành 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 kiến ​​trúc nhất có thể, 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, một năm trước đó, vào năm 1982, Sun đã 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 năm 1981 chuyên chuyển Unix sang nhiều phần cứng khác nhau), nhưng nó là 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. Hiện tại, phiên bản mới nhất của Solaris là 11, được 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đáng chú ý ở chỗ nó tập hợp ba dự án thú vị cùng một lúc. 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, anh 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ờ anh 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 anh khiến cuộc sống của Torvalds trở nên 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 từ lâu đã 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 kỳ 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; để chuẩn bị cho 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 này 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ực 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ư hoạt động. Điều này có nghĩa là tôi sẽ có thứ gì đó hoạt động trong những tháng tới và tôi muốn biết hầu hết mọi người muố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 đã xảy 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; xét 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. Sau đó Linux phát triển và bản thân cái tên Linux cũng trở nên mạnh mẽ hơn, bởi vì địa chỉ nơi hệ điều hành được đăng tải 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ố ít chức năng 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 và nền tảng Linux nguyên khối, nhiều tính năng của hệ điều hành được bao gồm trong đó, 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 kernel, 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, từ năm 1991 của năm Linux Nó đang dần phát triển và mặc dù thị phần 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 cắt giảm thị phần của mình trong lĩnh vực này. Ngoài ra, Linux hiện nay đã sử dụng vị trí tốt trên điện thoại và máy tính bảng, vì 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, Android Inc đã bị Google mua lại. 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à thế đấy Phân phối Linux, được cho là chạy trên các thiết bị di động được điều khiển bằng bộ xử lý nguyên tử Intel. Hãy đề cập thêm một điều nữa linux di động– 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 đã xem xét vấn đề này một cách nghiêm túc với Android và triển vọng cho các điện thoại di động khác Phiên bản Linux Vẫn còn sương mù.

    Như bạn có thể thấy, hiện nay Linux có thể chạy trên nhiều hệ thống được quản lý bởi 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. NeXT hoạt động không tốt, 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à 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 (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.
    Ngày nay, UNIX được sử dụng chủ yếu trên các máy chủ và như một hệ thống cho phần cứng.
    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 có nhãn hiệu "UNIX", nhưng được biết đến nhiều nhất với tư cách là tổ chức 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 cây phả hệ của các 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 bản phân phối “nội địa” 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 cho việc xây dựng và chứng nhận tất cả các hệ thống giống UNIX, và Linux là trương hợp đặc biệt UNIX.

    Tags: unix, linux, nix, Linux, unix

    ), thứ ba (GNU/Linux) và nhiều vị trí tiếp theo.

    Các hệ thống UNIX có tầm quan trọng lịch sử to lớn vì chúng đã tạo ra một số khái niệm và cách tiếp cận phần mềm và hệ điều hành phổ biến ngày nay. Ngoài ra, trong quá trình phát triển hệ thống Unix, ngôn ngữ C đã được tạo ra.

    Ví dụ về các hệ điều hành giống UNIX nổi tiếng bao gồm: BSD, Solaris, Linux, Android, MeeGo, NeXTSTEP, Mac OS X, Apple iOS.

    Câu chuyện

    Người tiền nhiệm

    Các phiên bản đầu tiên của UNIX được viết bằng hợp ngữ và không có trình biên dịch ngôn ngữ cấp cao tích hợp. Khoảng năm 1969, Ken Thompson, với sự hỗ trợ của Dennis Ritchie, đã phát triển và triển khai ngôn ngữ Bi (B), đây là phiên bản đơn giản hóa (để triển khai trên máy tính mini) của ngôn ngữ BCPL được phát triển bằng ngôn ngữ này. Bi, giống như BCPL, là một ngôn ngữ được thông dịch. Năm 1972, phiên bản thứ hai của UNIX được phát hành, viết lại bằng ngôn ngữ Bi. Năm 1969-1973, một ngôn ngữ biên dịch được phát triển dựa trên Bi, gọi là C(C).

    Tách ra

    Một lý do quan trọng cho sự phân chia UNIX là việc triển khai ngăn xếp giao thức TCP/IP vào năm 1980. Trước đó, giao tiếp giữa máy với máy trong UNIX còn ở giai đoạn sơ khai - phương thức giao tiếp quan trọng nhất là UUCP (một phương tiện sao chép tệp từ hệ thống UNIX này sang hệ thống UNIX khác, ban đầu chạy trên mạng điện thoại sử dụng modem).

    Hai giao diện lập trình ứng dụng mạng đã được đề xuất: ổ cắm Berkley và giao diện lớp vận chuyển TLI. Giao diện lớp vận chuyển).

    Giao diện ổ cắm Berkley được phát triển tại Đại học Berkeley và sử dụng ngăn xếp giao thức TCP/IP được phát triển ở đó. TLI được AT&T tạo ra theo định nghĩa của lớp vận chuyển mô hình OSI và lần đầu tiên xuất hiện trong Hệ thống Phiên bản V 3. Mặc dù phiên bản này chứa TLI và các luồng, nhưng ban đầu nó không triển khai TCP/IP hoặc các giao thức khác. giao thức mạng, nhưng việc triển khai tương tự được cung cấp bởi bên thứ ba.

    Việc triển khai TCP/IP đã chính thức và cuối cùng được đưa vào bản phân phối cơ sở của System V phiên bản 4. Điều này, cùng với những cân nhắc khác (chủ yếu là thị trường), đã gây ra sự phân định cuối cùng giữa hai nhánh UNIX - BSD (Đại học Berkeley) và System V (phiên bản thương mại của AT&T). Sau đó, nhiều công ty đã cấp phép Hệ thống V từ AT&T, đã phát triển các loại UNIX thương mại của riêng họ, chẳng hạn như AIX, CLIX, HP-UX, IRIX, Solaris.

    Việc triển khai UNIX hiện đại thường không phải là hệ thống V hoặc BSD thể tinh khiết. Họ triển khai các tính năng của cả System V và BSD.

    Hệ điều hành giống UNIX miễn phí

    Hiện nay, GNU/Linux và các thành viên của họ BSD đang nhanh chóng chiếm lĩnh thị trường từ các hệ thống UNIX thương mại và đồng thời thâm nhập vào cả máy tính để bàn của người dùng cuối cũng như các hệ thống di động và nhúng.

    Hệ thống độc quyền

    Ảnh hưởng của UNIX đến sự phát triển của hệ điều hành

    Những ý tưởng đằng sau UNIX có tác động rất lớn đến sự phát triển của hệ điều hành máy tính. Hiện nay, hệ thống UNIX đượ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ử.

    Được sử dụng rộng rãi trong lập trình hệ thống, ngôn ngữ C, ban đầu được tạo ra để phát triển UNIX, đã vượt qua UNIX về mức độ phổ biến. Ngôn ngữ C là ngôn ngữ “khoan dung” đầu tiên không cố gắng áp đặt phong cách lập trình này hay phong cách lập trình khác cho lập trình viên. Xi là người đầu tiên ngôn ngữ cấp cao, cung cấp quyền truy cập vào tất cả các khả năng của bộ xử lý như tham chiếu, bảng, dịch chuyển bit, gia số, v.v. Mặt khác, sự tự do của ngôn ngữ C đã dẫn đến lỗi tràn bộ đệm trong các hàm như vậy thư viện chuẩn C như được và scanf. Kết quả là đã xuất hiện nhiều lỗ hổng khét tiếng, chẳng hạn như lỗ hổng được khai thác bởi sâu Morris nổi tiếng.

    Các nhà phát triển đầu tiên của UNIX đã giúp đưa các nguyên tắc lập trình mô-đun và tái sử dụng vào thực tiễn kỹ thuật.

    UNIX cho phép sử dụng các giao thức TCP/IP trên các máy tính tương đối rẻ tiền, dẫn đến sự phát triển nhanh chóng của Internet. Ngược lại, điều này đã góp phần phát hiện nhanh chóng một số lỗ hổng lớn trong bảo mật, kiến ​​trúc và tiện ích hệ thống UNIX.

    Theo thời gian, các nhà phát triển hàng đầu của UNIX đã phát triển các chuẩn mực văn hóa để phát triển phần mềm và trở nên quan trọng như chính UNIX. ( )

    Vai trò xã hội trong cộng đồng chuyên gia CNTT và vai trò lịch sử

    Các UNIX ban đầu chạy trên các máy tính nhiều người dùng lớn, cũng cung cấp các hệ điều hành độc quyền từ nhà sản xuất phần cứng, chẳng hạn như RSX-11 và VMS hậu duệ của nó. Mặc dù thực tế là, theo một số ý kiến, UNIX khi đó có những nhược điểm so với dữ liệu hệ điều hành (ví dụ: thiếu công cụ cơ sở dữ liệu nghiêm túc), nó a) rẻ hơn và đôi khi miễn phí đối với các tổ chức học thuật b) có thể di chuyển từ thiết bị này sang thiết bị khác và được phát triển bằng ngôn ngữ C di động, ngôn ngữ này “tách rời” việc phát triển chương trình khỏi phần cứng cụ thể. Ngoài ra, trải nghiệm người dùng hóa ra được “tách rời” khỏi phần cứng và nhà sản xuất - một người đã làm việc với UNIX trên VAX có thể dễ dàng làm việc với nó trên 68xxx, v.v.

    Các nhà sản xuất phần cứng vào thời điểm đó thường có thái độ lạnh lùng với UNIX, coi nó như một món đồ chơi và cung cấp hệ điều hành độc quyền của họ cho những công việc nghiêm túc - chủ yếu là DBMS và các ứng dụng kinh doanh dựa trên chúng trong các cấu trúc thương mại. DEC được biết là đã bình luận về vấn đề này liên quan đến VMS của mình. Các tập đoàn đã lắng nghe điều này, nhưng môi trường phi học thuật có mọi thứ cần thiết trong UNIX thường không yêu cầu hỗ trợ chính thức từ nhà sản xuất, tự mình thực hiện và đánh giá cao chi phí thấp và tính di động của UNIX.

    Vì vậy, UNIX có lẽ là hệ điều hành đầu tiên có thể di chuyển sang phần cứng khác.

    Sự phát triển lớn thứ hai của UNIX là sự ra đời của bộ xử lý RISC vào khoảng năm 1989. Thậm chí trước đó, đã có cái gọi là. máy trạm - máy tính cá nhân một người dùng năng lượng cao có đủ bộ nhớ, ổ cứng và một hệ điều hành được phát triển đầy đủ (đa nhiệm, bảo vệ bộ nhớ) để hoạt động với các ứng dụng nghiêm túc, chẳng hạn như CAD. Trong số các nhà sản xuất những chiếc máy như vậy, Sun Microsystems nổi bật, tạo dựng được tên tuổi cho mình.

    Trước khi bộ xử lý RISC ra đời, các trạm này thường sử dụng bộ xử lý Motorola 68xxx, giống như trong máy tính Apple (mặc dù có hệ điều hành tiên tiến hơn của Apple).

    Khoảng năm 1989, việc triển khai thương mại bộ xử lý kiến ​​trúc RISC xuất hiện trên thị trường. Quyết định hợp lý của một số công ty (Sun và những công ty khác) là chuyển UNIX sang các kiến ​​trúc này, điều này ngay lập tức kéo theo việc chuyển giao toàn bộ hệ sinh thái phần mềm UNIX.

    Các hệ điều hành nghiêm túc độc quyền, chẳng hạn như VMS, bắt đầu suy tàn chính xác từ thời điểm này (ngay cả khi có thể chuyển chính hệ điều hành đó sang RISC, mọi thứ phức tạp hơn nhiều với các ứng dụng dành cho nó, mà trong các hệ sinh thái này thường được phát triển trong trình biên dịch chương trình hoặc bằng các ngôn ngữ độc quyền như BLISS ) và UNIX đã trở thành hệ điều hành được sử dụng nhiều nhất máy tính mạnh mẽ trên thế giới.

    Tuy nhiên, tại thời điểm này hệ sinh thái PC đã bắt đầu chuyển sang GUI dưới dạng Windows 3.0. Những ưu điểm to lớn của GUI, chẳng hạn như khả năng hỗ trợ thống nhất cho tất cả các loại máy in, đã được cả nhà phát triển và người dùng đánh giá cao. Điều này làm suy yếu đáng kể vị thế của UNIX trên thị trường - các triển khai như SCO và Interactive UNIX không thể hỗ trợ các ứng dụng Windows. Đối với GUI cho UNIX, được gọi là X11 (có các triển khai khác, ít phổ biến hơn), nó không thể hoạt động hoàn toàn trên PC người dùng thông thường do yêu cầu về bộ nhớ - để hoạt động bình thường, X11 cần 16 MB, trong khi Windows 3.1 thực thi cả Word và Excel đồng thời ở mức 8 MB với hiệu suất vừa đủ (điều này đã trở thành kích thước tiêu chuẩn bộ nhớ PC vào thời điểm đó). Tại giá cao trong bộ nhớ đây là yếu tố hạn chế.

    Thành công của Windows tạo động lực cho dự án nội bộ của Microsoft đặt tên là Windows NT, là API tương thích với Windows, nhưng đồng thời có tất cả các tính năng kiến ​​​​trúc giống nhau của một hệ điều hành nghiêm túc như UNIX - đa nhiệm, bảo vệ toàn bộ bộ nhớ, hỗ trợ máy đa bộ xử lý, quyền truy cập vào tệp và thư mục, ghi nhật ký hệ thống. Windows NT cũng giới thiệu hệ thống tệp nhật ký NTFS, vào thời điểm đó vượt quá khả năng của mọi thứ được cung cấp theo tiêu chuẩn. tập tin UNIX các hệ thống tương tự cho UNIX chỉ là những sản phẩm thương mại riêng biệt với Veritas và các sản phẩm khác.

    Mặc dù ban đầu Windows NT không phổ biến do yêu cầu bộ nhớ cao (cùng 16 MB), nhưng nó đã cho phép Microsoft thâm nhập thị trường các giải pháp máy chủ, chẳng hạn như hệ thống quản lý cơ sở dữ liệu. Nhiều người vào thời điểm đó không tin rằng Microsoft, một công ty phần mềm máy tính để bàn truyền thống, có thể trở thành một tay chơi trong thị trường phần mềm doanh nghiệp vốn đã có những tên tuổi lớn như Oracle và Sun. Thêm vào sự nghi ngờ này là thực tế rằng Hệ quản trị cơ sở dữ liệu của Microsoft- SQL Server - bắt đầu như một phiên bản đơn giản của Sybase SQL Server, được cấp phép từ Sybase và tương thích 99% về mọi mặt khi làm việc với nó.

    Vào nửa sau của những năm 1990 Microsoft bắt đầuđể ép UNIX vào thị trường máy chủ doanh nghiệp.

    Sự kết hợp của các yếu tố trên, cũng như sự sụt giảm mạnh về giá của bộ xử lý video 3D, từ thiết bị chuyên nghiệp đến thiết bị gia đình, về cơ bản đã giết chết khái niệm máy trạm vào đầu những năm 2000.

    Bên cạnh đó, Hệ thống Microsoft dễ quản lý hơn, đặc biệt là trong các trường hợp sử dụng thông thường.

    Nhưng UNIX hiện đã bắt đầu bước phát triển mạnh mẽ thứ ba.

    Ngoài ra, Stallman và các đồng chí của ông, nhận thức đầy đủ rằng các công cụ phát triển không độc quyền là cần thiết cho sự thành công của phần mềm phi công ty, đã phát triển một bộ trình biên dịch cho các ngôn ngữ lập trình khác nhau (gcc), cùng với GNU đã phát triển trước đó. các tiện ích (thay thế các tiện ích UNIX tiêu chuẩn) là cần thiết và đủ gói mạnh mẽ các chương trình dành cho nhà phát triển.

    Để tạo một UNIX hoàn toàn miễn phí, về cơ bản chỉ thiếu nhân hệ điều hành. Và nó được phát triển bởi sinh viên Phần Lan Linus Torvalds. Nhân được phát triển từ đầu và, theo quan điểm của mã nguồn, không phải là một dẫn xuất của BSD hoặc System V (mặc dù các khái niệm đã được mượn, chẳng hạn, Linux có các chức năng namei và bread), tuy nhiên, trong một số về các sắc thái (lệnh gọi hệ thống, giàu /proc, không có sysctk) - thiên về cái sau nhiều hơn.

    • POSIX 1003.2-1992, xác định hành vi của các tiện ích, bao gồm trình thông dịch lệnh;
    • POSIX 1003.1b-1993, bổ sung POSIX 1003.1-1988, chỉ định hỗ trợ cho các hệ thống thời gian thực;
    • POSIX 1003.1c-1995, bổ sung cho POSIX 1003.1-1988, định nghĩa các luồng, còn được gọi là pthread.

    Tất cả các tiêu chuẩn POSIX được biên soạn trong IEEE 1003.

    Vì mục đích tương thích, một số người tạo hệ thống UNIX đã đề xuất sử dụng định dạng ELF của hệ thống SVR4 cho các tệp nhị phân và đối tượng. Một định dạng duy nhất đảm bảo sự tuân thủ hoàn toàn giữa các tệp nhị phân trong cùng một kiến ​​trúc máy tính.

    Cấu trúc thư mục của một số hệ thống, đặc biệt là GNU/Linux, được xác định trong Tiêu chuẩn phân cấp hệ thống tập tin. Tuy nhiên, loại tiêu chuẩn này đang gây tranh cãi ở nhiều khía cạnh, và ngay cả trong cộng đồng GNU/Linux, nó còn lâu mới trở nên phổ biến.

    Các lệnh UNIX tiêu chuẩn

    • Tạo và điều hướng các tập tin và thư mục: touch , , , , , , pwd , , mkdir , rmdir , find , ;
    • Xem và chỉnh sửa các tập tin: more , less , , ex, , emacs ;
    • Xử lý văn bản: echo, cat, grep, sắp xếp, uniq, sed, awk, tee, head, tail, cut, tách, printf;
    • So sánh tập tin: comm, cmp, diff, patch;
    • Các tiện ích shell khác nhau: có, test, xargs, expr;
    • Quản trị hệ thống: chmod , chown , , , , who , , mount , umount ;
    • Truyền thông: thư, telnet, ftp, ngón tay, rsh, ssh;
    • Các shell lệnh: bash, csh, ksh, tcsh, zsh;
    • Làm việc với mã nguồn và mã đối tượng: cc, gcc, ld, , yacc, bison, lex, flex, ar, ranlib, make;
    • Nén và lưu trữ: nén, giải nén, gzip, gunzip, tar
    • Làm việc với các tệp nhị phân: , chuỗi

    Dưới đây là danh sách 60 lệnh từ phần 1 của phiên bản UNIX đầu tiên:

    • b, bas, bcd, khởi động
    • mèo, chdir, kiểm tra, chmod, chown, cmp,
    • ngày , db, dbppt, , , dsw, dtf,
    • thư, tin nhắn, mkdir, mkfs, mount,
    • rew, rkd, rkf, rkl, , rmdir, roff

    Ghi chú

    Xem thêm