Операционная система как расширенная машина

Архитектура большинства компьютеров (система команд, организация памяти, ввод- вывод данных и структура шин) на уровне машинного языка слишком примитивна и неудобна для использования в программах, особенно это касается систем ввода-вывода.
Чтобы перевести разговор в конкретное русло, рассмотрим современные жесткие диски SATA (Serial ATA), используемые на большинстве компьютеров. Книга, выпущенная издательством Anderson в 2007 году и содержащая описание дискового интерфейса, который программисты должны были изучить для использования диска, содержала свыше 450 страниц. После этого интерфейс многократно пересматривался и стал еще сложнее, чем был в 2007 году. Понятно, что ни один зравомыслящий программист не захочет иметь дела с таким диском на аппаратном уровне. Вместо него оборудованием занимается та часть программного обеспечения, которая называется драйвером диска и предоставляет, не вдаваясь в детали, интерфейс для чтения и записи дисковых блоков. Операционные системы содержат множество драйверов для управления устройствами ввода-вывода.

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

Эта абстракция является ключом к управлению сложностью. Хорошая абстракция превращает практически неподъемную задачу в две, решить которые вполне по силам. Первая из этих задач состоит в определении и реализации абстракций, а вторая — в использовании этих абстракций для решения текущей проблемы. Одна из абстракций, понятная практически любому пользователю компьютера, — это уже упомянутый ранее файл. Он представляет собой полезный объем информации, скажем, цифровую фотографию, сохраненное сообщение электронной почты или веб-страницу. Работать с фотографиями, сообщениями электронной почты и веб-страницами намного легче, чем с особенностями SATA-дисков (или других дисковых устройств). Задача операционной системы заключается в создании хорошей абстракции, а затем в реализации абстрактных объектов, создаваемых в рамках этой абстракции, и управлении ими. В этой книге абстракциям будет уделено весьма большое внимание, поскольку они являются одним из ключей к пониманию операционных систем.

Учитывая важность этого положения, стоит изложить его несколько другими словами. При всем уважении к разработчикам Macintosh, следует заметить, что аппаратное обеспечение не отличается особым изяществом.

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

Следует отметить, что реальными «заказчиками» операционных систем являются прикладные программы (разумеется, не без помощи прикладных программистов). Именно они непосредственно работают с операционной системой и ее абстракциями. А конечные пользователи работают с абстракциями, предоставленными пользовательским интерфейсом, — это или командная строка оболочки, или графический интерфейс. Абстракции пользовательского интерфейса могут быть похожими на абстракции,

Рис. 1.2. Операционная система превращает уродливое аппаратное обеспечение

в красивые абстракции


предоставляемые операционной системой, но так бывает не всегда. Чтобы пояснить это положение, рассмотрим обычный рабочий стол Windows и командную строку. И то и другое — программы, работающие под управлением операционной системы Windows и использующие предоставленные этой системой абстракции, но они предлагают существенно отличающиеся друг от друга пользовательские интерфейсы. Точно так же пользователи Linux, работающие в Gnome или KDE, видят совершенно иной интерфейс, чем пользователи Linux, работающие в X Window System, но положенные в основу абстракции операционной системы в обоих случаях одни и те же.

В данной книге мы подробнейшим образом изучим те абстракции, которые предоставляются прикладным программам, но не станем слишком углубляться в пользовательские интерфейсы. Это весьма объемная и важная тема, но с операционными системами она связана слабо.

1.1.2.

<< | >>
Источник: Э. ТАНЕНБАУМ Х. БОС. СОВРЕМЕННЫЕ ОПЕРАЦИОННЫЕ СИСТЕМ Ы 4-е ИЗДАНИЕ. 2015

Еще по теме Операционная система как расширенная машина:

  1. Э. ТАНЕНБАУМ, А. ВУДХАЛЛ. ОПЕРАЦИОННЫЕ СИСТЕМЫ Разработка и реализация 3-е издание, 2007
  2. В.Е. Карпов К.А. Коньков. Основы операционных систем, 2005
  3. Э. ТАНЕНБАУМ Х. БОС. СОВРЕМЕННЫЕ ОПЕРАЦИОННЫЕ СИСТЕМ Ы 4-е ИЗДАНИЕ, 2015
  4. СИСТЕМА «ЧЕЛОВЕК - МАШИНА»: НАДЕЖНОСТЬ
  5. А.П. Пятибратов, Л.П. Гудыно, А.А. Кириченко. Вычислительные машины, сети и телекоммуникационные системы, 2009
  6. Как обзавестись новой машиной
  7. Самовоспитание как "расширение" сознания
  8. Раздел 16 - Уголовного Кодекса Украины Преступления в сфере использования электронно-вычислительных машин (компьютеров), систем и компьютерных сетей и сетей электросвязи
  9. Статья 361. Несанкционированное вмешательство в работу электронно-вычислительных машин (компьютеров), автоматизированных систем, компьютерных сетей или сетей электросвязи
  10. Статья 363-1. Препятствование работе электронно-вычислительных машин (компьютеров), автоматизированных систем, компьютерных сетей или сетей электросвязи путем массового распространение сообщений электросвязи
  11. Статья 362. Несанкционированные действия с информацией, обрабатывается в электронно-вычислительных машинах (компьютерах), автоматизированных системах, компьютерных сетях или сохраняется на носителях такой информации, совершенные лицом, имеет право доступа к ней
  12. Статья 361-2. Несанкционированные сбыт или распространение информации с ограниченным доступом, которая сохраняется в электронно-вычислительных машинах (компьютерах), автоматизированных системах, компьютерных сетях или на носителях такой информации
  13. Статья 363. Нарушение правил эксплуатации электронно-вычислительных машин (компьютеров), автоматизированных систем, компьютерных сетей или сетей электросвязи или порядка или правил защиты информации, которая в них обрабатывается
  14. 3.8. Информационное право как наука, как учебная дисциплина, как система правового регулирования общественных отношений в информационной сфере
  15. §5. Система военных судов в РФ как часть системы судов общей юрисдикции
  16. ВАРИКОЗНОЕ РАСШИРЕНИЕ ВЕН
  17. Расширение графического метода