OSDev
http://osdev.su/

ОС как лабораторный стенд для студентов
http://osdev.su/viewtopic.php?f=6&t=313
Страница 1 из 1

Автор:  Driusha [ 27 фев 2010, 20:51 ]
Заголовок сообщения:  ОС как лабораторный стенд для студентов

Добрый день!
Встала задача организовать для студентов лабу по курсу «Операционные системы», мне нужна операционная система с простейшей структурой:
  • Вся система грузится с помощью GRUB, дабы не морочиться с переходом в защищенный режим, чтением диска и прочими неприятностями, будет достаточно рассказать, что делает GRUB, а кто заинтересуется — пусть сам пощупает.
  • Основное ядро написано на Си, на Ассемблере только начальная инициализация таблицы дескрипторов и прочего.
  • Процессы жостко закодированы в ядре, в виде Сишных функций (что-то вроде, void proc1() { ... };).

В данный момент я пытаюсь реализовать ее самостоятельно, но опыта в этом деле у меня маловато. Подскажите мне такую операционную системочку или поделитесь своими любыми соображениями по этому поводу. Может, кто посоветует что-нибудь дельное касательно самой лабы? Буду очень признателен!
Спасибо!

Автор:  SII [ 27 фев 2010, 22:27 ]
Заголовок сообщения:  Re: ОС как лабораторный стенд для студентов

По поводу лабы у меня лично соображение самое что ни на есть флудерастическое: эта лаба нафиг не нужна. ОС -- слишком сложная и объёмная тема, чтобы одна-две лабы хоть что-то могли бы дать, ведь даже чисто теоретический курс займёт никак не меньше семестра -- и то это будет "галопом по европам".

А Миникс не смотрели? Она ж создавалась с учебными целями, так что, возможно, пойдёт, хотя она и сложней этой. В то же время она является иллюстрацией к, наверное, самой популярной ныне книге по осям, что является плюсом...

Автор:  Driusha [ 27 фев 2010, 23:09 ]
Заголовок сообщения:  Re: ОС как лабораторный стенд для студентов

Меня тоже порядком беспокоит, не замахнулся ли я на незамахуемое :).
Цель лабы — донести до студентов, что существует такая штука как lowlevel программирование, показать ту атмосферу, в которой разрабатывается ОС, а так же инициировать некий ВАУ-импульс для самостоятельного изучения.
Я хочу показать примитивную ОС и попутно рассказать, что на самом деле эта ОС — полная лажа и так никто не пишет, а пишут так (тут уже показать на пальцах).
По поводу Minix — честно говоря, не осилил пока, да и слишком сложная она для одной лабы, на ней с алгоритмами хорошо экспериментировать, наверно. Книжку я тоже читал. От «Современных операционных систем» она не сильно отличается, конкретики там мало, больше теории :(.

Автор:  SII [ 27 фев 2010, 23:27 ]
Заголовок сообщения:  Re: ОС как лабораторный стенд для студентов

Ну, дело отчасти в том, что конкретика будет неизбежно завязана на какую-то из реально используемых осей, а они все (ну, почти все) уж слишком сложные, а посему для изучения подходят плохо. Кроме того, лично моё мнение -- хорошо разобраться в предмете вообще на теоретическом уровне важнее, чем практически разобрать что-то конкретное, поскольку хорошему "теоретику" обычно не составляет труда подстроиться под любую конкретную реализацию, а вот у "зацикленного" на определённом решении часто мозги клинит, и до них с трудом доходит, что известное им решение -- не только не единственно возможное, но нередко и не самое лучшее (по крайней мере, лучшее не для каждого случая).

Что же касается низкоуровневого программирования, то тут прямой связи с осеписательством нет, ведь многие вещи, реализуемые в ОС, вполне себе высокоуровневые, иначе б запрограммировать их на ЯВУ было бы слишком сложно, если вообще возможно. Например, любой алгоритм выбора следующей задачи (процесса, потока -- как обозвать, в данном случае не суть важно, лишь бы говорящие понимали, о чём речь) сводится к просмотру некоего списка и анализу в каждом элементе нескольких полей (приоритет, готовность к выполнению и т.п.), что без проблем пишется на ЯВУ (хотя на ассемблере, скорей всего, то же самое можно закодировать эффективнее). Так что, возможно, "атмосферу низкоуровневого программирования" было бы лучше показать на примере работы загрузчика или ещё чего такого, что действительно достаточно тесно связано с аппаратурой, вызовами БИОС, "дешифровкой" управляющих структур файловых систем, но при этом ещё остаётся вполне обозримым, ну а осестроение оставить для действительно заинтересованных в этом предмете (что-нибудь типа семинара организовать, например).

Автор:  Himik [ 28 фев 2010, 01:32 ]
Заголовок сообщения:  Re: ОС как лабораторный стенд для студентов

Есть такой цикл электронных книг "Библиотека системного программиста
© Александр Фролов, Григорий Фролов, 1991-1997". Вам нужен том 6, название "Защищенный режим процессоров Intel 80286/80386/80486". К нему прилагается рабочая программа для запуска из ДОС с двумя задачами защищённого режима. В интернете найти не проблема.

Автор:  Driusha [ 28 фев 2010, 11:39 ]
Заголовок сообщения:  Re: ОС как лабораторный стенд для студентов

Эту книжку я листал, читал конкретно про принципы защищенного режима, сегодня посмотрю поглубже. Спасибо!

Автор:  vkosvk [ 03 мар 2010, 22:29 ]
Заголовок сообщения:  Re: ОС как лабораторный стенд для студентов

Собственно разрабатываю ось, есть версия, в которой процессы в ядре. Только там много лишнего кода. Если интересно -- http://sf.net/projects/logoros. Рекомендую самую раннюю версию, т.к. там меньше лишнего кода, зато в последней больше комментариев ;)

Автор:  SII [ 03 мар 2010, 22:53 ]
Заголовок сообщения:  Re: ОС как лабораторный стенд для студентов

vkosvk писал(а):
Собственно разрабатываю ось


А я уж думал, что Изя давно всё :)

Автор:  vkosvk [ 03 мар 2010, 22:59 ]
Заголовок сообщения:  Re: ОС как лабораторный стенд для студентов

Не, год назад начал всё сначала, почитал манов, сделал всё как следует ;) Скоро закончу l-core (ядро) до приемлемого состояния и буду виртуальную машину писать...

Автор:  SII [ 04 мар 2010, 00:53 ]
Заголовок сообщения:  Re: ОС как лабораторный стенд для студентов

Ну, я думаю, что и эта попытка будет неудачной, однако при должной настойчивости с 4-5 раза получится действительно не просто работоспособная вещь, но ещё и допускающая дальнейшее развитие :) Впрочем, могёт быть, что ошибаюсь: сужу-то по собственному опыту, а я реально въехал в то, как следует делать ось, годам к 20 (программированием с 13 занимаюсь, с 15 уже работал программистом, но, пока неплохо пару реальных систем не изучил, было лишь представление, что должно делаться, но не было понимания, как именно это надо делать в комплексе).

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/