URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 56837
[ Назад ]

Исходное сообщение
"FreeNOS - новая экспериментальная микроядерная ОС"

Отправлено opennews , 13-Июл-09 00:07 
Вышел (http://www.freenos.org/wiki/doku.php/news/0.0.3-released?Dok...)  релиз новой микроядерной операционной системы FreeNOS 0.0.3 (http://www.freenos.org/), разрабатываемой группой из трех энтузиастов в образовательных целях. Исходные тексты FreeNOS написаны на С++ и распространяются в рамках лицензии GPLv3. Несмотря на то, что с момента первого выпуска прошло несколько недель, для FreeNOS реализована собственная файловая система LinnFS, основанная на коде Ext2 ФС. Подготовлен демонстрационный LiveCD (ftp://ftp.freenos.org/pub/FreeNOS/iso/X86/) размером 1.3 Мб.


В настоящий момент реализована (http://www.freenos.org/wiki/doku.php/features) поддержка виртуальной памяти, планировщика задач, VFS и файловых систем LinnFS, Ext2, procfs и tmpfs, IPC-подсистемы, драйверов для клавиатуры, VGA, i8250 последовательного порта, PCI контроллеров. Из системных библиотек присутствуют libposix (POSIX функции), libc (ANSI C), libteken (эмуляция терминала), и li...

URL: http://www.freenos.org/wiki/doku.php/news/0.0.3-released?Dok...
Новость: http://www.opennet.me/opennews/art.shtml?num=22573


Содержание

Сообщения в этом обсуждении
"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено Анон , 13-Июл-09 00:08 
Что ж, удачи проекту. Быть может он станет нашим новым линуксом :)
Очень приятно, молодцы ребята!

"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено andr.mobi , 13-Июл-09 22:51 
респект однозначно, хороший старт!
правда, я вот не люблю ВотТакойВенгерскийСтильОтМаздай(), но всё равно - замечаний мало. Ребятам надо побольше почитать про отделение интерфейса от реализации и о роли в этом абстрактных классов и множественного наследования. Но видно, что научатся со временем.


"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено Ariel , 14-Июл-09 12:31 
Это не венгерская нотация, и не от MS, а от вменяемых людей, или вам нравится лучший_стиль_от_гну_программеров() ?

"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено аноним , 14-Июл-09 22:58 
>или вам нравится лучший_стиль_от_гну_программеров()?

ачтовамлегчечитатьтекстбезпробелов? ДажеЕслиБуквыВыделены...



"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено Ariel , 15-Июл-09 21:00 
Не поверите, легче, и я так пишу и мне всё понятно

"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено Аноним , 14-Июл-09 18:07 
Такой стиль нравится... а вот когда первую букву первого слова делают маленькой, то это хуже

"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено Ariel , 14-Июл-09 21:44 
ну не знаю ... вся Cocoa так написана,
[[NSOpenGLContext currentContext] flushBuffer]


"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено Аноним , 14-Июл-09 22:18 
Особенно это раздражает в с++

"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено Дмитрий Т , 15-Июл-09 13:51 
>Такой стиль нравится... а вот когда первую букву первого слова делают маленькой, то это хуже

Это распространённый способ отделения имён классов от имён переменных. Переменные начинаются с маленькой, классы с заглавной, а константы полностью заглавными.
http://geosoft.no/development/cppstyle.html

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


"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено Аноним , 13-Июл-09 00:50 
>В настоящий момент реализована поддержка виртуальной памяти

молодцы ребята, minix уже уделали :)


"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено fidaj , 13-Июл-09 00:55 
Не ради сарказма - а ради любопытства: чем это они minix уделали? Лицензией что-ли...?
Или набором из 4-х команд в консоли?...
Есть аргументы? Или эта ваша фраза просто так - для звука?

"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено Кир , 13-Июл-09 00:58 
Насколько я в курсе, поддержка ВП в миникс то ли в разработке, то ли еще в планах. Могу ошибаться.

"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено fidaj , 13-Июл-09 01:03 
>Насколько я в курсе, поддержка ВП в миникс то ли в разработке,
>то ли еще в планах. Могу ошибаться.

Ошибаетесь!
http://ru.wikipedia.org/wiki/Minix#Minix_3
http://www.minix3.ru/distr.html
http://gforge.cs.vu.nl/gf/project/minix/scmsvn/?action=brows...
http://gforge.cs.vu.nl/gf/project/minix/scmsvn/?action=brows...

Ребята молодцы - не спорю!
Ну коли они из академических соображений - то лучше бы они, все-таки, влились в разработку minix-a.


"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено ximaera , 13-Июл-09 01:38 
Главный вопрос тут такой: даст ли Таненбаум влившимся разработчикам участвовать в проектировании архитектуры, или придётся "делать, как профессор считает нужным".

"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено fidaj , 13-Июл-09 01:47 
Не думаю что Таненбаум такой деспот...
И очевидно хорошие идеи принимаются в любом проекте... И ясно что в рамках установленной архитектуры ядра...
Между прочим, ядро minix не сразу стало minix3 - это свидетельствует о том что, все-таки, архитектура minix претерпевает изменений и развивается. Значит и профессор меняет свои взгляды на архитектуру...

"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено ximaera , 13-Июл-09 01:53 
>Не думаю что Таненбаум такой деспот...

Каков Таненбаум в общении, мы все помним из "Just For Fun" :)


"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено аноним , 13-Июл-09 09:39 
Ну и какой же он в общении? В ньюс-группе, посвященной minix, финский мальчик запостил объявление о своей ОС. ast не только не послал его на йух за оффтоп, но вступил во вполне цивилизованную дискуссию.

"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено Sw00p aka Jerom , 13-Июл-09 10:37 
почитали бы лучше труды пофессора

я двумя руками за микроядерные операционки и Minix 3 хорошая штука

откройте её код и вы поймёте чтотакое ваще ОС и как она строится

откройте код линуха да там чёрт голову сломит


"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено Я , 13-Июл-09 10:57 
>почитали бы лучше труды пофессора
>
>я двумя руками за микроядерные операционки и Minix 3 хорошая штука

На десктопе используете? А как вам микроядерность обработки таймеров в minix? (да и терминалов вообще)

>откройте её код и вы поймёте чтотакое ваще ОС и как она
>строится
>
>откройте код линуха да там чёрт голову сломит

Где открыть? Сравним подсистемы USB linux и minix?


"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено Я , 13-Июл-09 14:41 
> вы ещё хер с пальцем сравнили бы

Сравнивать начал не я ;]
Я просто попросил конкретики: берем 1 подсистему и сравниваем качество документации (а заодно и реализации ;]). Или сразу согласитесь, что там документировать просто нечего?

1. Хороший код нуждается в минимуме пояснений.
2. Интерфейсы надо документировать.
3. Никакая документация не поможет, если не знаешь того, с чем работаешь.
4. Более сложная система _сложнее_ простой. Нефиг тут про чертей и ноги.

В linux с этим проблем я не видел (особенно! с основными подсистемами).

> а про вачдоги вы не слышали ?

Слышал/видел, АПВС? Их срабатывание тоже идеально реализуются средствами сообщений? :D

P.S. Книжку по разработке и реализации MINIX считаю самой хреновой и неинформативной книгой уважаемого AST.


"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено EVS21 , 13-Июл-09 15:50 
>1. Хороший код нуждается в минимуме пояснений.

Хороший код тот, что написан собою.

>2. Интерфейсы надо документировать.

+1

>3. Никакая документация не поможет, если не знаешь того, с чем работаешь.

+100

>4. Более сложная система _сложнее_ простой. Нефиг тут про чертей и ноги.

У любой задачи есть несколько решений.

>P.S. Книжку по разработке и реализации MINIX считаю самой хреновой и неинформативной
>книгой уважаемого AST.

Наверное нет ни одного человека, который бы на все 100% мог бы похвалить чужой труд!


"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено Sw00p aka Jerom , 13-Июл-09 18:55 
хороший программист поймёт любой код это всего лишь дело времени

документация на то чтобы понять с чем работаешь

линукс сложная система ??? нет это скомканная система всё в одном называется

и вы ещё скажите что монолитные ядра быстрее даёжнее и безопаснее микро ядер ???

а на с чёт книжек то вам надо линук нутшел прочесть


"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено Я , 13-Июл-09 22:49 
>хороший программист поймёт любой код это всего лишь дело времени

Да, но _как_ он его поймет?(правильно - в силу своей испорченности) Время - деньги. Хороший код лучше кода с устаревшей документацией.

>документация на то чтобы понять с чем работаешь

ОС работает с ресурсами железа и предоставляет слой виртуальной машины (syscalls). Minix не описывает ни то ни другое. Minix/linux - это идеология UNIX, которую вы должны знать, как и другие особенности (early BOOT, CPU, MMIO, DMA, SMP, периферия, баги/фичи железа).
И я вас уверяю - это _гораздо_ большее количество знаний, чем идея внутреннего устройства некоторой операционной системы. Идею minix можно описать в 10 страницах. Особенности реализации, как и везде, - по мере всаживания хаков.
Естественно, для написания небольшого индиского драйвера обычно не надо ничего, кроме брошюрки по API в обоих случаях, но мы же про целостное понимание?

>линукс сложная система ??? нет это скомканная система всё в одном называется

В linux _много_ всего - он (сравнительно) сложный за счет универсальности. Да, его сложно урезать до вывода в загрузившемся чуде "hello world" - и это минус его реализации. Embedded негодует, но minix хавать пока не рвется.

Что с чем скомкано? Примеры сударь! Четкую разницу: в linux плохо, в minix хорошо. Конкретную подсистему, а не общую картину навроде "ай да там сто тыщ мильёнов драйверов - это ж отстой, а вот в minix даже поддержки bluetooth нет - это круто и занимает меньше кода".

>и вы ещё скажите что монолитные ядра быстрее даёжнее и безопаснее микро
>ядер ???

Про производительность умолчу - сами всё знаете. Про микроядро на десктопе так и не ответили ;]

Микроядро не имеет прямого отношения к безопасности и надежности. К ним имеет отношение _сложность_.

Пример Механической сложности:
Реализуйте драйвер фреймбуфера с 2D ускорением по всем принципам микроядра. Я посмотрю на милые взаимодействия (в том числе и на интерфейс между модулями): менеджера памяти, драйвера видюхи, драйвера терминала, таймера и (самое интересное!) восстановления видеорежима при падении хоть одной из компонент.

Пример логическая сложности:
Еще интересно будет выглядеть размещение свопа на nfs(сетевом) разделе - как у мезанихма обмена сообщений с такими рекурсиями? В данном случае при нагрузке на менеджер памяти выделение памяти может потребовать IO (вызрузка страниц на сетевой диск), а IO соответственно и естественно - выделения памяти. Это _сложнее_ отслеживать в раздробленной на сервисы системе исключительно в силу более сложной в управлении архитектуры микроядра.

В "монолите" (с трудом поворачивается язык называть так linux) меньше проблем с изменением внутренних интерфейсов ядра. Там можно ставить логические границы интерфейсов как удобно, а не как торчит.

То, что в линуксе вызывает сегфолт(kernel ooops) и, возможно, оставляет примитивы синхронизации в нехорошем состоянии, в миниксе вызовет дедлок - на сообщение просто не ответят. Последствия ужасающи для всех задействованных подсистем.

В minix 2 офигенно достигалась стабильность: ядро и все сервисы ядра (и даже юзерспесный init!) были "скомканы" в один бинарь. Доступная память и, вроде, адрес для сервиса опеределялись на стадии компиляции и выделялась соотв. на стадии загрузки. Виртуальной памяти не было вообще. Защита - сегментная (ЕМНИП) - эти все упрощения дают "стабильность" (про микроядро - ни слова). Кстати, в linux часть сторонних патчей команды PaX (секьюрити параноики в хорошем смысле слова) берут идею сегментации некоторых подсистем.

>а на с чёт книжек то вам надо линук нутшел прочесть

Спасибо. Боюсь, что читал. Книжки по linux устаревают со страшной силой. Интересно, как они умудряются переделывать всю "скомканную" систему и не всё сломать в 0?. Вам советую понаблюдать за процессом разработки linux в linux kernel mailing list, чтобы чуть-чуть представлять модные веяния в способах достижения простых интересных работающих решений.

P.S.:
Кстати, Таненбауму там грант на 5M$ выделили. Видать, не будует больше minix поделием для студентов. Возможно - к счастью.


"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено Sw00p aka Jerom , 14-Июл-09 11:15 
Вот именно всё дело в том что время деньги

а вы забыли весь этам который прошёл линукс ???? сколько лет прошло

и сколько разработчиков в этом деле ???

И понятия стандарты юниксов это не есть ядро

вы саим говорите что ядро это прослойка между аппаратными устройствами и пользователем

>>Идею minix можно описать в 10 страницах.

Можно обойтись и одним предложением и вся суть будет понятна

Ядро в миникс управляет четермя основными компонентами (I/O, управление памятью, породитель процессов, шедуллер) и думаю этого достаточно для кернеля

более детально описанно в документации

и само понятие разделения юзер спейса от кернел спейса говорит само за себя

если в линухе из за ошибки в драйвере крешится кернель но в миниксе этого нет так как драйвера на ходятся в узер спейсе миниксу достаточно перезагрузить драйвер и всё

это одно из превосходящих линукс отличий а их много если детально покапаться

внизу табличка сравнения монолитных ядер с микроядрами

                Monolithic kernel Microkernel
Modularity             -               +
Complexity             -               +
Flexibility            -               +
Maintainability        -               +
Security               -               +
Performance            +               ?
Compatibility          -               +

и не надо забывать что двинуло Торвальдса на написания линукса а то что он отказался от идей Таннебаумана и нагло спорил ещё то это я оцениваю как понты когда спорят два программиста А что лучше процедурное программирование или ООП

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

вы говорите про реализацию виртуальной памяти зачем она нужна если есть кернель апи непосредственного управления паматью ? зачем ешё одна дополнительная прослойка? ядро должно заниматься строго конкретными заданиями а то что юзеру нужен блутуз пусть он напишет драйвер под него и всё и не надо мне отписывать Танненбауману чтобы он добавил мой код в ядро системы ))) и ждать его одобрения как это делается с линуксом


Как по вашему линукс можно назвать RTOS ????


>>В "монолите" (с трудом поворачивается язык называть так linux)

Линукс не монолитное ???


>>Микроядро не имеет прямого отношения к безопасности и надежности. К ним имеет отношение _сложность_.

а в чём сложность если ядро выполняет конкретные функции а в сё остальное в юзер спейсе
Делай что хочешь. У тебя есть интерфейс управлению памятью, вводом/выводом, есть тот же таймер который в кернель спейсе, есть шедуллер И что мешает ?


>>То, что в линуксе вызывает сегфолт(kernel ooops) и, возможно, оставляет примитивы синхронизации в нехорошем состоянии, в миниксе вызовет дедлок - на сообщение просто не ответят. Последствия ужасающи для всех задействованных подсистем.

та кчто же правильнее дедлок или сегфолт который приводит к краху всей системы ?

>>В minix 2 офигенно достигалась стабильность: ядро и все сервисы ядра (и даже юзерспесный init!) были "скомканы" в один бинарь.

прочтите релизнот  миникса 3 и миникс3 и 2 это как небо и земля

одним из главных отличий 3 от 2 это перенос драйверов устройств в юзер спейс
и это круто так как драйвера каждый раз надо переписывать под новую аппаратуру

или разработчики всяких устройств договариваются с Торвальдсом о том что они хотят сделать изменения ?

я думаю скоро линукс будет микроядерным они к этому идут добиваясь RTOS
темболее они хотять сделать линукс эмбеддед ОС


"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено devl547 , 14-Июл-09 13:52 
>внизу табличка сравнения монолитных ядер с микроядрами

Ой да ладно, где тесты, где тесты, я вас спрашиваю?

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

Как же так? А стабильность? А скорость? А микроядро?

>Как по вашему линукс можно назвать RTOS ????

Легко и просто. Пролистайте исходники rt-патча.

>Линукс не монолитное ???

Гибридное оно. И модульное.
Но при желании собирается в монолит (кстати, очень полезно для скорости, минимум накладных расходов)

>я думаю скоро линукс будет микроядерным они к этому идут добиваясь RTOS
>темболее они хотять сделать линукс эмбеддед ОС

Посмотри на NetBSD например. при сборке ядра можно вырубить все лишнее и ненужное. в Linux то же самое.


"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено fidaj , 14-Июл-09 17:43 
>Гибридное оно. И модульное.

Чего-о-о-о-о? Что гибридное? Не порите чушь!!! Оно и рядом с гибридным не валялось!
ОНО МОНОЛИТ И МОДУЛЬНОЕ!


"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено Sw00p aka Jerom , 15-Июл-09 02:14 
да забавно
а что вы скажите про остальные микроядерные ОС ????

если какойто потенциал не реализован это что означает подход к самой системе не верен ???

или скомкав всё в одно вы добьётесь супер-мега ОС ???

вы читали когда Торвальдс критиковал когда разработчики требовали внесения ряда новых системных вызовов в кернель при разработки новой ext4 ФС

в итоге что ??? ext3 по всем почти параметрам обставила ext4
и в чём проблема была ????

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

а вот с миниксом думаю такого и не будет

ваш пример про FUSE (фс в юзерспейсе) как раз к стате
для линукса что бы хорошо всё работало писать программы надо именно в кернель спейсе
в миниксе всё куда проще есть интерфейсы взаимодействия как с шедулером так и с ММ (мемори менеджемент) и ядро там выполняет строго определённые задачи


"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено Я , 15-Июл-09 11:22 
> если какойто потенциал не реализован это что означает подход к самой системе не верен ???

Я вам очертил проблемы реализации обычных вещей и попросил решения.

> вы читали когда Торвальдс критиковал когда разработчики требовали внесения ряда новых
> системных вызовов в кернель при разработки новой ext4 ФС

Ссылку на обсуждение, пожалуйста.
Side note:
Системный вызов - это интерфейс для _пользовательских_ программ. Ядро само ими не пользуется, оно их _реализует_. Какая разница пользователю - с микроядром он общается или с монолитом? Интерфейс то посредством системных вызовов, или мы не UNIX?

Новые ioctl/syscalls были/будут добавлены для поддержки дефрагментации и других фич, которые VFS в не обеспечивает в явном виде. В btrfs их вообще пруд пруди. Ужас, да?

> в итоге что ??? ext3 по всем почти параметрам обставила ext4
> и в чём проблема была ????

Я не понял, кто кого обставил? Потрудитесь поискать proof бенчмарки. Полистайте блог Теда Тсо: он рассказывает какие задачи он преследовал при проектировании ext4. К микроядру это, опять же, никаким боком.

> и чем дальше тем всё хуже будет ибо Торвальдсу всё придётся переписывать если только он > не переписывает

Посмотрите сколько кода Торвальдс успевает понаписывать между релизами:
$ ~/linux-2.6: git log --no-merges v2.6.29..v2.6.30 --author=Torvalds | git shortlog
Linus Torvalds (30):
...

30 коммитов! 10 из которых - это выпуск релиз кандидатов.
А секрет прост: он не втаскивает в своё дерево всякий "отстой". Но это не мешает "отстою" улучшаться, выслушивать критику и становиться "неотстоем". И, опять-же, к микроядерности это не относится.

> а вот с миниксом думаю такого и не будет

С ним это происходит более,чем 3й раз, не?

> ваш пример про FUSE (фс в юзерспейсе) как раз к стате
> для линукса что бы хорошо всё работало писать программы надо именно в кернель спейсе
> в миниксе всё куда проще есть интерфейсы взаимодействия как с шедулером так и с ММ
> (мемори менеджемент) и ядро там выполняет строго определённые задачи

FUSE не работает "плохо". Не передергивайте. Она просто работает не так эффективно, как могла бы. Я использую ntfs, samba, ftp, ssh и пару самописных fuse файлух. Они еще как работают, но ядро не может попросить их, например, уменьшить аппетиты на размеры кэша - кэши просто свопятся. Почему - догадываетесь? Причины абсолютно не имеют отношения к linux. Кстати, FUSE есть не только в linux.


"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено Я , 14-Июл-09 14:43 
>если в линухе из за ошибки в драйвере крешится кернель но в
>миниксе этого нет так как драйвера на ходятся в узер спейсе
>миниксу достаточно перезагрузить драйвер и всё

Я видел функциональность этих драйверов и то, как они выполняют привилегированные инструкции. Открыл /dev/mem - получил привилегии записи в порты. Так это было в minix2? Это даже не хак.
А как DMA делается из юзерспейса? DMA с MMU процессора не дружит ;] Я увижу каркас драйвера для фреймбуфера и картинки взаимодействия/восстановления после падения подсистем в minix? Или вдруг умершей файловой системы?

>это одно из превосходящих линукс отличий а их много если детально покапаться

Да да, я понял, только я пока ни 1 отличия не заметил. Драйвер (допустим файловой системы) магическим образом восстановит устройство, файловую систему и все сервисы, которые он повесил не ответив на сообщения (не первый раз пишу!). Что за бред? Вы меня слушаете вообще? Я вам привел конкретные примеры.

Все приведенные в таблице преимущества "абсолютно" верны и высосаны из пальца. Можно сравнить вызов функции с вызовом COM метода и нарисовать _точно_ такую-же таблицу. А потом еще и добавить что применив ухищрения можно свести COM выозов к вызову функции и наоборот (ну чуть более затратным). Вам приходилось работать с разветвленной структурой COM объектов? Как ощущения? :]

Единственное, с чем я могу согласиться - это то, что core уровень сетевой подсистемы в linux немного хрупок. Он может вызывать и часто вызывает невосстановимую панику ядра в результате ошибок. Это компромиссное решение. Часть сетевой подсистемы торчит прямо в обработчике прерываний (из-за вопросов производительности). Естественно, особо не повосстанавливаешься. Лично для меня это проблем не вызывает. Возникнут - будет висеть отдельный ядерный поток.

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

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

>вы говорите про реализацию виртуальной памяти зачем она нужна если есть кернель
>апи непосредственного управления паматью ? зачем ешё одна дополнительная прослойка?

Про SWAP слышали? Про NUMA? Про изоляцию процессов на аппаратном уровне? Толку от микроядра, если процессор не защищает адресные пространства сервисов? Это же похерит всю вашу идеологию, единственный (не очень)очевидный плюс микроядра ;]. Пользуясь API вообще пофиг, _как_ он реализован.

>ядро
>должно заниматься строго конкретными заданиями а то что юзеру нужен блутуз
>пусть он напишет драйвер под него и всё и не надо
>мне отписывать Танненбауману чтобы он добавил мой код в ядро системы
>))) и ждать его одобрения как это делается с линуксом

Ага, ясно. Только в linux он есть, а в minix нет и, видать, не будет.

>Как по вашему линукс можно назвать RTOS ????

На какой архитектуре? :]
Это _совсем_ другой холивар. Можно (правда, тут всё страшно зависит от задачи). Более того: монолит реалтаймом сделать не сложнее, чем стадо процессов. Про l4linux и -rt ветки, думаю, слышали. Я не зря сразу спросил, стоит ли у вас микроядро на десктопе. На нем элементы реалтайма куда важнее, чем какого-то сетевого сервера.

Опять же заранее соглашусь, что систему "без мяса" (читать: без функциональности) в realtime превратить гораздо проще.

>>>В "монолите" (с трудом поворачивается язык называть так linux)
>
>Линукс не монолитное ???

FUSE(файлухи), CUSE(char devices), TUN(virtual networking) - вот ваш явный юзерспейс. И это только начало. У этих подсистем точно такие-же болезни, как и у сходных сервисов микроядра.

>>>Микроядро не имеет прямого отношения к безопасности и надежности. К ним имеет отношение _сложность_.
>
>а в чём сложность если ядро выполняет конкретные функции а в сё
>остальное в юзер спейсе
>Делай что хочешь. У тебя есть интерфейс управлению памятью, вводом/выводом, есть тот
>же таймер который в кернель спейсе, есть шедуллер И что мешает
>?

Сложность в структуре взаимодействия сервисов и негибкости интерфейсов. Кто-то же уже написал свой драйвер bluetooth и fbcon. Любое кардинальное изменение всё сломает.

>>>То, что в линуксе вызывает сегфолт(kernel ooops) и, возможно, оставляет примитивы синхронизации в нехорошем состоянии, в миниксе вызовет дедлок - на сообщение просто не ответят. Последствия ужасающи для всех задействованных подсистем.
>
>та кчто же правильнее дедлок или сегфолт который приводит к краху всей
>системы ?

А дедлок(eng. deadlock) не приводит? Не каждый дедлок приводит к зависанию(но некоторые приводят) и _далеко_ не каждый ooops приводит к панике ядра. Это идентичного рода ошибки. Угадайте, какие проще исправить без редизайна?

>>>В minix 2 офигенно достигалась стабильность: ядро и все сервисы ядра (и даже юзерспесный init!) были "скомканы" в один бинарь.
>
>прочтите релизнот  миникса 3 и миникс3 и 2 это как небо
>и земля
>одним из главных отличий 3 от 2 это перенос драйверов устройств в
>юзер спейс
>и это круто так как драйвера каждый раз надо переписывать под новую
>аппаратуру

Последствия от падения - специфика драйвера. Про usermode linux слышали?
Это обычный юзерспесный процесс. Выполняет функции ядра linux. В нем можно, например, тестировать шедулер, файловые системы. Падение процесса - обычный сегфолт. Некоторые даже в production используют :]

>или разработчики всяких устройств договариваются с Торвальдсом о том что они хотят
>сделать изменения ?

Как кто. Мейнтейнеры сами занимаются поддержкой своих дров, получается очень и очень неплохо. Nvidia вообще плевать на Linus & co.

>я думаю скоро линукс будет микроядерным они к этому идут добиваясь RTOS
>
>темболее они хотять сделать линукс эмбеддед ОС

Уже давно в embedded. Причем с ростом характеристик встраиваемого железа linux вытесняет всё остальное со страшной силой.


"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено Sw00p aka Jerom , 14-Июл-09 11:26 
>[оверквотинг удален]
>На десктопе используете? А как вам микроядерность обработки таймеров в minix? (да
>и терминалов вообще)
>
>>откройте её код и вы поймёте чтотакое ваще ОС и как она
>>строится
>>
>>откройте код линуха да там чёрт голову сломит
>
>Где открыть? Сравним подсистемы USB linux и minix?
>На десктопе используете? А как вам микроядерность обработки таймеров в minix? (да и терминалов вообще)

ну это круто тогда вам надо на винду

то что миникс мало развивается это не говорит о том что это полное ГЭ
по крайней мере открыв исходник миникса я понял как устроена ОС чего о линуксе сказать нельзя

и многоуважаемый Таннебаум именно планировал для в образовательских целях и то что он выбрал микроядерную архитектуру это есть ГУД )))

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

знаете почему ??? потому-что в миниксе понятно что такое кернель и что оно должно строго делать

почему Торвальдс не взял за основу изучение там Ирикса или БСД ситему а именно Миникс ???
правильно он был студент ))


"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено Я , 14-Июл-09 21:42 
>ну это круто тогда вам надо на винду

Я вроде задавал простые вопросы и постоянно получал какое-то фуфло в ответ. Спасибо, это многое объясняет.

>по крайней мере открыв исходник миникса я понял как устроена ОС чего о линуксе сказать нельзя

Ну хоть на что-то сгодился.

>почему Торвальдс не взял за основу изучение там Ирикса или БСД ситему а именно Миникс ???
>правильно он был студент ))

Это в just for fun(?) написано.
0. потому, что "just for fun". Потроллить профессора на деле - это не всякую чушь постить.
1. AST был преподом Линуса. Линус изучал minix на 1 из курсов CS в университете. Вы чего от этого ждали?
2. Ирикс и AT&T UNIX derived на то время вообще исходники предоставляли? Что из них работало на i386?
3. BSD была альтернативой, но она участвовала в судебных тяжбах (что и послужило забитием на нее)


"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено Paulusx , 15-Июл-09 21:56 
Миникс - это здорово, как учебная ОС...
Но выдержать хороший стиль для системы в десятки раз большей куда более сложная задача...
Если бы каждый драйвер проходил ценз на читаемость кода, то сейчас бы линух поддерживал бы столько же оборудования, файловых систем, технологий, и.т.д. сколько и миникс... А это не совсем то, что нужно от реально используемой ОС...

"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено ximaera , 13-Июл-09 02:01 
>И очевидно хорошие идеи принимаются в любом проекте... И ясно что в
>рамках установленной архитектуры ядра...

Правильно. А если хочется попробовать другую архитектуру?

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


"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено fidaj , 13-Июл-09 11:36 
>>И очевидно хорошие идеи принимаются в любом проекте... И ясно что в
>>рамках установленной архитектуры ядра...
>
>Правильно. А если хочется попробовать другую архитектуру?

"Хочется" всегда должно основываться на "Можется" - а это, в свою очередь, на "Умеется"... Иначе получается вседозволенность и, как результат, помойка (как сами знаете где)...
>В конце концов, ярко выраженной срочной потребности в микроядерной ОС не наблюдается,
>так что можно не "вливаться" и не докручивать что-то одно до
>работоспособного состояния, а взять и попробовать новый подход.

И повысить, в очередной раз, энтропию...


"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено Sw00p aka Jerom , 13-Июл-09 18:56 
>>И очевидно хорошие идеи принимаются в любом проекте... И ясно что в
>>рамках установленной архитектуры ядра...
>
>Правильно. А если хочется попробовать другую архитектуру?
>
>В конце концов, ярко выраженной срочной потребности в микроядерной ОС не наблюдается,
>так что можно не "вливаться" и не докручивать что-то одно до
>работоспособного состояния, а взять и попробовать новый подход.

а отличие мокроядерных от монолитных ядер вы секёте ?

или это всё одно и тоже и что торвальдс это очередной менеджер как бил гейтс


"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено ximaera , 21-Июл-09 15:25 
"Мокроядерные" -- это пять :)

"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено ximaera , 13-Июл-09 01:41 
>Ошибаетесь!

Кстати, посмотрел ссылку в Википедии и между фразами

> поддержка ВП в миникс то ли в разработке, то ли еще в планах

и

> Начиная с версии 3.1.4 (в настоящее время находится в состоянии пререлиза) Minix поддерживает виртуальную память

большой разницы не вижу. Пререлиз -- это не релиз, это ещё разработка.


"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено fidaj , 13-Июл-09 01:49 
>>Ошибаетесь!
>Кстати, посмотрел ссылку в Википедии и между фразами

Потому я и дал ссылку на minix3.ru - на вики необновленная информация...
>> поддержка ВП в миникс то ли в разработке, то ли еще в планах
>

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

А вы загляните в исходники одной и другой ОС - сразу увидите разницу...



"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено ximaera , 13-Июл-09 01:56 
>Потому я и дал ссылку на minix3.ru - на вики необновленная информация...

А какая разница?

> 3.1.4 | 14 mb | 02.03.2009 | скачать | экспериментальная версия, релиз 4214

Экспериментальная версия -- это не релиз. Ни одного релиза Minix с поддержкой виртуальной памяти ещё не было. А в релизе FreeNOS она уже есть.


"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено fidaj , 13-Июл-09 02:04 
>>Потому я и дал ссылку на minix3.ru - на вики необновленная информация...
>
>А какая разница?
>
>> 3.1.4 | 14 mb | 02.03.2009 | скачать | экспериментальная версия, релиз 4214
>
>Экспериментальная версия -- это не релиз. Ни одного релиза Minix с поддержкой
>виртуальной памяти ещё не было. А в релизе FreeNOS она уже
>есть.

Погрязнем в выяснении понятий...
И там - и там релиз ТЧК! А то что славяне дописали "экспериментальная версия" - от широты душевной... Дописать можно  что угодно - сути дела не меняет.
Главное что бы мы с вами понимали - что мы хотим этим сказать?!...
FreeNOS vs monox3 <=> holy war какой-то получается...;)
Выясняем какое яблоко более красное или более кислое...:)


"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено Sw00p aka Jerom , 13-Июл-09 10:43 
>>Потому я и дал ссылку на minix3.ru - на вики необновленная информация...
>
>А какая разница?
>
>> 3.1.4 | 14 mb | 02.03.2009 | скачать | экспериментальная версия, релиз 4214
>
>Экспериментальная версия -- это не релиз. Ни одного релиза Minix с поддержкой
>виртуальной памяти ещё не было. А в релизе FreeNOS она уже
>есть.

24.04.2009: Объявлены проекты, которые должны быть реализованы в рамках программы Summer of Code, уже в пятый раз проводимой компанией Google. В программе участвует более 150 организаций и ровно 1000 студентов. Среди организаций — такие известные проекты как Apache, Blender, GIMP, GNOME, Inkscape, KDE, Mono, OpenSSH, Python Software Foundation и Ruby on Rails.  
От MINIX 3 объявлены следующие проекты:
- Writing /proc and /dev File Systems - студент Alen Stojanov;
- Using Virtual Memory - студент Wu Bingzheng;
- Performance Measuring using Hardware Performance Monitoring Counters - студент Alex Ray;
- Shared Memory Implementaion in Minix3 - студент Guanqun Lu ;

Пдробности по каждому из проектов можно почитать здесь: http://socghop.appspot.com/org/home/google/gsoc2009/admin_mi...


"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено Кир , 13-Июл-09 00:56 
Молодцы! ИМХО, микроядерность интересная штука. Будем болеть за проект!

"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено User294 , 13-Июл-09 15:00 
У меня 1 вопрос: а это в который уже по счету раз за последнее десятилетие? :)

"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено ximaera , 13-Июл-09 01:52 
Код действительно неплох, хотя то, что с первого же взгляда я наткнулся на

> for (int i = 0; i < 17; i++) // kernel/X86/Kernel.cpp

и очередной самописный строковый класс, несколько смущает.

Если binutils привинтить, неплохая штука с точки зрения образования. Вопрос в том, найдётся ли хоть один энтузиаст, который задействует её в обучении.


"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено andr.mobi , 13-Июл-09 23:15 
>и очередной самописный строковый класс, несколько смущает.

есть, есть косяки.
не очень понятно, зачем malloc, new в С++ гораздо удобнее и надёжнее и давно стандартизован. Очень много макросов, непонятно - зачем, С++ специально поддерживает свой стиль, макросы - это такое же зло, как оператор goto. Видно, что опыта мало и знаний, но всё-таки! Зачот, однозначно


"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено anonymous , 13-Июл-09 02:03 
А тем временем...

>>...work has already started on the next release, and maybe we'll have our 0.0.4 ready end of this month.

Реактивное начало)) Интересно чем это всё кончится.


"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено mma , 13-Июл-09 04:58 
Реактивным концом - запал студентов пройдет и усе. не они первые не они последние.

"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено fMad , 13-Июл-09 07:29 
Видимо кто давал задание - велосипедист, родили ещё одного маленького и потому пушистого (все котята интересные) уродца, который даже не видит
А ведь вместо этого могли бы заработать с minix или например с нашими http://jarios.org/

"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено pavlinux , 13-Июл-09 09:30 
>А ведь вместо этого могли бы заработать с minix или например с
>нашими http://jarios.org/

Или Таненбауманская Амоёба, или АйБиэМовска К42  


"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено ffsdmad , 13-Июл-09 09:39 
по-вашему получения опыта и навыков написания новой ос с ноля сейчас восстребованно?
а потерять время ради прихоти глупого препода, вместо сотрудничества с хорошей коммандой и заработка?
таких студентов, пишущих STL каждый семестр очень и очень много

"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено pavlinux , 13-Июл-09 09:43 
Главный пингвин тоже дипломную делал, сейчас на BMW Z4 катается.
Так что, медотом естественного отбора - выживет самый сильнейший.

Да и просто, человек который в себе смог подавить комплекс велосипеда, далеко пойдёт.
Такому человеку накакать, что есть велик, ему интересен состав и принцип работы велосипеда.
От цепной передачи до молекулярных процессов в кристалическтх решётках материалов.




"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено ffsdmad , 13-Июл-09 09:58 
я так понимаю ТБ с них денежки слупливал за свою учебную ос, и лнс пошёл на конфликт с ним, на прынцып встал так сказать ну нельзя же было тогда сказать, что он так подговнит ТБ

"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено sergem , 13-Июл-09 13:41 
>я так понимаю ТБ с них денежки слупливал за свою учебную ос,
>и лнс пошёл на конфликт с ним, на прынцып встал так
>сказать ну нельзя же было тогда сказать, что он так подговнит
>ТБ

Ну и зачем прелюдно фигню пороть? Какую денюшку, ежели права на ОС принадлежали издателю?
И чем лнс подгавнял ТБ? Вытеснил из ВУЗ-ов эту учебную систему?
Учите матчасть, ибо читавший ТБ никогда не станет на него брызгать слюной.


"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено pavlinux , 13-Июл-09 14:20 
>я так понимаю ТБ с них денежки слупливал за свою учебную ос,
>и лнс пошёл на конфликт с ним, на прынцып встал так
>сказать ну нельзя же было тогда сказать, что он так подговнит
>ТБ

Не, я с утра не курю...


"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено Planner , 13-Июл-09 11:47 
k42 ist good, ya ya

"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено dq0s4y71 , 13-Июл-09 12:56 
Это Кнышев. http://lib.rus.ec/b/122154/read

По теме. ОС, для которой главное - "хорошая читаемость кода, исчерпывающее документирование кода и высокая доступность для сборки", - это какая-то студенческая работа. У промышленных ОС требования немного другие... ;)


"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено аноним , 13-Июл-09 13:51 
>ОС, для которой главное - "хорошая читаемость кода, исчерпывающее документирование
>кода и высокая доступность для сборки", - это какая-то студенческая работа.
>У промышленных ОС требования немного другие... ;)

судя по вашим словам, промышленные ос поддерживать не надо
или поддерживают их максимум два-три человека


"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено User294 , 13-Июл-09 15:18 
>судя по вашим словам, промышленные ос поддерживать не надо
>или поддерживают их максимум два-три человека

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

В итоге - велосипедов изобретаются тысячи.Вот только в мелкосерийное производство идут едва-ли десятки.А так чтобы тысячами - уже и вовсе немногие.Ну а миллионными тиражами выпускаются и вовсе единицы.Потому что велосипеды с квадратными колесами для езды по лестнице - может и хороши, но тех кому они нужны не так уж и много.И то что они куда лучше ездят по лестницам (отскребаются после сбоя в драйверах, etc) - большинству по барабану.ALLу не надо ездить по лестницам - им по дороге надо ездить, желательно - без лишних приключений (т.е. ALLу как правило не надо чтобы драйвера легко отскребались после падения мордой в асфальт, им надо - чтобы драйвера просто РАБОТАЛИ. Попросту не падая, елки).


"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено Аноним , 13-Июл-09 14:43 
Ещё одни перцы, которым проще написать своё, чем изучить готовое.

"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено anonymous , 13-Июл-09 18:03 
> Исходные тексты FreeNOS написаны на С++

Микроядро на C++? Отказать. Это только усложнит код и создаст лишние тормоза. ООП нужен для упрощения проектирования сложных программных систем. Простые вещи должны нужно делать простыми методами, в рамках процедурной парадигмы.


"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено vinnie777 , 13-Июл-09 18:43 
>Микроядро на C++? Отказать. Это только усложнит код и создаст лишние тормоза.
>ООП нужен для упрощения проектирования сложных программных систем. Простые вещи должны
>нужно делать простыми методами, в рамках процедурной парадигмы.

  Ну-ну... Кажется все реализации L4 написаны на C++. В какой-то момент, когда кол-во строк кода переваливает за миллионы, ООП начинает давать преимущество не только в сопровождении, но и в скорости. Самые критические участки можно написать хоть на ассемблере, а остальное.... Здесь аналогия с дизелем: при малых мощностях, у бензинового двигателя удельная мощность  больше чем у дизеля, при больших мощьностях уже дизель выигрывает



"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено alexr_ , 14-Июл-09 00:55 
Улубнуло:
>Когда кол-во строк кода переваливает за миллионы, ООП начинает давать преимущество не только в сопровождении.

Надеюсь вы имели в виду не C++, Java, C# etc.

Ато в C++ коде конструкции вроде:
char *c;
...

c= "-good\n" + (a && 1);

Уже сносят крышу и даже:
a = b;
Абсолютно нечитаемо если не держать в памяти сотни виртуальных наследований методов и переопределений операторов (мой любимый пример pwlib и openh323).

--------------
BTW А с чего это многие считают что на C нельзя ООП? В ядре Linux ООП просто дохрена. И главное, что по коду всегда понятно что тут происходит.


"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено Ariel , 14-Июл-09 01:10 
Мне интересно иное: почему не реализуют поддержку Objective C основными коммерческими компиляторами,  и не создадут полноценной кроссплатформенной runtime библиотеки? Или это политические причины - не хотят делать подарок Apple?

"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено User294 , 14-Июл-09 01:40 
>В какой-то момент, когда кол-во строк кода переваливает за миллионы,

...оно перестает быть МИКРОядром и становится очередной монстрилой с вагоном дерьма в ядре?Ну вон НТя так появилась.Что-то от микроядер там есть, но глядя на >6Mb кернельного кода понимаешь что микро оно настолько же как и сам микрософт.


"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено anonymous , 14-Июл-09 18:20 
Ядро с миллионами строк кода -- это уже не микроядро.

"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено fidaj , 14-Июл-09 18:25 
>Ядро с миллионами строк кода -- это уже не микроядро.

Та хоть два милиона строк кода... Не по этим признакам ядра типизируются!


"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено vinnie777 , 13-Июл-09 18:51 
И, кстати, по теме: почему и правда им не влится в команду minix или разрабов по очень перспективному микроядру L4. (http://genode.org/ , http://www.l4dev.org/doku.php/news )
  Если не ошибаюсь, в L4 и виртуальная память уже давно реализована


"FreeNOS - новая экспериментальная микроядерная ОС"
Отправлено barmaglot , 15-Июл-09 14:30 
Вот за такое расстреливать нужно:
-----------------
API       BitMap.h      Doxygen.h  Factory.h       HashTable.h  Iterator.h  ListIterator.h  Queue.h      String.h  Version.h
Array.h   Comparable.h  Element.h  HashFunction.h  Init.h       kernel      Macros.h        Singleton.h  Types.h   X86
Assert.h  Config.h      Error.h    HashIterator.h  Integer.h    List.h      Map.h           Stack.h      Vector.h
--------------