Unix

Iz Wikipedije, proste enciklopedije
Pojdi na navigacijo Pojdi v iskanje
Družinsko drevo sistemov Unix

Unix ("UNIX" je registrirana blagovna znamka skupine The Open Group [1] ) je družina prenosnih , večopravilnih in več uporabniških operacijskih sistemov, ki temeljijo na zamislih iz prvotnega projekta AT&T Unix, ki ga je v sedemdesetih letih prejšnjega stoletja v Bell Labs razvil Ken Thompson, Dennis Ritchie in drugi.

Za operacijske sisteme družine Unix je značilna modularna zasnova, v kateri vsako nalogo opravi ločen pripomoček , interakcija poteka prek enega datotečnega sistema , ukazna lupina pa se uporablja za delo s pripomočki .

Ideje za Unix so imele velik vpliv na razvoj računalniških operacijskih sistemov. Sistemi Unix so danes priznani kot eden najbolj zgodovinsko pomembnih operacijskih sistemov.

Pregled

Zagon UNIX V6 v emulatorju pdp-11 v sistemu Windows 7
Izvajanje UNIX V5 v emulatorju pdp-11 v sistemu Windows 7
Logotip UNIX .

Prvi sistem Unix je razvil AT&T Bell Labs . Od takrat je bilo ustvarjenih veliko število različnih sistemov Unix. Pravno se lahko imenujejo "UNIX" samo tisti operacijski sistemi, ki so bili certificirani za skladnost z enotno specifikacijo UNIX [2] . Ostali, čeprav uporabljajo podobne koncepte in tehnologije, se imenujejo Unixu podobni operacijski sistemi ( angleško podobni Unixu ). Zaradi kratkosti v tem članku Unix sistemi pomenijo prave Unix in Unixu podobne operacijske sisteme .

Posebnosti

Glavna razlika med sistemi, podobnimi Unixu, in drugimi operacijskimi sistemi je v tem, da so prvotno večnamenski, večopravilni sistemi. V Unixu lahko veliko ljudi hkrati dela naenkrat, vsak na svojem terminalu , vsak pa lahko izvede veliko različnih računalniških procesov, ki bodo uporabljali vire tega računalnika.

Druga ogromna zasluga Unixa je njegova večplatformnost. Jedro sistema je zasnovano tako, da ga je mogoče enostavno prilagoditi skoraj vsakemu mikroprocesorju.

Unix ima še druge pomembne funkcije:

  • uporaba preprostih besedilnih datotek za konfiguracijo in upravljanje sistema;
  • široka uporaba pripomočkov, ki se zaženejo iz ukazne vrstice ;
  • interakcija z uporabnikom prek navidezne naprave - terminala;
  • predstavitev fizičnih in virtualnih naprav ter nekaterih načinov medprocesne komunikacije v obliki datotek ;
  • z uporabo cevovodov iz več programov, od katerih vsak opravlja eno nalogo.

Uporaba

Trenutno Unix-sistemi prevladujejo predvsem med strežniki , pa tudi vgrajeni sistemi za različno opremo, vključno s pametnimi telefoni . Tudi sistemi Unix prevladujejo pri superračunalnikih , zlasti Linux je nameščen na 100% TOP500 superračunalnikov.

Med operacijskimi sistemi za delovne postaje in domačo uporabo se Unix in Unixu podobni operacijski sistemi uvrščajo na drugo mesto po operacijskem sistemu Microsoft Windows ( macOS ), na tretje ( GNU / Linux ) [3] in številna naslednja mesta po priljubljenosti.

Zgodovina

Predhodniki

Različice Unixa po letih

Leta 1957 so se v Bell Labs začela delati na ustvarjanju operacijskega sistema za notranje potrebe. Sistem BESYS je nastal pod vodstvom Viktorja Vysotskyja . Nato je vodil projekt Multics , nato pa postal vodja informacijskega oddelka Bell Labs.

Leta 1964 so se pojavili računalniki tretje generacije, za katere zmogljivosti BESYS niso bile več primerne. Vysotsky in njegovi kolegi so se odločili, da ne bodo razvijali lastnega operacijskega sistema, ampak se bodo povezali z družbo Multics, skupnim projektom General Electric in MIT . Telekomunikacijski velikan AT&T , ki je vključeval tudi Bell Labs, je projektu močno podprl, vendar se je leta 1969 umaknil, ker projekt ni prinesel finančnih koristi.

Prvi sistemi Unix

Ken Thompson in Dennis Ritchie - ustvarjalca Unixa

Unix so prvotno razvili konec šestdesetih let prejšnjega stoletja zaposleni v podjetju Bell Labs, predvsem Ken Thompson , Dennis Ritchie in Douglas McIlroy .

Leta 1969 je Ken Thompson napisal prvo različico novega operacijskega sistema za te mini računalnike iz 70. let, da bi uresničil zamisli Multics, vendar na skromnejši strojni opremi (DEC PDP-7 ). Ta različica se je imenovala Edition 1 in je bila prva uradna različica. Sistemski čas vseh implementacij Unixa se šteje od 1. januarja 1970 .

Prvo ime sistema je bila Uniplexed Information and Computing Service , skrajšano kot UNICS. To ime je bilo leta 1970 dano kot Multics . Toda na koncu je operacijski sistem postal znan kot Unix.

Prve različice Unixa so bile napisane v zbirnem jeziku in niso imele vgrajenega prevajalnika na visoki ravni . Okoli leta 1969 je Ken Thompson s pomočjo Dennisa Ritchieja razvil in uvedel jezik B (B), ki je bil poenostavljena (za izvedbo na miniračunalnikih) različica jezika BCPL, razvita leta 1966 . Bi, tako kot BCPL, je bil tolmačeni jezik. Leta 1972 je izšla druga izdaja Unixa, prepisana v jeziku Bi. V letih 1969-1973. na podlagi Bi je bil razvit sestavljen jezik, imenovan C (C).

Leta 1973 je izšla tretja izdaja Unixa z vgrajenim prevajalnikom C. 15. oktobra istega leta se je pojavila četrta izdaja s sistemskim jedrom, prepisano v C (v duhu sistema Multics, napisanega tudi v jeziku na visoki ravni PL / 1 ), leta 1975 pa peta izdaja , popolnoma prepisano v C.

Od leta 1974 se je Unix razširil na univerze in akademske ustanove. Leta 1975 so se pojavile nove različice, razvite zunaj Bell Labs, in priljubljenost sistema. Leta 1975 je Bell Labs izdal šesto izdajo , znano po zelo različnih komentarjih Johna Lyonsa .

Do leta 1978 je bil sistem nameščen na več kot 600 strojih, predvsem na univerzah [4] . Sedma izdaja je bila zadnja poenotena različica Unixa. V njem se je pojavila lupina Bourne, tolmač ukazne vrstice, ki je blizu sodobni.

Split

V začetku osemdesetih let je AT&T, ki je lastnik Bell Labs, spoznal vrednost Unixa in začel graditi komercialno različico operacijskega sistema. Ta različica, ki je bila v prodaji leta 1982 , se je imenovala UNIX System III in je temeljila na sedmi različici sistema.

Vendar pa podjetje zaradi prepovedi, ki jo je leta 1956 uvedla ameriška vlada, ni moglo neposredno začeti razvijati Unixa kot komercialnega izdelka. Ministrstvo za pravosodje je prisililo AT&T, da podpiše sporazum, ki družbi prepoveduje opravljanje dejavnosti, ki niso povezane s telefonskimi in telegrafskimi omrežji in opremo. Da bi Unix še vedno lahko prenesli v rang komercialnih izdelkov, je podjetje izvorno kodo operacijskega sistema preneslo na nekatere visokošolske ustanove, ki je licenciralo kodo pod zelo liberalnimi pogoji. Decembra 1973 je Univerza v Berkeleyju ena prvih prejela izvorno kodo [5] .

Od leta 1978 začne svojo zgodovino BSD Unix , ustanovljen na Univerzi v Berkeleyju. Njegova prva različica je temeljila na šesti izdaji. Leta 1979 je izšla nova različica 3BSD, ki temelji na sedmi izdaji. BSD je podpiral tako uporabne funkcije, kot sta navidezni pomnilnik in ostranjevanje na zahtevo. BSD je napisal Bill Joy .

Pomemben razlog za razcep v Unixu je bila izvedba leta 1980 sklada protokolov TCP / IP . Pred tem je bila komunikacija med stroji v Unixu v povojih-najpomembnejši način komunikacije je bil UUCP (sredstvo za kopiranje datotek iz enega sistema Unix v drugega, ki je prvotno deloval prek telefonskih omrežij z uporabo modemov ).

Predlagana sta bila dva programiranja aplikacij za omrežni vmesnik: vtičnica Berkeley (vtičnice Berkley) in vmesnik transportnega sloja TLI ( eng. Transport Layer Interface).

Vmesnik vtičnic Berkley je bil razvit na Univerzi v Berkeleyju in uporablja tam razvit sklad protokolov TCP / IP . TLI je AT&T ustvaril v skladu z definicijo transportnega sloja modela OSI in se je prvič pojavil v različici System V 3. Čeprav je ta različica vsebovala TLI -je in tokove, prvotno ni vključevala TCP / IP ali drugih omrežnih protokolov, vendar so takšne izvedbe zagotovili tretji zabave ....

Izvajanje TCP / IP je bilo uradno in končno vključeno v osnovno distribucijo sistema V različice 4. To je skupaj z drugimi premisleki (večinoma tržno) povzročilo končno razmejitev med dvema vejama Unixa - BSD (Univerza v Berkeleyju) in Sistem V (komercialna različica) podjetja AT&T). Kasneje so številna podjetja licencirala System V pri AT&T in razvila lastne komercialne okuse Unix, kot so AIX , CLIX , HP-UX , IRIX , Solaris .

BSD 4.2 je izšel sredi leta 1983 in podpira Ethernet in Arpanet . Sistem je postal precej priljubljen. Med letoma 1983 in 1990 so bile BSD dodane številne nove funkcije, na primer razhroščevalnik jedra, NFS , VFS in močno izboljšane zmogljivosti povezovanja datotek.

AT&T je medtem izdal nove različice svojega sistema, imenovane System V. Leta 1983 je izšla različica 1 (SVR1 - System V Release 1), ki je vključevala celozaslonski urejevalnik besedil vi , prekletstva , V / I pufranje , predpomnjenje inode . Različica 2 (SVR2), izdana leta 1984 , je uvedla zaklepanje datotek, ostranjevanje povpraševanja in kopiranje pri pisanju. Različica 3 je izšla leta 1987 in je med drugim vključevala TLI ter podporo za oddaljene datotečne sisteme RFS . Različica 4 (SVR4), razvita v sodelovanju s podjetjem Sun in izdana 18. oktobra 1988 , je podpirala številne funkcije BSD, kot so TCP / IP, vtičnice in nova lupina csh . Poleg tega je bilo še veliko drugih dodatkov, kot so simbolne povezave , lupina ksh , NFS (izposojeno pri SunOS ) itd.

Sodobne implementacije Unixa na splošno niso čisti sistemi V ali BSD. Izvajajo zmogljivosti sistema System V in BSD.

Brezplačni operacijski sistemi, podobni Unixu

Leta 1983 je Richard Stallman napovedal projekt GNU , poskus ustvarjanja brezplačnega operacijskega sistema, podobnega Unixu, iz nič, brez uporabe prvotne izvorne kode . Večina programske opreme, razvite v okviru tega projekta - na primer veriga orodij GNU , Glibc (standardna knjižnica C ) in Coreutils - ima ključno vlogo pri drugih brezplačnih operacijskih sistemih. Vendar pa je delo za ustvarjanje nadomestka za jedro Unix, ki je potrebno za dokončanje nalog GNU, napredovalo zelo počasi. Trenutno je GNU Hurd - poskus ustvariti sodobno jedro, ki temelji na mikrojedru arhitekturi macha - še zdaleč ni končana.

Leta 1991 , ko je Linus Torvalds izdal jedro Linuxa in prinesel pomočnike, je bila uporaba orodij, ki jih je razvil projekt GNU, očitna izbira. Operacijski sistem GNU in jedro Linuxa skupaj tvorita OS, znan kot GNU / Linux . Distribucije tega sistema (na primer Red Hat in Debian ), ki vključujejo jedro, pripomočke GNU in dodatno programsko opremo, so postale priljubljene tako pri ljubiteljih kot pri podjetjih .

V začetku leta 1992 je bila izdana različica 386 / BSD , ki temelji na izdaji omrežja 2. UNIX Systems Laboratories je vložila tožbo proti BSDI in nato proti Univerzi v Berkeleyju , ker je omogočila distribucijo datotek Unix v izvornih in binarnih oblikah za skoraj nič, kar je spodkopalo. podjetje USL samo.

Celotno leto 1992 ni prineslo pomembnega uspeha v sodnih postopkih za USL, vendar se je pojavila nasprotna tožba Univerze v Kaliforniji . Do začetka leta 1993 se je distribucija 386 / BSD spremenila v NetBSD . Decembra 1993 se je pojavila še ena distribucija, FreeBSD , namenjena navadnim uporabnikom. Po prevzemu podjetja USL s strani Novell do poletja 1993 so se začela pogajanja za rešitev statusa kod BSD. Do januarja 1994 sta se CSRG in Novell dogovorila o odstranitvi treh datotek iz 18.000 Networking Release 2, nekatere datoteke je bilo treba popraviti, univerza pa naj bi približno 70 datotekam dodala podatke o avtorskih pravicah USL.

Junija 1994 je izšla "čista" izdaja 4.4BSD-Lite . Od tega trenutka so morale skupine BSDI, NetBSD in FreeBSD ponovno sinhronizirati svoje različice sistemov s čistim sistemom 4.4BSD-Lite. Tako je bilo treba vse dogodke v treh letih od vložitve zahtevka USL pregledati zaradi kršitve avtorskih pravic in uporabe kode tretjih oseb. Prepišite pomembne komponente jedra in operacijskega okolja. Veliko kasneje so se ločili v neodvisne projekte OpenBSD , TrustedBSD in DragonFlyBSD .

Leta 1997 je Apple iskal temelje za svoj novi operacijski sistem in izbral NEXTSTEP , brezplačni operacijski sistem jedra, ki ga je razvil NeXT .

Leta 2000 je Apple Inc. izdaja odprtokodni operacijski sistem Darwin, združljiv s POSIX . Združuje kodo, ki jo je napisal sam Apple, s kodo, pridobljeno iz NeXTSTEP , FreeBSD in drugih brezplačnih projektov. Darwin je zbirka osnovnih komponent, ki jih uporabljata Mac OS X in Apple iOS . Združljiv je z različico 3 Unified UNIX Specification (SUSv3) ter aplikacijami in pripomočki POSIX.

14. junija 2005 je bil operacijski sistem Solaris odprt. Ta projekt se je tako kot operacijski sistem, ustvarjen na njegovi podlagi, imenoval OpenSolaris . 17. junija, tri dni po odkritju kode, je bila ustvarjena distribucija SchilliX . Maja 2008 je izšla prva uradna distribucija OpenSolaris 2008.05. Obstaja več kot deset distribucij, ki temeljijo na OpenSolarisu, med katerimi sta najbolj znani BeleniX in Nexenta OS .

GNU / Linux in družina BSD zdaj hitro pridobivajo tržni delež iz komercialnih sistemov Unix in hkrati prodirajo tako v namizne računalnike končnih uporabnikov kot v mobilne in vgrajene sisteme.

Lastniški sistemi

Po delitvi AT&T sta blagovna znamka Unix in pravice do prvotne izvorne kode večkrat zamenjali lastnike, zlasti so dolgo časa pripadali Novellu .

Leta 1993 je Novell prenesel pravice za potrjevanje blagovne znamke in programske opreme na konzorcij X / Open , ki se je nato združil s fundacijo Open Software Foundation in oblikoval skupino Open . Združuje vodilne računalniške korporacije in vladne organizacije, med drugim IBM , Hewlett-Packard , Sun , NASA in številne druge. Konzorcij razvija odprte standarde za operacijske sisteme, med katerimi je najpomembnejša enotna specifikacija UNIX , prej znana kot POSIX . Z vidika skupine Open Group lahko ime UNIX uporabljajo samo sistemi, ki so certificirani po enotni specifikaciji UNIX.

Leta 1995 je Novell pravice do obstoječih licenc in nadaljnji razvoj sistema V prodal družbi Santa Cruz Operation ru en . В 2000 году Santa Cruz Operation продала свой Unix-бизнес компании Caldera , которая затем была переименована в SCO Group . Хотя это название похоже на аббревиатуру SCO, используемую Santa Cruz Operation, это две разные компании.

SCO Group заявила, что она также обладает правами на исходный код Unix и развернула кампанию против различных пользователей и поставщиков Unix-подобных систем, требуя выплаты лицензионных отчислений. Однако Novell утверждает, что права на исходный код не были переданы Santa Cruz Operation и, таким образом, не перешли к SCO Group, а остаются у Novell, что и подтвердил вердикт суда. Несмотря на это в августе 2009 года Апелляционный суд десятого округа США отменил вынесенное ранее решение, назначив дополнительное расследование с целью установления законного владельца авторских прав на исходные тексты операционной системы [6] . В июне 2010 года суд поставил точку в этом вопросе, подтвердив вынесенный ранее (в апреле 2010) очередной вердикт в пользу Novell и отказав SCO Group в рассмотрении дальнейших жалоб [7] .

Влияние Unix на эволюцию операционных систем

Unix-системы имеют большую историческую важность, поскольку благодаря им распространились некоторые популярные сегодня концепции и подходы в области ОС и программного обеспечения . Также, в ходе разработки Unix-систем был создан язык Си .

Как и Multics , Unix была написана на языке высокого уровня, а не на ассемблере (доминировавшем в то время).

Она содержала значительно упрощённую, по сравнению с предшествующими ей операционными системами, файловую модель. Файловая система включала как службы, так и устройства (такие как принтеры , терминалы и жёсткие диски ) и предоставляла внешне единообразный интерфейс к ним, но дополнительные механизмы работы с устройствами (такие как IOCTL и биты доступа) не вписывались в простую модель «поток байтов».

Unix популяризовала предложенную в Multics идею иерархической файловой системы с произвольной глубиной вложенности. Другие операционные системы (в том числе DOS) того времени позволяли разбивать дисковое пространство на каталоги или разделы, но число уровней вложенности было фиксировано и, зачастую, уровень вложенности был только один. Позднее все основные фирменные операционные системы [ уточнить ] обрели возможность создания рекурсивных подкаталогов, также заимствованную из Multics.

То, что интерпретатор команд стал просто одной из пользовательских программ , а в качестве дополнительных команд выступают отдельные программы, является ещё одной инновацией Multics [ источник не указан 4099 дней ] , популяризированной Unix. Язык командной оболочки Unix используется пользователем как для интерактивной работы, так и для написания скриптов , то есть не существует отдельного языка описания заданий, как, например, в системе JCL фирмы IBM . Так как оболочка и команды операционной системы являются обычными программами, пользователь может выбирать их в соответствии со своими предпочтениями, или даже написать собственную оболочку. Наконец, новые команды можно добавлять к системе без перекомпиляции ядра . Новый, предложенный в командной строке Unix, способ создания цепочек программ, последовательно обрабатывающих данные, способствовал использованию параллельной обработки данных.

Существенными особенностями Unix были полная ориентация на текстовыйввод-вывод и предположение, что размер машинного слова кратен восьми битам. Первоначально в Unix не было даже редакторов двоичных файлов — система полностью конфигурировалась с помощью текстовых команд. Наибольшей и наименьшей единицей ввода-вывода служил текстовый байт , что полностью отличало ввод-вывод Unix от ввода-вывода других операционных систем, ориентированного на работу с записями. Ориентация на использование текста для представления всего, что только можно, сделала полезными т. н. конвейеры ( англ. pipelines ). Ориентация на текстовый восьмибитный байт сделала Unix более масштабируемой и переносимой, чем другие операционные системы. Со временем текстовые приложения одержали победу [ уточнить ] и в других областях, например, на уровне сетевых протоколов , таких как Telnet , FTP , SMTP , HTTP и других.

Unix способствовала широкому распространению регулярных выражений , которые были впервые реализованы в текстовом редакторе ed для Unix. Возможности, предоставляемые Unix-программам, стали основой стандартных интерфейсов операционных систем ( POSIX ).

Широко используемый в системном программировании язык Си , созданный изначально для разработки Unix, превзошёл Unix по популярности. Язык Си был первым «веротерпимым» языком, который не пытался навязать программисту тот или иной стиль программирования. Си был первым высокоуровневым языком, предоставляющим доступ ко всем возможностям процессора, таким как ссылки , таблицы , битовые сдвиги , инкременты и т. п. С другой стороны, свобода языка Си приводила к ошибкам переполнения буфера в таких функциях стандартной библиотеки Си, как gets и scanf . Результатом стали многие печально известные уязвимости, например, та, что эксплуатировалась в знаменитом черве Морриса .

Первые разработчики Unix способствовали внедрению принципов модульного программирования и повторного использования в инженерную практику.

Unix предоставлял возможность использования протоколов TCP/IP на сравнительно недорогих компьютерах, что привело к быстрому росту Интернета . Это, в свою очередь, способствовало быстрому обнаружению нескольких крупных уязвимостей в системе безопасности, архитектуре и системных утилитах Unix.

Со временем ведущие разработчики Unix разработали культурные нормы разработки программного обеспечения, которые стали столь же важны, как и сам Unix. ( подробнее… )

Одними из самых известных примеров Unix-подобных ОС являются macOS , Solaris , BSD и NeXTSTEP .

Социальная роль в сообществе ИТ-профессионалов и историческая роль

Первоначальные Unix работали на крупных многопользовательских компьютерах, к которым также предлагались и проприетарные ОС от производителя оборудования, такие как RSX-11 и её потомок VMS . Невзирая на то, что по ряду мнений [ чьих? ] тогдашний Unix имел недостатки по сравнению с данными ОС (например, отсутствие серьёзных движков баз данных), он был: а) дешевле, а иногда и бесплатен для академических учреждений; б) был портируем с оборудования на оборудование и разработан на портируемом языке Си, что «отвязывало» разработку программ от конкретной аппаратуры. Кроме того, «отвязанным» от аппаратуры и производителя оказался и опыт пользователя — человек, работавший с Unix на VAX, легко работал с ней же и на 68xxx, и так далее.

Производители аппаратуры в то время часто прохладно относились к Unix, считая её игрушечной, и предлагая свою проприетарную ОС для серьёзной работы — в первую очередь СУБД и основанных на них бизнес-приложений в коммерческих структурах. Известны комментарии по этому поводу от DEC по поводу её VMS . К этому прислушивались корпорации, но не академическая среда, которая имела всё для себя необходимое в Unix, зачастую не требовала официальной поддержки от производителя, справляясь своими силами, и ценила дешевизну и переносимость Unix. Таким образом, Unix была едва ли не первой переносимой на разную аппаратуру ОС.

Вторым резким взлётом Unix было появление RISC -процессоров около 1989 года. Ещё до того существовали т. н. workstations — персональные однопользовательские компьютеры большой мощности, имеющие достаточный объём памяти, жёсткого диска и достаточно развитую ОС (многозадачность, защита памяти) для работы с серьёзными приложениями, такими как CADы. Среди производителей таких машин выделялась компания Sun Microsystems , сделавшая себе на них имя.

До появления RISC-процессоров в этих станциях обычно использовался процессор Motorola 680x0 , тот же, что и в компьютерах фирмы Apple (хотя и под более развитой операционной системой, чем у Apple). Около 1989 года на рынке появились коммерческие реализации процессоров RISC-архитектуры. Логичным решением ряда компаний (Sun и других) был перенос Unix на эти архитектуры, что немедленно повлекло за собой и перенос всей экосистемы ПО для Unix.

Проприетарные серьёзные ОС, такие как VMS, начали свой закат именно с этого момента (даже если и удалось перенести на RISC саму ОС, всё было намного сложнее с приложениями под неё, которые в этих экосистемах зачастую разрабатывались на ассемблере или же на проприетарных языках типа BLISS), и Unix стал ОС для самых мощных компьютеров в мире.

Однако в это время экосистема PC начала переходить на GUI в лице Windows 3.0 . Огромные преимущества GUI, а также, например, унифицированная поддержка всех типов принтеров, были оценены и разработчиками, и пользователями. Это сильно подорвало позиции Unix на рынке PC — такие реализации, как SCO и Interactive UNIX , не справлялись с поддержкой Windows-приложений. Что же касается GUI для Unix, называемого X11 (были и иные реализации, много менее популярные), то он не мог полноценно работать на обычной пользовательской PC ввиду требований к памяти — для нормальной работы X11 требовалось 16 МБ, в то время как Windows 3.1 с достаточной производительностью исполняла и Word, и Excel одновременно в 8 МБ (это было стандартным размером памяти PC в то время). При высоких ценах на память это было лимитирующим фактором.

Успех Windows дал импульс внутреннему проекту Microsoft под названием Windows NT , которая была совместима с Windows по API, но при этом имела всё те же архитектурные особенности серьёзной ОС, что и Unix — многозадачность, полноценную защиту памяти, поддержку многопроцессорных машин, права доступа к файлам и каталогам, системный журнал. Также Windows NT представила журнальную файловую систему NTFS , которая по возможностям на тот момент превышала все стандартно поставляемые с Unix файловые системы — аналоги под Unix были только отдельными коммерческими продуктами от Veritas и других.

Хотя Windows NT и не была популярна первоначально, из-за высоких требований к памяти (те же 16 МБ), она позволила Microsoft выйти на рынок решений для серверов , например, СУБД . Многие в то время не верили в возможность Microsoft, традиционно специализирующейся на настольном ПО, быть игроком на рынке ПО масштаба предприятия, где уже были свои громкие имена, такие как Oracle и Sun. К этому сомнению добавлялся тот факт, что СУБД Microsoft — SQL Server — начинался как упрощённая версия Sybase SQL Server, лицензированная у Sybase и на 99 % совместимая по всем аспектам работы с ним.

Во второй половине 1990-х годов Microsoft начал теснить Unix и на рынке корпоративных серверов.

Совокупность вышеперечисленных факторов, а также обвал цен на 3D-видеоконтроллеры , ставшими из профессионального оборудования домашним, по сути убила само понятие workstation к началу 2000-х годов.

Кроме того, системы Microsoft проще в управлении, особенно в типовых сценариях использования.

Излишне говорить, что всё это не добавило положительных эмоций Unix-сообществу, а коммерческие Unix-системы от производителей аппаратуры, такие как Solaris, оказались просто под угрозой.

Но в данный момент начался третий резкий взлёт Unix.

Ещё в конце 1980-х годов Ричард Столлман подытожил те неформальные практики в отношении прав на ПО, что существовали в академической среде (откуда вышли и первоначальные поклонники Unix) и по сути являлись производными от принятых в этой среде прав на научные открытия и изобретения. Результатом явилась лицензия GPL .

Кроме того, Столлман и его товарищи прекрасно понимали, что для успеха не завязанного на корпорации программного обеспечения проприетарные средства разработки не подходят. Поэтому они разработали набор компиляторов для различных языков программирования ( gcc ), что вместе с разработанными ранее утилитами GNU (замена стандартных утилит Unix) составило необходимый и достаточно мощный пакет программ для разработчика.

Для создания полностью свободного Unix не хватало по сути только ядра ОС . И оно было разработано финским студентом Линусом Торвальдсом. Ядро было разработано «с нуля» и не является с точки зрения исходного кода деривативом ни BSD, ни System V (хотя концепты всё-таки заимствовались, например, Linux имел функции namei и bread), однако по ряду нюансов (системные вызовы, богатая /proc, отсутствие sysctk) — больше тяготеет к последней.

Первоначально Linux был в достаточной степени неразвитым и примитивным проектом. Однако он верно нашёл для себя нишу, сначала как учебного Unix (замена Minix Таненбаума), а затем — как раз тогда началось активное развитие Интернета — ивеб-сервера .

Серьёзным конкурентом Linux на тот момент была FreeBSD , однако «соборный» стиль управления разработкой в противовес «базарному» стилю Linux, а также куда большая техническая архаичность в таких вопросах, как поддержка многопроцессорных машин и форматы исполняемых файлов, сильно замедлила развитие FreeBSD по сравнению с Linux, сделав последний флагманом мира свободного ПО.

В дальнейшем Linux достигал всё новых и новых высот:

  • перенос серьёзных проприетарных продуктов, таких как Oracle ;
  • серьёзный интерес IBM к этой экосистеме как основе для своих вертикальных решений;
  • появление аналогов почти всех привычных программ из мира Windows;
  • отказ некоторых производителей оборудования от обязательной предустановки Windows;
  • выпуск нетбуков с одной лишь Linux;
  • использование в качестве ядра в Android .

На настоящий момент Linux является заслуженно популярной ОС для серверов, хотя и куда менее популярной на рабочих столах.

Некоторые архитектурные особенности ОС Unix

Особенности Unix, отличающие данное семейство от других ОС, приведены ниже.

  • Файловая система древовидная, чувствительная к регистру символов в именах, очень слабые ограничения на длину имён и пути.
  • Нет поддержки структурированных файлов ядром ОС, на уровне системных вызовов файл есть поток байтов.
  • Командная строка находится в адресном пространстве запускаемого процесса, а не извлекается системным вызовом из процесса интерпретатора команд (как это происходит, например, в RSX-11 ).
  • Понятие « переменных окружения ».
  • Запуск процессов вызовом fork(), то есть возможность клонирования текущего процесса со всем состоянием.
  • Понятия stdin/stdout/stderr.
  • Ввод-вывод только через дескрипторы файлов .
  • Традиционно крайне слабая поддержка асинхронного ввода-вывода , по сравнению с VMS и Windows NT.
  • Интерпретатор команд есть обыкновенное приложение, общающееся с ядром обыкновенными системными вызовами (в RSX-11 и VMS интерпретатор команд выполнялся как специальное приложение, специальным образом размещённое в памяти, пользующееся специальными системными вызовами, поддерживались также системные вызовы, дающие возможность приложению обращаться к своему родительскому интерпретатору команд).
  • Команда командной строки есть не более чем имя файла программы, не требуется специальная регистрация и специальная разработка программ как команд (что являлось обычной практикой в RSX-11 , RT-11 ).
  • Не принят подход с программой, задающей пользователю вопросы о режимах своей работы, вместо этого используются параметры командной строки (в VMS , RSX-11 , RT-11 программы работали также с командной строкой, но при её отсутствии выдавали запрос на ввод параметров).
  • Пространство имён устройств на диске в каталоге /dev, поддающееся управлению администратором, в отличие от подхода Windows, где это пространство имён размещается в памяти ядра, и администрирование этого пространства (например, задание прав доступа) крайне затруднено из-за отсутствия его постоянного хранения на дисках (строится каждый раз при загрузке).
  • Широкое использование текстовых файлов для хранения настроек, в отличие от двоичной базы данных настроек, как, например, в Windows.
  • Широкое использование утилит обработки текста для выполнения повседневных задач под управлением скриптов.
  • «Раскрутка» ОС после загрузки ядра путём исполнения скриптов стандартным интерпретатором команд.
  • Широкое использование именованных каналов (pipe) .
  • Все процессы, кроме init , равны между собой, не бывает «специальных процессов».
  • Адресное пространство делится на глобальное для всех процессов ядро и на локальную для процесса части, нет «групповой» части адресного пространства, как в VMS и Windows NT, как и возможности загрузки туда кода и его исполнения там.
  • Использование двух уровней привилегий процессора вместо четырёх в VMS .
  • Отказ от использования оверлеев в пользу деления программы на несколько программ поменьше, общающихся через именованные каналы или временные файлы.
  • Отсутствие APC и аналогов, то есть произвольных (а не жёстко перечисленных в стандартном множестве) сигналов, не доставляемых до явного пожелания процесса их получить (Windows, VMS ).
  • Концепция сигнала уникальна для Unix, и крайне сложна в переносе на другие ОС, такие как Windows.

Стандарты

Низкоуровневый графический интерфейс через X

Большое количество разных вариантов системы Unix привело к необходимости стандартизовать её средства, чтобы упростить переносимость приложений и избавить пользователя от необходимости изучать особенности каждой разновидности Unix.

С этой целью ещё в 1980 году была создана пользовательская группа /usr/group . Первые стандарты были разработаны в 1984—1985 гг.

Одним из самых первых стандартов стала спецификация System V Interface Definition (SVID), выпущенная UNIX System Laboratories (USL) одновременно с UNIX System V Release 4. Этот документ, однако, не стал официальным.

Наряду с версиями UNIX System V существовало направление Unix BSD . Для того, чтобы обеспечить совместимость System V и BSD , были созданы рабочие группы POSIX ( P ortable O perating S ystem I nterface for UNI X ). Существует много стандартов POSIX, однако наиболее известным является стандарт POSIX 1003.1-1988, определяющий программный интерфейс приложений (API, Application Programming Interface). Он используется не только в Unix, но и в других операционных системах. ( подробнее… ) В 1990 он был принят институтом IEEE как IEEE 1003.1-1990, а позднее — ISO/IEC 9945.

В настоящее время наиболее важными являются следующие стандарты ( подробнее… ):

  • POSIX 1003.2-1992, определяющий поведение утилит, в том числе командного интерпретатора;
  • POSIX 1003.1b-1993, дополняющий POSIX 1003.1-1988, — определяет поддержку систем реального времени;
  • POSIX 1003.1c-1995, дополняющий POSIX 1003.1-1988, — определяет потоки (threads), известные также как pthreads.

Все стандарты POSIX объединены в документе IEEE 1003.

В начале 1990-х годов The Open Group предложила другой, похожий на POSIX стандарт — Common API Specification , или Spec 1170. Стандарт приобрёл бо́льшую популярность, чем POSIX, поскольку был доступен бесплатно, в то время как IEEE требовало немалую плату за доступ к своему стандарту.

В 1998 году были начаты работы по объединению данных стандартов. Благодаря этому в настоящее время данные стандарты почти идентичны. Совместный стандарт называется Single UNIX Specification Version 3 и доступен бесплатно в интернете [8] .

В целях совместимости несколько создателей Unix-систем предложили использовать ELF — формат систем SVR4 для двоичных и объектных файлов . Единый формат полностью [ источник не указан 4099 дней ] обеспечивает соответствие двоичных файлов в рамках одной компьютерной архитектуры.

Структура каталогов некоторых систем, в частности, GNU/Linux , определена в стандарте Filesystem Hierarchy Standard . Однако, во многих отношениях этот тип стандарта является спорным, и он, даже внутри сообщества GNU/Linux, далеко не универсален [ источник не указан 4099 дней ] .

Стандартные команды ОС Unix

Команда man может отображать страницу руководства для любой команды в системе.

Ниже приведён список 60 команд из раздела 1 первой версии Unix:

См. также классифицированный список команд Unix-систем .

См. также

Примечания

  1. Single UNIX Specification FAQ . www.opengroup.org. Дата обращения: 16 февраля 2016.
  2. UNIX Certification -- The UNIX System -- The Brand . www.unix.org. Дата обращения: 16 февраля 2016.
  3. OS Statistics (англ.) . www.w3schools.com. Дата обращения: 23 марта 2019.
  4. Special Feature: UNIX (англ.) // InfoWorld : журнал. — 1982. — 29 November. — P. 124 . — ISSN 0199-6649 .
  5. Вахалия Ю. UNIX изнутри. — СПб.: Питер, 2003. — С. 33.
  6. Novell лишили авторских прав на Unix (недоступная ссылка) (25.08.09). Дата обращения: 10 июня 2010. Архивировано 12 июня 2013 года.
  7. SCO окончательно проиграла в деле против Novell (14.06.10). Дата обращения: 14 июня 2010.
  8. The Open Group . Single UNIX Specification Version 3 (1998). Дата обращения: 10 июня 2010. Архивировано 22 августа 2011 года.

Литература

Ссылки

Подборка ссылок по теме

Понятие

Шепелев В. Ну и как тебя называть? . Компьютерра (01.06.10). Дата обращения: 10 июня 2010.

История

Учебники

  • С. Д. Кузнецов. Операционная система Unix . Центр Информационных Технологий. — учебное пособие. Дата обращения: 24 июля 2011.

На английском