Знаймо

Додати знання

приховати рекламу

Цей текст може містити помилки.

UNIX



План:


Введення

Генеалогічне древо UNIX-систем

UNIX (читається юнікс) - сімейство переносите, багатозадачних і багатокористувацьких операційних систем.

Перша система UNIX була розроблена в 1969 в підрозділі Bell Labs компанії AT & T. З тих пір була створена велика кількість різних UNIX-систем. Юридично лише деякі з них мають повне право називатися "UNIX", решта ж, хоча і використовують подібні концепції і технології, поєднуються терміном "UNIX-подібні" ( англ. Unix-like ). Для стислості в даній статті під UNIX-системами маються на увазі як справжні UNIX, так і UNIX-подібні ОС.

Деякі відмітні ознаки UNIX-систем включають в себе:

  • використання простих текстових файлів для настройки та управління системою;
  • широке застосування утиліт, що запускаються в командному рядку;
  • взаємодія з користувачем за допомогою віртуального пристрою - терміналу;
  • уявлення фізичних і віртуальних пристроїв і деяких засобів межпроцессового взаємодії як файлів;
  • використання конвеєрів з декількох програм, кожна з яких виконує одну задачу.

В даний час UNIX-системи використовуються в основному на серверах, а також як вбудовані системи для різного устаткування. На ринку ОС для робочих станцій і домашнього застосування лідером є Microsoft Windows, UNIX займає тільки друге ( Mac OS X), третє ( GNU / Linux) і багато наступні місця.

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

Серед прикладів відомих UNIX-подібних операційних систем: BSD, Solaris, Linux, Android, MeeGo, NeXTSTEP, Mac OS X, Apple iOS.


1. Історія

1.1. Попередники

Варіанти Unix по роках

В 1957 в Bell Labs була розпочата робота по створенню операційної системи для власних потреб. Під керівництвом Віктора Висоцького (росіянина за походженням) була створена система BESYS. Згодом він очолив проект Multics, а потім став головою інформаційного підрозділу Bell Labs.

В 1964 з'явилися комп'ютери третього покоління, для яких можливості BESYS вже не підходили. Висотський і його колеги прийняли рішення не розробляти нову власну операційну систему, а підключитися до спільного проекту General Electric і Массачусетського технологічного інституту Multics. Телекомунікаційний гігант AT & T, до складу якого входили Bell Labs, надав проекту істотну підтримку, але в 1969 вийшов з проекту, оскільки він не приносив жодних фінансових вигід.


1.2. Перші UNIX

Спочатку UNIX була розроблена наприкінці 1960-х років співробітниками Bell Labs, у першу чергу Кеном Томпсоном, Деннісом Рітчі та Дугласом Макілроем.

В 1969 Кен Томпсон, прагнучи реалізувати ідеї, які були покладені в основу MULTICS, але на більш скромному апаратному забезпеченні ( DEC PDP-7), написав першу версію нової операційної системи, а Брайан Керніган придумав для неї назву - UNICS (UNIplexed Information and Computing System) - на противагу MULTICS (MULTIplexed Information and Computing Service). Пізніше ця назва скоротилась до UNIX.

У листопаді 1971 вийшла версія для PDP-11, найбільш успішного сімейства мінікомп'ютерів 1970-хСРСР його аналоги, що випускалися Міністерством електронної промисловості були відоме як СМ ЕОМ і "Електроніка", пізніше ДВК, вироблялися в Києві, Воронежі, Зеленограді). Ця версія отримала назву "перша редакція" (Edition 1) і була першою офіційною версією. Системний час все реалізації UNIX відраховують з 1 січня 1970.

Перші версії UNIX були написані на асемблері і не мали вбудованого компілятора з мовою високого рівня. Приблизно в 1969 році Кен Томпсон за сприяння Денніса Рітчі розробив і реалізував мову Бі (B), який представляв собою спрощений (для реалізації на мінікомп'ютерах) варіант розробленого в 1966 мови BCPL. Бі, як і BCPL, був інтерпретується мовою. У 1972 році була випущена друга редакція UNIX, переписана на мові Бі. У 1969-1973 роках на основі Бі був розроблений компільований мову, який отримав назву Сі (C).

В 1973 вийшла третя редакція UNIX, з вбудованим компілятором мови Сі. 15 жовтня того ж року з'явилася четверта редакція, з переписаним на Сі системним ядром (в дусі системи Multics, також написаної мовою високого рівня ПЛ / 1), а в 1975 - п'ята редакція, повністю переписана на Сі.

З 1974 UNIX став поширюватися серед університетів та академічних установ. З 1975 почалося поява нових версій, розроблених за межами Bell Labs, і зростання популярності системи. У тому ж 1975 Bell Labs випустила шосту редакцію, відому по широко розійшлися коментарям Джона Лайонса [1].

До 1978 система була встановлена ​​більш ніж на 600 машинах, перш за все, в університетах. Сьома редакція була останньою єдиної версією UNIX. Саме в ній з'явився близький до сучасного інтерпретатор командного рядка Bourne shell.


1.3. Розкол

На початку 1980-х компанія AT & T, якій належали Bell Labs, усвідомила цінність UNIX та почала створення комерційної версії UNIX. Ця версія, що надійшла в продаж у 1982, носила назву UNIX System III і була заснована на сьомій версії системи.

Однак, компанія не могла в пряму почати розвиток UNIX як комерційного продукту через заборону, накладеного урядом США в 1956 році. Міністерство юстиції змусило AT & T підписати угоду, що забороняло компанії займатися діяльністю, не пов'язаної з телефонними і телеграфними мережами та обладнанням. Для того, щоб все-таки мати можливість перевести UNIX в ранг комерційних продуктів, компанія передала вихідний код операційної системи деяким вищим навчальним закладам, ліцензуваливідповідну код під дуже ліберальними умовами. У грудні 1973 року (одним з перших) вихідні коди отримав університет Берклі [2].

З 1978 починає свою історію BSD UNIX, створений в університеті Берклі. Його перша версія була заснована на шостій редакції. В 1979 випущена нова версія, названа 3BSD, заснована на сьомий редакції. BSD підтримував такі корисні властивості, як віртуальну пам'ять і заміщення сторінок на вимогу. Автором BSD був Білл Джой.

Важливою причиною розколу UNIX стала реалізація у 1980 стека протоколів TCP / IP. До цього міжмашинна взаємодія в UNIX перебувала у зародковому стані - найбільш суттєвим способом зв'язку був UUCP (засіб копіювання файлів з ​​однієї UNIX-системи в іншу, спочатку працювало через телефонні мережі за допомогою модемів).

Було запропоновано два інтерфейси програмування мережевих програм: Berkley sockets ( сокет Берклі) і інтерфейс транспортного рівня TLI ( англ. Transport Layer Interface ). Інтерфейс Berkley sockets був розроблений в університеті Берклі та використовував стек протоколів TCP / IP, розроблений там же. TLI був створений AT & T у відповідності з визначенням транспортного рівня моделі OSI та вперше з'явився у системі System V версії 3. Хоча ця версія містила TLI та потоки, спочатку в ній не було реалізації TCP / IP та інших мережевих протоколів, але подібні реалізації надавалися сторонніми фірмами. Реалізація TCP / IP офіційно та остаточно була включена у базову поставку System V версії 4. Це, як і інші міркування (здебільшого, ринкові), викликало остаточне розмежування між двома гілками UNIX - BSD (університету Берклі) та System V (комерційна версія від AT & T). Згодом, багато компаній, ліцензуваливідповідну System V у AT & T, розробили власні комерційні різновиди UNIX, такі як AIX, CLIX, HP-UX, IRIX, Solaris.

В середині 1983 була випущена версія BSD 4.2, що підтримує роботу в мережах Ethernet і Arpanet. Система стала дуже популярною. Між 1983 і 1990 роком в BSD було додано багато нових можливостей, таких як відладчик ядра, мережева файлова система NFS, віртуальна файлова система VFS, і істотно поліпшені можливості роботи з файловими мережами.

Тим часом AT & T випускала нові версії своєї системи, названої System V. У 1983 була випущена версія 1 (SVR1 - System V Release 1), що включала повноекранний текстовий редактор vi, бібліотеку curses, буферизацію введення-виведення, кешування inode. Версія 2 (SVR2), випущена в 1984, реалізовувала монопольний доступ до файлів (file locking), доступ до сторінок на вимогу (demand paging), копіювання при запису (copy-on-write). Версія 3 вийшла в 1987 і включала, серед іншого, TLI, а також систему підтримки віддалених файлових систем RFS. Версія 4 (SVR4), розроблена у співпраці з фірмою Sun і вийшла 18 жовтня 1988, підтримувала багато можливостей BSD, зокрема TCP / IP, сокети, новий командний інтерпретатор csh. Крім того, там було багато інших додатків, таких як символічні посилання, командний інтерпретатор ksh, мережева файлова система NFS (запозичена у SunOS) і т. д.

Сучасні реалізації UNIX, як правило, не є системами V або BSD в чистому вигляді. Вони реалізують можливості як System V, так і BSD.


1.4. Вільні UNIX-подібні операційні системи

Робочий стіл KDE

В 1983 Річард Столлмена оголосив про створення проекту GNU - спроби створення вільної UNIX-подібної операційної системи з нуля, без використання оригінального вихідного коду. Більша частина програмного забезпечення, розробленого в рамках даного проекту, - такого як GNU toolchain, Glibc (стандартна бібліотека мови Сі) і Coreutils - грає ключову роль в інших вільних операційних системах. Однак, роботи по створенню заміни для ядра UNIX, необхідні для повного виконання завдань GNU, просувалися вкрай повільно. В даний час GNU Hurd - спроба створити сучасне ядро на основі мікроядерної архітектури Mach - все ще далека від завершення.

В 1991, коли Лінус Торвальдс опублікував ядро Linux і привернув помічників, використання інструментів, розроблених в рамках проекту GNU, було очевидним вибором. Операційна система GNU і ядро Linux разом складають ОС, відому, як GNU / Linux. Дистрибутиви цієї системи (такі як Red Hat і Debian), які включають ядро, утиліти GNU та додаткове програмне забезпечення стали популярними як серед аматорів, так і серед представників бізнесу.

На початку 1992 вийшов дистрибутив 386/BSD, заснований на дистрибутиві Networking Release 2, поширюваний компанією BSDI за $ 995 з "жахливою знижкою" в 99% в порівнянні з ціною System V. [Джерело не вказано 658 днів] UNIX Systems Laboratories подала позов проти BSDI, а потім проти університету Берклі, яка допустила поширення файлів UNIX у вихідних і двійкових форматах фактично за безцінь, що підривало бізнес самої USL. Весь 1992 рік ніяких значних успіхів у судовому позові для USL не приніс, зате з'явився зустрічний позов від Каліфорнійського університету. До початку 1993 року дистрибутив 386/BSD поміняв свою назву на NetBSD. У грудні 1993 року з'явився інший дистрибутив - FreeBSD, націлений на простих користувачів. Після придбання USL компанією Novell до літа 1993 року почалися переговори по врегулюванню статусу кодів BSD. До січня 1994 CSRG і Novell домовилися видалити три файли з 18000 Networking Release 2, частина файлів повинна бути піддана правці, а до приблизно 70 файлів університет повинен був додати інформацію про копірайт USL. У червні 1994 року вийшов "чистий" випуск 4.4BSD-Lite. Ось з цього моменту групи BSDI, NetBSD і FreeBSD повинні були повторно синхронізувати свої версії систем з "чистою" системою 4.4BSD-Lite. Таким чином, всі напрацювання, зроблені за три роки з моменту подачі позову USL, довелося переглядати на предмет порушення авторських прав і використання стороннього коду. Переписувати важливі складові ядра та операційного оточення. Значно пізніше виділилися в самостійні проекти OpenBSD, TrustedBSD і DragonFlyBSD.

14 червня 2005 був відкритий вихідний код операційної системи Solaris. Цей проект, як і створена на його основі операційна система, отримали назву OpenSolaris. 17 червня, через три дні після відкриття коду, був створений дистрибутив SchilliX. У травні 2008 з'явився перший офіційний дистрибутив OpenSolaris 2008.05. Існує більше десяти дистрибутивів на основі OpenSolaris, найбільш відомі з яких BeleniX і Nexenta OS.

На даний момент GNU / Linux та представники сімейства BSD швидко відвойовують ринок у комерційних UNIX-систем та одночасно проникають як на настільні комп'ютери кінцевих користувачів, так і на мобільні і вбудовувані системи. Одним із свідчень даного успіху служить той факт, що, коли фірма Apple шукала основу для своєї нової операційної системи, вона вибрала NEXTSTEP - операційну систему з вільно розповсюджуваним ядром, розроблену фірмою NeXT і перейменовану в Darwin після придбання фірмою Apple. Дана система відноситься до сімейства BSD та базується на ядрі Mach. Застосування Darwin BSD UNIX у Mac OS X робить його однією з найбільш широко використовуваних версій UNIX.


1.5. Сучасність

Після поділу компанії AT & T, товарний знак UNIX і права на оригінальний вихідний код неодноразово змінювали власників, зокрема, вони тривалий час належали компанії Novell.

В 1993 Novell передала права на товарний знак і на сертифікацію програмного забезпечення на відповідність цьому знаку консорціуму X / Open, який потім об'єднався з Open Software Foundation, утворивши консорціум The Open Group. Він об'єднує провідні комп'ютерні корпорації і державні організації, у тому числі IBM, Hewlett-Packard, Sun, NASA і багато інших. Консорціум займається розробкою відкритих стандартів в області операційних систем, найважливішим з яких є Single UNIX Specification, ранее известный как POSIX. С точки зрения The Open Group, название UNIX могут носить только системы, прошедшие сертификацию на соответствие Single UNIX Specification.

В 1995 году Novell продала права на существующие лицензии и дальнейшую разработку System V компании Santa Cruz Operation. В 2000 году Santa Cruz Operation продала свой UNIX-бизнес компании Caldera, которая затем была переименована в SCO Group. Хотя это название похоже на аббревиатуру SCO, используемую Santa Cruz Operation, это две разные компании.

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


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

Идеи, заложенные в основу UNIX, оказали огромное влияние на развитие компьютерных операционных систем. В настоящее время UNIX-системы признаны одними из самых исторически важных ОС.

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

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

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

То, что интерпретатор команд стал просто одной из пользовательских программ, а в качестве дополнительных команд выступают отдельные программы, является ещё одной инновацией Multics [ источник не указан 658 дней ] , популяризированной 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. ( подробнее...)


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

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

Все это привело к зарождению в западной академической среде прослойки фанатов UNIX, считавших ее чуть ли "совершенством от Бога" (англоязычный фольклор 1980х на эту тему есть, например, в /usr/games/fortune).

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

Таким образом, UNIX была едва ли не первой переносимой на разную аппаратуру ОС.

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

До появления RISC-процессоров эти станции обычно пользовались процессором Motorola 68xxx, тем же, что на персоналках фирмы Apple (хотя и под куда более развитой ОС, чем у Apple).

Популярности workstations, невзирая на в общем обычную производительность процессора, способствовало наличие чудовищных огрехов в архитектуре x86 (сегментная архитектура) и MS-DOS (написана на ассемблере, принципиально не многозадачна, не совместима с защитой памяти, и написана под сегментную архитектуру), которая создавала огромные затруднения в реализации на этом оборудовании защиты памяти (да и просто поддержки памяти выше 640К) при сохранении совместимости с MS-DOS и всей экосистемой ПО для данной платформы, а также в портировании ПО с других архитектур на IBM PC. Невзирая на появление ряда "костылей" (EMS, XMS, DPMI) для обхода этих огрехов (некоторые из "костылей" при этом требовали процессора 386, на тот момент дорогого high-end), ряд серьёзных наименований ПО (таких, как движки баз данных и CADы) так и не был перенесен на PC, что создавало потребность в workstation для использования этого ПО.

Около 1989 года на рынке появились коммерческие реализации процессоров RISC -архитектуры, которые имели на тот момент много большую производительность, чем x86 и 68xxx, но ценой полной несовместимости по ассемблеру. Логичным решением ряда компаний (Sun и других) был перенос UNIX на эти архитектуры, что немедленно повлекло за собой и перенос всей экосистемы ПО для UNIX.

Таким образом, через посредство UNIX мир получил самые мощные на тот момент компьютеры общего назначения.

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

С этого момента сообщество фэнов UNIX получило новую поддержку для своего убеждения том, что UNIX есть лучшая в мире ОС всех времен и народов, далеко превосходящая конкурентов (в случае MS-DOS это было бесспорной правдой).

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

Успех Windows как GUI для рабочих столов дал импульс внутреннему проекту 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 % совместимая по всем аспектам работы с ним.

Это породило в сообществе фэнов UNIX серьёзную нелюбовь к Microsoft, которая была особенно подогрета нарушениями антимонопольного законодательства, в коих MS была замечена еще во времена MS-DOS, а также довольно успешным на тот момент попыткам MS подмять под себя Internet (через вывод Internet Explorer во флагманы индустрии, чему отчасти способствовало объединение IE и Windows, послужившее причиной антимонопольных исков и сомнительное юридически), что начался в мире UNIX.

Во второй половине 1990-х годов Microsoft начал теснить UNIX и на рынке корпоративных серверов. Этому способствовало, например, то, что Intel'у таки удалось создать x86-совместимый процессор с производительностью не хуже RISC-машин - Pentium, что дало новое дыхание архитектуре PC, более не отстававшей от workstations ни по производительности, ни - в случае использования Windows NT - в общем и целом и по степени развитости ОС.

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

Кроме того, системы Microsoft проще в управлении, особенно в типовых сценариях использования, что размыло в США рынок труда ИТ-профессионалов и позволило заменить UNIX-гуру чуть ли не недоучками, умеющими установить Windows.

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

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

Еще в конце 80-х годов Ричард Столлман подытожил те неформальные практики в отношении прав на ПО, что существовали в академической среде (откуда вышли и первоначальные поклонники 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 есть заслуженно популярная ОС для серверов, хотя и куда менее популярная на рабочих столах.


2. Некоторые архитектурные особенности ОС 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.

3. Стандарти

Низкоуровневый графический интерфейс через 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 і доступний безкоштовно в інтернеті [5].

З метою сумісності кілька творців UNIX-систем запропонували використовувати ELF - формат систем SVR4 для двійкових та об'єктних файлів. Єдиний формат повністю [Джерело не вказано 658 днів] забезпечує відповідність двійкових файлів в рамках однієї комп'ютерної архітектури.

Структура каталогів деяких систем, зокрема, GNU / Linux, визначена в стандарті Filesystem Hierarchy Standard. Однак, у багатьох відношеннях цей тип стандарту є спірним, і він, навіть усередині співтовариства GNU / Linux, далеко не універсальний [Джерело не вказано 658 днів] .


4. Стандартні команди ОС UNIX

Команда man може відображати сторінку керівництва для будь-якої команди в системі.
Приклад роботи з файловою структурою.

Нижче наведено список 60 команд з розділу 1 першої версії UNIX:


Примітки

  1. (Lions 'Commentary on UNIX 6th Edition, with Source Code, [1] - www.lemis.com / grog / Documentation / Lions / index.html, [2] - www.tom-yam.or.jp/2238/src / (Яп.) )
  2. UNIX зсередини / Ю. Вахалія. - СПб.: Питер, 2003. - С. 33.
  3. Novell позбавили авторських прав на Unix - www.securitylab.ru/news/384123.php (25.08.09). Статичний - www.webcitation.org/616bAXc94 з першоджерела 21 серпня 2011.
  4. SCO остаточно програла в справі проти Novell - www.securitylab.ru/news/394661.php (14.06.10). Статичний - www.webcitation.org/617wogohg з першоджерела 22 серпня 2011.
  5. The Open Group Single UNIX Specification Version 3 - www.unix.org / what_is_unix / single_unix_specification.html (1998). Статичний - www.webcitation.org/617wppgOg з першоджерела 22 серпня 2011.

Цей текст може містити помилки.

Схожі роботи | скачати

Схожі роботи:
UNIX-час
Amiga UNIX
UNIX-подібна операційна система
Підсистема для застосунків на базі UNIX
© Усі права захищені
написати до нас
Рейтинг@Mail.ru