Для чего применяется механизм ics в системах семейства windows

Обновлено: 03.07.2024

Одна из самых полезных сетевых функций Windows 2000 - трансляция сетевых адресов (Network Address Translation - NAT). Протокол маршрутизации NAT, с помощью которого подключенное к Internet устройство может делить канал связи с остальными узлами сети, определен в документе RFC 1631 комитета IETF (Internet Engineering Task Force). Протокол обеспечивает эту возможность, преобразуя внутренние IP-адреса локальной сети, указанные в IP-заголовке пакетов TCP и UDP, в единый маршрутизируемый адрес сетевого интерфейса в Internet. NAT обеспечивает не только разделение канала связи с Internet, но и безопасность локальных сетей, поскольку узлам Internet неизвестны частные адреса, назначенные машинам, скрытым за NAT-совместимым устройством.

Функции NAT реализованы в двух программных компонентах Windows 2000: Internet Connection Sharing (ICS), входящем в состав Windows 2000 Professional и всех серверных продуктов Windows 2000, и протоколе маршрутизации NAT - составной части службы RRAS в серверных продуктах Windows 2000. Компонент ICS очень пригодится сотрудникам малого/домашнего офиса (SOHO) с сетью на базе Windows 2000 Pro, которым нужно подключить несколько компьютеров к одному каналу связи с Internet.

Windows 2000 ICS

Функция ICS в Windows 2000 похожа на одноименный компонент Windows 98 Second Edition, но более проста в применении. ICS работает с Internet-соединениями всех типов, в том числе адаптерами, подключенными к маршрутизаторам (например, xDSL, ретрансляции кадров, ISDN), и коммутируемыми соединениями через модемы и терминальные адаптеры ISDN. Кроме того, Windows 2000 Pro автоматически инсталлирует ICS, поэтому компонент всегда под рукой.

Процедура установки ICS довольно проста. Чтобы активизировать ICS на существующем коммутируемом или втором сетевом соединении, следует щелкнуть правой кнопкой мыши на пиктограмме соединения в разделе Network and Dial-Up Connections и выбрать пункт Properties. На закладке Sharing диалогового окна нужно указать флажок Enable Internet Connection Sharing for this connection. Если данное соединение - коммутируемое, то в диалоговом окне (например, для модема или терминального ISDN-адаптера) появится еще один флажок, Enable on-demand dialing. Если эта функция активизирована, то Windows 2000 автоматически устанавливает соединение с Internet всякий раз, когда операционная система обнаруживает трафик, предназначенный для Internet. Данная функция особенно полезна для локальных сетей малых офисов, так как соединение устанавливается независимо от того, генерируется трафик Internet локально или на другой сетевой машине.

Затем следует настроить всех сетевых клиентов на работу с DHCP. В результате клиенты получают IP-адреса от встроенного в службу ICS сервера DHCP, DHCP Allocator, и могут обращаться в Internet.

Одновременно следует настроить и клиентские браузеры. Из меню Tools браузера Microsoft Internet Explorer (IE) нужно выбрать пункт Internet Options. Необходимо убедиться, что в разделе Dial-Up Settings на закладке Connections диалогового окна установлен флажок Never dial a connection; не исключено, машина ранее использовала коммутируемую линию и была настроена на соединение по требованию. Затем нужно щелкнуть на кнопке Settings и в разделе Automatic Configuration диалогового окна установить флажок Automatically detect settings, а также убрать флажок Use automatic configuration. В разделе Proxy Server следует снять флажок Use a proxy server. После перезагрузки клиентских машин канал связи с Internet готов для совместного использования.

Правила и ограничения ICS

Как видно, администратору не требуется прилагать больших усилий для конфигурирования ICS. Однако платой за простоту оказывается некоторая потеря гибкости, которую не сразу замечают новые пользователи. Прежде чем применить ICS в сети, необходимо понять, какие существуют ограничения.

Во-первых, следует помнить, что ICS располагает усеченными серверами DHCP, DNS и WINS, ни один из которых не может быть отключен администратором. Поэтому никогда не следует устанавливать ICS на серверах Windows 2000, которые играют роль контроллеров домена (DC) или работают со службами DHCP или DNS (или в сетях, где используются эти службы), так как они будут конфликтовать с ICS. Это условие распространяется и на домены Windows 2000 на базе Active Directory (AD), поскольку в них полноценные службы DNS необходимы.

Во-вторых, ICS предъявляет довольно жесткие требования к сетевой конфигурации: после активизации ICS автоматически конфигурирует машину Windows 2000, которая играет роль шлюза в Internet, присваивая внутреннему адаптеру сети IP-адрес 192.168.0.1 с маской подсети 255.255.255.0 класса C. Чтобы дать клиентам локальной сети возможность находить ICS-систему, необходимо разместить их в той же подсети 192.168.0.x и использовать ICS-совместимую машину в качестве выбираемого по умолчанию шлюза. Самый простой (и рекомендуемый Microsoft) способ сделать это - просто настроить клиентов на использование DHCP, в результате чего они получают корректную информацию об IP-адресах от системы, реализующей ICS. В данной конфигурации ICS-машина предоставляет клиентам сети доступ к службам DNS и WINS, поэтому необходимо убедиться в корректности адресов DNS и WINS серверов на машине с ICS.

Индивидуальная настройка ICS

Если параметры сетевой среды согласуются с ограничениями ICS, и выполнены все рекомендации по конфигурированию, то можно приступать к настройке совместно используемого Internet-соединения. Единственная действительно мощная функция конфигурирования ICS - настройка ICS для работы с конкретными типами приложений и служб через Internet-соединение.

Функции NAT-маршрутизации ICS совместимы с большинством прикладных программ, но часто возникают проблемы с приложениями, которые используют IP-адреса клиентов и не могут функционировать корректно, если адрес преобразуется в адрес ICS-системы (например, приложения, использующие IP Security (IPSec), удаленный вызов процедур (RPC), облегченный протокол доступа к каталогам (LDAP) или SNMP). Некоторые приложения принципиально несовместимы с NAT-функциями ICS, и они не будут работать ни при каких условиях, но можно обеспечить совместимость с остальными программами, настроив конфигурацию ICS с помощью программы NAT Editor.

Для вызова NAT Editor следует обратиться к закладке Sharing, которую мы использовали ранее, чтобы активизировать ICS для сетевого соединения, и щелкнуть на кнопке Settings. Отыскать NAT Editor можно с помощью закладки Applications диалогового окна Settings.

Чтобы подготовить конкретное приложение для работы с NAT, необходимо собрать информацию о программе. В частности, необходимо знать удаленный порт, используемый сервером, на котором размещено приложение, для прослушивания; способность приложения работать с TCP и UDP-трафиком; порты ответа TCP и UDP для трафика, поступающего сетевым клиентам от удаленного сервера.

Еще одна возможность, которую администратор может предоставить пользователям Internet - доступ к службам на машинах локальной сети. Для этого необходимо перейти к закладке Sharing раздела Network and Dial-Up Connections и щелкнуть на кнопке Settings. На закладке Services диалогового окна приведен список нескольких наиболее распространенных IP-служб, в том числе FTP, IMAP4 и IMAP3, SMTP, POP3 и Telnet. Чтобы предоставить внешним пользователям доступ к определенной службе, следует пометить эту службу флажком и ввести имя DNS и IP-адрес сервера в диалоговом окне. Если сервера в списке нет, но известен его номер порта, то нужно ввести соответствующую информацию, щелкнув на кнопке Add в выведенном на экран диалоговом окне (Экран 1).

Заключительные замечания

У пользователей DSL-соединений вида PPPoE (Point-to-Point Protocol over Ethernet), в настоящее время предоставляемых многими Internet-провайдерами, может возникнуть проблема, связанная с размером окна MTU (Maximum Transmission Unit - максимальный размер пакета) IP-протоколов, установленных на ICS-совместимом компьютере. Обычно в таком случае пользователи не могут просматривать некоторые Web-узлы, посылать электронную почту с присоединенными файлами и т.д. Проблема хорошо известна, и ее можно устранить, вручную изменив размер MTU в реестре. Более подробную информацию можно найти в статье Microsoft "PPPoE with ICS Requires MTU Setting Below 1492 on the ICS Clients".

В этой статье описывается установка общего доступа к Интернету (ICS) на компьютере microsoft Windows Server 2003.

Применяется к: Windows Server 2003
Исходный номер КБ: 324286

Сводка

ICS позволяет использовать Windows Server 2003 для подключения небольшой сети офисов или домашней сети через Интернет. ICS предоставляет службы сетевого перевода адресов (NAT), IP-адресов и службы разрешения имен для всех компьютеров небольшой сети.

Для этой процедуры требуется следующее оборудование или программное обеспечение:

  • Цифровая абонентская линия (DSL) или кабельный модем, подключенный к поставщику интернет-услуг (ISP) и активированная учетная запись DSL или кабель.
  • Два установленных сетевых адаптера. В этой статье описано, как установить второй сетевой адаптер.
  • Сеть, уже настроенная с функцией TCP/IP.

Перед началом работы с процедурами в этой статье обратите внимание на следующие моменты:

Не используйте ICS в сети, которая:

Использует статические IP-адреса

Имеет контроллер Windows Server 2003

Использует другие DNS-серверы, шлюзы или серверы DHCP

Поскольку ICS создает статичный IP-адрес для сетевого адаптер и выделяет IP-адреса другим компьютерам в сети, вы потеряете подключение к остальной сети, если другие сетевые компьютеры уже предоставляют эти службы. Если в сети существует одно или несколько таких условий, вместо ICS необходимо использовать Windows Server 2003 NAT. Дополнительные сведения о NAT см. в Windows Server 2003 Help.

Не создавайте виртуальное частное сетевое (VPN) подключение к корпоративной сети с компьютера ICS. В этом случае по умолчанию весь трафик с компьютера ICS, в том числе трафик от локальных сетевых клиентов, будет переад. Это означает, что интернет-ресурсы больше не будут недоступны, и все клиентские компьютеры будут отправлять данные по логическому подключению, созданному с учетными данными пользователя компьютера ICS.

Не настраивать ICS на компьютере, который является VPN-сервером. Если компьютер Windows Server 2003 служит VPN-сервером, необходимо использовать Windows Server 2003 NAT.

Установка второго сетевого адаптера ethernet на хост-компьютер ICS

Чтобы установить другой адаптер Ethernet на хост-компьютерЕ ICS, необходимо войти в систему в качестве члена группы администраторов.

При нажатии кнопки Finish завершается установка сетевого адаптера, который вы только что установили.

Настройка компьютера-хозяина ICS

На хост-компьютере ICS обеспечивается подключение через второй сетевой адаптер к существующей сети TCP/IP. Войдите в группу Администраторы, чтобы настроить хост-компьютер ICS.

Щелкните правой кнопкой мыши подключение к локальной области (только что установленная сетовая карта), а затем переименуй его Подключение к Интернету.

В диалоговом окне Сетевые и диалоговые подключения отображаются два подключения (для различных сетевых адаптеров): подключение к Интернету и локальное подключение к области.

Щелкните правой кнопкой мыши Подключение к Интернету и нажмите кнопку Свойства.

Щелкните вкладку General и убедитесь, что отображается клиент для Microsoft Networks и Internet Protocol (TCP/IP).

Щелкните вкладку Advanced, а затем нажмите кнопку Включить общий доступ к Интернету для этого окна подключения.

Убедитесь в удалении программного обеспечения брандмауэра или другого программного обеспечения общего доступа к Интернету у любого сторонного производителя.

Настройка Windows клиента

Поскольку существует несколько версий Windows, на вашем компьютере могут быть другие действия. Если они есть, см. документацию по продуктам для выполнения этих действий.

Войдите в группу Администраторы, чтобы настроить Windows, которые будут делиться подключением к Интернету.

Щелкните правой кнопкой мыши Подключение по локальной сети и выберите Свойства.

Щелкните вкладку General и убедитесь, что клиент для Microsoft Networks и Internet Protocol (TCP/IP) отображается и выбирается.

Щелкните Протокол Интернета (TCP/IP) и нажмите кнопку Свойства.

Щелкните вкладку General, нажмите кнопку Получить IP-адрес автоматически, а затем нажмите кнопку Получить адрес сервера DNS автоматически (если эти параметры еще не выбраны).

Щелкните Расширенный, а затем убедитесь, что различные списки на вкладке Параметры, DNS и WINS являются пустыми.

Эти параметры предоставляет ICS.

Сеть ICS и dial-up

Для подключения к Интернету можно использовать диалоговую сеть. Однако подключение к сети dial-up обычно имеет более низкую пропускную способность. Это подключение не так полезно, когда несколько компьютеров разделяют подключение. Кроме того, диалоговая сеть не является постоянной (для подключения к хостов в Интернете необходимо вручную набрать номер), что может привести к начальным задержкам.

Устранение неполадок

Обратите внимание на следующие элементы, чтобы предотвратить проблемы при настройке ICS:

Не подключайте концентратор непосредственно к DSL или кабельному модему. В этом случае внутренняя сеть уязвима для других компьютеров, расположенных в Интернете. Если вы подключите компьютер непосредственно к DSL или кабельному модему, убедитесь, что вы отключите общий доступ к файлам и принтерам, чтобы ограничить уязвимость из Интернета. Однако при этом ваша сеть не может делиться файлами и принтерами, что может быть основной причиной сетевой связи.

Убедитесь, что программное обеспечение брандмауэра или другое программное обеспечение для общего доступа в Интернет от сторонних производителей было удалено. Убедитесь, что только компьютер с поддержкой ICS предоставляет IP-адреса, переадтранслирует имена DNS или действует как шлюз по умолчанию. Если нет, ICS может не работать или вы можете испытывать неожиданное поведение.

Невозможно изменить конфигурацию ICS. Например, нельзя запретить ICS выделять IP-адреса или изменять выделенные ICS IP-адреса. Если эти функции необходимы, вместо этого необходимо запустить NAT.

Компьютер ICS автоматически назначает IP-адреса, переназначает имена DNS в Интернет для разрешения имен и назначает себя в качестве шлюза по умолчанию для подключений к Интернету. Если компьютер с поддержкой ICS недоступен, другие клиентские компьютеры в сети не могут получить доступ к Интернету.

При настройке сети для использования TCP/IP удалите экземпляры протокола NetBEUI при их поиске. NetBEUI является избыточным и может замедлить сеть.

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

При выборе программно-аппаратной платформы необходимо учитывать целый ряд факторов:

  • имеющийся в данном вузе в наличии комплекс аппаратного и программного обеспечения;
  • стоимость приобретения недостающего оборудования и ПО;
  • распространенность той или иной платформы в корпоративном секторе;
  • спрос на специалистов по данным технологиям в соответствующем регионе;
  • квалификация и опыт преподавателей данного вуза.

С точки зрения авторов данного учебного пособия, операционные системы семейства Windows Server 2000/2003 являются универсальной платформой для изучения самых разных аспектов сетевого администрирования.

Приведем основные аргументы, повлиявшие на выбор авторов.

  1. В любом учебном заведении имеются компьютерные классы с компьютерами, отвечающими требованиям для установки систем семейства Windows Server 2000/2003.
  2. Данная система доступна учебным заведениям по различным льготным программам лицензирования — от Academic Open License до MSDN Academic Alliance и Microsoft IT Academy (кроме того, для кратковременных курсов можно использовать бесплатные 120- или 180-дневные версии системы).
  3. Операционные системы Windows 2000/2003 являются основой многих корпоративных информационных систем, и имеется устойчивый спрос на специалистов по администрированию сетей на базе данных операционных систем.
  4. Система Windows Server является универсальной платформой, на которой реализованы практически все сетевые службы, перечисленные в "Задачи и цели сетевого администрирования, понятие о сетевых протоколах и службах" — служба каталогов Active Directory, службы сетевой инфраструктуры (DNS, DHCP, WINS, маршрутизация и удаленный доступ), службы файлов и печати, службы веб-публикаций и т.д. Таким образом, при небольших затратах можно построить учебную платформу, обеспечивающую изучение всех основных сетевых служб.
  5. Для подготовки вузовских преподавателей корпорация Microsoft реализует различные партнерские программы, в которых преподаватели учебных заведений могут по льготным ценам пройти обучение администрированию сетей на базе Windows Server.

Таким образом, курс "Сетевое администрирование ", использующий в качестве базовой сетевой платформы системы семейства Windows Server , даст полезные практические знания и навыки для изучения различных сетевых служб и их администрирования.

Данное учебное пособие в качестве базового инструмента для изучения теоретической части и выполнения практических заданий рассматривает операционную систему Windows Server 2003 (русскую версию). Все теоретические разделы и задания лабораторных работ составлены на материале Windows Server 2003. Если в вашем учебном заведении базовой системой является Windows Server 2000, то без значительных модификаций материал данного учебного пособия может быть использован и на этой платформе. В дальнейшем в тексте учебника будет преимущественно использоваться универсальный термин Windows Server . Если какой-либо момент будет относиться только к конкретной версии системы, то это будет оговариваться специально.

2.2 Обзор редакций и функциональных возможностей системы Windows Server 2000/2003

Установка, настройка и использование системы Windows Server зависит от тех задач, которые должна выполнять конкретная инсталляция . Типовые задачи системы корпорация Microsoft объединила в виде т.н. "ролей" сервера. Все роли можно увидеть при запуске мастеров "Мастер настройки сервера" или "Управление данным сервером". Перечислим эти роли:

Microsoft Windows Server 2003 — самая мощная ОС для ПК. В ней реализованы совершенно новые средства управления системой и администрирования, впервые появившиеся в Windows 2000 . Вот некоторые из них:

  • Active Directory — расширяемая и масштабируемая служба каталогов, в которой используется пространство имен, основанное на стандартной Интернет-службе именования доменов (Domain Name System, DNS);
  • IntelliMirror — средства конфигурирования, поддерживающие зеркальное отображение пользовательских данных и параметров среды, а также центральное администрирование установки и обслуживания программного обеспечения;
  • Terminal Services — службы терминалов, обеспечивающие удаленный вход в систему и управление другими системами Windows Server 2003;
  • Windows Script Host — сервер сценариев Windows для автоматизации таких распространенных задач администрирования, как создание учетных записей пользователей и отчетов по журналам событий.

Хотя у Windows Server 2003 масса других возможностей, именно эти четыре наиболее важны для выполнения задач администрирования. В максимальной степени это относится к Active Directory (речь о которой пойдет подробно в следующих главах учебного пособия), поэтому для успешной работы системному администратору Windows Server 2003 необходимо четко понимать структуру и процедуры этой службы.

Со способами решения административных задач теснейшим образом связана и архитектура системы безопасности Windows Server 2003. Active Directory и административные шаблоны позволяют применять параметры безопасности ко всем рабочим станциям и серверам компании. Иными словами, вы настраиваете защиту данных не каждого конкретного компьютера, а всего предприятия в целом.

Роли сервера по-разному реализуются в различных редакциях системы. Перечислим редакции ОС Windows Server 2003 и рассмотрим их краткие характеристики.

Windows Server 2003 Standard Edition. Надежная сетевая операционная система , реализующая базовый набор сетевых служб, разработана для предоставления служб и ресурсов другим системам в сети, является идеальным выбором для предприятий малого бизнеса и отдельных подразделений крупных организаций.

Windows Server 2003 Enterprise Edition. Расширяет возможности Windows Server 2003 Standard Edition , обеспечивая поддержку служб кластеров. В ней также поддерживаются 64-разрядные процессоры Intel Itanium, оперативная память с возможностью "горячей" замены и неоднородный доступ к памяти (nonuniform memory access, NUMA ). Эта версия поддерживает до 32 Гбайт оперативной памяти на процессорах х86, до 512 Гбайт оперативной памяти на процессорах Itanium и до 8 центральных процессоров. Разработана для удовлетворения общих ИТ-требований предприятий любого размера, предназначена для приложений, веб-служб и поддержки сетевой инфраструктуры и обеспечивает высокую надежность , производительность и превосходные экономические показатели.

Windows Server 2003 Datacenter Edition. Самый производительный Windows - сервер . Эта версия поддерживает более сложную кластеризацию и способна работать с большими объемами оперативной памяти — до 64 Гбайт на процессорах х86 и до 512 Гбайт на процессорах Itanium. Минимальное количество процессоров для работы Datacenter Edition — 8, максимальное — 32. Разработана для ответственных бизнес-приложений, требующих масштабируемости и доступности высокого уровня.

Windows Server 2003 Web Edition. Данная редакция предназначена для использования в качестве веб-сервера (для запуска служб Web при развертывании Web -узлов и Web -приложений). Для решения этих задач в данную версию включены Microsoft . NET Framework, Microsoft Internet Information Services ( IIS ), ASP . NET и функции для равномерного распределения нагрузки на сеть . Многие другие функции, в частности Active Directory , в ней отсутствуют. Версия Windows Server 2003 Web Edition , поддерживает до 2 Гбайт оперативной памяти и до двух центральных процессоров.

Все версии поддерживают одни и те же базовые функции и средства администрирования. Т. е. методики, описанные в этом учебном пособии, можно применять независимо от того, какой версией Windows Server 2003 вы пользуетесь. Помните, что в версии Web Edition нет Active Directory , поэтому сервер , работающий под управлением этой версии, нельзя сделать контроллером домена. Он, тем не менее, может быть частью домена Active Directory .

Различия данных редакций в поддержке сетевых служб и выполнении отдельных ролей наглядно представлены в табл. 2.1.

32(для серверов на базе процессора x86)

512(для серверов на базе процессора Itanium)

64(для серверов на базе процессора x86)

512(для серверов на базе процессора Itanium)

Для выполнения упражнений при изучении курса "Сетевое администрирование " наиболее подходящей редакцией является редакция Standard Edition .

Планирование приобретения и установки системы

При планировании приобретения и установки сервера (или нескольких серверов) службе ИТ любой компании или организации необходимо решить целый комплекс задач:

  1. определить набор задач, возлагаемых на каждый сервер (сервер сетевой инфраструктуры, сервер службы каталогов, сервер файлов/печати, сервер удаленного доступа, сервер электронной почты, сервер баз данных и т.д.);
  2. определить предполагаемую нагрузку на сервер, исходя из выполняемых ими ролей и количества пользователей, которые будут работать с сервером;
  3. исходя из полученной информации, определить аппаратную конфигурацию сервера (тип и количество процессоров, объем оперативной памяти, параметры дисковой подсистемы, сетевые адаптеры и пр.) и редакцию операционной системы (Standard, Enterprise, Datacenter, Web);
  4. спланировать процедуру установки и параметры системы (будет ли производиться модернизация системы с предыдущей версии или новая установка, как сконфигурировать дисковую подсистему, определить сетевые параметры и т.д.).

В табл. 2.2 приведены минимальные требования для установки системы Windows Server 2003, позаимствованные из источников [4–5].

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


Несколько дней назад в сеть просочился образ ранней версии Windows 11. Различные издательства провели тесты по производительности и пришли к неутешительному выводу: Windows 11 в среднем работает хуже, чем Windows 10. Но расстраиваться рано! Проблемы производительности могут быть связаны с «сыростью» слитого образа и нюансами совместимости с текущими программами. Так или иначе, 24 июня состоится официальная презентация нового поколения операционных систем Windows, которая, возможно, даст ответы на многие вопросы. Если сегодня у вас есть настроение для ностальгии, предлагаем вам окунуться в мир Windows: познакомиться с историей, как менялась ось и что у нее внутри.

История Windows



В начале 80 годов прошлого века компания IBM работала над персональным компьютером на базе процессора Intel 8088. С середины 70 годов компания Microsoft была основным поставщиком Basic для восьмибитных микрокомпьютеров. Когда IBM обратилась к Microsoft для лицензирования Basic для их нового компьютера IBM PC, Microsoft согласилась, а также посоветовала обратиться к компании Digital Research для лицензирования операционной системы CP/M. Но, получилось так, что глава Digital Research не нашел в своем графике времени для встречи для IBM, и IBM снова обратилась к Microsoft, теперь уже с просьбой решить вопрос операционной системы для IBM PC. Microsoft купила клон ОС CP/M у компании Seattle Computer Products и перенесла её на IBM PC. Итоговым названием получившейся ОС стало MS-DOS 1.0.


Первые продукты с названием «Windows» от Microsoft не были операционными системами. Это были графические среды для MS-DOS. На фоне успеха, в том числе и коммерческого, пользовательского интерфейса на Apple Lisa, компания решила реализовать графический интерфейс на IBM PC с MS-DOS. В отличии от относительно дешевых IBM PC, Apple Lisa стоили дорого (почти 10 тысяч долларов), и немногие покупатели могли позволить купить их. Microsoft решила занять нишу дешевых компьютеров с графическим интерфейсом. При этом низкая стоимость достигалась экономией на комплектующих и более низкая производительность, по сравнению с Lisa, избежать не получилось. Так, в 1985, 1987 и в 1990 выходят первые три версии Windows — 1.0, 2.0 и 3.0. Причем за первые шесть месяцев после релиза Windows 3.0 было продано более 1 миллиона экземпляров. Дальнейшее развитие Windows можно разделить на два направления — Windows на базе MS-DOS и Windows на базе NT.


Windows 1.01

Windows 9x

Windows на базе MS-DOS или Windows 9x не были первыми ОС от Microsoft, но они продолжали «старые традиции» и были построены на основе 16-битного кода MS-DOS. В августе 1995 года была выпущена Windows 95 — первая система семейства Windows 9x. Она уже была полноценной операционной системой с соответствующими возможностями. Однако у системы были проблемы с безопасностью (например, не было «администратора») и с изоляцией приложений. Зависание 16-битного приложения приводило к блокировке всей системы. Проблемы со стабильностью достались и Windows 98 и Windows ME, которые отличались от выпуска 95 года рядом небольших обновлений.


Windows NT

В целом, к концу 80-х годов в Microsoft появилось понимание о необходимости разработки операционной системы не на базе MS-DOS. Параллельно с разработкой софта, связанного с MS-DOS, Microsoft наняла команду инженеров из компании DEC для разработки новой 32-битной операционной системы. Главой группы стал Дэйв Катлер — один из главных разработчиков ОС VMS. Новая система была названа NT — от сокращения New Technology. Основной упор при разработке NT делался на безопасность и надежность системы, а также на совместимость с Windows на MS-DOS. Так получилось, что опыт при разработке VMS повлиял на NT и сходство между ними стало причиной спора между DEC и Microsoft. По итогу спор был решен во внесудебном порядке.


Дэйв Катлер

Первая система Windows называлась Windows NT 3.1 и была выпущена в 1993 году. Это была первая ОС от Microsoft. Индекс 3.1 был выбран для соответствия Windows 3.1 на MS-DOS. Эта версия не имела особого успеха. Для NT требовалось больше памяти, 32-разрядных приложений на рынке было мало, возникали проблемы с совместимостью драйвером. Достичь поставленных целей смогли в NT 3.5. А первым серьезным обновлением для NT стала версия 4.0 в 96 году. Теперь эта система была мощна, надежна и безопасна, а также обеспечивала тот же интерфейс, что и Windows 95 (которая к тому моменту была чрезвычайно популярной).


Windows NT 3.1

В 2000 году вышла новая версия Windows — Windows 2000. Она развивала идеи, заложенные в системы NT. Был добавлена технология Plug-and-Play, управление электропитанием и улучшен интерфейс пользователя.


Windows 2000

Успех Windows 2000 задал вектор развития для следующего поколения — Windows XP. В «хрюшке» Microsoft улучшила совместимость, интерфейс стал более дружелюбным. Стратегия Microsoft завоевывать аудиторию уже знакомыми системами дала плоды — за несколько лет Windows XP была установлена на сотнях миллионах ПК. Эпоха MS-DOS подошла к концу.


Следующий проект Microsoft пал жертвой собственных амбиций. Через пять лет после Windows XP, в 2006 году на свет вышла Windows Vista. В ней был переделан графический интерфейс, переработаны и добавлены функциональные возможности в плане безопасности. Была улучшена производительность, надежность.

Первоначальные планы Microsoft по поводу Vista были настолько обширны, что через несколько лет после начала разработки проект пришлось сильно ограничить. Vista включала в себе 70 миллионов строк кода, часть которого составлял «причесанный» код XP. Неудача Vista отчасти с тем, что она вышла не в то время. На 2006 год пришелся бум недорогих компьютеров, которые не могли обеспечить достаточную для Vista производительность.


Windows Vista

Проблемы Vista были учтены при разработке Windows 7. Microsoft уделила большее внимание тестированию и производительности новой системы. Windows 7 быстро вытеснила Vista, а затем и XP, став самой популярной версией Windows до появления Windows 10 (сейчас Windows 7 на втором месте по популярности).


Бум смартфонов в начале 2010-х подтолкнул Microsoft к созданию операционной системы, которую можно было бы развернуть на разных устройствах: на телефонах, планшетах, приставках и т. д. В результате этой работы мир узрел Windows 8. «Восьмерка» построена на модульном подходе MinWin для получения небольшого ядра ОС, которое можно было бы расширить на линейку других типов устройств. Но аудитория встретила холодно такой подход. Многие люди критиковали «смартфоноподобный» интерфейс на ПК, отсутствие кнопки пуск. Для решения многих проблем Microsoft выпустила обновление под названием Windows 8.1, которая, помимо исправления имеющихся ошибок, добавила новые функции.


И вот, к 2015 году Microsoft выпускает Windows 10. При разработке Microsoft продолжала развитие идеи единой системы для разных устройств. В «десятке» появилась голосовая помощница Кортана, вернули меню «Пуск», улучшена системная безопасность.


Технические аспекты

Чтобы осветить все технические аспекты и тонкости операционной системы Windows понадобится не менее 1000 страниц. Для особо любопытных советуем 7-е издание «Внутреннего устройства Windows« Марка Руссиновича, специалиста по внутреннему устройству Windows. Также можно почитать «Современные операционные системы« Эндрю Таненбаума и «Operating System Concepts«: в обеих книгах есть главы, посвященные Windows. Здесь же ограничимся рассмотрением инструментов взаимодействия приложений пользователя с операционной системой (Windows API) и архитектуры «оси».

Архитектура

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

Рассмотрим ключевые системные компоненты, формирующие архитектуру системы. На рисунке ниже представлена упрощенная схема, на которой опущены некоторые элементы, например, сетевые компоненты и различные уровни драйверов. Первое, на что стоит обратить внимание — это линия, разделяющая части пользовательского режима и режима ядра. Как упоминалось выше, потоки пользовательского режима выполняются в закрытом адресном пространстве процессов. На время выполнения в режиме ядра они получают доступ к системному пространству. Таким образом, системные процессы, пользовательские процессы, процессы служб и подсистемы среды обладают собственным закрытыми адресными пространствами.


Упрощенная схема архитектуры Windows

Вторая линия разделяет компоненты режима ядра и гипервизор (Hyper-V). Гипервизор перехватывает многие привилегированные операции, выполняемые ядром, и эмулирует их таким образом, чтобы позволить на одной и той же машине одновременно работать нескольким операционными системам. Гипервизор работает на том же уровне привилегий процессора (0), что и ядро. Но из-за использования специализированных команд процессора (VT-x у процессоров Intel, SVM у АMD) он может изолироваться от ядра с сохранением контроля над ним и приложениями. Поэтому некоторые иногда применяют термин «кольцо -1».

Четыре базовых типа процессов пользовательского режима:

  • Пользовательские процессы. Эти процессы относятся к одному из следующих типов: 32- или 64-разрядные приложения Windows (приложения Windows Apps, работающие на базе среды Windows Runtime в Windows 8 и выше, включаются в эту категорию), 16-разрядные приложения Windows 3.1, 16-разрядные приложения MS-DOS, 32- и 64-разрядные приложения POSIX. Заметим, что 16-разрядные приложения могут выполняться только в 32-разрядных версиях Windows, а приложения POSIX в Windows 8 уже не поддерживаются.
  • Процессы служб. В эту категорию входят процессы, являющиеся хостами для служб Windows (например, службы планировщика задач и диспетчер печати). Обычно к службам предъявляется требование независимости выполнения от входа пользователя. Многие серверные приложения Windows (например, Microsoft SQL Server и Microsoft Exchange Server) также включают компоненты, выполняемые как службы.
  • Системные процессы. Фиксированные процессы, такие как процесс входа или диспетчер сеансов, не являются службами Windows. Другими словами, они не запускаются диспетчером служб.
  • Серверные процессы подсистем среды. Такие процессы реализуют часть поддержки среды ОС, предоставляемой пользователю и программисту. Изначально в Windows NT было три подсистемы среды: Windows, POSIX и OS/2. Подсистема OS/2 включалась только до Windows 2000, подсистема POSIX в последний раз была включена в Windows XP.Ultimate- и Enterprise-выпуски клиента Windows 7. Все серверные версии Windows 2008 R2 включают поддержку расширенной подсистемы POSIX, называемой SUA (Subsystem for UNIX-based Applications). Сейчас подсистема SUA не поддерживается и уже не включается как необязательное часть в версии Windows (Windows 10 версии 1607 включает подсистему Windows для Linux — WSL, Windows Subsystem for Linux).

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

  • Исполнительная система. Она содержит базовые сервисные функции ОС: управление памятью, управление процессами и потоками, безопасность, ввод/вывод, сетевая поддержка и межпроцессные коммуникации.
  • Ядро Windows. Низкоуровневые функции ОС: планирование потоков, диспетчеризация прерываний и исключений и многопроцессорная синхронизация. Также ядро предоставляет набор функций и базовых объектов, которые используются исполнительной системой для реализации высокоуровневых конструкций.
  • Драйверы устройств. Сюда входят как драйверы физических устройств, преобразующие вызовы пользовательских функций ввода/вывода в конкретные запросы ввода/вывода к устройству, так и драйверы устройств, не относящихся к физическому оборудованию, например драйверы файловой системы или сетевые драйверы.
  • Слой абстрагирования оборудования (HAL). Прослойка кода, изолирующее ядро, драйверы устройств и прочий исполняемый код Windows от платформенно-зависимых различий в работе оборудования, например различий между системными платами.
  • Оконная и графическая система. Реализация функций графического интерфейса (GUI), также известных как функции GDI: работа с окнами, элементы пользовательского интерфейса и графический вывод.
  • Уровень гипервизора. Включает всего-навсего один компонент: сам гипервизор. В этой среде нет ни драйверов, ни других модулей. При этом сам гипервизор состоит из нескольких внутренних уровней и служб: собственный диспетчер памяти, планировщик виртуальных процессов, управление прерываниями и таймером, функции синхронизации, разделы (экземпляры виртуальных машин) и внутрипроцессные коммуникации (IPC, Inter-Process Communication) и многие другие.
Имя файла Компоненты
Ntoskrnl.exe Исполнительная система и ядро
Hal.dll HAL
Win32k.sys Часть подсистемы Windows режима ядра (GUI)
Hvix64.exe (Intel), Hvax64.exe (AMD) Гипервизор
.sys в \SystemRoot\System32\Drivers Основные файлы драйверов: DirectX, Volume Manager, TCP/IP и поддержка ACPI
Ntdll.dll Внутренние вспомогательные функции и заглушки диспетчеризации системных сервисных функций
Kernel32.dll, Advapi32.dll, User32.dll, Gdi32.dll Dll основных подсистем Windows

Windows API

Windows API (Application Programming Interface) — это программный интерфейс пользовательского режима для Windows. До появления 64-разрядной версии операционной системы программный интерфейс 32-разрядных версий Windows назывался Win32 API в отличие от исходного 16-разрядного Windows API (программный интерфейс для исходных 16-разрядных версий Windows). На данный момент термин Windows API или Win32 API относят как к 32-разрядным, так и к 64-разрядным версиям.

В «доисторические времена» Windows API состоял только из функций в стиле C. Выбор языка C был обусловлен тем, что написанный на нем код также мог использоваться из других языков. Он являлся достаточно низкоуровневым для предоставления сервиса ОС. Но огромное количество функций в сочетании с недостаточной последовательностью выбора имен и отсутствием логических группировок (вроде пространств имен C++) привели к тому, что в некоторых новых API используется другой механизм — модель COM.

WinRT

В Windows 8 появился новый API и исполнительная среда поддержки Windows Runtime (WinRT). WinRT состоит из платформенных сервисов, предназначенных для разработчиков приложений Windows Apps (приложения Windows Apps подходят для устройств, начиная от миниатюрных IoT-устройств до телефонов, планшетов, десктопных систем, ноутбуков и даже Xbox One и Microsoft HoloLens).

Читайте также: