Лингвистика
Что такое ядpo
OC?
Пора тебе, Лёха, жпт ставить.Задолбал дурацкими вопросами. Оно как раз для таких и сделано. Для тех, кому лень в поиске ковыряться и "чтоб слоники побегали". Как там беременность проходит, без осложнений?
Компонент ОС, наиболее приближенный к "железу".
Выполняет, в частности:
Ядро выполняется в наиболее защищённом режиме процессора (нулевое кольцо, а обычно их 4, пользовательские программы выполняются в третьем).
В ОС принято отводить ядру верхнюю половину или четверть адресного пространства и делать эту часть общей для всех процессов, но доступной только в нулевом кольце.
Это, естественно, не касается таких систем, как MS-DOS, где вся память видна всем, а уровни защиты не используются.
Код более высокого уровня абстракции выделяется в подсистемы ОС, которые выполняются не на уровне ядра. Например, в Windows NT 3.x даже UI был выделен в подсистему, но из-за адово низкой производительности его пришлось вернуть в ядро в следующих версиях. Вызов подсистемы - это обычный межпроцессный вызов с переключением контекста процесса, а вызов ядра - это просто поднятие уровня привилегий без переключения контекста, что во много раз дешевле.
Подсистемы могут заниматься аутентификацией пользователей, ведением журнала событий, установкой обновлений и др. задачами, не требующими быстродействия или прямого доступа к железу.
Разработчикам доступно написание драйверов уровня ядра (обычно - на C с ассемблерными вставками), при этом такому коду недоступны многие операции, которыми пользуются обычные программы: например, открыть файл и дописать туда строчку - это целая история.
Также часто в ОС выделяется микроядро, выполняющее совсем базовый набор наиболее критичных операций. Его обычно отлаживают или верифицируют раз и навсегда, и оно так живёт десятилетиями, доработки ядра его не затрагивают, и загрузка прикладных драйверов в него невозможна.
Выполняет, в частности:
- Обработку аппаратных прерываний.
- Создание, завершение процессов и потоков и переключение их контекста.
- Запросы слоёв более высокого уровня абстракции на взаимодействие с "железом": накопители, сеть, клавиатура, мышь, видеокарта и т.д.
- Запросы слоёв более высокого уровня на использование примитивов синхронизации ядра.
Ядро выполняется в наиболее защищённом режиме процессора (нулевое кольцо, а обычно их 4, пользовательские программы выполняются в третьем).
В ОС принято отводить ядру верхнюю половину или четверть адресного пространства и делать эту часть общей для всех процессов, но доступной только в нулевом кольце.
Это, естественно, не касается таких систем, как MS-DOS, где вся память видна всем, а уровни защиты не используются.
Код более высокого уровня абстракции выделяется в подсистемы ОС, которые выполняются не на уровне ядра. Например, в Windows NT 3.x даже UI был выделен в подсистему, но из-за адово низкой производительности его пришлось вернуть в ядро в следующих версиях. Вызов подсистемы - это обычный межпроцессный вызов с переключением контекста процесса, а вызов ядра - это просто поднятие уровня привилегий без переключения контекста, что во много раз дешевле.
Подсистемы могут заниматься аутентификацией пользователей, ведением журнала событий, установкой обновлений и др. задачами, не требующими быстродействия или прямого доступа к железу.
Разработчикам доступно написание драйверов уровня ядра (обычно - на C с ассемблерными вставками), при этом такому коду недоступны многие операции, которыми пользуются обычные программы: например, открыть файл и дописать туда строчку - это целая история.
Также часто в ОС выделяется микроядро, выполняющее совсем базовый набор наиболее критичных операций. Его обычно отлаживают или верифицируют раз и навсегда, и оно так живёт десятилетиями, доработки ядра его не затрагивают, и загрузка прикладных драйверов в него невозможна.
То что исполняет код файлов .exe , отправляет код на ядра процессора. У которых арифметико-логическое устройство делает операции с двоичным кодом, выполняя программу.