русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Тема 2: Структура ядра ОС Linux.


Дата добавления: 2013-12-23; просмотров: 2121; Нарушение авторских прав


Интерфейс пользователя.

Помимо операционной системы и библиотеки системных вызовов, все версии Linux предоставляют большое количество стандартных программ. К этим программа относятся: Командный процессор (оболочка), компиляторы, редакторы, программы обработки текста и утилиты для работы с файлами. При запуске оболочки она инициализируется, а затем выводит на экран символ приглашения к вводу. После того, как пользователь введет командную строку, оболочка извлекает из нее первое слово и ищет программу с таким именем. Если программу удается найти, оболочка запускает ее. При этом работа оболочки приостанавливается на время работы запущенной программы. По завершении программы, оболочка пытается прочитать следующую команду. Оболочка представляет собой обычную пользовательскую программу. Пример: cp src dest. Данная команда запускает программу cp с двумя аргументами src и dest. Эта программа интерпретирует первый аргумент как имя существующего файла, она копирует этот файл и называет эту копию dest.

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

Графические интерфейсы пользователя в Linux поддерживает оконная система X Windowing System (X Window, X 11, X). Она представляет обмен и протоколы отображения для управления окнами на растровых дисплеях unix-подобных систем. X-сервер является главным компонентом, который управляет такими устройствами, как монитор, мышь, клавиатура и т.д. и отвечает за перенаправление ввода от клиентских программ к операционной системе.



 

Системный интерфейс
Компонент Ввода-вывода Компонент управления памятью Компонент управления процессами
Виртуальная файловая система Виртуальная память Обработка сигналов
Файловая система Сокеты Терминалы
Обобщенный уровень блочных устройств Сетевые протоколы Дисциплины линий связи Механизм замещения страниц Создание и завершение процессов и потоков
Диспетчер блочных устройств Драйверы сетевых устройств Драйверы символьных устройств Кэш страниц Планирование процессов
Диспетчер прерываний
Аппаратура

 

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

Ядро Linux можно разделить на 3 части:

1) Компонент ввода-вывода.

2) Компонент управления памятью

3) Компонент управления процессами

Компонент ввода-вывода:

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

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

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

Компонент управления памятью:

В задачи управления памятью входят:

- Обслуживание отображения виртуальной памяти на физическую

- Поддержка кэша страниц, к которым недавно выполнялось обращение

- Поставка в память новых страниц с кодом и данными

Компонент управления процессами:

Основная задача этого компонента – создание и завершение процесса

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

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

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

 



<== предыдущая лекция | следующая лекция ==>
Тема 1. Задачи и интерфейсы Unix-подобных систем. | Тема3,4,5: процессы и потоки ОС Linux


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.005 сек.