Unix (официалната търговска марка е UNIX) е семейство от многозадачни и многопотребителски компютърни операционна системи, които произлизат от оригиналната AT&T Unix, разработена през 60-те и 70-те години на 20 век от група специалисти от AT&T, работещи в Bell Labs. В състава на работната група влизат Кен Томпсън, Денис Ричи и Дъглас Мак Илрой. В днешно време Unix има различни версии, разработени през годините от AT&T, както и от други комерсиални доставчици и некомерсиални организации.
Сегашният собственик на търговската марка UNIX е консорциумът за индустриални стандарти The Open Group. Правата върху изходния код на Unix обаче са оспорвани в дело от 2004 г., в което доставчикът на UNIX SCO Group обвинява Novell в оклеветяване на името (slander of title). Забележете, че собственикът на търговската марка използва названието UNIX, а не Unix. Терминът UNIX не е акроним, а следва историческата конвенция компютърните системи да се именуват с главни букви като ENIAC и MISTIC.
Само системи, напълно съвместими и сертифицирани по UNIX спецификацията (Single UNIX Specification) могат да се наричат „UNIX“. Другите се наричат „Unix-подобни“ (Unix-like).
В началото на 70-те и 80-те, когато компютрите не са толкова разпространени, академичните кръгове са вдъхновени от Unix, което води до широкомащабното ѝ възприемане (най-вече на варианта BSD, създаден в Калифорнийския университет в Бъркли), а също и от нови компании като Sun Microsystems. В наши дни в допълнение на сертифицираните Unix системи, Unix-подобните операционни системи като Linux и Mac OS X са често срещани.
Понякога названието традиционен Unix се използва за Unix или за операционна система с характеристики на Version 7 Unix или UNIX System V.
Въведение Първоначално Unix е предназначена да бъде удобна платформа за програмисти, разработващи софтуер. Постепенно системата се разраства и се разпространява в академичните кръгове, където ползвателите започват да добавят свои програми и инструменти и да ги споделят с колегите си. Unix операционните системи се използват както за сървъри, така и за работни станции. Unix средата и моделът клиент-сървър са основни елементи при разработването на Интернет и при създаването на компютърните мрежи – в контраст с разработките на операционни системи за персонални компютри.
Както Unix, така и C, разработени от AT&T и разпространени в службите на американското правителство и академичните институции, са приспособявани към различни архитектури и операционни системи. В резултат на това Unix се свързва с понятието „отворена система“.
Unix е проектирана като преносима, многозадачна и многопотребителска, когато е във времеразделяща конфигурация. За Unix системите са характерни следните особености: използването на неформатиран текст за запазване на данни; йерархична файлова система; устройствата и някои видове процеси (inter-process communication) (IPC) се третират като файлове; използват се голям брой малки програми, които могат да бъдат навързани заедно чрез интерпретатор на команден ред и чрез канали („pipe“), в контраст с използването на една монолитна програма със същата функционалност. Тези концепции са известни като философия на Unix.
В Unix „операционната система“ се състои от тези инструменти заедно с ядрото (kernel – основната контролираща програма). Ядрото отговаря за пускане и спиране на програмите, за работа с файловите системи и за други задачи от „високо ниво“, които са общи за повечето програми. Най-важната му задача обаче е, че то контролира директния достъп до хардуера и разрешава конфликтите – например когато две програми едновременно искат достъп до едно и също устройство. Затова ядрото има специални привилегии за достъп до системата, което води до отделянето на „потребителско“ и „системно“ пространство.
Микроядрото се опитва да намали размера на ядрото, като разделя ядрото на много малки части изпълняващи определени операции. Във времената на мейнфрейм машините, когато „нормалният“ компютър се състои от твърд диск и терминали за вход-изход, файловият модел на Unix работи много добре, тъй като входно-изходните операции са „линейни“. Но модерните системи имат и по-нови периферни устройства и използват графичен потребителски интерфейс, при който действието с мишката е нов, „събитиен модел“ и моделът на Unix не функционира така добре. През 80-те разработчиците насочват усилията си към системите, поддържащи тези нови устройства, за да осигурят неблокиращ вход-изход, да създадат варианти на междупроцесна комуникация, различни от „pipe“, както и за изваждането на мрежовите протоколи от ядрото.
История През 60-те, Масачузетският технологичен институт, AT&T Bell Labs и General Electric работят по експерименталната операционна система Multics (името идва от Multiplexed Information and Computing Service), предназначена за мейнфрейм компютъра GE-645. Целта е създаването на комерсиален продукт, но успех не е постигнат. Multics е интреактивна операционна система с много нови възможности и повишена сигурност. В резултат от проекта е създаден краен продукт, но с много ниска производителност.
AT&T Bell Labs се оттегля и насочва ресурсите си към други проекти. Един от разработчиците от екипа на Bell Labs обаче, Кен Томпсън, продължава да работи, и създава игра за GE-645 мейнфрейм, наречена Пътуване в пространството (Space Travel). Но изпълнявана на GE машината тя е бавна и доста скъпа – изпълнението ѝ струва $75 от дефицитното компютърно време.
С помощта на Дени Ричи Томпсън пренаписва играта на асемблер за друга машина на Digital Equipment Corporation – PDP-7. Този проект заедно с работата му по проекта Multics, кара Томпсън да започне работа по нова операционна система за PDP-7. Той и Ричи ръководят екипа от разработчици от Bell Labs, сред които и Руд Канадей (Rudd Canaday), разработващ файловата система, както и новата многозадачна операционна система. Тя включва интерпретатор от команден ред.
70-те През 1970 проектът е наречен Unics (съкратено от Uniplexed Information and Computing System) и поддържа два потребителя едновременно. Избраното име е приписвано на Брайън Керниган (Brian Kernighan) и представлява шега с Multics – Unix ще прави само едно нещо, но ще го прави добре, за разлика от раздутата и бавна Multics.
Дотогава е липсвала финансова поддръжка от Bell Labs. Когато обаче компанията Computer Science Research Group отправя искане да използва Unix на друга машина, много по-голяма от PDP-7, Томпсън и Ричи успяват да издействат финансиране с обещанието да добавят възможности за обработка на текст към варианта на Unix за PDP-11/20 машина. За първи път операционната система UNIX официално е именувана и се изпълнява на PDP-11/20 през 1970 г. Добавени са програма за форматиране на текст (roff) и текстов редактор, и трите написани на асемблер за PDP-11/20. Bell Labs подава заявки за патенти за системата за обработка на текст и за редактора. Roff еволюира в troff, първата електронна издателска програма с пълни типографски възможности. Ръководството на UNIX програмиста (UNIX Programmer's Manual) е публикувано на 3 ноември 1971.
През 1973 г. е решено да се пренапише Unix на C. Промяната улеснява модифицирането/прехвърлянето на Unix на други машини (т.е. преносимостта), и дава възможност и други разработчици да създадат варианти. Кодът става по-стегнат и компактен, което води до по бърза разработка на Unix. AT&T прави Unix достъпен за университетите и компаниите, а също и за правителството на САЩ под лиценз. Лицензът включва целия изходен код с изключение на машинно-зависимата част, написана на асемблер за PDP-11. Обаче в края на 70-те се разпространяват копия на машинно-зависимото ядро с коментари под форма на копирана книга на Джон Лион от University of New South Wales – Lions' Commentary on UNIX 6th Edition, with Source Code, което води до приемането на Unix като операционна система за обучение.
Версиите на Unix се определят от версиите на съответните им ръководства т.е. „Fifth Edition UNIX“ и „UNIX Version 5“ се използват за едно и също нещо. Разработката се разширява с версии 4, 5, и 6, пуснати до 1975. Тези версии добавят концепцията за съобщителен канал, водеща до разработката на модулна кодова база, което повиши още повече скоростта на развитие. Версия 5 и по-специално версия 6 водят до множество различни версии на Unix в Bell Labs и извън нея, например PWB/UNIX, IS/1 (първия комерсиален Unix), и пренасянето му на Interdata 7/32 (първия не-PDP Unix) от University of Wollongong.
През 1978 г. е представен UNIX/32V, за VAX компютър. По това време повече от 600 машини изпълняват някаква форма на Unix. Unix версия 7 – последната широко разпространена версия на Research Unix – е представена през 1979 г. Версии 8, 9 и 10 са разработени през 80-те, но са разпространени само в няколко университета. Това води до разработката на Plan 9 from Bell Labs – нова преносима разпределена система.
80-те
AT&T лицензира UNIX System III, базирана основно на версия 7, за комерсиално използване през 1982 г. Тя включва поддръжка на VAX. AT&T продължи да лицензира по-старите версии на Unix. За да сложи край на объркването между различните версии, AT&T ги комбинира в UNIX System V Release 1. Тя предлага нови възможности като редактора vi и curses от Berkeley Software Distribution на Unix разработени от Калифорнийския университет в Бъркли. Тя включва поддръжка на Western Electric 3B.
Тъй като новото комерсиално лицензиране на UNIX не е изгодно за академично използване, както са по-ранните версии, разработчици от Бъркли продължават да развиват BSD Unix като алтернатива на UNIX System III и V, първоначално за PDP-11 (2.xBSD завършвайки с 2.11BSD) и по-късно за VAX-11 (версии 4.x на BSD). Много от нововъведенията в Unix първо се появяват в BSD, например C shell с контрол на задачите (създаден по модел на ITS). Най-важният аспект от разработката на BSD е добавянето на TCP/IP кода към Unix ядрото. Усилията на BSD имат като резултат няколко версии, съдържащи мрежовия код: 4.1cBSD, 4.2BSD, 4.3BSD, 4.3BSD-Tahoe („Tahoe“ е прякора на CCI Power 6/32 архитектурата – първата версия на различна ор DEC платформа на BSD ядрото), Net/1, 4.3BSD-Reno (за наподобяване на „Tahoe“, и тъй като тази версия е „хазартна“), Net/2, 4.4BSD, и 4.4BSD-lite. Мрежовият код в тези версии е прародител на TCP/IP мрежовия код, използван сега, включително и кода пуснат по-късно в AT&T System V UNIX и Microsoft Windows. Съпътстващият Berkeley Sockets програмен интерфейс API е де-факто стандарт за мрежови програмни интерфейси и впоследствие е копиран от много платформи.
Други компании започват предлагането на комерсиални версии на UNIX за техните миникомпютри и работни станции. Повечето от тях са разработени въз основа на System V и са лицензирани от AT&T; но има и BSD базирани. Един от водещите разработчици на BSD, Бил Джой(Bill Joy), основава през 1982 Sun Microsystems и създава SunOS (сега Solaris) за техните работни станции. През 1980, Microsoft представя техния първи Unix за 16-битови компютри, наречен Xenix, който Santa Cruz Operation (SCO) прехвърля за Intel 8086 процесор през 1983, и създава Xenix клонинг – SCO UNIX през 1989.
През 1984 г. се сформира група, наречена X/Open, с цел да създаде съвместима отворена система за стандартизиране на UNIX. Към средата на 80-те несъвместимостта между конкуриращите се версии на Unix, наречени Unix войни, пречат на приемането на Unix на пазара, който започна да се доминира от операционните системи на Microsoft. Вдъхновена от разработването на двойни (AT&T/BSD) версии на Unix, IEEE работна група P1003 разработва първия POSIX стандарт за Unix-базирани програмни интерфейси, публикуван през 1988 г.