Unix: различия между версиями
[непроверенная версия] | [непроверенная версия] |
Содержимое удалено Содержимое добавлено
Нет описания правки |
м Вставлять неразрывные пробелы перед тире явно для упрощения проверки изменений |
||
Строка 1:
[[Файл:Unix history-simple.svg|thumb|Генеалогическое древо Unix-систем]]'''Unix''' («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>)
Операционные системы семейства Unix характеризуются модульным дизайном, в котором каждая задача выполняется отдельной утилитой, взаимодействие осуществляется через единую [[FHS|файловую систему]], а для [[Интерфейс командной строки|работы с утилитами]] используется [[Командная оболочка UNIX|командная оболочка]].
Строка 15:
Основное отличие Unix-подобных систем от других операционных систем заключается в том, что это изначально многопользовательские многозадачные системы. В Unix может одновременно работать сразу много людей, каждый за своим [[Терминальный сервер|терминалом]], при этом каждый из них может выполнять множество различных вычислительных процессов, которые будут использовать ресурсы именно этого компьютера.
Вторая колоссальная заслуга Unix
Unix имеет и другие характерные особенности:
* использование простых [[текстовый файл|текстовых файлов]] для настройки и управления системой;
* широкое применение утилит, запускаемых из [[интерфейс командной строки|командной строки]];
* взаимодействие с пользователем посредством виртуального устройства
* представление физических и виртуальных устройств и некоторых средств межпроцессового взаимодействия в виде [[файл]]ов;
* использование [[Конвейер (Unix)|конвейеров]] из нескольких программ, каждая из которых выполняет одну задачу.
Строка 33:
В [[1957 год]]у в [[Bell Labs]] была начата работа по созданию операционной системы для внутренних нужд. Под руководством [[Высотский, Виктор Александрович|Виктора Высотского]] была создана система [[BESYS]]. Впоследствии он возглавил проект [[Multics]], а затем стал главой информационного подразделения Bell Labs.
В [[1964 год]]у появились компьютеры третьего поколения, для которых возможности BESYS уже не подходили. Высотский и его коллеги приняли решение не разрабатывать новую собственную операционную систему, а подключиться к Multics
=== Первые Unix-системы ===
[[Файл:Ken Thompson and Dennis Ritchie.jpg|thumb|[[Томпсон, Кен|Кен Томпсон]] и [[Ритчи, Деннис|Деннис Ритчи]]
Первоначально Unix была разработана в конце [[1960-е|1960-х годов]] сотрудниками Bell Labs, в первую очередь [[Томпсон, Кен|Кеном Томпсоном]], [[Ритчи, Деннис|Деннисом Ритчи]] и [[Макилрой, Дуглас|Дугласом Макилроем]].
Строка 43:
Первые версии 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 выпустила ''шестую редакцию'', известную по широко разошедшимся [[Комментарии Лайонса к 6-й версии UNIX, с исходным кодом|комментариям Джона Лайонса]].
Строка 52:
В начале [[1980-е|1980-х]] компания AT&T, которой принадлежала Bell Labs, осознала ценность Unix и начала создание [[Коммерческое программное обеспечение|коммерческой]] версии ОС. Эта версия, поступившая в продажу в [[1982 год]]у, носила название UNIX System III и была основана на седьмой версии системы.
Однако компания не могла напрямую начать развитие Unix как коммерческого продукта из-за запрета, наложенного правительством США в [[1956 год]]у. [[Министерство юстиции США|Министерство юстиции]] вынудило AT&T подписать соглашение, [[Антимонопольное регулирование|запрещавшее]] компании заниматься деятельностью, не связанной с телефонными и телеграфными сетями и оборудованием. Для того чтобы всё-таки иметь возможность перевести Unix в ранг коммерческих продуктов, компания передала исходный код операционной системы некоторым высшим учебным заведениям, лицензировав код под очень либеральными условиями. В декабре [[1973 год]]а одним из первых исходные коды получил [[Калифорнийский университет в Беркли|университет Беркли]]<ref>''Вахалия Ю.'' UNIX изнутри.
С [[1978 год]]а начинает свою историю [[BSD|BSD Unix]], созданный в университете Беркли. Его первая версия была основана на шестой редакции.
В [[1979 год|1979]] выпущена новая версия, названная 3BSD, основанная на седьмой редакции. BSD поддерживал такие полезные свойства, как [[виртуальная память|виртуальную память]] и замещение страниц по требованию. Автором BSD был [[Джой, Билл|Билл Джой]].
Важной причиной раскола Unix стала реализация в [[1980 год]]у [[стек протоколов TCP/IP|стека протоколов TCP/IP]]. До этого межмашинное взаимодействие в Unix пребывало в зачаточном состоянии
Было предложено два интерфейса программирования сетевых приложений:
Строка 65:
Интерфейс Berkley sockets был разработан в университете Беркли и использовал стек протоколов [[TCP/IP]], разработанный там же. TLI был создан AT&T в соответствии с определением транспортного уровня [[модель OSI|модели OSI]] и впервые появился в системе System V версии 3. Хотя эта версия содержала TLI и потоки, первоначально в ней не было реализации TCP/IP или других сетевых протоколов, но подобные реализации предоставлялись сторонними фирмами.
Реализация TCP/IP официально и окончательно была включена в базовую поставку System V версии 4. Это, как и другие соображения (по большей части, рыночные), вызвало окончательное размежевание между двумя ветвями Unix
В середине [[1983 год]]а была выпущена версия BSD 4.2, поддерживающая работу в сетях [[Ethernet]] и [[Arpanet]]. Система стала весьма популярной. Между 1983 и [[1990 год]]ом в BSD было добавлено много новых возможностей, таких как [[отладчик]] ядра, сетевая файловая система [[Network File System|NFS]], виртуальная файловая система [[Список файловых систем#Псевдо- и виртуальные файловые системы|VFS]], и существенно улучшены возможности работы с файловыми сетями.
Тем временем AT&T выпускала новые версии своей системы, названной System V. В 1983 была выпущена версия 1 (SVR1
Современные реализации Unix, как правило, не являются системами V или BSD в чистом виде. Они реализуют возможности как System V, так и BSD.
Строка 76:
[[Файл:KDE 4.png|thumb|Рабочий стол [[KDE]]]]
{{main|Операционные системы на основе свободного ПО}}
В [[1983 год]]у [[Столлман, Ричард Мэттью|Ричард Столлман]] объявил о создании проекта [[GNU]]
В [[1991 год]]у, когда [[Торвальдс, Линус|Линус Торвальдс]] опубликовал ядро [[Linux (ядро)|Linux]] и привлёк помощников, использование инструментов, разработанных в рамках проекта GNU, было очевидным выбором. Операционная система [[GNU]] и ядро Linux вместе составляют ОС, известную, как [[GNU/Linux]].
Строка 83:
В начале [[1992 год]]а вышел дистрибутив [[386/BSD]], основанный на дистрибутиве Networking Release 2, распространяемый компанией [[BSDi|BSDI]] за $995 с «ужасающей скидкой» в 99 % по сравнению с ценой System V{{нет АИ|15|06|2010}}. [[UNIX Systems Laboratories]] подала иск против BSDI, а затем против [[университет Беркли|университета Беркли]], допустившего распространение файлов Unix в исходных и двоичных форматах фактически за бесценок, что подрывало бизнес самой USL.
Весь 1992 год никаких значительных успехов в судебной тяжбе для USL не принёс, зато появился встречный иск от [[Калифорнийский университет|Калифорнийского университета]]. К началу 1993 года дистрибутив 386/BSD поменял своё название на [[NetBSD]]. В декабре 1993 года появился другой дистрибутив
В июне [[1994 год]]а вышел «чистый» выпуск [[4.4BSD-Lite]]. Вот с этого момента группы BSDI, NetBSD и FreeBSD должны были повторно синхронизировать свои версии систем с «чистой» системой 4.4BSD-Lite. Таким образом, все наработки, сделанные за три года с момента подачи иска USL, пришлось пересматривать на предмет нарушения авторских прав и использования стороннего кода. Переписывать важные составляющие ядра и операционного окружения. Значительно позднее выделились в самостоятельные проекты [[OpenBSD]], [[TrustedBSD]] и [[DragonFlyBSD]].
В [[1997 год]]у фирма [[Apple]] искала основу для своей новой операционной системы, и выбрала [[NEXTSTEP]]
В [[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, наиболее известные из них
В настоящий момент GNU/Linux и представители семейства BSD быстро отвоёвывают рынок у коммерческих Unix-систем и одновременно проникают как на настольные компьютеры конечных пользователей, так и на мобильные и встраиваемые системы.
Строка 136:
То, что [[Интерфейс командной строки|интерпретатор команд]] стал просто одной из пользовательских [[компьютерная программа|программ]], а в качестве дополнительных команд выступают отдельные программы, является ещё одной инновацией Multics{{нет АИ|15|06|2010}}, популяризированной Unix. Язык командной оболочки Unix используется пользователем как для интерактивной работы, так и для написания [[скрипт]]ов, то есть не существует отдельного языка описания заданий, как, например, в системе [[JCL]] фирмы [[IBM]]. Так как оболочка и команды операционной системы являются обычными программами, пользователь может выбирать их в соответствии со своими предпочтениями, или даже написать собственную оболочку. Наконец, новые команды можно добавлять к системе без перекомпиляции [[Ядро операционной системы|ядра]]. Новый, предложенный в командной строке Unix, способ создания цепочек программ, последовательно обрабатывающих данные, способствовал использованию параллельной обработки данных.
Существенными особенностями Unix были полная ориентация на текстовый [[ввод-вывод]] и предположение, что размер [[машинное слово|машинного слова]] кратен восьми битам. Первоначально в Unix не было даже редакторов двоичных файлов
Unix способствовала широкому распространению [[регулярное выражение|регулярных выражений]], которые были впервые реализованы в текстовом редакторе [[ed]] для Unix. Возможности, предоставляемые Unix-программам, стали основой стандартных интерфейсов операционных систем ([[POSIX]]).
Строка 152:
=== Социальная роль в сообществе ИТ-профессионалов и историческая роль ===
{{ориссный раздел|дата=10 июля 2011}}
Первоначальные Unix работали на крупных многопользовательских компьютерах, к которым также предлагались и проприетарные ОС от производителя оборудования, такие как [[RSX-11]] и её потомок [[VMS]]. Невзирая на то, что по ряду мнений{{неопределённость|чьих?}} тогдашний Unix имел недостатки по сравнению с данными ОС (например, отсутствие серьёзных движков баз данных), он был: а) дешевле, а иногда и бесплатен для академических учреждений; б) был портируем с оборудования на оборудование и разработан на портируемом языке Си, что «отвязывало» разработку программ от конкретной аппаратуры. Кроме того, «отвязанным» от аппаратуры и производителя оказался и опыт пользователя
Производители аппаратуры в то время часто прохладно относились к Unix, считая её игрушечной, и предлагая свою проприетарную ОС для серьёзной работы
Таким образом, Unix была едва ли не первой [[Переносимость|переносимой]] на разную аппаратуру ОС.
Вторым резким взлётом Unix было появление [[RISC]]-процессоров около 1989 года. Ещё до того существовали т. н. workstations
До появления RISC-процессоров в этих станциях обычно использовался процессор [[Motorola 680x0]], тот же, что и в компьютерах фирмы [[Apple]] (хотя и под более развитой операционной системой, чем у Apple).
Строка 164:
Проприетарные серьёзные ОС, такие как VMS, начали свой закат именно с этого момента (даже если и удалось перенести на RISC саму ОС, всё было намного сложнее с приложениями под неё, которые в этих экосистемах зачастую разрабатывались на ассемблере или же на проприетарных языках типа BLISS), и Unix стал ОС для самых мощных компьютеров в мире.
Однако в это время экосистема [[IBM PC|PC]] начала переходить на [[GUI]] в лице [[Windows 3.0]]. Огромные преимущества GUI, а также, например, унифицированная поддержка всех типов принтеров, были оценены и разработчиками, и пользователями. Это сильно подорвало позиции Unix на рынке PC
Успех Windows дал импульс внутреннему проекту Microsoft под названием [[Windows NT]], которая была совместима с Windows по API, но при этом имела всё те же архитектурные особенности серьёзной ОС, что и Unix
Хотя Windows NT и не была популярна первоначально, из-за высоких требований к памяти (те же 16 МБ), она позволила Microsoft выйти на рынок решений для [[Сервер (аппаратное обеспечение)|серверов]], например, [[СУБД]]. Многие в то время не верили в возможность Microsoft, традиционно специализирующейся на настольном ПО, быть игроком на рынке ПО масштаба предприятия, где уже были свои громкие имена, такие как Oracle и Sun. К этому сомнению добавлялся тот факт, что СУБД Microsoft
Во второй половине 1990-х годов Microsoft начал теснить Unix и на рынке корпоративных серверов.
Строка 185:
Кроме того, Столлман и его товарищи прекрасно понимали, что для успеха не завязанного на корпорации программного обеспечения проприетарные средства разработки не подходят. Поэтому они разработали набор [[компилятор]]ов для различных [[Язык программирования|языков программирования]] ([[gcc]]), что вместе с разработанными ранее утилитами GNU (замена стандартных утилит Unix) составило необходимый и достаточно мощный пакет программ для разработчика.
Для создания [[свободное программное обеспечение|полностью свободного]] Unix не хватало по сути только [[Ядро операционной системы|ядра ОС]]. И оно было разработано финским студентом Линусом Торвальдсом. Ядро было разработано «с нуля» и не является с точки зрения исходного кода [[дериватив]]ом ни BSD, ни System V (хотя концепты таки заимствовались, например, Linux имел функции namei и bread), однако по ряду нюансов (системные вызовы, богатая /proc, отсутствие sysctk)
Первоначально [[Linux]] был в достаточной степени неразвитым и примитивным проектом. Однако он верно нашёл для себя нишу, сначала как учебного Unix (замена [[Minix]] Таненбаума), а затем
Серьёзным конкурентом Linux на тот момент была [[FreeBSD]], однако «соборный» стиль управления разработкой в противовес «базарному» стилю Linux, а также куда большая техническая архаичность в таких вопросах, как поддержка многопроцессорных машин и форматы исполняемых файлов, сильно замедлила развитие FreeBSD по сравнению с Linux, сделав последний флагманом мира свободного ПО.
Строка 236:
Одним из самых первых стандартов стала спецификация 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, но и в других операционных системах. {{Подробнее|POSIX}} В [[1990]] он был принят институтом [[IEEE]] как IEEE 1003.1-1990, а позднее
В настоящее время наиболее важными являются следующие стандарты {{Подробнее|POSIX}}:
* POSIX 1003.2-1992, определяющий поведение утилит, в том числе командного интерпретатора;
* POSIX 1003.1b-1993, дополняющий POSIX 1003.1-1988,
* POSIX 1003.1c-1995, дополняющий POSIX 1003.1-1988,
Все стандарты POSIX объединены в документе IEEE 1003.
В начале 1990-х годов [[The Open Group]] предложила другой, похожий на POSIX стандарт
В [[1998 год]]у были начаты работы по объединению данных стандартов. Благодаря этому в настоящее время данные стандарты почти идентичны. Совместный стандарт называется Single UNIX Specification Version 3 и доступен бесплатно в интернете<ref>{{cite web
Строка 259:
}}</ref>.
В целях совместимости несколько создателей Unix-систем предложили использовать [[Executable and Linking Format|ELF]]
Структура каталогов некоторых систем, в частности, [[GNU/Linux]], определена в стандарте [[Filesystem Hierarchy Standard]]. Однако, во многих отношениях этот тип стандарта является спорным, и он, даже внутри сообщества GNU/Linux, далеко не универсален{{нет АИ|15|06|2010}}.
|