Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры_AVMiS_УРА_ТАВАРИЩИ! МЫ Добились этого!.doc
Скачиваний:
7
Добавлен:
25.09.2019
Размер:
3.51 Mб
Скачать
  1. Структура ядра ос Linux. Пространство пользователя. Основные компоненты.

На верхнем уровне находится пользовательское пространство (пространство приложений). Здесь исполняются приложения пользователя. Под пользовательским пространством располагается пространство ядра. Здесь функционирует ядро Linux.

Имеется также библиотека GNU C (glibc). Она предоставляет интерфейс системных вызовов, который обеспечивает связь с ядром и дает механизм для перехода от приложения, работающего в пространстве пользователя, к ядру. Это важно, поскольку ядро и пользовательское приложение располагаются в разных защищенных адресных пространствах. При этом, в то время как каждый процесс в пространстве пользователя имеет свое собственное виртуальное адресное пространство, ядро занимает одно общее адресное пространство. 

  1. Структура ядра ОС Linux. Пространство ядра. Основные компоненты.

  1. Что называют ядром операционной системы Linux?

  2. Определение понятия «системный вызов».

Систе́мный вы́зов — обращение прикладной программы к ядру операционной системы для выполнения какой-либо операции.

  1. Пример использования системного вызова.

Пример системного вызова Open, на си будет выглядеть

handle=open(‘file.txt”, O_RDWR).

На ассемблере:

mov eax, 5

mov ebx, filename

mov eax, 02

int 80h

  1. Назначение библиотеки Libc.

Системные вызовы могут выполняться напрямую либо через библиотеку glibc. Преимущество использования библиотеки:

  1. Библиотека выполняет роль защитной прослойки, защищая приложение от возможных ошибок связанных например с тем что в ядре изменился синтаксис системных вызовов. Библиотека предоставляет POSIX совместимый интерфейс

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

Программа выполняя библиотечную функцию находится в пользовательском режиме, библиотечные функции обращаются к системным вызовам. Например библиотечная функция printf() вызывает системный вызов write() которой вывод строку на стандартное устройство вывода. Системные вызовы выступает от имени библиотечных функций, но работают уже в привилегированном режиме. После завершения работы системного вызова, управление опять передаются библиотечным функциям, происходит обратный переход в пространство пользователя. Чтобы исполнить системный вызов процесс заполняет регистры микропроцессора, соответствующими значениями (в регистр eax помещается номер системного вызова, в остальные регистры ebx, ecx, edx, edi, esi, ebp помещаются до 6 параметров этого вызова) и выполняет инструкцию программного прерывания с номером int 80h.

  1. Способы взаимодействия прикладных программ с устройствами пэвм.