Загрузка...
Поддержи Openmeetings

четверг, 6 августа 2015 г.

Программное обеспечение ядра функций безопасности Linux

Ядро  — это основная часть операционной системы. Оно взаимодействует непосредственно с аппаратными средствами, реализует совместное использование ресурсов, предоставляет общие сервисы для приложений, и предотвращает прямой доступ приложений к аппаратно-зависимым функциям. К числу сервисов, предоставляемых ядром, относятся:

1. У правление выполнением процессов, включая операции их создания, завершения или приостановки и межпроцессоного обмена данными. Они включают:
  • Равнозначное планирование процессов для выполнения на ЦП.
  • Разделение процессов в ЦП с использованием режима разделения по времени.
  • Выполнение процесса в ЦП.
  • Приостановка ядра по истечениии отведенного ему кванта времени.
  • Выделение времени ядра для выполнения другого процесса.
  • Перепланирование времени ядра для выполнения приостановленного процесса.
  • Управление метаданными, связанными с безопасностью процесса, такими как идентификаторы UID, GID, метки SELinux, идентификаторы функциональных возможностей.
2. Выделение оперативной памяти для исполняемого процесса. Данная операция включает в себя:
  • Разрешение, выдаваемое ядром для процессов, на совместное использование части их адресного пространства при определенных условиях; однако, при этом ядро защает собственное адресное пространство процесса от внешнего вмешательства.
  • Если система испытывает нехватку свободной памяти, ядро освобождает память путем записи процесса временно в память второго уровня или раздел подкачки.
  • Согласованное взаимодействие с аппаратными средствами машины, чтобы установить отображение виртуальных адресов на физические адреса, которое устанавливает соответствие между адресами, сгенерированными компилятором, и физическими адресами.
3. Обслуживание жизненного цикла виртуальных машин, которое включает:

  • Установление ограничений для ресурсов, сконфигурированных приложением эмуляции для данной виртуальной машины.
  • Запуск программного кода виртуальной машины на исполнение.
  • Обработка завершения работы виртуальных машин или путем завершения инструкции или задержкой завершения инструкции для эмуляции пространства пользователя.
4. Обслуживание файловой системы. Это включает в себя:
  • Выделение вторичной памяти для эффективного хранения и извлечения пользовательских данных.
  • Выделение внешней памяти для пользовательских файлов.
  • Утилизация неиспользованного пространства для хранения данных.
  • Организация структуры файловой системы (использование понятных принципов структурирования).
  • Защита пользовательских файлов от несанкционированного доступа.
  • Организация контролируемого доступа процессов к периферийным устройствам, таким как терминалы, лентопротяжные устройства, дисководы и сетевые устройства.
  • Организация взаимного доступа к данным для субъектов и объектов, предоставление управляемого доступа, основанного на политике DAC и любой другой политике, реализуемой загруженной LSM.
Ядро Linux относится к типу ядер ОС, реализующих планирование с вытеснением задач. В ядрах, не обладающих такой возможностью, выполнение кода ядра продолжается до завершения, т.е. планировщик не способен к перепланированию задачи в то время, когда она находится в ядре. Кроме того, планирование исполнения кода ядра осуществляется совместно, без вытесняющего планирования, и исполнение этого кода продолжается до момента завершения и возврата к пространству пользователя, либо до явной блокировки. В вытесняющих ядрах возможно выгрузить задачу в любой точке, пока ядро находится в состоянии, в котором безопасно выполнять перепланирование.


Комментариев нет :

Отправить комментарий