Основные архитектурные компоненты Linux: ядро, shell, X Window

 

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

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

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

В табл. 1 дан перечень команд для работы с модулями ядра.

Все упомянутые команды, за исключением Ismod, доступны только корневому пользователю. В Linux эти команды расположены в каталоге /sbin, не входящем в путь по умолчанию, поэтому для их запуска необходимо вводить полный путь, например, /sbin/Ismod, /sbin/insmod и т.п.

Таблица 1.

Команды для работы с модулями ядра

Команда Описание
Ismod   insmod   rmmod     depmod   modprobe Вывод списка всех модулей, установленных в данный момент в работающем ядре Установка модуля в работающем ядре. Необходимо указать имя модуля и, возможно, несколько дополнительных параметров, описывающих его поведение (например, IRQ и адреса устройств) Удаление модуля из работающей системы. Необходимо соблюдать осторожность, чтобы не удалить модуль, используемый другими модулями. О взаимозависимости загруженных модулей можно судить по результатам выполнения команды Ismod Создание файла зависимостей, который команда modprbbe использует для загрузки набора модулей Загрузка набора модулей, определенного командой depmod

 

 

Поскольку модули ядра добавляются в код, который в это время выполняется, они записываются в виде объектного кода (уже компилированного). Имя файла каждого модуля имеет расширение .о.

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

За взаимодействие с пользователем в Linux отвечают специальные программы. Существует два вида таких программ – оболочка shell для работы в текстовом режиме (интерфейс командной строки) и графический интерфейс пользователя (GUI), организующий взаимодействие с пользователем в графическом режиме. Причем любая программа в Linux может быть запущена как через оболочку (если запущен X-сервер), так и через графический интерфейс пользователя (GUI). Запуск программ из оболочки эквивалентен двойному щелчку мышкой по иконке программы в GUI. Некоторые программы не приспособлены для запуска через GUI, так что можно сказать, что существуют программы, предназначенные для исполнения только из командной строки (через оболочку).

Shell представляет собой некий аналог командному процессору command.com в MS DOS, или интерпретатору команд.

Собственно говоря, сама по себе, если ее рассматривать как отдельную программу, оболочка shell– вещь довольно таки бесполезная, потому что она не может ничего делать. Но она обеспечивает нахождение вызываемых программ, запуск их на выполнение и организацию ввода/вывода. Кроме того, оболочка обеспечивает работу с переменными окружения и выполняет некоторые преобразования (подстановки) аргументов. Но главное свойство оболочки, которое делает ее мощным инструментом пользователя – это то, что она включает в себя простой язык программирования. Как давно доказано в математике, любой алгоритм можно построить из пары-тройки основных операций и одного условного оператора. Вот реализацию условных операторов (а также операторов цикла) и берет на себя оболочка. Оболочка использует все остальные утилиты и программы (и те, которые имеются в составе операционной системы, и те, что устанавливаются отдельно) как базовые операции поддерживаемого ею языка программирования, обеспечивает передачу им аргументов, а также передачу результатов их работы другим программам или пользователю. В результате получается очень мощный язык программирования. И в этом основная сила и основная функция оболочки.

Специальные символы:

bash использует несколько символов из числа 256 символов набора ASCII в специальных целях, либо для обозначения некоторых операций, либо для преобразования выражений. В число таких символов входят символы

` ~ ! @ # $ % ^ & * ( ) _ - [ ] { } : ; ' " / \ > <

а также символ с кодом 0, символ возврата каретки (генерируемый клавишей [Enter] и пробел.

X Window – завершенный графический интерфейс для Unix-систем, в том числе для Linux. X Window – это окружение, которое обеспечивает множество дополнительных функций, как для пользователя, так и для разработчика программного обеспечения.

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


Рис. 1. Архитектура графической системы в Linux

 

Различие между местом, где выполняется приложение, и местом, где оно отображается, является характерной особенностью X Window, не реализованной в среде Windows и Macintosh. Благодаря этой возможности X Window, в сетевой среде обеспечивается сложное графическое отображение рабочего стола приложения, которое создается на прекрасно оснащенном, мощном, легком в управлении центральном сервере приложений.

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



В представлении цветного фона в X Widows нет сложных рамок окна и меню, нет и других элементов, которые создают завершенный пользовательский графический интерфейс. Эти элементы обеспечиваются вторым приложением – диспетчером окон. Рабочий стол X Window, реализуется с использованием диспетчера окон fvwm95.

Диспетчер окон взаимодействует с X сервером стандартным, заранее предопределенным образом, как обычно взаимодействует X сервер с X приложением. Это значит, что различные диспетчеры окон с различными деталями интерфейса могут взаимодействовать этим стандартным способом с X сервером. Разнообразные доступные X серверы, которые часто поддерживают графические адаптеры, мониторы и другое оборудование, также стандартным образом могут работать с приложениями.

X серверы.

Ядром X Window системы является X сервер. Он выполняет следующие задачи:

· поддержка различных типов видеоадаптеров и мониторов;

· управление разрешением, частотой регенерации и глубиной цвета изображения;

· базовое средство управления окнами: отображение и закрытие окон, отслеживание перемещений мыши и нажатий клавиш.

Существует множество X серверов, реализующих эти возможности. Для Linux наиболее часто используются XFree86.

Сервер XFree86.

Практически во всех некоммерческих версиях Linux X сервером является XFree86. Это некоммерческий X сервер с доступным исходным кодом, причем пользователи могут самостоятельно его изменять и распространять. XFree86 Web-сервер разработан для поддержки широкого спектра аппаратуры персональных компьютеров, работающих на платформе Intel x86, но современные версии этого сервера поддерживают и другие платформы, такие как Compaq Alpha, PowerPC, Spare и MIPS.

Особенностями XFree86-сервер является:

· унифицированная архитектура (Modular Architectural Design) Х-сервера.

· поддержка нескольких графических адаптеров.

· независимость от операционной системы.

· 3-мерный рендеринг.

· поддержка FreeType.

С унифицированным X сервером XFree86 версии 4 возможна поддержка различных типов графических адаптеров без реконфигурации. С динамическим загрузчиком XFree86 версии 4 больше не зависит от драйверных библиотек Linux (или любой другой операционной системы, базирующейся на Unix). С расширениями GLX сервер XFree86 теперь поддерживает трехмерный рендеринг на основе 3-D графического языка OpenGL фирмы Silicon Graphics. Поддержка FreeType позволяет использовать шрифты TrueType в XFree86.

Диспетчеры окон

Диспетчеры окон позволяют GUI выйти за рамки возможностей, обеспечиваемых X серверами. В частности, диспетчеры окон добавляют пользовательские средства управления окнами (например, для изменения размеров, передвижения, закрытия и минимизации окон) и механизмы для запуска приложений (меню рабочего стола, панели управления и панели инструментов).

Диспетчеры FVWM и fvwm95.

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

Рабочие столы

Рабочий стол – это больше, чем диспетчер окон. Рабочий стол должен обеспечивать полный интерфейс GUI. При использовании простого диспетчера окон нет гарантий "мирного сосуществования" методов отображения/управления приложения и соответствующих возможностей другой операционной системы (например, метод "перенести-и-оставить" (drag-and-drop) между приложениями или внедрение данных из одного приложения в другое).

Различные рабочие столы для Linux предоставляют стабильные, интегрированные GUI и платформу для разработчиков программного обеспечения. Это обеспечивает общность отображения и управления, а также механизмы интегрирования, например "перенести-и-оставить".

Два рабочих стола – К Desktop Environment и GNOME – свободно распространяются и позиционируются как конкуренты рабочего стола Linux, являющегося стандартом de facto.

К Desktop Environment.

KDE (К Desktop Environment) объединяет ряд приложений (диспетчер файлов, эмулятор терминала и утилита конфигурирования дисплея) с диспетчером окон, обеспечивая непротиворечивые механизмы отображения/управления для Х-приложений.

КDЕ по умолчанию используется как рабочий стол для ряда дистрибутивов Linux, включая Caldera, S.u.S.E. и Corel. Он представляет собой альтернативный вариант для большинства других дистрибутивов.

GNOME: сетевая объектная модель окружения GNU.

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

Подготовка к конфигурированию X Window.

Для настройки графического интерфейса необходимо учитывать особенности построения и работы видеосистемы компьютера.

Видеосистема компьютера состоит из видеоадаптера и монитора.

Изображение на экране монитора состоит из отдельных точек. Точки формируются электронным лучом и располагаются в виде строк. Монитор делает две независимых вещи: развертку луча и высвечивание отдельных точек, из которых строится изображение на экране. Управление монитором заключается в том, чтобы задать число точек в строке (разрешение по горизонтали), число строк на экране (разрешение по вертикали) и интенсивность каждого из трех основных цветов в каждой точке.

Функцию управления монитором осуществляет видеоадаптер. Видеоадаптер передает в монитор три сигнала: видео сигнал (RGB), строчную синхронизацию (HS), кадровую синхронизацию (VS). По сигналу горизонтальной (строчной) синхронизации происходит возврат луча с конца каждой строки к началу следующей, а сигнал вертикальной (кадровой) синхронизации определяет момент возврата луча из правого нижнего угла экрана в верхний левый. Частоты генерации этих двух сигналов (измеряемые числом импульсов в секунду) необходимо знать для правильной установки и настройки X сервера. Значения частот горизонтальной и вертикальной синхронизации должны быть указаны в документации к монитору. Частота вертикальной синхронизации (обозначим ее VSF) обычно указывается в герцах (Hz) и находится в пределах 50 - 180 Гц. Частота горизонтальной синхронизации (HSF) задается в килогерцах (KHz) и принимает значения в диапазоне от 31 до 135 КГц.

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

Есть еще одна важная частота – число точек, которые могут быть отображены на экране за одну секунду. Электронный луч перемещается по экрану с конечной скоростью (которая ограничена не скоростью перемещения самого луча, а параметрами микросхем видеоадаптера). В английской документации эта частота называется "the card's dot clock". Эта частота называется тактовой частотой развертки и обозначается как DCF (dot clock frequency).

Следующий существенный параметр – это частота обновления экрана (SRR - screen refresh rate). Чем выше эта частота, тем меньше устают глаза при работе с компьютером, потому что уменьшается мерцание экрана. Но задать очень большое значение частоты обновления экрана невозможно, потому что она не может быть больше, чем тактовая частота развертки (DCF), поделенная на произведение числа точек в строке и числа строк на экране. На самом деле частота обновления экрана еще меньше, потому что на перемещение электронного луча от конца строки в начало следующей и из левого нижнего угла экрана в правый верхний требуется некоторое время (то есть дополнительные такты работы тактового генератора видеоадаптера). Кроме того, для создания четких границ изображения на экране, электронный луч обычно перемещается на несколько точек левее и правее видимой части изображения, а также пробегает одну-две строки выше и ниже изображения (это темные полосы, окружающие изображение на экране). Поэтому фактически число необходимых для вывода изображения точек в строке (обозначается HFL - Horizontal Frame Length – размер фрейма по горизонтали) и число необходимых строк на экране (Vertical Frame Length -VFL) больше, чем размеры видимого изображения. Точнее

 

HFL = (число невидимых точек слева) + (число видимых точек в строке) + (число невидимых точек справа) + (число тактов, необходимых для перевода луча к началу новой строки).

 

Аналогичное соотношение действует для размера фрейма по вертикали - VFL и поэтому имеет место формула:

SRR = DCF / (HFL * VFL).


Именно эта частота и является частотой обновления экрана (SRR = VSF) и должна лежать в границах, заданных для частоты вертикальной синхронизации монитора. Таким образом, частота вертикальной синхронизации монитора и тактовая частота видеоадаптера накладывают ограничения на предельное разрешение изображения на экране.

Еще одно ограничение накладывается объемом памяти на плате видеоадаптера. Цвет каждой отдельной точки на экране формируется путем смешивания трех основных цветов: красного (R), зеленого(G) и голубого(B). Интенсивность каждого из этих трех цветов определяется уровнем сигнала в соответствующем луче (в цветном мониторе каждая точка высвечивается тремя электронными лучами, которые одновременно направлены в данную точку). Изображение для вывода на экран формируется в видеопамяти, которая физически расположена на плате видеоадаптера, но входит в общее адресное пространство оперативной памяти компьютера. Изображение хранится в памяти в цифровом виде, и преобразование его в аналоговый сигнал RGB является одной из основных задач видеоадаптера, для чего на плате видеоадаптера обычно ставится цифро-аналоговый преобразователь (ЦАП).

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

Формула, определяющая ограничения на разрешение экрана и количество воспроизводимых цветов, очень проста:

 

(Объем видеопамяти в байтах) >= (число видимых точек в строке) х (число видимых строк на экране) * (число байт на точку).

 

Например, если нужно выбрать разрешение экрана 1024 х 768 и иметь 16 миллионов цветов для каждой точки (4 байта на точку), то необходимо иметь 1024х768х4=3145728 байт памяти.

 

Прежде чем приступить к конфигурированию, необходимо собрать указанную информацию об оборудовании, чтобы при оптимизации X Window не повредить монитор. После конфигурирования программа создает конфигурационный файл, который в Linux записывается в каталог /etc/X11 под именем XR86Config.

Тестирование конфигурации.

Для тестирования конфигурации необходимо запустить X Windows.

Для запуска X Windows вводится следующая команда: $ startx

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

Для работы в X Window можно входить в систему с правами обычного либо корневого пользователя. Однако не следует без особой надобности пользоваться учетной записью корневого пользователя: избыток прав влечет за собой риск повреждения важных системных файлов.

Неудачный запуск X Window означает реальные трудности. Возможны три проявления неудачного запуска:

· на экран выводится сообщение об ошибке, переход в графический режим не происходит;

· экран переключается в графический режим, но остается совершенно пустым;

· экран переключается в графический режим и тут же возвращается в текстовый с командной строкой.

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

В двух других случаях (когда происходит переключение в графический режим, не более того) надо проверить конфигурацию запуска X Windows и диспетчера окон.

 

 

<== предыдущая лекция | следующая лекция ==>
Технологии программирования СОМ | Файловая структура.


Дата добавления: 2017-11-04; просмотров: 17; ЗАКАЗАТЬ НАПИСАНИЕ РАБОТЫ


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

При помощи поиска вы сможете найти нужную вам информацию, введите в поисковое поле ключевые слова и изучайте нужную вам информацию.

Поделитесь с друзьями:

Если вам понравился данный ресурс вы можете рассказать о нем друзьям. Сделать это можно через соц. кнопки выше.
helpiks.org - Хелпикс.Орг - 2014-2017 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.015 сек.