OSDev

для всех
Текущее время: 11 май 2024, 16:34

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 96 ]  На страницу Пред.  1 ... 3, 4, 5, 6, 7, 8, 9, 10  След.
Автор Сообщение
 Заголовок сообщения: Re: А что, если всем объединиться?
СообщениеДобавлено: 27 май 2012, 05:14 
Заблокирован

Зарегистрирован: 28 окт 2011, 12:14
Сообщения: 555
Откуда: Новосибирск
Так, желающих объединиться становится больше, будем считать, что у нас уже целая команда, что дальше. Предлагаю уже приступить к работе и писать драйвера по всем интеловским спекам, разбирать ффайловые системы, форматы файлов, что там ещё.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: А что, если всем объединиться?
СообщениеДобавлено: 27 май 2012, 11:54 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1418
iz56 писал(а):
Для поиска единомышленников нужно как минимум заинтересовать людей. Это труднее чем всё остальное.


Фактически, думается, надо показать людям что-то уже реально работающее, и только тогда будут шансы, что кто-то присоединится.

Станислав писал(а):
Предлагаю уже приступить к работе и писать драйвера по всем интеловским спекам, разбирать ффайловые системы, форматы файлов, что там ещё.


И этим сразу демонстрируете своё непонимание, что есть ОС. Невозможно писать драйвер, не имея чётко описанной драйверной модели, что, а для отладки драйвера эта самая драйверная модель сама должна быть написана и отлажена как минимум частично (в объёмах, требуемых драйвером). Ну а ввод-вывод -- это от 2/3 до 99% сложности ОС, на мой взгляд. Всё остальное -- многозадачность, управление памятью, мультипроцессирование и т.д. -- даже вместе остаются проще, чем один ввод-вывод. Потому-то во всяких встраиваемых недоосях типа FreeRTOS его нет вообще: типа, прикладные программы имеют доступ к железу, пускай ввод-вывод сами и организуют, а наша мегаось будет управлять потоками и ещё парочку функций предоставит (правда, всё, что они могут, квалифицированный программист за несколько дней напишет сам).

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

Цитата:
Так, желающих объединиться становится больше, будем считать, что у нас уже целая команда, что дальше.


Оптимизм -- это хорошо, но всё ж надо стараться объективно смотреть на вещи. Где Вы команду увидели? Один пишет на Дельфях что-то непонятное, другой -- на ФАСМе и со своими заморочками, у ещё пары-тройки есть свои довольно развитые недооси, и вряд ли они бросят ими заниматься, я вообще делаю под АРМ, а не под ИА-32... И это не говоря о куче "идейных" разногласий: я, например, не буду заниматься никакими там микроядерными и прочими распределёнными извратами, поскольку мне система нужна для практической работы, а не только удовольствия для.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: А что, если всем объединиться?
СообщениеДобавлено: 27 май 2012, 14:11 
Аватара пользователя

Зарегистрирован: 16 апр 2010, 10:10
Сообщения: 320
Откуда: Псковская обл.
Компетентные люди не хотят связываться с сомнительным новым проектом, некомпетентные хотят, но в процессе работы над ос станут (возможно) компетентными и тоже отвалятся. Замкнутый круг. Поэтому ещё не раз буду повторять что организация всего хозяйства посложнее будет чем сама ось. Нужны люди - организаторы. Я как и большинство здесь всё же программист.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: А что, если всем объединиться?
СообщениеДобавлено: 27 май 2012, 17:16 

Зарегистрирован: 04 май 2011, 18:13
Сообщения: 121
Например, я недавно зашел на проектную ветку человека подписавшийся "Станислав". Хотел было вступить в его проект. Первое на что я наткнулся, отсутствие информации: откуда мне брать исходники, и OpenSource ли это проект, как мне устанавливать ее, как настроить верно эмулятор. На этом мое участие остановилось, даже не начавшись. Второй там был проект - PhoenixOS кажеться, идея мне показалось новой, но не интересной мне.

Ряд вопросов, которые важны для определения проекта:
1) Будет ли открытым проект(OpenSource etc)?
2) Насколько открытым будет проект для мировой общественности(Proprietary, GPL, BSD, EULA, etc)?
3) Каково будет хранилище исходников, контента, утилит(SourceForge, Private SVN Server, Git, Mercurial, FTP, etc)?
4) Каков примерный уровень ОС(DOS 5.0, Unix, Windows 3.1, Debian 1.1, Windows XP, Windows 7)?
5) Каковы пользовательские, системные требования и функционал для "первой ступеньки" или для первого релиза?
6) Какая полная архитектура системы(2 уровня: ядро, пользователь, 4 уровня: ядро, драйверы, службы, пользователь; на какие блоки будет разбиваться и пр.)?
7) Какая "родная" архитектура(ia-32, ARM, etc)?
8) Тип ядра(microkernel, exokernel, hybrid, monolithic, etc)?
9) Насколько открыты интерфейсы доступа к железу(свободный доступ к оборудование с любого уровня, частичная закрытость, полная закрытость, вплоть до требования цифровой подписи от производителя)?
10) Какая "родная"(основная, тестируемая, при начале проекта) файловая система?
11) Какой "родной" язык программирования системы(Machine code, ASM, C, C++, D, C--, C#, Java, etc)?
12) Насколько система будет кроссплатформенной(поддерживается все различное железо и девайсы, определенный сегмент, заточена под одну архитектуру и т.д.)?
13) Каковы будут менеджеры ресурсов; менеджер памяти, процессов, потоков(вытесняемые, равноприоритетные и др.)?
14) Тип конфигурации системы(отдельные файлы, единый реестр)?
15) Предполагаемый срок сдачи проекта(месяц, два месяца, полгода, год, два и т.д.)?
16) Каков используется инструментарий: отладчик, компилятор, сборщик(FASM, MinGW, Microsoft Visual C++, Clang/LLVM, GCC, Digital Mars D, .NET, etc)?
17) Как в проекте будут распределятся обязанности?
18) Кто флагман(руководитель) проекта?
19) Какая система отчетов будет использоваться(Bugzilla, JIRA, etc)?
20) Насколько подробная будет документация и в каком объеме?


Последний раз редактировалось JSON 27 май 2012, 18:30, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: А что, если всем объединиться?
СообщениеДобавлено: 27 май 2012, 17:36 

Зарегистрирован: 04 май 2011, 18:13
Сообщения: 121
Думается мне, что в данную секунду все заглохло, все разбежались по норам.
Ну если не сейчас, то еще недельку этот топик пошумит и все забудут о чем говорили, как ни в чем не бывало.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: А что, если всем объединиться?
СообщениеДобавлено: 27 май 2012, 17:38 

Зарегистрирован: 22 май 2007, 15:29
Сообщения: 283
Тсс! Все отвечают! :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: А что, если всем объединиться?
СообщениеДобавлено: 27 май 2012, 17:39 
Заблокирован

Зарегистрирован: 28 окт 2011, 12:14
Сообщения: 555
Откуда: Новосибирск
StasBaybak писал(а):
Ряд вопросов, которые важны для определения проекта:
1) Будет ли открытым проект(OpenSource etc)?
...........

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


Последний раз редактировалось Станислав 27 май 2012, 17:56, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: А что, если всем объединиться?
СообщениеДобавлено: 27 май 2012, 17:40 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1418
StasBaybak писал(а):
Ряд вопросов, которые важны для определения проекта


Ну, отвечу за себя.

1) Да, исходники собственно системы и прочих системных вещей открыты (закрыты лишь задачи, собственно предназначенные для приборов нашей конторы).

2) Лицензия типа BSDшной или чего-то в этом роде: воруйте сколько угодно, можете скрывать свои изменения, только пишите, где и у кого скоммуниздили основу.

3) SVN + Redmine.

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

5) Любой процессор архитектуры ARM, начиная с ARMv4T. Сейчас основной архитектурой является ARMv7-M (ядро Cortex-M3), однако поддерживаются и другие; "затачивание" под эту конкретную версию связано с применением ОС в реальном приборе.

6) Два аппаратных уровня привилегий; при необходимости развитая система защиты пользователей друг от друга с помощью прав доступа и т.п.

7) ARM. "Логически" система может быть перенесена почти на что угодно, но придётся переписывать всё ядро и драйверы нижнего уровня.

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

9) Открыто всё, что только можно открыть :)

10) Нету таковой. В связи со спецификой текущих задач система базируется во флэш-памяти микроконтроллера или грузится с внешнего носителя загрузчиками, зашитыми намертво в МК. Первая ФС, которая будет поддерживаться, -- надо полагать, FAT32 (для SD-карт и флэшек). В принципе, можно "подцепить" любую ФС, не трогая саму ОС, поскольку драйвер ФС -- просто задача.

11) Изначально предполагалась Ада, откуда и название системы (АРМАДА -- АРМ + Ада). Однако из-за глюков транслятора GCC, связанных с volatile-переменными (а они нужны, чтоб работать с железом), было принято решение само ядро и низкоуровневые драйверы написать на ассемблере, а всё высокоуровневое -- на Аде. Пока на ней только тесты и рабочие программы для конторы.

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

13) Слишком общий вопрос. Но вообще, система очень гибко настраивается при генерации, поскольку должна годиться для очень широкого круга задач -- от "морганья светодиодами" до полноценной рабочей ОС, технически способной конкурировать с той же Виндой или Линухом. (Речь, есно, о технических возможностях ситсемы, а не о наличии прикладного ПО).

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

15) Бесконечность :) Сама система работает в тех рамках, в которых написана, а скорость написания связана с отвлечением на собственно работу. Например, недавно закончил переделывать драйверную модель (изначально была заведомо упрощённая, зато созданная чуть ли не за день -- для скорости; теперь уже полноценная, хотя 70% в ней ещё отсутствует, лишь заложено на будущее -- всякие там PnP, управление питанием, драйверы-задачи и т.п.).[/quote]

16) Среда разработки Keil, но используется только собственно среда с отладчиком, ассемблер и компоновщик (Си не использую), плюс GNAT (адский транслятор из состава GCC).

17,18) Поскольку я, по сути, один, то и проблем с распределением обязанностей и т.п. нет :)

19) Redmine.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: А что, если всем объединиться?
СообщениеДобавлено: 27 май 2012, 18:05 

Зарегистрирован: 22 май 2007, 15:29
Сообщения: 283
1) Да.
2) Вероятно, будет MIT.
3) Собственный сервер git.
4) Ну, думаю, до NT 4 доползем :)
5) Полнофункциональное ядро, драйвера для IDE и AHCI дисков, нескольких распространенных сетевых
6) Уровня привилегий два (ядро и пользователь), компоненты же можно разделить на пять групп: ядро, драйверы режима ядра, сервисы, драйверы режима пользователя и прикладной софт.
7) IA-32e.
8) Монолитное с упором на драйвера режима пользователя, но не в ущерб производительности.
9) Не понял вопроса.
10) Вероятно, что-то из Ext-ов.
11) С, но писать на чем угодно можно.
12) На настоящий момент - все ПК. На практике, разумеется, будут проблемы со всякими NUMA по причине их недоступности. Перенести систему можно без особых проблем на любую архитектуру, и я планирую после сделать под на A-профиль ARM.
13) Ядро предоставляет достаточно много сервисов; дождитесь первого публичного выпуска, где будет документация, или свяжитесь со мной лично, если не терпится.
14) Пока не определено. Наиболее вероятно, что отдельные файлы, но не обязательно текстовые.
15) До первого релиза, думаю, в год можно уложиться.
16) GDB, GCC (экспериментирую с clang, но результаты спорные), ld.
17) Ядро пишется с расчетом на поддержку одним человеком, так же как и основные сервисы. Помощь нужна будет с дровами, допилкой POSIX-подсистемы под существующую прикладнуху и написанием собственной.
18) Я.
19) Redmine.
20) На интерфейсы ядра для приложений, интерфейсы ядра для драйверов режима ядра, интерфейсы системных библиотек (в т.ч. интерфейс для драйверов режима пользователя). Документации на внутреннее устройство ядра сейчас нет, так же как и на сервисы - писать ее пока что смысла нет. Ну и общая информация о системе.

Разработку я сейчас веду в одиночку. Если будет достаточно времени, то в течение пары месяцев завершу драйверную модель и интерфейсы ядра, актуализирую документацию, сделаю пару демодров и выпущу на всеобщее обозрение.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: А что, если всем объединиться?
СообщениеДобавлено: 27 май 2012, 18:35 

Зарегистрирован: 10 апр 2012, 23:19
Сообщения: 277
StasBaybak писал(а):
Ряд вопросов, которые важны для определения проекта:
1) Будет ли открытым проект(OpenSource etc)?
.........

думаю всё значительно проще.

думаю надо создать новую тему по набору в крмманду.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 96 ]  На страницу Пред.  1 ... 3, 4, 5, 6, 7, 8, 9, 10  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 71


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB