Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


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



Теперь мы рассмотрим основные концепции операционных систем, основы использова­ния и особенности Linux и то, как они между собой связаны. В этой главе описаны кон­цепции, которые мы подробно рассмотрим в следующих главах. Если вы знакомы с эти­ми концепциями, вы можете пропустить эту главу и сразу перейти к гл. 2, «Исследова­тельский инструментарий».

Операционная система - это то, что превращает ваше аппаратное обеспечение в при­годный для использования компьютер. Он отвечает за распределение ресурсов, предос-


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



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

Состав операционной системы зависит от ее типа. Linux - это UNIX-образный вари­ант монолитной системы. Когда мы говорим, что система монолитна, мы не обязательно имеем в виду, что она большая (тем не менее во многих случаях это утверждение справед­ливо). Скорее мы имеем в виду, что она состоит из одного модуля - единственного объ­ектного файла. Структура операционной системы определяется большим количеством процедур, которые компилируются и линкуются в единое целое. То, как эти процедуры связаны, определяет внутреннюю структуру монолитной системы.

В Linux мы имеем пространство ядра и пользовательское пространство как две отдельные части операционной системы. Пользователь общается с операционной систе­мой через пользовательское пространство, где он может разрабатывать и/или выполнять программы. Пользовательское пространство не имеет доступа к ядру (и следовательно, к аппаратным ресурсам) напрямую, а только через системные вызовы - внешний слой процедур, реализованных в ядре. В пространстве ядра содержится функциональность по управлению аппаратными средствами. Внутри ядра системные вызовы вызывают другие процедуры, которые недоступны из пользовательского пространства, и некоторые другие дополнительные функции.

Подпространство процедур, которые невидимы из пользовательского пространства, образуется функциями отдельных драйверов устройств и функциями подсистем ядра. Драйверы устройств также представляют собой строго определенные интерфейсы функ­ций для системных вызовов или для доступа к подсистемам ядра. На рис. 1.1 показана структура Linux

 

           
Приложение   Приложение   Приложение   Приложение  
                       
         
^ г у t > f '  
Системные вызовы  
               
1Драйвер 1 устройства   1 Драйвер 1 устройства   1 Драйвер 1 устройства   1 Драйвер устройства  
               
                       

Рис. 1.1. Диаграмма архитектуры Linux



Глава 1 • Обзор


Кроме этого, Linux динамически загружает кучу драйверов устройств, нейтрали­зующих главный недостаток, присущий монолитным операционным системам. Дина­мически загружаемые драйверы устройств позволяют системному программисту вне­дрять системный код в ядро без необходимости перекомпиляции ядра в образ ядра. Это занимает значительное время (зависящее от производительности компьютера) и вызывает перезагрузки, что значительно замедляет для системного программиста разработку. При динамической загрузке драйверов устройств системный программист может загружать и выгружать свои драйверы устройств в реальном времени без необходимости переком­пиляции всего ядра и остановки системы.

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

Организация ядра

Linux поддерживает множество архитектур - это значит то, что его можно запускать на нескольких типах процессоров, включая alpha, arm, 1386, ia64, ppc, ppc64 и s390x. Пакет исходных кодов Linux включает поддержку всех этих архитектур. Основная часть кода написана на С и является аппаратно-независимой. Наиболее зависимая от аппаратуры часть кода написана на смеси С и ассемблера конкретной архитектуры. Сильно машинно-зависимые участки кода помещены в оболочку из нескольких системных вызовов, служа­щих интерфейсом. По мере чтения этой книги вы увидите архитектурно-зависимые части кода, связанные с инициализацией и загрузкой системы, обработкой векторов исключе­ний, преобразованием адресов и вводом-выводом на устройства.

Обзор ядра Linux

Существуют различные компоненты ядра Linux. На протяжении этой книги мы будем ис­пользовать слова компоненты и подсистемы как взаимозаменяемые для обозначения ка­тегориальных и функциональных различий функций ядра.

В следующем разделе мы обсудим некоторые из этих компонентов и как они реали­зованы в ядре Linux. Также мы рассмотрим некоторые ключевые особенности операцион­ной системы, позволяющие понять, как эти вещи реализованы в ядре. Мы разделим ком­поненты на файловую системы, процессы, планировщик и драйверы устройств. Тем не ме­нее этот список далеко не полон, а только коротко излагает содержание книги.


1.9 Обзор ядра Linux



Пользовательский интерфейс

Пользователи общаются с системой с помощью программ. Вначале пользователь реги­стрируется в системе через терминал или виртуальный терминал. В Linux программа, называемая mingetty для виртуальных терминалов или agetty для параллельных терминалов, следит за неактивными терминалами, ожидающими пользователей, чтобы сообщить, что они хотят зарегистрироваться в системе. Чтобы это сделать, они вводят имя своей учетной записи, и программа getty выполняет запрос к программе login, которая требует пароль, получает доступ к списку имен пользователей и паролей для ау­тентификации и позволяет им войти в систему в случае совпадения или выйти и за­вершить процесс, если совпадение не обнаружено. Программы getty каждый раз пере­запускаются после завершения, что означает, что процесс перезапускается сразу после выхода.

После аутентификации в системе пользователи получают возможность сообщить программе, что они хотят выполнить. Если пользователь успешно идентифицирован, про­грамма login запускает оболочку (shell). Таким образом, технически не являющаяся ча­стью операционной системы оболочка становится главным интерфейсом операционной системы. Оболочка - это командный интерпретатор, представляющий собой ожидающий процесс. Затем ожидающий процесс (который блокируется до тех пор, пока ему не будет возвращен пользовательский ввод) интерпретирует и выполняет то, что набрал пользова­тель. Оболочка- это одна из программ, которую можно найти на верхнем слое на рис. 1.1.

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

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

Идентификация пользователя

Пользователь регистрируется по уникальному имени своей учетной записи. Кроме этого, он ассоциируется с уникальным идентификатором пользователя user ID (UID). Ядро употребляет этот DID для проверки прав пользователя на доступ к файлам. После реги­страции он получает доступ к своей домашней директории (home directory), внутри которой может создавать, модифицировать и удалять файлы. В многопользовательских системах, таких, как Linux, важно идентифицировать пользователя с правами доступа и/или ограничениями для предотвращения для пользователя возможности вмешиваться в деятельность других пользователей или получать доступ к их данным. Суперпользова-



Глава 1 • Обзор


тель - superuser, или root, - это особенный пользователь, не имеющий ограничений; его пользовательский UID - 0.

Помимо этого, пользователь является членом одной или нескольких групп, каждая из которых имеет свой собственный групповой идентификатор (group ID, GED). При соз­дании пользователя он автоматически становится членом группы с именем, идентичным его имени пользователя. Также пользователь может быть вручную «добавлен» в другие группы, определенные системным администратором.

Файл или программа (исполнимый файл) ассоциируются с правами, распространяе­мыми на пользователей и группы. Каждый отдельный пользователь может определить, кто имеет доступ к файлам, а кто нет. При этом файл ассоциируется с определенным UID и определенным GID.

Файлы и файловые системы

Файловая система предоставляет методы для хранения и организации данных. Linux поддерживает концепцию файла как устройствонезависимой последовательности бай­тов. Благодаря абстрагированию пользователь может получить доступ к файлу в незави­симости от устройства (например, жесткий диск, дискета или компакт-диск), на котором он хранится. Файлы группируются в некоторые хранилища, называемые директориями. Так как директории могут быть вложенными (каждая из директорий может содержать другие директории), структура файловой системы представляет собой иерархическое дерево. Корень (root) дерева является самым верхним узлом, к которому принадлежат все остальные хранимые директории и файлы. Он обозначается обратной косой чертой (/). Файловая система хранится на разделе жесткого диска или другом устройстве хране­ния информации.


Поделиться:



Популярное:

  1. A. Библейские пророчества напоминают нам, что Бог Суверенный
  2. Hе откладывай на завтра то, что ты отложил вчера на сегодня.
  3. I. Понятие и система криминалистического исследования оружия, взрывных устройств, взрывчатых веществ и следов их применения.
  4. V1: Понятие, объект, предмет и система криминологии
  5. V7: Система линейных одновременных уравнений
  6. А.15 Укажите, что представляет собой фибра
  7. А2. Что такое уголовно-правовая норма?
  8. Автоматизированная система телемеханического управления (АСТМУ)
  9. Административная реформа и система органов исполнительно власти.
  10. Административное право - публичное право. Административное право как отрасль права и система правового регулирования государственного управления.
  11. Аксиологическое «Я» педагога как система ценностных ориентаций
  12. Активные компоненты подобраны таким образом, чтобы максимально тщательно воздействовать на проблемные зоны вокруг глаз и ликвидировать темные круги, припухлости и отечность.


Последнее изменение этой страницы: 2016-03-25; Просмотров: 679; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.02 с.)
Главная | Случайная страница | Обратная связь