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

}


 

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

77858. Неустойка и задаток 27.5 KB
  Законная неустойка подлежит применению в случаях когда условие о неустойке не включено в договор или размер договорной неустойки меньше размера неустойки установленной законом. Стороны не могут своим соглашением уменьшить размер законной неустойки но при отсутствии прямого запрета в законе могут увеличить размер законной неустойки. Зачетная неустойка позволяет кредитору помимо неустойки требовать возмещения убытков в части не покрытой неустойкой то есть с зачетом неустойки. При штрафной неустойке кредитор вправе требовать возмещения в...
77859. Перемена лиц в обязательстве 29.5 KB
  Перемена лиц в обязательстве Договором или законом: в результате универсального правопреемства в правах кредитора; по решению суда о переводе прав кредитора на другое лицо когда возможность такого перевода предусмотрена законом; вследствие исполнения обязательства должника его поручителем или залогодателем не являющимся должником по этому обязательству; при суброгации страховщику прав кредитора к должнику ответственному за наступление страхового случая; в других случаях предусмотренных законом. Перемена кредитора: 1 в порядке...
77860. Понятие гражданского права как частного права 29 KB
  Понятие гражданского права как частного права С позиций учения о частном праве ГП следует определить как основную отрасль права регулирующего частные взаимоотношения граждан а также созданных ими юр. ГК закрепляет основные начала частного права: равенство участников имущ. В советское время после отказа от деления права на П и Ч из ГП в качестве самостоятельных правовых отраслей выделились С и ТП. организаций объединяемые понятиями права компаний или корпоративного права.
77861. Источники гражданского права 32 KB
  Из всех деловых обыкновений законодатель особо выделяет обычаи делового оборота которые применяются в сфере ПД. Указанные правила становятся источником лишь в том случае если они закреплены в каком-либо НА входящем в систему граж.
77862. Понятие, содержание и виды граж. правоотношений 28 KB
  Классификация гражданских правоотношений преследует не только теоретические но и практические цели заключающиеся в правильном уяснении прав и обязанностей сторон определении круга правовых норм подлежащих применению в процессе возникновения реализации и прекращения правоотношения....
77863. Граждане (физические лица) как субъекты 29.5 KB
  Гражданин (физическое лицо) как участник правоотношений обладает рядом признаков и свойств, которые определенным образом индивидуализируют его и влияют на его правовое положение. К таким признакам и свойствам следует отнести: имя, гражданство, возраст, семейное положение, пол, состояние здоровья.
77865. Возникновение и прекращение юридических лиц 29 KB
  Он связан с необходимостью получения предварительного разрешения согласия от органов публичной власти на создание соответствующего юридического лица что обычно служит общим интересам всех участников оборота коммерческие банки и страховые компании. В соответствии с ней в регистрирующий орган представляются заявление устав и решение о создании юридического лица либо учредительный договор а также документы подтверждающие оплату регистрационного сбора и не менее 50 уставного капитала. Данные государственного реестра юридических лиц должны...
77866. Государство и МО как субъекты 27.5 KB
  Оборота как юридически равных собственников или иных законных владельцев имущества находящихся в частноправовых а не в публичноправовых отношениях друг с другом. РФ ее субъекты и муниципальные образования являются собственниками своего имущества и в этом качестве участвуют в отношениях собственности и иных вещных правоотношениях. Как собственники своего имущества ППО независимы друг от друга и выступают в гражданских правоотношениях как вполне самостоятельные равноправные и имущественно обособленные субъекты. ППО располагают...