вторник, 29 октября 2013 г.

История создания UNIX


 http://uploads.ru/i/q/Q/X/qQX7A.jpg

Предшественники:
В 1957 году в Bell Labs была начата работа по созданию операционной системы для собственных нужд. Под руководством Виктора Высотского (русского по происхождению) была создана система BESYS. Впоследствии он возглавил проект Multics, а затем стал главой информационного подразделения Bell Labs.
В 1964 году появились компьютеры третьего поколения, для которых возможности BESYS уже не подходили. Высотский и его коллеги приняли решение не разрабатывать новую собственную операционную систему, а подключиться к совместному проекту General Electric и Массачусетского технологического института Multics. Телекоммуникационный гигант AT&T, в состав которого входили Bell Labs, оказал проекту существенную поддержку, но в 1969 году вышел из проекта, поскольку он не приносил никаких финансовых выгод.
Первые UNIX
Кен Томпсон и Деннис Ритчи — создатели 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 выпустила шестую редакцию, известную по широко разошедшимся комментариям Джона Лайонса.
К 1978 году система была установлена более чем на 600 машинах, прежде всего, в университетах. Седьмая редакция была последней единой версией UNIX. Именно в ней появился близкий к современному интерпретатор командной строки Bourne shell.
Раскол
В начале 1980-х компания AT&T, которой принадлежали Bell Labs, осознала ценность UNIX и начала создание коммерческой версии UNIX. Эта версия, поступившая в продажу в 1982 году, носила название UNIX System III и была основана на седьмой версии системы.
Однако, компания не могла в прямую начать развитие UNIX как коммерческого продукта из-за запрета, наложенного правительством США в 1956 году. Министерство юстиции вынудило AT&T подписать соглашение, запрещавшее компании заниматься деятельностью, не связанной с телефонными и телеграфными сетями и оборудованием. Для того, чтобы всё-таки иметь возможность перевести UNIX в ранг коммерческих продуктов, компания передала исходный код операционной системы некоторым высшим учебным заведениям, лицензировав код под очень либеральными условиями. В декабре 1973 года (одним из первых) исходные коды получил университет Беркли
С 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.
Свободные UNIX-подобные операционные системы
В 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. 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.
Современность
После разделения компании 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 года апелляционный суд США отменил вынесенное ранее решение, назначив дополнительное расследование с целью установления законного владельца авторских прав на исходные тексты операционной системы. В июне 2010 года суд поставил точку в этом вопросе, подтвердив вынесенный ранее (в апреле 2010) очередной вердикт в пользу Novell и отказав SCO Group в рассмотрении дальнейших жалоб.
Влияние UNIX на эволюцию операционных систем
Идеи, заложенные в основу UNIX, оказали огромное влияние на развитие компьютерных операционных систем. В настоящее время UNIX-системы признаны одними из самых исторически важных ОС.
Как и Multics, UNIX была написана на языке высокого уровня, а не на ассемблере (доминировавшем в то время).
Она содержала значительно упрощённую, по сравнению с предшествующими ей операционными системами, файловую модель. Файловая система включала как службы, так и устройства (такие как принтеры, терминалы и жёсткие диски) и предоставляла внешне единообразный интерфейс к ним, но дополнительные механизмы работы с устройствами (такие как IOCTL и биты доступа) не вписывались в простую модель «поток байтов».
UNIX популяризовала предложенную в Multics идею иерархической файловой системы с произвольной глубиной вложенности. Другие операционные системы того времени позволяли разбивать дисковое пространство на каталоги или разделы, но число уровней вложенности было фиксировано и, зачастую, уровень вложенности был только один. Позднее все основные фирменные операционные системы обрели возможность создания рекурсивных подкаталогов, также заимствованную из Multics.
То, что интерпретатор команд стал просто одной из пользовательских программ, а в качестве дополнительных команд выступают отдельные программы, является ещё одной инновацией Multics, популяризированной 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.

Вышел Linux -дистрибутив Ubuntu 13.10 Главная ссылка к новости (https://lists.ubuntu.com/archives/ubuntu...)


Официально представлен релиз Linux-дистрибутива Ubuntu 13.10 "Saucy Salamander". Дистрибутив доступен в редакциях для десктопов, серверов и cloud-окружений. Загрузочные iso-образы можно получить на данной странице. Одновременно выпущены релизы смежных проектов: Kubuntu (KDE 4.11), Ubuntu GNOME (GNOME 3.8), Xubuntu (Xfce 4.10), Lubuntu (LXDE), Mythbuntu, Edubuntu (с подборкой обучающего ПО) и Ubuntu Studio (для обработки мультимедиа информации). Поддержка выпуска Ubuntu 13.10 будет осуществляться в течение 9 месяцев и завершится в июле 2014 года, для тех кому необходима длительная поддержка рекомендовано использовать LTS-выпуски.
Одновременно с редакциями для десктопов и серверных систем представлен первый выпуск сборки Ubuntu Touch для смартфонов с сенсорными экранами. Официальные сборки подготовлены для смартфонов Galaxy Nexus и Nexus 4. Неофициально развиваются порты Ubuntu Touch ещё для 50 портативных устройств, охватывающих более 20 брендов. Особенностью сборки для смартфонов является задействование по умолчанию дисплейного сервера Mir вместо композитного менеджера платформы Android (SurfaceFlinger). Для поддержки оборудования в Ubuntu Touch используются пользовательские компоненты платформы Android, которые инициализируются на ранней стадии загрузки в изолированном контейнере.
В состав версии для мобильных устройств входит новая оболочка Unity 8 и типовой набор базовых приложений, написанных с использованием Qt/QML и адаптированных для устройств с сенсорными экранами. Среди входящих в комплект программ: менеджер фотографий, интерфейс телефонии (звонки, SMS), клиент для мгновенного обмена сообщениями, адресная книга, программа для работы с камерой, медиаплеер, файловый менеджер, эмулятор терминала, приложение для интеграции с социальными сетями, календарь-планировщик, программа для интеграции с облачным хранилищем Ubuntu One, редактор заметок и web-браузер на базе технологий Chromium. Для тестирования Unity8 и окружения для мобильных устройств в обычном настольном варианте дистрибутива достаточно установить пакет unity8 и запустить команду unity8.
Для официально поддерживаемых устройств обеспечена возможность выполнения обновления прошивки "по воздуху" (over-the-air), без подключения к компьютеру и с автоматической проверкой наличия обновлений. Обновление осуществляется в форме загрузки нового образа прошивки, вместо обновления отдельных пакетов. Для установки приложений предлагается использовать пакеты в формате Click, для который реализован дополнительный уровень изоляции.
Основные новшества Ubuntu 13.10:
  • Опциональная поддержка использования в Ubuntu прослойки XMir, которая предоставляет средства для запуска X-сервера с организацией вывода через дисплейный сервер Mir, позволяя обычным X11-приложениям и X-серверу работать поверх Mir. Необходимые для использования Mir/XMir компоненты доступны через специальный PPA-репозиторий. Напомним, что изначально для систем с графическими драйверами intel, radeon и nouveau, планировалось по умолчанию обеспечить работу через XMir/Mir, но данное решение было отменено в последний момент из-за ряда нерешённых проблем. В итоге, в Ubuntu 13.10 как и раньше предлагается по умолчанию графический стек X.Org, без лишних прослоек и не зависимо от используемых драйверов.
  • В Unity добавлена поддержка умных областей (Smart Scopes), которые представляют собой серверные обработчики, позволяющие представлять в Dash определённые виды локальной или внешней информации с определением порядка вывода областей с учётом их релевантности и востребованности пользователем. Например, при вводе в поиске "Битлз" в первую очередь будут выведены области с музыкой и видео, в которых будет отображён локальный и внешний контент, как из персональных облачных хранилищ пользователя, так и из сервисов подобных Wikipedia, YouTube, Last.fm и Amazon. По умолчанию при попытке поиска выводится список из всех доступных Scope-плагинов, неактивные области отмечены чёрно-белой пиктограммой. Пользователь может на своё усмотрение отключать и включать области в зависимости от своих предпочтений.
  • В интерфейсе переключения задач по Alt+Tab реализована поддержка выбора элементов мышью и использование колеса мыши для прокрутки.
  • Переработан интерфейс поставляемого по умолчанию PDF-просмотрщика Evince, добавлена новая панель инструментов и новая область поиска;
  • Изменено оформление музыкального проигрывателя Rhythmbox
  • Обновлён центр установки приложений (Ubuntu Software Center), в котором добавлена поддержка установки локальных DEB-пакетов, которая работает и при отсутствии сетевого соединения. В мелочах отполирован интерфейс и увеличена точность подбора релевантных приложений;
  • Заметно доработан менеджер управления журналом активности пользователя, позволяющего избирательно очищать информацию об определённых событиях и отключать накопление данных для избранных приложений. Добавлена возможность удаления всех логов активности пользователя;
  • Добавлен новый индикатор для выбора и активной раскладки клавиатуры и вызова языковых настроек. Внимание, в новом выпуске наблюдаются проблемы с переключением раскладки по CapsLock, Alt+Shift и Ctrl+Shift (в качестве временного решения можно добавить в стартовый скрипт "setxkbmap -layout us,ru -option grp:caps_toggle,compose:menu");
  • В поставку включена виртуальная экранная клавиатура Onboard, поддерживающая такие функции как звуковая индикация нажатия и автоматическое предложение релевантных вариантов продолжения ввода;
  • Улучшен интерфейс файлового менеджера Nautilus, в частности обеспечено корректное отображение кнопок на панели инструментов;
  • В инсталлятор добавлен дополнительный шаг для настройки аккаунта в облачном сервисе Ubuntu One;
  • Kubuntu: переход на KDE 4.11; задействование нового приложения Muon Discover для поиска и установки программ; новый упрощённый интерфейс для управления пользователями в системе; поддержка настройки беспроводных соединений на этапе установки; новое приложение для чата на базе KDE Telepathy 0.6.2; новый апплет для настройки сетевых соединений;
  • Ubuntu GNOME: задействовано десктоп окружение GNOME 3.8 (в 13.04 поставлялся GNOME 3.6); предоставлена возможность выбора сеанса с реализацией классического рабочего стола в стиле GNOME 2; прекращена поставка приложения Ubuntu Online Accounts, вместо которого задействованы штатные средства управления аккаунтами GNOME;
  • Xubuntu: новая версия конфигуратора xfce4-settings с обновлённым интерфейсом настройки параметров мониторов; в репозитории добавлено приложение gtk-theme-config для быстрой смены тем оформления; новый набор Gtk-тем с поддержкой Gtk3.8; в поставку добавлен пакет apt-offline, позволяющий упростить доступ к репозиториям в условиях низкоскоростного или непостоянного сетевого соединения;
  • Lubuntu: задействование в качестве браузера по умолчанию Firefox вместо Chromium; исключен из поставки XScreensaver; возможность использования технологии ZRam (размещённое в ОЗУ блочное устройство на которое производится своппинг со сжатием); обновление элементов оформления (пиктограммы, обои рабочего стола и т.п.);
  • Ubuntu Server: В состав включён новый выпуск облачной платформы OpenStack 13.2 "Havana", который также доступен в пакетах для Ubuntu Server 12.04 LTS через Ubuntu Cloud Archive.
    Новый выпуск Juju 1.6, интерфейса для быстрого развёртывания преднастроенных сервисов. Для использования с Juju подготовлено боле 130 сервисов (Juju Charms), готовых к работе сразу после их установки. Среди таких сервисов различные СУБД (MySQL, PostgreSQL, Redis, Cassandra, Mongodb, Membase), web-приложения (wordpress, drupal, Node.js, Django, Ruby on Rails), серверные системы (lamp, tomcat, vsftpd), системы мониторинга, облачные платформы и т.д. Обеспечена поддержка развёртывания сервисов как на локальных системах, так и в изолированных LXC-контейнерах и облачных окружениях AWS, HP Cloud, Azure, OpenStack и MAAS. Реализован новый графический интерфейс, в котором конфигурация сервисов определяется путем перемещения функциональных блоков и определения связи между ними (например, для запуска MediaWiki можно активировать сервисы LAMP, MediaWiki, MySQL, memcached и определить связи между ними). Добавлены Juju-клиенты для развёртывания в Ubuntu Server сервисов, находясь в окружении OS X и Windows.
    Новый выпуск MAAS 1.4, инструментария для быстрого и удобного развертывания Ubuntu-конфигураций на множестве серверов с использованием техник, используемых в облачных платформах. В новом выпуске добавлены средства для определения наличия устройств в сети с использованием протокола LLDP (Link Layer Discovery Protocol). Вместо установщика из Debian задействован инсталлятор Curtin, что позволило заметно увеличить скорость установки. В /etc/maas/templates добавлены расширяемые шаблоны для DHCP, управления питанием, PXE и DNS. Добавлена поддержка ARM-серверов HP Moonshot.
    Обновлён пакет Cloud-Init 0.7.3 и образы Ubuntu для установки в облачных системах. В новой версии Cloud-Init обеспечена поддержка развёртывания окружений в облачных сервисах Microsoft Azure, Joyent Cloud (SmartOS) и OpenNebula. Добавлена возможность объединения разделённых на части файлов с конфигурацией образов.
    В состав включена новая версия распределённого хранилища Ceph 0.67.4, в котором добавлена поддержка шифрования блочных устройств, увеличена производительность и эффективность работы.
    Переход на новые версии программ: Apache 2.4, PHP 5.5, QEMU 1.5.0, Open vSwitch 1.10.2, Puppet 3.
  • В основной состав дистрибутива (в репозиторий main) включена первая альфа версия инструментария LXC 1.0 для управления изолированными контейнерами, для ограничения которых используются cgroups, пространства имён, Apparmor, Seccomp и capabilities. Инструментарий в том числе поддерживает такие возможности, как клонирование контейнеров, создание срезов состояния работы системы в контейнере, создание непривилегированных контейнеров, поддержка окружения Android.
  • Подготовлен порт для 64-разрядной архитектуры ARM (AArch64, ARMv8), который пока имеет статус ознакомительной версии, так как работа над ним ещё не завершена. В настоящее время для AArch64 успешно собрано примерно 94% пакетов из репозитория main и 69% из всех остальных официальных репоизториев. Полноценный порт для AArch64 планируется подготовить к моменту выхода Ubuntu 14.04;
  • Ядро Linux обновлено до версии 3.11;
  • Система инициализации Upstart обновлена до версии 1.10, в которой реализована поддержка компонентов upstart-file-bridge и upstart-local-bridge для привязки работ к событиям, связанным с изменением в файловой системе или соединением к локальному сокету. В состав включена утилита upstart-monitor для наглядного мониторинга за потоком событий в Upstart. По умолчанию для управления пользовательскими сеансами рабочего стола задействованы возможности Upstart Session Init.
  • Расширены возможности системы мандатного контроля доступа AppArmor, в которой представлена поддержка использования шины DBus. Правила AppArmor задействованы для изоляции приложений, распространяемых в формате Click или через магазин сторонних приложений Ubuntu appstore. Улучшены средства генерации правил изоляции при помощи утилиты aa-easyprof и набора готовых правил apparmor-easyprof-ubuntu.

Ubuntu опередил CentOS в рейтинге популярности ОС для web-серверов


Лаборатория W3Techs представила результаты нового исследования популярности операционных систем, используемых на web-серверах, которое показало, что дистрибутив Ubuntu обогнал по популярности CentOS. Примечательно, что ещё два года назад CentOS лидировал в рейтинге, опережая Ubuntu почти в три раза. В прошлом году на первое место по популярности вырвался Debian, который в общей выборке из 10 млн крупнейших сайтов остаётся лидером и поныне. При рассмотрении выборки из тысячи крупнейших сайтов, Ubuntu уже опережает Debian по популярности.
В сумме доля Debian и Ubuntu в настоящее время составляет 58.5%, а CentOS, RHEL и Fedora - 37.3%. В 2010 году расстановка сил была обратной: Debian и Ubuntu использовались на 37.1% серверов, а CentOS, RHEL и Fedora - на 53.2%. Ubuntu также демонстрирует наибольшую динамику роста: ежедневно примерно 500 сайтов из 10 млн самых популярных ресурсов переходят на Ubuntu. При этом миграция наблюдается как с Debian, так и с дистрибутивов на основе технологий Red Hat. Миграция сайтов на CentOS также заметна, но она в основном происходит за счёт перехода с Fedora и RHEL, переход с Debian на CentOS почти не наблюдается.
При рассмотрении связки дистрибутива с используемыми web-технологиями, отмечены следующие тенденции: CentOS пользуется популярностью на сайтах, использующих Java и Perl, в то время как Debian лидирует среди сайтов на PHP и Python, а Ubuntu пользуется спросом у разработчиков на Ruby и JavaScript. CentOS обгоняет по популярности Debian на сайтах, использующих http-сервер Apache, но Debian доминирует среди систем c Nginx. Debian наиболее востребован в Германии, Франции, Италии, Испании, России и странах Восточной Европы. CentOS лидирует в Японии, Китае, Индии, Вьетнаме и Великобритании. Ubuntu пользуется особым спросом в Южной Африке, Австралии, Бразилии, Аргентине, Швеции и Норвегии. RHEL является наиболее популярным дистрибутивом, обсуживающим сайты в доменах .edu и .gov.
Операционные системы на web-серверах:
Unix-подобные 66.4%
Windows 33.6%
Доля Linux-дистрибутивов среди Unix-систем (FreeBSD используется на 1.1% серверов, NetBSD - 0.2%):
Debian 32.7%
Ubuntu 26.1%
CentOS 26.0%
Red Hat Enterprise Linux 8.7%
Fedora 2.6%
Gentoo 2.0%
SUSE 1.6%
Mandriva 0.1%
Scientific Linux 0.1%
Системы управления контентом (в скобках процент от сайтов, использующих типовые CMS):
WordPress 20.4% (59.1%)
Joomla 3.2% (9.4%)
Drupal 2.0% (5.7%)
Blogger 1.2% (3.4%)
Magento 0.9% (2.6%)
vBulletin 0.6% (1.7%)
Typo3 0.6% (1.6%)
Языки программирования, используемые на Web-сайтах (низкая популярность Perl, Ruby и Python связана с тем, что учтены только системы, явно сообщающие в HTTP-заголовках об используемом языке ("Server: Apache/2.2.9 (Debian) mod_python/3.3.1 Python/2.5.2"), например, Perl учитывается при использовании mod_perl, но не принимается во внимание, если скрипт выполняется в режиме CGI или FastCGI. Сайты на Ruby On Rails, обычно вообще не заполняют заголовок Server):
PHP 81.3%
ASP.NET 18.6%
Java 2.7%
ColdFusion 0.8%
Perl 0.7%
Ruby 0.5%
Python 0.2%
JavaScript0.1%
HTTP-серверы:
Apache 65.4%
Microsoft-IIS 15.0%
Nginx 14.5%
LiteSpeed 1.9%
Google Servers 1.3%
JavaScript-библиотеки:
JQuery 92.4%
MooTools 8.3%
Modernizr 6.4%
Prototype 4.6%
ASP.NET Ajax 3.8%
Script.aculo.us 3.6%
YUI Library 1.5%
Spry 0.9%
Shadowbox 0.9%
Dojo 0.2%
Ext JS 0.2%
Underscore 0.2%
Метод W3Techs базируется на изучении программного обеспечения, обслуживающего десять миллионов крупнейших сайтов в сети (по рейтингу Alexa), при этом в статистике учитываются только домены второго уровня.
OpenNET

Становление Windows NT Copyright Artem Baranov

Становление Windows NT

Artem Baranov
Когда Microsoft выпустила первую версию Windows NT в апреле 1993, маркетинг компании и кампания связей с общественностью особенно акцентировали внимание на имени - NT (то есть, Новая Технология) новой ОС. Microsoft продвигала NT как современную ОС, которая включает в себя все возможности, ожидаемые пользователями как от ОС для рабочих станций, так и для средних серверов. Хотя NT была новой ОС, в 1993, с новым API (то есть, Win32) и новыми пользовательскими и системными программами, корни системной архитектуры NT и ее реализация уходят к середине 1970-х.

Время до NT

История NT близко привязана к Дэвиду Н. Катлеру (David N. Cutler), ее главному архитектору. После окончания Michigan's Olivet College в 1965, Катлер работал в DuPont. Хотя компьютеры в начале его не интересовали, он управлял моделированием машин Digital и это была часть его работы в DuPont. Вскоре, Катлер получил хорошие знания о программном обеспечении и решил, что он хочет разрабатывать операционные системы. Он поступил на работу в DEC в 1971 и занялся разработкой операционных систем для семейства машин PDP-11. RSX-11M стала первой ОС, в которую Катлер включил основные понятия и принципы разработки, позже появившиеся в NT. RSX-11M – это ОС для PDP-11 фирмы Digital, разработанная для использования в управлении производственным процессом.

Рис. 1. Дэвид Катлер.
Сам Катлер в предисловии к первому изданию «Inside Windows NT» пишет:
Моим первым проектом в области ОС была система реального времени RSX-11M, которая работала на 16-разрядных миникомпьютерах PDP-11 фирмы DEC. В то время наши цели казались очень амбициозными. Нужно было создать многозадачную ОС, которая работала бы на 32 Кбайт памяти, поддерживала иерархическую файловую систему, подкачку приложений, планировку задач в реальном времени и имела набор утилит для разработчиков.
В 1975, в DEC поняли, что их конкуренты разрабатывают 32-битный процессор и что эта технология переманит клиентов от 16-битной архитектуры PDP. Гордон Белл, легендарная фигура в компьютерной истории и затем вице-президент Digital по компьютерным разработкам вел развитие 32-битового процессора, который в компании, в конечном счете, окрестили VAX. К этому времени Катлер был частью первоначальной команды разработчиков VAX. Digital назначила Катлера, наряду с Диком Хустведтом (Dick Hustvedt) и Питером Липмэном (Peter Lipman), разработчиками OС для VAX, которая называлась VMS. Первичные цели проекта Digital для VAX включали обратную совместимость с процессорами PDP-11 и достаточную гибкость, которая делала бы VAX основой как для рабочих станций, так и для серверов. DEC также сделала VMS совместимой с RSX-11M и спроектировала VMS так, чтобы та запускалась на машинах разного размера. Из этого периода развития Digital, ее состояние как компании называлось «ставит бизнес» (betting the business) на VAX и VMS. Позднее Билл Гейтс будет утверждать, что Microsoft «ставит бизнес» на NT 5.0.
Компьютеры PDP-11 обеспечивали лучшее соотношение цена/производительность по сравнению с большими ЭВМ и могли использоваться на уровне отделов предприятий. Вместе с другими популярными миникомпьютерами тех лет они породили первую волну уменьшения размеров (downsizing) в компьютерной индустрии. Уменьшение размеров было попыткой перенести приложения больших ЭВМ на миникомпьютеры. Многие такие приложения были слишком велики для PDP-11, и почти сразу же Digital начала борьбу с тем, что Гордон Белл считал единственной самой важной причиной устаревания компьютерных архитектур – недостаточным количеством адресных разрядов. Так родилась архитектура VAX, которая стала одной из наиболее популярных архитектур конца семидесятых и сохраняла свои позиции все восьмидесятые годы.
Дэйв Катлер.
В 1977, Digital анонсировала VAX-11/780 и VMS 1.0, осуществляя первые поставки продукта в 1978. Как лидер проекта и один из главных архитекторов VMS, Катлер продолжал работу над последующими выпусками VMS, но уже начинал нервничать, работая в Digital. В 1981 Катлер пригрозил покинуть Digital. Чтобы сохранить такую звезду в области разработки, компания дает Катлеру приблизительно 200 аппаратных и программных инженеров. Дэвид переместил свою группу в Сиэтл и открыл центр разработки. Цель этой элитной группы состояла в проектировании новой архитектуры процессора и ОС для него. Digital назвала аппаратную платформу Prism, а ОС для нее – Mica. Собственно, Prism явила собой разработку новой 32-разрядной процессорной архитектуры RISC, а Mica – ОС, основанную на микроядре.
В 1988, руководство Digital отменила проект Катлера и уволила многих из членов его группы. Катлер решил оставить Digital, но прежде, чем он это сделал, руководители Microsoft поняли, что у них есть идеальная возможность нанять Катлера. В то время, когда Катлер покинул Digital, релизной версией была VMS 5.0.

Рис. 2. Катлер (в центре) с Соломоном и Руссиновичем, фото к предисловию 4-го издания Windows Internals.

Разработка NT

В августе 1988, Билл Гейтс нанял Катлера. Одним из условий Дэвида при переходе в MS было то, что с собой он возьмет 20 инженеров из Digital, работавших с ним, включая нескольких инженеров проекта Prism. Microsoft с готовностью встретила это требование, компания знала, что наем архитектора ОС такого уровня как Катлер станет удачным ходом, к тому же у немногих инженеров был такой послужной список. Гейтс чувствовал, что долгосрочное будущее Microsoft зависело от развития новой ОС, которая будет конкурировать с UNIX.
Летом 1988 года мне позвонил Билл Гейтс из корпорации Microsoft с интересным предложением. Он спрашивал, не соберусь ли я приехать и поговорить о создании новой ОС Microsoft для персональных компьютеров. В то время меня не очень интересовала работа с персональными компьютерами, но я подумал, что это очень хорошая возможность встретиться с Биллом и обсудить его идеи. То, что предлагал Билл, сводилось к созданию новой ОС – переносимой и отвечающей требованиям, которые предъявляются к ПК при выполнении критически важных задач. Для меня это был шанс создать еще одну операционную систему! В конце концов Билл убедил меня, что такую возможность нельзя упускать, так что в октябре 1988 года я перешел в Microsoft и начал подбирать группу для создания новой ОС. В то время я еще не понимал, что это будет самый амбициозный проект ОС, в котором я когда-либо принимал участвовал.
В Microsoft внутреннее название проекта для новой ОС было OS/2 NT, потому что ее намерением для новой ОС было сохранение OS/2 API как первичного интерфейса. Хотя самым первичным именем NT было все-таки N-Ten и разрабатывалась она для RISC процессора Intel i860. По поводу этого Марк Люковски (Mark Lucovsky), говорил (в статье Windows Server 2003: The Road To Gold Part One: The Early Years):
Первоначально мы нацеливали NT на Intel i860 (кодовое имя N-Ten), RISC-процессор, который был одним из последних в списке. Поскольку у нас не было машин с i860 для тестирования, мы использовали его эмулятор. Именно поэтому мы назвали ее (ОС) NT, потому что она работала на N-Ten.
Марк Люковски, знаменитый архитектор Windows Server (пришел в MS вместе с остальной командой Катлера из DEC, известен как разработчик диспетчера процессов NT).
Мы начали проект с пятью парнями из DEC и одним из MS, этого парня звали Стив Вуд. И мы оставались крошечной группой долгое время, в течении лета. Мы думали ‘Как это трудно, создать ОС?’ и запланировали 18 месяцев на разработку. Но мы забыли о части важного материала – пользовательском режиме, сети и прочем.
Марк Люковски.
К концу 1989 группа NT начала расти. Руководство добавило команду разработчиков сети и расширила команду безопасности, в которую входил только один человек. В этом же году появились первые образцы i860, которые команда стала использовать вместо эмуляторов. К сожалению, выяснилось, что он не в состоянии эффективно исполнять написанный код и группе пришлось переориентироваться на MIPS архитектуру, в итоге решено было остановиться на чипе MIPS R3000.
Немного позже началось портирование NT на Intel i386 процессор, который был наиболее распространен в то время. Люковски объяснил, почему изначально было важно не нацеливать на него NT. «Некоторое время, мы избегали 386, чтобы избежать заточки на архитектуру. Мы не хотели использовать допущение о немобильности.»
Успех Windows 3.0, в апреле 1990, изменил отношения Microsoft с IBM. Спустя шесть недель после того, как Microsoft выпустила Windows 3.0, она переименовала OS/2 NT в Windows NT, и определила Win32 API, как официальный API для NT (а это было ударом для IBM). Сам Люковски говорил на этот счет:
Мы посмотрели на Windows 3.0 и сказали ‘Что если, вместо OS/2 мы сделаем 32-битную версию Windows?’. Четверо парней – Стив Вуд, Скотт Людвиг, парень из группы графики и я посмотрели на 16-битный Windows API и рассчитали. что его можно расширить до 32-битного. Мы провели полтора месяца, подготавливая набор API и затем представили его группе предварительного просмотра из 100 человек.
Новая 32-битная реализация старого API открыла для разработчиков простой путь для переноса их приложений в новую 32-битную среду, используя при этом новые возможности NT.
Мы сделали возможным перенос 16-битных приложений в NT очень простым и эти приложения могли использовать преимущества уникальных возможностей NT, как, например, большое адресное пространство. Мы также добавили новые API, которых не было в 16-битной версии.
Гейтс решил, что совместимость с 16-битовым Windows API и умение запускать приложения Windows 3.x без модификации было первостепенной целью для NT, в дополнение к неполной поддержке DOS, OS/2 и POSIX API.

Рис. 3. Новый логотип HP VMS (aka OpenVMS).

NT – переработанная VMS

Большинство основных проектировщиков NT продолжило работать и над VMS в Digital. Многие пользователи верят, что разработчики NT перенесли концепции VMS в NT, но большинство не знает, как похожи NT и VMS на уровне ядра (совпадение или нет, если вы увеличите каждую букву в названии VMS вы получите WNT).
Первая версия Windows NT, Windows NT 3.1, была выпущена в июле 1993 и была названа так, чтобы соответствовать номеру версии текущего на тот момент 16-битного продукта Windows. С этих пор команда разработчиков NT работала над совершенствованием выпусков и все разработки велись на одной и той же кодовой базе. Следующей версией NT стала 3.5, которая носила кодовое имя Daytona и была выпущена в сентябре 1994. Первоначальными возможностями для Daytona были размер, производительность и совместимость с Netware.

Рис. 4. Загрузочный экран NT 3.1.
Как в UNIX, и в большинстве коммерческих ОС, у NT есть два режима исполнения кода. В пользовательском режиме выполняются приложения, подситемы OS/2, DOS, и POSIX. Эти компоненты являются непривилегированными, потому что NT управляет ими, а также аппаратными средствами, на которых они работают. Без разрешения NT эти компоненты не могут непосредственно получить доступ к аппаратным средствам. Кроме того, компоненты и оборудование не могут получить доступ ни к другим адресным пространствам, ни к адресному пространству ядра. Компоненты в пользовательском режиме должны обратиться к ядру, если они хотят получить доступ к аппаратным средствам или выделить физические или логические ресурсы.
Ядро исполняется в привилегированном режиме: оно может непосредственно получить доступ к памяти и апаратуре. Ядро состоит из нескольких исполнительных подсистем, которые отвечают за обслуживание ресурсов, включая диспетчер процессов, диспетчер воода/вывода, диспетчер виртуальной памяти, справочный монитор безопасности, и микроядро, которое обслуживает планирование и прерывания. Система динамически загружает драйверы устройств, которые являются компонентами ядра и служат интерфейсом между NT и различными периферийными устройствами. Уровень абстрагирования от оборудования (HAL) скрывает специфичные особенности процессора и материнской платы от NT. Родной (native) API NT – это API, который приложения пользовательского режима используют для вызова ядра. Этот родной API главным образом недокументирован, потому что приложения, как предполагается, вызывают подсистему Win32, DOS, OS/2, POSIX, или Win16, и соответствующая подсистема взаимодействует с ядром от имени приложения.
Разработчики Digital написали ядро VMS почти полностью на ассемблере VAX. Чтобы код был портируемым на различные архитектуры процессоров, разработчики Microsoft написали ядро NT почти полностью на C. При разработке NT, разработчики переписали VMS на C, избавили ее от недостатков, настроили, и добавили некоторый новый функционал и совместимость. Они создали новый API (то есть, Win32), новую файловую систему (то есть, NTFS), и новую графическую подсистему интерфейса, исполнительную среду, поддерживая т. о. обратную совместимость с DOS, OS/2, POSIX, и Win16. Однако, перемещение внутренностей VMS в NT было настолько полным, что в течение нескольких недель после выпуска NT, инженеры Digital заметили поразительные общие черты.

Рис. 5. Обобщенная архитектура ядра VMS.

Рис. 6. Обобщенная архитектура ядра NT.
Из этих общих черт можно составить книгу. Фактически, можно прочитать разделы книги «VAX/VMS Internals and Data Structures» (Digital Press) как точное описание внутренностей NT, просто переводя термины VMS к терминам NT. Рассмотрим некоторые из главных общих черт и различий между Windows NT 3.1 и VMS 5.0, последней версией VMS, на которую Дейв Катлер и его команда, оказали большое влияние.
Процессы в NT фактически идентичны процессам VMS. В NT, как в VMS, планировщик процессов реализует 32 уровня приоритетов. Процесс с самым высоким приоритетом всегда активен, а процессы с тем же самым приоритетом планируются по принципу карусели. Система выделяет 16 уровней высокого приоритета - реального времени или уровней с фиксированным приоритетом. В таких процессах планировщик не манипулирует приоритетами. 16 низкоприоритетных уровней (исключая нулевой, который система резервирует для потока простоя idle, он выполняется в том случае, когда нет готовых к выполнению потоков) являются динамическими, потому что планировщик, часто, совместно с драйверами устройств, увеличивает приоритеты, при отклике на различные события. Например, когда процесс получает данные от устройства, приоритет соответственно увеличивается. Особенность диспетчеров процессов NT и VMS в том, что они никогда не понижают приоритет процесса ниже приоритета, на котором изначально работает приложение. Планировщики и VMS 5.0 и NT 3.1 поддерживают симметрическую мультипроцессорную обработку (SMP), которая позволяет им выполнять процессы одновременно на различных центральных процессорах, для увеличения производительности приложения.
Главное различие между NT и VMS в управлении процессами в том, что процессы NT содержат один или более потоков, и планировщик NT предоставляет процессорное время не процессам, а потокам. Digital не вводила потоки режима ядра в VMS до версии 7.0 в 1995. Это дополнение - одно из нескольких улучшений, сделанных Digital для VMS, начиная с выхода NT, которые появились в ответ на возможности NT. В свою очередь, Microsoft добавила легкие потоки пользовательского режима к NT 4.0 в 1996, которые она скопировала с реализации потоков VMS.

Рис. 7. Загрузочный экран NT 4.0.
Диспетчеры памяти в NT и VMS также похожи. Обе ОС осуществляют трансляцию виртуальных адресов, которые система разделяет между выполняемым приложением и ядром. И NT и VMS полагаются, в большой степени, на проецируемые в память файлы, особенно для проецирования кода, выполняемого приложением и реализацию функционала копирование при записи (copy-on-write). Физическое управление памятью в NT и VMS осуществляется через подкачку виртуальной памяти по требованию (demand-paged virtual memory). Диспетчер памяти VMS назначает каждому процессу верхние и нижние пределы количества физической памяти (такой алгоритм называется рабочий набор, working set). Эта возможность регулирует распределение физической памяти между приложениями, чтобы процесс, требующий много памяти не смог воздействовать, таким образом, на другие приложения.
Как и с диспетчером процессов, примечательные отличия существуют между диспетчером памяти NT и VMS. Диспетчер настройки баланса VMS (VMS's Balance Set Manager) перемещает всю память процессов из памяти в файлы подкачки и обратно в память, в ответ на требования системы. Microsoft не перенесла этот механизм, известный как свопинг (swapping, устаревший механизм подкачки, согласно которому процесс выгружался из памяти не постранично, а целиком) в диспетчер настройки баланса NT, хотя некоторые из вторичных обязанностей диспетчера настройки баланса NT сходны с обязанностями диспетчера VMS.
Диспетчер ввода/вывода NT непосредственно основан на диспетчере ввода/вывода VMS. У обеих ОС он поддерживает многоуровневую модель драйверов через стек драйверов устройств, а также реализует асинхронные команды ввода/вывода, основанные на пакетах (специальных структурах данных), и способен динамически загружать и выгружать драйверы устройств. Стековые и загружаемые драйверы делают NT и VMS очень расширяемымыми ОС. Любая из них может делить функциональность между несколькими драйверами устройств, при этом каждый из них будет реализовывать свой уровень абстракции. Например, система может вставить отказоустойчивый драйвер диска (fault-tolerant disk driver) между драйвером файловой системы и дисковым драйвером. Эта конфигурация позволяет отказоустойчивому драйверу диска получать запрос, который система посылает на один логический диск (например, C), и далее отправить запрос на несколько физических дисков, чтобы осуществить зеркалирование или чередование. Асинхронный ввод/вывод позволяет приложениям и подсистемам ядра инициировать запросы на устройства и продолжать работу, и это предпочтительнее, чем просто ждать завершения запроса (синхронный ввод/вывод). Архитектура драйвера устройства NT и схема приоритетов запросов перерываний основаны на аналогичных в VMS.
NT и VMS представляют ресурсы как объекты, которыми система управляет через диспетчер объектов, он реализует унифицированный механизм подсчета ссылок и учета объектов. Диспетчер объектов регулирует выделение ресурса и вызывает функции исполнительной подсистемы, которые запросили уведомление об определенных операциях на объекте. Управление объектами в VMS не формализовано как в NT, и диспетчер объектов VMS - только свободная связь функций. Microsoft расширила диспетчер объектов в NT так, чтобы он предоставлял единую схему именования для всех ресурсов ядра.
Подсистема безопасности NT основана на объектах со списком избирательного управления доступом (discretionary access control lists). Эти списки определяют, какие пользователи и какие операции они могут выполнить на этих объектах. Digital добавила улучшенный DACL к модели безопасности VMS в версии 4.0 в 1984. Поэтому, реализация безопасности VMS - предшественник NT. Microsoft даже включала системные утилиты из VMS в NT, включая, Монитор Производительности (Performance Monitor), который основан на программе MONITOR, расширяемом мониторе производительности VMS (extensible VMS performance monitor). VMS включала утилиту под названием BACKUP задолго до того, как Microsoft разработала подобную ей для NT.
Статья "Почему Самый быстрый Чип не Победил", "Why the Fastest Chip Didn't Win" (Business Week, April 28, 1997) заявляет, что, когда инженеры Digital заметили общие черты между VMS и NT, они донесли свои наблюдения до высшего руководства. Вместо предъявления иска, Digital просто разорвала связи с Microsoft. Летом 1995, Digital анонсировала Affinity для OpenVMS, программу, которая требовала от MS помощи в обучении работе с NT технического персонала Digital, а также помощи в продвижении NT и OpenVMS как части сетевого решения клиент-сервер, и обещания встроить в NT поддежку Alpha процессора. Microsoft также заплатила Digital сумму между 65 миллионами и 100 миллионов долларов.

Заключение

Хотя Microsoft представляет NT как свою ОС, она фактически намного старше своей даты рождения в 1993 и содержит архитектурное влияние от ОС другого флагмана. Интересно, что большая часть бизнеса Microsoft, это ее линейка современных ОС для PC, каждая из которых, по сути, основана на ОС от другого вендора. DEC не смогла бы сделать OpenVMS такой популярной, т. к. та изначально была ориентирована на серверы и свою архитектуру VAX. MS же напротив, соединила клиентскую и серверную модели (впервые в Windows 2000). В итоге они получили ядро ОС, которое может работать как с клиентскими, так и с серверными PC, достаточно лишь его настроить соответствующим образом.