- Способы включения драйвера устройства в ОС
- Встраивание драйверов в ядро
- Читайте также
- 4.1. Встраивание изображений
- Встраивание объектов
- Встраивание аудио
- Встраивание видео
- Встраивание Flash-графики
- 7.1. Встраивание CSS в HTML
- Моя домашняя страница
- Встраивание сценариев в рамках элемента SCRIPT
- Linux (ядро)
- 1.4. Ядро
- 1.7 Иерархия драйверов систем хранения и типы драйверов
- Семантическое ядро
- 8.3.2. Расширение и встраивание языков
- 8.3.2. Расширение и встраивание языков
- Встраивание
Способы включения драйвера устройства в ОС
В UNIX возможны два способа включения драйвера в состав ядра ОС.
1) Полное включение драйвера в состав ядра на стадии генерации системы (т.е. драйвер статически объявляется частью ядра системы);
2) Использование минимального количества статических объявлений на стадии генерации ядра (фактически, обеспечиваются лишь необходимые элементы статических таблиц). В любой момент работы системы такой драйвер может быть динамически загружен в ядро системы. После появления (статического или динамического) в ядре UNIX драйверы всех разновидностей функционируют единообразно.
15. Традиционно, Unix разделяет все устройства на три основных типа: символьные, блочные и сетевые устройства.
Символьные устройства — это устройства, поставляющие данные потоком байт. Драйвер символьного устройства отвечает за реализацию поддержки такого поведения. Он реализует, по меньшей мере, четыре системных вызова: open , close , write и read . К символьным устройствам можно обращаться посредством элементов файловой системы, таких как / dev / tty 1 или / dev / lp . Символьные устройства — это лишь каналы передачи данных, доступ к которым осуществляется в заданном порядке. Тем не менее, существуют символьные устройства, которые допускают произвольный доступ к данным в потоке, типичным примером могут служить устройства захвата изображения, где приложения могут обращаться к изображению целиком, используя mmap или lseek .
Блочные устройства — это устройства, поставляющие данные порциями байт – блоками (в большинстве Unix-систем размер одного блока равен 1 килобайту или другому числу, являющемуся степенью числа 2). Различие между блочными и символьными устройствами сводится к внутреннему представлению данных в ядре. Драйвер блочного устройства более сложный. Он реализует точно такой же интерфейс с ядром, что и драйвер символьного устройства, но дополнительно реализуется еще и блочно-ориентированный интерфейс, который «невидим» для пользователя или приложения, которые открывают доступ к блочному устройству посредством псевдофайловой системы / dev . Тем не менее, блочный интерфейс совершенно необходим, чтобы можно было выполнить mount файловой системы. Самым известным примером блочного устройства может служить жёсткий диск.
Сетевые интерфейсы – позволяют выполнять любой сетевой обмен, т.е. это устройство, которое способно обмениваться данными с другими узлами сети. Сетевой интерфейс отвечает за передачу и получение пакетов данных, которыми управляет сетевая подсистема ядра, ничего не зная о том, к каким соединениям эти пакеты принадлежат. Не смотря на то, что соединения по протоколам Telnet и FTP используют один и тот же сетевой интерфейс, само устройство не различает эти соединения, оно «видит» только пакеты данных.
16. К стандартным программам Linux относятся те приложения и пакеты, которые либо уже скомпонованы с ядром дистрибутива, либо могут быть доустановлены позднее. Охватить все возможные пакеты невозможно, рассмотрим лишь самые распространенные. Совместимость с другими ОС
Разделение диска с другими ОС. Linux использует стандартную схему разделов диска и может разделять жесткий диск с другими системами, в т.ч. с DOS. Имеется загрузчик, который позволяет выборочно загружать требуемую операционную систему с диска. В Linux работает система dosemu — эмулятор DOS. Эта программа позволяет выполнять в Linux систему DOS, в которой обычным образом работают прикладные программы DOS. Система WINE позволяет запускать в X Windows прикладные программы MS Windows. При этом система MS Windows не используется и ее наличие не требуется.
Поддержка файловых системам других ОС Из Linux обычным образом можно работать с разделами жестких дисков и дискетами, содержащими файловые системы других операционных систем
18. Команда pwd– показывает имя текущего каталога. Если Вы потерялись и не можете определить, в каком каталоге находитесь используйте данную команду.
Команда mkdir — создает каталог.
Команда mv– используется для перемещения или переименования файлов
Команда cp– необходима для создания копии файла или каталога
Команда wc – производит подсчет строк, слов и символов в указанном файле.
Команда find – осуществляет поиск необходимого файла. Синтаксис команды:
Команда cat — отображает содержимое файла или файлов.
Команда more – по назначению аналогична команде cat,толькоотображает содержимое файла постранично.
Команда rm – позволяет удалять файлы.
Текстовый редактор потребуется пользователю Linux в первую очередь для того, чтобы изменить настройки системы или своего окружения, редактировать конфигурационные файлы, которые всегда представлены в текстовом формате.
19.Не стоит путать текстовые редакторы и текстовые процессоры. Текстовые процессоры (например, OpenOffice Writer или Microsoft Word) предназначены для создания документов, в которых, помимо собственно текста, содержится и различная метаинформация(информация об оформлении): размещение текста на странице, шрифт и т.п. Поскольку в текстовом формате не предусмотрено средств для сохранения информации об оформлении (там есть только символы и строки), текстовые процессоры используют собственные форматы для хранения данных.
20. Shell-Эта программа называется интерпретатор командной строки или командная оболочка. Задача — Обработка команд, вводимых пользователем, превращением их в последовательность системных и библиотечных вызовов. Самый простой из них, появившийся в ранних версиях UNIX, назывался sh – Bourne Shell – по имени автора, Стивена Борна (Stephen Bourne). Со временем его везде, где только можно заменили на более мощный, bash – Bourne Again Shell. Bash превосходит sh во всем, особенно в возможностях редактирования командной строки. Помимо sh и bash в системе может быть установлен zsh – The Z Shell,
Ввод и вывод
Любая программа — это автомат, предназначенный для обработки данных: получая на входе одну информацию, они в результате работы выдают другую. Хотя входящая и/или выходящая информация может быть и нулевой, т. е. попросту отсутствовать. Те данные, которые передаются программе для обработки — это ее ввод, то, что она выдает в результате работы — вывод.Перенаправление.Теперь, предположим, что Вы хотите послать результат сортировки в файл, чтобы сохранить список. shell дает возможность перенаправлять стандартный выход в файл, используя символ « >». Перенаправление с добавлением.Если файл уже существует, то перенаправление информации в него с помощью символа « > » окажется смертельным. Но, если вместо символа « > » использовать символ перенаправления « >> », выходной поток будет добавлен к содержимому указанного файла в конец, а не записан на место уже хранящейся в нем информации.Конвейер — это свойство shell, которое позволяет связать последовательность команд в конвейер, где stdout первой команды посылается прямо на stdin второй команды и так далее. Для группировки команд shell использует фигурные « <> » и круглые « () » скобки.
22. Менеджеры файлов. Основное назначение этой программы — интерпретация команд (выполнение функций shell) и работа в качестве файлового менеджера.Midnight Commander, Norton Commander, Konqueror
23.В Unix-системах функции архивирования, т.е. помещения содержимого нескольких файлов в один (с сохранением информации о каждом файле), и упаковки, т.е. сжатия файла, по историческим причинам реализуются отдельными программами. Для упаковки используются compress, gzip, bzip2, а для архивации – tar.
У каждого архиватора и упаковщика есть свое стандартное расширение для имени файла.
24.X Window System (сокращенно X) – графическая оболочка . X является основой графического интерфейса Linux, на которой базируются все графические оболочки X не реализует пользовательский интерфейс, а только оконную систему, т.е. средства, с помощью которых может быть реализован графический интерфейс. X Window работает на Х-терминале. Х-терминал представляет собой компьютер, на котором работают Х-программы и который взаимодействует с программами, работающими на удаленном компьютере. Программа, работающая на Х-терминале, собирающая ввод с клавиатуры и мыши и принимающая команды от удаленного компьютера, называется Х-сервером.Процесс «общения» между Х-сервером и клиентом осуществляется с помощью специального сетевого протокола – так называемого X-протокола.
25. Оконный менеджер (или window manager – менеджер экрана) – это программа, которая, прежде всего, заботится о том, как будут выглядеть ваши окна и определяет, как окна можно будет перемещать, и какие операции над ними можно будет проводить. Однако современным программам, которые выполняют функции менеджера экрана в системе, приходится также заниматься фоновой картинкой, подвешивать различные иконки на десктоп и так далее.IceWM AfterStep
26. Окружение рабочего стола или среда рабочего стола возлагает на свои плечи заботу обо всем, что касается комфортной работы пользователя в графической оболочке операционной системы. Как и большинство оконных менеджеров, все среды рабочего стола имеют средства для переключения между виртуальными экранами. GNOME KDE.
Не нашли, что искали? Воспользуйтесь поиском:
Источник
Встраивание драйверов в ядро
Встраивание драйверов в ядро
Драйвер устройства является частью кода ядра операционной системы и обеспечивает взаимодействие других подсистем UNIX с физическими или псевдоустройствами. Существует два основных метода встраивания кода и данных драйвера в ядро операционной системы: перекомпиляция ядра, позволяющая статически поместить драйвер, и динамическая загрузка драйвера в ядро в процессе работы системы.
Традиционно для встраивания драйвера в ядро UNIX требуется перекомпиляция ядра и перезапуск системы. Принципиально эта процедура не отличается от компиляции обычной программы, все компоненты ядра являются объектными модулями и редактор связей объединяет их с объектным модулем драйвера для получения исполняемого файла. В этом случае драйвер встраивается в ядро статически, т. е. независимо от фактического наличия устройства и ряда других причин, код и данные драйвера будут присутствовать в ядре UNIX до следующей перекомпиляции.
Однако тенденция развития современных версий операционной системы UNIX заключается в предоставлении возможности динамического расширения функциональности ядра. Это, в частности, относится к файловой системе, драйверам устройств и сетевым протоколам (точнее, драйверам подсистемы STREAMS). Возможность работы с новыми периферийными устройствами без необходимости перекомпиляции ядра обеспечивается загружаемыми драйверами. Вместо того чтобы встраивать модуль драйвера, основываясь на статических таблицах и интерфейсах, ядро содержит набор функций, позволяющих загрузить необходимые драйверы и, соответственно, выгрузить их, когда необходимость работы с данным устройством отпадает. При этом структуры данных для доступа к драйверам устройств также являются динамическими.
Динамическая установка драйвера в ядро операционной системы требует выполнения следующих операций:
? Размещение и динамическое связывание символов драйвера. Эта операция аналогична загрузке динамических библиотек, и выполняется специальным загрузчиком.
? Инициализация драйвера и устройства.
? Добавление точек входа драйвера в соответствующий коммутатор устройств.
? Установка обработчика прерываний драйвера.
Естественно, код динамически загружаемых драйверов сложнее, и содержит, помимо стандартных точек входа, ряд функций, отвечающих за загрузку и выгрузку драйвера, а также ряд дополнительных структур. Пример дополнительных функций и структур данных, которые должны быть определены в динамически загружаемом драйвере операционной системы Solaris 2.5, приведен в табл. 5.2.
Таблица 5.2. Дополнительные функции и структуры данных для загружаемых драйверов
_init() Функция инициализации и установки, вызываемая при загрузке драйвера _fini() Функция, вызываемая перед выгрузкой драйвера, удаляющая его из системы _infо() Функция, возвращающая информацию о драйвере по запросу ядра struct modlinkage Структура, используемая функциями _init(), _fini() и _info() при загрузке, выгрузке и получении информации о драйвере struct modldrv Структура, экспортируемая ядру при загрузке драйвера, в частности, содержит адреса точек входа в драйвер
Помимо этого Solaris 2.5 предоставляет ряд функций ядра для работы с динамически загружаемыми драйверами: mod_install(9F), mod_remove(9F) и mod_info(9F).
Данный текст является ознакомительным фрагментом.
Продолжение на ЛитРес
Читайте также
4.1. Встраивание изображений
4.1. Встраивание изображений Начнем с добавления изображения, потому что это самый простой для добавления и самый распространенный мультимедийный элемент, встречающийся в Интернете. У изображений много плюсов: статичность, небольшие размеры файлов (относительно других
Встраивание объектов
Встраивание объектов Итак, есть способ загрузить наш мультимедиа-файл на страницу сразу, при этом надо учитывать, с помощью какой программы будет воспроизводиться файл, потому что загружать динамический объект нужно вместе с проигрывателем. Для обращения к этой
Встраивание аудио
Встраивание аудио Для начала возьмем самую распространенную задачу – проигрывание фонового звука. Чтобы разобраться с ней, нужно немного отвлечься от элемента OBJECT, потому что есть способ встроить фоновый звук и без него. Создатели языка HTML предусмотрели для этого
Встраивание видео
Встраивание видео Сейчас встраивать видео на сайт можно без опасений – нынешних скоростей доступа в Интернет достаточно, чтобы у пользователей не было проблем с просмотром и скачиванием видео. Тем более что сейчас перемещение видеоархивов в сеть становится весьма
Встраивание Flash-графики
Встраивание Flash-графики Необходимость Flash-графики не всегда очевидна, однако красиво нарисованная заставка может оживить вашу страницу. Не стоит ни пренебрегать Flash-графикой, ни переоценивать ее действие. Переизбыток подобного содержимого может замедлить загрузку
7.1. Встраивание CSS в HTML
7.1. Встраивание CSS в HTML Начнем разбирать таблицы стилей с небольшого HTML-документа (листинг 7.1).Листинг 7.1. Простой HTML-документ Моя домашняя страница
Моя домашняя страница
На этой странице вы найдете информацию обо мне
Встраивание сценариев в рамках элемента SCRIPT
Встраивание сценариев в рамках элемента SCRIPT Кроме возможности обработки событий, для внедрения сценариев в веб-страницы в языке разметки HTML есть специальный элемент SCRIPT. Браузер, встретив тег в процессе разбора кода, интерпретирует текст, последующий до
Linux (ядро)
Linux (ядро) Официальная ссылкаLinux (2.4.19): ftp://ftp.kernel.org/pub/linux/kernel/Содержимое LinuxПоследняя проверка: версия 2.4.18.Файлы поддержкиЯдро Linux и и его заголовочные файлыОписанияЯдро LinuxЯдро – основа любой системы Linux. Когда компьютер включается и загружает Linux, первое, что загружается –
1.4. Ядро
1.4. Ядро Ядро — это сердце ОС, в котором реализовано управление физическими и программными ресурсами компьютера. Помимо этого оно позволяет получить доступ к различному железу. Например, ранние версии ядра обеспечивали работу только двух USB-устройств: клавиатура и мышь.
1.7 Иерархия драйверов систем хранения и типы драйверов
1.7 Иерархия драйверов систем хранения и типы драйверов Как описывалось в предыдущем разделе, Windows NT основана на архитектуре, в которой драйверы формируют многоуровневую иерархию. Преимущество такой архитектуры состоит в расширяемости архитектуры и возможности
Семантическое ядро
Семантическое ядро Анализ семантического ядра на полноту охвата. Очень важно, чтобы семантическое ядро охватывало максимально возможное количество проблем пользователей и запросов, формирующих эти проблемы. Нужно выяснить:? охватывает ли семантическое ядро весь
8.3.2. Расширение и встраивание языков
8.3.2. Расширение и встраивание языков Один из фундаментально важных вопросов заключается в том, возможно ли реализовать мини-язык путем расширения или встраивания существующего языка сценариев. Нередко такой подход является правильным путем к императивному мини-языку,
8.3.2. Расширение и встраивание языков
8.3.2. Расширение и встраивание языков Один из фундаментально важных вопросов заключается в том, возможно ли реализовать мини-язык путем расширения или встраивания существующего языка сценариев. Нередко такой подход является правильным путем к императивному мини-языку,
Встраивание
Встраивание В некоторых случаях более удобно и эффективно выполнять подстановку тела функции вместо ее вызова. Непосредственная подстановка тела функции позволит сэкономить время процессора на вызове функции. В языке Си этого можно достичь при помощи директивы
Источник