Операционная Система на JS
Всем привет!
Все, наверное, слышали про ОС на JS, Java, и других высокоуровневых языках. И может быть видели что проектов по созданию таких ОС сотни. Их можно найти в большом количестве на github и других хостингах совместной разработки и в сети в целом. Но печальным моментом является то, что большинство из них умирают на первых стадиях разработки. Проект-стартёр теряет интерес, женится, дети, работа итд, ну и времени разумеется не остаётся, какая уж там ОС... Есть и множество других проблем. И чтобы не идти по стопам основателей этих ушедших проектов и не наступать на одни и те же грабли, после сотен, а может и тысяч других разработчиков, я предлагаю заранее всё обдумать и взвесить. Пока предложу основные концепции нового проекта: 1) Полная открытость и бесплатность 2) Модуль (на C и/или C++) с API для быстрого и простого написания драйверов на JS для любых комплектующих, периферии и девайсов 3) DE, окружение и ПО на JS + HTML5 + CSS По первому пункту, думаю, вопросов ни у кого не будет, код и контент "open + free". Второй пункт - это самая главная фишка, ноу хау, одна из главнейших основополагающих составляющих идеологии нашей ОС. Смысл, как вы наверное догадались, в возможности создания, несильно продвинутыми в программировании и в знании железа, пользователями драйверов. По третьему пункту, если есть вопросы, то вам стоит взглянуть хотя бы на Open webOS. Но наша система будет ориентирована скорее на планшеты, нетбуки, ноутбуки и десктопы, хотя возможна и поддержка телефонов и смартфонов, телевизоров итд Концепция: "Драйвера пишет простой пользователь". В смысле, имеет возможность написать не сильно углубляясь в недры, но так как драйвера будут под открытой лицензией, то драйвер нужно будет написать лишь единожды и он будет доступен всем пользователям. Любой пользователь будет иметь право и возможность дополнить, обновить драйвер, исправить ошибки... Будет утилита вроде Synaptic, но с поддержкой функции upload. Система будет модульной, различные модули и субмодули, можно будет загружать и выгружать реал-тайм. В оперативной памяти находится лишь то, что нужно, лишние процессы и службы можно будет выключать, чтобы не загружать процессор попусту, ну и тд. Нужен ли своп и журналирование фс - пока не знаю. Сейчас я только начинаю изучать JS, но это и не важно вовсе. Себя я, впрочем как и многих из здесь присутствующих, вижу максимум в роли девелопера каких-то несложных драйверов для некоторых девайсов и периферии, а также ПО на JS/HTML5/CSS. Я не силён в знании системоустройсва, но в целом общий план системы такой: 1) Включаем девайс (планшет, ноут, десктоп, телевизор, холодильник...) 2) После включения загружается Grub2 (допиленный). Мы его не видим при загрузке, потому что он работает в фоне, но есть возможность вызвать меню. 3) Grub2 видит наши диски и разделы, потому что у него есть драйвера, и этот допиленный Груб запускает модульное ядро нашей системы (его нужно научить этому). 4) Загружаются модули ядра: небольшой базовый модуль (в него будет запихнуто всё, что потребуется системе дополнительно)и загружается наш модуль-фишка с API для драйверов на JS 5) Загружаются только нужные драйвера на JS для железа, подхватываются девайсы, периферия Одновременно: 6) Загружаются V8 и кусочки Blink, а также некоторые библиотеки 7) Стартует DE (Рабочий Стол на JS/HTML5/CSS) Система должна грузиться и работать быстро. Девайсы, периферия, флешки, ж/д диски, ... находятся и автоматически монтируются/отмонтируются как при загрузке, так и уже в DE. Программы можно запускать в изолированных, защищённых и закрытых от основной системы контейнерах (возможно с поддержкой виртуализации и/или подменой сведений о системе). На первых парах можно и без подобных сложных вещей обойтись. Модули состоят из подключаемых и отключаемых реал-тайм субмодулей. Хотя капитально переписывать и поддерживать, обновляя с каждой новой версией, специальные версии V8 и Blink и etc смысла особого нет (насчёт возможностей - вопрос спорен), но всё-таки кое-чего подускорить и оптимизировать можно и стоит. Модуль с API для драйверов я сам разумеется не напишу, как впрочем и практически все здесь присутствующие. А написать его могут, к примеру, разаработчики ядрда Linux, BSD, Hard, Hiku, ну и может кто-то из бывших разработчиков Syllable. У которых не просто огромный опыт соответствующего программирования в специфической узкоспециализированной данной области, но и масса знаний по устройству систем и ядер. Разумеется есть ещё куча проектов, где можно выцепить таких специалистов, и попробовать завлечь в наш проект, Android, IOS, MacOS, Windows. То что "платники" и "проприетарщики" - "испорченные и разбалованные люди", и бесплатно работать не будут никогда и ни за что - это всё бред. И раз уж это будет система ориентированная на стандартизацию, какие-то там новые общемировые общепринятые ISO, то помощь корпораций, крупных компаний, различных коммерческих и/или некоммерческих организаций, будет совсем не лишней. Нужны ли спонсоры, кикстартёр итд - вопрос отдельный. Ну разумеется от вливания дополнительных средств в разработку никому хуже не станет. Что войдёт в базовый модуль пока понятия не имею, на этом этапе разработки неясно. Также пока до конца неясна область применения в системе asm.js, Portable Native Client, Raw Socket API и других технологий. В системе будет стандартизированный Интерфейс программирования прлиложений и система управления пакетами (без "Ада зависимостей"). Сразу предупрежу, если вдруг будут какие-то небольшие конфликтые ситуации внутри коллектива, и кто-то потом захочет уйти, пусть он потом не говорит, "удалите из проекта весь мой код, верните идеи - это моя собственность, мои картинки" итд. Поэтому вы отказываетесь от всех и любых прав на все ваши идеи, на код, контент, на всю и любую вашу помощь в пользу проекта. Всем интересующимся, просьба откликнуться. Поучаствуй, предложи идею и помощь проекту, измени этот мир к лучшему - и твои дети потом скажут тебе за это СПАСИБО! |
Если ОС для серьезного пользования, то какой смысл писать ее полностью на JS, если есть С/С++? Если даже так, то исходной ОС будет всё равно та, в которой интерпретируются и компилируются скрипты. А если речь идет только про приложения, то уже есть направления в эту сторону типа "хроме ос", у которой с открытостью вроде проблем пока не наблюдается.
|
http://runtimejs.org/
Самое забавное что оно даже работает |
Как ни странно...
Спустя 5 лет
https://habrahabr.ru/post/353524/ |
Часовой пояс GMT +3, время: 14:44. |