OSDev
http://osdev.su/

Стоит ли писать ОСЬ
http://osdev.su/viewtopic.php?f=18&t=503
Страница 6 из 7

Автор:  phantom-84 [ 15 май 2012, 14:46 ]
Заголовок сообщения:  Re: Стоит ли писать ОСЬ

Можно ввести поддержку приложений для другой оси на уровне ABI/API, и если такая система станет хоть сколько-нибудь популярной, можно начинать писать приложения с использованием родного ABI/API. Для завоевания популярности нужно наличие хоть каких-нибудь фишек, выгодно отличающих ваше творение от других ОС (особенно от той, из которой вы портируете/берете приложения). Узко специализированную нишу найти не трудно. Если у вас есть хоть одно приложение, которого нет ни под одну другую ось (которое чем-то выгодно отличается от аналогичных приложений под другие оси), то с этим приложением можно продвигать и систему в целом.

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

Автор:  SII [ 15 май 2012, 15:02 ]
Заголовок сообщения:  Re: Стоит ли писать ОСЬ

phantom-84 писал(а):
Разработчики самопальных осей пытаются объять необъятное, когда начинают писать под свою систему офисные приложения, браузеры, вьюверы и т.п. Нафига мне такая самопальная ось с такими же самопальными приложениями, когда я могу взять значительно более качественный аналог в виде какой-либо популярной системы?


Причём начинают их писать, не имея нормально работающего ядра и т.п. :) Моё ИМХО здесь простое: 1) делается нормальное ядро и некий минимум драйверов без особой оглядки на API популярных систем (но с достаточно функциональным родным API, чтобы сверху на него наложить другие); 2) делается прослойка для эмуляции некоторого популярного API (POSIX, Linux, Win32 -- не важно в данном случае), что даёт возможность использовать готовые программы; 3) по мере возможности и необходимости пишется прикладное ПО под родной API.

Автор:  phantom-84 [ 15 май 2012, 15:22 ]
Заголовок сообщения:  Re: Стоит ли писать ОСЬ

SII писал(а):
Причём начинают их писать, не имея нормально работающего ядра и т.п. :)
Во-во. А потом начинают ядро перекраивать под приложения и просто его "допиливать". Что мешало написать простые тестовые приложения для тестирования ядра, не понятно. Разве что пустить пыль в глаза наивным юзерам, что есть, дескать, браузер и т.п. (про качество такого ПО обычно скромно умалчивают).

Цитата:
Моё ИМХО здесь простое: 1) делается нормальное ядро и некий минимум драйверов без особой оглядки на API популярных систем (но с достаточно функциональным родным API, чтобы сверху на него наложить другие); 2) делается прослойка для эмуляции некоторого популярного API (POSIX, Linux, Win32 -- не важно в данном случае), что даёт возможность использовать готовые программы; 3) по мере возможности и необходимости пишется прикладное ПО под родной API.
Об этом я и говорил.

Автор:  Yoda [ 15 май 2012, 15:48 ]
Заголовок сообщения:  Re: Стоит ли писать ОСЬ

Абсолютно согласен!
Однако, есть грустные нюансы:
SII писал(а):
2) делается прослойка для эмуляции некоторого популярного API (POSIX, Linux, Win32 -- не важно в данном случае), что даёт возможность использовать готовые программы;

АПИ имеющихся систем может иметь такую кривизну, которую не сэмулируешь (по крайней мере, разумными средствами), а тащить это гуано в свой АПИ не хочется. Печально известный пример - системный вызов fork семейства Unix.

Автор:  SII [ 15 май 2012, 15:52 ]
Заголовок сообщения:  Re: Стоит ли писать ОСЬ

Yoda писал(а):
АПИ имеющихся систем может иметь такую кривизну, которую не сэмулируешь (по крайней мере, разумными средствами), а тащить это гуано в свой АПИ не хочется. Печально известный пример - системный вызов fork семейства Unix.


Пускай и с ощутимой потерей производительности, но его можно реализовать, наверное, на любой более-менее развитой системе с вменяемым API, не калеча саму родную систему. В моей Армаде его точно можно будет реализовать, причём без проблем, но совершенно не по-униховски. Правда, до этого ещё очень далеко, ведь моя "целевая аудитория" -- микроконтроллеры, обычно вообще не имеющие MMU, а не процы с оным (просто система может собираться с разным функционалом за счёт условной трансляции), а соответственно, виртуальную память и т.п. вещи я вообще пока не поддерживаю и в ближайшие пару лет её не будет за ненадобностью для моих реальных задач.

Автор:  Станислав [ 15 май 2012, 15:58 ]
Заголовок сообщения:  Re: Стоит ли писать ОСЬ

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

Автор:  D-S [ 15 май 2012, 16:12 ]
Заголовок сообщения:  Re: Стоит ли писать ОСЬ

Yoda писал(а):
Абсолютно согласен!
Однако, есть грустные нюансы:
АПИ имеющихся систем может иметь такую кривизну, которую не сэмулируешь (по крайней мере, разумными средствами), а тащить это гуано в свой АПИ не хочется. Печально известный пример - системный вызов fork семейства Unix.


Что в fork такого особенного? Обычное создание процесса с дополнительными условиями и, соответственно, на основе этого вызова и может быть съэмулирован. Если в VM есть COW, создание процесса-копии выполняется достаточно быстро.

Гораздо хуже с драйверми. Они как правило очень много от ядра хотят в плане знаний о его внутреннем устройстве. Насколько можно использовать их? Я только два проекта находил по использованию драйверов линукс - в L4 и очень старый - для Mach (но там ещё от линукс 1.Х). Оба какие-то вялые - особых успехов не видно...

Автор:  Yoda [ 15 май 2012, 17:54 ]
Заголовок сообщения:  Re: Стоит ли писать ОСЬ

D-S писал(а):
Что в fork такого особенного? Обычное создание процесса с дополнительными условиями и, соответственно, на основе этого вызова и может быть съэмулирован.

В том-то и дело, что это необычное создание процесса, реализованное через ж..., пардон, полное копирование всего адресного пространства имеющегося процесса, включая открытые файлы, обработчики сигналов и прочие ресурсы. Порождение весьма больной фантазии. И ладно бы, если бы существовал альтернативный механизм создания процесса, а этот атавизм медленно отмирал бы, но в архитектуре Unix это единственный способ создать новый процесс. К счастью, за системным вызовом fork почти всегда следует системный вызов exec. В этих условиях эмуляция возможна на уровне библиотек. Однако, на чистый fork я, пожалуй, забью.

Автор:  SII [ 15 май 2012, 17:58 ]
Заголовок сообщения:  Re: Стоит ли писать ОСЬ

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

Автор:  phantom-84 [ 15 май 2012, 18:00 ]
Заголовок сообщения:  Re: Стоит ли писать ОСЬ

D-S, насчет fork'а согласен - он больше тяжеловесный, чем труднореализуемый. Yoda, если делать прослойку на уровне ядра, а не на уровне прикладных библиотек, то реализовать fork не так уж и сложно. Он меня раздражает в принципе, а не из-за того, что его трудно реализовать.

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

Страница 6 из 7 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/