Приглашаю волонтёров - помочь написать операционную систему.
Кое-что уже готово, но сделать надо еще много чего. Я, в принципе, справлюсь и один, но иногда бывает нужно с кем-то поговорить, обсудить стратегические моменты - а не с кем. Платить не обещаю, хотя при некотором стечении обстоятельств это возможно. Единственное, что могу твердо обещать - укажу в качестве соавторов (конечно, только тех, чей код будет включен в релиз). Ну а с кем удастся содержательно и полезно поговорить - будут "консультантами". Спрашивается: зачем что-то делать, если за это (скорее всего) не заплатят? Ну, как бы вам сказать... Вот если у вас сегодня спросят: "ты что вчера делал?" - "Да так, балду пинал". А если взяться, то через неделю можно будет на тот же вопрос ответить: "да так, ось писал". Круто? Конечно, если у вас полная загрузка, такая, что балду пинать ну никак не получается, это предложение не для вас. На данный момент самая актуальная задача, к которой я никак не подберусь - написать загрузчик эльфов. (Собственно, ядро будет на этом закончено.) Есть более отдаленная, но не менее интересная - драйвер семейства протоколов IP (icmp, udp, tcp). Еще кучу утилит всяких надо... Писать надо на С (без плюсплюсов) под компилятор gcc. Можно на ассемблере, но вряд ли его кто-то знает - целевая платформа НЕ писюк, а процессор - НЕ интел. ========== На данный момент готово (но надо будет тестировать/отлаживать): - загрузчик ядра; - управление памятью; - управление потоками (тридами); - управление событиями; - обслуживание очереди сообщений; - обслуживание системных вызовов; - некоторые API-функции; - драйвер собственной файловой системы (тестировал, работает). В процессе разработки (почти готово): - файловые операции в ядре. В самых ближайших планах (кое-что уже начато): - виртуальные ФС /dev и /sys; - управление устройствами в ядре; - сами драйверы устройств; - системный загрузчик модулей; - шелл; - некоторые утилиты; - API-функции (по мере надобности); - одно специфическое приложение. В дальнейших планах: - драйвер протоколов IP; - клиенты сетевых файловых систем; - сервер SSH; - клиент и сервер FTP; - веб-сервер; - дополнительные утилиты. ========== Если кто заинтересуется, изложу дополнительные подробности. |
Мне было бы интересно чисто для ся поглядеть любой кусок кода ядра, который ты написал. А сам я максимум что писал ето интерпритатор под LINUX и веб-сервер под WIN _________________ ТюмГНГУ |
Да не вопрос. Менеджер процессов, он же систем шедулер.
Часть на ассемблере
Часть на С
|
А что самое простое планируется написать для ОС ? _________________ ТюмГНГУ |
Не совсем понял вопрос.
В смысле, какие еще части надо дописать, но они не очень сложные? Так осталось две части всего написать - управление устройствами и загрузку модулей в формате ELF (можно и в другом формате, но с эльфами я уже ковырялся, у меня есть мануалы и общее понимание устройства, и даже некоторый успешный опыт работы с ними, в частности, само ядро я сначала компилирую в эльф, а потом извлекаю из них бинарный код для загрузчика ядра уже собственной утилитой, так что если я сам буду писать загрузку модулей - это будет эльф, но если кто-то напишет a.out или COFF - тоже подойдет, только не exe - я в них компилировать не умею). Это что касается ядра. Кроме ядра важная часть - драйвера устройств, но это я сам, там без ассемблера, думаю, не обойтись, да и вообще, это совсем уж близко к железу, а схему я никому дать не могу, конечно. А, еще есть драйвера файловых систем /dev и /sys. Система /dev тесно связана с поддержкой устройств в ядре, думаю, их надо фактически одновременно продумывать, вот допишу файловые операции (а это буквально дня 2-3 осталось) и сразу возьмусь за эту пару задач. Остается /sys, которую я задумал чисто для удобства, и без нее, в принципе, можно легко обойтись, ну и шелл еще. Вот, пожалуй, шелл - самое простое из оставшегося. Но я пока еще сам толком не сформулировал к нему требования, надо, само собой, чтобы он простейшие программные конструкции понимал, чтобы скрипты писать, но как что - не придумал еще. |
Вот книжка, может пригодится кому... (торрент)
P.S. Интересно, что целевой процессор не интел, а какой? Ведь ассемблер, насколько мне известно, тесно связан с системой команд процессора... Ладно еще интел, амд - система команд во многом идентична P.P.S. какой ассемблер используете?
|
Slin писал(а): целевой процессор не интел, а какой? Slin писал(а): ассемблер, насколько мне известно, тесно связан с системой команд процессора.Slin писал(а): какой ассемблер используете?Добавлено спустя 18 минут 12 секунд: Эх, блин, некогда мне книжки-то читать, особенно теоретические - писать надо. Чукча, однако, не читатель, чукча - писатель... P.S. А г-на Танненбаума я помнится читал на ту же тему году этак в 2000-м. А тут 2006. Новое творение? P.P.S. А еще я читал открытую переписку Торвальдса с Танненбаумом. Танненбаум как-то выпустил статью в которой резко раскритиковал линукс. Дескать, и то там не так, и это не эдак, и вообще моноядро. На что Торвальдс ответил: "г-н профессор, я могу вам продемонстрировать работающее ядро, и довольно эффективное, а вы что можете продемонстрировать, кроме теоретизирований?" |
moishe
тяжело писать без железки, как тестироваться? _________________ Ин дер гросен фамилие нихт клювен клац-клац |
Железка у меня, дать я ее никому не могу, значит, я и буду тестировать. Ну и прелести инкапсуляции можно использовать - если требуется написать функцию, все входы-выходы которой известны, ее можно и на писюке тестировать. Я драйвер ФС так и тестировал. И шелл можно так же тестировать.
Впрочем, шелл можно вообще не писать, взять готовый и портировать. Подумаю об этом... |
moishe
а скажи, зачем самому писать ОСь? есть же виндовс, линукс. или потому что интересно? _________________ Ин дер гросен фамилие нихт клювен клац-клац |
Ну, мы тут (на заводе) всякие железяки делаем. И становятся они все хитрее и разнообразнее, и вроде как надо на них уже какие-то ОСи ставить, иначе тяжело получается. А брать готовую - это ж надо портировать. Да и не любая же подойдет, потому как надо риалтайм, или около того. Линукс по этому критерию отпадает. Да и тяжел он. Я искал подходящую и вроде бы даже нашел - RTEMS называется. Но... Побоялся браться за портирование. Кучу времени потеряю - а вдруг не получится? Или не подойдет? А времени не так много. И решил свою написать - она-то точно подойдет, и разбираться я в ней буду всяко лучше, чем в чужой, и если что, подстрою ее как надо. Вот и пишу. |
moishe
понятно. а пробывал винду ставить? _________________ Ин дер гросен фамилие нихт клювен клац-клац |
andy ice
Шутка юмора такая? |
moishe
http://www.microsoft.com/windows/embedded/default.mspx _________________ Ин дер гросен фамилие нихт клювен клац-клац |
За полчаса не нашел, где там перечислены поддерживаемые платформы. Да, пожалуй, поздно уже перестраиваться. Когда в марте искал подходящую ОСь, на сайте Analog Devices про виндовс не было ни слова сказано. Про RTEMS было написано, будто портирована, а на самом деле ее только собирались портировать, не ждать же, когда сподобятся. А винда даже не упоминалась. |
moishe
я тоже долго тыкался, но нашел упоминание про твой проц. ps: я бы просто попробывал. они дают триальную версию на 120 дней _________________ Ин дер гросен фамилие нихт клювен клац-клац |
moishe
а имеет смысл изобретать велосипед? Не, ну иногда нужно из куска железа выпилит ключ для 21-гранной гайки. andy ice дело говорит. Правда могут потом возникнуть проблемы с лицензиями наверное, но это решабельно _________________ Йа - водоросль. |
Dio
3 доллара на проданное устройство, если я правильно понял чОрные буковки _________________ Ин дер гросен фамилие нихт клювен клац-клац |
Кстати, если есть желание, могу продемонстрировать изумительный Программно-Технический Комплекс, собранный на Линуксе. _________________ Йа - водоросль. |
Dio писал(а): а имеет смысл изобретать велосипед?Всегда есть такая дилемма - использовать готовое решение, подточив его под себя (а обычно выходит - себя под него), или делать свое. Но ведь готовые решения, прежде чем стать таковыми, сначала были идеями, потом проектами, потом бета-версиями, и т.д., и наконец превратились в те самые готовые решения, потому что нашлись люди, которые взялись и СДЕЛАЛИ ЭТО. Я не считаю поставленную перед собой задачу непосильной. И я даже не знаю, что будет быстрее - адаптация готового или написание с нуля, причем полагаю, что мое решение будет заведомо эффективнее. Так почему я должен от него отказываться в пользу Микрософта? andy ice писал(а): я бы просто попробывалКороче говоря, этап Внедрения Готовых Решений для меня уже пройден и возвращаться к нему - только терять время. А может и не только время. Но все равно, спасибо за заботу. |
moishe
я тебя понимаю. ибо примерно тоже самое в своей работе осчусчаю. удачи в движении, язык ЦЕ не люблю, потому учайствовать не буду. если будут идеолого-практические проблемы - обращайся _________________ Ин дер гросен фамилие нихт клювен клац-клац |
moishe
фактически умоляю. Попробуй. Сам по этому темному коридору с граблями ходил. Оказываетсо что кто то когда то нечто подобное решал. Да. Вы напишете свою ось. Уникальную. С копирайтами или заГНУтую и все такое. НО! Она будет заточена под одну конкретную железяку. Теперь представьте на секундочку, что потребители железяки на следующий день после сдачи потребовали к примеру поддержку GPRS протокола, или нечто ОКС-7 подобное... . Ваши действия? Опять кипят мозги, плавяццо клавиши... . Вы фанатик. Я Вас реально уважаю. _________________ Йа - водоросль. |
не... я думаю что заказчикам легче мойшу оплатить, чем потом за каждую железку 3 уе отстегивать _________________ Ин дер гросен фамилие нихт клювен клац-клац |
andy ice писал(а): заказчикам легче мойшу оплатить, чем потом за каждую железку 3 уе отстегиватьВот это - то и ужасно. Добавлено спустя 6 минут 56 секунд: moishe Вы этта, обращайтесь если что _________________ Йа - водоросль. |
Dio писал(а): Оказываетсо что кто то когда то нечто подобное решал.Dio писал(а): Она будет заточена под одну конкретную железяку.Dio писал(а): потребовали к примеру поддержку GPRS протоколаDio писал(а): Вы фанатик.andy ice писал(а): заказчикам легче мойшу оплатить, чем потом за каждую железку 3 уе отстегиватьЕще раз спасибо за поддержку. |
Dio писал(а): Теперь представьте на секундочку, что потребители железяки на следующий день после сдачи потребовали к примеру поддержку GPRS протокола, или нечто ОКС-7 подобное...Кстати, GPRS,GPS,ОКС-7 уже была в ТЗ. Некая гибкость конечно должна быть предусмотрена, и она аппаратно предусмотрена, насколько это это было возможно на момент создания проекта. Все не учтешь. Добавлено спустя 3 минуты 12 секунд: Dio писал(а): Кстати, если есть желание, могу продемонстрировать изумительный Программно-Технический Комплекс, собранный на Линуксе.
У меня есть желание посмотреть |
pva писал(а): Все не учтешь. Это Вы заказчику объясните . Сколько к примеру разновидностей протокола Е1, или того же модного SIP. И почему Алкателевский Е1 отличаеццо от Семеновского pva писал(а): У меня есть желание посмотретьНе вопрос. После 17/08 спишемсо _________________ Йа - водоросль. |
Dio писал(а): Кстати, если есть желание, могу продемонстрировать изумительный Программно-Технический Комплекс, собранный на Линуксе.в смысле вы его дадите пощупать руками? |
VolF писал(а): В смысле вы его дадите пощупать руками?Why not? _________________ Йа - водоросль. |
Dio
ну хз. я почему-то подумал, что вы ограничитесь фотками.. короче, мне тоже интересно посмотреть этот девайс |
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы можете скачивать файлы |