Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Дудкин А.К. Конспект лекций по ОСиС / Раздел III. ОС Unix_лекции.doc
Скачиваний:
68
Добавлен:
02.05.2014
Размер:
135.68 Кб
Скачать

Ос Unix иLinux

ОС Unixбыла разработана в 1969 г. вBellLabsкак многозадачная ОС для миникомпьютеров и мейнфреймов. Она написана на языке Си, что позволяет ее компилировать различными Си-компиляторами для различных машин. На данный момент существует огромное множество версийUnixдля различных платформ от персональных ПК до суперкомпьютеров, таких какCrayY-MP.Unixпозволяет также организовывать кластеры.

  1. Ядро Unix

Ядро Unixпредставляет собой монолитную архитектуру. Главное ее св-во – высокая степень мобильности, то есть переносимости на разные платформы. Все компоненты ОС, не считая ядра, являются полностью машинно-независимыми, которые хорошо изолированы друг от друга. При компиляции ядра можно разрешить динамическую загрузку и выгрузку очень многих компонентов ядра – модулей. В момент загрузки модуля его код загружается для исполнения в привилегированном режиме и связывается с остальной частью ядра. Внутри модуля могут использоваться любые экспортируемые ядром функции.

Ядро – это постоянно функционирующая часть ОС, которая в случае Linuxзанимает 5-7 Мбайт. Другие программы (системные или пользовательские) являются полностью машинно-независимыми и могут общаться с ядром посредством системных вызовов, которые по сути дела являются точками входа программ на языке Си в ядро. При исполнении системного вызова программа пользователя временно переходит в привилегированный режим, получая доступ к данным или устройствам, которые недоступны при работе в режиме пользователя!

Стандартная библиотека Unix–libc– обеспечиваетC-интерфейс к каждому системному вызову. Это приводит к тому, что системный вызов выглядит как функция на языке С.

    1. Основные функции и состав ядра:

  1. Инициализация системы – запуск, bootstrap– процедура раскрутки и загрузки полного ядра в память, запуск ядра;

  2. Управление процессами и нитями – создание, завершение и отслеживание процессов и нитей, разделение между запущенными процессами времени процессора(-ов в SMP), распараллеливание процессов;

  3. Управление памятью – создание ФС, файлов, доступ к внешним устройствам на уровне ФС;

  4. Коммуникации и обмен данными между процессами локальными и сетевыми (IPC=Inter-ProcessCommunications), а также между процессами и драйверами;

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

  1. Управление устройствами в Unix

Любое устройство Unixпредставляется как специальный файл, которому на самом деле соответствует не место на диске, а целое устройство. Это позволяет упростить доступ к устройствам и разработку драйверов для них.

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

Файлы устройств находятся в каталоге /dev. Любое устройство здесь представляется файлом с определенным служебным именем:

  • ttyN– консоль (N– номер консоли)

  • hdxN–IDE-устройства, подключенные к АТА-контроллеру (N– номер разделе на винчестере)

    • hda – IDE HDD, подключенный на Primary Master

    • hdb-HDD, подключенный наPrimarySlave

    • hdc - HDD, подключенный на Secondary Master

    • hdd-HDD, подключенный наSecondary Slave

Получается, что первичный раздел DOSбудет обозначаться как /dev/hda1.

  • fd0, fd1 – флоппи-дисководы

  • ethN – сетевая плата