КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Ядро в Linux
Ядро операционной системы UNIX Архитектура операционной системы UNIX
Важную часть системных программ составляют демоны. Демон - это процесс, выполняющий определенную функцию в системе, который запускается при старте системы и не связан ни с одним пользовательским терминалом. Демоны предоставляют пользователям определенные сервисы, примерами которых могут служить системный журнал, веб-сервер и т. п. Аналогом демонов в операционной системе Windows NT и более поздних версиях являются системные службы.
Операционная система UNIX обладает классическим монолитным ядром, в котором можно выделить следующие основные части: Файловая подсистема: Доступ к структурам ядра осуществляется через файловый интерфейс. Управление процессами: Сюда входит управление параллельным выполнением процессов (планирование и диспетчеризация), виртуальной памятью процесса и взаимодействием между процессами (сигналы, очереди сообщений и т. п.). Драйверы устройств: Драйверы устройств делятся на символьные и блочные по типу внешнего устройства. Для каждого из устройств определен набор возможных операций (открытие, чтение и т. д.). Блочные устройства кэшируются с помощью специального внутреннего механизма управления буферами. Подробнее об этом сказано в разделе «Устройства и драйверы».
Благодаря тому, что в UNIX аппаратно-независимая часть отделена явно, операционные системы этого семейства могут быть с минимальными затратами перенесены на новые аппаратные платформы. Видно, что ядро операционной системы UNIX является классическим для многозадачной многопользовательской операционной системы.
Команда разработчиков - более или менее неформальное объединение. И теоретически каждый желающий имеет шанс принять участие в разработке ядра путем посылки своих дополнений (patch). Хотя практически все эти патчи проходят многоступенчатый отбор, прежде чем попасть к самому Линусу, который и принимает окончательное решение - включать их в официальную версию ядра, или нет. Бытует мнение, что ядро Linux - одно-единственное. Это правда, но не вся правда. Действительно, ядро Линуса - каноническое. Однако практически, кроме текущей его ветки (в настоящее время - 2.6), в которой периодически выходят новые версии (2.6.X) в каждый момент времени развивается и дополняется минимум одна предшествующая ветка (на данный момент 2.4). А одна из еще более старых веток (ныне - 2.2) поддерживается на уровне исправления ошибок. Ошибки, разумеется, имеют место быть и в текущей ветке, где они активно выявляются и исправляются, что образует отдельную "корректирующую" ветку (2.6.xx.y). Далее, существуют т.н. ядра майнтайнеров. Разумеется, в основе всех их - каноническое ядро, но - с патчами, ответственными за реализацию дополнительных функций, не входящих в официальное ядро. Собственно, ядра майнтайнеров и распространяются исключительно в виде патчей к основному дереву исходников ядра. Со временем большинство патчей майнтайнеров включается в состав официального ядра. Основные майнтайнерские ветки перманентно существуют параллельно канонической ветке Линуса. Существуют проекты дополнения ядра узкоспециальными функциями, такими, как обеспечение повышенной безопасности, поддержки виртуализации и паравиртуализации, и другие. Разрабатываемые в их рамках патчи обычно не включаются в основное дерево, и они сосуществуют с ним в качестве отдельных веток. Кроме этого, существуют еще и ядра дистрибьюторов - в комплект всех распространенных дистрибутивов, таких, как RHEL, Suse, Mandriva, Ubuntu и так далее, входят заточенные под них ядра собственной выделки (обычно в нескольких вариантах), дополняющие или подменяющие каноническое ядро. Они основаны на патчах майнтайнеров или специализированных проектов, но включают и собственные функции, обеспечивающие оптимальную работу "своего" дистрибутива. Таким образом, перед пользователем открывается широкий выбор. С одной стороны, он может воспользоваться ядром, идущим в комплекте с его дистрибутивом по умолчанию. С другой, если дистрибутив предлагает на выбор несколько вариантов сборки ядра, пользователь может выбрать наиболее для него подходящее. С третьей же стороны, никто не запрещает ему, взяв за основу каноническое ядро, собрать собственную конфигурацию. В том числе - и дополнив его необходимыми (или желательными) функциями из патчей майнтайнеров или специализированных проектов.
-Обработка прерываний в ядре Ядро обеспечивает обработку прерываний, если исключения и прерывания генерируются аппаратурой и программным обеспечением. Таким образом, в Windows 2000 введены средства обработки исключений (exceptions) – более высокоуровневый механизм обработки ошибок, чем сигналы в UNIX. Исключения, которые не могут быть обработаны программно, обрабатываются диспетчером исключений ядра ОС. Диспетчер прерываний в ядре обрабатывает прерывание либо путем вызова подпрограммы, обслуживающей прерывание (например, драйвера устройства), либо путем вызова внутренней подпрограммы ядра. Уровни запросов на прерывания в Windows 2000 приведены в таблица 1.
Ядро использует блокировщики (spin locks, буквально – вертящиеся замки), находящиеся в основной памяти, для взаимного исключения процессов.
Дата добавления: 2014-01-05; Просмотров: 324; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |