Тема 9. (Продолжение). Примеры ОС UNIX




9.4. UNIX System V Release 4

Версия UNIX System V Release 4 (SVR4) - это незаконченная коммерческая версия операционной системы, т.к. в ее кодах отсутствуют многие системные утилиты, необходимые для успешной эксплуатации ОС, например утилиты администрирования или менеджер графического интерфейса. Версия SVR4 является скорее стандартной реализацией кода ядра, вобравшая в себя наиболее популярные и эффективные решения из различных версий ядра UNIX, такие как виртуальная файловая система VFS, отображаемые в память файлы и т.п.

9.4.1. Процесс UNIX. Дескриптор и контекст процесса.

Процесс UNIX - единица управления и единица потребления ресурсов. Процесс представляет собой программу в состоянии выполнения, причем в SVR4 в рамках одного процесса не могут выполняться никакие параллельные действия.

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

При управлении процессами ОС использует два основных типа информационных структур: дескриптор процесса (структура proc) и контекст процесса (структура user).

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

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

9.4.2. Привилегированный и пользовательский режимы

Для процессов предусмотрены два режима выполнения: привилегированный режим - "система" и обычный режим - "пользователь". В режиме "пользователь" запрещено выполнение действий, связанных с управлением ресурсами системы, в частности, корректировка системных таблиц, управление внешними устройствами, маскирование прерываний, обработка прерываний. В режиме "система" выполняются программы ядра, а в режиме "пользователь" - оболочка и прикладные программы. При необходимости выполнить привилегированные действия пользовательский процесс обращается с запросом к ядру в форме так называемого системного вызова. В результате системного вызова управление передается соответствующей программе ядра. С момента начала выполнения системного вызова процесс считается системным. Таким образом, один и тот же процесс может находиться в пользовательской и системной фазах. Эти фазы никогда не выполняются одновременно.

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

В SVR4 имеется несколько процессов, которые не имеют пользовательской фазы, например, процесс pageout, организующий свопинг.

9.4.3. Диспетчеризация процессов

В системе UNIX SVR4 реализована вытесняющая мультизадачность, основанная на использовании приоритетов и квантования. Все процессы разбиты на несколько групп, называемых классами приоритетов. Каждая группа имеет свои характеристики планирования процессов.

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

В UNIX SVR4 имеется три приоритетных класса: класс системных процессов, класс реального времени и класс процессов разделения времени. Приоритетность (привилегии) процесса тем выше, чем больше число, выражающее приоритет. Значения приоритетов определяются для разных классов по разному.

 

9.4.3.1. Класс системных процессов

Процессы системного класса используют стратегию фиксированных приоритетов. Системный класс зарезервирован для процессов ядра. Уровень приоритета процессу назначается ядром и никогда не изменяется. Однако, пользовательский процесс, перешедший в системную фазу, не переходит при этом в системный класс приоритетов.

 

9.4.3.2. Класс реального времени

Процессы реального времени также используют стратегию фиксированных приоритетов, но пользователь может их изменять. Так как при наличии готовых к выполнению процессов реального времени другие процессы не рассматриваются, то процессы реального времени надо тщательно проектировать, чтобы они не захватывали процессор на слишком долгое время. Характеристики планирования процессов реального времени включают две величины: уровень глобального приоритета и квант времени. Для каждого уровня приоритета имеется по умолчанию своя величина кванта времени. Процессу разрешается захватывать процессор на указанный квант времени, а по его истечении планировщик снимает процесс с выполнения.

9.4.3.3. Класс разделения времени

Процессы разделения времени были до появления UNIX SVR4 единственным классом процессов, и по умолчанию UNIX SVR4 назначает новому процессу этот класс. Для справедливого распределения времени процессора между процессами, в этом классе используется стратегия динамических приоритетов, которая адаптируется к операционным характеристикам процесса. Величина приоритета, назначаемого процессам разделения времени, вычисляется пропорционально значениям двух составляющих: пользовательской части и системной части. Пользовательская часть приоритета может быть изменена суперпользователем и владельцем процесса, но в последнем случае только в сторону его снижения.

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

9.4.4. Средства синхронизации и обмена данными.

Именованные конвейеры - это средство обмена данными между процессами. Конвейер буферизует данные, поступающие на его вход, таким образом, что процесс, читающий данные на его выходе, получает их в порядке "первый пришел - первый вышел" (FIFO). В ранних версиях UNIX для обмена данными между процессами использовались неименованные конвейеры - pipes, которые представляли собой очереди байт в оперативной памяти. Однако, из-за отсутствия имен, такие конвейеры могли использоваться только для передачи данных между родственными процессами, получившими указатель на конвейер в результате копирования сегмента данных из адресного пространства процесса-прародителя. Именованные конвейеры позволяют обмениваться данными произвольной паре процессов, т.к. каждому такому конвейеру соответствует файл на диске. Никакие данные не связываются с файлом-конвейером, но все равно в каталоге содержится запись о нем, и он имеет индексный дескриптор. В UNIX System V Release 4 конвейеры реализуются с использованием коммуникационных модулей STREAMS.

Файлы, отображенные в памяти. Побочным продуктом новой архитектуры виртуальной памяти UNIX System V Release 4 является возможность отображать содержимое файла (или устройства) в виде последовательности байтов в виртуальное адресное пространство процесса. Это упрощает процедуру доступа процесса к данным.

Помимо этого используются стандартные средства UNIX: сообщения, сигналы и т.п.

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

В UNIX System V Release 4 реализована сегментно-страничная модель памяти в ее традиционном виде. Наряду с механизмом управления страницами используется и механизм свопинга, когда на диск выталкиваются все страницы какого-либо процесса. Свопинг применяется в "предаварийных" ситуациях, когда размер свободной оперативной памяти уменьшается до некоторого заданного порога, так что работа всей системы очень затрудняется.

 

9.4.6. Система ввода/вывода.

Основу системы ввода-вывода ОС UNIX составляют драйверы внешних устройств и средства буферизации данных. Алгоритм выполнения запроса к подсистеме буферизации реализуется набором функций, наиболее важные из которых рассматриваются ниже.

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

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

Функция bdwrite - отложенная запись. При этом передача данных из системного буфера не производится, а в заголовке буфера делается отметка о том, что буфер заполнен и может быть выгружен, если потребуется освободить буфер.

Функции bread и getblk - получить блок. Каждая из этих функций ищет в буферном пуле буфер, содержащий указанный блок данных. Если такого блока в буферном пуле нет, то в случае использования функции getblk осуществляется поиск любого свободного буфера, при этом возможна выгрузка на диск буфера, содержащего в заголовке признак отложенной записи. В случае использования функции bread при отсутствии заданного блока в буферном пуле организуется его загрузка в какой-нибудь свободный буфер. Если свободных буферов нет, то также производится выгрузка буфера с отложенной записью. Функция getblk используется тогда, когда содержимое зарезервированного блока не существенно, например, при записи на устройство данных, объем которых равен одному блоку.

9.5. ОС Digital UNIX

9.5.1. Основное назначение и история Digital UNIX

История разработки Digital UNIX. ОС Digital UNIX (ранее известная как DEC OSF/1) была разработана Digital Equipment с использованием кодов ОС OSF/1. Open Software Foundation была основана в конце восьмидесятых годов группой ведущих поставщиков программного обеспечения и вычислительной техники при участии DIGITAL. Вкладчиками этого консорциума являлись несколько сотен компаний и корпораций. Первая версия ОС OSF/1 R1.0 была построена на базе ядра Mach 2.5, разработанного в университете Корнеги Меллон, и использования кодов BSD (Berkeley Software Definition) версии 4.3 (Reno).

Digital UNIX версии, 4.0 является многопользовательской/мультизадачной, 64-разрядной, операционной системой с усовершенствованной архитектурой ядра, основанной на проекте ядра Mach версии 2.5 Университета Carnegie Mellon, с компонентами Berkeley Software Distribution (BSD) версии 4.3 и 4.4, cистемы V реализации 4.0 UNIX System Laboratory, других программных источников, открытых публикаций и собственных разработок Digital Equipment Corporation.

Digital UNIX версии 4.0 включает несколько усовершенствований, разработанных или расширенных Digital, включая объединенный буферный кэш виртуальной памяти и интенсивную стратегию свопинга; кластерные блоки UFS.

Digital UNIX версии 4.0 также обеспечивает поддержку реального масштаба времени и симметричную многопроцессорную обработку (SMP), потоков (threads) и файлов отображения памяти. Все это полностью соответствует Единой Спецификации UNIX, марке X/Open UNIX, POSIX 1003.1B (реальный масштаб времени) и POSIX 1003.1C (с DECthreads).

Основное назначение Digital UNIX - обеспечение работы высокопроизводительных приложений на серверах и рабочих станциях. Основные свойства:

-двоичная совместимость по всему семейству процессоров Alpha - от маленькой рабочей станции до многопроцессорного кластера, от одноплатной машины реального времени до высоконадежной системы хранения и анализа информации и поддержки принятия решений;

-64-разрядная ОС с самого начала поставок - с 1993 года;

-реализация в рамках одной ОС стандартов BSD (Berkley Software Distribution) и System V (SVD2, SVD3);

-защита информации - уровни защиты по классам C2 и B1;

-широкий диапазон сетевых возможностей. Digital UNIX поддерживает работу по сетевым протоколам TCP/IP, DECnet/OSI, SNA и X.25, а также работу в PC LAN по протоколам NetBEUI и IPX/SPX;

-поддержка сетевых устройств FDDI, ATM, Ethernet, Fast Ethernet, а также обеспечение возможности работы по протоколам PPP и Slip;

-ОС реального времени, удовлетворяющая требованиям стандарта POSIX 1003.1b;

-полный спектр программных средств для поддержки разработки и отладки приложений, создаваемых как для однопроцессорных машин, так и для SMP-систем и кластеров.

9.5.2. 64-разрядная архитектура Digital UNIX

Все регистры процессора Alpha имеют 64 разряда. В Digital UNIX, если рассматривать операционную систему с точки зрения языка Си, переменные char - 1 байт, short - 2 байта, int - 4 байта, long - 8 байт, а указатель хранится в 8 байт памяти и обрабатывается в 64-битных регистрах процессора.

Преодолено характерное для классических UNIX-систем ограничение в 2 Гбайт на размеры оперативной и виртуальной памяти, размеры файловой системы и собственно файлов. Обеспечена возможность линейной, без сегментации, адресуемости оперативной и виртуальной памяти в огромном адресном пространстве, значительно выходящем за этот предел.

Использование такого адресного пространства: ГИС, видеосерверы (хранение и анализ видеопродукции, мгновенная выдача заказчику видеоинформации), здравоохранение (информационные базы данных, анализ рентгеновских снимков), наука и проектирование. В качестве примера использования новых возможностей, которые обеспечивает 64-разрядная адресация, можно привести основных потребителей вычислительных ресурсов в мире - серверы баз данных (кэширование данных с дисков в таких масштабах, о которых прежде можно было только мечтать). Появившиеся 64-разрядные версии Oracle, Informix, Adabas, Oracle RDB, Progress продемонстрировали увеличение скорости обработки запросов к базам данных в десятки раз. Допустимые размеры файлов и файловых систем в Digital UNIX также далеко выходят за рамки старых ограничений в 2 Гбайт.

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

Digital UNIX использует модель виртуальной памяти, однако прямое повторение механизма определения физического адреса по виртуальному, применяемого в 32-разрядных системах, когда каждый процесс имеет одну таблицу адресов физических страниц, по которой проводится пересчет виртуального адреса в физический, для 64-разрядных систем невозможно - размер этой таблицы становится невероятно большим. В Digital UNIX реализована трехуровневая система хранения адресов физических страниц и определения физического адреса по виртуальному. Размер страницы оперативной памяти выбран равным 8 Кбайт, что соответствует 13 битам адреса. Собственно ОС может работать и со страницами большего размера (16, 32,... Кбайт), что позволяет раздвинуть границы адресуемого пространства путем простого увеличения размера страницы. Конкретная величина размера страницы памяти зависит от аппаратной реализации и передается операционной системе при старте.

Алгоритм подкачки страниц OSF использовал только один дисковый раздел свопинга за раз, ожидая заполнения первого раздела свопинга, прежде чем перейти к следующему. Чтобы улучшить эффективность, Digital изменил алгоритм подкачки страниц OSF для поддержки одновременной подкачки страниц с использованием нескольких дисковых разделов свопинга. В результате, так как скорости обмена с диском в несколько тысяч раз медленнее чем быстродействие памяти и процессора Альфа, системные администраторы могут значительно нивелировать это различие в скоростях, распределив разделы свопинга по различным дискам и различным контроллерам. Фактически, обеспечивая одновременную подкачку страниц с использованием нескольких дисковых разделов свопинга, Digital UNIX версии 4.0 позволяет многим задачам одновременные обрабатывать ситуацию отсутствия в памяти страницы, повышая таким образом производительность

Работа подсистемы виртуальной памяти является взаимодействием двух конкурирующих механизмов - систем paging и swapping. Swapping - сброс всей памяти, занятой определенным процессом, на диск - является механизмом работы ОС в условиях острого недостатка свободных страниц оперативной памяти. Поскольку процессор в этом случае часто вынужден ожидать окончания операции с диском, производительность системы сильно снижается. Штатным для Digital UNIX режимом работы является paging. В этом случае работает механизм избирательного сбрасывания страниц из оперативной памяти на диск, позволяющий поддерживать высокую скорость работы как приложений, так и ОС.

Объединенный буферный кэш.Чтобы увеличить эффективность файловой системы, Digital применил объединенный буферный кэш (UBC - Unified Buffer Cache), полностью интегрированный с файловой системой, который кэширует данные файловой системы и может по запросу увеличиваться или сокращаться. Т.о., помимо подсистемы виртуальной памяти за "обладание" страницами физической памяти борется подсистема UBC, осуществляющая буферизацию работы с файловыми системами. В зависимости от типа нагрузки на вычислительную машину: работает ли она файловым сервером или выполняет в основном вычислительные задачи, система может динамически определять процент памяти, которая должна быть распределена для UBC - вплоть до размера всей физической памяти. Однако, максимальный процент памяти, до которого может вырасти UBC, является настраиваемой величиной и может быть установлен в файле конфигурации системы.

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

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

 

9.5.4. Многопроцессорная обработка

SMP - способность двух или больше процессов (или нескольких потоков (threads) мультизадачных приложений) выполняться одновременно на двух или больше ЦП. Этот параллелизм выполнения значительно улучшает характеристики работы. Дополнительно, это предоставляет заказчикам возможность продлить жизнь и увеличить рентабельность их мультипроцессорных систем, добавляя платы ЦП (наращивая вычислительную мощность) вместо покупки новых систем.

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

 

9.5.5.1. Средства синхронизации

Синхронизация доступа каждого потока исполнения к разделяемым ресурсам осуществляется с помощью меток-"защелок" (lock). Если имеется несколько потоков исполнения, конкурирующих между собой за доступ к определенному ресурсу, например к конкретной области в оперативной памяти, то для обеспечения согласованности работы они должны помечать эту область как занятую перед началом работы с ней и снимать метку lock по завершении операции. Существует несколько способов ставить метки. В простейшем варианте (Simple Lock) поток, поставив свою метку, просто осуществляет циклическую проверку на предмет отсутствия ранее установленных меток. Процессорное время до момента снятия чужой метки расходуется вхолостую. Поэтому в Digital UNIX существуют и другие типы меток, а также mutex. Основная их особенность состоит в том, что данный поток в случае, когда необходимая ему область памяти уже занята, просто "засыпает" на некоторое время, освобождая процессор для выполнения других операций.

Таким образом, ОС обеспечивает для многих процессов или многих потоков одновременное выполнение на нескольких ЦП. При выполнении нескольких процессов или потоков ОС гарантирует - используя параллелизм или стратегию блокирования - что процессы, осуществляющие доступ к одним и тем же структурам ядра, получат их логически упорядоченными, при этом обеспечивается целостность этих структур данных и исключается взаимная блокировка процессов, приводящая к блокированию система (deadlocking). Никаких архитектурных ограничений на число поддерживаемых ЦП не имеется.

9.5.5.2. Аффинное планирование

Digital UNIX также поддерживает привязку к процессору processor affinity, связывающую определенный процесс с указанным ЦП и распределение нагрузки load balancing, когда планировщик пытается распределять все готовые к выполнению процессы на всех доступных ЦП. (Обратите внимание, что распределение нагрузкинеотвергает привязку к процессору).

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

9.5.5.3. Настраиваемость

Digital UNIX позволяет настраивать механизны мультипроцессирования для конкретной ЭВМ и режима эксплуатации системы, (например):

-Однопроцессорный (Uniprocessing)

-Оптимизированный для обработки приоритетных прерываний в реальном масштабе времени

-Оптимизированный SMP

-Оптимизированный для обработки приоритетных прерываний в реальном масштабе времени и SMP

 

9.5.6. Потоки Digital UNIX

Отправной точкой при разработке ОС для процессора Alpha отнюдь не случайно стала ОС OSF/1 Open Software Foundation, базирующаяся на микроядре Mach 2.5, основанном на потоках исполнения. Поток представляет собой структуру в памяти машины: стек и содержимое регистров процессора. Традиционный процесс также присутствует в OSF/1 и в Digital UNIX, но он уже ссылается на набор принадлежащих ему потоков исполнения и описывает структуры памяти данной задачи.

Имеются примеры того, как реализовать систему с гарантированным временем выхода из ядра ОС при приоритетном прерывании (preempted kernel) для работы приложений в режиме реального времени;

9.6. ОС Linux

Разработка ОС Linux выполнена Линусом Торвалдсом из университета Хельсинки и обширной командой из многих тысяч пользователей сети Internet, сотрудников исследовательских центpов, унивеpситетов и т.д. в настоящее время имеется большое количество клонов Linux, в т.ч. и распространяемых коммерчески (Red Hat, SuSE). На базе Linux разрабатываются многие специализированные ОС, предназначенные для использования в системах национальной безопасности.

Linux - это современная UNIX-подобная 32-разрядная ОС. Система соответствует стандарту POSIX, что позволяет говорить о переносе программного обеспечения, разработанного для Linux, на другие версии UNIX и обратно.

Это многопользовательская сетевая операционная система с сетевой оконной графической системой X Window System. ОС Linux поддерживает стандарты открытых систем и протоколы сети Internet и совместима с системами UNIX. ОС Linux широко распространена на платформах Intel PC 386/486/Pentium и на ряде других платформ.

ОС Linux обеспечивает использование огромного числа разнообразных программных пакетов, накопленных в мире UNIX и свободно распространяемых вместе с исходными текстами.

С 1998 года IBM начала устанавливать Linux на своих серверах.

Oracle разработала СУБД под Linux.

9.6.1. Характеристики Linux

Характерные особенности Linux.

-мультизадачность;

-многопользовательский режим;

-виртуальная память со страничной организацией, изменение размера виртуальной памяти во время выполнения программ;

-динамические загружаемые разделяемые библиотеки;

-сертификация по стандарту POSIX.1, совместимость со стандартами System V и BSD;

-диспетчеризация в стандарте POSIX;

-поддержка национальных алфавитов и соглашений, в т.ч. для русского языка;

-множественные виртуальные консоли: на одном дисплее несколько одновременных независимых сеансов работы, переключаемых с клавиатуры (Комбинацией клавиш Alt-Fх);

-поддержка ряда распространенных файловых систем (MINIX, Xenix, файловые системы System V); наличие собственной файловой системы объемом до 4 Терабайт и с именами файлов до 255 знаков;

-прозрачный доступ к разделам DOS: раздел DOS выглядит как часть файловой системы Linux;

-доступ к файловой системе HPFS;

-поддержка всех стандартных форматов CD ROM;

-многопроцессорность (включая суперкомпьютеры);.

-удаленная регистрация пользователя с машины A в машину B;

-поддержка сети TCP/IP, включая ftp, telnet, NFS и т.д.

Виртуальная мультиконсоль дает возможность на одном дисплее организовать работу нескольких консолей, при этом на разных виртуальных консолях пользователь может регистрироваться под разными именами. На одной из свободных консолей можно запустить оконную графическую систему X Window System.

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

9.6.2. Состав и функции ОС Linux

В составе ОС Linux работают

-ядро ОС;

-загружаемые драйверы (модули);

-набор текстовых редакторов (GNU Emacs, Lucid Emacs, MicroEmacs, jove, ez, elvis (GNU vi), и др.);

-системы программирования для большого числа языков: C, C++, Pascal, Fortran,Lisp, Java…;

-эмулятор программ DOS;

-электронная почта с мультимедиа поддержкой;

-ряд СУБД (Exodus, Shore, Ingres, Postgres 95, mSQL, OBST, Onyx и др.);

-и многие другие программы и пакеты, созданные или перенесенные в Linux, включая прикладные системы ГИС, САПР, мультимедиа и пр.

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

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

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

 

9.6.3. Условия распространения ОС Linux

Все компоненты системы, включая исходные тексты, распространяются с лицензией на свободное копирование и установку для неограниченного числа пользователей. Суть этой лицензии (General Public License), разработанной Ричардом Столманом в 1984 году и фондом Free Software Foundation, состоит в том, что исходные тексты программ доступны для пользователя. Если некто использует фрагменты этих текстов в собственных разработках, то эти разработки должны распространяться также под лицензией GPL. Согласно лицензии программы распространяются без каких-либо гарантий. Разрешается распространять продукт как бесплатно, так и за деньги, которыми оплачиваются услуги по копированию, установке, консультации, сопровождению и т.п. Разрешается даже продавать собственно продукт, защищенный этой лицензией, а не только услуги по его распространению, но при условии непременного ознакомления покупателя с лицензией GPL и предоставления ему всех прав свободного приобретения продукта с исходными текстами. Лицензия GPL распространяется на ядро, редакторы, трансляторы, СУБД, сеть, графические интерфейсы, игры и массу другого программного обеспечения.

===============================================================================

ВОПРОСЫ:

1.История развития UNIX SVR4

2.Понятие процесса UNIX SVR4

3.Дескриптор и контекст процесса UNIX SVR4

4.Реентерабельность в SVR4

5.Диспетчеризация в SVR4

6.IPC в SVR4

7.Управления памятью в SVR4. Свопинг.

8.Типы операций ввода/вывода в SVR4

9.История развития Digital UNIX

10. Назначение и основные свойства Digital UNIX

11. Преимущества 64-разрядной архитектуры Digital UNIX

12. Управления памятью в Digital UNIX

13. Многопроцессорность Digital UNIX

14. Средства синхронизации Digital UNIX

15. История развития Linux

16. Основные характеристики Linux

17. Состав и функции ядра ОС Linux

18. Условия распространения ОС Linux




Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-05-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: