Unix

**Unix** (; đượ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 1960 và 1970 do một số nhân viên của Bell Labs thuộc AT&T bao gồm Ken Thompson, Dennis Ritchie và Douglas McIlroy và một số người khác.

Ban đầu dự định sử dụng bên trong Bell System, AT&T đã cấp phép Unix cho các đơn vị 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 (Unix variant) cho 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. 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. 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, 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.

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

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

Lúc đầu, Unix không được thiết kế để có thể di động hoặc đa tác vụ.  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 tin; 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 Kernighan và Rob 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".

Đế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ô.  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 tin 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ử

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. 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, 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ụ. 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.  Dennis Ritchie, Doug McIlroy, và Peter G. Neumann 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. 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.

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

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 (BSD và System 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 Laboratories và Sun Microsystems đã phát triển System&nbsp;V Release&nbsp;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, do các bản phân phối BSD và Linux đượ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.

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.
## Chuẩn hoá

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 tin 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
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 tin 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 tin 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à để 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 (software)|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 (software)|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:
** *[[Bourne shell|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 (Unix)|cp]]*, *[[ls]]*, *[[grep]]*, *[[find (Unix)|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 (software)|eqn]]*, *[[refer (software)|refer]]*, and *[[Pic language|pic]]*. Some modern Unix systems also include packages such as TeX và Ghostscript.
** *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 page|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

Hệ thống Unix đã có ảnh hưởng đáng kể đến các hệ điều hành khác. Nó nhận được danh tiếng nhờ tính tương tác, bằng việc cung cấp phần mềm với mức phí danh nghĩa cho mục đích giáo dục, nhờ khả năng chạy trên phần cứng rẻ tiền, và nhờ việc dễ dàng tương thích và di chuyển đến các máy tính khác nhau. Unix ban đầu được viết bằng hợp ngữ, nhưng nhanh chóng được viết lại bằng C, một ngôn ngữ lập trình bậc cao. Mặc dù điều này tiên phong bởi Mutics và Burroughs, nhưng chính Unix đã phổ biến ý tưởng này.

Unix có sự đơn giản hóa mô hình file một cách đáng kể so sánh với nhiều hệ điều hành hiện thời: xử lý tất cả các loại file như một dãy byte đơn giản. Hệ thống phân tầng file chứa nhiều dịch vụ máy móc và thiết bị ( ví dụ như máy in, thiết bị đầu cuối, hay ổ đĩa), cung cấp một giao diện thống nhất, nhưng phải trả giá bằng việc đôi khi yêu cầu các cơ chế bổ sung như ioctl và cờ chế độ để truy cập các tính năng của phần cứng không phù hợp với mô hình "dòng byte" đơn giản. Hệ điều hành Plan 9 thậm chí còn đẩy mô hình này đi xa hơn và loại bỏ nhu cầu về các cơ chế bổ sung.

Unix cũng phổ biến hệ thống phân cấp file với các thư mục con được lồng vào nhau tùy ý, ban đầu được giới thiệu bởi Multics. Các hệ điều hành phổ biến khác cùng thời có cách chia thiết bị lưu trữ thành nhiều thư mục hoặc phần, nhưng chúng có một số cấp cố định, thường chỉ có một cấp. Một số hệ điều hành độc quyền lớn cuối cùng đã bổ sung thêm các khả năng thư mục con đệ quy cũng theo khuôn mẫu của Multics. Hệ thống phân cấp "nhóm, người dùng" của RSX-11M của DEC đã phát triển thành các thư mục VMS, các tập của CP/M đã phát triển thành các thư mục con MS-DOS 2.0+ và hệ thống phân cấp tài khoản nhóm MPE của HP và hệ thống thư viện SSP và OS/400 của IBM được xếp thành tệp POSIX rộng hơn hệ thống.

Biến trình thông dịch lệnh thành một chương trình cấp độ người dùng thông thường, với các lệnh bổ sung được cung cấp dưới dạng các chương trình riêng biệt, là một cải tiến khác của Multics được Unix phổ biến. Unix shell sử dụng cùng một ngôn ngữ cho các lệnh tương tác cũng như cho tập lệnh (tập lệnh shell – không có ngôn ngữ kiểm soát công việc riêng biệt như JCL của IBM). Vì các lệnh shell và OS "chỉ là một chương trình khác", nên người dùng có thể chọn (hoặc thậm chí viết) shell của riêng họ. Các lệnh mới có thể được thêm vào mà không cần thay đổi shell. Cú pháp dòng lệnh cải tiến của Unix để tạo chuỗi mô-đun của quy trình sản xuất-người tiêu dùng (đường ống) đã làm cho mô hình lập trình mạnh mẽ (coroutine) được phổ biến rộng rãi. Nhiều trình thông dịch dòng lệnh sau này được lấy cảm hứng từ Unix shell.

Giả định đơn giản hóa cơ bản của Unix là tập trung vào văn bản được phân tách bằng dòng mới cho hầu hết các định dạng tệp. Không có trình soạn thảo "nhị phân" nào trong phiên bản gốc của Unix - toàn bộ hệ thống được cấu hình bằng các tập lệnh lệnh shell văn bản. Mẫu số chung trong hệ thống I/O là byte - không giống như các hệ thống tệp "dựa trên bản ghi". Việc tập trung vào văn bản để thể hiện gần như mọi thứ đã làm cho các hệ điều hành Unix trở nên đặc biệt hữu ích và khuyến khích sự phát triển của các công cụ chung, đơn giản có thể dễ dàng kết hợp để thực hiện các tác vụ đặc biệt phức tạp hơn. Việc tập trung vào văn bản và byte làm cho hệ thống có khả năng mở rộng và di động cao hơn nhiều so với các hệ thống khác. Theo thời gian, các ứng dụng dựa trên văn bản cũng đã được chứng minh là phổ biến trong các lĩnh vực ứng dụng, chẳng hạn như ngôn ngữ in ấn (PostScript, ODF) và ở lớp ứng dụng của các giao thức Internet, ví dụ: FTP, SMTP, HTTP, SOAP và SIP.

Unix đã phổ biến cú pháp cho các biểu thức chính quy và được sử dụng rộng rãi. Giao diện lập trình Unix đã trở thành nền tảng cho tiêu chuẩn giao diện hệ điều hành được triển khai rộng rãi (POSIX, xem ở trên). Ngôn ngữ lập trình C sớm lan rộng ra ngoài Unix và hiện đang phổ biến trong lập trình hệ thống và ứng dụng.

Các nhà phát triển Unix ban đầu đóng vai trò quan trọng trong việc đưa các khái niệm về tính mô-đun và khả năng tái sử dụng vào thực tiễn công nghệ phần mềm, tạo ra bước chuyển dịch "công cụ phần mềm". Theo thời gian, các nhà phát triển Unix hàng đầu (và các chương trình chạy trên nó) đã thiết lập một bộ chuẩn mực văn hóa để phát triển phần mềm, những chuẩn mực này trở nên quan trọng và có ảnh hưởng như chính công nghệ của Unix; điều này đã được gọi là triết lý Unix.

Các giao thức mạng TCP/IP được triển khai nhanh chóng trên các phiên bản Unix được sử dụng rộng rãi trên các máy tính tương đối rẻ tiền, góp phần vào sự bùng nổ Internet về kết nối thời gian thực trên toàn thế giới và tạo cơ sở cho việc triển khai trên nhiều nền tảng khác.

Chính sách Unix về tài liệu trực tuyến mở rộng và (trong nhiều năm) sẵn sàng truy cập vào tất cả mã nguồn hệ thống đã nâng cao kỳ vọng của các lập trình viên và góp phần phát động bước chuyển phần mềm miễn phí vào năm 1983.

### Unix tự do và tương tự Unix

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 library và GNU core utilities&nbsp;–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 Linux vàGentoo.

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 NetBSD và FreeBSD. 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 OpenBSD và DragonFly 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 Linux và BSD là sự tiếp nối cơ sở của thiết kế Unix và là dẫn xuất của Unix:

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

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 CDDL và khô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
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

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), và vào năm 1995, đã bán các hoạt động kinh doanh liên quan cho Santa Cruz Operation (SCO). 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 v. Novell|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. 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. Các hệ thống đã được cấp phép sử dụng nhãn hiệu UNIX bao gồm AIX, EulerOS, HP-UX, Inspur K-UX, IRIX, macOS, Solaris, Tru64 UNIX (trước đây là "Digital UNIX", hay OSF/1), và z/OS. Đá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&nbsp;03.

Đô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 (*<span style="font-variant: small-caps;">Unix</span>*). 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*".  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.

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.

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

### BSD
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. Tuy nhiên, những phát minh của BSD thường được những nhà khoa học tạo ra UNIX (lúc đó đang làm hệ điều hành Plan 9) chỉ trích là gây phình to, vi phạm triết lý UNIX, và khiến cho việc phát triển phần mềm mạng trở nên khó khăn (xem UNIX Style, or cat -v Considered Harmful và The Good, the Bad, and the Ugly: The Unix Legacy của Rob Pike)

### Các hãng phát triển khác
*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. Hiện nay, HP-UX, AIX và Oracle Solaris (SunOS) vẫn còn hoạt động. Nhiều bản UNIX dựa trên nhân Linux như Red Hat Enterprise Linux cũng đã xuất hiện.
*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 Torvalds ở Helsinki, 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 tự do khác là FreeBSD, bắt nguồn từ BSD. Ngoài ra còn nhiều bản UNIX bắt nguồn từ BSD hoặc UNIX System V miễn phí khác như OpenBSD, NetBSD, DragonFlyBSD, illumos, ...

Các phiên bản 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ế
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
Đặ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

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

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à:

*Kết nối với PC LAN: Novell NetWare và Windows NT.
*Cung cấp các giao thức liên quan đến Internet: PPP, SMTP, POP3, IMAP4, HTTP.

### Bảo mật
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
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

* Linux
* Danh sách hệ điều hành, Unix systems, và Unix commands
*Market share of operating systems
*Timeline of operating systems
*Plan 9 from Bell Labs
*Unix time
*Year 2038 problem

## Chú thích