Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Открытая операционная система с нуля.

1.8K
01 апреля 2004 года
Sanya DLR
123 / / 03.03.2004
Не стану отвечать на вопрос ЗАЧЕМ.
Предлагаю написать операционную систему.
1. Задумка эта не коммерческая.
2. Пишется всё с нуля, без использования сторонних продуктов - на голом железе и собственных мозгах.
3. Все происходит прямо здесь, пока это не перестанет быть возможным.
Существует много проектов, но эта затея для тех кто хочет родить операционную систему и воспитывать ее с пеленок (а не содержать пенсионерку). Вот как раз сейчас мы ее зачали.
Надеюсь многому научиться, найти единомышленников, а также найти предел своих возможностей.

Стартовые условия таковы.
Железо: Процессор пень второй. Оператива 32М. Остальное может быть любым, а может и не быть вовсе.
Направление: Система должна в перспективе поддерживать все что угодно, работать с любым набором железа. Систему можно улучшать и это должна предусматривать ее архитектура.
Другими словами - система пишется с нуля и до бесконечности. При этом она все может но ничего не требует. По крайней мере к этому стремится.

Пишется все по порядку - шаг за шагом. Официальный язык - машинный код или то, что напишем на нем сами. Разумеется в мнемониках ассемблера или чего угодно другого, но без использования КОНКРЕТНОГО компилятора.
Главная идея - понимание каждого байта своей системы.

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

Идея подана.
Если она прижилась, то говорите что делать в первую очередь (разумеется не надо начинать с того, как будет выглядеть окно интернет-браузера и каким будет цвет рабочего стола :).
Что должна уметь система в самом фундаменте?
Наверное она должна запускать процессы и соединять их с ресурсами.
Какие могут быть процессы? Какие ресурсы?
Разумеется, система не имеет права зависнуть ни в каком случае по собственной вине или по вине программы.
Нужно придумать универсальные интерфейсы, чтобы система была модульной (универсальность за счет драйверов и т.п.).
Еще раз скажу, что этот велосипед изобретается в первую очередь для собственного развития участников. Поэтому не надо говорить что все уже кем-то создано.
Бог вот человека создал и ладно (раз работает, то ради бога ничего не трогай!), а тебе так - слабо? (я в том смысле, который тут уместен...)
Страницы:
4.7K
03 апреля 2004 года
nukee
11 / / 27.08.2003
Цитата:

Стартовые условия таковы.
Железо: Процессор пень второй. Оператива 32М. Остальное может быть любым, а может и не быть вовсе.



:D Просто фантастика!!...:)))))

Цитата:

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



:D Потрясающе!!...:)))))

Цитата:

Бог вот человека создал и ладно (раз работает, то ради бога ничего не трогай!), а тебе так - слабо? (я в том смысле, который тут уместен...)



:D Да... Сравнение с Богом, это уже что-то...:))
Ну так тут же и операционка соответствующая...:))))))

447
03 апреля 2004 года
CodeWorld
315 / / 05.10.2003
2Олег
посмотри соко ось девелоперов, осбенно весно много прибавлений - прям обострение... У всех их такие же возможности как и у нас, т.е. конкурентов в жопу много.. как жить то? аж настроение проподает >:(

Новенькому
дааарааагой, а как тя знания архитектура и собственно асм..а? + если ты пишешь просто чтоб доказать что я крутой, то непарся.. по себе заню :D а ща вот пересмотрел все и понял, задныцу другым можно и на базаре надрать, а вот ось именно ">>>ЗАЧЕМ<<<" пересмотрев я понял, хочу легкую гибкую с нов интерфейсами ООП и т.м. с новым гуи (я зочу 3х мерный реализовать)
2.0K
03 апреля 2004 года
PingOfDeath
46 / / 06.06.2003
Эхх

Серьзного ничего не получится...

Все так начинают .......
1.8K
04 апреля 2004 года
Sanya DLR
123 / / 03.03.2004
Есть люди, которые так ценят свои знания, что не делятся ими.
Цель проста: если вокруг будут одни бараны, то можно стать самым уважаемым среди них.
Чем глубже знания - тем меньше конкурентов.
Вывод: Если человек боится конкурентов, значит признаёт, что любой может нахвататься тех же верхушек, что и он.
Вот и вся крутизна.
Я не имею в виду кого-то конкретно. Для этих целей существуют, наверное, соответствующие форумы.
------
Как организовать защиту системы от потенциально зловредных посягательств "прикладных" программ?
Я так понимаю, что программе выделяется память, и все попытки вылезти за неё будут поводом для казни. Тут всё понятно.
Насколько я понял, команды делятся на привилегированные (выполняются только при CPL=0 .) и обычные. То есть уровни привилегий 3, 2, 1 - в этом смысле одно и тоже. Привилегированных команд мало. Мне кажется что произвольный доступ к портам (in/out) без контроля системой может быть опасен. Вопрос: как ограничить прямой доступ "приложения" к железу?
Все, что не принадлежит самому приложению (а ему принадлежит только его память да регистры) должно предоставляться через запрос к системе. Я еще не разбирался с этим детально. Думаю, что система должна иметь общедоступную часть, которая содержит базовый набор сервисных функций. Ети функции будут обеспечивать выполнение основной задачи системы - взаимодействие между всеми участниками вычислительного процесса.
Каждая программа имеет право экспортировать свои функции и пользоваться предоставленными чужими (например библиотекой).
Может попросить доступ к устройству и желаемые права на него.
И система должна иметь такие механизмы для этого, чтобы ни один участник этого действа не смог испортить работу другого - будь то процесс, устройство или, тем более, сама система.

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

Насчет абстрактного.
Для системы, по возможности, ВСЁ должно быть виртуальным. Память, устройства, процессы и т.д. Должна быть возможность подключать драйвера для всего этого. Именно поэтому я сказал, что набор железа может быть любым. Для упрощения разработки есть ограничения на процессор (состав и кодировка команд) и на минимальный объем памяти. Хорошо бы чтобы ВСЁ могло быть любым - например форматы исполняемых файлов (система работает с абстрактным процессом через стандартный интерфейс). Тут конечно надо задуматься о сохранении быстродействия. Но это все таки возможно сделать.
Надо бы конечно делать промежуточные варианты системы, а то в проектировании завязнем и всё надоест. Но пока устойчивой концепции системы нет, нет смысла говорить о ней как о таковой.
Я предлагаю с начала попробовать реализовать разные механизмы в отдельности. А потом объединить все в одну операционнкю систему. Так проще, чем обнимать необъятное.
Я не настолько "крут", чтобы все сделать самому и пямо сейчас. Но хочу участвовать - чем смогу. В том и смысл, чтобы научиться у людей, которые разбираются в разных частях предложенной темы. И от себя тоже - "по возможностям".
Конструктивно настроенные - отзовитесь!
447
04 апреля 2004 года
CodeWorld
315 / / 05.10.2003
>Есть люди, которые так ценят свои знания, что не делятся ими.
я так делаю =) это плохо? ;)
>Цель проста: если вокруг будут одни бараны, то можно стать самым уважаемым среди них.
гыг... т.е. ты намекаешь мол тут присутвующие люди пасуться среди баранов?
>Чем глубже знания - тем меньше конкурентов.
логычно ;) тока реализаия и кол-во знаний совершенно раличные понятия
>Вывод: Если человек боится конкурентов, значит признаёт, что любой может нахвататься тех же верхушек, что и он.
ну я боюсь =))))) и?? а ты хошь сказать мол ты уныкальный и фсе такое ;) что ты мозг? а? =) неочень хороший старт, хотя меня тож критикой встречали :D читать мораль бушь как раз баранам ;)
>Вот и вся крутизна.
ну когда нить может я стану таким же крутым как и ты ;)
>Я не имею в виду кого-то конкретно.
помойму как раз таки ты забыл напысать to Codeworld.. а? ;)
------
>Я так понимаю, что программе выделяется память, и все попытки вылезти за неё будут поводом для казни.
гениально! быстрей запотентуй! =) во первых если ты пишешь реально соввременную ось то нихуя она ни куда не залезет, модель флэт.. и какаая нах казнь! ставишь на страницы мол тока для чтения.
>Мне кажется что произвольный доступ к портам (in/out) без контроля системой может быть опасен. ггыг =) странный вопрос... есть два состояния еби порты во все дыры, или запрети сотвенно в TSS обрубишь... или всем обруби и организуй доступ к портам через почредника, например ядрышка
>Все, что не принадлежит самому приложению (а ему принадлежит только его память да регистры) должно предоставляться через запрос к системе.
%))))))) ну и быстрая ось будет! =)
>Думаю, что система должна иметь общедоступную часть, которая содержит базовый набор сервисных функций.
ты гений! =)
не стал я дальше читать =) у мя у самого есть сборник анекдотов ;)
447
04 апреля 2004 года
CodeWorld
315 / / 05.10.2003
>Вывод: Если человек боится конкурентов, значит признаёт, что любой может нахвататься тех же верхушек, что и он.
именно это и толкает на прогресиию своих знаний, именно благодаря этой боязни у мя в шкафу лежит около 40 книг поп сис кодертву харду и органищациям осям. это плохо? ;) знаешь ты страннно сморозил - бояться конкурентов, это называется конкурировать, бороться за место под солнцем, или проще - драть задныцы =))))
3
05 апреля 2004 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by Sanya DLR
Не стану отвечать на вопрос ЗАЧЕМ.
Предлагаю написать операционную систему.
<Skip>



Утопия

Далее - флейм.

Предлагаю писать ОС на Java - это самый безопасный язык со сборщиком мусора.

P.S. С пятым апреля!

447
05 апреля 2004 года
CodeWorld
315 / / 05.10.2003
>Далее - флейм.
это часом не относительно моим постам? ;)
3
05 апреля 2004 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by CodeWorld
>Далее - флейм.
это часом не относительно моим постам? ;)



Это относительно всех постов, от и до, включая и мои :D

447
05 апреля 2004 года
CodeWorld
315 / / 05.10.2003
гы гы гы гы гы гы гы =)))
1.8K
06 апреля 2004 года
Sanya DLR
123 / / 03.03.2004
Надо уточнить задачу.
В первую очередь надо написать ядро системы, а про остальное пока забыть.
Про API пока тоже надо забыть.
Система будет состоять из нескольких функциональных уровней. Каждый уровень добавляет ограничения на потенциально опасные действия программ. А взамен предоставляет удобные функции чтобы через них делать то же самое, но безопасно (под контролем ОС).
Самый первый уровень должен обеспечивать многозадачность и предоставлять программам функции для выделения памяти, создания процессов и т.п., т.е. то, для чего понадобится уровень привилегий 0, которого у программ не будет.
Таким образом надо спроектировать механизм многозадачности и создать набор функций для него. Пока нет доступа к устройствам, будем для проверки создавать процессы из программы, а не загружать исполняемый файл.
Таким образом первый вопрос - как обеспечить многозадачность (управляемую операционной системой)?

P.S.: Насчет IOPL и I/O permission bit map в TSS я разобрался.
А вот что дает модель FLAT? И чем плоха многосегментная?
2.0K
07 апреля 2004 года
PingOfDeath
46 / / 06.06.2003
Бараны говоришь....

Может ты привык общаться с баранами...

Просто все это перемалывается на 100 раз
Кое кто очень много говорит умного но ничего не делает...

Все ты здесь пишешь я читал уже так много раз
Но очень мало у кого видел!
447
07 апреля 2004 года
CodeWorld
315 / / 05.10.2003
кому это было адресованно? =))))))))
447
07 апреля 2004 года
CodeWorld
315 / / 05.10.2003
2Новенький:

ты это про флэт спросил, вощем представь так..
8 метров оперативки... у нас задача загрузить 4 аплликации... первая берет первых 2 метра, вторая берет след 2.. след берет еще 2 метра =) осталось свободно 2 метра =) нам надо загрузит еще 4 задачу... мы модем предположим тока 1 первую задачу выгрузить (остальные в деле)... унас есть 4 метра свободных.. но для сегментов это должно быть неперрыные 4 метра... Во флэте такого нет, там ты строишь виртуально непрерыную опертивку из кусков памяти равного размера... т.е. наёбка, прога думает мол 4 метра это неперыный кусок памяти на самом деле мы ей дали первых 2 метра и последних.. как это все реализовается и организовается мозги ебать не буду... чиай кныгы по протекту :P
1.8K
07 апреля 2004 года
Sanya DLR
123 / / 03.03.2004
Я пока более-менее знаком только с многосегментной моделью.
Я так понял, что совмещать многосегментную модель со страничным преобразованием - неэффективно?
Нельзя ли еще немного про FLAT?..
Как страничное преобразование поддерживает многозадачность (в общих чертах)?
447
08 апреля 2004 года
CodeWorld
315 / / 05.10.2003
давай все контакты возможные... флудить форум нехророшо
1.9K
09 апреля 2004 года
DRVTiny
115 / / 13.12.2003
Разработка ОС? Отлично! Так почему бы Вам, Sanya, не присоединиться к проекту ROSA. Ну коль уж тщеславие разбирает - пожалуйста, можете руководить, можете координировать, вообще - всё что угодно можете! Главное, по-моему, всё-таки конечный результат... У меня уже довольно солидный кусок загрузочной части ядра написан - 1) многозадачность тормознутая аппаратная от Intel реализована (с одной очередью задач, без всяких приоритетов) 2) "Драйвера" (без драйверной архитектуры) клавы и мыши кое-какие есть - вроде работают 3) Сейчас, к сожалению, времени катастрофически нехватает - пишу по делу прогу, управляющую сетевыми усрйствами (приборы "термодат") на COM-порту. Но: учтите, что так или иначе всё, что пишется сейчас, будет так или иначе "прикручено" к моей ОСи (я сознательно не использую в своих программах для реального режима ни одного int'а - будь то сервисы BIOS или MS-DOS'овский UNIX-подобный API) - я стараюсь использовать по максимуму всё, что у меня уже есть - а это на самом деле очень не мало (для реального режима у меня полно таких легко портируемых в PM "библиотек кода") 4) Не знаю, чего так все помешались на загрузке с floppy-диска (вот уж действительно "принципиальный" момент - откуда грузиться!), но тем, не менее, и для floppy'ка у меня порядком кода понаписано.
В общем-много чего УЖЕ есть, проблема теперь в основном-реализовать логику самой ОС (последнее, о чём я размышлял тут на досуге - как бы реализовать асинхронную модель взаимодействия на основе сигналов и сообщений - типа: "вот нежданно к нам через обработчик IRQ_1 оттранслированный код прижатой юзверем клавиши - и куда нам его тперь девать, в switch-диспетчер событий (в данном сл. - PressKey или ReleaseKey) какой задачи его передать? Мандаты, мандаты, мандаты...") - начал тут писать драйвер IDE диска и... моментально в проблему организации асинхронных прмитивов взаимодействия упёрся рогом. Но если кто желает не заниматься актуальными вышеозначенными вопросами, а вернуться "назад в будущее" и перемолоть (вплоть до "нуля") исходники системы, как она есть по состоянию на сегодняшнее время - так ведь пожалуйста, я ж не жадный - только давайте реально работать сообща, чтоб лишний раз не тратить силы впустую... OK?
У меня вот только одна проблема - денег на Интернет вечно катастрофически не хватает (я в институте (Машиностроительном-МИХМЕ, чтоб его...) учусь, и по крайней мере в этом семестре стипендию не получаю (раньше получал)). Так что предлагаю как-нибудь либо через FIDO вести переписку (между прочим, идеальный вариант), либо... общаться не в виртуале (физически т.е) - что по-моему создаёт непреодолимые трудности (эдакий "гордиев узел"), связанные с тем, что таким образом круг "потенциальных разработчиков" сужается до минимума тех, кто проживает со мной в одном городе - в Столице Нашей Родины Москве т.е. Конечно, Вы имеете полное право возразить мне что-то типа "на работу устраиваться надо" - но вот только насколько это актуально на 3-м - то курсе МИХМ'а? Хотя... если у кого есть предложения по обеспечению меня материальными благами в обмен на право эксплуатации my own "трудового ресурса" - готов рассмотреть и, скорее всего, принять оные [предложения в смысле]...
P.S. А то, может, кто-нибудь, у кого есть в распоряжении нуль-модемный кабель, подсобит - только нужно, чтоб кабель подлиннее был - а то у меня здесь в Москве что-то связь с Уфой плохо налажена... :-)
447
09 апреля 2004 года
CodeWorld
315 / / 05.10.2003
>Разработка ОС? Отлично! Так почему бы Вам, Sanya, не присоединиться к проекту ROSA.
хых =) сам выть бушь, он же тока нафиг протект учить начал, какая тут органищация осей =) кстати что не светишься? ты когда нить откроешь сайт о своей оси?? =)))) или намыль мне погляжу..а на словах ща че? микроядро? что в 0 кольце?
>чтоб кабель подлиннее был - а то у меня здесь в Москве что-то связь с Уфой плохо налажена... :-)
а нафик те Уфа? =) в уфе обитает такие как я, кодерлдоподоьные :D
1.9K
09 апреля 2004 года
DRVTiny
115 / / 13.12.2003
Цитата:
Originally posted by CodeWorld
>Разработка ОС? Отлично! Так почему бы Вам, Sanya, не присоединиться к проекту ROSA.
хых =) сам выть бушь, он же тока нафиг протект учить начал, какая тут органищация осей =) кстати что не светишься? ты когда нить откроешь сайт о своей оси?? =)))) или намыль мне погляжу..а на словах ща че? микроядро? что в 0 кольце?
>чтоб кабель подлиннее был - а то у меня здесь в Москве что-то связь с Уфой плохо налажена... :-)
а нафик те Уфа? =) в уфе обитает такие как я, кодерлдоподоьные :D


Прикольно ты сообщения читаешь: ухватываешь только первое и последнее предложения. Когда в следующий раз будешь на форуме прочитай ещё 2 из середины. Вообще ты бы скачал утилиту какую, проговаривающую текст из файлов... - а что, по-моему, очень удобно. Между прочим, в OS/2 Warp 4 такая штука была включена как системный компонент... У тебя, кстати, какая ОС "основная"?

447
09 апреля 2004 года
CodeWorld
315 / / 05.10.2003
>Прикольно ты сообщения читаешь
насторежовался =) 1 приложения о чем пойдет треп, последнее заключения... отвечая на первую строку говорю своё мнение.. на последнее критикую =) этот случай не относится к комплексу обработки постов моим методом =)
>Между прочим, в OS/2 Warp 4 такая штука была включена как системный компонент...
>У тебя, кстати, какая ОС "основная"?
с точуи зрения реализации? не думаю что многим отличатся будет от других.. по концепции ещеб!
ты это про свою ось расскажи
1.9K
10 апреля 2004 года
DRVTiny
115 / / 13.12.2003
Цитата:
Originally posted by CodeWorld

>У тебя, кстати, какая ОС "основная"?
с точуи зрения реализации? не думаю что многим отличатся будет от других.. по концепции ещеб!
ты это про свою ось расскажи


Нет, это я не про реализацию. Я про то, какую ОС сам юзаешь. Вот у меня, к примеру, "основной" является ASPLinux 9 (я её так "до ума ловёл", что, по-моему, мне уже собственный дистрибутив можно начать выпускать - под названием DRVCom Linux или каким-нибудь в этом роде... {шутка}), также использую время от времени ФорточкиXP (реальные) и Форточки98 (эмулируемые из-под Linux). При создании своей ос ориентируюсь на решения IBM и ...[блин, книжку "в прокат" сдал, там было написано, что за компания сейчас является правообладателем tm QNX], использованные при создании QNX и OS/2 (ИМХО, ос, наиболее близкие к "техническому совершенству") - хоть они и абослютно разные в своём конечном вополощении (одна - End-User Platform Dependent, другая - Real Time Platform Independent), но "в деталях" построения зачастую эксплуатируют схожие концепции. Мечтаю (вообще, уже очень давно) как-нибудь нахаляву заполучить в свои загребущие псевдоподии диски с OS/2 eComStation - а то что-то у меня по месту жительства плотность покрытия форм рельефа 100$-купюрами очень низкая - на лицензионные дистрибутивы от Serenity Systems Incorporated (наследник прав на OS/2) денег _катастрофически_ не хватает. Извиняюсь за то, что слегка не вписываюсь в рамки темы обсуждения на данной ветке форума...

447
11 апреля 2004 года
CodeWorld
315 / / 05.10.2003
хых.. а яхочу создать что то промежуточное между куниксом полуосью и виндой... ваще с точки зрения юзака это так... в основном интерфейс будет через микрофон, например выключить комп енто так "Завершение работы, выполнить!" =))))) неплохой я фантазер =))) кстати в полуоси енто ваще херово организорвано, надо еще голос иметь стабильный под полуось... все 100% ОО, потом 3х мерный движок..... короче оффтоп пошел =) время нужно и желание, первого у мя катигорично нет, мой юношеский максимализм (гыг... один чувак ознокомил меня с таким терменом =)))))) ) недаёт мне стабильно реализововать что то одно, я тут ща еще спам тулкит пишу - http://spamsoft.org , так что пока на словах в ось девелопменте всех разводить буду, в принципе что пока что я тока и делаю :D а летом, глюнь что нить реализую как с задуманной программой спам тулкита закончу.. там у мя чего тока не будет.. спам от асек до форумов... полный комплект.. как тсабильный билды появются буду продовать
7.0K
05 мая 2004 года
supertg
7 / / 05.05.2004
RedNeon

заваливай на http://osix.narod.ru
Форум, где тусит много осьдевов: http://lowlevel.ru
и четь поменьше: http://board.sysbin.com
намыль мне: [email]supertg@mail.ru[/email]
1.9K
06 мая 2004 года
Fatal
75 / / 10.03.2004
Объясните, пожалуста, начинающему программёру. Как вы собираетесь программировать операционку, когда асамблирование проходит через операционную систуму, в досе - это прерывания, в виндоусе - это функции API. Через них едет работа с железом. А как без операционной системы вы это собираетесь сделать (извините, может и это где-то написано у вас, но мне некогда читать столько, просто дайте ссылку)
1.8K
10 мая 2004 года
Sanya DLR
123 / / 03.03.2004
Цитата:
Originally posted by DRVTiny
Разработка ОС? Отлично! Так почему бы Вам, Sanya, не присоединиться к проекту ROSA. ...


Где можно посмотреть исходники?
Или сюда: [email]DLR-0000@yandex.ru[/email]

4.7K
10 мая 2004 года
nukee
11 / / 27.08.2003
Для RedNeon:

Цитата:

Originally posted by RedNeon
Я достаточно хороший системный кодер..
Кроме того знаю организацию сетей + я сетевой кодер.



:D ... Без комментариев...

13K
28 сентября 2005 года
ptbnfns
1 / / 16.07.2005
http://o-d-v.nm.ru - присоединяйтесь !!!
4.4K
03 октября 2005 года
captain cobalt
43 / / 04.03.2004
Теперь, через полтора года, попробую отметить хорошие идеи. :)
Цитата:
На этом этапе надо определить основные понятия: устройство, процесс, ... вобщем всё то, что будет ядром системы и в дальнейшем уже не изменится - идеология.

+1

Цитата:
ядро должно дать минимальную функциональность системе, но при этом не ограничивать возможности дальнейшего развития

+1

Цитата:
Нужно придумать универсальные интерфейсы, чтобы система была модульной (универсальность за счет драйверов и т.п.).

+1

Цитата:
Каждая программа имеет право экспортировать свои функции и пользоваться предоставленными чужими

+1

Цитата:
Для системы, по возможности, ВСЁ должно быть виртуальным. Память, устройства, процессы и т.д. Должна быть возможность подключать драйвера для всего этого.

+1

Цитата:
Хорошо бы чтобы ВСЁ могло быть любым - например форматы исполняемых файлов (система работает с абстрактным процессом через стандартный интерфейс). Тут конечно надо задуматься о сохранении быстродействия. Но это все таки возможно сделать.

+1
Это действительно возможно.

Цитата:
Предлагаю писать ОС на Java - это самый безопасный язык со сборщиком мусора.

+1

Цитата:
Система будет состоять из нескольких функциональных уровней.

+1

Цитата:
Каждый уровень добавляет ограничения на потенциально опасные действия программ. А взамен предоставляет удобные функции чтобы через них делать то же самое, но безопасно

+1

Цитата:
Самый первый уровень должен обеспечивать многозадачность и предоставлять программам функции для выделения памяти

+1

10K
21 октября 2005 года
JhuSS
37 / / 20.10.2005
Идеи безусловно хорошие … только …
На этом этапе надо определить основные понятия: устройство, процесс, ... в общем всё то, что будет ядром системы и в дальнейшем уже не изменится - идеология.
/Устройство , я так понял – логическое, может новый способ обмена данными между оными, отличная от irp пакетов принципиально. Понятие “железно” процесса и устройства полностью определяется железной архитектурой процессора и соответствующих контроллеров.

ядро должно дать минимальную функциональность системе, но при этом не ограничивать возможности дальнейшего развития
/ntoskernel – в принципе ядро со входом по 2eh , ничего не мешает слепить свой системный сервис с любым свободным шлюзом. А nix-ы вообще из “кирпичей”.

Нужно придумать универсальные интерфейсы, чтобы система была модульной (универсальность за счет драйверов и т.п.).
/обращаться к (см. выше) сему сервису можно любым , доступным архитектуре процессора , способом. Ну только если интерфейса irp пакетов не достаточно ….

Каждая программа имеет право экспортировать свои функции и пользоваться предоставленными чужими
/про dll даже говорить как-то неудобно.

Для системы, по возможности, ВСЁ должно быть виртуальным. Память, устройства, процессы и т.д. Должна быть возможность подключать драйвера для всего этого.
/ Долго объяснять, почитайте как работают диспетчера сих логических объектов.

Хорошо бы чтобы ВСЁ могло быть любым - например форматы исполняемых файлов (система работает с абстрактным процессом через стандартный интерфейс). Тут конечно надо задуматься о сохранении быстродействия. Но это все таки возможно сделать.
/ ознакомьтесь , ПЛИЗ , как работают процессы подсистем ОС.

Предлагаю писать ОС на Java - это самый безопасный язык со сборщиком мусора.
/для начала пишется “свой” компилятор ассемблера. Хотя можно лепить bin-ы если можно обойтись ими.

Система будет состоять из нескольких функциональных уровней.
/если по защите , мелкомягкие ограничились двумя (их ваще “железно” 4), но не ограничивают сие в “своих” сервисах. Если про уровни “железа” (hal) , логических устройств и уровня пользователя – читайте Русиновича.

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

Самый первый уровень должен обеспечивать многозадачность и предоставлять программам функции для выделения памяти
/диспетчер задач и диспетчер памяти.

Ну теперь про идеологию. Вообще в каждом направлении развития ОС есть своя концепция. Вытесняющая многозадачность в линии Win95-Ме, абстрагирование от уровня аппаратуры в NT, модульность загрузки в nix-ах и каждое направление включает в себя элементы других до необходимых пределов, но не ограничивая их для сторонних производителей ПО (в некоторой степени). Все эти концепции лежат на железной архитектуре процессора. Именно для полного использования предоставляемых им ресурсов пишется свой компилятор асма. (про С в NT Руссинович врал самым конкретным образом, по выходу в свет нового проца первым делом пишется компилятор его асма, С – это когда уже выше hal) Уже одно упоминание Java для сих целей делает сие занятие не серьезным. Ребята , если хотите писать что либо свое, изложите свою концепцию построения ОС. Ее уровни , модули , связи строятся на основании сей концепции + архитектурные особенности проца. (bios можно и перешить). ОС – это гораздо глубже, чем шапки оконных приложений.
… а так … для образования студентов…
10
21 октября 2005 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by JhuSS
… а так … для образования студентов…


ОС-21.

10K
21 октября 2005 года
JhuSS
37 / / 20.10.2005
Цитата:
Originally posted by Freeman
ОС-21.


Ubersethce. Это что ?

10
21 октября 2005 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by JhuSS
Ubersethce. Это что ?


Галлюцинаторный параноид в особо извращенной форме с садо-мазо-наклонностями.

349
28 октября 2005 года
Phantom-84
656 / / 27.10.2005
Писал по другой теме, но потом увидел, что обсуждение по ней не ведется с 2003 года, улыбнулся и решил, что такой опус, тем более с возможным продолжением, не должен кануть в небытье...

Я когда-то занимался написанием миниатюрной системы. Хочу прокомментировать все, что здесь увидел... Беседы про микро- или макроядро, объектно-ориентированную систему - это все чистая теория, а я привык говорить про теорию, которая лежит в основе реальных проектов. При создании ОС теория - это собраться и подумать, что из себя будет представлять будущая система, прежде чем приступать к разработке, иначе придется достраивать все на ходу, а в конце окажется, что чтобы добавить финальный компонент, нужно кардинально переработать всю архитектуру. Далее... Ядро, загрузчик, основные драйвера следует писать одновременно, ибо известно, что периодически следует менять род занятий, чтобы работа не стопорилась... Про файловые системы: когда я писал свою первую самозагружаемую систему, я сделал большую глупость, разработав свою ФС. В итоге она у меня осталась на бумаге, а загрузчики я стал переписывать под FAT12, FAT16 и наконец под FAT32... Опять про файловые системы: ваша ОС должна быть универсальной, т.е. содержать механизм для доступа к различным файловым ситемам посредством драйверов файловых систем (это обычная практика для современных систем). Про доступ к устройствам: линуксовский, т.е. юниксовский механизм файлов устройств хорош только одним - это пример универсального доступа к устройствам; я "никакой" пользователь Unix-подобных систем (попрошу без комментариев), но знаю, что даже в них есть деление, например, на блочные и символьные устройства. Короче, ловите момент :) К устройствам должен быть универсальный доступ, но не как к реально существующим файлам файловой системы, а как к уже открытым файлам, т.е. через handle-механизм, причем описатели файлов и описатели устройств должны существовать параллельно. Опять-таки первые элементы в этой структуре - это стандартное загрузочное устройство, стандартное устройство сообщения об ошибках, стандартные ввод и вывод (вспомним Unix и эпоху становления DOS, которую правильнее было бы назвать эпохой плагиата :) Но мне кажется, я увлекся! Если вам интересны мои комментарии, сообщите об этом :)
10
28 октября 2005 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by Phantom-84
Писал по другой теме, но потом увидел, что обсуждение по ней не ведется с 2003 года, улыбнулся и решил, что такой опус, тем более с возможным продолжением, не должен кануть в небытье...


Это все понятно. У меня только один вопрос: для чего?

10K
30 октября 2005 года
JhuSS
37 / / 20.10.2005
Уважаемый Phantom-84.
Мне действительно интересно ознакомится с загрузчиками на fat32. Еще интереснее – каким образом вы желаете приземлять сии инновации (например - описатели) к реальной (хотя-бы блочной) карте памяти вашей системы. И как вы представляете протокол обмена между компонентами вашей операционной системы. И чем у вас отличается обмен с блочными устройствами от обмена с символьными.
Очень надеюсь услышать ваши комментарии.
349
31 октября 2005 года
Phantom-84
656 / / 27.10.2005
Цитата:
Originally posted by Freeman
Это все понятно. У меня только один вопрос: для чего?



Для чего? - Для Freemana! Что делать, тоже не знаю, но куда идти, подскажу...

349
31 октября 2005 года
Phantom-84
656 / / 27.10.2005
JhuSS, мне не совсем понятно, почему ты считаешь, что при реализации handle-механизма для доступа к устройствам могут возникнуть проблемы именно с распределением памяти в системе. Что касается символьных и блочных устройств, то у меня такого деления нет вообще. Но если условиться считать блочными устройства внешней памяти, то в отличие от аналогичных устройств в Unix-системах кэшированием данных по моему мнению должны заниматься исключительно драйверы ФС. И еще про устройства: отсутствие явного деления устройств, как я это вижу, возможно только благодаря тому, что взаимодействие с ними происходит посредством уникального для каждого типа устройства набора DPI (Device Program Interface :). Стандартным может быть только идентификационное обращение к драйверу, т.е. обращение для получения информации об имени и типе устройства.
349
31 октября 2005 года
Phantom-84
656 / / 27.10.2005
JhuSS, я прочел твой "многотомный" труд про основные понятия... Мое мнение про предложенный тобой язык написания - Java - я об этом даже и не думал, уж слишком несерьезным мне это кажется. Насчет уровней привилегий: я сначала долго мучался с тем их количеством, которое предлагает Intel в своих х86-ых процессорах, а потом оставил два и все стало просто, просто отлично :) 0PL - ядро и драйверы, 3PL - прикладные программы - все!
Объясню: вводить для драйверов доступ к устройствам через дополнительные уровни привилегий, через карту доступа к портам неэффективно, т.к. в принципе при особом желании любое отдельно взятое устройство может подвесить систему. Это первое. Второе, раз уж тебе по нраву определения и модульность: "Драйвер - это неотъемлемая часть операционной системы с точки зрения ее назначения - управлять компьютером", так пусть в таком случае драйвер устройства и обладает всеми правами ядра :) Но в общем случае "территориально" он конечно должен быть отделен от ядра (почему, объяснять не буду :) Про прикладные программы, в том числе и большинство сервисов, выполняющих различного рода слежение, понятно все и так. Они должны обладать минимальными правами.
447
31 октября 2005 года
CodeWorld
315 / / 05.10.2003
>0PL - ядро и драйверы, 3PL - прикладные программы - все!
Народня мудрость. Что еще изобретать то? ж)

>т.к. в принципе при особом желании любое отдельно взятое устройство может подвесить систему. Это первое.
Сорри за невнимательность, а что ты предлагаешь?
551
02 ноября 2005 года
Pavia
357 / / 22.04.2004
Цитата:
Originally posted by CodeWorld
>0PL - ядро и драйверы, 3PL - прикладные программы - все!
Народня мудрость. Что еще изобретать то? ж)


Вот тут и надо изобретать. Выносим драйвера на уровень 2PL и получаем защиту от сбоев. Вслучие, чего ядро останиться не поврежденным и сможет разрулить любую проблему. Получаем систему, которая не падает. Даже, если произошла ошибка в драйвере. И драйвер можно будет перезапустить.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог