Предмет: Операционные системы.
Вопрос: №10
***
—————————————————————
Общее представление о Unix:
ОС UNIX является удачной реализацией многопользовательской и многозадачной ОС. Она спроектирована как инструменталь-ная система для разработки программного обеспечения. Система UNIX обладает простым, но очень мощным командным языком и независимой от устройств файловой системой. Системы и приложения, выполняющиеся в ней, легко переносимы.
При создании ОС UNIX имелось три цели:
1.) стремление сохранить простоту и обой- тись минимальным количеством функций.
2.) использование общих механизмов во множестве случаев, например при обраще-нии к файлам, прерываниях, именовании и др.;
3.) предоставление возможности решать большие задачи, комбинируя более мелкие.
—————————————————————
Основные понятия семейства ОС UNIX:
1.) Виртуальная машина. Каждому пользователю после входа в систему предоставляется виртуальный компьютер, в котором есть все необходимые ресурсы: процессор, память, устройства, файлы. Текущее состояние виртуального компьютера называется образом, который включает: образ памяти; значения общих регистров процессора; состояния открытых файлов; текущую директорию и другую информацию.
2.) Пользователь. Для входа в систему вводит учетное имя и пароль. Каждому зарегистрированному пользователю соот-ветствует каталог файловой системы, который называется домашним каталогом пользователя.
3.) Интерфейс пользователя. Пользователь взаимодействует с системой UNIX на использовании командных языков. После входа пользователя в систему у него запускается командный интерпретатор shell (оболочка).
4.) Атрибуты файлов. Владелец может назначить защиту файла со стороны 3х классов пользователей: собственно владельца; группы пользователей, к которой принадлежит владелец; всех пользова-телей, имеющих доступ к системе. Каждый файл имеет 3 вида разрешения на доступ: чтение (r); запись (w); выполнение (x).
5.) Процесс в UNIX – программа, выполняя-емая в собственном виртуальном адресном пространстве. Когда пользователь входит в систему, автоматически создается процесс, в котором выполняется программа командного интерпретатора.
6.) Привилегированный пользователь – Центральной частью системы UNIX являет-ся ядро (kernel). Ядро идентифицирует каждого пользователя по его идентифи-катору UID (UserIdentifier), уникальному целому значению, присвоенному пользова-телю при регистрации в системе. Кроме того, каждый пользователь относится к группе пользователей, которая идентифи- цируется некоторым целым значением GID (Group Identifier).
Администратору системы выделяется нулевое значение UID. Пользователь с таким значением UID называется суперпользователь (superuser) или root. Он имеет неограниченные права на доступ к любому файлу и на выполнение любой программы. На суперпользователя не распространяется ограничение на исполь- зуемые ресурсы.
7.) Стандартные файлы – многие команды работают по умолчанию со стандартными файлами:
Standard Input (S.I.) – стандартный поток ввода;
Standard Output (S.O.) – стандартный поток вывода;
Diagnostic Output (D.O.) – диагностический поток вывода.
Однако есть средства изменения умолчаний. Эти средства называются перенаправлением ввода и вывода (<,>).
8.) Режимы переднего и заднего плана – обычно команды выполняются в режиме переднего плана (foreground), т.е. «пока вы ждете». Однако если во время выполнения некоторой команды вы хотите выполнять другие команды, то эту (первую) команду можно выполнить в режиме заднего плана (background). Для того чтобы команда выполнялась в режиме заднего плана, необходимо ее закончить знаком &.
—————————————————————
Выполнение процессов в ОС UNIX:
Процесс может выполняться в одном из двух состояний – пользовательском или систем-ном.
В пользовательском состоянии процесс выполняет пользовательскую программу и имеет доступ к пользовательскому сегменту данных.
В системном состоянии процесс выполняет программы ядра и имеет доступ к системному сегменту данных.
В UNIХ-системах используется разделение времени, то есть каждому процессу выделяется квант времени. Процесс либо завершается сам до истечения отведенного ему кванта времени, либо он откладывается по истечении кванта. Чем меньше отведенное процессу время – тем выше его приоритет. Все системные процессы имеют более высокие приоритеты по сравнению с пользовательскими и поэтому всегда обслуживаются в первую очередь.
—————————————————————
Межпроцессные коммуникации в Unix:
Для построения программных систем, работающих по принципам модели типа: «клиент-сервер» (эта универсальная модель
служит основой построения любых сколь угодно сложных систем, в том числе и сетевых), в Unix существуют следующие механизмы:
– Сигналы (если рассматривать выполнение процесса в виртуальном компьютере, который предоставляется каждому поль-зователю, то в такой системе должна существовать система прерываний, отвечающая стандартным требованиям. Система прерываний включает: обработку исключительных ситуаций, средства обработки внешних и внутренних прерываний, средства управления системой прерываний);
– Семафоры (представляет собой обрабаты-ваемый ядром целочисленный объект, для которого определены следующие элементарные (неделимые) операции: инициализация семафора; операция типа P, уменьшающая значение семафора; операция типа V, увеличивающая значение семафора; условная операция типа P, сокращенно CP (conditional P), уменьшаю-щая значение семафора и возвращающая логическое значение «истина» в том случае, когда значение семафора остается положи-тельным, иначе ложь);
– программные каналы (программный канал
позволяет взаимодействовать любому числу процессов по принципу FIFO (First-In-First-Out). Процесс, читающий из программного канала, прочитает самые давние записан-ные в программный канал данные. В современных версиях ОС UNIX для реали-зации программных каналов применяются, как правило, очереди сообщений);
– очереди сообщений (для обеспечения возможности обмена сообщениями между процессами этот механизм поддерживается следующими типами системных вызовов: образование новой очереди сообщений или получение дескриптора существующей очереди; посылка сообщения (вернее, постановка в указанную очередь сообщений); прием сообщения (вернее, выборка сообщения из очереди сообщений);
выполнение ряда управляющих действий.)я;
– сегменты разделяемой памяти (для работы с разделяемой памятью используются четыре типа системных вызовов: создание нового сегмента разделяемой памяти или нахождение следующего сегмента с тем же ключом; подключение сегмента с указанным дескриптором к виртуальной памяти обращающегося процесса; отключение от виртуальной памяти ранее подключенного к ней сегмента с указанным виртуальным адресом начала; управление разнообразными параметрами, связанными с существующим сегментом.);
– вызовы удаленных процедур (один из процессов «клиент» запрашивает у другого процесса «сервера» некоторую услугу (сервис) и не продолжает свое выполнение до тех пор, пока эта услуга не будет выполнена, т.е. пока процесс-клиент не получит соответствующие результаты. Семантически такой режим взаимодействия эквивалентен вызову процедуры, отсюда и соответствующее название).
—————————————————————
Операционная система Linux:
Linux – это современная РОSIХ-совмести-мая и UNIХ-подобная ОС для ПК и рабочих станций.
Linux – это свободно распространяемая вер-
сия UNIХ, которая была разработана в начале 90-х годов студентом хельсинкского университета Линусом Торвальдсом (Linus Torvalds) и названа им созвучно собствен-ному имени.
—————————————————————
Изначально Linux создавался как самодель-ная UNIX-подобная реализация для ПК типа IВM РС с процессором i80386. Однако Linux стал настолько популярен и его на сегодня-шний день поддерживает такое большое число компаний, что в настоящее время имеется реализация этой ОС практически для всех типов процессоров и компьютеров на их основе.
—————————————————————
Linux поддерживает различные типы файловых систем для хранения данных. Некоторые файловые системы, такие как файловая система ext2fs, были созданы специально для Linux. Поддерживаются также другие типы файловых систем, например Minix-l и Xenix. Реализована также система управления файлами на основе FAT и FAT32, позволяющая непосредствен-но обращаться к файлам, находящимся в разделах с этой файловой системой. Поддерживается и файловая система ISO 9660 CDROM для работы с дисками CD-ROM. Имеются системы управления файлами на томах с HPFS и NTFS, правда, они работают только на чтение файлов.
—————————————————————
Linux, как и все UNIX-системы, обеспечивает полный набор протоколов TCP/IP для сетевой работы. Поддерживается весь спектр клиентов и услуг TCP/IP, таких как FTP, telnet, NNTP и SMTP. Достаточно часто на компьютерах, работающих под управлением Linux, реализуют DNS-сервер, WWW-сервера (Арache), файерволы для защиты локальных сетей при работе в Интернет, почтовые серверы, сервер DHCP.
—————————————————————
Ядро Linux сразу было создано с учетом возможностей защищенного режима процессоров Intel 80386 и 80486. В частно-сти, Linux использует парадигму описания памяти в защищенном режиме и другие новые свойства процессоров. В настоящее время имеются ядра для этой системы, оптимизированные для работы с процесс-сорами Intel и AMD последнего поколения, хотя основные архитектурные особенности защищенного режима работы изменились мало.