OSDev http://osdev.su/ |
|
PhoeniX OS: Rebirth http://osdev.su/viewtopic.php?f=25&t=619 |
Страница 1 из 2 |
Автор: | DJ PhoeniX [ 24 авг 2012, 05:24 ] |
Заголовок сообщения: | PhoeniX OS: Rebirth |
В связи с непредвиденными обстоятельствами, разработка была прекращена месяца 3 назад. И вот, Феникс ОС возрождается из п̶е̶п̶л̶а̶ исходников с Dropbox. Как и предсказывал iz56, iz56 писал(а): в процессе будут меняться сильно и планы Концепт ОС был довольно сильно переработан, изменены инструменты, изменены планы. Немного подробнее:
|
Автор: | SII [ 24 авг 2012, 05:53 ] |
Заголовок сообщения: | Re: PhoeniX OS: Rebirth |
Чуть-чуть подправил Ваше сообщение: одну ошибку исправил (впоследствии), и дописал, что интерфейс -- графический (ибо сам не сразу понял; для меня интерфейс применительно к ОС -- это API, а не её морда лица, которую пользователь видит). Поддержка приложений Винды означает фактически, что с точки зрения прикладного программиста эта система -- Винда ![]() Совместимость на уровне драйверов вообще означает, что придётся делать Винду и внутри: драйверная модель, тем более такая сложная, чуть менее чем полностью (с) определяет внутреннее устройство ядра. Впрочем, и в этом плане Винда является одной из лучших современных систем: хотя она местами и переусложнена, но в целом её проект куда совершенней, чем конкурирующие оси, растущие ведущие родословную от униха. Сделать её будет очень и очень непросто (вон, РеактОС никак не сделают -- хотя, похоже, они просто неверным путём идут), но польза очевидна: автоматически будет решена проблема драйверов, а она на самом деле самая сложная из всех, ведь даже для Линуха нет столь полной и качественной поддержки железа. Особенно это касается видеодрайверов, поскольку информация по приличным графическим процессорам закрыта. Вот п. 4 Вашей программы (основное направление -- веб) мне кажется сомнительным. Дело в том, что, если чётко отделять мух от котлет, никаких "веб-ориентированных" осей в природе нет и быть не может. Любой браузер и прочее, связанное с вебом, -- это всего лишь прикладные программы, способные успешно работать на любой ОС, обеспечивающей минимальную поддержку (грубо говоря, поддерживающей клаву, мышь, графический дисплей и TCP/IP). Т.е. лично я бы чётко разделил: вот здесь -- ОС (ядро, драйверы, системные утилиты), вот здесь -- средства её разработки, а вот здесь -- вся прикладуха, в т.ч. "веб-ориентированная". В значительной степени сказанное про п. 4 относится и к п. 5. Самой системе же пофиг, как она выглядит с точки зрения пользователя, и отнюдь не рабочий стол является самым сложным и важным компонентом системы, хотя и является её "лицом". Естественно, я не согласился бы и с п. 2: писать что-либо сложней ХеллоВорлда на Си и всех его производных -- преступление против человечества ![]() Ну а в остальном -- желаю удачи. Надеюсь, что Ваша система не помрёт на ранних стадиях и будет более вменяемой, чем 99% существующих осей. P.S. Ирония судьбы: и первые версии макинтошевской оси, и Вындовз-1 имели именно тайловый интерфейс: не было там перекрывающихся окон. |
Автор: | DJ PhoeniX [ 24 авг 2012, 06:25 ] |
Заголовок сообщения: | Re: PhoeniX OS: Rebirth |
Я отвечу, пожалуй, в том порядке, в котором будет проще осмыслять ответы: SII писал(а): Вот п. 4 Вашей программы (основное направление -- веб) мне кажется сомнительным. Дело в том, что, если чётко отделять мух от котлет, никаких "веб-ориентированных" осей в природе нет и быть не может. Любой браузер и прочее, связанное с вебом, -- это всего лишь прикладные программы, способные успешно работать на любой ОС, обеспечивающей минимальную поддержку (грубо говоря, поддерживающей клаву, мышь, графический дисплей и TCP/IP). Т.е. лично я бы чётко разделил: вот здесь -- ОС (ядро, драйверы, системные утилиты), вот здесь -- средства её разработки, а вот здесь -- вся прикладуха, в т.ч. "веб-ориентированная". В этой части я вдохновлён Metro-приложениями Windows 8. HTML5+CSS3 поддерживаются прямо в системе, а JS API позволяет получать доступ к файлам/папкам/другим функциям системы. Одновременно достигается абстрагирование от типа процессора (всё равно, х32, х64, да хоть ARM) и прочих нюансов: HTML - он и есть HTML. SII писал(а): Поддержка приложений Винды означает фактически, что с точки зрения прикладного программиста эта система -- Винда ![]() С точки зрения программиста я всё же оставлю HTML5 как основное средство разработки. Хочет Windows - пожалуйста, не запрещено, добавляй модуль поддержки Win-программ и юзай тот же Delphi/CBuilder/что_хочешь, и тут же и тестируй, как оно вливается в интерфейс. SII писал(а): Совместимость на уровне драйверов вообще означает, что придётся делать Винду и внутри: драйверная модель, тем более такая сложная, чуть менее чем полностью (с) определяет внутреннее устройство ядра. Впрочем, и в этом плане Винда является одной из лучших современных систем: хотя она местами и переусложнена, но в целом её проект куда совершенней, чем конкурирующие оси, растущие ведущие родословную от униха. Сделать её будет очень и очень непросто (вон, РеактОС никак не сделают -- хотя, похоже, они просто неверным путём идут), но польза очевидна: автоматически будет решена проблема драйверов, а она на самом деле самая сложная из всех, ведь даже для Линуха нет столь полной и качественной поддержки железа. Особенно это касается видеодрайверов, поскольку информация по приличным графическим процессорам закрыта. Тут, опять же, основным будет всё же собственный, модульный интерфейс ОС. А поддержку Win-драйверов можно попытаться сделать через какой-нибудь wrapper. Опять же, если этого добиться, можно пойти дальше - использование x32-драйверов на x64 или ARM-based системе. Решается проблема старого железа. Точно так же, через wrapper, можно и linux-драйвера цеплять. Модульность позволит творить практически что угодно ![]() SII писал(а): В значительной степени сказанное про п. 4 относится и к п. 5. Самой системе же пофиг, как она выглядит с точки зрения пользователя, и отнюдь не рабочий стол является самым сложным и важным компонентом системы, хотя и является её "лицом". Естественно, что системе пофиг, как она выглядит. Но не стоит забывать, что 89% пользователей - те, кому плевать, как работает система внутри - им важно её "лицо". Некоторым - скорость "разговора" с "лицом", некоторым - просто его "внешность". Ну, а профессионалы могут выкинуть "лицо" вообще, оставив какой-нибудь консольный (или вообще только сетевой) интерфейс, или заменить на написанный энтузиастами. SII писал(а): Естественно, я не согласился бы и с п. 2: писать что-либо сложней ХеллоВорлда на Си и всех его производных -- преступление против человечества ![]() Большой процент кода ядра Linux написан на C. И я не заметил, чтобы это кто-то осуждал. Напротив - вижу скорость работы, которую без угрызений совести можно назвать высокой, и вижу достаточно понятный код (да, я и туда залезал). Компилятор с правильными флагами генерирует довольно оптимизированный и правильный машкод, да. SII писал(а): P.S. Ирония судьбы: и первые версии макинтошевской оси, и Вындовз-1 имели именно тайловый интерфейс: не было там перекрывающихся окон. Знаю об этом ![]() ![]() |
Автор: | D-S [ 24 авг 2012, 11:31 ] |
Заголовок сообщения: | Re: PhoeniX OS: Rebirth |
SII писал(а): Естественно, я не согласился бы и с п. 2: писать что-либо сложней ХеллоВорлда на Си и всех его производных -- преступление против человечества ![]() А я наоборот - очень советую. Причем не стОит ограничивать себя одним компилятором. Надо писать так, чтобы система компилировалась несколькими в том числе и старыми (тогда с переносом в том числе и на устаревшее оборудование проблем не будет). Я например пишу на С++. Проверяю несколькими, самый старый из которых - 1998 года. Соответственно все особенности нового стандарта - за бортом. Мало того, что сам код практически самодокументирующийся, так ещё на этом языке можно естественным образом выразить логические отношения между объектами ОС. Например то что объект файла и объект анонимной памяти наследуется от объекта памяти и т.о. VMM через интерфейс объекта памяти ими может манипулировать (например при обработке ошибки страницы) не вдаваяь в подробности что за объект, которым он управляет. Естественно, при таком подходе должен быть грамотный HAL (в солярке или bsd - pmap), который являсь по набору функций достаточно общим для многих архитектур в достаточной мере скрывает особенности работы с оборудованием. Вот он - уже может (но не обязан) быть написан на асемблере т.к. не переносим по определению (но в большинстве операционок и он кстати написан на С). С HALом у меня есть проблемы т.к. банально не хватает кругозора работы с разными процессорами и знания их особенностей. Главный после интеловых (32 и 64 бита) это конечно ARM, благо, там уже SMP появился. Я писал достаточно на асме чтобы понять, что для любой особенно длительной разработки - это тупик. БОльший прирост скорости исполнения можно получить грамотным использованием кэша процессора чем высчитыванием количества тактов в каждой инструкции и блоке кода. Уж о том, что грамотный код может компилироватся одновременно и в 32-битную и 64-битную версии - я и не вспоминаю. Это само собой разумеется. Это не начало холивара а чистое ИМХО, но мне не известны причины по которым асм был-бы лучше чем ЯВУ кроме необходимости программировать оборудование (но это несколько небольших вставок). Про скорость - писал выше, объем - в настоящее время уже не критичен. Объем ИМХО - уже в середине 90-х мало кого интересовал на интеловых платформах. |
Автор: | SII [ 24 авг 2012, 11:53 ] |
Заголовок сообщения: | Re: PhoeniX OS: Rebirth |
Вообще-то я говорил против Си не в пользу ассемблера, а в пользу паскалеподобных языков (например, Ады, входящей в состав GCC). Хотя, если поставить меня перед выбором "Си или ассемблер", выберу второй: Си куда больше провоцирует на совершение тупых, но трудных в обнаружении ошибок, является малочитабельным и по-любому проигрывает в эффективности даже без всякого "подсчёта тактов". Кроме того, лично по моему опыту могу судить, что примерно 3/4 всего затрачиваемого времени уходит на проектирование, написание комментариев и документирование -- т.е. на вещи, вообще не связанные с используемым языком; соответственно, использование ассемблера вместо даже хорошего ЯВУ (той же Ады) даёт не такой уж большой проигрыш по времени. Но всё уже лирика, а в контексте данной темы -- ещё и злостный оффтоп ![]() |
Автор: | Станислав [ 24 авг 2012, 12:55 ] |
Заголовок сообщения: | Re: PhoeniX OS: Rebirth |
Цитата: В этой части я вдохновлён Metro-приложениями Windows 8. HTML5+CSS3 поддерживаются прямо в системе, а JS API позволяет получать доступ к файлам/папкам/другим функциям системы. Одновременно достигается абстрагирование от типа процессора (всё равно, х32, х64, да хоть ARM) и прочих нюансов: HTML - он и есть HTML. Для серверов, гоняющих файлы и странички по сети я бы сказал не важно какая ОС запросила инфу, эта ОС должна знать TCP\IP, HTML, NetFileS и т.д.. Сам интерфейс у системы как я понял будет как один только браузер в котором будет организована вся работа, это возможно, и видео смотреть и аудио слушать, текст можно печатать сделать, кисточкой рисовать. От писания драйверов и всё остальное ни кто не освобождал. |
Автор: | Yoda [ 24 авг 2012, 13:36 ] |
Заголовок сообщения: | Re: PhoeniX OS: Rebirth |
DJ PhoeniX писал(а): [*]ОС будет бинарно совместима с приложениями Windows. Вероятно, проще застрелиться, чем повторять столь монстроидальный (по размерам, не по качеству!) АПИ. Это – игра в догонялки, к тому же на много лет. Кроме того, предвижу некоторые лицензионные трения. Так, в соответствии с доками МС, формат исполняемых файлов PE32/PE64 может быть использован только для майкрософтовских операционок. Правда в случае ГНУсных операционок они пока что закрывают на это глаза. Мне непонятно, – если копируется программный АПИ существующей системы, то чем PhoenixOS лучше ReactOS? Моё личное мнение таково, что любая копия, скорей всего, будет хуже оригинала. Во-первых, потому что она тянет за собой архитектурные недочёты исходной системы, во-вторых, потому что исходный код будет не отлажен и при отсутствии массового спроса будет изобиловать глюками. Большинство виндовых программ скорей всего будут глючить на новой ОС. SII писал(а): Естественно, я не согласился бы и с п. 2: писать что-либо сложней ХеллоВорлда на Си и всех его производных -- преступление против человечества ![]() Должен согласиться с SII. С – плохой язык. Правда ADA и паскалеподобные языки ещё хуже. Кроме того, при любом раскладе лично меня сильно напрягает привязка к конкретному компилятору. Уж GNU – точно не лучшие компиляторы. На сегодняшний день я вообще в серьёзном затруднении, как в выборе языка, так и в выборе компилятора. Больше склоняюсь к мысли, что нужно создавать новый язык программирования, с синтаксисом, похожим на С/С++, но несовместимым с ними. Увы, создание компилятора с хорошего языка программирования – задача, сопоставимая по сложности с написанием ОС. DJ PhoeniX писал(а): Большой процент кода ядра Linux написан на C. И я не заметил, чтобы это кто-то осуждал. Напротив - вижу скорость работы, которую без угрызений совести можно назвать высокой, и вижу достаточно понятный код (да, я и туда залезал). К сожалению, это – скорость создания новых глюков, а не хорошего продукта. С устарел, как и Posix, и для крупных проектов подходит плохо. Уж лучше бы использовали C++. С в ядре используется не потому что хорош, а потому что требуется совместимость по вызовам и по структурам со всем остальным кодом. В данном случае совместимость – такой же тормоз прогресса. Моё резюме: к большому сожалению, я пока не вижу перспектив у данной ОС. |
Автор: | pavia [ 24 авг 2012, 20:08 ] |
Заголовок сообщения: | Re: PhoeniX OS: Rebirth |
Компилятор функционального уровня можно за две недели написать. Там сложного ничего нет. Кроме теории, которую читать не следует. Если вы что-то задумаете более сложное, то да. Но в целом оно будет работать. Вы постепенно будете его развивать до уровня который вам нужен. А можно готовую сборку со всеми драйверами? А то мне что бы скачать надо 5 минут чтобы изучить что мне надо потребуется 30 минут. А когда будет известно будет надо 6 минут что бы выбрать, то что мне нужно. |
Автор: | DJ PhoeniX [ 25 авг 2012, 10:48 ] |
Заголовок сообщения: | Re: PhoeniX OS: Rebirth |
pavia писал(а): А можно готовую сборку со всеми драйверами? А то мне что бы скачать надо 5 минут чтобы изучить что мне надо потребуется 30 минут. А когда будет известно будет надо 6 минут что бы выбрать, то что мне нужно. Такая, естественно, будет, когда будет, что собирать. В данный момент я разбираюсь с менеджером памяти, и до драйверов там ещё жить и жить. |
Автор: | DJ PhoeniX [ 07 янв 2013, 06:18 ] |
Заголовок сообщения: | Re: PhoeniX OS: Rebirth |
мем писал(а): Я тут немного всё переписал... ![]() Теперь PhoeniX OS на github. Довольно обильно переделан код. Было долгое затишье - опять недостаточно времени... |
Страница 1 из 2 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |