Unix: различия между версиями

[отпатрулированная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
Описана философия UNIX
м UNIX -> Unix, викификация, ёфикация
Строка 1:
[[Файл:Unix history-simple.svg|thumb|Генеалогическое древо Unix-систем]]'''UNIXUnix'''  («UNIX» является зарегистрированной торговой маркой организации [[The Open Group]]<ref>{{Cite web|accessdate = 2016-02-16|title = Single UNIX Specification FAQ|url = http://www.opengroup.org/austin/papers/single_unix_faq.html|publisher = www.opengroup.org}}</ref>) — семейство [[Переносимость (программное обеспечение)|переносимых]], [[многозадачность|многозадачных]] и [[многопользовательская система|многопользовательских]] [[операционная система|операционных систем]], которые основаны на идеях оригинального проекта [[AT&T]] UNIXUnix, разработанного в 1970-х годах в исследовательском центре [[Bell Labs]] Кеном Томпсоном, Деннисом Ритчи и другими.
[[Файл:Unix history-simple.svg|thumb|Генеалогическое древо UNIX-систем]]
'''UNIX''' — семейство [[Переносимость (программное обеспечение)|переносимых]], [[многозадачность|многозадачных]] и [[многопользовательская система|многопользовательских]] [[операционная система|операционных систем]], которые основаны на идеях оригинального проекта [[AT&T]] UNIX, разработанного в 1970-х годах в исследовательском центре [[Bell Labs]] Кеном Томпсоном, Деннисом Ритчи и другими.
 
Операционные системы семейства UNIXUnix характеризуются модульным дизайном, в котором каждая задача выполняется отдельной утилитой, взаимодействие осуществляется через единую [[FHS|файловую систему]], а для [[Интерфейс командной строки|работы с утилитами]] используется [[Командная оболочка UNIX|командная оболочка]].
 
Идеи, заложенные в основу UNIXUnix, оказали огромное влияние на развитие компьютерных операционных систем. В настоящее время UNIXUnix-системы признаны одними из самых исторически важных ОС.
 
== Обзор ==
Строка 11 ⟶ 10 :
[[Файл:UNIX®.png|ссылка=https://ru.wikipedia.org/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:UNIX%C2%AE.png|мини|Логотип '''UNIX'''.]]
 
Первая система UNIXUnix была разработана в подразделении [[Bell Labs]] компании [[AT&T]]. С тех пор было создано большое количество различных UNIXUnix-систем. Юридически право называться «UNIX» имеют лишь те операционные системы, которые прошли сертификацию на соответствие стандарту [[Single UNIX Specification]].<ref>{{Cite web|accessdate = 2016-02-16|title = UNIX Certification -- The UNIX System -- The Brand|url = http://www.unix.org/what_is_unix/the_brand.html|publisher = www.unix.org}}</ref> Остальные же, хотя и используют сходные концепции и технологии, называются [[UNIXUnix-подобная операционная система|UNIXUnix-подобными операционными системами]] ({{lang-en|UNIXUnix-like}}). Для краткости, в данной статье под UNIXUnix-системами подразумеваются как истинные UNIXUnix, так и UNIXUnix-подобные [[операционная система|ОС]].
 
=== Особенности ===
Основное отличие UNIXUnix-подобных систем от других операционных систем заключается в том, что это изначально многопользовательские многозадачные системы. В Unix может одновременно работать сразу много людей, каждый за своим [[Терминальный сервер|терминалом]], при этом каждый из них может выполнять множество различных вычислительных процессов, которые будут использовать ресурсы именно этого компьютера.
 
Вторая колоссальная заслуга Unix  — в её мультиплатформенности. Ядро системы разработано таким образом, что его легко можно приспособить практически под любой микропроцессор.
 
UNIXUnix имеет и другие характерные особенности:
* использование простых [[текстовый файл|текстовых файлов]] для настройки и управления системой;
* широкое применение утилит, запускаемых из [[интерфейс командной строки|командной строки]];
* взаимодействие с пользователем посредством виртуального устройства  — терминала;
* представление физических и виртуальных устройств и некоторых средств межпроцессового взаимодействия в виде [[файл]]ов;
* использование [[Перенаправление (UNIXUnix)#.D0.9A.D0.BE.D0.BD.D0.B2.D0.B5.D0.B9.D0.B5.D1.80.D1.8B|конвейеров]] из нескольких программ, каждая из которых выполняет одну задачу.
 
=== Применение ===
В настоящее время UNIXUnix-системы распространены в основном среди [[Сервер (аппаратное обеспечение)|серверов]], а также как встроенные системы для различного оборудования, включая [[смартфон]]ы. Среди ОС для [[рабочая станция|рабочих станций]] и домашнего применения UNIXUnix и UNIXUnix-подобные ОС занимают после [[Microsoft Windows]] второе ([[macOS]]), третье ([[GNU/Linux]]) и многие последующие места по популярности.
 
== История ==
Строка 34 ⟶ 33 :
В [[1957 год]]у в [[Bell Labs]] была начата работа по созданию операционной системы для внутренних нужд. Под руководством [[Высотский, Виктор Александрович|Виктора Высотского]] была создана система [[BESYS]]. Впоследствии он возглавил проект [[Multics]], а затем стал главой информационного подразделения Bell Labs.
 
В [[1964 год]]у появились компьютеры третьего поколения, для которых возможности BESYS уже не подходили. Высотский и его коллеги приняли решение не разрабатывать новую собственную операционную систему, а подключиться к Multics  — совместному проекту [[General Electric]] и [[Массачусетский технологический институт|MIT]]. Телекоммуникационный гигант [[AT&T]], в состав которого входила Bell Labs, оказал проекту существенную поддержку, но в [[1969 год]]у вышел из него, поскольку проект не приносил финансовых выгод.
 
=== Первые UNIXUnix-системы ===
[[Файл:Ken n dennis.jpg|thumb|[[Томпсон, Кен|Кен Томпсон]] и [[Ритчи, Деннис|Деннис Ритчи]]  — создатели UNIXUnix]]
Первоначально UNIXUnix была разработана в конце [[1960-е|1960-х годов]] сотрудниками Bell Labs, в первую очередь [[Томпсон, Кен|Кеном Томпсоном]], [[Ритчи, Деннис|Деннисом Ритчи]] и [[Макилрой, Дуглас|Дугласом Макилроем]].
 
В [[1969 год]]у Кен Томпсон, стремясь реализовать идеи, которые были положены в основу Multics, но на более скромном аппаратном обеспечении (DEC [[PDP-7]]), написал ''первую версию'' новой операционной системы для этих мини-компьютеров 70-х (в [[Союз Советских Социалистических Республик|СССР]] его аналоги, выпускавшиеся [[Министерство электронной промышленности СССР|Министерством электронной промышленности]], были известны как [[СМ ЭВМ]] и «[[Электроника (торговая марка)|Электроника]]», позже [[Диалоговый вычислительный комплекс|ДВК]], производились в [[Киев]]е, [[Воронеж]]е, [[Зеленоград]]е). Эта версия получила название «первая редакция» (''Edition 1'') и была первой официальной версией. Системное время все реализации UNIXUnix [[UNIXUnix-время|отсчитывают]] с [[1 января]] [[1970 год]]а.
 
Первые версии UNIXUnix были написаны на [[язык ассемблера|ассемблере]] и не имели встроенного [[компилятор]]а с [[Высокоуровневый язык программирования|языком высокого уровня]]. Примерно в 1969 году Кен Томпсон при содействии Денниса Ритчи разработал и реализовал язык [[Би (язык программирования)|Би]] (B), представлявший собой упрощённый (для реализации на мини-компьютерах) вариант разработанного в [[1966]] языка [[BCPL]]. Би, как и BCPL, был [[Интерпретатор|интерпретируемым]] языком. В 1972 году была выпущена ''вторая редакция'' UNIXUnix, переписанная на языке Би. В 1969—1973  гг. на основе Би был разработан компилируемый язык, получивший название [[Си (язык программирования)|Си]] (C).
 
В [[1973 год]]у вышла ''третья редакция'' UNIX,Unix со встроенным компилятором языка Си. [[15 октября]] того же года появилась ''четвёртая редакция'', с переписанным на Си [[Ядро операционной системы|системным ядром]] (в духе системы Multics, также написанной на языке высокого уровня [[ПЛ/1]]), а в [[1975]]  — ''пятая редакция'', полностью переписанная на Си.
 
С [[1974 год]]а UNIXUnix стал распространяться среди университетов и академических учреждений. С [[1975 год]]а началось появление новых версий, разработанных за пределами Bell Labs, и рост популярности системы. В том же 1975 году Bell Labs выпустила ''шестую редакцию'', известную по широко разошедшимся [[Комментарии Лайонса к 6-й версии UNIXUnix, с исходным кодом|комментариям Джона Лайонса]].
 
К [[1978 год]]у система была установлена более чем на 600 машинах, прежде всего, в университетах{{нет АИ|15|06|2010}}. ''Седьмая редакция'' была последней единой версией UNIXUnix. Именно в ней появился близкий к современному интерпретатор [[интерфейс командной строки|командной строки]] [[Bourne shell]].
 
=== Раскол ===
В начале [[1980-е|1980-х]] компания AT&T, которой принадлежала Bell Labs, осознала ценность UNIXUnix и начала создание [[Коммерческое программное обеспечение|коммерческой]] версии ОС. Эта версия, поступившая в продажу в [[1982 год]]у, носила название UNIX System III и была основана на седьмой версии системы.
 
Однако компания не могла напрямую начать развитие UNIXUnix как коммерческого продукта из-за запрета, наложенного правительством США в [[1956  год]]у. [[Министерство юстиции США|Министерство юстиции]] вынудило AT&T подписать соглашение, [[Антимонопольное регулирование|запрещавшее]] компании заниматься деятельностью, не связанной с телефонными и телеграфными сетями и оборудованием. Для того чтобы всё-таки иметь возможность перевести UNIXUnix в ранг коммерческих продуктов, компания передала исходный код операционной системы некоторым высшим учебным заведениям, лицензировав код под очень либеральными условиями. В декабре [[1973  год]]а одним из первых исходные коды получил [[Калифорнийский университет в Беркли|университет Беркли]]<ref>''Вахалия Ю.'' UNIX изнутри  — СПб.: Питер, 2003.  — с. 33.</ref>.
 
С [[1978 год]]а начинает свою историю [[BSD|BSD UNIXUnix]], созданный в университете Беркли. Его первая версия была основана на шестой редакции.
В [[1979 год|1979]] выпущена новая версия, названная 3BSD, основанная на седьмой редакции. BSD поддерживал такие полезные свойства, как [[виртуальная память|виртуальную память]] и замещение страниц по требованию. Автором BSD был [[Джой, Билл|Билл Джой]].
 
Важной причиной раскола UNIXUnix стала реализация в [[1980 год]]у [[стек протоколов TCP/IP|стека протоколов TCP/IP]]. До этого межмашинное взаимодействие в UNIXUnix пребывало в зачаточном состоянии  — наиболее существенным способом связи был [[UUCP]] (средство копирования файлов из одной UNIXUnix-системы в другую, изначально работавшее по телефонным сетям с помощью [[модем]]ов).
 
Было предложено два интерфейса программирования сетевых приложений:
Строка 66 ⟶ 65 :
Интерфейс Berkley sockets был разработан в университете Беркли и использовал стек протоколов [[TCP/IP]], разработанный там же. TLI был создан AT&T в соответствии с определением транспортного уровня [[модель OSI|модели OSI]] и впервые появился в системе System V версии 3. Хотя эта версия содержала TLI и потоки, первоначально в ней не было реализации TCP/IP или других сетевых протоколов, но подобные реализации предоставлялись сторонними фирмами.
 
Реализация TCP/IP официально и окончательно была включена в базовую поставку System V версии 4. Это, как и другие соображения (по большей части, рыночные), вызвало окончательное размежевание между двумя ветвями UNIX Unix — [[BSD]] (университета Беркли) и [[UNIX System V|System V]] (коммерческая версия от AT&T). Впоследствии, многие компании, лицензировав System V у AT&T, разработали собственные коммерческие разновидности UNIXUnix, такие как [[AIX]], [[CLIX (операционная система)|CLIX]], [[HP-UX]], [[IRIX]], [[Solaris]].
 
В середине [[1983 год]]а была выпущена версия BSD 4.2, поддерживающая работу в сетях [[Ethernet]] и [[Arpanet]]. Система стала весьма популярной. Между 1983 и [[1990 год]]ом в BSD было добавлено много новых возможностей, таких как [[отладчик]] ядра, сетевая файловая система [[Network File System|NFS]], виртуальная файловая система [[Список файловых систем#Псевдо- и виртуальные файловые системы|VFS]], и существенно улучшены возможности работы с файловыми сетями.
 
Тем временем AT&T выпускала новые версии своей системы, названной System V. В 1983 была выпущена версия 1 (SVR1  — System V Release 1), включавшая полноэкранный текстовый редактор [[vi]], библиотеку [[curses]], [[Буферизация (информатика)|буферизацию ввода-вывода]], кеширование [[inode]]. Версия 2 (SVR2), выпущенная в [[1984 год|1984]], реализовывала монопольный доступ к файлам (file locking), доступ к страницам по требованию (demand paging), [[копирование при записи]] (copy-on-write). Версия 3 вышла в [[1987 год]]у и включала, среди прочего, TLI, а также систему поддержки удалённых файловых систем [[Список файловых систем#РаспределенныеРаспределённые файловые системы|RFS]]. Версия 4 (SVR4), разработанная в сотрудничестве с фирмой [[Sun Microsystems|Sun]] и вышедшая 18 октября [[1988 год|1988]], поддерживала многие возможности BSD, в частности TCP/IP, [[Сокет (программный интерфейс)|сокеты]], новый командный интерпретатор [[csh]]. Кроме того, там было много других добавлений, таких как [[символическая ссылка|символические ссылки]], командный интерпретатор [[ksh]], сетевая файловая система [[Network File System|NFS]] (заимствованная у [[SunOS]]) и  т.  д.
 
Современные реализации UNIXUnix, как правило, не являются системами V или BSD в чистом виде. Они реализуют возможности как System V, так и BSD.
 
=== Свободные UNIXUnix-подобные операционные системы ===
[[Файл:KDE 4.png|thumb|Рабочий стол [[KDE]]]]
{{main|Операционные системы на основе свободного ПО}}
В [[1983 год]]у [[Столлман, Ричард Мэттью|Ричард Столлман]] объявил о создании проекта [[GNU]]  — попытки создания [[свободное программное обеспечение|свободной]] UNIXUnix-подобной операционной системы с нуля, без использования оригинального [[исходный код|исходного кода]]. Большая часть программного обеспечения, разработанного в рамках данного проекта,  — такого как [[GNU toolchain]], [[Glibc]] (стандартная библиотека языка [[Си (язык программирования)|Си]]) и [[Coreutils]]  — играет ключевую роль в других свободных операционных системах. Однако работы по созданию замены для [[Ядро операционной системы|ядра]] UNIXUnix, необходимые для полного выполнения задач GNU, продвигались крайне медленно. В настоящее время [[GNU Hurd]]  — попытка создать современное ядро на основе [[микроядро|микроядерной]] архитектуры [[Mach]]  — всё ещё далека от завершения.
 
В [[1991 год]]у, когда [[Торвальдс, Линус|Линус Торвальдс]] опубликовал ядро [[Linux (ядро)|Linux]] и привлёк помощников, использование инструментов, разработанных в рамках проекта GNU, было очевидным выбором. Операционная система [[GNU]] и ядро Linux вместе составляют ОС, известную, как [[GNU/Linux]].
[[Дистрибутив операционной системы|Дистрибутивы]] этой системы (такие как [[Red Hat]] и [[Debian]]), включающие ядро, утилиты GNU и дополнительное программное обеспечение стали популярными как среди любителей, так и среди представителей [[бизнес]]а.
 
В начале [[1992 год]]а вышел дистрибутив [[386/BSD]], основанный на дистрибутиве Networking Release 2, распространяемый компанией [[BSDi|BSDI]] за $995 с «ужасающей скидкой» в 99  % по сравнению с ценой System V{{нет АИ|15|06|2010}}. [[UNIX Systems Laboratories]] подала иск против BSDI, а затем против [[университет Беркли|университета Беркли]], допустившего распространение файлов UNIXUnix в исходных и двоичных форматах фактически за бесценок, что подрывало бизнес самой 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]].
 
В [[1997 год]]у фирма [[Apple]] искала основу для своей новой операционной системы, она выбрала [[NEXTSTEP]]  — операционную систему со свободно распространяемым ядром, разработанную фирмой [[NeXT]].
 
В [[2000 год]]у [[Apple Inc.]] выпускает открытую [[POSIX]]-совместимую операционную систему [[Darwin]]. Она совмещает код, написанный самой Apple, с полученным от [[NeXTSTEP]], [[FreeBSD]] и прочих свободных проектов. Darwin представляет собой набор основных компонентов, используемых в [[Mac OS X]] и [[Apple iOS]]. Он совместим с третьей версией [[Single UNIX Specification|спецификации единой UNIX]] (SUSv3) и POSIX-приложениями и утилитами.
 
14 июня [[2005]] был открыт исходный код операционной системы [[Solaris]]. Этот проект, как и созданная на его основе операционная система, получили название [[OpenSolaris]]. 17 июня, через три дня после открытия кода, был создан дистрибутив [[SchilliX]]. В мае 2008 появился первый официальный дистрибутив OpenSolaris 2008.05. Существует более десяти дистрибутивов на основе OpenSolaris, наиболее известные из них  — [[BeleniX]] и [[Nexenta OS]].
 
В настоящий момент GNU/Linux и представители семейства BSD быстро отвоёвывают рынок у коммерческих UNIXUnix-систем и одновременно проникают как на настольные компьютеры конечных пользователей, так и на мобильные и встраиваемые системы.
 
=== Проприетарные системы ===
После разделения компании AT&T, [[товарный знак]] UNIXUnix и права на оригинальный [[исходный код]] неоднократно меняли владельцев, в частности, они длительное время принадлежали компании [[Novell]].
 
В [[1993 год]]у Novell передала права на товарный знак и на сертификацию программного обеспечения на соответствие этому знаку консорциуму [[X/Open]], который затем объединился с Open Software Foundation, образовав консорциум [[The Open Group]]. Он объединяет ведущие компьютерные корпорации и государственные организации, в том числе [[IBM]], [[Hewlett-Packard]], [[Sun Microsystems|Sun]], [[NASA]] и многие другие. Консорциум занимается разработкой открытых стандартов в области операционных систем, самым важным из которых является [[Single UNIX Specification]], ранее известный как [[POSIX]]. С точки зрения The Open Group, название UNIX могут носить только системы, прошедшие сертификацию на соответствие Single UNIX Specification.
 
В [[1995 год]]у Novell продала права на существующие лицензии и дальнейшую разработку System V компании {{нп4|Santa Cruz Operation|Santa Cruz Operation|en|Santa Cruz Operation}}. В [[2000 год]]у Santa Cruz Operation продала свой UNIXUnix-бизнес компании [[Caldera]], которая затем была переименована в [[SCO Group]]. Хотя это название похоже на аббревиатуру SCO, используемую Santa Cruz Operation, это две разные компании.
 
SCO Group заявила, что она также обладает правами на исходный код UNIXUnix и развернула кампанию против различных пользователей и поставщиков UNIXUnix-подобных систем, требуя выплаты лицензионных отчислений. Однако Novell утверждает, что права на исходный код не были переданы Santa Cruz Operation и, таким образом, не перешли к SCO Group, а остаются у Novell, что и подтвердил вердикт суда. Несмотря на это в [[Август 2009 года|августе 2009 года]] [[Апелляционный суд десятого округа США]] отменил вынесенное ранее решение, назначив дополнительное расследование с целью установления законного владельца авторских прав на исходные тексты операционной системы<ref>{{cite web
|author =
|date = 25.08.09
Строка 126 ⟶ 125 :
}}</ref>.
 
=== Влияние UNIXUnix на эволюцию операционных систем ===
UNIXUnix-системы имеют большую историческую важность, поскольку благодаря им распространились некоторые популярные сегодня концепции и подходы в области ОС и [[программное обеспечение|программного обеспечения]]. Также, в ходе разработки UNIXUnix-систем был создан язык [[Си (язык программирования)|Си]].
 
Как и [[Multics]], UNIXUnix была написана на языке высокого уровня, а не на [[язык ассемблера|ассемблере]] (доминировавшем в то время).
 
Она содержала значительно упрощённую, по сравнению с предшествующими ей операционными системами, [[файл]]овую модель. [[Файловая система]] включала как службы, так и устройства (такие как [[принтер]]ы, [[Компьютерный терминал|терминалы]] и [[жёсткий диск|жёсткие диски]]) и предоставляла внешне единообразный [[интерфейс]] к ним, но дополнительные механизмы работы с устройствами (такие как [[IOCTL]] и биты доступа) не вписывались в простую модель «поток байтов».
 
UNIXUnix популяризовала предложенную в Multics идею иерархической файловой системы с произвольной глубиной вложенности. Другие операционные системы (в том числе DOS) того времени позволяли разбивать дисковое пространство на каталоги или разделы, но число уровней вложенности было фиксировано и, зачастую, уровень вложенности был только один. Позднее все основные фирменные операционные системы{{Уточнить}} обрели возможность создания рекурсивных подкаталогов, также заимствованную из Multics.
 
То, что [[Интерфейс командной строки|интерпретатор команд]] стал просто одной из пользовательских [[компьютерная программа|программ]], а в качестве дополнительных команд выступают отдельные программы, является ещё одной инновацией Multics{{нет АИ|15|06|2010}}, популяризированной UNIXUnix. Язык командной оболочки UNIXUnix используется пользователем как для интерактивной работы, так и для написания [[скрипт]]ов, то есть не существует отдельного языка описания заданий, как, например, в системе [[JCL]] фирмы [[IBM]]. Так как оболочка и команды операционной системы являются обычными программами, пользователь может выбирать их в соответствии со своими предпочтениями, или даже написать собственную оболочку. Наконец, новые команды можно добавлять к системе без перекомпиляции [[Ядро операционной системы|ядра]]. Новый, предложенный в командной строке UNIXUnix, способ создания цепочек программ, последовательно обрабатывающих данные, способствовал использованию параллельной обработки данных.
 
Существенными особенностями UNIXUnix были полная ориентация на текстовый [[ввод-вывод]] и предположение, что размер [[машинное слово|машинного слова]] кратен восьми битам. Первоначально в UNIXUnix не было даже редакторов двоичных файлов  — система полностью конфигурировалась с помощью текстовых команд. Наибольшей и наименьшей единицей ввода-вывода служил текстовый [[байт]], что полностью отличало ввод-вывод UNIXUnix от ввода-вывода других операционных систем, ориентированного на работу с записями. Ориентация на использование текста для представления всего, что только можно, сделала полезными т.  н. ''[[Конвейер (UNIXUnix)|конвейеры]]'' ({{lang-en|pipelines}}). Ориентация на текстовый восьмибитный байт сделала UNIXUnix более [[Масштабируемость|масштабируемой]] и переносимой, чем другие операционные системы. Со временем текстовые приложения одержали победу{{Уточнить}}<!--Над чем?--> и в других областях, например, на уровне [[сетевой протокол|сетевых протоколов]], таких как [[Telnet]], [[FTP]], [[SMTP]], [[HTTP]] и других.
 
UNIXUnix способствовала широкому распространению [[регулярное выражение|регулярных выражений]], которые были впервые реализованы в текстовом редакторе [[ed]] для UNIXUnix. Возможности, предоставляемые UNIXUnix-программам, стали основой стандартных интерфейсов операционных систем ([[POSIX]]).
 
Широко используемый в системном программировании язык [[Си (язык программирования)|Си]], созданный изначально для разработки UNIXUnix, превзошёл UNIXUnix по популярности. Язык Си был первым «веротерпимым» языком, который не пытался навязать программисту тот или иной стиль программирования. Си был первым высокоуровневым языком, предоставляющим доступ ко всем возможностям процессора, таким как [[Ссылка (программирование)|ссылки]], [[Таблица (значения)|таблицы]], [[Битовый сдвиг|битовые сдвиги]], [[инкремент]]ы и  т.  п. С другой стороны, свобода языка Си приводила к ошибкам [[переполнение буфера|переполнения буфера]] в таких функциях стандартной библиотеки Си, как [[gets]] и [[scanf]]. Результатом стали многие печально известные уязвимости, например, та, что эксплуатировалась в знаменитом [[червь Морриса|черве Морриса]].
 
Первые разработчики UNIXUnix способствовали внедрению принципов модульного программирования и [[повторное использование кода|повторного использования]] в инженерную практику.
 
UNIXUnix предоставлял возможность использования протоколов [[стек протоколов TCP/IP|TCP/IP]] на сравнительно недорогих компьютерах, что привело к быстрому росту [[Интернет]]а. Это, в свою очередь, способствовало быстрому обнаружению нескольких крупных уязвимостей в системе безопасности, архитектуре и системных утилитах UNIXUnix.
 
Со временем ведущие разработчики UNIXUnix разработали культурные нормы разработки программного обеспечения, которые стали столь же важны, как и сам UNIXUnix. {{Подробнее|Философия UNIXUnix}}
 
Одними из самых известных примеров UNIXUnix-подобных ОС являются [[macOS]], [[Solaris]], [[BSD]] и [[NeXTSTEP]].
 
=== Социальная роль в сообществе ИТ-профессионалов и историческая роль ===
{{ориссный раздел|дата=10 июля 2011}}
Первоначальные UNIXUnix работали на крупных многопользовательских компьютерах, к которым также предлагались и проприетарные ОС от производителя оборудования, такие как [[RSX-11]] и её потомок [[VMS]]. Невзирая на то, что по ряду мнений{{неопределённость|чьих?}} тогдашний UNIXUnix имел недостатки по сравнению с данными ОС (например, отсутствие серьёзных движков баз данных), он был: а) дешевле, а иногда и бесплатен для академических учреждений б) был портируем с оборудования на оборудование, и разработан на портируемом языке Си, что «отвязывало» разработку программ от конкретной аппаратуры. Кроме того, «отвязанным» от аппаратуры и производителя оказался и опыт пользователя  — человек, работавший с UNIXUnix на VAX, легко работал с ней же и на 68xxx, и так далее.
 
Производители аппаратуры в то время часто прохладно относились к UNIXUnix, считая её игрушечной, и предлагая свою проприетарную ОС для серьёзной работы  — в первую очередь СУБД и основанных на них бизнес-приложений в коммерческих структурах. Известны комментарии по этому поводу от [[DEC]] по поводу её [[VMS]]. К этому прислушивались корпорации, но не академическая среда, которая имела всё для себя необходимое в UNIXUnix, зачастую не требовала официальной поддержки от производителя, справляясь своими силами, и ценила дешевизну и переносимость UNIXUnix.
Таким образом, UNIXUnix была едва ли не первой [[Переносимость|переносимой]] на разную аппаратуру ОС.
 
Вторым резким взлётом UNIXUnix было '''появление [[RISC]]-процессоров''' около 1989 года. Ещё до того существовали т.  н. workstations  — персональные однопользовательские компьютеры большой мощности, имеющие достаточный объём памяти, жёсткого диска и достаточно развитую ОС (многозадачность, защита памяти) для работы с серьёзными приложениями, такими, как CADы. Среди производителей таких машин выделялась компания [[Sun Microsystems]], сделавшая себе на них имя.
 
До появления RISC-процессоров в этих станциях обычно использовался процессор [[Motorola 680x0]], тот же, что и в компьютерах фирмы [[Apple]] (хотя и под более развитой операционной системой, чем у Apple).
Около 1989 года на рынке появились коммерческие реализации процессоров RISC-архитектуры. Логичным решением ряда компаний (Sun и других) был перенос UNIXUnix на эти архитектуры, что немедленно повлекло за собой и перенос всей экосистемы ПО для UNIXUnix.
 
Проприетарные серьёзные ОС, такие как VMS, начали свой закат именно с этого момента (даже если и удалось перенести на RISC саму ОС, всё было намного сложнее с приложениями под неё, которые в этих экосистемах зачастую разрабатывались на ассемблере или же на проприетарных языках типа BLISS), и UNIXUnix стал ОС для самых мощных компьютеров в мире.
 
Однако в это время '''экосистема [[IBM PC|PC]]''' начала переходить на [[GUI]] в лице [[Windows 3.0]]. Огромные преимущества GUI, а также, например, унифицированная поддержка всех типов принтеров, были оценены и разработчиками, и пользователями. Это сильно подорвало позиции UNIXUnix на рынке PC  — реализации такие, как [[SCO]] и [[Interactive UNIX]], не справлялись с поддержкой Windows-приложений. Что же касается GUI для UNIXUnix, называемого [[X11]] (были и иные реализации, много менее популярные), то он не мог полноценно работать на обычной пользовательской PC ввиду требований к памяти  — для нормальной работы X11 требовалось 16 МБ, в то время как Windows 3.1 с достаточной производительностью исполняла и Word, и Excel одновременно в 8 МБ (это было стандартным размером памяти PC в то время). При высоких ценах на память это было лимитирующим фактором.
 
Успех Windows дал импульс внутреннему проекту Microsoft под названием [[Windows NT]], которая была совместима с Windows по API, но при этом имела всё те же архитектурные особенности серьёзной ОС, что и UNIX Unix — многозадачность, полноценную защиту памяти, поддержку многопроцессорных машин, права доступа к файлам и директориям, системный журнал. Также Windows NT представила журнальную файловую систему [[NTFS]], которая по возможностям на тот момент превышала все стандартно поставляемые с UNIXUnix файловые системы  — аналоги под UNIXUnix были только отдельными коммерческими продуктами от [[Veritas (производитель программного обеспечения)|Veritas]] и других.
 
Хотя Windows NT и не была популярна первоначально, из-за высоких требований к памяти (те же 16 МБ), она позволила Microsoft выйти на рынок решений для [[Сервер (аппаратное обеспечение)|серверов]], например, [[СУБД]]. Многие в то время не верили в возможность Microsoft, традиционно специализирующейся на настольном ПО, быть игроком на рынке ПО масштаба предприятия, где уже были свои громкие имена, такие как Oracle и Sun. К этому сомнению добавлялся тот факт, что СУБД Microsoft  — [[Microsoft SQL Server|SQL Server]]  — начинался как упрощённая версия Sybase SQL Server, лицензированная у Sybase и на 99  % совместимая по всем аспектам работы с ним.
 
Во второй половине 1990-х годов Microsoft начал теснить UNIXUnix и на рынке корпоративных серверов.
 
Совокупность вышеперечисленных факторов, а также обвал цен на [[Видеоускоритель|3D-видеоконтроллеры]], ставшими из профессионального оборудования домашним, по сути убила само понятие workstation к началу 2000-х годов.
Строка 177 ⟶ 176 :
Кроме того, системы Microsoft проще в управлении, особенно в типовых сценариях использования.
 
Излишне говорить, что всё это не добавило положительных эмоций UNIXUnix-сообществу, а коммерческие UNIXUnix-системы от производителей аппаратуры, такие как Solaris, оказались просто под угрозой.
 
Но в данный момент начался третий резкий взлёт UNIXUnix.
 
Ещё в конце 80-х годов [[Столлман, Ричард Мэттью|Ричард Столлман]] подытожил те неформальные практики в отношении прав на ПО, что существовали в академической среде (откуда вышли и первоначальные поклонники UNIXUnix) и по сути являлись производными от принятых в этой среде прав на научные открытия и изобретения.
Результатом явилась лицензия [[GPL]].
 
Кроме того, Столлман и его товарищи, прекрасно понимая, что для успеха не завязанного на корпорации программного обеспечения необходимы не проприетарные средства разработки, разработал набор [[компилятор]]ов для различных [[Язык программирования|языков программирования]] ([[gcc]]), что вместе с разработанными ранее утилитами GNU (замена стандартных утилит UNIXUnix) составило необходимый и достаточно мощный пакет программ для разработчика.
 
Для создания '''[[свободное программное обеспечение|полностью свободного]] UNIXUnix''' не хватало по сути только [[Ядро операционной системы|ядра ОС]]. И оно было разработано финским студентом Линусом Торвальдсом. Ядро было разработано «с нуля» и не является с точки зрения исходного кода [[дериватив]]ом ни BSD, ни System V (хотя концепты таки заимствовались, например, Linux имел функции namei и bread), однако по ряду нюансов (системные вызовы, богатая /proc, отсутствие sysctk)  — больше тяготеет к последней.
 
Первоначально [[Linux]] был в достаточной степени неразвитым и примитивным проектом. Однако он верно нашёл для себя нишу, сначала как учебного UNIXUnix (замена [[Minix]] Таненбаума), а затем  — как раз тогда началось активное развитие Интернета  — и [[веб-сервер]]а.
 
Серьёзным конкурентом Linux на тот момент была [[FreeBSD]], однако «соборный» стиль управления разработкой в противовес «базарному» стилю Linux, а также куда большая техническая архаичность в таких вопросах, как поддержка многопроцессорных машин и форматы исполняемых файлов, сильно замедлила развитие FreeBSD по сравнению с Linux, сделав последний флагманом мира свободного ПО.
Строка 201 ⟶ 200 :
На настоящий момент Linux является заслуженно популярной ОС для серверов, хотя и куда менее популярной на рабочих столах.
 
== Некоторые архитектурные особенности ОС UNIXUnix ==
Особенности UNIXUnix, отличающие данное семейство от других ОС приведены ниже.
 
* Файловая система древовидная, чувствительная к регистру символов в именах, очень слабые ограничения на длину имён и пути.
Строка 225 ⟶ 224 :
* Отказ от использования [[Overlay (программирование)|оверлеев]] в пользу деления программы на несколько программ поменьше, общающихся через именованные каналы или временные файлы.
* Отсутствие [[Asynchronous Procedure Call|APC]] и аналогов, то есть произвольных (а не жёстко перечисленных в стандартном множестве) сигналов, не доставляемых до явного пожелания процесса их получить (Windows, [[VMS]]).
* Концепция [[Сигналы (UNIXUnix)|сигнала]] уникальна для UNIXUnix, и крайне сложна в переносе на другие ОС, такие как Windows.
 
== Стандарты ==
Строка 231 ⟶ 230 :
{{См. также|Single UNIX Specification}}
 
Большое количество разных вариантов системы UNIXUnix привело к необходимости стандартизовать её средства, чтобы упростить переносимость приложений и избавить пользователя от необходимости изучать особенности каждой разновидности UNIXUnix.
 
С этой целью ещё в [[1980 год]]у была создана пользовательская группа [[/usr/group]]. Первые стандарты были разработаны в 1984—1985  гг.
 
Одним из самых первых стандартов стала спецификация System V Interface Definition (SVID), выпущенная UNIX System Laboratories (USL) одновременно с [[UNIX System V]] Release 4. Этот документ, однако, не стал официальным.
 
Наряду с версиями UNIX [[System V]] существовало направление UNIXUnix [[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). Он используется не только в UNIXUnix, но и в других операционных системах. {{Подробнее|POSIX}} В [[1990]] он был принят институтом [[IEEE]] как IEEE 1003.1-1990, а позднее  — ISO/IEC 9945.
 
В настоящее время наиболее важными являются следующие стандарты {{Подробнее|POSIX}}:
* 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 и доступен бесплатно в интернете<ref>{{cite web
Строка 260 ⟶ 259 :
}}</ref>.
 
В целях совместимости несколько создателей UNIXUnix-систем предложили использовать [[Executable and Linking Format|ELF]]  — формат систем [[SVR4]] для двоичных и объектных [[файл]]ов. Единый формат полностью{{нет АИ|15|06|2010}} обеспечивает соответствие двоичных файлов в рамках одной компьютерной архитектуры.
 
Структура каталогов некоторых систем, в частности, [[GNU/Linux]], определена в стандарте [[Filesystem Hierarchy Standard]]. Однако, во многих отношениях этот тип стандарта является спорным, и он, даже внутри сообщества GNU/Linux, далеко не универсален{{нет АИ|15|06|2010}}.
 
== Стандартные команды ОС UNIXUnix ==
[[Файл:man-man.png|thumb|Команда [[man]] может отображать страницу руководства для любой команды в системе.]]
 
[[Файл:Working with Files in bash OS GNU Linux.vorb.theo.ogv|right|Пример работы с файловой структурой.]]
 
* Создание и навигация по файлам и каталогам: [[touch]], [[ls]], [[mv]], [[rm]], [[cp]], [[ln (UNIXUnix)|ln]], [[pwd]], [[chdir|cd]], [[mkdir]], [[rmdir]], [[find]], [[du]].
* Просмотр и редактирование файлов: [[nano]], [[more]], [[less]], [[ed]], [[ex (UNIXUnix)|ex]], [[vi]], [[emacs]].
* Обработка текста: [[echo]], [[cat]], [[grep]], [[sort]], [[uniq]], [[sed]], [[awk]], [[tee]], [[head (Unix)|head]], [[tail]], [[cut]], [[tr]], [[split]], [[printf]].
* Сравнение файлов: [[comm]], [[cmp]], [[diff]], [[patch (UNIXUnix)|patch]].
* Разнообразные утилиты командного интерпретатора: [[Yes (Unix)|yes]], [[test (UNIXUnix)|test]], [[xargs]], [[expr]].
* Системное администрирование: [[chmod]], [[chgrp]], [[chown]], [[ps]], [[su]], [[w (UNIXUnix)|w]], [[who]], [[df]], [[mount]], [[umount]].
* Коммуникации: [[Mail (программа)|mail]], [[telnet (программа)|telnet]], [[ftp (программа)|ftp]], [[finger (программа)|finger]], [[rsh]], [[ssh (программа)|ssh]].
* [[Командная оболочка UNIXUnix|Командные оболочки]]: [[Bourne shell|sh]], [[bash]], [[C shell|csh]], [[Korn shell|ksh]], [[tcsh]], [[zsh]].
* Работа с исходным кодом и объектным кодом: [[cc]], [[gcc]], [[ld]], [[nm]], [[yacc]], [[GNU Bison|bison]], [[lex]], [[Flex (генератор лексических анализаторов)|flex]], [[ar (UNIXUnix)|ar]], [[ranlib]], [[make]].
* Сжатие и архивация: [[compress]], [[uncompress]], [[gzip]], [[gunzip]], [[tar]].
* Работа с двоичными файлами: [[od]], [[strings]].
 
Ниже приведён список 60 команд из раздела 1 первой версии UNIXUnix:
 
* [[ar (Unix)|ar]], [[as (команда)|as]],
* [[Язык программирования Би|b]], [[Bas (UNIXUnix)|bas]], [[bcd]], [[boot]],
* [[cat]], [[chdir]], [[check]], [[chmod]], [[chown]], [[cmp]], [[cp]],
* [[date]], [[db (UNIXUnix)|db]], [[dbppt]], [[dc (UNIXUnix)|dc]], [[df]], [[dsw]], [[dtf]], [[du]],
* [[ed]],
* [[find]], [[for]], [[form]],
* [[hup]],
* [[lbppt]], [[ld]], [[ln (UNIXUnix)|ln]], [[ls]],
* [[mail (программа)|mail]], [[mesg]], [[mkdir]], [[mkfs]], [[mount]], [[mv]],
* [[nm]],
* [[od (UNIXUnix)|od]],
* [[pr]],
* [[rew]], [[rkd]], [[rkf]], [[rkl]], [[rm]], [[rmdir]], [[roff]],
* [[sdate]], [[Командная оболочка UNIXUnix|sh]], [[stat]], [[strip]], [[su]], [[sum]],
* [[tap]], [[tm]], [[tty (UNIXUnix)|tty]], [[type]],
* [[un (Unix)|un]],
* [[wc]], [[who]], [[write]].
 
См. также [http://www.bhami.com/rosetta.html классифицированный список команд UNIXUnix-систем].
 
== См. также ==
{{Навигация
|Тема = UNIXUnix
|Портал =
|Викисловарь =
|Викиверситет =
|Викиучебник = UNIXUnix
|Викицитатник = ЮНИКС
|Викитека =
Строка 328 ⟶ 327 :
* [[Unix-подобная операционная система]]
* [[X Window System]]
* [[Программы UNIXUnix-подобных операционных систем]]
* [[Философия UNIXUnix]]
 
== Примечания ==
Строка 413 ⟶ 412 :
 
=== История ===
* График истории развития UNIX Unix-систем
* [http://docstore.mik.ua/unix2/glava_39.htm Стандарты UNIXUnix]
 
=== Учебники ===
* {{cite web|url=http://citforum.ru/operating_systems/unix/contents.shtml|title=Операционная система UNIXUnix|author=С. Д. Кузнецов|publisher=Центр Информационных Технологий|description=учебное пособие|accessdate=2011-07-24|archiveurl=https://www.webcitation.org/617wqceND?url=http://citforum.ru/operating_systems/unix/contents.shtml|archivedate=2011-08-22}}
 
==== На английском ====
Строка 424 ⟶ 423 :
* [http://www.unix.com/ Unix and Linux Forums]{{ref-en}}
{{rq|sources}}
{{UNIXUnix-like}}
{{Операционная система}}
 
[[Категория:UNIXUnix| ]]