искусственная реальность
а настоящая мне не нужна
Привет, Гость
  Войти…
Регистрация
  Сообщества
Опросы
Тесты
  Фоторедактор
Интересы
Поиск пользователей
  Дуэли
Аватары
Гороскоп
  Кто, Где, Когда
Игры
В онлайне
  Позитивки
Online game О!
  Случайный дневник
LTalk
Ещё…↓вниз
Отключить дизайн


Зарегистрироваться

Логин:
Пароль:
   

Забыли пароль?


 
yes
Получи свой дневник!

искусственная реальность > История Windows на базе NT  27 марта 2008 г. 13:24:30


История Windows на базе NT

Королева осени Nano Shell32.dll 27 марта 2008 г. 13:24:30
Windows NT 3.0
­­

История разработки

Разработка Windows NT, начатая в ноябре 1988 г. под рабочим названием NT OS/2, велась параллельно с разработкой фирмой IBM собственной ОС, OS/2 2.0, которая окончательно вышла только в апреле 1992 г. Одновременно с этим фирма Майкрософт продолжала разрабатывать свои ОС семейства DOS и Windows, отличающиеся меньшими требованиями к ресурсам компьютера, чем IBM OS/2. После того, как была выпущена Windows 3.0 в мае 1990, Microsoft решила добавить в NT OS/2 программный интерфейс (API), совместимый с Windows API. Это решение вызвало серьёзные трения между фирмами Майкрософт и IBM, которые закончилась разрывом совместной работы. IBM стала продолжать разработку OS/2 в одиночку, а Майкрософт стала работать над системой, которая была в итоге выпущена под названием Windows NT. Хотя эта система не принесла немедленной популярности подобно DOS или Windows, Windows NT оказалась существенно более успешной, чем OS/2.

Интересно заметить, что в качестве программных интерфейсов ОС NT изначально планировались API OS/2, и затем POSIX — поддержка Windows API была добавлена в последнюю очередь. Кроме того, в качестве аппаратной платформы для NT изначально планировались Intel i860, и затем MIPS — точно так же, поддержка Intel x86 была добавлена позднее. Затем, в процессе эволюции этой ОС, исчезла поддержка обоих изначально запланированных программных интерфейсов (POSIX-подсистема была, впрочем, недавно заменена пакетом Сервисы Microsoft Windows для UNIX) и обеих изначально запланированных аппаратных платформ (для i860 даже не было ни одной релизной версии этой ОС, хотя именно от кодового названия этого процессора, N10, происходит название самой ОС NT).

Переносимость NT была одной из её первоочередных задач: именно поэтому разработка этой ОС изначально велась для процессора i860 — хотя двоичная совместимость с OS/2, бывшая одним из условий проекта NT OS/2, в любом случае потребовала бы создания версии NT для x86 либо включения в неё эмуляции этой платформы. Количество платформ, для которых существовали релизные версии ОС семейства Windows NT, впечатляет: кроме названных MIPS и Intel x86, сюда входят PowerPC, DEC Alpha, Itanium и AMD x64. Независимыми производителями компьютерных систем были также разработаны версии Windows NT для архитектур Clipper (англ.) и SPARC; однако эти версии не были выпущены как самостоятельные программные продукты. В качестве ОС высокой переносимости при разработке NT были взяты за пример ОС Unix и Mach.

Для разработки ОС NT фирма Майкрософт пригласила группу специалистов из компании DEC во главе с Дэвидом Катлером (англ.), обладающую опытом создания многозадачных операционных систем, таких как VAX/VMS и RSX-11 (англ.). Некоторое сходство, отмеченное между внутренними архитектурами Windows NT и ОС семейства VMS, дало основания обвинить вновь принятых сотрудников Microsoft в краже интеллектуальной собственности DEC. Образовавшийся конфликт был разрешён мирным путём: DEC признала собственность Microsoft на технологии, лежащие в основе Windows NT, а Microsoft создавала и поддерживала версию Windows NT для архитектуры DEC Alpha.

Несмотря на общие корни, совместимость Windows NT и OS/2 уменьшалась с каждым новым выпуском этой ОС. Поддержка API OS/2 2.0, хотя планировалась в NT, так и не была завершена; в Windows NT 4.0 была удалена поддержка файловой системы HPFS, а в Windows XP была удалена подсистема поддержки программ для OS/2 1.x.

Компоненты ядра

Компоненты пользовательского режима

Подсистема пользовательского интерфейса в Windows NT реализует оконный интерфейс, подобный интерфейсу предыдущих версий Windows. Двумя типами объектов этой подсистемы, отсутствовавшими в 16-битных версиях Windows и в Windows 9x, являются оконные станции и рабочие столы. Оконная станция соответствует одному сеансу пользователя Windows NT — например, при подключении через службу удалённого рабочего стола создаётся новая оконная станция. Каждый запущенный процесс принадлежит к одной из оконных станций; службы, кроме помеченных как способные взаимодействовать с рабочим столом, запускаются в отдельных, невидимых оконных станциях.

Каждая оконная станция имеет собственный буфер обмена, набор глобальных атомов (используемых для операций DDE), и набор рабочих столов. Рабочий стол является контекстом всех глобальных операций подсистемы пользовательского интерфейса, таких как установка хуков и широковещательная рассылка сообщений. Каждый запущенный поток принадлежит к одному из рабочих столов — тому, где расположены обслуживаемые им окна; в частности, один поток не может создать несколько окон, принадлежащих к различным рабочим столам. Один из рабочих столов может быть активным (видимым пользователю и способным реагировать на его действия), остальные рабочие столы спрятаны. Возможность создать для одного сеанса работы несколько рабочих столов и переключаться между ними до настоящего времени не предоставлялась стандартными средствами пользовательского интерфейса Windows, хотя существуют сторонние программы, дающие доступ к этой функциональности.

Оконными станциями и рабочими столами исчерпываются объекты подсистемы пользовательского интерфейса Windows NT, которым могут быть назначены права доступа. Оставшиеся типы объектов — окна и меню — предоставляют полный доступ любому процессу, который находится с ними в одной оконной станции. Поэтому службы Windows NT по умолчанию запускаются в отдельных оконных станциях: они работают с повышенными привилегиями, и возможность процессов пользователя неограниченно манипулировать окнами служб могла бы привести к сбоям и/или проблемам безопасности.

Программные интерфейсы

Native API

Для прикладных программ системой Windows NT предоставляется несколько наборов API. Самый основной из них — так называемый «родной» API (NT Native API), реализованный в динамически подключаемой библиотеке ntdll и состоящий из двух частей: системные вызовы ядра NT (функции с префиксами Nt и Zw, передающие выполнение функциям ядра ntoskrnl с теми же названиями) и функции, реализованные в пользовательском режиме (с префиксом Rtl). Часть функций второй группы используют внутри себя системные вызовы; остальные целиком состоят из непривилегированног­о кода, и могут вызываться не только из кода пользовательского режима, но и из драйверов. Кроме функций Native API, в ntdll также включены функции стандартной библиотеки языка Си.

Официальная документация на Native API весьма скудна, но сообществам энтузиастов удалось методом проб и ошибок собрать достаточно обширные сведения об этом интерфейсе. В частности, в феврале 2000 г. опубликована книга Гэри Неббета «Справочник по базовым функциям API Windows NT/2000» (ISBN 1-57870-199-6); в 2002 г. она была переведена на русский язык (ISBN 5-8459-0238-X). Источником информации о Native API может служить Windows DDK, где описаны некоторые функции ядра, доступные посредством Native API, а также изучение кода Windows (обратный инжиниринг) — посредством дизассемблирования,­ либо используя исходные тексты Windows 2000, ставшие доступными в результате утечки, либо используя исходные тексты Windows 2003, доступные в рамках программы Windows Research Kernel.

Программы, выполняющиеся до загрузки подсистем, обеспечивающих работу остальных API ОС Windows NT, ограничены использованием Native API. Например, программа autochk, проверяющая диски при загрузке ОС после некорректного завершения работы, использует только Native API.

Win32 API

Чаще всего прикладными программами для Windows NT используется Win32 API — интерфейс, созданный на основе API ОС Windows 3.1, и позволяющий перекомпилировать существующие программы для 16-битных версий Windows с минимальными изменениями исходного кода. Совместимость Win32 API и 16-битного Windows API настолько велика, что 32-битные и 16-битные приложения могут свободно обмениваться сообщениями, работать с окнами друг друга и т. д. Кроме поддержки функций существовавшего Windows API, в Win32 API был также добавлен ряд новых возможностей, в т.ч. поддержка консольных программ, многопоточности, и объектов синхронизации, таких как мутексы и семафоры. Документация на Win32 API входит в состав Microsoft Platform SDK (англ.) и доступна на веб-сайте http://msdn2.micros­oft.com/en-us/librar­y/

Библиотеки поддержки Win32 API в основном названы так же, как системные библиотеки Windows 3.x, с добавлением суффикса 32: это библиотеки kernel32, advapi32, gdi32, user32, comctl32, comdlg32, shell32 и ряд других. Функции Win32 API могут либо самостоятельно реализовывать требуемую функциональность в пользовательском режиме, либо вызывать описанные выше функции Native API, либо обращаться к подсистеме csrss посредством механизма LPC (англ.), либо осуществлять системный вызов в библиотеку win32k, реализующую необходимую для Win32 API поддержку в режиме ядра. Четыре перечисленных варианта могут также комбинироваться в любом сочетании: например, функция Win32 API WriteFile обращается к функции Native API NtWriteFile для записи в дисковый файл, и вызывает соответствующую функцию csrss для вывода в консоль.

Поддержка Win32 API включена в семейство ОС Windows 9x; кроме того, она может быть добавлена в Windows 3.1x установкой пакета Win32s. Для облегчения переноса существующих Windows-приложений,­ использующих для представления строк MBCS-кодировки, все функции Win32 API, принимающие параметрами строки, были созданы в двух версиях: функции с суффиксом A (ANSI) принимают MBCS-строки, а функции с суффиксом W (wide) принимают строки в кодировке Unicode. В Win32s и Windows 9x поддерживаются только A-функции, тогда как в Windows NT, где все строки внутри ОС хранятся исключительно в Юникоде, каждая A-фунция просто преобразует свои строковые параметры в Юникод и вызывает W-версию той же функции. Когда имя функции в исходном тексте программы указано без суффикса, использование A- либо W-версии этой функции определяется опциями компиляции. При этом важно отметить, что большинство новых функций, появившихся в Windows 2000 или более поздних ОС семейства Windows NT, существуют только в Unicode-версии, потому что задача обеспечения совместимости со старыми программами и с ОС Windows 9x уже не стоит так остро, как раньше.

POSIX и OS/2

В отличие от большинства «свободных» Unix-подобных ОС, Windows NT сертифицирована институтом NIST на совместимость со стандартом POSIX.1, и даже с более строгим стандартом FIPS 151-2. Библиотекой psxdll экспортируются стандартные функции POSIX, а также некоторые функции Native API, не имеющие аналогов в POSIX — например, для работы с кучей, со структурными исключениями, с кодировкой Unicode. Внутри этих функций используются как Native API, так и LPC-вызовы в подсистему psxss, являющуюся обычным Win32-процессом. Для загрузки этой подсистемы и выполнения POSIX-программы используется консольная программа-оболочка posix. Поддержка POSIX, включённая в Windows NT, не содержит расширений для работы с графикой или многопоточными приложениями.

Для выполнения 16-битных программ, написанных для OS/2 1.x, в состав Windows NT включены две системных библиотеки OS/2 (doscalls и netapi) и консольная программа-эмулятор os2, которая загружает и использует посредством LPC-вызовов подсистемы os2srv и os2ss. Остальные системные библиотеки OS/2, кроме двух названных (kbdcalls, mailslot, moncalls, nampipes, quecalls, viocalls и ещё десяток), не хранятся как отдельные файлы, а эмулируются. Программы, написанные для OS/2 2.0 и выше, а также оконные программы и программы, напрямую работающие с устройствами компьютера, в том числе драйвера, системой Windows NT не поддерживаются.

Обе эти подсистемы, необязательные для работы большинства приложений, были удалены в Windows XP и последующих выпусках Windows. При помощи манипуляций с реестром их можно было отключить и в предыдущих версиях Windows NT, что рекомендовалось специалистами по компьютерной безопасности в целях сокращения поверхности атаки компьютерной системы.

DOS и Win16

Чтобы обеспечить двоичную совместимость с существующими программами для предыдущих семейств ОС от Microsoft, в Windows NT была добавлена программа-эмулятор ntvdm, реализующая VDM (виртуальную DOS-машину), внутри которой может выполняться программа для DOS. Для каждой выполняемой DOS-программы создаётся собственная VDM, тогда как несколько 16-битных Windows-программ могут выполняться в отдельных потоках внутри одной VDM, которая в этом случае играет роль подсистемы. Для того, чтобы внутри VDM можно было выполнять программы для Windows, в неё сначала должна быть загружена программа wowexec, устанавливающая связь VDM с платформой WOW («Windows on Win32»), позволяющей использовать 16-битные приложения для Windows наравне с 32-битными. Сама программа-эмулятор ntvdm выполняется внутри подсистемы Win32, что позволяет Win32-программам обращаться к окнам DOS-программ как к обычным консольным окнам, а к окнам Win16-программ — как к обычным графическим окнам.

Ещё одна технология обеспечения двоичной совместимости, реализованная в Windows NT — это thunks, которые позволяют 32-битным программам пользоваться 16-битными DLL-библиотеками (для Windows или OS/2), и наоборот. Thunks для Win16 реализованы в библиотеках wow32 (32-битные точки входа) и krnl386 (16-битные точки входа); thunks для OS/2 — в библиотеке doscalls (16-битные точки входа). К 16-битным системным библиотекам, включённым в состав Windows NT для использования технологией WOW, относятся krnl386, gdi, user, commctrl, commdlg, shell и др. Поддержка DOS-программ виртуальной DOS-машиной системы Windows NT не ограничена эмуляцией реального режима процессора x86: поддерживается интерфейс DPMI, позволяющий DOS-программам обращаться к расширенной памяти. Однако поддержка программ для DOS и Win16 в Windows NT ограничена требованиями безопасности: программы, напрямую работающие с устройствами компьютера, в том числе драйвера, не поддерживаются.

В связи с аппаратными ограничениями 64-битных платформ, поддержка VDM и WOW была исключена из 64-битных версий Windows, и запуск 16-битных программ на них невозможен. Основным API этих версий Windows NT является 64-битная версия Win32 API; для запуска 32-битных программ используется технология WOW64 (англ.), аналогичная традиционной WOW.

Аппаратные платформы

Как уже было отмечено, создание версии NT для x86 требовалось для обеспечения совместимости с OS/2, — однако для того, чтобы убедиться в переносимости создаваемого кода, разработка NT началась с версий для RISC-архитектур, и только потом была добавлена поддержка x86. Изначально разработка x86-версии Windows NT была ориентирована на процессор i486, но к моменту выпуска Windows NT 3.1 была также добавлена поддержка i386. Последней версией, поддерживающей i386, была Windows NT 3.51, а начиная с Windows 2000, прекращена также поддержка i486.

Процессор i860, для которого велась начальная разработка ОС NT, не получил ко времени завершения работ над Windows NT той поддержки производителями компьютеров, на которую рассчитывали Intel и Microsoft. В результате тремя платформами, поддержка которых была включена в Windows NT 3.1, стали x86, Alpha и MIPS. В выпусках Windows NT 3.x поддержка этих платформ сохранялась, пополнившись в Windows NT 3.51 также архитектурой PReP (англ.) на основе процессора PowerPC. Однако Windows NT 3.51 не была совместима с компьютерами Macintosh с тем же процессором; фактически, поддерживались только клоны IBM PC с процессором PowerPC вместо x86. Такие компьютеры выпускались в основном фирмами-создателями­ PowerPC — IBM и Motorola.

Первый выпуск Windows NT 4 поддерживал четыре платформы (x86, Alpha, MIPS и PowerPC), но поддержка менее распространённых платформ сокращалась по мере выхода пакетов обновления: из SP1 была удалена поддержка MIPS, из SP3 — поддержка PowerPC. Последними выпусками Windows NT 4 поддерживались только x86 и Alpha; хотя поддержка Alpha планировалась к включению в Windows 2000, она была исключена из версии RC2. В результате единственной платформой, поддерживаемой на Windows 2000, стала x86.

Поддержка 64-битных процессоров была впервые реализована в Windows XP для IA-64 — архитектуры процессоров Intel Itanium. На основе 64-битной версии Windows XP были созданы также 64-битные серверные версии Windows 2000; позже поддержка процессора Itanium была добавлена и в часть версий Windows Server 2003. Второй 64-битной архитектурой, поддерживаемой в ОС семейства Windows NT, стала созданная AMD архитектура x64, позже реализованная в процессорах Intel под названием EM64T. Одновременно были выпущены Windows Server 2003 SP1 x64 и Windows XP Professional x64, представляющие собой серверный и настольный варианты одной и той же версии Windows — в частности, к этим выпускам применимы одни и те же обновления. С 2005 г. поддержка IA64 была удалена из настольных версий Windows; в последней из вышедших ОС семейства NT, Windows Vista, поддерживаются только процессоры x86 и x64. Планируется, что поддержка процессоров Itanium сохранится в некоторых серверных версиях Windows.
nt4.0
­­
Windows NT 4.0 — последняя версия семейства сетевых операционных систем Microsoft Windows NT, вышедшая под этим названием. Следующая сетевая операционная система от Microsoft вышла под названием Windows 2000.

Windows NT 4.0 имела модификации для использования в качестве операционной системы рабочей станции и сервера и предназначалась для работы на компьютерах архитектур Alpha, MIPS, x86 и PowerPC.

Windows NT 4.0 для x86 имеет следующие системные требования: Процессор Intel 486 или выше, 64 (в оригинале — 128) Мегабайт оперативной памяти, 250 Мбайт дискового пространства, CD-ROM.

Nt2000

­­

Windows 2000 (также называемая Win2k, W2k или Windows NT 5.0) — это операционная система семейства Windows NT от компании Microsoft, предназначенная для работы на компьютерах с 32-битными процессорами (с архитектурой совместимой с Intel IA-32) .

Первая бета-версия системы была выпущена 27 сентября 1997 года. Изначально система носила название Windows NT 5.0, поскольку была следующей крупной версией Windows NT после Windows NT 4.0. Однако 27 октября 1998 года она получила собственное название Windows 2000. Финальная версия системы была выпущена для широкой общественности 17 февраля 2000 года.

Windows 2000 выпускается в четырёх изданиях: Professional (издание для рабочих станций и опытных пользователей), Server, Advanced Server и Datacenter Server (для применения на серверах). Кроме того, существует «ограниченное издание» Windows 2000 Advanced Server Limited Edition и Windows 2000 Datacenter Server Limited Edition, предназначенное для работы на 64-разрядных процессорах Intel Itanium.

Некоторыми из наиболее существенных улучшений в Windows 2000 по сравнению с Windows NT 4.0 являются:

* Поддержка службы каталогов Active Directory. Серверная часть Active Directory поставляется с изданиями Server, Advanced Server и Datacenter Server, в то время как полную поддержку службы на стороне клиента осуществляет издание Professional.
* Службы IIS версии 5.0. По сравнению с IIS 4.0 эта версия включает, помимо прочего, версию 3.0 системы веб-программировани­я ASP.
* Файловая система NTFS версии 3.0 (также называемая NTFS 5.0 по внутренней версии Windows 2000 — NT 5.0). В этой версии NTFS впервые появилась поддержка квот, то есть ограничений на максимальный объём хранимых файлов для каждого пользователя.
* Обновлённый пользовательский интерфейс, включающий Active Desktop на основе Internet Explorer версии 5 и подобный, таким образом, интерфейсу Windows 98.
* Языковая интеграция: предыдущие версии Windows выпускались в трёх вариантах — для европейских языков (однобайтные символы, письмо только слева направо), для дальневосточных языков (многобайтные символы) и для ближневосточных языков (письмо справа налево с контекстными вариантами букв). Windows 2000 объединяет эти возможности; все её локализованные версии сделаны на единой основе.

Впоследствии Windows 2000 была заменена операционными системами Windows XP (на стороне клиента) и Windows Server 2003 (на стороне сервера). Однако Windows 2000 сохраняет свою популярность, особенно в крупных компаниях, где обновление операционных систем на большом числе компьютеров связано с серьёзными техническими и финансовыми трудностями. Согласно исследованию компании Assetmetrix, в начале 2005 года доля Windows 2000 среди операционных систем Windows для рабочих станций в компаниях с более чем 250 компьютерами составляет более 50 %. В то же время в компаниях с менее чем 250 компьютерами Windows XP более популярна. [1] Корпорация Microsoft 30 июня 2005 года прекратила основную поддержку операционной системы Windows 2000. Расширенная поддержка будет сохранена до 30 июня 2010 года.


Утечка исходных текстов

12 февраля 2004 г. стало известно об утечке части исходных текстов Windows 2000 в пиринговые сети. [2] Они распространялись в виде zip-архива размером около 200 МБ; полный размер содержимого архива был около 600 МБ, что дало основания полагать, что исходные тексты были вынесены на CD-ROM из некого учреждения, имевшего к ним доступ (к ним относились сама корпорация Microsoft, государственные учреждения, заключившие с ней контракт Government Security Program, а также множество мелких фирм, получивших подряды на работу над отдельными частями Windows).

Как стало известно позднее, эти исходные тексты соответствовали версии Windows 2000 SP1. Они были переданы израильской компании Mainsoft, которая занималась портированием веб-браузера Internet Explorer для UNIX-систем. Адреса электронной почты сотрудников Mainsoft были обнаружены в одном из креш-дампов, содержавшихся в архиве с исходными текстами.

Через несколько дней после утечки Microsoft выпустила обращение [3], в котором подтверждала соответствие содержимого zip-архива исходным текстам Windows 2000, и обещала применить юридические санкции ко всем, кто будет уличён в распространении этого архива. Несмотря на угрозу, эти исходные тексты быстро разошлись по хакерским сообществам по всему миру. В частности, вскоре после утечки была обнаружена уязвимость в коде обработки BMP-файлов в IE; специалист по компьютерной безопасности, обнаруживший эту уязвимость, подтвердил, что он нашёл её, изучая утёкшие исходные тексты
Прoкoммeнтировaть
Обратите внимание на:
База Данных по аниме 31 мая 2011 г. Кулёма Вишнёвская в сообществе Сайты.ру
... 11 июня 2008 г. Piper Halliwell
Файл № 09760100 21 апреля 2012 г. Дeйзи. в сообществе .. страшные истории ..
 

Дoбавить нoвый кoммeнтарий

Как:

Пожалуйста, относитесь к собеседникам уважительно, не используйте нецензурные слова, не злоупотребляйте заглавными буквами, не публикуйте рекламу и объявления о купле/продаже, а также материалы, нарушающие сетевой этикет или законы РФ. Ваш ip-адрес записывается.


искусственная реальность > История Windows на базе NT  27 марта 2008 г. 13:24:30

читай на форуме:
никого нет
Хочу
я жо всем бабам баба,чо вы?:-|
пройди тесты:
}{R{}№()$- значит время. Часть 44.
Боль шамана 1
банк.
читай в дневниках:
Здесь выкладываем всё про 4-ый сезо...

  Copyright © 2001—2018 LTalk
Авторами текстов, изображений и видео, размещённых на этой странице, являются пользователи сайта.
Задать вопрос.
Написать об ошибке.
Оставить предложения и комментарии.
Помощь в пополнении позитивок.
Сообщить о неприличных изображениях.
Информация для родителей.
Пишите нам на e-mail.
Разместить Рекламу.
If you would like to report an abuse of our service, such as a spam message, please contact us.
Если Вы хотите пожаловаться на содержимое этой страницы, пожалуйста, напишите нам.

↑вверх