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);

}


 

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

25226. Субстанціальстська інтерпретація природи людини 21.5 KB
  Спіноза – визначав протяжність і мислення атрибутами єдиної С. найважливішою логік категорією апріорною формою мислення яка здійснює синтез явищ даних у досвіді. як істотний ступінь у розвитку ідеї основа всякого справжнього розвитку начало наук мислення що повинне виявляти диференціацію єдиного у багатоманітне.
25227. Поняття волі у філософії Шопенгауера та Нацше 23 KB
  Воля є центром мотивації свідомості внутрішньою сутністю людини. Саме воля спонукає нас до дії і весь світ у рух. Воля не має основи не підкоряється закону достатньої підстави а існує сама собою і для себе. Воля проявляється як об’єктивна як природа включаючи і людське тіло так і суб’єктивно – як свідома воля.
25228. Шеллінг “Філософія мистецтва”: поняття мистецтва 34.5 KB
  Шеллінг €œФілософія мистецтва€: поняття мистецтва €œФілософія мистецтва€ уособлює цілий етап в розвитку естетичної думку від Канта до Гегеля Основний вплив: Кант Шиллєр Фіхте. він конструює ідеальну модель світу мистецтва. Шеллінг намагається визначити місце мистецтва в універсумі і тим самим з’ясувати його внутрішню необхідність і метафізичний смисл. Краса проявляється там де особливе реальне в такій мірі відповідає своєму поняттю що воно поняття як нескінчене вступає в кінцеве в усій своїй особливості так що реальне...
25229. Критерії вибору теорії (Поппер, Кун, Фейрабенд) 33 KB
  Поппер видiляє декiлька видiв змiсту теорiй. Перш за все згiдно критерiя демаркацiї усяка наукова теорiя має емпiричний змiст сукупнiсть тих базисних речень котрi вона забороняє. Iнакше кажучи емпiричний змiст теорiї дорiвнює класовi її потенцiйних фальсифiкаторiв. Логiчним змiстом деякого твердження чи теорiї Т символiчно CtT Поппер називає клас всiх логiчних наслiдкiв Т.
25230. Суть Сократових тез “Пізнай самого себе” і ”Я знаю лише те, що Я нічого не знаю” 25 KB
  Характерним для класики стає пізнання чуттєвого космосу в якості об’єкту. Відкриває метод отримання істинного знання шляхом відкриття у загальному сутнісного змісту одиничного що дозволяє керуватись у пошуках істини добра і краси. На відміну від софістів які вважали себе справжніми вчителями мудрості Сократ критично ставився до власного знання: €œя знаю тільки що я нічого не знаю€ – методологічний сумнів головний зміст якого полягає в тому що отримати знання людина може лише власними духовнодушевними зусиллями не очікуючи його...
25231. Платон про ідеї як „досконалі речі” 28 KB
  Платон про ідеї як досконалі речі€ Оригінальне вчення про ідеї. Ідеї вічні незмінні безвідносні вони не залежать від умов простору і часу. По відношенню до чуттєвих речей ідеї одночасно є їх причинами і тими зразками за якими були створені ці речи. Водночас ідеї є метою до якої прагнуть істоти чуттєвого світу.
25232. Еллінізм: відкриття духовної реальності (Сенека, Епіктет) 29.5 KB
  Саме тут вперше на основі причасності всіх людей логосу формується ідея спільного братства на місце ідеалу національної держави приходить космополітизм. Нехай з середини ти будеш інший у всьому а ззовні ми не повинні відрізнятись від людей.€ Перше що обіцяє дати філософія – це вміння жити серед людей. Епіктет проповідував близькі до християнства ідеї про різку відмінність Духа від тіла про братську любов до всіх людей про необхідність постійного звернення людини до бога.
25233. Епікуреїзм: таємниця «паренклізісу» (самочинне відхилення атомів від лінії необхідності) 22.5 KB
  грекоримський епікуреїзм – середній Сад епікуреїзм у Римі – пізній Сад.
25234. К. Леві-Строс Структурна антропологія 33.5 KB
  полягає в застосуванні структурного методу до аналізу історикоетнографічних процесів культури – як окремого людського буття так і етногенезу в цілому а також до становлення окремих форм соціального буття. полягає в тому щоб в процесі аналізу конкретної етнографічної проблематики наблизитися до осягнення проблеми становлення і формування людського суспільства і людської культури. З огляду на це вивчення життя первісних народів є ключем для розуміння загальних закономірностей культури. Енґельса оскільки момент якісного стрибка від...