65821

Управление функциональностью ядра операционной системы

Лабораторная работа

Информатика, кибернетика и программирование

Основной частью модуля является процедура выдачи разрешения на доступ. Изначально файл полностью доступен всем пользователям, так как основное распределение доступа происходит позже. В процедуре определения возможности предоставления доступа...

Русский

2014-08-06

20.82 KB

2 чел.

ФГБОУ ВПО "Санкт-Петербургский государственный
политехнический университет"

Факультет технической кибернетики

—————————

Кафедра информационной безопасности компьютерных систем

ОТЧЕТ

по лабораторной работе №1

«Управление функциональностью ядра операционной системы»

по дисциплине «Операционные системы»

Студент гр. 2088/1

Никитин А. С.

Преподаватель

Степанова Т. В.

Санкт-Петербург — 2012

1. Формулировка задания

Цель работы — изучение ядра ОС UNIX и модульной архитектуры ядра, исследование расширения функциональности ядра ОС.

2. Использованные теоретические сведения

http://lxr.linux.no/+trees

3. Результаты работы

3.1. Выполнение индивидуального задания

1. Создать файл в /proc. Файл должен быть доступен на чтение. Чтение должен осуществлять только процесс с идентификатором UID менее 100.

Основной частью модуля является процедура выдачи разрешения на доступ. Изначально файл полностью доступен всем пользователям, так как основное распределение доступа происходит позже. В процедуре определения возможности предоставления доступа содержатся проверки на действие – чтение, и на EUID пользователя – он должен быть меньше 1000.

2. Тексты программ с подробными комментариями.

Тексты программ приложены к отчёту.

3.2. Ответы на контрольные вопросы

1. Что такое драйвер устройства?

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

2. Каковы функции утилиты modprobe?

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

3. Что содержат части top half и bottom half функции-обработчика прерывания?

Top half содержит минимальный необходимый код для обработки прерывания. Этот код должен обнаружить достоверность прерывания, считать необходимые данные, и передать их в очередь bottom half. Bottom half занимается непосредственно анализом прерываний и реагированием на них. Это сделано для того, чтобы отсутствовала вероятность пропуска новых прерываний и их обработка велась без задержек.

4. Каково назначение файловой системы /proc?

Изначально она использовалась для получения информации о процессах, но теперь используется для получения информации и о ядре. Также присутствует возможность добавления своей файловой системы в /proc.

5. С какой целью используются ioctl-управляющие коды?

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

4. Выводы

Модули ядра ОС UNIX позволяют расширять функциональность системы, причём назначение модулей может быть самым разнообразным. ОС предоставляет достаточно большой набор функций для использования в модулях, что упрощает их написание.


Приложение

Исходные тексты программ

#include <linux/kernel.h>

#include <linux/module.h>

#include <linux/proc_fs.h>

#include <asm/uaccess.h>

#include <asm/current.h>

#include <linux/security.h>

#include <linux/cred.h>

#define FILE    "euidread"

static char filebuffer[] = "Hello, this is \"euidread\" \"file\" content\n"; //Строка,
//
возвращаемая при чтении из файла

static struct proc_dir_entry *procfile;

static ssize_t file_read(struct file *filp, char *buffer, size_t length, loff_t *offset) {

   static int finished = 0; //Чтение файла

   if (finished) { //Если поднят флаг завершения, возвращаем ноль

       finished = 0;

       return 0;

   }

   finished = 1;

   if (copy_to_user(buffer, filebuffer, 41)) return -EFAULT; //Возвращается строка

   return 41;

}

int file_open(struct inode *inode, struct file *file) { //Открытие файла

   try_module_get(THIS_MODULE);

   return 0;

}

int file_close(struct inode *inode, struct file *file) { //Закрытие файла

   module_put(THIS_MODULE);

   return 0;

}

static struct file_operations file_ops = { //Операции над файлом

   .read = file_read,

   .open = file_open,

   .release = file_close

};

static int access_permission(struct inode *inode, int op) { //Определение прав доступа

   if ((((op & 07) == 04) && current_euid() < 1000)) return 0; //Если действие – чтение,

//и EUID меньше 1000, то доступ разрешается

   return -EACCES;

}

static struct inode_operations inode_ops = { //Операции над inode

   .permission = access_permission

};

int init_module() { //Инициализация модуля

   procfile = create_proc_entry(FILE, 0666, NULL); //Создание файла с полным доступом

   if (procfile == NULL) return -ENOMEM;

   procfile->proc_iops = &inode_ops; //Задание параметров

   procfile->proc_fops = &file_ops;

   procfile->mode = S_IFREG | S_IRUSR;

   procfile->uid = 0;

   procfile->gid = 0;

   procfile->size = 80;

   return 0;

}

void cleanup_module() { //Выгрузка модуля

   remove_proc_entry(FILE, NULL);

}


 

А также другие работы, которые могут Вас заинтересовать

84484. ОФСЕТНАЯ ЛИСТОВАЯ ПЕЧАТЬ БЕЗ ИСПОЛЬЗОВАНИЯ ИЗОПРОПИЛОВОГО СПИРТА 43.74 KB
  Уже более 30 лет успешно применяется технология офсетной печати без использования изопропилового спирта в США где эта технология зародилась и распространилась благодаря поддержке государства и высоких требований к экологической безопасности. Вслед за Соединенными Штатами от спирта стали отказываться типографии и в Европе. На данный момент печать без использования изопропилового спирта распространена и в Европе что наглядно видно на любой европейской выставке.
84485. Поняття про рефлекс. Будова рефлекторної дуги та її ланок 43.38 KB
  Рефлекторна дуга – шлях по якому передається інформація при здійсненні рефлексу. Тобто рефлекторна дуга – морфологічний субстрат рефлексу. Схема найпростішої елементарної рефлекторної дуги на прикладі шкірном’язового рефлексу має такий вигляд: Із схеми видно що рефлекторна дуга має такі відділи: 1. Нервовий центр – структури у межах ЦНС що беруть участь у здійсненні рефлексу.
84486. Рецептори, їх класифікація та збудження 45.25 KB
  Рецептори – спеціалізовані структури що забезпечують: а сприйняття інформації про дію подразника; б первинний аналіз цієї інформації сила якість час дії новизна подразника. За наявністю спеціалізованої сенсорної клітини: первинні – інформація про дію подразника сприймається безпосередньо нервовим закінченням; вторинні – інформації про дію подразника сприймається спеціалізованою сенсорною рецепторною клітиною а далі передається на нервове закінчення. За наявністю чи відсутністю допоміжних структур: вільні нервові закінчення –...
84487. Пропріорецептори, їх види. Будова та функції м’язових веретен 43.25 KB
  Пропріорецептори М’язів м’язові веретена Суглобових сумок Сухожилків тільця Гольджі Види рецепторів Адекватний подразник Деформація Розтягнення Розтягнення Ступінь та швидкість розтягнення м’язів Ступінь згинання розгинання в суглобі Ступінь та швидкість скорочення м’яза так як при скороченні сухожилки розтягуються Контролюють М’язові веретена – первинні механорецептори що мають складну структуру. Адекватним подразником ІФВ є розтягнення центральної частини – ядерної сумки. Таке розтягнення та збудження спіралевидного нервового...
84488. Механізми і закономірності передачізбудження в центральних синапсах 44.76 KB
  Аксосоматичні Аксоаксональні Аксодендритні Дендродендритичні Збудливі Гальмівні Хімічні Електричні Механізм передачі збудження через центральний аксосоматичний хімічний синапс полягає в наступному: ПД поширюється по мембрані аксона далі по мембрані пресинаптичній підвищення проникності пресинаптичної мембрани для іонів С2 вхід їх в нервове закінчення за градієнтом концентрації вихід медіатора в синаптичну щілину дифузія медіатора до постсинаптичної мембрани взаємодія з мембранними циторецепторами збільшення...
84489. Види центрального гальмування. Механізми розвитку пре- та постсинаптичного гальмування 43.78 KB
  Механізми розвитку пре та постсинаптичного гальмування. Гальмування – активний фізіологічний процес. Гальмування в ЦНС Постсинаптичне Пресинаптичне За локалізацією За електрофізіологічною природою Гіперполяризаційне Деполяризаційне За будовою нейронних ланцюгів Зворотнє Пряме Постсинаптичне гіперполяризаційне гальмування.
84490. Сумація збудження і гальмування нейронами ЦНС 48.02 KB
  Взаємодія збудження та гальмування на тілі кожного окремого нейрона відбувається шляхом сумації просторової та часової. В залежності від переважання сумації ЗПСП чи ГПСП нейрон може перебувати в трьох станах: збудження – характеризується генерацією ПД на мембрані аксонного горбика в результаті переважання сумації ЗПСП деполяризація мембрани дійшла до критичного рівня: чим інтенсивніше протікає сумація ЗПСП тим швидше деполяризація доходить до Екр тим частіше ПД в РРН тобто тим сильніше збудження нейрона. Таким чином за допомогою...
84491. Рухові рефлекси спинного мозку, їх рефлекторні дуги, фізіологічне значення 45.37 KB
  У складі задніх рогів спинного мозку переважають вставні нейрони. Біла речовина спинного мозку представлена волокнами висхідних та низхідних шляхів. Контроль на рівні спинного мозку Рецептори шкіри Вісцерорецептори ангіорецептори.
84492. Провідникова функція спинного мозку. Залежність спінальних рефлексів від діяльності центрів головного мозку. Спінальний шок 43.05 KB
  Біла речовина спинного мозку передні бокові та задні канатики складається з нервових волокон які формують провідні шляхи. Основними висхідними шляхами є: 1. Шлях Голя – розташований в медіальній частині заднього канатика. Шлях Бурдаха – розташований в латеральній частині заднього канатика.