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

}


 

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

67687. Побудова компілятора з використанням середовища розробки Borland CodeGear RAD Studio Delphi 2009 188.9 KB
  Метою даної курсової роботи є вивчення теоретичних основ, на яких базується робота компілятора, а також програмна реалізація алгоритмів кожної стадії компіляції вихідного коду. Курсова робота полягає в створенні окремих частин компілятора заданої мови, а саме: лексичного аналізатора...
67688. ЕСТЕТИЧНЕ ВИХОВАННЯ ХУДОЖНЬО-ТВОРЧОГО РОЗВИТКУ ОСОБИСТОСТІ – ШЛЯХ ДО КРАСИ І ДУХОВНОГО ОДУЖАННЯ СУСПІЛЬСТВА 97 KB
  При розгляді поняття художньо-творчого розвитку особистості як методу становлення естетичного суб`єкту, як носiя специфічно естетичної модальності світовідношення, що проявляє саме художньо-творчу активність, а не якусь іншу, само собою знімається питання про критерії естетичного розвитку людини
67689. Разработка цифрового измерителя технологического многоканального на основе AVR микроконтроллера AT90S4414 183.5 KB
  В данной работе используется микроконтроллер AT90S4414 фирмы Atmel. Микросхема выполнена в 40-выводном корпусе, что дает безусловный выигрыш. Таким образом, микроконтроллер имеет (4 внешних порта РА ,РВ,РС и РD). Прибор обеспечивает производительность, приближающуюся к 1 МГц.
67690. Разработка схем трехразрядного счетчика 491 KB
  Основной функцией счётчика является прибавление единицы к некоторому коду. У каждого счётчика есть диапазон значений который определяется количеством триггеров входящих в его состав. Основные параметры которые необходимо улучшать в счётчиках это быстродействие и время задержки.
67691. Скремблеры. Системы криптографической защиты информации 817.9 KB
  Суть скремблирования заключается в побитном изменении проходящего через систему потока данных. Скремблирование широко применяется во многих видах систем связи для улучшения статистических свойств сигнала и осуществляется на последнем этапе цифровой обработки.
67692. Управление списками в MS Excel: создание списка «Автомобили», сортировка, отбор, анализ данных 2.43 MB
  Форма данных представляет собой средство для поиска и редактирования записей, которые удовлетворяют простому или множественному критерию сравнения. В форме данных условия в критерии должны соответствовать логической операции и, для поиска некоторого фрагмента текста...
67693. Автоматизация учета продажи товаров на примере магазина детских товаров «Аистенок» 3.05 MB
  Компьютер облегчает учет сокращая время требующееся на оформление документов и обобщение накопленных данных для анализа хода торговой деятельности необходимого для управления ею.; участие в разработке и осуществлении мероприятий направленных на соблюдение финансовой...
67694. Имитационное моделирование систем массового обслуживания 219 KB
  Время обслуживания также представляет случайную величину. Поток заявок Выбывающие из поступающих системы обслуживания на обслуживание клиенты Очередь Блок обслуживания Обслуживающая система Рис. Цели и допущения положенные в основу разработки имитационной модели Имитационная модель не должна копировать фактическое...
67695. Передатчик судовой подвижной службы, предназначенный для связи береговых служб с морскими судами и между судами 301.27 KB
  Рассчитать передатчик судовой подвижной службы, рассчитанный для связи береговых служб с морскими судами и между судами. Максимальная мощность сигнала в антенне (Pa) – 1500 Вт. Диапазон рабочих частот 0.4-5 МГц Нагрузка – несимметричный фидер с волновым сопротивлением 75 Ом.