7
Принципы организации
всего семейства ОС Windows
(Win
95, 98 и т.д.).
Особенности:
многозадачность;
графический интерфейс; «дружественная»
среда для работы пользователя
Многозадачность
– это
возможность одновременно работать
нескольким пользователям или одному с
несколькими задачами, как будто
пользователь работает только с одной
выделенной программой.
Графический
интерфейс
позволяет работать с набором графических
объектов, каждый из которых соответствует
определенному программному элементу
данным или действием. Это обеспечивает
простоту, надежность, высокую эффективность,
легкость ориентирования.
«Дружественная»
среда (интерфейс) ОС
защищает информацию от несанкционированного
использования и создает комфортность
работы пользователя с помощью системы
рабочих окон, ДО, специальных панелей
инструментов, контекстных подсказок и
т.д.
Объекты ОС
Windows.
В Windows
используются графические элементы–пиктограммы,
картинки, иконки для обозначения
программ, файлов, рабочих инструментов,
каталогов и т.д. Основной рабочей средой
являются окна ОС.
Окно –
прямоугольная область, в которой
размещены графическая информация и
выполняется действие над объектами
(окна программ и окна документов).
Окна программ
(приложений) включают в себя собственное
меню, а также настраиваемые пользователем
панели инструментов. В состав инструментов
выделяют часто используемые команды
меню, обозначенные соответствующими
условными знаками. Таким образом,
большинство команд может реализоваться
двумя способами.
Окна документов
открываются в пределах окна программ,
не содержащих меню и панели инструментов.
Приложениями
Windows
называют прикладные программы для
работы в данной среде ОС. Они имеют
принципы работы самой ОС.
Основными объектами
являются папки и ярлыки. Папка
– логическая
емкость, в которой можно сгруппировать
любые элементы: документы, файлы, ярлыки
и т.д. Ярлык
– возможность использовать ссылки на
объект без создания копии этого объекта.
Основной принцип
организации (метафора
рабочего стола). Подразумевает работу
с документами по аналогии с работой
инженера за рабочим столом. Необходимые
объекты могут выкладываться,
активизироваться, закрываться,
откладываться в сторону и т.д.
На рабочий стол
можно вызвать необходимые средства и
выполнять заданные действия. Все это
осуществляется с помощью графических
средств и наглядно представляется на
экране компьютера.
Основные
программные технологии: объектно-ориентированное
программирование – подразумевает
параллельное описание структуры объекта
и функции над этим объектом (использующий
эту структуру). Это позволяет для сложных
задач и объектов создавать эффективные
информационные модели и разрабатывать
надежное программное обеспечение.
-
документно-ориентированное
программирование
– реализует гибкие возможности работы
со сложными документами. Одна из основных
технологий – технология внедрения и
связи составных частей сложных документов
(OLE).
Д |
П1 |
|
П2 |
Эта технология
позволяет реализовать 2 способа создания
2 сложных документа. В I
способе дополнительные части
разрабатываются в … и вставляются в
основной документ.
Д
|
Во II
способе физического объединения не
происходит, а устанавливаются ссылки
между основным документом и дополнительными
частями.
Д |
ссылка 1 |
П1 |
ссылка 2 |
П2 |
При необходимости можно
редактировать дополнительные части
теми приложениями, в которых они
создавались.
-
интуитивно-понятные
графические представления
объектов функций
Используется
технологическое подключение аппаратных
средств в рамках DOS
Windows,
за счет чего обеспечена простота и
надежность конфигурирования ПК.
Реализуется технология подключения
Plug
and
Play–включай
и работай, т.е. любое дополнительное
устройство можно сразу подключить к
компьютеру. Новое устройство будет
опознано и сконфигурировано в рамках
взаимодействия с основными устройствами.
Такая возможность появляется за счет
выработки соглашений между ведущими
компьютерными фирмами.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
Операционная система Windows является одной из самых популярных в мире. Она разработана компанией Microsoft и используется на миллионах компьютеров. Отличительной чертой Windows является ее простота в использовании и доступность для различных пользователей.
Основными принципами работы операционной системы Windows являются графический интерфейс пользователя (GUI) и многозадачность. GUI позволяет работать с компьютером с помощью мыши, а не через командную строку, что делает использование Windows более удобным и интуитивным.
Основная функциональность Windows включает в себя возможность запуска и управления приложениями, работу с файлами и папками, а также поддержку различных устройств. Операционная система Windows также обладает богатым набором инструментов и программ, которые позволяют расширить ее функциональность и настроить под свои нужды.
Windows имеет широкий спектр приложений, включая браузеры, офисные пакеты, мультимедийные проигрыватели и многое другое. Благодаря этому, пользователи могут выполнять различные задачи, такие как сёрфинг в Интернете, создание документов, просмотр фильмов и прослушивание музыки, все на одной платформе.
В целом, операционная система Windows предоставляет пользователю широкие возможности для работы, управления и настройки компьютера. Благодаря ее пользовательскому интерфейсу, Windows проста в использовании даже для новичков, что делает ее популярной во всем мире.
Содержание
- Понимание работы и функциональности операционной системы Windows
- Основы работы операционной системы Windows
- Функции и возможности операционной системы Windows
Понимание работы и функциональности операционной системы Windows
Самым важным элементом операционной системы Windows является ее ядро, которое отвечает за управление аппаратными ресурсами компьютера и обеспечивает выполнение программ. Кроме того, Windows имеет понятный графический интерфейс, что делает ее доступной для пользователя без специальных навыков.
Операционная система Windows предлагает множество функций для удобной работы:
Мультизадачность | Windows позволяет запускать и работать с несколькими программами одновременно, что обеспечивает эффективное использование ресурсов компьютера и повышает производительность. |
Поддержка различных форматов файлов | Windows поддерживает большое количество различных форматов файлов, что позволяет пользователям работать с различными типами данных, включая документы, изображения, аудио и видео файлы. |
Подключение к сети | Операционная система Windows предлагает возможность подключения к различным сетям, как локальным, так и глобальным, что позволяет обмениваться данными и ресурсами с другими пользователями и компьютерами. |
Защита данных | Windows обеспечивает различные механизмы для защиты данных пользователя, включая возможность установки пароля на учетную запись, шифрование файлов и папок и антивирусную защиту. |
Управление файлами и папками | Windows предлагает удобные инструменты для управления файлами и папками, включая возможность копирования, перемещения и удаления файлов, а также создание новых папок и организацию файловой системы. |
Благодаря своей функциональности и удобству использования операционная система Windows стала стандартом для множества пользователей, предоставляющих им возможность выполнять широкий спектр задач и улучшать свою продуктивность в работе.
Основы работы операционной системы Windows
Первоначально операционная система Windows была создана для персональных компьютеров, а с течением времени она была адаптирована для работы на различных устройствах, включая планшеты, ноутбуки и мобильные телефоны.
Главная функция операционной системы Windows — обеспечение управления аппаратными и программными ресурсами компьютера. Она предоставляет пользователю удобный и интуитивно понятный интерфейс для взаимодействия с компьютером.
Основные принципы работы операционной системы Windows включают:
- Многозадачность: Windows позволяет запускать и одновременно работать с несколькими программами, что увеличивает производительность и эффективность работы.
- Графический интерфейс пользователя: Визуальные элементы и интуитивно понятные иконки позволяют пользователям взаимодействовать с операционной системой и выполнять различные задачи.
- Файловая система: Операционная система Windows использует файловую систему NTFS, которая обеспечивает удобное хранение, организацию и доступ к файлам и папкам.
- Поддержка различных устройств: Windows поддерживает работу с различными устройствами, такими как принтеры, сканеры, веб-камеры и другие периферийные устройства.
- Обновления: Microsoft регулярно выпускает обновления операционной системы Windows, которые включают исправления ошибок, улучшения безопасности и новые функции.
Операционная система Windows имеет множество других возможностей и функций, которые позволяют пользователям выполнять различные задачи на своих компьютерах. Это делает ее одной из наиболее удобных и широко используемых операционных систем в мире.
Функции и возможности операционной системы Windows
Операционная система Windows предоставляет множество функций и возможностей, которые делают использование компьютера более удобным и эффективным.
Графический интерфейс пользователя: Windows имеет интуитивно понятный графический интерфейс пользователя, который позволяет пользователю взаимодействовать с компьютером с помощью мыши, клавиатуры и других устройств ввода. Это делает работу с операционной системой более доступной и удобной для всех категорий пользователей.
Поддержка широкого спектра программ: Windows поддерживает большое количество приложений и программ, которые могут быть установлены и запущены на компьютере. Пользователи могут выбирать из огромного количества программ для работы, развлечений, обучения и других задач.
Многозадачность: Операционная система Windows позволяет запускать несколько программ одновременно. Это позволяет пользователю выполнять несколько задач одновременно, повышая производительность и эффективность работы. Пользователь может легко переключаться между открытыми программами и окнами.
Сетевые возможности: Windows обеспечивает возможность подключения компьютера к сети интернет, а также создание и управление локальными сетями. Пользователи могут обмениваться файлами, печатать документы на сетевом принтере и использовать другие сетевые ресурсы.
Безопасность: Windows предоставляет различные механизмы безопасности для защиты компьютера и данных пользователя. В операционной системе присутствуют антивирусные программы, фаерволы и другие инструменты, которые помогают предотвратить вредоносные действия и несанкционированный доступ.
Обновления и поддержка: Microsoft регулярно выпускает обновления для операционной системы Windows, которые включают исправления ошибок, улучшения производительности и новые функции. Компания также предоставляет техническую поддержку для пользователей, чтобы помочь решить возникшие проблемы и вопросы.
Windows является одной из самых популярных операционных систем в мире благодаря своей функциональности и удобству использования. Ее широкие возможности сделали ее незаменимым инструментом для миллионов пользователей по всему миру.
Когда встаёт вопрос как работает Windows, мы подразумеваем тот факт, что речь идёт о ОС семейства Microsoft различных поколений, в принципе работы которых, конечно, немало общего. Не будет ошибкой, если мы вычленим основные четыре функции любой современной операционной системы, и посмотрим, как Windows с ними справляется. В этой статье приводится формальное описание работы операционной системы семейств Windows, приводится список основных компонентов системы. Я покажу, как Windows управляет программами и работает с оборудованием и расскажу о понятиях процесс, поток и др. Статья не для профессионалов (разве можно описать как работает Windows в ЕДИНСТВЕННОЙ статье?) и поможет начинающему получить общее представление о принципе работы Windows.
ВНИМАНИЕ! СТАТЬЯ НЕ ЗАКОНЧЕНА. МАТЕРИАЛЫ ДОБАВЛЯЮТСЯ ПО МЕРЕ ФОРМИРОВАНИЯ ОКОНЧАТЕЛЬНОГО ИНТЕРФЕЙСА БЛОГА.СПАСИБО ЗА ПОНИМАНИЕ.
Чем занимается операционная система?
Любой работающий компьютер есть связка четырёх типов программного обеспечения: операционная система, программы и приложения, драйверы и BIOS Вот основные функции операционной системы, которые определяют её место среди прочих программных оболочек.
- управление оборудованием (включает в себя приём микрокода от BIOS чипа материнской платы, управление оперативной памятью, диагностику неисправностей и сочленение установленного оборудования и программ к нему)
- управление программами (включает в себя установку и удаление программ, запуск программ и участие работе «железных» компонентов от имени программ)
- управление файлами (всё, что можно создавать, перемещать и удалять на твердотельных накопителях)
- создание пользовательского интерфейса (графического или командного/текстового) для обеспечения или контроля всех или многих указанных выше функций
Компоненты Windows, или из чего Windows состоит
Как работает Windows блочно можно отобразить так:
Из схемы видно, что основными компонентами любой операционной системы являются три блока:
- шелл (программная оболочка\скорлупа)
- ядро системы
- данные конфигурации
- как Windows управляет программами
Как работает Windows: программная оболочка = Shell
Это часть операционной системы, которая завязана и с пользователем и с приложениями. Именно шелл позволяет нам запускать флешки, устанавливать программы, запускать word-вый документ и печатать в нём, сохраняя в любое дозволенное системой место, которое заметно проводнику. Shell — это и File Explorer (проводник Windows), и контрольная панель Пуск, и окна Свойства системы и Мой компьютер. Человек или пользователь знает шелл как различные инструменты пользовательского интерфейса, такие как диалоговые окна, ярлыки и иконки, контекстные меню дополнительных команд.
А для программ шелл это команды и процедуры, которые эти программы могут вызывать: печать информацию через принтер, читать данные из баз, отображать что-то на экране.
Сам шелл состоит из нескольких подсистем, которые управляются в пользовательском режиме. Такой режим означает, что эти подсистемы имеют очень ограниченный доступ к системной информации, и доступ к «железу» может осуществляться ТОЛЬКО через системные службы (службы самой Windows). Одна из таких подсистем — подсистема безопасности Win32 — обеспечивает вход в систему (регистрацию пользователя), сохранение и распространение его привилегий на файлы и папки, а также другие функции безопасности. Абсолютно все программы и приложения «здороваются с Windows» только через подсистему Win32.
Как работает Windows : Ядро
Как и в других ОС, отвечает за работу с оборудованием, которое внутри компьютера находится или во время работы к компьютеру «пристёгивается». Режим ядра полномочий имеет гораздо больше. Никакая программа, установленная в Windows, не имеет доступа к «железу» напрямую — только через шелл, который, в свою очередь, посылает все запросы к ядру. Такая система взаимодействия обеспечивает стабильную работу ОС. Это чем-то напоминает ресторан: перед тем как заказать блюдо, вам нужно позвать официанта (к шеф-повару и на саму кухню вас не пропустят).
Ядро состоит из двух компонентов:
- слой аппаратных абстракций HAL — hardware abstraction layer
— (ближайший к железу уровень) - уровень исполнительных служб (обеспечивает взаимодействие подсистем в пользовательском режиме со слоем аппаратных абстракций)
Что здесь нужно запомнить? Логика работы ясна уже из описания: исполнительные службы Windows работают с оборудованием при помощи самого HAL и драйверов для конкретного устройства. Такой принцип работы устанавливается незаметно для глаз пользователя в момент установки Windows на компьютер. В тот самый момент, когда мы видим строки состояния установки компонентов и служб/программ, и строится структура слоя HAL на основе процессора, который в материнской плате вашей машины установлен. То есть привычные процессы во время установки Windows предстают теперь в таком свете:
загрузка шелл пользовательского интерфейса
приглашение к компиляции HAL
То, что появится после установки ОС, перенести на другой компьютер один в один не получится: для нормальной работы в новой конфигурации до— или переустановка отдельных драйверов или целого их пакета неизбежна.
Как работает Windows: Данные конфигурации
Ну, а всем операционным системам нужно место, где данные о программах и оборудовании, а также настройках и предпочтении пользователя можно хранить. Нужно хранить информацию и о том, как пользователь хочет, чтобы Windows и программы выглядели, где хранить скачиваемое и создаваемое и т.д. Для всего этого (или для почти всего) Windows использует … правильно, реестр. Некая информация хранится в файлах инициализации (характерные файлы с расширением .ini и .inf).
И когда установленная программа запускается, перед появлением какого-либо окна она сначала посмотрит реестр и прочитает эти файлы, и только потом уже запуск приложения можно считать успешным.
Как Windows управляет программами?
Если программа установлена, мы подразумеваем, что её остов где-то хранится. Чаще всего это жёсткий диск или флешка. Когда пользователь запускает программу, некоторые из её файлов копируются в оперативную память. Так появляется процесс. практически в том виде, каком мы видим его в Диспетчере задач или Process Explorer. Процессом можно назвать программу, запущенную вместе с соответствующими системными службами и другими ресурсами. Ресурсы нередко включают в себя и другие программы, включая захват дополнительных ячеек оперативной памяти для временного хранения данных. Когда процесс делает запрос к системе по типу «Мне нужны ресурсы!», подразумевается, что программа обращается именно к подсистеме Win32. Так появляется поток данных. Поток — это единичная, выделенная задача (запустить или создать документ, вставить рисунок из буфера обмена, распечатать документ на принтере и т.д.). Схематично это выглядит так:
Как видите, потоков может быть несколько. Это называется многопоточность/мультипоточность: например, окна браузеров могут запускаться в нескольких вкладках или нескольких отдельных окнах. Выражаясь технически, в обоих случаях речь идёт о нескольких разных процессах браузер.exe.
Пока всё. Успехов вам.
Windows — одна из самых популярных операционных систем в мире, разработанная компанией Microsoft. Она предоставляет пользователю широкий спектр функциональности, а также обеспечивает удобство работы с компьютером.
Операционная система Windows основана на принципе графического пользовательского интерфейса (GUI), который позволяет взаимодействовать с компьютером с помощью мыши и клавиатуры. Она предоставляет пользователю множество удобных инструментов, таких как меню «Пуск», панель задач, окна приложений, которые позволяют легко управлять компьютером и открывать приложения.
Windows обладает мощными функциональными возможностями, включая поддержку различных типов файлов и форматов, возможность многозадачности, сетевого взаимодействия и многое другое. Она также обеспечивает широкий спектр приложений и программ, которые помогают пользователям работать с текстовыми документами, таблицами, изображениями и видео файлами.
Операционная система Windows также обладает широкой поддержкой аппаратных устройств, что позволяет пользователю управлять как компьютером, так и подключенными к нему устройствами, такими как принтеры, сканеры, флэш-накопители и даже мобильные устройства.
В общем, операционная система Windows предоставляет пользователю функциональность и удобство использования, позволяющие не только работать с компьютером, но и управлять всеми его функциями и возможностями.
Содержание
- Принципы работы операционной системы Windows
- Основные принципы работы операционной системы Windows
- Архитектура операционной системы Windows
- Ядро операционной системы
- Драйверы устройств
- Подсистемы
- Графическая оболочка
- Службы операционной системы
- Файловая система
- Сетевые службы
- Вывод
- Функциональность операционной системы Windows
- 1. Графический интерфейс пользователя
- 2. Многозадачность
- 3. Защита и безопасность
- 4. Сетевые возможности
- 5. Поддержка аппаратного обеспечения
- 6. Приложения и программное обеспечение
- 7. Персонализация
- 8. Управление файлами и папками
- Интерфейс операционной системы Windows
- Преимущества и недостатки операционной системы Windows
Принципы работы операционной системы Windows
Операционная система Windows является одной из самых популярных и широко используемых операционных систем на сегодняшний день. Ее принципы работы основаны на таких основных концепциях:
- Графический интерфейс пользователя: Windows обладает интуитивно понятным графическим интерфейсом пользователя, который позволяет пользователям взаимодействовать с компьютером с помощью мыши, клавиатуры и других вводных устройств.
- Многозадачность: Операционная система Windows поддерживает многозадачность, т.е. возможность исполнять одновременно несколько приложений. Пользователи могут открывать различные программы и переключаться между ними без необходимости закрывать предыдущие приложения.
- Плаг-энд-плей: Windows поддерживает принцип «плаг-энд-плей» и автоматическое обнаружение новых устройств. Это означает, что когда пользователь подключает новое устройство, такое как принтер или флэш-накопитель, операционная система автоматически распознает его и позволяет пользователю начать использовать его без необходимости установки драйверов вручную.
- Хранение и доступ к данным: Windows предоставляет пользователю возможность хранить и организовывать данные на жестком диске или других носителях данных. Это позволяет пользователям легко находить и использовать свои файлы и документы.
- Сетевые возможности: Одним из главных принципов работы Windows является поддержка сети. Операционная система Windows позволяет пользователям подключаться к интернету, обмениваться файлами и ресурсами с другими компьютерами в сети, настраивать сетевые соединения и многое другое.
Это лишь некоторые из основных принципов работы операционной системы Windows. Благодаря своей функциональности и удобству использования, Windows продолжает быть популярной операционной системой для работы и развлечений.
Основные принципы работы операционной системы Windows
Операционная система Windows разработана для облегчения работы с компьютером и предоставления пользователю удобного интерфейса. Она основана на нескольких основных принципах, которые обеспечивают ее функциональность и надежность.
- Многозадачность: Windows позволяет одновременно выполнять несколько задач, таких как работа с текстовым процессором, просмотр веб-страницы и воспроизведение музыки. Операционная система управляет ресурсами компьютера и распределяет их между запущенными приложениями.
- Графический интерфейс: Windows предоставляет удобный графический интерфейс для взаимодействия с компьютером. Пользователи могут использовать мышь и клавиатуру для выполнения операций, а также видеть результаты своих действий на экране. Графический интерфейс делает работу с компьютером более интуитивной и понятной.
- Поддержка различного оборудования: Windows поддерживает широкий спектр аппаратного обеспечения, включая процессоры разных производителей, видеокарты, принтеры, сканеры и другие периферийные устройства. Это позволяет пользователям выбирать наиболее подходящий для них оборудование и использовать его с операционной системой Windows.
- Поддержка сетевых возможностей: Windows имеет встроенные сетевые возможности, которые позволяют пользователям подключаться к интернету, обмениваться данными с другими компьютерами и использовать сетевые ресурсы. Операционная система обеспечивает удобный интерфейс для настройки сетевых соединений и управления сетевыми настройками.
- Безопасность: Windows обеспечивает защиту компьютера и данных пользователя. Операционная система содержит механизмы аутентификации, контроля доступа, шифрования данных и других методов защиты. Windows также позволяет устанавливать антивирусные программы и другое программное обеспечение для повышения безопасности системы.
Эти основные принципы работы операционной системы Windows обеспечивают ее стабильную работу, удобство использования и функциональность. Windows постоянно развивается и обновляется, чтобы предоставить пользователям новые возможности и улучшенные функции.
Архитектура операционной системы Windows
Операционная система Windows — это комплексное программное обеспечение, которое управляет ресурсами компьютера и предоставляет пользователю доступ к приложениям и данным. Архитектура Windows включает в себя несколько ключевых компонентов, каждый из которых выполняет свою роль в функционировании операционной системы.
Ядро операционной системы
Ядро операционной системы Windows отвечает за базовые функции системы, такие как управление памятью, планирование задач, управление процессами и взаимодействие с аппаратным обеспечением. Ядро операционной системы работает на более низком уровне и обеспечивает выполнение системных вызовов, которые используются приложениями для доступа к ресурсам компьютера.
Драйверы устройств
Драйверы устройств — это программное обеспечение, которое позволяет операционной системе взаимодействовать с аппаратным обеспечением компьютера, таким как принтеры, сканеры, сетевые карты и другие периферийные устройства. Каждое устройство требует своего драйвера, чтобы работать корректно в операционной системе Windows.
Подсистемы
Подсистемы операционной системы Windows представляют собой наборы программ, которые позволяют запускать различные типы приложений. Например, подсистема Win32 позволяет запускать приложения, написанные с использованием API Windows, а подсистема POSIX позволяет запускать приложения, написанные в соответствии с POSIX стандартом.
Графическая оболочка
Графическая оболочка операционной системы Windows обеспечивает пользовательский интерфейс и взаимодействие с приложениями с помощью графических элементов, таких как окна, кнопки, меню и др. Оболочка Windows также предоставляет пользователю доступ к системным настройкам и функциям с помощью системного трея и панели задач.
Службы операционной системы
Службы операционной системы Windows выполняют фоновые задачи и предоставляют доступ к системным ресурсам и функциям. Некоторые из служб, входящих в состав операционной системы Windows, включают в себя службы безопасности, службы сети, службы печати и другие.
Файловая система
Файловая система Windows — это способ организации и хранения файлов на диске. Операционная система Windows поддерживает несколько типов файловых систем, включая FAT, NTFS и exFAT. Файловая система отвечает за управление файлами и папками, а также обеспечивает доступ к данным на диске для приложений и пользователей.
Сетевые службы
Сетевые службы операционной системы Windows обеспечивают возможность работы в сети и обмена данными между компьютерами. Операционная система Windows поддерживает различные протоколы сетевого взаимодействия, такие как TCP/IP, а также предоставляет средства для настройки и управления сетевыми подключениями.
Вывод
Архитектура операционной системы Windows представляет собой сложную систему, объединяющую несколько компонентов, которые совместно обеспечивают работу системы и предоставляют всю необходимую функциональность для пользователей и приложений. Понимание архитектуры Windows позволяет разработчикам и администраторам оптимизировать работу операционной системы и улучшить ее производительность и безопасность.
Функциональность операционной системы Windows
Операционная система Windows предлагает широкий спектр функциональности, которая делает ее одной из самых популярных системных платформ в мире.
1. Графический интерфейс пользователя
Windows предоставляет удобный и интуитивный графический интерфейс пользователя (GUI), который позволяет пользователям взаимодействовать с компьютером через иконки, окна, кнопки и меню. Графический интерфейс облегчает выполнение задач пользователю и повышает удобство использования операционной системы.
2. Многозадачность
Windows поддерживает многозадачность, что означает возможность одновременного выполнения нескольких программ. Пользователи могут одновременно работать с различными приложениями, переключаясь между ними с помощью комбинаций клавиш или щелчком мыши. Это обеспечивает эффективное использование ресурсов компьютера и повышает производительность работы.
3. Защита и безопасность
Windows предлагает множество функций для обеспечения защиты и безопасности компьютерной системы. Операционная система включает встроенные механизмы защиты от вредоносного ПО, фаерволы, антивирусные и антишпионские программы. Она также поддерживает различные методы аутентификации пользователей, включая пароли, биометрические данные и устройства для чтения смарт-карт. Система Windows также предлагает обновления безопасности, чтобы оставаться защищенной от новых угроз и вирусов.
4. Сетевые возможности
Windows операционная система разработана с учетом возможностей сетевого взаимодействия. Она поддерживает широкий спектр сетевых протоколов, позволяет подключаться к удаленным сетям и использовать сетевые ресурсы. Пользователи могут также создавать и управлять домашними и рабочими сетями, обмениваться файлами и печатать через сеть.
5. Поддержка аппаратного обеспечения
Windows обеспечивает поддержку различного аппаратного обеспечения, включая процессоры разных архитектур, графические карты, звуковые карты, принтеры и периферийные устройства. Пользователи могут легко устанавливать новое оборудование и настраивать его с помощью драйверов, предоставляемых операционной системой.
6. Приложения и программное обеспечение
Windows предоставляет доступ к широкому спектру приложений и программного обеспечения. Это включает в себя офисные приложения, редакторы графики и видео, игры, браузеры, мультимедийные проигрыватели и многое другое. Разработчики могут также создавать свои собственные приложения для Windows, используя различные инструменты разработки и программные библиотеки.
7. Персонализация
Windows позволяет пользователям настроить операционную систему в соответствии с их предпочтениями. Пользователи могут менять рабочий стол, настраивать темы оформления, задними фонами, звуками системы, шрифтами и другими параметрами интерфейса. Также можно настраивать различные основные параметры, такие как подключение к сети, звук, печать и т. д.
8. Управление файлами и папками
Windows предоставляет удобные средства для управления файлами и папками на компьютере. Это включает в себя возможность создавать, копировать, перемещать, переименовывать и удалять файлы и папки. Операционная система также предлагает поиск файлов, фильтрацию, сортировку и другие функции организации файловой системы.
Версия | Год выпуска |
---|---|
Windows XP | 2001 |
Windows Vista | 2007 |
Windows 7 | 2009 |
Windows 8 | 2012 |
Windows 10 | 2015 |
Интерфейс операционной системы Windows
Windows имеет уникальный графический интерфейс пользователя (Graphical User Interface, GUI), который обеспечивает простоту использования и удобство для пользователей.
Основные компоненты интерфейса операционной системы Windows включают в себя следующее:
- Рабочий стол: основной экран, который отображается после входа в систему. Здесь можно размещать ярлыки для быстрого доступа к программам и файлам.
- Панель задач: полоса, расположенная в нижней части экрана, на которой отображаются запущенные приложения и ярлыки для доступа к основным функциям системы.
- Меню «Пуск»: основной способ доступа к программам, файлам и настройкам операционной системы Windows.
- Окна: прямоугольные области, в которых отображаются открытые приложения и файлы. Окна могут быть перемещены, свернуты и развернуты для более удобного использования.
Windows также предлагает различные элементы управления, такие как кнопки, флажки, текстовые поля и выпадающие списки, которые позволяют взаимодействовать с приложениями и настройками операционной системы.
С помощью интерфейса операционной системы Windows пользователи могут выполнять различные задачи, такие как запуск программ, открытие файлов, настройка системных параметров, а также управление окнами и приложениями.
Интерфейс операционной системы Windows постоянно эволюционирует, и с каждым новым выпуском вводятся новые функции и улучшения, чтобы обеспечить более удобное и эффективное использование операционной системы.
Преимущества и недостатки операционной системы Windows
Преимущества:
- Популярность. Операционная система Windows является одной из самых популярных и широко используемых систем в мире. Это означает, что множество программ и приложений разработаны специально для Windows, что делает ее удобной для большинства пользователей.
- Простота использования. Интерфейс операционной системы Windows прост и интуитивно понятен. Большинство пользователей уже привыкли к этой системе и знакомы с ее основными функциями, что облегчает работу с компьютером.
- Расширяемость. Windows предлагает широкий выбор программ и приложений, которые позволяют пользователям выполнять различные задачи, от работы с офисными документами до игр и мультимедиа.
- Совместимость с оборудованием. Windows обладает высокой совместимостью с различным оборудованием, что делает ее удобной и гибкой для использования на разных устройствах.
Недостатки:
- Высокая стоимость. Лицензия на операционную систему Windows является платной, поэтому ее использование требует дополнительных финансовых затрат.
- Уязвимость. Windows является самой популярной операционной системой, что делает ее целью для хакеров и злоумышленников. В связи с этим, пользователи Windows подвержены большему риску взлома и атак.
- Зависимость от разработчика. Windows разрабатывается и поддерживается компанией Microsoft, поэтому пользователи зависят от решений и обновлений, предоставляемых компанией.
- Ограниченная настройка. Windows предлагает ограниченные возможности настройки по сравнению с другими операционными системами. Это может ограничивать пользователя в реализации своих индивидуальных потребностей и предпочтений.
Время на прочтение
16 мин
Количество просмотров 104K
Меня зовут Андрей Артемьев, я работаю в Microsoft над ядром ОС Windows 10, ранее я работал над Windows 10x (WCOS), XBox, Windows Phone и Microsoft Edge. Я хочу популярно в образовательных целях рассказать о том как работает компьютер на примере клавиатурного ввода и Windows 10. Данный цикл статей рассчитан в первую очередь на студентов технических специальностей. Мы рассмотрим какой путь проходит информация о нажатой клавише от клавиатуры до отображения в Notepad.exe. В виду обширности и междисциплинарности темы в статьях могут быть неточности, о которых сообщайте в комментариях. Какая-то информация может быть устаревшей в виду скорости с которой развивается Windows.
Насколько глубоко мы погрузимся в тему?
Давайте для начала в общих чертах поговорим об уровнях на которых можно рассматривать компьютер. Каждый уровень основывается на предыдущем. Начнём с самого верха.
Уровень прикладных программ. Здесь находятся все пользовательские приложения, это браузер, Microsoft Office, блокнот, а также веб-сервер IIS, SQL Server, различное middleware вроде Java и .Net и все скриптовые языки, будь то Ruby, PHP или Bat-файлы.
Уровень операционной системы. ОС можно рассматривать как:
- Менеджер ресурсов — память, жёсткие диски, принтеры, экран, клавиатура ограниченные ресурсы которые совместно используются запущенными на компьютере программами.
- Виртуальная машина — файл это наглядный пример виртуального объекта. Он представляет абстракцию данных на диске, API для работы с ним и так же добавляет концепцию прав доступа. Вместо файла могла быть концепция контейнера данных и совершенно другого API. Таких виртуальных объектов в ОС много.
- Платформа — ОС предоставляет программные модели и примитивы для построения программ. К примеру Windows Drivers Framework позволяет быстро разрабатывать драйвера, окна в Windows используются для построения сложных пользовательских интерфейсов. Dll — предоставляет модель расширения функционала программы через плагины, а так же механизм для реализации читалки экрана через ловушки клавиатуры (см. LowLevelKeyboard hook).
Операционная система разбита на слои и компоненты. В общем виде архитектура Windows 10 выглядит так. О ней мы поговорим подробно чуть позже.
Уровень архитектуры компьютера. Он представлен материнской платой, которая имеет определённый форм-фактор, встроенные функции закодированные в микросхемах называемых чип-сетом и порты, через которые можно расширять функционал компьютера подключив графическую карту, сетевую карту, дополнительную оперативную память (RAM), жёсткие диски, клавиатуру и пр. Порты влияют на скорость работы и возможности компьютера, что и будет определять его назначение будь то сервер для обработки тысяч запросов в секунду, планшет для пользования Интернетом или игровой ПК с несколькими видеокартами. ОС абстрагирует особенности материнской платы.
Микросхемы выглядят как на картинке ниже и представляют собой мини-компьютер выполняющий простые программы для низкоуровневых задач, к примеру прочитать данные от клавиатуры и передать их дальше чтобы они достигли в конечном счёте процессора. Как правило реализованы в виде аналоговой непрограммируемой микросхемы или микроконтроллера, программируемого на языке С.
Материнскую плату можно рассматривать как колонию микросхем которые общаются между собой через шины и через них циркулируют данные от подключенных устройств к процессору и обратно. Чип-сет — это своего рода нервная система компьютера. Все чипы на материнской плате были изначально созданы чтобы работать друг с другом. Некоторые из них могут иметь особые функции, к примеру таймер или хранение настроек BIOS. Пожалуй самый важный из них тот что имеет встроенную программу (прошивку, BIOS, UEFI) которая начинает выполняться как только появляется электричество. Она находит жёсткий диск с загрузчиком Windows и передаёт тому управление который в свою очередь запускает исполняемый файл ОС, который можно назвать Windows10.exe, на самом деле NtOsKrnl.exe. BIOS знает что искать благодаря соглашению между производителями железа и операционных систем.
Вокруг материнской платы можно собрать мобильный телефон, игровую приставку, серверную станцию или умное устройство. На картинке ниже распространённые форм-факторы материнских плат.
Уровень микроархитектуры представлен процессором (CPU), это сердце материнки и весь чип-сет нужен для обслуживания CPU. Процессор это компьютер в компьютере, более мощный и продвинутый микроконтроллер которому не нужна прошивка, потому как поток команд подаётся на лету, когда планировщик потоков поменял контекст процессора. Функционал процессора делится на подсистемы, к примеру компонент занимающийся математическими и логическими операциями, математический сопроцессор, кэш. Какие-то из них раньше были отдельным чипом на материнской плате, но сейчас их сделали частью ЦПУ, например контроллер прерывания и микросхема под названием “Северный мост” что увеличило скорость работы.
Микроархитектура это не то же самое что архитектура. Весь функционал CPU разделён на компоненты, которые работают сообща. Эти компоненты и их взаимодействие и есть микроархитектура. На блок-схеме ниже они представлены цветными прямоугольниками и квадратиками.
Архитектура процессора это по сути документ который описывает какой функциональностью он должен обладать для того чтобы соответствовать к примеру архитектуре x86, x64 или ARM применяемой на мобильных устройствах. В этом документе описано какие должны поддерживаться команды, назначения регистров и логика работы. Создатели процессоров Intel, AMD, Эльбрус могут реализовывать эту функциональность как угодно и добавлять к ней новые возможности в виде команд, регистров, флагов, прерываний и если ОС знает о них то может использовать. В терминах ООП архитектура ЦПУ — это интерфейс, а микроархитектура — его реализация.
Логические схемы. Цветные прямоугольники с блок-схемы CPU состоят из логических схем, которые производят свои операции на последовательностях нулей и единиц. Процессор видит все данные и команды в виде битов (0 и 1), по формуле любое десятичное число можно представить в виде последовательности 0 и 1, а вот что значит конкретное число зависит от контекста. Это может быть код, цифра, буква. Арифметическое и логическое устройство (ALU) умеет производить сложение двух чисел через побитовые операции. Побитовые алгоритмы сложения, вычитания, умножения и деления давно известны, разработчикам логической схемы их только надо эффективно реализовать.
Цифровые схемы работают с данными на уровне нулей и единиц, а аналоговые полагаются на эксплуатирование законов физики. Они выполняют простейшие манипуляции над битами, такие как сдвиги, AND, OR, XOR. Через эти примитивы реализуются более сложные операции. На картинке ниже представлен аналоговый оператор AND реализованный через транзисторы. На выходе схемы ненулевое напряжение будет только если оно есть на обоих входных контактах (Вх1 и Вх2), иначе ноль вольт. Точно так же работает оператор && в C#. Цифровые схемы в конечном счёте основаны на аналоговых. Физически логические элементы в логических схемах могут быть реализованы не только электронными но и механическими, гидравлическими, оптическими и другими способами.
Уровень радиоэлементов. Физически аналоговые схемы полагаются на радиоэлементы, которые собственно и эксплуатируют законы физики. Преимущественно это полупроводники, т.е. в определённых условиях они могут проводить электричество, а могут и нет. Диод проводит ток только в одном направлении, если его выпаять, развернуть на 180 и впаять обратно, то ток через него проходить не будет. Транзистор пропускает ток только если есть напряжение на управляющей ножке. Человечество научилось делать транзисторы микроскопическими и потому их можно размещать на маленькой плате миллионами. На картинках ниже полупроводниковые радиоэлементы и обычный транзистор рядом с нано транзистором под электронным микроскопом.
Уровень законов физики. И наконец самый нижний уровень — это уровень законов физики которые заключены в полупроводниковые радиоэлементы.
Мы будем много говорить про уровень ОС и чуть меньше про архитектуру компьютера, микроархитектуру, аналоговые схемы и радиоэлементы. К последней части у вас должно быть понимание как это всё работает вместе.
Основы Операционной Системы
Когда мы проходили в универе программирование на ассемблере у многих студентов был ступор от таких умных слов как “режимы ядра и пользователя”, под которыми на самом деле скрывается хорошо всем известная ролевая система аутентификации, на всех сайтах есть как минимум “Админ” имеющий доступ ко всем страницам и “Пользователь” имеющий ограниченный доступ. Точно так же роль “Ядро” имеет доступ ко всем возможностям CPU, а роль “Пользователь” может вызывать не все команды процессора и не со всеми аргументами. Поверх этой ролевой модели по принципу клиент-серверной архитектуры построена операционная система, где сервер это ядро, которое и реализовывает функционал ОС, а клиент — это пользовательские программы. В мире Web клиент и сервер разделены физически — это два разных компьютера общающихся по сети. В ОС клиент и сервер живут на одной машине и на одном железе. У сервера есть некий API который позволяет клиентам изменять его состояние, к примеру Twitter API позволяет создавать посты, логиниться и загружать ленту твитов в мобильный клиент. У Windows есть Win API, только более громоздкий в виду более широкого круга задач, на сегодняшний день у винды примерно 330 000 API плюс API для UWP apps. Если концепции Твитера более менее всем понятны — пост, пользователь, фид — то концепции ОС могут потребовать некоторого углубления в её внутренности. Поэтому API Windows могут быть трудно понятными без понимания внутреннего устройства ОС.
На самом деле под ядром понимают три разные вещи. Ядро как весь код ОС. Ядро как подсистема которая отвечает за механизмы ОС, такие как планировщик потоков, переключение контекста, обработка прерываний, свап виртуальный памяти на физическую (Kernel) и ядро подсистемы для поддержки других ОС — CSRSS.exe (Windows), PSXSS.exe (POSIX), OS2SS.exe (OS/2) или WSL (Windows SubSystem for Linux). В данном контексте понимается первый смысл — весь код ОС.
Когда на экране появляется окно, то в серверной части ОС (режим ядра) появляется структура данных которая описывает это окно — его положение на экране, размеры, текст заголовка, оконная функция через которую ОС даёт приложению среагировать на события. Поскольку подсистем в ОС много, то и структур данных описывающих один объект может быть несколько, к примеру информация о пользовательском процессе есть в компонентах:
- Executive — здесь логика работы ОС. В этом слое проверяется что могут и не могут делать процессы. Здесь хранится инфа о родительском процессе, параметры старта процесса (Process Environment Block), привязанный аккаунт пользователя, имя exe файла процесса.
- Kernel — здесь реализованы механизмы ОС, такие как планировщик потоков. Здесь хранится сколько времени процесс проводит в режиме пользователя и ядра, к каким процессорам привязаны его потоки, базовый приоритет потоков процесса.
- Windowing subsystem — инфа о GDI объектах которые используются для рисования в окне. Это такие примитивы как кисти, pen и пр.
- DirectX — всё что имеет отношение к DirectX: шейдеры, поверхности, DX-объекты, счётчики производительности GPU, настройки памяти графической памяти.
- Подсистема Windows которая представлена процессом CSRSS.exe (Client Server Runtime SubSystem). Windows ранее поддерживал ОС POSIX (процесс PSXSS.exe) и OS/2 (OS2SS.exe). В те времена возникла идея сделать и Windows такой же подсистемой, но эта было медленно и поэтому скоро часть CSRSS.exe перенесли в win32k.sys, который сейчас разбит на несколько файлов — win32k.sys, win32kbase.sys и win32kfull.sys. Здесь хранится информация о Process Group Data, Shutdown level, Session Data и пр.
Поддержка POSIX и OS/2 скорее была формальной, потому как для переноса программы с этих ОС нужно было найти исходный код и перекомпилировать его специальным образом чтобы получился exe-файл в котором все вызовы к API ОС перенаправлялись в PSXdll.dll (NETAPI.DLL и DOSCALLS.DLL для OS/2 и User32.dll для Windows приложений), которая была тонкой обёрткой над API Windows. Состояние некоторых API хранилось в процессе подсистемы PSXSS.exe (OS2SS.exe). Поскольку не все API можно сопоставить 1 к 1, то работала такая программа нестабильно. В Windows 10 была добавлена поддержка Linux и она работает совсем по-другому. Подсистема Linux хостится в режиме ядра и разница между Windows Subsystem for Linux и Linux примерно как между разными билдами. Специально для WSL был введён новый тип процессов — PICO-process.
Что такое компонент? Это логически сгруппированный функционал. Компонентом можно назвать ООП-класс, dll, папку, набор функций с общим префиксом, пространство имён, слой в архитектуре.
Более подробно о разделении на клиент-сервер
Разделение на клиент и сервер реализовано при помощи встроенной функциональности CPU, разделения памяти и программных проверок.
Производители оборудования сотрудничают с разработчиками ОС, поэтому в процессоре есть механизмы созданные с учётом потребностей создателей операционных систем. Во всех современных процессорах реализован механизм ролей пользователя, где под пользователем понимается исполняемый в данный момент код. В веб приложениях роль залогиненого пользователя хранится в какой-то переменной и помимо понятного названия Admin или User имеет Id этой роли который чаще и используется при авторизации, потому как сравнивать числа быстрее и проще чем строки. В процессоре роль текущего пользователя хранится в поле которое называется “кольцо безопасности” (Security Ring), а не “CurrentUser.Role.Id”. В большинстве процессоров это поле принимает четыре значения от 0 до 3. Windows использует 0 для роли которая называется “Режим Ядра”, потому как это самый привилегированный режим и самое большое значение для роли “Режим Пользователя”, потому как это самая ограниченная роль. Остальные роли не используются потому как различие между 0 и 1, 2 и 3 незначительное. Эти роли ограничивают страницы памяти которые могут быть адресованы, нельзя вызывать некоторые инструкции или же нельзя их вызывать с определёнными аргументами. Так же есть ограничения на использование технологии I/O Ports для обмена данными с устройствами такими как клавиатура, но она уже лет 10 не используется. Переключение в режим ядра происходит через команду syscall, которая по индексу находит в массиве указателей на APIs Windows функцию которую надо вызвать. Указатель на этот массив сохраняется в специальном регистре процессора во время загрузки ОС.
Я специально назвал регистр ЦПУ полем. Когда вы пишете программу на C#, то можете добавлять сколько угодно полей в свой класс и давать им понятные названия. У процессоров и микроконтроллеров поля называются регистрами. Когда вы проектируете железку то нужно уже на этом этапе понять сколько регистров (полей) надо, какого размера они должны быть и какой функционал на них возложить, чтобы этого хватало на все случаи жизни для всех мыслимых и немыслимых ситуаций. Представьте, что вам надо написать программу на C#-подобном языке программирования у которого в классе 16 предопределённых полей и вы не можете использовать локальные переменные. Т.е. одно и то же поле может использоваться для хранения залогиненного пользователя, отсортированного массива, временных данных или результата выполнения метода. Имена таких полей должны быть максимально общими, вместо tempData, funcResult будут странные имена EAX, AH, AL, DX и пр. Если бы вы писали на C# эмулятор процессора на архитектуре x86, то код мог бы выглядеть примерно так (DIV — divide, команда целочисленного деления):
Для иллюстрации я добавил проверку на режим ядра. Если происходит ошибка деления на ноль, то процессор уведомляет об этому ОС через прерывание (выбрасывает событие). Во время загрузки ОС предоставляет процессору одномерный массив указателей на функцию, который называется вектор прерываний, где каждому индексу соответствует какое-то событие к примеру деление на ноль. ОС знает архитектуру процессора на котором исполняется и может соответствующим образом упорядочить в массиве указатели на функции. CPU вызывает эту функцию и ОС свой код. К примеру Windows смотрит в реестре установлен ли отладчик и показывает сообщение о том что произошла ошибка и есть возможность запустить дебаггер чтобы посмотреть на место где она произошла. Прерывание называется прерыванием потому как оно вклинивается в нормальный ход выполнения программы и даёт возможность выполнится обработчику прерывания и только после его завершения процессор может вернуться к исполнению программы.
Прерывания могут генерироваться не только процессором но и внешними устройствами (клавиатура, мышь) или программным кодом. Планировщик потоков устанавливает таймер который с интервалами равными одному кванту (по умолчанию около 15мс, в Windows Server больше) генерирует прерывание чтобы по внутреннему алгоритму назначить другой поток на исполнение. Пошаговое исполнение программы в Visual Studio так же полагается на механизм прерываний — у процессора устанавливается флаг, который после каждой команды вызывает прерывание которое обрабатывает Windows Debugging Engine и уведомляет через API Visual Studio.
Разделение памятью реализовано благодаря виртуальной памяти. Ранее я говорил что ОС это менеджер ресурсов и виртуальная машина. Даже если у вас 1Гб RAM 32х битный Windows будет работать так как если бы у вас было 4Гб оперативки, т.е. реально у вас 1Гб, а виртуально 4Гб. Современные компьютеры основаны на теоретической модели машины Тьюринга или же архитектуре фон Неймана (с некоторыми изменениями). Согласно этим моделям память в компьютере это лента состоящая из ячеек размером один байт. Эти ячейки сгруппированы в страницы как правило по 4096 байт (4Кб), потому как:
- С т. зр. CPU нет разницы между кодом и данными, что приводит к трудновыявляемым ошибкам и возможностям для взлома. Если регионы памяти пометить атрибутами по которым можно сказать, что здесь находится код, а здесь данные только для чтения, а сюда можно писать, то это решит указанные проблемы. Так же можно пометить страницы доступные только в режиме ядра.
- Поддержка виртуальной памяти процессором, который умеет копировать страницу виртуальной памяти в физическую. Физическая память RAM так же представлена в виде страниц по 4Кб. Кэш процессора считывает память из RAM страницами, потому как часто программа читает расположенные рядом данные.
- Кажется что процесс владеет всей доступной ему памятью, хотя реально его запросы на выделение динамической памяти (оператор new в С++) ОС удовлетворяет только когда процесс попытается прочитать/записать её. Exe-файл полностью не загружается в память, а отображается с диска и когда нужно исполнить код или считать данные они загружаются в память c диска. Эти механизмы основаны на страницах.
- Имитация эксклюзивного пользования RAM каждым процессом. Когда планировщик потоков назначает поток на выполнение он загружает в регистры процессора информацию о мапинге виртуальных страниц процесса в физические страницы и когда код потока пытается прочитать/записать какой-то адрес процессор правильно его транслирует. Помимо процессов на эмуляцию эксклюзивности пользования RAM полагаются сессии, которые содержат код и данные специфичные для отдельного пользователя, к примеру глобальная очередь сообщений. В Windows 10 есть контекст потока, процесса и сессии.
Windows 10 использует ячейки вначале ленты для пользовательского пространства, а в конце — для самого себя (пространство режима ядра), в котором и хранятся объекты описывающие состояние системы.
64 битный адрес позволяет адресовать 16 экзабайт, это 18,446,744,073,709,551,616 ячеек памяти. Современные процессоры пока что не поддерживают так много RAM и поэтому используют только младшие 48 бит адреса, остальные 16 заполняются старшим разрядом. Поэтому Win x64 попросту не использует часть адресов, которые помечены на рисунке выше чёрным. Но это не значит, что 64х битный Windows “видит” 256 Tb оперативки. Максимум 8TB виртуальной памяти на архитектуре IA64 и 7TB на x64. Предел физической памяти поддерживаемой Windows 10 — 2TB, потому как с большим количеством Винда не тестировалась. Объём поддерживаемой RAM в Windows 10 определяется во многом редакцией ОС, чем дороже тем больше.
Почему ячейки памяти пронумерованы шестнадцатиричными (HEX) числами, а не десятичными или двоичными? Адрес ячейки это не просто порядковый номер, в нём закодировано три числа по которым эту ячейку можно отобразить на физическую память. Первые два это индексы по которым находится конкретная страница виртуальной памяти, а третье число — смещение от начала страницы. CPU и ОС здесь работают в связке — ОС предоставляет структуру данных по которой CPU находит страницу виртуальной памяти и копирует её в физическую. По HEX номеру можно сразу увидеть как выровнен в памяти адрес. Формат двоичного числа слишком громоздкий, 32 бита (или 64) трудны для восприятия. Десятичный формат — показывает слишком мало информации, тогда как HEX удобный компромисс между десятичной и двоичной системами, средами людей и машин.
Программный способ разделения на клиент-сервер (режим ядра-режим пользователя) гораздо скучнее перечисленных выше механизмов. Процессы и потоки могут быть помечены специальными аттрибутами или же мы можем хранить список указателей на потоки/процессы и проверять их в коде. Если вы хоть раз делали авторизацию в веб-приложении, то хорошо понимаете о чём я говорю.
Из чего состоит Windows?
Абстракция или же разбиение на компоненты есть во всех сферах программирования и интуитивно понятно что Windows тоже делится на какие-то компоненты. Под компонентом понимается какая-то единица функциональности — ООП класс, файл, dll, папка. Компоненты на диаграмме ниже могут быть как индивидуальными *.sys, *.dll файлами, так и просто набором API сгруппированным логически через добавление префикса к имени функции, старая часть системы написана на C, а он не поддерживает классы. Новые части пишутся нередко на C++. В укрупнённом виде Винда выглядит так:
Давайте быстренько пробежимся по её компонентам снизу вверх:
- Hyper-V Hypervisor — слой виртуализации благодаря которому в Windows можно создать виртуальную машину. Иногда говорят, что Hyper-V это минус первый уровень привилегий, однако реализован он в одном уровне привилегий и адресном пространстве что и ядро ОС, за счёт использования слоёной архитектуры ОС ничего не знает о нём.
- HAL.dll — Hardware Abtraction Layer — изначально задумывался как абстракция над железом — чипсет, материнская плата, процессор — для того чтобы можно было перенести Windows на новую платформу реализовав новый HAL.dll, который будет выбран и скопирован во время установки. По сути это драйвер к устройствам материнской платы, к примеру таймерам, контроллеру прерываний. Сейчас его роль снижена, потому как многие драйвера материнки и чип-сета реализованы в ACPI.sys.
Что такое Advanced Configuration and Power Interface? До 1996 года когда вы выключали компьютер через UI, ОС сохраняла состояние системы и потом показывала сообщение что можно отключать питание нажав кнопку на корпусе.
В 1996м году появился стандарт ACPI, который реализовывался производителями материнской платы и позволял софту управлять питанием всей машины, т.е. Самостоятельно отключать питание на компьютере либо пробуждать его ото сна. ACPI так же позволяет контролировать питание отдельных компонентов, таких как CD drive, т.к. большую часть времени он не работает.
- Device Drivers — говорит само за себя. Драйвер это код скомпилированный в файл с расширением *.sys, он может содержать как код который работает со внешним устройством, так и к примеру код антивируса который сканирует процессы и системную память. Process Explorer от SysInternals так же полагается на драйвер для получения информации о процессах.
- Kernel — Kernel Mode Execution Environment, содержит обработчики прерываний, работа с таймерами, планировщик потоков, объекты синхронизации и пр. Здесь реализованы все механизмы ОС.
- Executive — Реализовывает логику работы ОС, можно сказать что это уровень бизнес-логики ОС.
- Windowing & Graphics — Система окон и DirectX для отрисовки всего что видно на экране.
- NtDll.dll — Эта библиотека выделена большим зелёным прямоугольником потому что загружается в память только один раз и потом отображается в память всех остальных процессов. В этой dll находится загрузчик программ, который отвечает за инициализацию запущенного процесса (в т.ч. загрузку dll) и потоков в нём. Nt понимается как Native, в том же смысле что и Native American. Т.е. это API ядра ОС, которое отделено от режима пользователя. Все функции экспортируемые из этой dll имеют префикс Nt (NtDestroyMenu). Некоторые Win API реализованы в режиме пользователя и они являются частью User32.dll. Как правило пользовательские приложения не используют напрямую функции из NtDll.dll, они обращаются к Nt* функциям через ещё один уровень абстракции (level of indirection) — subsystem dll такую как User32.dll или PSXdll.dll и DOSCALLS.DLL доступных в более старых версиях Windows. NtDll.dll предназначена в первую очередь для системных процессов (Session Management Sub System.exe, WindowsInititialize.exe и пр.), которые запускаются ещё во время загрузки ОС.
- SubSystem dlls — о них я уже сказал в предыдущем пункте. Все Windows приложения обращаются к ОС через User32.dll. Какие-то API реализованы в режиме пользователя и к примеру могут обращаться к системным процессам, другие же вызывают Nt* функции из NtDll.dll, к примеру CreateFile в конечном счёте вызывает NtCreateFile).
- Environment Subsystems — CSRSS.exe, подсистема Windows. Ранее тут были ОС POSIX (процесс PSXSS.exe) и OS/2 (OS2SS.exe). Windows Subsystem for Linux реализована совершенно по-другому.
- System Processes — это процессы которые выполняют различные системные фунции, к примеру LSASS.exe (Local Security Authority SubSystem) который отвечает за аутентификацию пользователей и другие.
- Service Processes — Раньше сервисы Windows (например Plug and Play Manager) работали в своих процессах и были *.exe файлами. Со временем появился процесс SvcHost.exe который может хостить сразу несколько компонентов, реализованных в виде *.dll-файлов. Поэтому почти все системные компоненты и переехали в SvcHost’ы.
- User Processes — пользовательские процессы. Те самые которые мы используем каждый день — браузеры, игры, офисные программы и пр. Они полагаются на описанную в предыдущих пунктах инфраструктуру.
На этом первую часть закончу. В следующей посмотрим откуда начинается путь клавиши.
Часть 2