Unix

Bách khoa toàn thư mở Wikipedia
Bước tới điều hướng Bước tới tìm kiếm
Unix
Unix history-simple.svg
Sự tiến hóa của Unix và các hệ điều hành tương tự Unix
Nhà phát triểnKen Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, và Joe OssannaBell Labs
Được viết bằngChợp ngữ
Họ hệ điều hànhUnix
Tình trạng
hoạt động
Đang phát triển
Kiểu mã nguồnBan đầu là mã nguồn đóng, hiện tại vài dự án Unix thuộc họ (BSDIllumos) là mã nguồn mở.
Phát hành lần đầuBắt đầu phát triển năm 1969
Hướng dẫn đầu tiên được xuất bản nội bộ vào Tháng 11, 1971 (1971-11)[1]
Được công bố bên ngoài Bell Labs vào Tháng 10, 1973 (1973-10)[2]
Có hiệu lực
trong
Tiếng Anh
Loại hạt nhânKhác nhau Monolithic, Microkernel, lai
Giao diện
mặc định
Giao diện dòng lệnhGiao diện người dùng đồ họa (Hệ thống X Window)
Giấy phépĐa dạng; một số là bản quyền thương mai, một số khác là tự do/phần mềm nguồn mở
Website chính thứcunix.org

Unix (/ˈjnɪks/; được đăng ký nhãn hiệu là UNIX) là một họ hệ điều hành máy tính đa nhiệm, đa người dùng được viết vào những năm 19601970 do một số nhân viên của Bell Labs thuộc AT&T bao gồm Ken Thompson, Dennis RitchieDouglas McIlroy và một số người khác.[3]

Ban đầu dự định sử dụng bên trong Bell System, AT&T đã cấp phép Unix cho các bên ngoài vào cuối những năm 1970, dẫn đến một loạt các biến thể Unix học thuật và thương mại từ các nhà cung cấp bao gồm University of California, Berkeley (BSD), Microsoft (Xenix), Sun Microsystems (SunOS/Solaris), HP/HPE (HP-UX), và IBM (AIX). Đầu những năm 90, AT&T đã bán quyền với Unix cho Novell, sau đó bán hoạt động kinh doanh Unix cho Santa Cruz Operation (SCO) năm 1995.[4] Thương hiệu UNIX được chuyển cho The Open Group, một tập đoàn công nghiệp trung lập được thành lập năm, cho phép việc sử dụng nhãn hiệu cho các hệ điều hành được chứng nhận tuân thủ Single UNIX Specification (SUS). Tuy nhiên, Novell tiếp tục sở hữu bản quyền Unix, mà phán quyết SCO Group, Inc. v. Novell, Inc. của toà án (2010) xác nhận.

Các hệ thống Unix được đặc trưng bởi một thiết kế mô-đun đôi khi được gọi là "Triết lý Unix", nghĩa là hệ điều hành cung cấp một tập hợp các công cụ đơn giản, và mỗi công cụ chỉ thực hiện những chức năng giới hạn và được định nghĩa rõ ràng.[5] Một hệ thống file hợp nhất (Unix filesystem) và một cơ chế giao tiếp giữa các tiến trình được gọi là "pipes" đóng vai trò là phương tiện giao tiếp chính,[3] và một shell (Unix shell) được sử dụng để kết hợp các công cụ để thực hiện các quy trình công việc phức tạp.

Unix tự phân biệt với các phiên bản trước là hệ điều hành di động đầu tiên: gần như toàn bộ hệ điều hành được viết bằng ngôn ngữ lập trình C, cho phép Unix hoạt động trên nhiều nền tảng.[6]

Unix có thể chạy trên nhiều loại máy tính khác nhau, từ những máy tính cá nhân cho đến các máy chủ dịch vụ. Nó là một hệ điều hành đa nhiệm (có thể cùng lúc thực hiện nhiều nhiệm vụ) hỗ trợ một cách lý tưởng đối với các ứng dụng nhiều người dùng.

Vì Bell Laboratories bị cấm không cho phép tiếp thị Unix vì lệnh chống độc quyền đối với AT&T nên Unix đã được cung cấp miễn phí cho các trường đại học trên toàn Bắc Mỹ từ năm 1976. Năm 1979 Đại học California tại Berkeley đã xây dựng một phiên bản của Unix dùng cho các máy tính VAX. Sau khi đã được ưa thích trong các lĩnh vực công nghệ, AT&T đã giành được quyền tiếp thị đối với Unix và đã cho ra đời System V vào năm 1983. Cho đên nay Unix vẫn được sử dụng rất rộng rãi trong thị trường dành cho máy chủ. Đã có nhiều phiên bản phát triển khác nhau, trong đó có Linux.

Unix là một trong những hệ điều hành 64 bit đầu tiên. Hiện nay Unix được sử dụng bởi nhiều công ty tập đoàn lớn trên thế giới vì mức độ bảo mật của nó tương đối cao.

Tổng quan[sửa | sửa mã nguồn]

Version 7 Unix, Research Unix khởi tổ của tất cả hệ thống Unix hiện đại

Unix ban đầu có nghĩa là một nền tảng thuận tiện cho các lập trình viên phát triển phần mềm chạy trên nó và trên các hệ thống khác, thay vì cho những người không lập trình.[7][8] Hệ thống ngày càng lớn hơn khi hệ điều hành bắt đầu lan rộng trong giới học thuật và khi người dùng thêm các công cụ của riêng họ vào hệ thống và chia sẻ chúng với các đồng nghiệp.[9]

Lúc đầu, Unix không được thiết kế để có thể di động[6] hoặc đa tác vụ.[10] Sau đó, Unix dần có được tính di động, khả năng đa tác vụ và đa người dùng trong cấu hình chia sẻ thời gian. Các hệ thống Unix được đặc trưng bởi các khái niệm khác nhau:việc sử dụng văn bản thuần túy để lưu trữ dữ liệu; một hệ thống file phân cấp; xử lý các thiết bị và một số loại giao tiếp giữa các tiến trình (IPC) dưới dạng tệp; và việc sử dụng một số lượng lớn các công cụ phần mềm, các chương trình nhỏ có thể được kết hợp với nhau thông qua giao diện dòng lệnh sử dụng các pipes, trái ngược với việc sử dụng một chương trình nguyên khối duy nhất bao gồm tất cả các chức năng tương tự. Những khái niệm này được gọi chung là "triết lý Unix". Brian KernighanRob Pike tóm tắt điều này trong The Unix Programming Environment là "ý tưởng rằng sức mạnh của một hệ thống đến từ các mối quan hệ giữa các chương trình hơn là từ chính các chương trình".[11]

Đến đầu những năm 1980, người dùng bắt đầu thấy Unix là một hệ điều hành phổ quát tiềm năng, phù hợp với các máy tính thuộc mọi quy mô.[12][13] Môi trường Unix và mô hình chương trình client–server là các yếu tố thiết yếu trong sự phát triển của Internet và định hình lại điện toán làm trung tâm trong các mạng thay vì trong các máy tính riêng lẻ.

Cả Unix và ngôn ngữ lập trình C đều được AT&T phát triển và phân phối cho các tổ chức chính phủ và học thuật, dẫn đến cả hai được port đến nhiều họ máy hơn bất kỳ hệ điều hành nào khác.

Hệ điều hành Unix bao gồm nhiều thư viện và tiện ích cùng với chương trình điều khiển chính, kernel. Hạt nhân cung cấp các dịch vụ để khởi động và dừng chương trình, xử lý hệ thống tệp và các tác vụ "cấp thấp" phổ biến khác mà hầu hết các chương trình chia sẻ và lên lịch truy cập để tránh xung đột khi các chương trình cố gắng truy cập cùng một tài nguyên hoặc thiết bị. Để làm trung gian truy cập như vậy, kernel có các quyền đặc biệt, được phản ánh trong sự phân biệt không gian kernel với không gian người dùng, sau này là một lĩnh vực ưu tiên nơi hầu hết các chương trình ứng dụng hoạt động.

Lịch sử[sửa | sửa mã nguồn]

Ken Thompson (ngồi) và Dennis Ritchie cùng làm việc trên một máy tính PDP-11

Nguồn gốc của Unix bắt nguồn từ giữa những năm 1960 khi Massachusetts Institute of Technology, Bell Labs, và General Electric cùng phát triển Multics, một hệ điều hành chia sẻ thời gian cho mainframe GE-645.[14] Multics có một số đổi mới, nhưng cũng có vấn đề nghiêm trọng. Thất vọng vì quy mô và sự phức tạp của Multics, nhưng không phải vì mục tiêu của nó, các nhà nghiên cứu cá nhân tại Bell Labs đã bắt đầu rút khỏi dự án. Những người cuối cùng rời đi là Ken Thompson, Dennis Ritchie, Douglas McIlroy, và Joe Ossanna,[10] những người quyết định thực hiện lại trải nghiệm của họ trong một dự án mới với quy mô nhỏ hơn. Hệ điều hành mới này ban đầu không có sự hỗ trợ của tổ chức và cũng không có tên.

Hệ điều hành mới là một hệ thống đơn tác vụ.[10] Năm 1970, nhóm đặt ra tên Unics viết tắt của Uniplexed Information and Computing Service (phát âm là "eunuchs"), như một cách chơi chữ của Multics, viết tắt của Multiplexed Information and Computer Services. Brian Kernighan lấy tín dụng cho ý tưởng này, nhưng nói thêm rằng "không ai có thể nhớ" nguồn gốc tên gọi của Unix.[15] Dennis Ritchie,[10] Doug McIlroy,[1]Peter G. Neumann[16] also credit Kernighan.

Hệ điều hành ban đầu được viết bằng hợp ngữ, nhưng năm 1973, Version 4 Unix đã được viết lại bằng C.[10] Tuy nhiên Version 4 Unix vẫn có nhiều mã phụ thuộc PDP-11 và không phù hợp để porting. Port đầu tiên cho nền tảng khác được thực hiện năm năm sau (1978) cho Interdata 8/32.[17]

Bell Labs đã sản xuất một số phiên bản Unix được gọi chung là "Research Unix". Năm 1975, giấy phép mã nguồn đầu tiên của UNIX đã được bán cho Donald B. Gillies của khoa Khoa học máy tính thuộc trường University of Illinois at Urbana–Champaign (UIUC).[18] Sinh viên tốt nghiệp UIUC Greg Chesson, người đã làm việc về hạt nhân UNIX tại Bell Labs, là đóng góp trong việc đàm phán các điều khoản của giấy phép.[19]

Vào cuối những năm 1970 và đầu những năm 1980, ảnh hưởng của Unix trong giới học thuật đã dẫn đến việc áp dụng (BSDSystem V) trên quy mô lớn bởi các công ty khởi nghiệp thương mại, bao gồm Sequent, HP-UX, SunOS/Solaris, AIX, và Xenix. Vào cuối những năm 1980, AT&T Unix System LaboratoriesSun Microsystems đã phát triển System V Release 4 (SVR4), sau đó được nhiều nhà cung cấp Unix thương mại chấp nhận.

Vào những năm 1990, các hệ thống tương tự Unix và Unix đã trở nên phổ biến và trở thành hệ điều hành được lựa chọn cho hơn 90% trong số 500 siêu máy tính nhanh nhất thế giới,[20] do các bản phân phối BSDLinux được phát triển thông qua sự hợp tác của một mạng lưới lập trình viên trên toàn thế giới. Năm 2000, Apple đã phát hành Darwin, cũng là một hệ thống Unix, trở thành cốt lõi của hệ điều hành Mac OS X, sau này được đổi tên thành macOS.[21]

Hệ điều hành Unix được sử dụng rộng rãi trong các servers, workstations, và thiết bị di động hiện đại.[22].

Chuẩn hoá[sửa | sửa mã nguồn]

Common Desktop Environment (CDE), một phần của sáng kiến COSE

Vào cuối những năm 1980, một nỗ lực tiêu chuẩn hóa hệ điều hành mở hiện được gọi là POSIX đã cung cấp một đường cơ sở chung cho tất cả các hệ điều hành; IEEE dựa trên POSIX xung quanh cấu trúc chung của các biến thể cạnh tranh chính của hệ thống Unix, xuất bản tiêu chuẩn POSIX đầu tiên vào năm 1988. Đầu những năm 1990, một nỗ lực riêng biệt nhưng rất giống nhau đã được bắt đầu bởi một tập đoàn công nghiệp, Common Open Software Environment (COSE) sáng kiến, cuối cùng đã trở thành Single UNIX Specification (SUS) quản lý bởi The Open Group. Bắt đầu từ năm 1998, Open Group và IEEE đã thành lập Austin Group, để cung cấp định nghĩa chung về POSIX và Single UNIX Specification, đến năm 2008, đã trở thành Open Group Base Specification.

Năm 1999, trong nỗ lực hướng tới khả năng tương thích, một số nhà cung cấp hệ thống Unix đã đồng ý về Executable and Linkable Format (ELF) trên SVR4 của SVR4 làm tiêu chuẩn cho các tệp mã nhị phân và mã đối tượng. Định dạng chung cho phép khả năng tương thích nhị phân đáng kể giữa các hệ thống Unix khác nhau hoạt động trên cùng một kiến ​​trúc CPU.

Filesystem Hierarchy Standard được tạo để cung cấp bố cục thư mục tham chiếu cho các hệ điều hành tương tự Unix; nó chủ yếu được sử dụng trong Linux.

Thành phần[sửa | sửa mã nguồn]

Hệ thống Unix bao gồm một số thành phần ban đầu được đóng gói cùng nhau. Bằng cách bao gồm môi trường phát triển, thư viện, tài liệu và mã nguồn di động, có thể sửa đổi cho tất cả các thành phần này, ngoài hạt nhân của hệ điều hành, Unix là một hệ thống phần mềm độc lập. Đây là một trong những lý do chính khiến nó nổi lên như một công cụ dạy và học quan trọng và có ảnh hưởng rộng rãi như vậy.

Việc bao gồm các thành phần này không làm cho hệ thống trở nên lớn - bản phân phối V7 UNIX ban đầu, bao gồm các bản sao của tất cả các tệp nhị phân đã biên dịch cộng với tất cả mã nguồn và tài liệu chỉ chiếm dưới 10 MB và lưu trữ trên một băng từ chín đoạn duy nhất. Tài liệu in, sắp chữ từ các nguồn trực tuyến, được chứa trong hai tập.

Tên và vị trí hệ thống tệp của các thành phần Unix đã thay đổi đáng kể trong lịch sử của hệ thống. Tuy nhiên, việc triển khai V7 được nhiều người coi là[ai nói?] để có cấu trúc ban đầu chính tắc:

  • Kernel – mã nguồn trong /usr/sys, bao gồm các thành phần con (sub-components):
    • conf – configuration and machine-dependent parts, including boot code
    • dev – device drivers for control of hardware (and some pseudo-hardware)
    • sys – operating system "kernel", handling memory management, process scheduling, system calls, etc.
    • h – header files, defining key structures within the system and important system-specific invariables
  • Development environment – early versions of Unix contained a development environment sufficient to recreate the entire system from source code:
    • cc – C language compiler (first appeared in V3 Unix)
    • as – machine-language assembler for the machine
    • ld – linker, for combining object files
    • lib – object-code libraries (installed in /lib or /usr/lib). libc, the system library with C run-time support, was the primary library, but there have always been additional libraries for things such as mathematical functions (libm) or database access. V7 Unix introduced the first version of the modern "Standard I/O" library stdio as part of the system library. Later implementations increased the number of libraries significantly.
    • make – build manager (introduced in PWB/UNIX), for effectively automating the build process
    • include – header files for software development, defining standard interfaces and system invariants
    • Other languages – V7 Unix contained a Fortran-77 compiler, a programmable arbitrary-precision calculator (bc, dc), and the awk scripting language; later versions and implementations contain many other language compilers and toolsets. Early BSD releases included Pascal tools, and many modern Unix systems also include the GNU Compiler Collection as well as or instead of a proprietary compiler system.
    • Other tools – including an object-code archive manager (ar), symbol-table lister (nm), compiler-development tools (e.g. lex & yacc), and debugging tools.
  • Commands – Unix makes little distinction between commands (user-level programs) for system operation and maintenance (e.g. cron), commands of general utility (e.g. grep), and more general-purpose applications such as the text formatting and typesetting package. Nonetheless, some major categories are:
    • sh – the "shell" programmable command-line interpreter, the primary user interface on Unix before window systems appeared, and even afterward (within a "command window").
    • Utilities – the core toolkit of the Unix command set, including cp, ls, grep, find and many others. Subcategories include:
      • System utilities – administrative tools such as mkfs, fsck, and many others.
      • User utilities – environment management tools such as passwd, kill, and others.
    • Document formatting – Unix systems were used from the outset for document preparation and typesetting systems, and included many related programs such as nroff, troff, tbl, eqn, refer, and pic. Some modern Unix systems also include packages such as TeXGhostscript.
    • Graphics – the plot subsystem provided facilities for producing simple vector plots in a device-independent format, with device-specific interpreters to display such files. Modern Unix systems also generally include X11 as a standard windowing system and GUI, and many support OpenGL.
    • Communications – early Unix systems contained no inter-system communication, but did include the inter-user communication programs mail and write. V7 introduced the early inter-system communication system UUCP, and systems beginning with BSD release 4.1c included TCP/IP utilities.
  • Documentation – Unix là hệ điều hành đầu tiên bao gồm tất cả các tài liệu trực tuyến của nó ở dạng có thể đọc được bằng máy. Các tài liệu bao gồm:
    • man – trang hướng dẫn cho mỗi lệnh, thành phần thư viện, lời gọi hệ thống, file tiêu đề, vv
    • doc – tài liệu dài hơn chi tiết các hệ thống con chính, chẳng hạn như ngôn ngữ C và troff

Sự va chạm[sửa | sửa mã nguồn]

Ken ThompsonDennis Ritchie, principal developers of Research Unix
Photo from USENIX 1984, including Dennis Ritchie (center)
Plan 9 from Bell Labs extends Unix design principles and was developed as a successor to Unix.

Hệ thống Unix đã có ảnh hưởng đáng kể đến các hệ điều hành khác. It achieved its reputation by its interactivity, by providing the software at a nominal fee for educational use, by running on inexpensive hardware, and by being easy to adapt and move to different machines. Unix was originally written in assembly language, but was soon rewritten in C, a high-level programming language.[23] Although this followed the lead of MulticsBurroughs, it was Unix that popularized the idea.

Unix had a drastically simplified file model compared to many contemporary operating systems: treating all kinds of files as simple byte arrays. The file system hierarchy contained machine services and devices (such as printers, terminals, or disk drives), providing a uniform interface, but at the expense of occasionally requiring additional mechanisms such as ioctl and mode flags to access features of the hardware that did not fit the simple "stream of bytes" model. The Plan 9 operating system pushed this model even further and eliminated the need for additional mechanisms.

Unix also popularized the hierarchical file system with arbitrarily nested subdirectories, originally introduced by Multics. Other common operating systems of the era had ways to divide a storage device into multiple directories or sections, but they had a fixed number of levels, often only one level. Several major proprietary operating systems eventually added recursive subdirectory capabilities also patterned after Multics. DEC's RSX-11M's "group, user" hierarchy evolved into VMS directories, CP/M's volumes evolved into MS-DOS 2.0+ subdirectories, and HP's MPE group.account hierarchy and IBM's SSPOS/400 library systems were folded into broader POSIX file systems.

Making the command interpreter an ordinary user-level program, with additional commands provided as separate programs, was another Multics innovation popularized by Unix. The Unix shell used the same language for interactive commands as for scripting (shell scripts – there was no separate job control language like IBM's JCL). Since the shell and OS commands were "just another program", the user could choose (or even write) their own shell. New commands could be added without changing the shell itself. Unix's innovative command-line syntax for creating modular chains of producer-consumer processes (pipelines) made a powerful programming paradigm (coroutines) widely available. Many later command-line interpreters have been inspired by the Unix shell.

A fundamental simplifying assumption of Unix was its focus on newline-delimited text for nearly all file formats. There were no "binary" editors in the original version of Unix – the entire system was configured using textual shell command scripts. The common denominator in the I/O system was the byte – unlike "record-based" file systems. The focus on text for representing nearly everything made Unix pipes especially useful and encouraged the development of simple, general tools that could be easily combined to perform more complicated ad hoc tasks. The focus on text and bytes made the system far more scalable and portable than other systems. Over time, text-based applications have also proven popular in application areas, such as printing languages (PostScript, ODF), and at the application layer of the Internet protocols, e.g., FTP, SMTP, HTTP, SOAP, and SIP.

Unix popularized a syntax for regular expressions that found widespread use. The Unix programming interface became the basis for a widely implemented operating system interface standard (POSIX, see above). The C programming language soon spread beyond Unix, and is now ubiquitous in systems and applications programming.

Early Unix developers were important in bringing the concepts of modularityreusability into software engineering practice, spawning a "software tools" movement. Over time, the leading developers of Unix (and programs that ran on it) established a set of cultural norms for developing software, norms which became as important and influential as the technology of Unix itself; this has been termed the Unix philosophy.

The TCP/IP networking protocols were quickly implemented on the Unix versions widely used on relatively inexpensive computers, which contributed to the Internet explosion of worldwide real-time connectivity, and which formed the basis for implementations on many other platforms.

The Unix policy of extensive on-line documentation and (for many years) ready access to all system source code raised programmer expectations, and contributed to the launch of the free software movement in 1983.

Unix tự do và tương tự Unix[sửa | sửa mã nguồn]

Console screenshots of Debian (top, a popular Linux distribution) and FreeBSD (bottom, a popular Unix-like operating system)

Năm 1983, Richard Stallman giới thiệu dự án GNU (viết tắt của "GNU's Not Unix"), một nỗ lực đầy tham vọng để tạo ra một hệ thống tương tự Unix tự do; "tự do" theo nghĩa là mọi người nhận được một bản sao sẽ được sử dụng, nghiên cứu, sửa đổi và phân phối lại nó tự do. Dự án phát triển nhân riêng của dự án GNU, GNU Hurd, chưa tạo ra hạt nhân hoạt động, nhưng vào năm 1991, Linus Torvalds đã phát hành nhân Linux dưới dạng phần mềm tự do theo GNU General Public License. Ngoài việc sử dụng chúng trong hệ điều hành GNU, nhiều gói GNU - chẳng hạn như GNU Compiler Collection (và phần còn lại của GNU toolchain), GNU C libraryGNU core utilities –cũng đã đóng vai trò trung tâm trong các hệ thống Unix miễn phí khác.

Các bản phân phối Linux, bao gồm nhân Linux và các bộ phần mềm tương thích lớn đã trở nên phổ biến cả với người dùng cá nhân và trong doanh nghiệp. Phân phối phổ biến bao gồm Red Hat Enterprise Linux, Fedora, SUSE Linux Enterprise, openSUSE, Debian GNU/Linux, Ubuntu, Linux Mint, Mandriva Linux, Slackware Linux, Arch LinuxGentoo.[24]

Một dẫn xuất tự do của BSD Unix, 386BSD, được phát hành năm 1992 và dẫn đến các dự án NetBSDFreeBSD. Với việc giải quyết vụ kiện năm 1994 chốnngg lại University of California and Berkeley Software Design Inc. (USL v. BSDi) của Unix System Laboratories, đã làm rõ rằng Berkeleycó quyền phân phối BSD Unix tự do nếu muốn. Từ đó, BSD Unix đã được phát triển trong một số nhánh sản phẩm khác nhau, bao gồm OpenBSDDragonFly BSD.

Linux và BSD đang ngày càng đáp ứng nhu cầu thị trường theo truyền thống được phục vụ bởi các hệ điều hành Unix độc quyền, cũng như mở rộng sang các thị trường mới như máy tính để bàn và thiết bị di động và thiết bị nhúng. Do thiết kế mô-đun của mô hình Unix, việc chia sẻ các thành phần là tương đối phổ biến; do đó, hầu hết hoặc tất cả các hệ thống tương tự Unix và Unix bao gồm ít nhất một số mã BSD và một số hệ thống cũng bao gồm các tiện ích GNU trong bản phân phối của chúng.

Trong một cuộc phỏng vấn năm 1999, Dennis Ritchie đã nói lên ý kiến ​​của mình rằng các hệ điều hành LinuxBSD là sự tiếp nối cơ sở của thiết kế Unix và là dẫn xuất của Unix:[25]

Tôi nghĩ rằng hiện tượng Linux khá thú vị, bởi vì nó thu hút rất mạnh trên cơ sở mà Unix cung cấp. Linux dường như là một trong những công cụ phái sinh Unix trực tiếp lành mạnh nhất, mặc dù cũng có các hệ thống BSD khác nhau cũng như các dịch vụ chính thức hơn từ các nhà sản xuất máy trạm và máy tính lớn.

Trong cùng một cuộc phỏng vấn, ông nói rằng ông coi cả Unix và Linux là "sự tiếp nối các ý tưởng đã được Ken và tôi cùng nhiều người khác bắt đầu từ nhiều năm trước".[25]

OpenSolaris là đối tác nguồn mở với Solaris phát triển bởi Sun Microsystems, bao gồm một hạt nhân được cấp phép CDDLkhông gian người dùng chủ yếu là GNU. Tuy nhiên, Oracle đã ngừng dự án sau khi họ mua lại Sun, điều này đã khiến một nhóm cựu nhân viên của Sun và các thành viên của cộng đồng OpenSolaris đã phân nhánh OpenSolaris vào hạt nhân illumos.Kể từ năm 2014, illumos vẫn là công cụ phái sinh System V nguồn mở duy nhất đang hoạt động.

ARPANET[sửa | sửa mã nguồn]

Tháng 5 năm 1975, RFC 681 đã mô tả sự phát triển của Network Unix bởi Center for Advanced Computation tại University of Illinois at Urbana–Champaign. Hệ thống này được cho là "trình bày một số khả năng thú vị như một ARPANET mini-host". Vào thời điểm đó, Unix yêu cầu giấy phép từ Bell Laboratories với giá 20.000 USD rất đắt đối với người dùng không phải là sinh viên đại học, trong khi giấy phép giáo dục chỉ có giá 150 USD.Cần lưu ý rằng Bell đã "mở đề xuất" cho một giấy phép ARPANET-wide.

Các tính năng cụ thể có lợi là các phương tiện xử lý cục bộ, trình biên dịch, trình soạn thảo, hệ thống chuẩn bị tài liệu, hệ thống file hiệu quả và kiểm soát truy cập, dung lượng có thể gắn và không thể gắn được, xử lý thống nhất các thiết bị ngoại vi như các file đặc biệt, tích hợp chương trình điều khiển mạng (NCP) bên trong Unix file system, xử lý các kết nối mạng như các file đặc biệt có thể được truy cập thông qua các lời gọi I/O Unix tiêu chuẩn, đóng tất cả các file khi thoát khỏi chương trình và quyết định "mong muốn giảm thiểu lượng mã được thêm vào nhân Unix cơ bản ".

Thương hiệu[sửa | sửa mã nguồn]

Workstation HP9000 đang chạy HP-UX, một hệ điều hành Unix được chứng nhận

Tháng 10 năm 1993, Novell, công ty sở hữu quyền đối với mã nguồn Unix System V vào thời điểm đó, đã chuyển nhượng các nhãn hiệu của Unix cho X/Open Company (bây giờ là The Open Group),[26] và vào năm 1995, đã bán các hoạt động kinh doanh liên quan cho Santa Cruz Operation (SCO).[27] Liệu Novell có bán bản quyền cho phần mềm thực sự hay không là chủ đề của một vụ kiện liên bang vào năm 2006, SCO kiện Novell, với kết quả Novell thắng. Bản án đã được kháng cáo, nhưng vào ngày 30 tháng 8 năm 2011, Tòa phúc thẩm Hoa Kỳ đối với Vòng thứ mười đã công nhận các quyết định xét xử, kết thúc vụ án.[28] Nhà cung cấp Unix SCO Group Inc. đã cáo buộc Novell về slander of title.

Chủ sở hữu hiện tại của thương hiệu UNIX là The Open Group, một consortium công nghiệp. Chỉ những hệ thống hoàn toàn tuân thủ và được chứng nhận Single UNIX Specification mới đủ điều kiện là "UNIX" (những hệ thống khác được gọi là "tương tự Unix").

Theo quy định của The Open Group, thuật ngữ "UNIX" đề cập nhiều đến một loại hệ điều hành hơn là một triển khai cụ thể của một hệ điều hành; những hệ điều hành đáp ứng Single UNIX Specification của The Open Group sẽ có thể mang nhãn hiệu UNIX 98 hoặc UNIX 03 ngày nay, sau khi nhà cung cấp hệ điều hành trả một khoản phí chứng nhận đáng kể và tiền bản quyền thương hiệu hàng năm cho The Open Group.[29] Các hệ thống đã được cấp phép sử dụng nhãn hiệu UNIX bao gồm AIX,[30] EulerOS,[31] HP-UX,[32] Inspur K-UX,[33] IRIX,[34] macOS,[35] Solaris,[36] Tru64 UNIX (trước đây là "Digital UNIX", hay OSF/1),[37]z/OS.[38] Đáng chú ý, EulerOS và Inspur K-UX là các bản phân phối Linux được chứng nhận tuân thủ UNIX 03.[39][40]

Đôi khi một đại diện như Un*x, *NIX, hay *N?X được sử dụng để chỉ ra tất cả các hệ điều hành tương tự như Unix. Điều này xuất phát từ việc sử dụng dấu hoa thị (*) và các ký tự dấu hỏi làm chỉ báo ký tự đại diện trong nhiều tiện ích. Ký hiệu này cũng được sử dụng để mô tả các hệ thống tương tự Unix khác chưa đáp ứng các yêu cầu về nhãn hiệu UNIX từ Open Group.

The Open Group yêu cầu UNIX luôn được sử dụng như một tính từ theo sau bởi một thuật ngữ chung chung như hệ thống để giúp tránh việc tạo ra một nhãn hiệu chung chung.

Unix là định dạng ban đầu, nhưng việc sử dụng UNIX vẫn còn phổ biến vì nó đã từng được sắp chữ ở dạng chữ thường (Unix). Theo Dennis Ritchie, khi trình bày bản gốc Unix cho Operating Systems Symposium lần 3 của American Association for Computing Machinery (ACM), "we had a new typesetter and troff had just been invented and we were intoxicated by being able to produce small caps".[41] Nhiều hệ điều hành tiền nhiệm và đương thời sử dụng toàn bộ chữ hoa, vì vậy nhiều người viết tên bằng chữ hoa do thói quen ép buộc. Nó không phải là một từ viết tắt.[42]

Tên nhãn hiệu có thể được đăng ký bởi các chủ thể khác nhau ở các quốc gia khác nhau và luật nhãn hiệu ở một số quốc gia cho phép cùng một tên nhãn hiệu được kiểm soát bởi hai chủ thể khác nhau nếu mỗi chủ thể sử dụng nhãn hiệu trong các danh mục dễ phân biệt. Kết quả là Unix đã được sử dụng làm thương hiệu cho các sản phẩm khác nhau bao gồm giá sách, bút mực, keo đóng chai, tã giấy, máy sấy tóc và hộp đựng thực phẩm.[43]

Một số dạng số nhiều của Unix được sử dụng một cách ngẫu nhiên để chỉ nhiều nhãn hiệu của các hệ thống Unix và tương tự Unix.Phổ biến nhất là Unixes, nhưng Unices, coi Unix như một danh từ Latinh của phân thức thứ ba, cũng phổ biến. Dạng số nhiều giả Anglo-Saxon Unixen không phổ biến, mặc dù thỉnh thoảng vẫn thấy. Sun Microsystems, nhà phát triển của biến thể Solaris, đã khẳng định rằng thuật ngữ Unix tự nó là số nhiều, tham chiếu đến nhiều cách triển khai của nó.[44]

BSD[sửa | sửa mã nguồn]

Từ năm 1977, Computer Systems Research Group (CSRG) của trường đại học California, Berkeley được quyền sử dụng code của UNIX để phát triển ra nhãn hiệu UNIX khác là BSD (Berkeley Software Distribution). BSD phát triển từ version 1 đến version cuối cùng 4.4 năm 1992.

Khi AT&T bắt đầu khai thác UNIX như sản phẩm thương mại thì tiền bản quyền UNIX tăng lên nhanh chóng làm cho Berkeley phải đặt kế hoạch thay mã nguồn của AT&T bằng mã riêng. Việc này tốn rất nhiều thời gian và không kịp hoàn thành khi Berkeley bị ngưng tài trợ nghiên cứu hệ điều hành, CSRG giải tán.

BSD UNIX và AT&T UNIX là hai dòng chính của UNIX. BSD giúp cho UNIX trở nên phổ biến và có nhiều đóng góp về mặt kỹ thuật như: csh, termcap, curses, vi, TCP/IP socket, long file name, symbolic link.

Các hãng phát triển khác[sửa | sửa mã nguồn]

  • Workstation: Trong thập niên 1980, các hãng khác (chủ yếu là các hãng chế tạo workstation) cũng thực hiện các UNIX của riêng họ dựa vào bản quyền của AT&T. Đó là Sun với SunOS, DEC với Ultrix, HP với HP-UX, IBM với AIX, Silicon Graphics với IRIX, Microsoft với Xenix, SCO với SCO-Xenix, SCO-UNIX. Năm 1985, Sun giới thiệu NFS.
  • Free UNIX: Ngoài ra còn có những bản UNIX không cần license chạy trên PC, trong đó thường gặp nhất là Linux. Linux nguyên thủy được viết bởi Linus TorvaldsHelsinki, bây giờ được phát triển tiếp bởi một cộng đồng rất đông.
  • Một bản UNIX free khác là FreeBSD, bắt nguồn từ BSD.

Các version khác nhau của UNIX làm cho UNIX trở nên không thống nhất. Do đó, các tiêu chuẩn được hình thành để phần nào chuẩn hoá UNIX. Các tiêu chuẩn đó thường là do một nhóm các hãng liên minh lại đặt ra, ví dụ OSF, X/Open. IEEE đưa ra POSIX (Portable Operating System Interface). Sau khi tham gia OSF, DEC ngừng phát triển Ultrix, chỉ làm ra UNIX theo tiêu chuẩn OSF/1 của OSF.

Năm 1992, AT&T bán quyền khai thác UNIX cho Novell. Novell được quyền thu tiền bản quyền trên mỗi bản UNIX của các hãng khác bán ra. Novell phát hành sản phẩm UNIX tên là UnixWare. Cuối năm 1993, Novell nhường quyền khai thác nhãn hiệu UNIX lại cho X/Open. UnixWare được bán lại cho SCO.

Thiết kế[sửa | sửa mã nguồn]

Lịch sử phát triển gắn chặt với ngôn ngữ C. Ngôn ngữ C được thiết kế cho UNIX và được thực hiện đầu tiên trên UNIX. Hầu hết các chương trình ứng dụng trên UNIX được viết bằng C.

Đa nền tảng[sửa | sửa mã nguồn]

Đặc tính đa nền tảng có từ rất sớm, gần như từ đầu. Được thực hiện trên hầu hết các máy từ 16-bit đến 64-bit.

64-bit[sửa | sửa mã nguồn]

Mặc dù hầu hết các bộ xử lý mới ngày nay có hoặc sẽ có kiến trúc 64-bit, các hệ điều hành lại chậm chân hơn. Một trong những lý do là chưa có nhiều chương trình ứng dụng đòi hỏi khả năng 64-bit. Xu hướng hiện nay của các hệ điều hành nói chung, trong đó có UNIX là cung cấp khả nâng 64-bit để nâng cao thành tích của các chương trình ứng dụng.

Khả năng 64-bit gồm có:

  • File system lớn hơn hạn chế 4GB của 32-bit. Trong khía cạnh này sự thay đổi từ 32-bit lên 64-bit không lớn đối với hệ điều hành và chương trình ứng dụng.
  • File lớn: Thay đổi này ảnh hưởng đáng kể đến ứng dụng vì vấn đề tương thích binary code.
  • 64-bit networking: NFS version 3 dùng số 64-bit để chỉ kích thước file. Kích thước file có thể lên đến 263-1 bytes và truy xuất file với offset 64-bit.
  • Bộ nhớ vật lý: Hệ điều hành quản lý được hơn 4GB bộ nhớ vật lý, đem lại lợi ích khi nhiều ứng dụng chạy cùng lúc cần nhiều hơn 4GB bộ nhớ (mỗi ứng dụng không dùng quá 4GB) và kích thước bộ nhớ vật lý thật sự lớn hơn 4GB. Lợi ích đó là hệ điều hành không phải swap memory.
  • Bộ nhớ ảo: Cho phép mỗi ứng dụng truy xuất hơn 4GB bộ nhớ ảo. Chức năng này sẽ tăng thành tích cho các ứng dụng cần dữ liệu lớn hơn 2-4GB.
Trong tương lai việc định địa chỉ 64-bit có thể dùng để tạo ra một mô hình bộ nhớ phẳng trải ra trên nhiều máy trong mạng (cluster), như vậy việc phát triển các ứng dụng phân tán sẽ đơn giản hơn.

Symmetrical multi processor và cluster[sửa | sửa mã nguồn]

Hầu hết các hãng làm UNIX đều cung cấp khả năng đa xử lý và những thread của cùng một ứng dụng có thể thực hiện đồng thời trên những bộ xử lý khác nhau. Những hệ điều hành UNIX có thể làm việc có hiệu quả đến vài chục processor.

Quản lý đĩa cứng[sửa | sửa mã nguồn]

Các khả năng dưới đây mới có trên một số UNIX:

  • Tự động khôi phục dữ liệu trong file system sau khi có sự cố: Journaled File System.
  • Tự động di chuyển file giữa các physical volume để cân bằng hoạt động của các volume.
  • Undelete.
  • Defragmentation.
  • Parallel file system: tận dụng khả năng SMP để xử lý nhiều yêu cầu I/O cùng lúc trên nhiều processor.

Kết nối mạng[sửa | sửa mã nguồn]

UNIX cung cấp khả năng kết nối mạng rất mạnh, đặc biệt trong việc kết nối giữa các hệ thống từ nhiều nhà sản xuất khác nhau. Giao thức chuẩn là TCP/IP. Xu hướng hiện nay là:

Bảo mật[sửa | sửa mã nguồn]

Các hãng đã thực hiện các khả năng an toàn đến mức C2 theo tiêu chuẩn của National Computer Security Center (Mỹ). Xu hướng hiện nay là, song song với việc cung cấp thêm các công cụ trợ giúp. Một số hãng nâng mức an toàn lên mức B.

Công cụ quản lý hệ thống[sửa | sửa mã nguồn]

Trước đây UNIX nổi tiếng là kém về các công cụ quản lý hệ thống. Người quản trị hệ thống phải sửa rất nhiều các thông số khó nhớ, khó hiểu trong rất nhiều configuration file nằm rải rác trong máy.

Hiện nay nhiều công cụ quản lý theo kiểu GUI đã giúp người quản trị hệ thống rất nhiều. Xu hướng chung là tạo ra một bộ công cụ để quản lý hệ thống một cách tiện lợi dễ dàng.

UNIX còn cung cấp những công cụ quản lý hệ thống hữu hiệu dựa trên giao diện kiểu ký tự. Những công cụ như vậy cho phép quản lý hệ thống từ xa qua telnet một cách hiệu quả.

Xem thêm[sửa | sửa mã nguồn]

Chú thích[sửa | sửa mã nguồn]

  1. ^ a ă McIlroy, M. D. (1987). A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 (PDF) (Bản báo cáo kỹ thuật). CSTR. Bell Labs. 139. Bản gốc (PDF) lưu trữ ngày 11 tháng 11 năm 2017. 
  2. ^ Ritchie, D. M.; Thompson, K. (1974). “The UNIX Time-Sharing System” (PDF). Communications of the ACM 17 (7): 365–375. doi:10.1145/361011.361061. Bản gốc (PDF) lưu trữ ngày 11 tháng 6 năm 2015. 
  3. ^ a ă Ritchie, D.M.; Thompson, K. (tháng 7 năm 1978). “The UNIX Time-Sharing System” (PDF). Bell System Tech. J. (USA: American Tel. & Tel.) 57 (6): 1905–1929. doi:10.1002/j.1538-7305.1978.tb02136.x. Truy cập ngày 9 tháng 12 năm 2012. 
  4. ^ “Novell Completes Sale of UnixWare Business to The Santa Cruz Operation | Micro Focus”. www.novell.com. Bản gốc lưu trữ ngày 20 tháng 12 năm 2015. Truy cập ngày 20 tháng 12 năm 2015. 
  5. ^ Raymond, Eric (19 tháng 9 năm 2003). The Art of Unix Programming. Addison-Wesley. ISBN 978-0-13-142901-7. Bản gốc lưu trữ ngày 12 tháng 2 năm 2009. Truy cập ngày 9 tháng 2 năm 2009. 
  6. ^ a ă Ritchie, Dennis M. (tháng 1 năm 1993). “The Development of the C Language” (PDF). Bản gốc (PDF) lưu trữ ngày 11 tháng 6 năm 2015. Truy cập ngày 20 tháng 12 năm 2015. 
  7. ^ “The Elements of Operating-System Style”. Bản gốc lưu trữ ngày 11 tháng 11 năm 2008. 
  8. ^ “Tandy/Radio Shack Book: Whole Earth Software Catalog”. 1984. UNIX was created by software developers for software developers, to give themselves an environment they could completely manipulate. 
  9. ^ Powers, Shelley; Peek, Jerry; O'Reilly, Tim; Loukides, Mike (2002). Unix Power Tools. ISBN 978-0-596-00330-2. 
  10. ^ a ă â b c Ritchie, Dennis M. “The Evolution of the Unix Time-sharing System” (PDF). Bản gốc (PDF) lưu trữ ngày 3 tháng 4 năm 2017. Truy cập ngày 9 tháng 1 năm 2017. 
  11. ^ Kernighan, Brian W. Pike, Rob. The UNIX Programming Environment. 1984. viii
  12. ^ Fiedler, Ryan (tháng 10 năm 1983). “The Unix Tutorial / Part 3: Unix in the Microcomputer Marketplace”. BYTE. tr. 132. Truy cập ngày 30 tháng 1 năm 2015. 
  13. ^ “Tandy/Radio Shack Book: Whole Earth Software Catalog”. 1984. The best thing about UNIX is its portability. UNIX ports across a full range of hardware—from the single-user $5000 IBM PC to the $5 million Cray. For the first time, the point of stability becomes the software environment, not the hardware architecture; UNIX transcends changes in hardware technology, so programs written for the UNIX environment can move into the next generation of hardware. 
  14. ^ Stuart, Brian L. (2009). Principles of operating systems: design & applications. Boston, Massachusetts: Thompson Learning. tr. 23. ISBN 978-1-4188-3769-3. 
  15. ^ Dolya, Aleksey (29 tháng 7 năm 2003). “Interview with Brian Kernighan”. Linux Journal. Bản gốc lưu trữ ngày 18 tháng 10 năm 2017. 
  16. ^ Rik Farrow. “An Interview with Peter G. Neumann” (PDF). ;login: 42 (4): 38. That then led to Unics (the castrated one-user Multics, so- called due to Brian Kernighan) later becoming UNIX (probably as a result of AT&T lawyers). 
  17. ^ “Portability of C Programs and the UNIX System”. Bell-labs.com. Truy cập ngày 24 tháng 8 năm 2018. 
  18. ^ Thompson, Ken (16 tháng 9 năm 2014). “personal communication, Ken Thompson to Donald W. Gillies”. UBC ECE Website. Bản gốc lưu trữ ngày 22 tháng 3 năm 2016. 
  19. ^ Chesson, Greg (12 tháng 11 năm 2014). “Personal Communication, Greg Chesson to Donald W. Gillies”. UBC ECE Website. Bản gốc lưu trữ ngày 22 tháng 3 năm 2016. 
  20. ^ “Operating system Family - Systems share”. Top 500 project. 
  21. ^ “Loading”. Developer.apple.com. Bản gốc lưu trữ ngày 5 tháng 6 năm 2012. Truy cập ngày 22 tháng 8 năm 2012. 
  22. ^ “Unix's Revenge”. asymco. 29 tháng 9 năm 2010. Bản gốc lưu trữ ngày 9 tháng 11 năm 2010. Truy cập ngày 9 tháng 11 năm 2010. 
  23. ^ Ritchie, Dennis (1979). “The Evolution of the Unix Time-sharing System”. Bell Labs. Bản gốc lưu trữ ngày 11 tháng 6 năm 2015. Truy cập ngày 30 tháng 4 năm 2016. Perhaps the most important watershed occurred during 1973, when the operating system kernel was rewritten in C. 
  24. ^ “Distrowatch: Top Ten Distributions”. 
  25. ^ a ă Benet, Manuel (1999). “Interview With Dennis M. Ritchie”. LinuxFocus.org. Bản gốc lưu trữ ngày 17 tháng 1 năm 2018. 
  26. ^ Chuck Karish (October 12, 1993). "The name UNIX is now the property of X/Open". comp.std.unix. (Google Groups).
  27. ^ “HP, Novell and SCO To Deliver High-Volume UNIX OS With Advanced Network And Enterprise Services”. Novell.com. 20 tháng 9 năm 1995. Bản gốc lưu trữ ngày 23 tháng 1 năm 2007. Truy cập ngày 9 tháng 11 năm 2010. 
  28. ^ Jones, Pamela. “SCO Files Docketing Statement and We Find Out What Its Appeal Will Be About”. Groklaw. Groklaw.net. Truy cập ngày 12 tháng 4 năm 2011. 
  29. ^ The Open Group. “The Open Brand Fee Schedule”. Bản gốc lưu trữ ngày 31 tháng 12 năm 2011. Truy cập ngày 26 tháng 12 năm 2011. The right to use the UNIX Trademark requires the Licensee to pay to The Open Group an additional annual fee, calculated in accordance with the fee table set out below. 
  30. ^ The Open Group. “AIX 6 Operating System V6.1.2 with SP1 or later certification”. Bản gốc lưu trữ ngày 8 tháng 4 năm 2016. 
  31. ^ The Open Group (8 tháng 9 năm 2016). “Huawei EulerOS 2.0 certification”. 
  32. ^ The Open Group. “HP-UX 11i V3 Release B.11.31 or later certification”. Bản gốc lưu trữ ngày 8 tháng 4 năm 2016. 
  33. ^ The Open Group. “Inspur K-UX 2.0 certification”. Bản gốc lưu trữ ngày 9 tháng 7 năm 2014. 
  34. ^ The Open Group. “IRIX 6.5.28 with patches (4605 and 7029) certification”. Bản gốc lưu trữ ngày 4 tháng 3 năm 2016. 
  35. ^ “macOS version 10.12 Sierra on Intel-based Mac computers”. The Open Group. Bản gốc lưu trữ ngày 2 tháng 10 năm 2016. 
  36. ^ The Open Group. “Oracle Solaris 11 FCS and later certification”. Bản gốc lưu trữ ngày 24 tháng 9 năm 2015. 
  37. ^ Bonnie Talerico. “Hewlett-Packard Company Conformance Statement”. The Open Group. Bản gốc lưu trữ ngày 10 tháng 12 năm 2015. Truy cập ngày 8 tháng 12 năm 2015. 
  38. ^ Vivian W. Morabito. “IBM Corporation Conformance Statement”. The Open Group. Truy cập ngày 21 tháng 1 năm 2018. 
  39. ^ Peng Shen. “Huawei Conformance Statement”. The Open Group. Truy cập ngày 22 tháng 1 năm 2020. 
  40. ^ Peng Shen. “Huawei Conformance Statement: Commands and Utilities V4”. The Open Group. Truy cập ngày 22 tháng 1 năm 2020. 
  41. ^ Raymond, Eric S. (biên tập). “Unix”. The Jargon File. Bản gốc lưu trữ ngày 4 tháng 6 năm 2011. Truy cập ngày 9 tháng 11 năm 2010. 
  42. ^ Troy, Douglas (1990). UNIX Systems. Computing Fundamentals. Benjamin/Cumming Publishing Company. tr. 4. ISBN 978-0-201-19827-0. 
  43. ^ “Autres Unix, autres moeurs (OtherUnix)”. Bell Laboratories. 1 tháng 4 năm 2000. Bản gốc lưu trữ ngày 3 tháng 4 năm 2017. Truy cập ngày 3 tháng 1 năm 2018. 
  44. ^ “History of Solaris” (PDF). Bản gốc (PDF) lưu trữ ngày 18 tháng 3 năm 2017. UNIX is plural. It is not one operating system but, many implementations of an idea that originated in 1965.