> man operating_systems
Центр информации по операционным системам :: Форумы :: Операционные системы :: Другие ОС
 
<< Предыдущая тема | Следующая тема >>
Реально ли сделать простую ОСь своими руками?
Переход на страницу  1 2 3 ... 8 [9] 10 11 12 13
Модераторы: Roman I Khimov, Wanderer, Dron
Автор Добавил
alman
Четверг 14.12.2006 12:05

ID пользователя #753
Зарегистрирован: Суббота 28.10.2006 01:21
Местонахождение: планета Земля
Сообщений: 95
Кстати, я нашел ещё одно прикольное применение
do { ... } while(false);
вот оно:

do
{
...
switch( var )
{
...
case 1: status = -1; continue;
...
}
...
} while( false );

Пример, конечно, слишком утрированный, но позволяет выскаивать из switch. Причем, даже из вложенного switch.

<span class='smallblacktext'>[ Редактирование четверг 14.12.2006 12:07 ]</span>
Наверх
Сайт
U77
Четверг 04.03.2010 15:58
ID пользователя #1317
Зарегистрирован: Четверг 04.03.2010 15:42
Сообщений: 1
Я хотел бы сделать свою ось. простенькую однозадачную. однако плохо разбираюсь в таких вещах. выполнил на асме только загрузчики 1,2 с флопи дальше застрял. читал исходники других открытых ос. но очень сложно для моего понимания. если у кого есть опыт и кто написал свою ось или хотя бы кусочек я прошу помочь исходниками. будь то загрузчик с CDrom или HDD рад любому коду.
Наверх
Roman I Khimov
Пятница 05.03.2010 11:18

ID пользователя #1
Зарегистрирован: Воскресенье 27.06.2004 12:37
Местонахождение: Санкт-Петербург
Сообщений: 601
Попробуй посмотреть сюда:
http://wiki.osdev.org/Projects
Небольших несложных проектов в разной степени готовности довольно немало.

И с загрузчиками лучше завязывать, just use GRUB.


Греби и улыбайся!
Наверх
Сайт
prog8
Пятница 26.03.2010 08:42
ID пользователя #1343
Зарегистрирован: Пятница 26.03.2010 07:27
Сообщений: 27
Привет.
Сначала по сабжу: я написал ось в одиночку, понадобилось около двух лет от идеи до первой продажи.
Что за ось, как устроена, как работает, что может - об этом я могу рассказывать долго, если кому интересно.
Речь не о том. Главная проблема, с которой я столкнулся - не с кем поговорить. А иногда очень нужно.
Сейчас я взялся за написание совсем нового ядра, т.к. то что есть (и уже продается) - ужасно. Но у меня задача такая стояла: сделать быстро и "шоб робило". Сделал, робит. Но только я один знаю КАК. И это "как" мне не по душе.
Я, в отличие от множества осеписателей, работаю не только "for fun", а за деньги. Есть конкретные задачи и сроки.
Теперь вот появилось время на новое ядро (удалось начальство убедить, что оно жизненно необходимо).
Думаю над экзоядром, но скорее всего выберу-таки вариант "микро". Ибо надежность, надежность, и еще раз надежность. Скорость менее важна (хотя и не без этого).
Кстати, для написания _работающей_ системы главное условие - наличие четких сроков сдачи проекта (ИМХО). Если бы я писал ось для удовольствия - ничего реально работающего скорее всего так и не получилось бы.

На данную площадку я влез с единственной целью - поговорить с умными людьми о возможных путях решения возникающих теоретико-архитектурных проблем. Сейчас вот я уперся в реализацию "менеджера событий" (как я его называю). Интересно - а как люди-то делают?
Со своей стороны готов поделиться собственными решениями и идеями со всеми интересующимися.
Наверх
Dron
Пятница 26.03.2010 11:39


ID пользователя #13
Зарегистрирован: Понедельник 05.07.2004 11:16
Местонахождение: Москва
Сообщений: 651
Ты бы новую ветку чтоль начал...
Стесняться не надо.

Какая функция у менеджера событий?
передача сигналов?

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

Андрей Валяев
Наверх
Сайт
prog8
Пятница 26.03.2010 14:58
ID пользователя #1343
Зарегистрирован: Пятница 26.03.2010 07:27
Сообщений: 27
Новую ветку - не придумал, как назвать. Ау, осеписатели?

По менеджеру событий - какая у него вообще функциональность должна быть не могу решить. Поскольку говорить мне не с кем, я свои мысли пишу в файл, потом перечитываю время от времени. Там у меня много чего накопилось по этому поводу, если вкратце, то вот:
Событие - это наступление неких заранее заданных условий. Нужно определиться 1) как задавать эти условия; 2) кто будет за этим следить; 3) как информировать поток о наступлении события. Источников событий я насчитал четыре: 1) интерфейс (фактически это обработчик прерывания от "железа"); 2) поток (в смысле thread, может, лучше говорить "нить"? привык к "потоку"); 3) стрим (т.е. некий абстрактный объект ввода-вывода); 4) ядро. Типов событий я придумал только два: 1) объект перешел в состояние "готов"; 2) у объекта появились данные. Потоки должны каким-то образом объявлять об ожидании определенного события; другие субъекты должны информировать систему о наступлении событий.
О "сигналах" тоже думал. В моем понимании, "сигнал" - это событие, которого никто не ждал, но на которое надо как-то реагировать. Как?

Как-то путанно получается... Короче, не могу придумать, как их лучше оформить - ожидания событий и сами события. Разрешать ли потоку ждать сразу нескольких событий (типа select() позиксовский), или хватит одного, но разрешить также ждать просто "чего-нибудь". Хотелось бы узнать, как события поддерживаются, например, в L4, или там в Нейтрино...
Наверх
prog8
Пятница 26.03.2010 15:03
ID пользователя #1343
Зарегистрирован: Пятница 26.03.2010 07:27
Сообщений: 27
Еще там такая проблема: стрим с одной стороны явно может быть источником событий; с другой стороны, самой сущности "стрим" у меня в новом ядре нет, я ее вынес в самостоятельную библиотеку ввода-вывода, которая над ядром. Как тут можно извернуться - тоже пока не придумал.
Наверх
Roman I Khimov
Суббота 27.03.2010 22:40

ID пользователя #1
Зарегистрирован: Воскресенье 27.06.2004 12:37
Местонахождение: Санкт-Петербург
Сообщений: 601
prog8 написал(а) ...
Новую ветку - не придумал, как назвать. Ау, осеписатели?

"Событийная модель взаимодействия в ОС", запросто. Только лучше тогда в раздел про ядро, наверное.

prog8 написал(а) ...
Как-то путанно получается... Короче, не могу придумать, как их лучше оформить - ожидания событий и сами события. Разрешать ли потоку ждать сразу нескольких событий (типа select() позиксовский), или хватит одного, но разрешить также ждать просто "чего-нибудь". Хотелось бы узнать, как события поддерживаются, например, в L4, или там в Нейтрино...

Думаю, имеет смысл посмотреть ещё и на Symbian, я сам не разбирался детально, но, при поверхностном взгляде, там интересно.

[ Редактирование Суббота 27.03.2010 22:41 ]


Греби и улыбайся!
Наверх
Сайт
prog8
Воскресенье 28.03.2010 12:35
ID пользователя #1343
Зарегистрирован: Пятница 26.03.2010 07:27
Сообщений: 27
Спасибо за совет, а где на нее можно посмотреть? Это очень популярная система, так что поисковики дают ссылки на ресурсы для юзеров, на худой конец - для прикладников, а вот о ее внутренностях - искал-искал, не нашел. Даже на официальном сайте (веселенький такой) информации об архитектуре - ноль. Неохота в исходниках ковыряться, лучше бы что-нибудь на человеческом языке.
Наверх
prog8
Воскресенье 28.03.2010 12:52
ID пользователя #1343
Зарегистрирован: Пятница 26.03.2010 07:27
Сообщений: 27
Нашел )
Наверх
Переход на страницу  1 2 3 ... 8 [9] 10 11 12 13  

Перейти:     Наверх

Транслировать сообщения этой темы: rss 0.92 Транслировать сообщения этой темы: rss 2.0 Транслировать сообщения этой темы: RDF
Powered by e107 Forum System

© OSRC.info, 2004-2010.
Авторские права на любые материалы, авторы которых явно указаны, принадлежат их авторам. По вопросам публикации таких материалов обращайтесь к авторам.
Авторские права на любые другие материалы принадлежат OSRC.info.
Сайт является помещением библиотеки. Копирование, сохранение на жестком диске или иной способ сохранения произведений осуществляются пользователями на свой риск.
При использовании материалов сайта ссылка на OSRC.info обязательна.