Хватит болтать то надо действовать!
+----------------------------------------------+
| Хватит болтать то надо действовать! |
+----------------------------------------------+
------------------------------------------------
К сожалению не смог прочитать всех тем но могу сказать что на мой взгляд ОС это не совсем низкоуровневое програмирование и на Асме всю ос ну никак не выйдет максимум пару десятков процедур. Писать надо на Языках высокого уровня это доказанно практикой, Слышал сздесь про МенуетОС написанной на Асме сразу скажу это лажа а не ОС.
Блин нашелся бы умный человек который это все дело собрал бы в руки, ну создалбы сайт провелбы может какой нибуть опрос и написал бы ченибудь, как Линус Тодвальст (не помню как точно зовут) он же написал свою ОС Линукс за 2 месяца и всем показал свое творение, но это так фигня я думаю мы пойдем дальше ,выше.
Надо организовать проект с полной мельчайшей документацией чтобы любой человек в любое время мог присоедениться!
_________________________________________________
_________________________________________________
К сожалению не смог прочитать всех тем но могу сказать что на мой взгляд ОС это не совсем низкоуровневое програмирование и на Асме всю ос ну никак не выйдет максимум пару десятков процедур. Писать надо на Языках высокого уровня это доказанно практикой, Слышал сздесь про МенуетОС написанной на Асме сразу скажу это лажа а не ОС.
Блин нашелся бы умный человек который это все дело собрал бы в руки, ну создалбы сайт провелбы может какой нибуть опрос и написал бы ченибудь, как Линус Тодвальст (не помню как точно зовут) он же написал свою ОС Линукс за 2 месяца и всем показал свое творение, но это так фигня я думаю мы пойдем дальше ,выше.
Надо организовать проект с полной мельчайшей документацией чтобы любой человек в любое время мог присоедениться!
А смысл? Есть уже хорошие ОС, зачем изобретать велосипед? Делать еще один клон Юникса сегодня вобще смысла нет, вряд ли он станет популярнее Линукса или Фри. Если делать, то что-то принципиально новое (и лучше того что есть), а это не так легко. Вот в Юниксах все очень просто сделано: есть юзеры, есть файлы и есть процессы. Если придумать что-то лучше этого и еще проще, и чтоб работало, я только за :)
Линус, кстати написал не ОС, а ядро ОС, используя инструменты GNU, за что GNU на него обиделись и теперь всем говорят, что надо писать GNU/Linux :)
"Надо организовать проект с полной мельчайшей документацией чтобы любой человек в любое время мог присоедениться!" - как насчет CWEB (в плане полной мельчайшей документации) ?
________________________________________________
+----------------------------------------------+
| Хватит болтать то надо действовать! |
+----------------------------------------------+
------------------------------------------------
Линус Тодвальст (не помню как точно зовут) он же написал свою ОС Линукс за 2 месяца и всем показал свое творение, но это так фигня я думаю мы пойдем дальше ,выше.
Эээхх, а он кстати Линукс не с нуля писал.
Вот так.
Эээхх, а он кстати Линукс не с нуля писал.
Вот так.
опа... а с чего же? Именно с нуля :)
опа... а с чего же? Именно с нуля :)
Не-а :) Он его с Minix'а писал. Вплоть до 1994 года в линуксе присутствовал код из миникса
Если делать, то что-то принципиально новое (и лучше того что есть), а это не так легко. Вот в Юниксах все очень просто сделано: есть юзеры, есть файлы и есть процессы. Если придумать что-то лучше этого и еще проще, и чтоб работало, я только за :)
Как насчет GNU HURD? Сдается мне, товарищи, что она все-таки придет на смену Linux.
Линус, кстати написал не ОС, а ядро ОС, используя инструменты GNU, за что GNU на него обиделись и теперь всем говорят, что надо писать GNU/Linux :)
И правильно говорят :) Если бы не FSF, Линус бы задолбался сам писать на свою ось софт :)
А смысл? Есть уже хорошие ОС, зачем изобретать велосипед? Делать еще один клон Юникса сегодня вобще смысла нет, вряд ли он станет популярнее Линукса или Фри. Если делать, то что-то принципиально новое (и лучше того что есть), а это не так легко. Вот в Юниксах все очень просто сделано: есть юзеры, есть файлы и есть процессы. Если придумать что-то лучше этого и еще проще, и чтоб работало, я только за :)
Линус, кстати написал не ОС, а ядро ОС, используя инструменты GNU, за что GNU на него обиделись и теперь всем говорят, что надо писать GNU/Linux :)
А я и не говорю про клон Unix надо создать принципиально новую ОС, и естественно надо начаначь с ядра(а может и ядра не будет :)
А вообще надо начинать с замысла многие придумывают свои ОС но на них никто не обращает внимание хотя зря быть может там есть дельная идея!!! Собрать все ети идеи в одну кучу проанализировать и можно начинать.
1.Цели ОС и ее предназначение
2.Решить на каком языке будем писать.
3.Ядро
4.Работа с памятью
5.Работа с устройствами
6.Файловая система
7.Какие у нашей ос будут приложения (структура)
8.Загрузчик
Это только!!!! на начальном этапе
И желательно графическую оболочку для большей наглядности работы ОС и для быстрого нахождения ошибок.
1. Полная универсальность.
2. ASM и C++
(Ну типа писать на C++, выводить ассемблерный листинг и оптимизировать вручную)
3. Монолитное ядро со встраиваемымы модулями
(Чтобы не было никаких перекомпиляций ядра.)
4. Ну это сразу не скажешь, думать надо.
5. А что тут может быть особенного?
6. Новая
7. Тоже новая структура.
8. Boot сектор и вторичные загрузчик
(Как в Windows NT)
Надо создать целый сайт для обсуждения и образцов разработки, а так же документация тоже не помешает я например всего не знаю как и все остальные.
Да Линукс как детише интеренета только для него и годится. Если я у кого и вижу Linux(и прочие unix-ы) то только как Сервак.
А на счет 3d графики это точно, видели бы вы как у меня TUX RACER играл на моем 800 селероне с 2 GeForce -м
Да не в этом разница между NT и Linux. Обе эти системы достаточно преуспели в техническом плане (угу, обладая прямыми руками, можно любую из них приспособить под свои нужды) и существенное различие у них одно: Linux - свободная система, NT - закрытая. И если о технических недостатках и преимуществах можно спорить до пены у рта, то о лицензионных спорить не нужно :)
P.S. Стандартные драйвера XFree86 не поддерживают ускорение и чтоб оно поддерживалось на твоем ДжиФорсе, нужно ставить родные от nVidia.
Да хватит об этом Linux, если писать, так что-то совсем новое, т.е. полностью универсальную ОС. Вот можно нормально в линуксе с графикой работать, если процедуры не в ядре находятся? Наиболее это чувствуется в 3D-играх.
Так же Windows и к сетям приспособлен. Так вот план такой:
1. Полная универсальность.
2. ASM и C++
(Ну типа писать на C++, выводить ассемблерный листинг и оптимизировать вручную)
3. Монолитное ядро со встраиваемымы модулями
(Чтобы не было никаких перекомпиляций ядра.)
4. Ну это сразу не скажешь, думать надо.
5. А что тут может быть особенного?
6. Новая
7. Тоже новая структура.
8. Boot сектор и вторичные загрузчик
(Как в Windows NT)
А где же новизна? И в чем смысл создания собственной файловой системы? "Еще один Mitja Gladkih?" (c) :)
На мой взгляд план такой:
3.Ядро
Вот тебе идея по поводу ядра: дать возможность пользователям (не только root) загружать свои серверы ядра. Так как ядро будет микроядром, то они не смогут повлиять на работу самого микроядра и серверов других пользователей, а будучи серверами, будут работать эффективнее пользовательских приложений.
Допустим пользователь - любитель Windows, тогда загрузив соответствующий сервер ядра, он сможет иметь полный Look&Feel&все остальное своей любимой системы. В том числе и любимую ядреную графику.
А если пользователь - прожженый юниксоид, то он загрузит сервер posix-совместимости и тоже будет счастлив.
2Dragon: с монолитным ядром не удастся достичь той гибкости, которая необходима для действительно универсальной системы
Вот тебе идея по поводу ядра: дать возможность пользователям (не только root) загружать свои серверы ядра. Так как ядро будет микроядром, то они не смогут повлиять на работу самого микроядра и серверов других пользователей, а будучи серверами, будут работать эффективнее пользовательских приложений.
Допустим пользователь - любитель Windows, тогда загрузив соответствующий сервер ядра, он сможет иметь полный Look&Feel&все остальное своей любимой системы. В том числе и любимую ядреную графику.
А если пользователь - прожженый юниксоид, то он загрузит сервер posix-совместимости и тоже будет счастлив.
2Dragon: с монолитным ядром не удастся достичь той гибкости, которая необходима для действительно универсальной системы
Топик гласит: "Хватит болтать то надо действовать!"
А в ответ очередная болтовня...
А всё потому, что вы, уважаемые, пытаетесь не только заново изобрести велосипед, но и оснастить его вечным двигателем, а в бардачок положить пару философских камней...
Вы посмотрите, на ваши требования к системе, плану действия и сравните его с требованиями и планом разработки существующих ОС, например Windows NT (Хелен Кастнер, кажется это описывала). Так вот если выбросить по-детски бредовые идеи, то получается, что и требования совпадают, и этапы. Шаблоно мыслим...
"Полная универсальность" - враг всего хорошего и надежного. Кто-нибудь может привести пример универсальной вещи в нашем мире, кроме пластилина. Моё мнение: сначала разберитесь, для чего нужна ваша новая ОС, и чем уже будет её специализация, тем удачней будет продукт.
Уже давно доказано, что в масштабе нашего мира нельзя сделать вечный двигатель, так неужели ещё кто-то думает, что достаточно написать идеальную ОС, чтоб работать на 286 с 3D-графикой, как на SG.
"Ну типа писать на C++, выводить ассемблерный листинг и оптимизировать вручную"
Напоминает анекдот про чукчу (извиняюсь перед представителями этой национальности, но "из песни слова не выкинишь"), которому подарили "Камаз":
- Ну как нравиться машина?
- Нравиться. Однако, собаки таскать её быстро устают.
Я не отговариваю вас писать новые ОСи. Пишите, может, что путное выйдет, а если не выйдет, то может хоть новые идеи родяться (как у алхимиков). Жаль, просто, смотреть на крайне-революционный настрой:
Все ОС неумные мы разрушим до основанья,
а за тем мы нашу ОС универсальную напишем...
Для начала обсудите: зачем? Чем не устраивают существующие? Думаю в результате правильных и упорядосенных ответов вы решите, что надо создать не одну универсальную ОС (которая и в стиральной машинке, и в игровой приставке, и на интернет-сервере, и на борту МКС), а несколько строго специализированных систем с возможностью их взаимодействия.
Это не нравоучения и не советы, а так, мысли в слух (IMHO).
Гы! И у меня есть идея. Пусть ваша ОС будет объектно-ориентированной, что не наблюдается ни в *nix, ни в Windows.
Топик гласит: "Хватит болтать то надо действовать!"
А в ответ очередная болтовня...
В наше время, товарищ, писать ОС на коленках по меньшей мере глупо... Должна быть идея, вокруг которой и будет вестись разработка. Если же человек пытается разработать полную чушь, то в ходе, как ты выразился, "болтовни", у него это желание с гарантией пропадет - опять же польза.
Так вот если выбросить по-детски бредовые идеи,
Если ты имеешь ввиду высказанную мной идею, то она уже реализуется в HURD. Ты наверняка слышал про эту ОС?
Гы! И у меня есть идея. Пусть ваша ОС будет объектно-ориентированной, что не наблюдается ни в *nix, ни в Windows.
Такая система уже была разработана в середине 80х - NextStep.
P.S. называть все непохожие на существующие идеи бредовыми - первый признак того шаблонного мышления, в котором ты нас обвиняешь. Не в обиду будет сказано
не полное молчание а обсуждение на каком то примере (програмного кода)
Люди предлагают свой вариант допустим ядра, другие смотрят и обсуждают :)
Вот ждемс когда ктонибудь чтонибудь подкинет :)
Большая проблема заключается в том что все наши представления о ОС-ях навязанны нам создателями Unix-а, таже самая винда была слизанна с него (правда щас идет в другую сторону)
Сильно нового ничего никто так и не придумал!!!(Быть может и придумали только не реализовали) Не ужели нет больше пути чем Unix -путь или он появится только тогда когда координально изменится архитектура компьютера???
А на счет обьектно-ериентированости надо еще подумать, это же не просто так хухры-мухры
Lonesome:
Он его с Minix'а писал. Вплоть до 1994 года в линуксе присутствовал код из миникса
Разве? А чего ж он тогда с Таненбаумом ругался по поводу плохого кода Миникса? (Хотя может я забыл чего)
Lonesome:
Как насчет GNU HURD? Сдается мне, товарищи, что она все-таки придет на смену Linux.
Ну в этом я сомневаюсь. Линукс слишком раскручен, вряд ли HURD его вытеснит в обозримом будущем.
Lonesome:
И правильно говорят :) Если бы не FSF, Линус бы задолбался сам писать на свою ось софт :)
Согласен :) И вобще, "каждая задача должна быть решена только один раз, т.к. творческие мозги - слишком ценный ресурс, чтоб тратить его на изобретение велосипеда" (с) :)
Bair Logic:
А я и не говорю про клон Unix надо создать принципиально новую ОС...
Так я только за! :) Только это почему то не так легко, как кажется.
(C)dragon:
Вот можно нормально в линуксе с графикой работать, если процедуры не в ядре находятся? Наиболее это чувствуется в 3D-играх.
Можно. Если все настроить как надо. К тому же, XFree86 - не единственная реализация X11, а X11 - не единственная графическая система. В этом то и смысл, что компоненты системы можно менять на какие угодно.
(C)dragon:
(Ну типа писать на C++, выводить ассемблерный листинг и оптимизировать вручную)
Ну вам уже про чукчу рассказали :)
Bair Logic:
...как у меня TUX RACER играл на моем 800 селероне с 2 GeForce -м
http://nightfly.asmodeus.com.ua/nvfaq.txt
Q:А почему вот тут у меня игрушка tuxracer, chromium, итд.. и тачка PIII/128/32 а она жутко тормозит
хотя ничего такоооого особенно крутого из себя не представляет?
A: Скорее всего у тебя карточка от nVidia, тоесть созданая на чипсете от
nVidia и носит название типа:
-VANTA
-TNT
-TNT2
-GeForce
-GeForce2
-GeForce3
-GeForce4
В норме эта карточка работает практически всеми современными дистрибутивами но поскольку создатели даных
чипсетов используют специфическое представление об OpenGL то для правильной поддержки 3Д требуются драйвера
от nVidia.
Bair Logic:
Большая проблема заключается в том что все наши представления о ОС-ях навязанны нам создателями Unix-а, таже самая винда была слизанна с него
Винда-то? Винда - потомок DOS, который абсолютно не похож на Unix (сказал бы я, на что он похож...)
Bair Logic:
Не ужели нет больше пути чем Unix
Есть. Винда :)
ИМХО Unix - почти идеальная ОС для существующей сегодня архитектуры компьютера. В хорошей ОС с точки зрения пользователя все должно быть как можно более просто (принцип KISS - keep it simple, stupid), что мы и наблюдаем в Unix. Если сумеете упростить еще больше - флаг вам в руки :) Но пока - только разговоры о том, что "все должно быть новым, а вот каким - черт его знает".
Кстати, идейка, а почему б не копнуть глубже, и изобрести новую архитектуру? :D
Привет всем. ПонаписАли-то :)
Ну в этом я сомневаюсь. Линукс слишком раскручен, вряд ли HURD его вытеснит в обозримом будущем.
ИМХО раскручен не Linux (в смысле ядра), а именно GNU/Linux. Остается выбросить старое ядро и заменить его HURD'ом :)
Согласен :) И вобще, "каждая задача должна быть решена только один раз, т.к. творческие мозги - слишком ценный ресурс, чтоб тратить его на изобретение велосипеда" (с) :)
Тысячу раз верно (с) Ленин :)
Кстати, идейка, а почему б не копнуть глубже, и изобрести новую архитектуру? :D
Что-то до сих пор нет свободных архитектур, лицензированных под GNU GPL... Чтобы любая компания могла купить завод по производству микросхем и начать клепать эти процы :)
Большая проблема заключается в том что все наши представления о ОС-ях навязанны нам создателями Unix-а
Я бы даже сказал - все наши представления об ОСях навязаны нам создателями транзистора :)
В наше время, товарищ, писать ОС на коленках по меньшей мере глупо... Должна быть идея, вокруг которой и будет вестись разработка. Если же человек пытается разработать полную чушь, то в ходе, как ты выразился, "болтовни", у него это желание с гарантией пропадет - опять же польза.
Согласен, вот только добавлю, что кроме голой идеи должен быть довольно строго расписсанный процесс разработки, штат специалистов различных областей IT. Один человек или группа энтузиастов ничего путного не напишут. К сожалению, время самородков-индивидуалов проходит.
Если ты имеешь ввиду высказанную мной идею, то она уже реализуется в HURD. Ты наверняка слышал про эту ОС?
Нет, не слышал. Наверное, я должен покраснеть за свою темноту? Честно говоря, я не являюсь страстным поклонником и ярым иследователем новых ОС. Я, так сказать, пользуюсь тем, что дают. Пользуюсь, улучшаю, приспосабливаю.
Такая система уже была разработана в середине 80х - NextStep.
А вот об этом слышал, поэтому и предлагаю использовать подобные подходы с учетом новых веяний в области OOA&D
P.S. называть все непохожие на существующие идеи бредовыми - первый признак того шаблонного мышления, в котором ты нас обвиняешь. Не в обиду будет сказано
А вот тут непонятка вышла. Новое, оригинальное, непохожее всегда привлекает. Мне и самому часто приходиться доказывать, что мои мысли не бред:
http://forum.codenet.ru/showthread.php?s=&threadid=9878
http://forum.codenet.ru/showthread.php?s=&threadid=9301
Кстати, о шаблонах... :)
Шаблонное мышление тренирует это самое иышление, если под шаблоном подразумевать template<> из С++
Бредом же я называю попытки достичь "полной универсальности, гибкости", попытки конкурировать (сразу же) с существующими ОС корпоративной разработки, попытки прыгнуть выше головы, точнее выше харда. Если думать о новых реалях, то думать надо реально.
Вот тебе идея по поводу ядра: дать возможность пользователям (не только root) загружать свои серверы ядра. Так как ядро будет микроядром, то они не смогут повлиять на работу самого микроядра и серверов других пользователей, а будучи серверами, будут работать эффективнее пользовательских приложений.
Допустим пользователь - любитель Windows, тогда загрузив соответствующий сервер ядра, он сможет иметь полный Look&Feel&все остальное своей любимой системы. В том числе и любимую ядреную графику.
А если пользователь - прожженый юниксоид, то он загрузит сервер posix-совместимости и тоже будет счастлив.
2Dragon: с монолитным ядром не удастся достичь той гибкости, которая необходима для действительно универсальной системы
А если пользователь любит покопаться в чужих документах, то он загрузит сервер ядра, который даст ему root. Ведь из ядра можно копаться где угодно, доступ не ограничен.
Я говорил, что надо писать на C++, выводить ассемблерный листинг и оптимизировать циклы, а не весь код, т.к. в этом нет никакого смысла.
Очень хороший вариант ядра в NT. Там все драйверы находятся в одном контексте и связаны хотя "почти" прямыми вызовами(Через диспетчер ввода-вывода, который извлекает из таблицы адрес и передаёт туда управление). И добавить новый драйвер или заменить существующий можно не перезагружаясь, в отличии от линукса, где сами знаете, что делать надо. Это нечто среднее между монолитным и микроядром. И ещё - надо сделать такое ядро, чтобы надо было перезагружаться только для установки ОС(ну там новых версий) и чтобы можно было вывести ОС из любого сбойного состояния, а не перезагружаться сразу, как в XP.
А если пользователь любит покопаться в чужих документах, то он загрузит сервер ядра, который даст ему root. Ведь из ядра можно копаться где угодно, доступ не ограничен.
Не забывай, что серверы микроядра выполняются в пользовательском режиме, в отличие от модулей монолитного ядра. В этом собственно и их отличие :)
И добавить новый драйвер или заменить существующий можно не перезагружаясь, в отличии от линукса, где сами знаете, что делать надо.
Ну ты меня удивляешь, чувак :) Ладно, буду считать, что в этом абзаце ты случайно написал "линукса" вместо "виндовса" :)
И ещё - надо сделать такое ядро, чтобы надо было перезагружаться только для установки ОС(ну там новых версий) и чтобы можно было вывести ОС из любого сбойного состояния,
Неужели ты все хочешь как в Linux? :)))
Не забывай, что серверы микроядра выполняются в пользовательском режиме, в отличие от модулей монолитного ядра. В этом собственно и их отличие :
Серверы микроядра должны находится в Ring0, иначе это уже к ядру не имеет отношения.
Ну ты меня удивляешь, чувак :) Ладно, буду считать, что в этом абзаце ты случайно написал "линукса" вместо "виндовса" :)
Допустим я купил новую видеокарту. При запуске Windows просто загрузит для неё соответствующий драйвер, если он есть, а если нет, его просто ставишь и перезагружаешся. А у линукса придётся ядро перекомпилировать...
Неужели ты все хочешь как в Linux? :)))
А разве это плохо, что не будет перезагрузок?
Серверы микроядра должны находится в Ring0, иначе это уже к ядру не имеет отношения.
Ладно, сейчас на пальцах объясню отличия микроядра от монолитного. В монолитном ядре очень многое выполняется на уровне супервизора: драйвера, менеджер памяти, менеджер процессов и т.п. В микроядре же все что только можно вынесено на пользовательский уровень, а на системном оставлено только то, чему необходим прямой доступ к аппаратуре. Самый простой пример: механизм переключения задач должен находится в ring0, но планировщик задач можно легко вынести и в ring3. В принципе, основная задача микроядра - осуществлять взаимодействие между пользовательскими процессами, в числе которых могут быть и сервера ядра. Даже драйвера легко выносятся в ring3 (учитывая что микроядро экспортирует возможности чтения/записи в порты и доступ к определенным "хардверным" областям памяти)
Допустим я купил новую видеокарту. При запуске Windows просто загрузит для неё соответствующий драйвер, если он есть, а если нет, его просто ставишь и перезагружаешся. А у линукса придётся ядро перекомпилировать...
Держите меня.... ЭТо кто же тебе такую чушь рассказал? Во первых драйвер видеокарты к Linux имеет мало отношения (за видео отвечает X-сервер и соответственно достаточно перезапустить его - обычное пользовательское приложение!). Во вторых драйвера в Linux существуют в виде lkm - loadable kernel modules (обычные объектные файлы, имеющие функции init_module и cleanup_module), которые в любой момент времени можно загрузить и выгрузить. Более того - существует специальный демон kerneld, который автоматически загружает и выгружает необходимые модули. Например засунул ты в дисковод дискету с файловой системой, поддержки которой в ядре нет. Тогда при попытке монтирования kerneld это дело определит и драйвер нужной ФС загрузит.
Ну и естественно, никто не мешает напрямую вкомпилировать в ядро нужные драйвера, чтобы не тратить время на их загрузку.
А разве это плохо, что не будет перезагрузок?
А если все будет как в Linux, то зачем еще одна ОС? :)
Как насчёт RadiOS ( http://sourceforge.net/projects/radios ) ? По мне - довольно интерессная вещь и если-бы не отсутствие на данное время ресурса последнего, не пожалел-бы его на активное участие в проекте.
- Это опять клон Unix'а.
- Про то, чтобы менять драйвер, надо ядро перекомпилировать, написано во многих статьях про linux.
- Про микроядро. Если там всё распределено по уровням привилегий, то проц будет всё время проверять допуски на уровень, а это отнимает время. Всё ядро и системные драйверы(дисков, ведео, звука) должны быть в Ring0.
- Про то, чтобы менять драйвер, надо ядро перекомпилировать, написано во многих статьях про linux.
Не иначе как империалистическая пропаганда корпораций-разработчиков платного ПО :) Я то думал, почему еще не все Linux юзают... Но, как сказано в Библии: "восстанет правда, перестанет господствовать неправда" :)
- Про микроядро. Если там всё распределено по уровням привилегий, то проц будет всё время проверять допуски на уровень, а это отнимает время.
Молодец! Вот ты сам и показал недостаток микроядерных систем. Системный вызов в монолитной системе сопровождается двумя переключениями режимов: пользователь(ring3)-ядро(0)-пользователь(3). А в микроядерной - четырьмя: пользователь(3)-ядро(0)-сервер_обрабатывающий_вызов(3)-ядро(0)-пользователь(3).
Итого при прочих равных условиях, микроядро будет медленнее монолитного.
Недостатки на этом, к счастью, заканчиваются, и начинаются преимущества: легкая расширяемость, переносимость, принципиально новые возможности, вроде описанной мною ранее, очень высокая стабильность (ведь в ring0 только малюсенькое микроядро, которое легко отладить) и пр.
Всё ядро и системные драйверы(дисков, ведео, звука) должны быть в Ring0.
Вот это и называется обычным монолитным ядром.
Недостатки на этом, к счастью, заканчиваются, и начинаются преимущества: легкая расширяемость, переносимость, принципиально новые возможности, вроде описанной мною ранее, очень высокая стабильность (ведь в ring0 только малюсенькое микроядро, которое легко отладить) и пр.
Все эти преимущества являются таковыми для закрытых систем, чтоб не дай бог никому код своего мерзкого маленького ядрышка не показывать, а серверы пишите сами на здоровье :) В свободных системах принципиальной разницы в разработке монолитных и микро ядер нет. Опять же, причем тут переносимость - что там, что там одинаковое количество кода переписать придется :)
Все эти преимущества являются таковыми для закрытых систем, чтоб не дай бог никому код своего мерзкого маленького ядрышка не показывать, а серверы пишите сами на здоровье :) В свободных системах принципиальной разницы в разработке монолитных и микро ядер нет. Опять же, причем тут переносимость - что там, что там одинаковое количество кода переписать придется :)
Да ну... Почему же одинаковое? В микроядре часть, взаимодействующая с аппаратурой (единственная непереносимая часть) - это может пару килобайт, а в монолитном?
А насчет разработки свободных систем - разницы действительно мало, а вот в эксплуатации разница есть. В стабильности например :)
Да ну... Почему же одинаковое? В микроядре часть, взаимодействующая с аппаратурой (единственная непереносимая часть) - это может пару килобайт, а в монолитном?
Ну так и там также (на уровне исходников все разделено на переносимую и непереносимую части :))
А насчет разработки свободных систем - разницы действительно мало, а вот в эксплуатации разница есть. В стабильности например :)
Угу, и в производительности :D
А насчет стабильности тоже не факт - хорошо реализовать обмен сообщениями между серверами - довольно нетривиальная задача.
Короче, лучшее ядро - смешанное, и не надо с этим спорить.
Ну поспорить всегда можно :) Может мы тут ненароком новый тип ядра выдумаем? :)))
Ну поспорить всегда можно :) Может мы тут ненароком новый тип ядра выдумаем? :)))
Ага, давайте например все пользовательские приложения запихнем в ядро - для повышения производительности :))
Получится Novell :)
И всё таки.
В чём собственно новые идеи ОС?
Хотя бы одна.
Написать оптимальную по коду ОСЬ уже пытаются Menuet (1, 2, 3, 1, 2, 3, :D :D )
Идея единого ядра.
Впрочем Win2000 даже превзошла эту идею!!!
Linux... впрочем.
Написать БОЛЬШОЕ не выйдет. Я могу поверить в написание маленького но КООРДИНАЛЬНО По технологии НОВОГО.
Правда, это не легче чем созддать 2 Винды :)))
Гм....
И всё таки.
В чём собственно новые идеи ОС?
Хотя бы одна.
Написать оптимальную по коду ОСЬ уже пытаются Menuet (1, 2, 3, 1, 2, 3, :D :D )
Идея единого ядра.
Впрочем Win2000 даже превзошла эту идею!!!
Linux... впрочем.
Написать БОЛЬШОЕ не выйдет. Я могу поверить в написание маленького но КООРДИНАЛЬНО По технологии НОВОГО.
Правда, это не легче чем созддать 2 Винды :)))
Я тебя полностью поддерживаю! Есть у кого идеи чего то нового! НЕТ??? Ну и нафига здесь переливать из пустого в порпжнее??? Перемывать LINUX или UNIX. Если писать, то писать! Нужно создать команду! Я там на форуме создал тему "Хочу написать ос", кто хочет присоединяйтесь! Заранее всем благодарен theBEST.
- Вы споритее об архитектуре ОС, ну ладно согласен без этого нельзя, но выже не определили для чего предназначена Ос, а значит и не определили чётких целей, а это самый первый щаг на пути создания любого программного обеспечения.
- Не плохо бы было выложить архитектуру системы в общем, а то вы чё-то спорите хотя в сущности сисстема ни на сколько не продвигиется
Ну это только первые советы. Не сочтите что тут умнячаю, но все-таки это кстати.
Поэтому неплохо бы было определиться с целями а потом начинать споры.
Короче, давайте начнем с идей. Потом пойдет разговор дальше.
Все правильно. Но еще один вопрос. Давайте перед тем как выражаться на тему архитектуры - свои основные идеи о целях оси, ее особенностях, которые вы видете (или наоборот не находите но мечтаете) в современных операционках(с указанием самих оперов =)).Также на что вы новую ось хотите ставить - на стандартные пни или доисторические 86. То есть вопрос о ресурсах - какие они должны быть.
Короче, давайте начнем с идей. Потом пойдет разговор дальше.
Оглядываю орлиным взором UNIX (да что уж тут говорить, даже ДОС - сильно недоделанный UNIX :)), замечаю вопиющие вытекающие из простоты недостатки:
1) Архитектура файловой системы (типа мы говорим девайс, подразумеваем файл; мы говорим файл, подразумеваем девайс/процесс/область памяти). Эта самая архитектура вынуждает использовать для работы со всеми девайсами только read(), write(), ioctl() и т.п., что не есть хорошо. Больше скажу - язык Си даже не позволит создать нечто более другое. Например - открыл ты девайс с помощью некой функции и вдруг - бац - появились неожиданно в адресном пространстве функции, которые предназначены для работы *именно* с этим девайсом. Например тут недавно хотели чайник к компу подключить...
teapot = open("/dev/teapot");
teapot->get_water(300);
teapot->on();
while (!teapot->is_ready());
teapot->off();
Едем дальше:
2) Архитектура многозадачности. Почему только процессы и потоки? Радикальное предложение: считать базовой (но не атомарной!) единицей выполнения не процесс. И даже не пользователя. Мы же сетевая ОС, значит единица выполнения - компьютер. Или даже вся сеть. Больше скажу - если в юниксах все считается файлами, то в нашей ОС все будет считаться сетями.
Например:
inet = open("/net/internet");
handle=inet->http->get("http://site.domain/");
Или даже:
handle=open("/net/internet/http/site.domain/");
P.S. И не надо говорить, что у меня крыша поехала, я это и так знаю :)
вытекающие из простоты недостатки:
1) Архитектура файловой системы (типа мы говорим девайс, подразумеваем файл; мы говорим файл, подразумеваем девайс/процесс/область памяти). Эта самая архитектура вынуждает использовать для работы со всеми девайсами только read(), write(), ioctl() и т.п., что не есть хорошо.
По какой причине
Больше скажу - язык Си даже не позволит создать нечто более другое.
???? Это как?
Например - открыл ты девайс с помощью некой функции и вдруг - бац - появились неожиданно в адресном пространстве функции, которые предназначены для работы *именно* с этим девайсом. Например тут недавно хотели чайник к компу подключить...
teapot = open("/dev/teapot");
teapot->get_water(300);
teapot->on();
while (!teapot->is_ready());
teapot->off();
:D :D :D :D А заварить его можно? :D
Едем дальше:
2) Архитектура многозадачности. Почему только процессы и потоки? Радикальное предложение: считать базовой (но не атомарной!) единицей выполнения не процесс. И даже не пользователя. Мы же сетевая ОС, значит единица выполнения - компьютер.
Гм...
Вопрос: а сколько ннужно програмеру выпить пива, чтобы такое сказать :D?
Браво.
Но шутки шутками. Давайте сурьёзно. Я не вижу в этом предложении зерна, либо вы его плохо объяснили. При ЧЁМ ТУТ ПОТОКИ? И ПРОЦЕССЫ?
Если речь идёт о том, что я думаю, то это уже существует для WinNT
Там каждый процесс привязак к пользователю (вот вот... ) Если это не ТО что ВЫ хотели сказать, то объясните разницу.
Или даже вся сеть. Больше скажу - если в юниксах все считается файлами, то в нашей ОС все будет считаться сетями.
Например:
inet = open("/net/internet");
handle=inet->http->get("http://site.domain/");
Или даже:
handle=open("/net/internet/http/site.domain/");
Это ДЗЕН конечно, но помоему вы Глумитесь :))))
P.S. И не надо говорить, что у меня крыша поехала, я это и так знаю :)
Угу