Тема: ☭ Требования к национальной ОС
Это черновик документа из внутренней постановки "Канторовых систем", который после доработки должен занять свое место в правой колонке блога, в разделе "Постановка задачи".
Национальная ОС
Двоично несовместима с другими платформами.
Предназначена для многопроцессорных/многоядерных рабочих станций с несколькими мониторами.
ОС общего назначения — не встраиваемая, не реального времени, не для специального оборудования и пр.
Сама себя собирает. Нужно для пунктов 1 и 6.
Имеет публичный API ко всем системным и прикладным компонентам. Нужно для пунктов 1, 4 и 6.
Имеет свой браузер, собираемый инструментами из пункта 4 с использованием API из пункта 5.
Имеет русскую локализацию и русскую документацию для пунктов 1, 4, 5 и 6.
Имеет экспортный потенциал.
Все пункты опциональны и дополняют друг друга (инклюзивны). Зависимые требования проверяют друг друга, остальные проверяются совестью разработчиков и доверием пользователей. Реализация каждого нового пункта делает платформу всё более самостоятельной, реализация всех — делает Россию независимой ИТ-державой.
Двоичная несовместимость
Нельзя создать независимую экосистему, придерживаясь двоичной совместимости с другими платформами. Задача технологического лидера — бросить вызов, подтвердить свое лидерство практикой и вести за собой.
Многоядерная рабочая станция с несколькими мониторами
Национальная ОС предназначена не для развлечений или узкого круга задач, а для дела, для работы, для бизнеса. Поскольку понятие рабочей станции довольно расплывчато, выбрана простая и легко проверяемая характеристика — многоядерный или многопроцессорный компьютер с подключенными к нему несколькими мониторами.
Одноядерные процессоры ныне сохранились лишь во встроенных системах, а рабочее место со несколькими мониторами типично как раз для тех задач, которые нельзя выполнить на планшете, что сразу отсекает чисто развлекательную направленность. Подразумевается, что несколько мониторов стоит на рабочем месте программиста, дизайнера, инженера CAD, бухгалтера, трейдера и пр.
С учетом уже реализованной многоядерности ОС для рабочих станций легко превращается в серверную, — удалением прикладных компонентов. Нужно как-то сформулировать.
ОС общего назначения
Уточняет предыдущий пункт, отсекая заведомо специальные ниши как на основе традиционных встраиваемых систем, так и рабочие станции на базе специального оборудования, вроде выпускавшихся раньше SGI или ЭВМ на "Эльбрусе".
Теоретически, конечно, разработка годной ОС может подстегнуть развитие электронной промышленности, но для пользователей это означает, что придется отказаться не только от имеющихся программ, но и от имеющихся компьютеров. Боюсь, рядовой пользователь Рунета нас не поймет. Этот пункт — гарантия от подобной подставы.
Возможно, тут стоит добавить про переносимость, но я не уверен. Рабочих станций на ARM пока нет. У некоторых переносимость вызывает недержание или превращается в фетиш.
Сама себя собирает
В промышленности это называют производством полного цикла. Его противоположность — крупноузловая промышленная сборка. Градации между ними — степени локализации производства. Те же критерии применимы и к производству ПО.
В независимой ОС должны быть все необходимые компиляторы, компоновщики, отладчики и прочие инструменты, позволяющие собрать ОС, библиотеки и программы под нее, не прибегая к кросс-компиляции. Отсутствие каких-либо компонентов — недостаточность локализации производства, зависимость от внешних поставщиков, — как и в промышленности.
Публичный API
Наличие публичного API исключает недокументированные возможности и зависимость от одного поставщика, а также отсекает закрытые военные и прочие специальные ОС.
Для любительских ОС и проектов на ранних стадиях развития — публичный API — минимально необходимый критерий, позволяющий причислить разработку к классу операционных систем.
Браузер
В ситуации на начало 2015 года браузер — объемлющий прикладной компонент (программа), потенциально позволяющий заменить типовое прикладное ПО, поставляемое с ОС. Сейчас и калькуляторы, и блокноты, и даже офисные программы доступны из браузера. Поэтому браузер — единственный прикладной компонент, включенный в требования.
Выбор именно браузера обусловлен еще и тем, что, в отличие от офисных пакетов, каждый из которых имеет свой формат документов, работа браузера описывается открытыми стандартами, которым (в теории) следуют все разработчики браузеров.
Сложность разработки или портирования браузера является залогом пригодности поставляемых с ОС инструментов для практической прикладной разработки. На новой платформе еще предстоит разработать или перенести свою CAD, графический пакет и другое ПО для задач, решаемых на рабочих станциях. На примере браузера можно будет увидеть, как это сделать конкретно.
Русская локализация и документация
Определяет национальную принадлежность ОС и не вызывает сомнений в своей разумности. Любые другие требования кому-то могут показаться жесткими, кому-то — абсурдными, что приведет к ненужным спорам и разделению на враждующие лагеря.
Подготовленный пользователь сможет самостоятельно проверить качество и глубину локализации и документирования, а большего и не требуется.
Экспортный потенциал
Этот пункт поднимает значимость собственных разработок по сравнению с заимствованными. Глупо рассчитывать, что заимствованные с Запада и локализованные в России решения удастся продвинуть обратно на Запад как российские. Тут либо процент локализации должен быть настолько большим, а доработки настолько уникальными, чтобы не вызывать сомнений, либо же это сразу должна быть чисто местная разработка, с нуля.
Добавлено 03.07.2015 в 0:26
Какие требования не будут включены в список
Каждая программа по умолчанию имеет доступ только к своему каталогу, к своей песочнице. Заражённая вирусом программа удаляется вместе со своей песочницей и, следовательно, вирусами. Программу можно восстановить из её персональной резервной копии, которая создаётся в момент инсталляции.
Исполняемые (и интерпретируемые тоже) файлы не могут храниться в произвольном месте.
Пользователь имеет список программ, которые он имеет право запустить. Всё остальное – под запретом. Права назначает администратор при инсталляции: «Выберите пользователей из списка, имеющих право её запускать».
Это не полный список, а только образец. Поскольку обсуждаемый документ относится к постановке задачи, предъявляемые требования должны лежать вне проекта и формально подходить к другим ОС, иначе это недобросовестная конкуренция и подгонка задачи под решение.
Добавлено 08.07.2015 в 18:19
Отклики из чата "Колибри", где я давал ссылку:
пункт про экспортный потенциал очень сомнительный, т.к. в списке нет сравнения с существующими системами. Про браузер тоже очень сомнительно, т.к. W3C меняет стандарты как перчатки и область веб-софта в России отсутствует впринципе, а рассчитывать что использование google docs сделает национальную ОС независимой как-то опрометчиво.
пункт про песочницу понравился, он правильный и в iOS/Android всё устроено также, только в случае второго пользователь бездумно может права приложениям назначать (да и впринципе вся система раздачи прав самим пользователем ущербна и излишня)
требования норм, а кто их реализовывать будет?
Если отбросить мысль, что мне тупо отказали в понимании, остается признать, что идею списка требований мне пока донести не удалось. Тут или нужно больше контекста, или идея списка негодна сама по себе.
Добавлено 13.01.2016 в 11:51
На каком-то из форумов или даже на Хабре была фраза: "Браузеры сейчас — как ОС". Теперь время от времени наталкиваюсь на нее. Мысль пошла по Рунету. Думаю, уже можно использовать как аргумент.
Радует, что моя аналитика в который раз оказалась верной.