Статус
нашего
сайта:
ICQ Secrets Center is Online  ICQ Information Center


ICQ SHOP
     5-значные
     6-значные
     7-значные
     8-значные
     9-значные
     Rippers List
ОПЛАТА
СТАТЬИ
СЕКРЕТЫ
HELP CENTER
OWNED LIST
РОЗЫСК!New!
ICQ РЕЛИЗЫ
Протоколы ICQ
LOL ;-)
Настройка компьютера
Аватарки
Смайлики
СОФТ
     Mail Checkers
     Bruteforces
     ICQTeam Soft
     8thWonder Soft
     Other Progs
     ICQ Patches
     Miranda ICQ
ФорумАрхив!
ВАШ АККАУНТ
ICQ LiveJournal

Реклама

Наш канал:

irc.icqinfo.ru

Таненбаум Э.- Архитектура компьютера. стр.365


Таненбаум Э.- Архитектура компьютера. стр.365

В 1987 году автор этой книги выпустил исходный код для одной из версий UNIX, названной MINUX и предназначенной для установки в университетских компьютерных системах [204]. Одним из студентов, познакомившихся с MINUX в университете Хельсинки и установивших эту систему на домашнем компьютере, оказался Линус Торвальдс (Linus Torvalds). Изучив MINIX в деталях, Линус решил написать собственную версию операционной системы, которая получила имя Linux и стала со временем весьма популярной. MINIX и Linux похожи, и поэтому почти все сведения о MINIX, изложенные в этой главе, актуальны и по отношению к Linux (если не указано иное). По внутренней структуре разнообразные версии UNIX существенно различаются, но, поскольку мы по большей части акцентируем внимание на единообразном интерфейсе системных вызовов, эти различия в данном случае несущественны.

В UltraSPARC III используется операционная система Solaris, и хотя основой для нее является версия System V, она также поддерживает многие вызовы Berkeley UNIX.

В табл. 6.3 перечислены категории системных вызовов Solaris. Системные вызовы управления файлами и каталогами — это самая важная и объемная категория. Большинство из них относятся к стандарту PI003.1, остальные берут начало в System V.

Таблица 6.3. Системные вызовы UNIX

Категория

Управление файлами

Примеры

Открытие, чтение, запись, закрытие и блокировка файлов

Управление каталогами

Создание и удаление каталогов; перемещение файлов

 

в каталоги

Управление процессами

Порождение, завершение и трассировка процессов,

 

передача сигналов

Управление памятью

Разделение общей памяти между процессами, защита

 

страниц

Получение и установка

Идентификация пользователя, группы, процесса;

параметров

установка приоритетов

Даты и периоды времени

Установка времени доступа к файлам; использование

 

временных интервалов; рабочий профиль программы

Работа в сети

Установка и выделение соединений; отправка

 

и получение сообщений

Прочее

Учет использования ресурсов; манипуляция дисковыми

 

квотами; перезагрузка системы

Сфера использования сетей в большей степени относится к Berkeley UNIX, а не к System V. Именно в Беркли было введено понятие сокета как конечной точки сетевого соединения. Моделью для этой концепции стали 4-проводные настенные розетки для телефонов. Процесс в системе UNIX может создать сокет, подключиться к нему и установить соединение с сокетом на удаленном компьютере. Через это соединение можно затем пересылать данные в обоих направлениях, обычно по протоколу TCP/IP. Поскольку сетевые технологии в системе UNIX применялись десятилетиями, значительное число серверов в Интернете используют именно UNIX.

Существует много разных версий UNIX, и каждая из них чем-то отличается от всех остальных, поэтому структуру этой операционной системы описать трудно. Тем не менее схема, изображенная на рис. 6.24, применима к большинству из них. Внизу показаны драйверы устройств, которые изолируют файловую систему от аппаратного обеспечения. Изначально каждый драйвер устройства писался без учета всех остальных и представлял собой независимую единицу. Это привело к многочисленным дублированиям, поскольку многие драйверы должны поддерживать управление потоками, исправление ошибок, приоритеты, отделение данных от команд и т. д. По этой причине Деннис Ритчи для использования принципа модульности при написании драйверов придумал структуру под названием поток ввода-вывода (stream). При наличии потока ввода-вывода можно установить двухстороннее соединение между пользовательским процессом и устройством и вставить между ними один или несколько модулей. Пользовательский процесс передает данные в поток ввода-вывода, затем эти данные обрабатываются или просто передаются дальше каждым модулем до тех пор, пока не дойдут до устройства. При передаче данных от устройства процессу все происходит аналогично.


⇐ Предыдущая страница| |Следующая страница ⇒

.