65821

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

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

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

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

Русский

2014-08-06

20.82 KB

3 чел.

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

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

—————————

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

ОТЧЕТ

по лабораторной работе №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);

}


 

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

81456. Окислительное декарбоксилирование пировиноградной кислоты. Последовательность реакций. Строение пируватдекарбоксилазного комплекса 123.64 KB
  Превращение пирувата в ацетилКоА описывают следующим суммарным уравнением: СН3СОСООН ND HSKo → CH3CO ∼SKo NDH H CO2 В ходе этой реакции происходит окислительное декарбоксилирование пирувата в результате которого карбоксильная группа удаляется в виде СО2 а ацетильная группа включается в состав ацетил КоА. FD ND и КоА. Окислительное декарбоксилирование пирувата Превращение пирувата в ацетилКоА включает 5 стадий Стадия I. На стадии III КоА взаимодействует с ацетильным производным Е2 в результате чего образуются ацетилКоА...
81457. Цикл лимонной кислоты: последовательность реакций и характеристика ферментов. Связь между общими путями катаболизма и цепью переноса электронов и протонов 319.89 KB
  Цикл лимонной кислоты цитратный цикл цикл Кребса цикл трикарбоновых кислот ЦТК заключительный этап катаболизма в котором углерод ацетильного остатка ацетилКоА окисляется до 2 молекул СО2. Связь между атомами углерода в ацетилКоА устойчива к окислению. В условиях организма окисление ацетильного остатка происходит в несколько этапов образующих циклический процесс из 8 реакций: Последовательность реакций цитратного цикла Образование цитрата В реакции образования цитрата углеродный атом метильной труппы ацетилКоА связывается с...
81458. Механизмы регуляции цитратного цикла. Анаболические функции цикла лимонной кислоты. Реакции, пополняющие цитратный цикл 153.56 KB
  Регуляция цитратного цикла. В большинстве случаев скорость реакций в метаболических циклах определяется их начальными реакциями. В ЦТК важнейшая регуляторная реакция - образование цитрата из оксалоацетата и ацетил-КоА, катализируемая цитратсинтазой.
81459. Основные углеводы животных, их содержание в тканях, биологическая роль. Основные углеводы пищи. Переваривание углеводов 160.55 KB
  Переваривание углеводов Гликоген главный резервный полисахарид высших животных и человека построенный из остатков Dглюкозы. Его молекула построена из ветвящихся полиглюкозидных цепей в которых остатки глюкозы соединены α1 4гликозидными связями. При гидролизе гликоген подобно крахмалу расщепляется с образованием сначала декстринов затем мальтозы и наконец глюкозы. Крахмал разветвлённый полисахарид состоящий из остатков глюкозы гомогликан.
81460. Глюкоза как важнейший метаболит углеводного обмена. Общая схема источников и путей расходования глюкозы в организме 139.63 KB
  Общая схема источников и путей расходования глюкозы в организме Глюкоза является альдогексозой. Циклическая форма глюкозы предпочтительная в термодинамическом отношении обусловливает химические свойства глюкозы. Расположение Н и ОНгрупп относительно пятого углеродного атома определяет принадлежность глюкозы к D или Lряду. В организме млекопитающих моносахариды находятся в Dконфигурации так как к этой форме глюкозы специфичны ферменты катализирующие её превращения.
81461. Аэробный распад — основной путь катаболизма глюкозы у человека и других аэробных организмов. Последовательность реакций до образования пирувата (аэробный гликолиз) 220.81 KB
  Все ферменты катализирующие реакции этого процесса локализованы в цитозоле клетки. Реакции аэробного гликолиза Превращение глюкозо6фосфата в 2 молекулы глицеральдегид3фосфата Глюкозо6фосфат образованный в результате фосфорилирования глюкозы с участием АТФ в ходе следующей реакции превращается в фруктозо6фосфат. В ходе этой реакции катализируемой фосфофруктокиназой фруктозо6фосфат превращается в фруктозо16бисфосфат. Продукты реакции альдольного расщепления изомеры.
81462. Распространение и физиологическое значение аэробного распада глюкозы. Использование глюкозы для синтеза жиров в печени и в жировой ткани 103.86 KB
  Использование глюкозы для синтеза жиров в печени и в жировой ткани. Основное физиологическое назначение катаболизма глюкозы заключается в использовании энергии освобождающейся в этом процессе для синтеза АТФ. Энергия выделяющаяся в процессе полного распада глюкозы до СО2 и Н2О составляет 2880 кДж моль.
81463. Анаэробный распад глюкозы (анаэробный гликолиз). Гликолитическая оксиредукция, пируват как акцептор водорода. Субстратное фосфорилирование. Распространение и физиологическое значение этого пути распада глюкозы 121.38 KB
  Реакции анаэробного гликолиза При анаэробном гликолизе в цитозоле протекают все 10 реакций идентичных аэробному гликолизу. Восстановление пирувата в лактат катализирует лактатдегидрогеназа реакция обратимая и фермент назван по обратной реакции. С помощью этой реакции обеспечивается регенерация ND из NDH без участия митохондриальной дыхательной цепи в ситуациях связанных с недостаточным снабжением клеток кислородом. Таким образом значение реакции восстановления пирувата заключается не в образовании лактата а в том что данная...
81464. Биосинтез глюкозы (глюконеогенез) из аминокислот, глицерина и молочной кислоты. Взаимосвязь гликолиза в мышцах и глюконеогенеза в печени (цикл Кори) 215.46 KB
  Глюконеогенез процесс синтеза глюкозы из веществ неуглеводной природы. Его основной функцией является поддержание уровня глюкозы в крови в период длительного голодания и интенсивных физических нагрузок. Эти ткани могут обеспечивать синтез 80100 г глюкозы в сутки.