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

ID пользователя #1
Зарегистрирован: Воскресенье 27.06.2004 12:37
Местонахождение: Санкт-Петербург
Сообщений: 601
Roman I Khimov написал(а) ...
grizlyk написал(а) ...
PS: интересно, почему нет опции "оповещение по email" о новых ответах в теме?

Её просто нет. Возможно, даже, к сожалению. В ближайшем будущем не предвидится.

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


Греби и улыбайся!
Наверх
Сайт
alman
Вторник 07.11.2006 19:35

ID пользователя #753
Зарегистрирован: Суббота 28.10.2006 01:21
Местонахождение: планета Земля
Сообщений: 95
Den64 написал(а) ...
Планирую сделать простенькую многозадачную ОС под 32-разрядный процессор.


дык, это уже не уровень первой ДОС. Там многозадачносьти не было. Разве что DeskView

Кстати, как собираетесь реализовывать многозадачность?

Den64 написал(а) ...
Сейчас разработаны почти все блок-схемы и форматы данных на бумаге. Теперь начинаю писать исходный код на asmе.


Эх, где мои двадцать лет. Тоже шёл этой тропой. Возможно, где-то на полках ещё валяются пятидюймовые гибкие диски с сырацми.

Den64 написал(а) ...
Всё буду писать на Ассемблере. Примерно 30-100КБ исходного кода. Если сильно не напрягатся и не появится непредвиденных проблем то думаю будет готово через 1-2 месяца.


Вы не боитесь, что после этого возненавидите ассемблер? И в будущей жизни, когда ассемблер действительно будет нужен, Вы 10 раз подумаете прежде чем писать на нём.

Den64 написал(а) ...
Необходимо написать ядро (если я правильно понимаю что такое ядро), одну программу (приложение, чтобы запустить и проверить работу (уже написал)) и 2 загрузчика (ОС будет загружатся в 3 этапа. Сначала MBR(стандарта Microsoft) затем первый загрузчик и второй).


А зачем так сложно? Кто-то уже подсказал испльзовать grub.
Кстати, а как Вы продемонстрируете многозадачность с одним приложением? Запустите несколько копий приложения или создадите несколько потоков?

Den64 написал(а) ...
ОСь конечно сначала не будет иметь дров, файловой системы и других сверхестественных способностей но уже будет многозадачна и с разделением памяти. Даже сделаю сайт... хе-хе-хе


ОС без файловой системы - не оперционная система.
А можно подробнее про разделение памяти? Какую схему Вы будете использовать, страничную, сегментную или смешанную?
Наверх
Сайт
grizlyk
Среда 08.11.2006 04:41
ID пользователя #757
Зарегистрирован: Понедельник 06.11.2006 22:42
Сообщений: 72
Доброе утро.

Roman I Khimov написал(а) ...
grizlyk написал(а) ...
C++ строка "obj->method(par_1 ... par_9)" лучше, чем C строка "obj_method(obj, par_1 ... par_9)".

Execution in the Kingdom of Nouns
Это жалкие 74 Кб текста на английском, что даже на свежую голову не налезет. Поэтому нельзя ли в виде брифинга попроще, что имелось в виду (на русском)?

<span class='smallblacktext'>[ Редактирование среда 08.11.2006 04:43 ]</span>
Наверх
grizlyk
Среда 08.11.2006 04:55
ID пользователя #757
Зарегистрирован: Понедельник 06.11.2006 22:42
Сообщений: 72
alman написал(а) ...
Den64 написал(а) ...
Всё буду писать на Ассемблере. Примерно 30-100КБ исходного кода. Если сильно не напрягатся и не появится непредвиденных проблем то думаю будет готово через 1-2 месяца.


Вы не боитесь, что после этого возненавидите ассемблер? И в будущей жизни, когда ассемблер действительно будет нужен, Вы 10 раз подумаете прежде чем писать на нём.
Вот вот.

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

Вы знакомы с paraOS? Нет? Напрасно, напрасно. Это моя ОС, написанная полностью на асме, грузящаяся с дискетки, имеющая комстроку, несколько консольных команд и позволяющая загружать без ДОС на IBM PC/XT такие ценные програмки, как паратрупер, арканоид и диггер.

Не пишите полностью на асме проги сложнее paraOS.

Это заблуждение, что на асме можно написать большую программу эфеективнее, чем на языке высокого уровня. Вы основы матанализа знаете? Знаете, что локальный максимум не всегда самый максимальный во всей области определения? Асм позволяет найти локальное усовершенствование, но глобальное нет.

Наверх
Roman I Khimov
Среда 08.11.2006 11:35

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

Roman I Khimov написал(а) ...
Execution in the Kingdom of Nouns
Это жалкие 74 Кб текста на английском, что даже на свежую голову не налезет. Поэтому нельзя ли в виде брифинга попроще, что имелось в виду (на русском)?

БОльшая часть страницы — комментарии, сам текст не сильно большой. Но весьма выразительный, я бы рекомендовал все же почитать.


Греби и улыбайся!
Наверх
Сайт
Hmmm
Среда 08.11.2006 14:06

ID пользователя #719
Зарегистрирован: Среда 09.08.2006 11:29
Местонахождение: Москва
Сообщений: 108
Сама идея разработки ОС на С++ по моему здравая. Более того, это будет принципиально новый подход, на мой взгляд. Конечно в области самописных осей у меня опыт мизерный, но ковыряясь в исходниках ядер Solaris, Linux а также всевозможных прошивок пришел к выводу что писание таких проектов на С скорее подход исторический. Никаких веских причин к тому что бы написать все это на плюсах, причем намного красивее IMHO нету.

grizlyk написал(а) ...

В С++ можно использовать исключения и получать описание причины сбоя программы вместо плавающих сбоев во время выполнения, page faultов и т.п.


А вот с исключениями не все так радужно. Недавно посмотрел как реализуется механизм исключений в визуальщине. На мой взгляд это тихий ужас: http://www.codeproject.com/cpp/exceptionhandler.asp
В чем то исключения мне напоминают конструкцию вроде gofrom. Поэтому активно исключения не использую, хотя иногда это конечно механизм удобный.
Наверх
grizlyk
Среда 08.11.2006 23:03
ID пользователя #757
Зарегистрирован: Понедельник 06.11.2006 22:42
Сообщений: 72
Hmmm написал(а) ...
А вот с исключениями не все так радужно. Недавно посмотрел как реализуется механизм исключений в визуальщине. На мой взгляд это тихий ужас:
В прикрепленном файле пример текста на СРР и ассемблерный эквивалент некоторых функций. Скорость не падает совсем, если условия исключения не происходят.

Вот куски для сравнения полезного кода
с исключениями написал(а) ...
//_fn1__Fi:
//enter
pushl %ebp
movl %esp,%ebp

subl $16,%esp
pushl %esi
pushl %ebx

//полезный код
cmpl $0,8(%ebp)
jg L5

movl 8(%ebp),%edx //нет оптимизации!
movl %edx,%eax

//leave
leal -24(%ebp),%esp
popl %ebx
popl %esi
movl %ebp,%esp
popl %ebp
ret

//исключения
L5:
...
без исключений написал(а) ...
//_fn3__Fi:
//enter
pushl %ebp
movl %esp,%ebp

//полезный код
cmpl $0,8(%ebp)
jg L38

movl 8(%ebp),%edx
movl %edx,%eax
jmp L37

//сообщение об ошибке
L38:
movl $-1,%eax

//leave
L37:
movl %ebp,%esp
popl %ebp
ret
Размер да, возрастает и реакция на исключение громоздкая.

Как я понимаю, реализация исключений зависит от компилятора и эта схема может быть не самая оптимальная. в общем то, я никогда не вдавался в подробности реализации исключений.

С исключениями просто легче изменять, сопровождать программу. Возможно, что исключения все же непригодны для уровня ОС.

Теоретически исключения похожи на возврат класса соединяющего в себе данные результата и состояние ошибки вместо возврата простых данных.

Но при выбрасывании исключения надо вызвать деструкторы для тех локальных объектов, которые уже выделили память и не вызывать для тех, состояние которых неопределено, плюс учесть что исключение может быть вызвано нехваткой памяти и т.п.
Наверх
Dron
Четверг 09.11.2006 10:07


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

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

Так что исключения надо применять исключительно для проблем. Возвращать через исключения значения - это изврат.

А, че-то я увлекся

Правда вот gcc генерирует код более менее сбалансировано, то есть накладные расходы на исключения меньше, но и основные алгоритмы тоже страдают.

По поводу ядер... я думаю, что в монолитное ядро от введения объектности значительно бы упростилось. Это важно.

А для микроядра - объектность - непозволительная роскошь.

Где-то статья была про исключения занимательная... не найду с ходу.

PS: Только что подумал, что в C++ можно отключить все исключения. и писать объектно, но без исключений. Хотя не знаю насколько это будет эффективнее C.
[ Редактирование четверг 09.11.2006 10:17 ]

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

Андрей Валяев
Наверх
Сайт
LegoS
Четверг 09.11.2006 16:00

ID пользователя #236
Зарегистрирован: Понедельник 14.03.2005 00:30
Местонахождение: Санкт-Петербург
Сообщений: 3
grizlyk написал(а) ...

Вот есть бесплатный текст по С++: http://grizlyk1.narod.ru/my

_Обращаю особое внимание_, что текст по этой ссылке не может быть использован как учебник по стандарту С++ и содержит ошибки с точки зрения компилятора С++.


Хм.. взглянул... первая страница многообещающая:


А как Вы пишите свои программы?

А как Вы пишите свои программы, как создаете классы и сообщения для объектов?

Наверх
Сайт
grizlyk
Четверг 09.11.2006 19:35
ID пользователя #757
Зарегистрирован: Понедельник 06.11.2006 22:42
Сообщений: 72
LegoS написал(а) ...
Хм.. взглянул... первая страница многообещающая:
Как говаривал Паниковский: "Знавал я одного полицейского, фамилия у него еще такая смешная - "Небаба". Теперь он музыкальный критик."
Наверх
Переход на страницу  1 2 3 [4] 5 ... 11 12 13  

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

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

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