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

}


 

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

33228. Измерительный трансформатор 13.46 KB
  Трансформаторы тока служат для преобразования тока большой величины в ток малой величины. Простейшим аппаратом ручного управления в электрических сетях постоянного и переменного тока являются рубильники. Они применяются в сетях до 500 в для замыкания и размыкания цепей при токах от 100 до 5000 а.
33229. Измерительный трансформатор напряжения 13.31 KB
  ИЗМЕРИТЕЛЬНЫЕ ТРАНСФОРМАТОРЫ НАПРЯЖЕНИЯ В сетях переменного тока для отделения измерительных приборов в целях безопасности от проводов высокого напряжения а также для расширения пределов измерения приборов применяются измерительные трансформаторы напряжения и тока. Измерительные трансформаторы напряжения по своему устройству принципиально не отличаются от устройства силовых трансформаторов служащих для питания ламп накаливания электродвигателей и т.
33230. Химический источник постоянного тока (гальванический элемент или аккумулятор) 13.69 KB
  Для получения постоянного тока используют также электрические машины генераторы постоянного тока. Источник тока это устройство в котором происходит преобразование какоголибо вида энергии в электрическую энергию. В любом источнике тока совершается работа по разделению положительно и отрицательно заряженных частиц которые накапливаются на полюсах источника.
33231. Энергосбережение 13.85 KB
  В четырехпроводной системе при несимметричной нагрузке необходимо включение трех ваттметров обмотки напряжений которых включаются между нулевым и соответствующим линейным проводом. Каждый ваттметр измеряет мощность одной фазы и суммарная мощность трехфазной системы равна сумме показаний трех ваттметров т. В трехпроводной системе при несимметричной нагрузке наиболее часто используют схему двух ваттметров которая не может быть использована в четырехпроводной системе. В схеме двух ваттметров обмотки напряжений каждого ваттметра соединены с...
33232. СОЕДИНЕНИЕ ЗВЕЗДОЙ И ТЕУГОЛЬНИК 14.55 KB
  ТРЕУГОЛЬНИК Треугольник такое соединение когда конец первой фазы соединяется с началом второй фазы конец второй фазы с началом третьей а конец третьей фазы соединяется с началом первой Обмотки трехфазного генератора могут быть соединены и другим способом: если конец первой обмотки соединить с началом второй конец второй обмотки с началом третьей и конец третьей с началом первой получим соединение треугольником. Соединение треугольником выполняется таким образом чтобы конец фазы А был соединен с началом фазы В конец фазы В...
33233. Шунт 13.32 KB
  Устройство и принципы работы датчиков движения и присутствия Датчики движения и присутствия автоматически включают выключают освещение в помещении в зависимости от интенсивности естественного потока света и или присутствия людей. Датчики движения более просты по конструкции и реагируют только на активные движения например идущего человека.
33234. Электрическая цепь, Устройство трансформатора 13.12 KB
  Электрической цепью называется совокупность устройств и объектов образующих путь для электрического тока электромагнитные процессы в которых могут быть описаны с помощью понятий об электрическом токе ЭДС электродвижущая сила и электрическом напряжении. trnsformo преобразовывать это статическое электромагнитное устройство имеющее две или более индуктивно связанных обмоток на какомлибо магнитопроводе и предназначенное для преобразования посредством электромагнитной индукции одной или нескольких систем напряжений переменного тока в...
33235. Зако́н О́ма 13.08 KB
  закон Ома для полной цепи: сила тока в полной цепи равна электродвижущей силе источника деленной на сумму сопротивлений однородного и неоднородного участков цепи.
33236. Последовательное и параллельное соединения в электротехнике 13.47 KB
  Режим при котором вторичная обмотка трансформатора разомкнута а на зажимы первичной обмотки подано переменное напряжение называется холостым ходом трансформатора. Если к первичной обмотке подвести напряжение U1 по ней потечет ток который обозначим I0. Магнитный поток Ф возбуждаемый первичной обмоткой индуктирует во вторичной обмотке э. Тот же самый магнитный поток индуктирует в первичной обмотке э.