Pull to refresh

Comments 100

Было уже. Singularity. Smalltalk. PhatomOS. Не взлетело.
Пункты 5-9 просто на корню убивают саму идею разработки под такую систему.

9 пункт-то почему убивает? Все ОС, что я знаю, поддерживают разработку на языках без этой ориентации, и ничего, вроде. Не убивают.

Потому что пункт 9 — это отсутствие поддержки не-ОО-языков. Проще говоря, писать на функциональном языке не дадут.

Потому что пункт 9 — это отсутствие поддержки не-ОО-языков. Проще говоря, писать на функциональном языке не дадут.


От ОС эта поддержка и не обязательная.
В Windows/Linux на уровне системы ООП так себе.
От ОС эта поддержка и не обязательная.

Не обязательна. Но вот когда ОС начинает подавлять все остальные языки — становится… занятно.

Но вот когда ОС начинает подавлять все остальные языки — становится… занятно.


Если эта ОС не работает с исходным текстом языка программирования прикладной программы, то она никак подавлять не может.

Всю работу по смене парадимы берет на себя «runtime-библиотека языка программирования, на котором реализована прикладная программа + API ОС».

По оба конца этого тандема — может быть что угодно, любая парадигма в ОС, любая парадигма в языке.
Если эта ОС не работает с исходным текстом языка программирования прикладной программы, то она никак подавлять не может.

А про это мы ничего не знаем.

К слову, создатель Фантома продолжает что-то пилить в репозиторий проекта

Точно, виртуальная машина smalltalk с бутстрапом и управлением железом.
Пункт 9 особенно шикарен.
Хотелось бы узнать у автора как он видит перенос софта написанного на массе различных языков, в том числе полумертвых, типа кобола на свою ос, и в том числе софта на языках которые про ооп ничего не знают и знать не хотят.

Простой ответ — «никак», см. пункт 8.
Сложный — «внутри объектных обёрток». Но, конечно же, это требует куда больших затрат усилий, чем простая адаптация libc или даже Qt.
Добрый день.
Насколько я могу судить, основная причина провала упомянутых Вами проектов состоит в банальной нехватке софта под них вкупе со слабой обратимостью смены платформы, что отпугивает как пользователей, так и разработчиков.
Буду рад услышать Ваше мнение на этот счёт.
Краткое содержание статьи: «Мы пишем самую лучшую в мире операционную систему пытаясь объять необъятное. Зачем мы это делаем? Потому что другие операционные системы обнимают необъятное плохо и неправильно.»
А если серьезно — в этом потоке общих слов и фраз хочется увидеть цель. Представим, что система создана — что в ней можно делать такого, чего нельзя в существующих? Очень хочется примеров.
Я читал как-то про некую ОС, где основная цель была безопасность. И система позиционировалась как продукт для управления медицинским оборудованием. А у вас?
Да, если система создается с целью развлекательного велосипедостроения — то это тоже нормально.

Мы пишем самую лучшую в мире операционную систему

Не систему а планы сделать систему.
Скорее всего до хоть сколько-то осмысленной реализации дело не дойдёт.


на данный момент находящейся на раннем этапе проектирования и разработки.

Это в переводе на русский означает "пока что занимаемся графоманией и может быть написали бут лоадер".

Это в переводе на русский означает «пока что занимаемся графоманией и может быть написали бут лоадер».

Я не поленился посмотреть в их репозиторию на гитлабе — нет, до бутлоадера пока не дошло. Зато есть спецификации примитивных типов данных (int8, int16, float, double). В формате XML!
Добрый день. О целях я обязательно напишу более подробно в следующем посте.

Если вкратце, то цель — получить совместимость любого софта. Не на уровне «в новой версии Программа 1 поддерживает экспорт данных в формат Программы 2», а, например, на уровне возможности использовать интерфейс MS Word при работе с Гуглодокументами, если это удобно. Или через интерфейс клиента VK общаться по Skype, опять же, если это удобно. Видеть всю свою музыку из Яндекса/ВК/Ютюба/Локальной подборки в одном месте, если это удобно. Зачем? Потому что это удобно. Потому что компьютер/телефон мог бы представлять собой целостный инструмент, не поделенный на узкие зоны ответственности ограниченными приложениями. Я разовью тему в следующих постах.

Хотя, разумеется, некоторая доля развлекательного велосипедостроения тут присутствует. Все мы хотим получать удовольствие от того, что делаем. =)
не поделенный на узкие зоны ответственности ограниченными приложениями

Я вот не пойму это в самом деле такая нереальная наивность или троллинг? Цель разработки всего перечисленного в вашем комменте софта — отъесть зону ответственности себе (разработчику-правообладателю софта) и ни с кем ей не делиться. Нафиг им не сдалась ваша всеобщая совместимость, им надо устранять конкурентов с рынка, и управляемая несовместимость — важный инструмент в этом. Хотите совместимость — пишите полный стек всего софта который будет совместим сам с собой и выживайте в конкурентной борьбе с остальными. Только по-моему результат заранее известен и он не в вашу пользу.

Это впихнуть невпихуемое. Кто вам эти интерфейсы взаимодействия будет реализовывать для Skype и vk? В Винде тоже можно создать компоненты com, но они очень ограничено используются для взаимодействия. При том интерфейсы постоянно меняются.

В винде были OLE-документы, и это поддерживал не только MS Office. Можно было в вордовский документ вставить изображение из CorelDRAW!.. И редактировать все это одновременно (пользовательский интерфейс получался каким то гибридным). Вот только это требовало наличия на машине всего софта что был использован, как минимум той же версии (либо будет картинка).
Проблему с «да зачем это и кто реализовывать» MS решала за счет того что:
— офис УЖЕ поддерживает. вы же не хотите чтобы пользователи ВАМ задавали вопросы почему не работает с вашим приложением то что вполне работает с компонентами офиса
— поддержка в библиотеках MFC/ATL всего этого хозяйства
Если вкратце, то цель — получить совместимость любого софта. Не на уровне «в новой версии Программа 1 поддерживает экспорт данных в формат Программы 2»


у меня такое чувство что вы очень слабо представляете как вообще всё это работает, а как именно реализовывать вы еще даже не думали
Если вкратце, то цель — получить совместимость любого софта.

Совместимость — это принятый всеми участниками контракт. Кто будет эти контракты согласовывать в случае вашей системы?

Команда поддержки ОС по представлению разработчиков софта. На этом я подробно остановлюсь в одной из следующих публикаций.

Понятно. Если вкратце, это означает, что ни один из разработчиков (кроме самих разработчиков ОС) не получит удобный ему контракт, а, следовательно, не будет и участвовать в этом проекте. Потому что зачем?

Есть масса примеров, когда общий контракт работает, и за его сопровождением стоит некоторая организация. Тот же W3C.

Вы сейчас про то, как работает стандарт на HTML?

Да. В эту же категорию попадают, например, телемеханические протоколы (Modbus/IEC) и даже языки программирования (всяческие ECMA, ISO C++ committee и прочие).

Так вот, сколько я помню свои столкновения со стандартом на HTML, с полной совместимостью между использующими его клиентами было… сложно, скажем так.


Порешали?

Проблемы начались в тот момент, когда имплементации бежали впереди стандарта (эпоха мегабитвы IE vs NN). На данный момент благодаря активным действиям W3C ситуация стала гораздо лучше.

Аналогично, путаница, привнесённая Borland C++, Managed C++ и т. п., заметно улеглась с возобновлением работ по стандартизации и выходом C++11/14/17.

Ну то есть сейчас-таки можно открыть любой сайт/веб-приложение в любом браузере, и везде будет себя вести и выглядеть одинаково?

Как это относится к теме поста?

Так же, как и ваше заявление об успехах W3C.


Проще говоря, точно так же, как W3C не добилась полной совместимости, так же и ОС из поста ее не добьется, а это значит, что "цель — получить совместимость любого софта" достигнута не будет.


Потому что разработчики прикладного софта — люди, за которыми стоит, в общем-то, бизнес, и и у людей, и у бизнеса, есть другие задачи помимо того, чтобы пытаться соблюсти какой-то там стандарт.

Люди — это да, непредсказуемое.

Вопрос не вам, а автору статьи.

Предположим, что ОС будет открытой и каждый без ограничений сможет выпускать свои модули и программы. Если появится такой автор, который будет плевать на совместимость, не полностью реализовывать интерфейсы, нарушать стандарты и за счёт этого намного быстрее создавать фичи, обходить конкурентов, набирать пользовательскую базу, что с этим планируется делать? Если ничего, это будет началом конца идеи, т.к. его дурной пример заставит всех остальных тоже пренебречь качеством и совместимостью, чтобы хоть как-то не отстать.
Такой автор софта, как минимум, получит пустое множество в том месте, где у других авторов будет список совместимых с их модулем модулей (формируемом, в том числе, путём прогона тестов, с соответствующими мерами против оптимизации под конкретный тест). Соответственно, пользователи, которые пришли на данную ОС ради её преимуществ, увидят, что данный софт их существенно ограничивает, и с большой вероятностью предпочтут конкурентов. Как максимум — нарушит условия лицензии (хотя до обсуждения таких тонкостей я пока не дозрел от слова «совсем»).

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

Именно.

Так наоборот, он получает все преимущества: может использовать любые чужие добросовестно написанные модули. Но наоборот, свои модули не даёт в пользование другим программам (потому что они написаны кое-как, использовать их можно только зная все тонкости и обходя расставленные грабли, а исходников нет, чтобы посмотреть детали).
у других авторов будет список совместимых с их модулем модулей (формируемом, в том числе, путём прогона тестов
Про это ничего нет в статье. Но, мне кажется, такую систему сделать нереально. Попробуйте придумать авто-тесты на «модуль интерфейса мессенджера, отправляющего сообщения по Ctrl-Enter». Если есть известная функциональность, покрытая тестами, то есть и референсная реализация. И больше писать ничего не надо? Если нужно расширить функциональность, для чего потребуется написать новую версию модуля, то на новую функциональность не будет тестов в репозитории.
Соответственно, пользователи, которые пришли на данную ОС ради её преимуществ, увидят, что данный софт их существенно ограничивает, и с большой вероятностью предпочтут конкурентов
Для пользователей всё выглядит так, что этот софт работает идеально, а чужой софт, подключающий его модули, глючит.
Как максимум — нарушит условия лицензии
Ха-ха! Лицензия запрещает писать глючный софт? :) Лицензия запрещает двоечнику Васе создавать свои модули, потому что он не может сделать их достаточно качественными? Посмотрел бы я на текст этой лицензии )))
Для пользователей всё выглядит так, что этот софт работает идеально, а чужой софт, подключающий его модули, глючит.
Не совсем так. Не нужно смотреть на автора софта как на автора всего стека модулей (аналога приложения), которыми пользователь начинает обмазываться с места в карьер. У пользователя, скорее всего, в системе уже стоит любимый интерфейс, через который все мессенджеры работают, любимый менеджер уведомлений, который мигает светом в аквариуме при получении нового сообщения, любимый плейер, который выводит mp3шечки на колонки в зале, и так далее. Если после установки нового интерфейса мессенджера в нём не видны сообщения из других клиентов, или если новый модуль подключения к серверу обмена сообщениями не работает со старым менеджером уведомлений, или если пересланные песни начинают проигрываться с ноутбука, пользователь с большой вероятностью откатится и забудет. Смысл нарезки софта на зоны ответственности состоит как раз в том, чтобы отвязать пользователя от платформы, позволяя получить от каждой по крупице.

Про это ничего нет в статье.
Будет.
пользователь с большой вероятностью откатится и забудет.

Как вы думаете, почему у меня суммарно пять мессенджеров стоит, даром, что как минимум два из них меня бесят?

Потому что без стандартов Вы не можете уменьшить это число до двух, даже если «козлит» только один.

Нет, не поэтому. А потому, что ни от одного из них я не могу отказаться без потерь для себя.


Что означает следующее: предположим, я гипотетический пользователь вашей ОС из примера выше, у меня стоит четыре мессенджера, любимый интерфейс, и уведомления в аквариум. Потом у меня появляется новый корреспондент, ради которого надо поставить пятый мессенджер, которому плевать и на интерфейс, и на аквариум. Что я могу сделать? Да ничего, смирюсь, и будет у меня два интерфейса — один для четырех мессенджеров, и второй для пятого. А потом один из этих четырех мессенджеров посмотрит на пятый, и скажет — а чего, собственно, я страдаю, тратя силы на поддержание совместимости? И выкатит обновление, которое ломает аквариум. И что я сделаю? Откачусь? Нет, старая версия новый протокол не поддерживает. Потеряю полторы сотни корреспондентов? Тоже нет. Смирюсь, и будет у меня уже три варианта.


И ничего ни вы, ни пользователь с этим сделать не можете.

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

Кстати, насчёт утверждения интерфейсов. Первые 2 года вам может быть будет интересно рассматривать все предложения и работать с ними. А дальше, откуда брать мотивацию? Просить деньги за рецензирование каждого нового входящего предложения, и повышать цены, по мере роста потока входящих? Или сказать: да делайте уж что хотите, задолбали?!
Новая фича не появится без модификации интерфейсов и стандартизации. Это действительно плохо в ближнесрочной перспективе, но хорошо в долгосрочной.

Без поддержки интерфейсов со стороны разработчиков ОС эта система нежизнеспособна. Будет ли эта поддержка платной или бесплатной, не принципиально.
Новый пользователь приходит на платформу и задает вопрос — а где тут Netflix? А хотя бы будет в будущем? И как его сделаешь при том что ему нужен DRM и защита ключей.

Или другой вариант: технологически продвинуты банк на букву Т — делает приложение по всем канонам ОС и все работает, банк на букву А — делает то что мало мальски формально их выполняет а банк на букву С делает вообще по сути иконку внутри который свой пользовательский интерфейс. Только вот пользователю зарплату платят через банк С и перевести возможно нет (а у банка А — хорошие условия по карточкам).
И что делать? Не использовать приложения от А и С?
Этот вопрос обсуждался. Да, не использовать.
вы же понимаете что не-использовать будут вашу ОС, а не приложения от банков?
Само собой. При прочих равных новую ОС не будут использовать, даже если она поддержит всё то же, что и конкуренты. Huawei тратит огромные деньги на раскрутку своей Harmony OS даже при наличии своей линейки устройств. Аналогично, если от предложенной системы откусить её фишки (а именно это и произойдёт при затачивании для работы существующих приложений), исчезнет всякий смысл её разрабатывать.
Это неправильный подход для операционной системы, которая только планирует выйти на рынок. Барьеры для пользователей надо ставить на выходе. А вы ставите их на входе, не пуская пользователей, которые ещё не стали вашими.
Вы же понимаете, что операционная система — это не вещь, которая сама по себе нужна пользователям. Это инструмент, с помощью которого они смотрят свою подписку Нетфликс, читают почту Gmail, постят фоточки в Инстаграм, управляют своими банковскими счетами через приложения клиент-банк, редактируют документы в MS Office и так далее. Поэтому первичное в ОС не её архитектура, а её способность воспроизводить сериалы Нетфликса, запускать браузеры на основе Хромиума, офисные пакеты, банковские приложения и так далее. Если ваша ОС имеет плохую архитектуру, но при этом запускает нужный софт, у неё будет свой пользователь. Если же она внутри прекрасна, но нужный софт на ней не работает, она умрёт не родившись.
Вы, безусловно, правы, если речь идёт о коммерческом разрезе и ориентации на быстрое получение прибыли. Но на данный момент у меня нет цели любой ценой вытолкнуть на рынок некий продукт.

А какая цель у вас есть?

Я уже писал. Показать, что работу цифровых продуктов можно организовать куда как более эффективно. Если в конечном итоге окажется, что это никому не нужно, пытаться сделать из неё ещё одну операционную систему просто чтобы было мне лично не интересно.
Технически, узкоспециализированный под определённую задачу монолит будет эффективнее набора чрезмерно универсальных модулей, тратящих ресурсы ещё и на сопряжения по интерфейсам.

Или какой критерий эффективности?
Если у Вас будет монолит, который эффективно решает любую задачу, я за Вас только порадуюсь. Но сейчас этого нет и в помине — сейчас пользователю приходится работать с нагромождением монолитов, тратя ресурсы на переключение и перекачку данных. О проблемах, которые при этом возникают, я ещё буду много и нудно писать.
Если у вас будет тест, который меряет эффективность любой задачи, я за вас порадуюсь аналогично.
Показать, что работу цифровых продуктов можно организовать куда как более эффективно.

Что значит "более эффективно"? По какому критерию эффективности?

А вообще, Вы во многом правы. Проблема человеческой непорядочности в общем виде действительно не решается даже в юриспруденции, не говоря уже о программировании. Но это не мешает иметь отдельные островки порядочности и отдельных хороших людей вокруг себя.

Точно так же, к примеру, свободный софт не решает проблемы привязки к проприетарным решениям, но где бы мы были без свободного софта?
отдельные островки порядочности и отдельных хороших людей вокруг себя.

Это называется резервацией. https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D0%B4%D0%B5%D0%B9%D1%81%D0%BA%D0%B0%D1%8F_%D1%80%D0%B5%D0%B7%D0%B5%D1%80%D0%B2%D0%B0%D1%86%D0%B8%D1%8F


А то, как вы это описали — скорее самоутешение "зато у нас свои порядки".

но где бы мы были без свободного софта?

А где мы были в 90-е годы, например, когда доля СПО на рынке была под лупой неразличима? Совершенно неважно, свободный софт или проприетарный, если он качественный и выполняет свои задачи. Да и если он некачественный, тоже уже неважно, какая там у него модель распространения.
Касательно лицензии. Та же Apple блокирует приложения, не следующие рекомендациям. Google — менее активно.
Ну, если делать что-то типа iOS, нужно просто очень много денег, а потом пытаться их как-то отбить…
Очень в тему вспоминается анекдот про то, что нельзя выпить всю водку, но стремиться к этому нужно.

Проблема в том, что в данном случае половинчатые решения не работают.

Ещё одной проблемой стандарта HTML является отсутствие библиотеки тесткейзов с адекватным покрытием. С учётом разницы между платформами, под которую адаптирован этот язык, дело написания таких «юнит-тестов» является достаточно сложным, но не безнадёжным.
Операционная система «Сивелькирия» задумана как решение описанных выше и некоторых других проблем.

Из статьи совершенно непонятны две вещи:
1. Как она собирается решать описанные выше проблемы
2. Почему вообще это считается проблемами
Добрый день. На эти вопросы я обязательно отвечу подробно в следующих постах цикла.

То, как я услышал сказанное автором: мы собираемся сделать нечто, работающее само по себе, выяснить, чем на самом деле занят ваш компьютер вы не сможете, вмешаться — в случае возникновения проблем — тоже, заботиться о ваших данных на компьютере вам тоже не придется, вы просто не будете иметь к ним доступа.
Примеры реализаций "все в одном месте" мы видели и продолжаем наблюдать: Windows, есть еще Apple, Google со своим андроидом, яндекс, который свою ОС пока не запилил, но со своим браузером столько г… а на компьютер засовывает. Я не спрашиваю "зачем", как на этом зарабатывают большие корпорации — это более или менее понятно, просто, есть большие сомнения что вы это сможете, прежде всего финансово.
Да и сама идея "ОС, как платформа для интеграции, максимально защищенная от вмешательства пользователя" плоха. Мы каждый день сталкиваемся с разного рода интеграторами, оператор связи постоянно "возникает" со своими предложениями по голосу/интернету/тв, банки, рекламные/информационные конторы, магазины ...., список у каждого свой. Сомнительно, что вам удастся внушить доверие потенциальным пользователям.

Здравствуйте. Описанные Вами проблемы действительно существуют. Постараюсь в следующей статье показать, почему это не тот случай и где в предложенной схеме место открытости.

Австралийские пожары можно затушить разом этой статьёй, столько в ней воды

UFO just landed and posted this here
ну не управляет ОС окнами (последний раз это было, вроде в win3.11)

Почему не управляет? Вроде в виндовс до сих пор графическая подсистема, включая и собственно управление окнами, тесно интегрирована в ОС. Это вам не линукс с совершенно отдельными DM и WM.

Ну не настолько она тесно интегрирована в ос. Винда может работать и без нее и такой вариант даже есть. UI там реализуется через user32 апи, которое находится в одноименном dll. Даже графические драйвера находятся не на уровне изоляции ядра, а пользователя.

Это что за вариант такой? Например, Windows Server Core — «вариант без интерфейса» — вполне себе рисует окошки командной строки, и там можно запустить графические утилиты типа regedit

Даже графические драйвера находятся не на уровне изоляции ядра, а пользователя
Это неверно. Вся работа с ресурсами графики и окон (GDI, User) находится в драйвере ядра win32k.sys. Отсюда же множество уязвимостей, позволяющих из пользовательских программ залезть в ядро. Примеры:
habr.com/company/pt/blog/328804
habr.com/company/eset/blog/314266

Подозреваю, автор дольше придумывал название ОС, чем работал над концепцией)

UFO just landed and posted this here

Давайте уже создадим ОС, которую можно будет быстро понять, с хорошей документацией на всех языках, по всем интерфейсам, с кучей библиотек на все случаи жизни и опять таки с нормальной документацией. Да сделаем так чтобы всё это работало вместе как часы. Раздадим всем ресурсов, чтобы никто не голодал. И тогда никто уже не будет думать о разработке какой-то там ОС, дающей хлеб кучке людей да решающей проблемы больших корпораций

"… Нынешнее поколение хабравчан будет использовать Хабр-ОС!" Так сказал пользователь Daddy Cool отвечая пользователю Vlad800 2 февраля 2020 года при обсуждении новой операционной системы.
Так сказал Первый секретарь КПСС Н. С. Хрущев, выступая 31 октября 1961 года на XXII съезде КПСС

Зачем делать целую ОС, если не хватает каких-то интеграций? Шансы того, что она станет популярной и что кто-то будет под неё что-либо делать крайне малы. Если нравится сам процесс разработки — то нет вопросов, почему бы и нет.


Мне кажется, куда более реалистично придумать что-то вроде модуля ядра/сервиса для существующих ОС, в котором будут все нужные API, чтобы можно было интегрировать что угодно с чем угодно (и пересылать, например, сообщения из одного приложения в другое, реализовав абстрактное апи Сообщений).


… а затем каким-то образом убедить всех разработчиков приложений, что им это нужно. Но чтобы навязать стандарт, нужно колоссальное количество ресурсов и времени, куда большее, чем на разработку, но однозначно меньше, чем делать целиком новую ОС.

Здравствуйте. Благодарю за комментарий. API под существующие ОС — дело очень хорошее. В таком виде предложенная затея тоже вполне может существовать.

На самом деле, примеров такого внедрения стандартов достаточно много: HTML, всяческие IEEE и RFC, семейство протоколов IEC. Другое дело, что исторически чаще стандартизуются узкоспециализированные или технически запутанные отрасли, а программы для простых пользователей пишутся кто во что горазд. В итоге нам до сих пор приходится вспоминать сначала, какой мессенджер нужно открыть для связи с конкретным человеком, а потом — нужно ли зажимать Shift, чтобы вставить в сообщение перевод строки.
Берём объектную модель KDE на Linux, выкидываем остальное. Готово.
То есть, планируется настолько драконовская система, что в каждом мессенджере и редакторе будут регламентированы все хоткеи? Ну наконец-то победим неразбериху с Enter / Ctrl-Enter для отправки сообщения, и F5/F9 для запуска отладки.
Нет, что Вы. Планируется возможность использовать любой удобный интерфейс в любом мессенджере. В том числе — и использование разных окошечек по старинке, кто ж такое запретит. Аналогично, если за анализ и подсветку синтаксиса, представление структуры проектов, запуск компилятора/отладчика, отрисовку окна IDE и т. д. отвечают разные модули, нет проблемы с тем, чтобы использовать общие хоткеи и даже общий интерфейс, если это удобно.
Чтобы получить такую модульную схему, разбиение нужно сделать в самом начале проекта, задолго до написания хоть какого-то кода. При этом, если мы что-то забыли (например, не предусмотрели подсветку синтаксиса), поменять в будущем будет очень болезненно, если не нереально — меняются интерфейсы, все старые модули превращаются в тыкву. И хорошо, если на них есть исходники (можно сделать какое-то тривиальное изменение, типа добавление ф-ции раскраски, которая в этом модуле ничего не делает). Все модули в системе — open source с единой лицензией, так ведь?

Да, именно так и предлагается делать. Проблема изменения интерфейсов актуальна, я ещё буду писать, какие конкретные действия предлагаются для её решения. Модули могут быть и закрыты, главное — открытость всех интерфейсов.

В каждой статье про новую ОС / очередной дистрибутив линукса / очередную графическую оболочку / etc возникает один единственный вопрос "ЗАЧЕМ?!!!!!!!!!!". Нет ни одного дистрибутива линукса, который нормально работает из коробки, нет ни одной нормально работающей оболочки. Зачем 100500 дистров линукса? Зачем очередная ОС, когда более менее нормально работают только две? Почему бы не взять и не допилить всем миром убунту? Потому что сообщество ЧСВ, а убунта снап из коробки поддерживает и поприетарные дрова ставит. Ой все. Задолбали. Никогда Линукс не возьмёт и 20% на десктопе, пока все будут изобретать велосипеды.

1. А почему именно убунту?
2. Многим не интересно допиливать условную убунту. Это же чужой проект, зачем тратить на него время, если за это не платят? А велосипед можно построить и бесплатно, просто потому, что интересно, и полезно для развития.
3. Линукс не пойдет на десктоп из-за ряда «врожденных» проблем, которые не устранить допиливанием. Он просто не создан для этого.
3. Линукс не пойдет на десктоп из-за ряда «врожденных» проблем, которые не устранить допиливанием. Он просто не создан для этого.


Линукс — никаких проблем не имеет для десктопного применения.

Это просто — ядро ОС.
Оно вполне себе живет и на серверах и на десктопах и на смартфонах.

Проблемы имеет, например, X Windows System. Но она появилась еще до рождения Linux. Когда автор Linux еще в школу ходил.

2. Многим не интересно допиливать условную убунту. Это же чужой проект, зачем тратить на него время, если за это не платят? А велосипед можно построить и бесплатно, просто потому, что интересно, и полезно для развития.

Все зависит от того, хотите вы в конце концов увидеть велоспед на ходу еще при вашей жизни или нет.
Время, когда одиночка мог создать полнофункциональную ОС за обозримый срок, закончилось еще лет 40 назад (Linux не полнофункциональная ОС, а только ядро; кроме ядра прочие 99,9% компонентов ОС были созданы не тем самым автором Linux).

Проблема ядра — бинарная несовместимость модулей между версиями. Попробуйте, например, сделать драйвер для какой-нибудь железки, который не отвалится после обновления ядра.
Чтобы ОС пошла на десктоп, нужно привлечь коммерческих разработчиков. А вирусные лицензии типа GPL этому явно не способствуют. А также этому не способствует общая нестабильность и неоднородность api. Очень сложно сделать приложение, которое будет работать более чем в одном дистрибутиве какой-либо одной конкретной версии. И которое не отвалится внезапно после обновления какой-либо библиотеки.
В Андроиде эта проблема более-менее решена, ценой существенной потери в производительности.
Что касается серверов — их обслуживают профессионалы, которые как раз и занимаются подобными проблемами.
А в телефонах вообще прошивка под конкретный аппарат, где что-либо обновить — сама по себе задача нетривиальная, и делается обычно производителем.

А велосипеды обычно строятся ради процесса, а не результата.
Чтобы ОС пошла на десктоп, нужно привлечь коммерческих разработчиков. А вирусные лицензии типа GPL этому явно не способствуют.


Не выдумывайте.
В реальных сборках Linux вполне себе существуют закрытые бинарные BLOB-куски, те же драйвера.

Да, и для установки этих драйверов требуются исходники ядра и компилятор. Это, по-вашему, нормально?
Как правило, не требуются. Они лежат уже собранные в репозиториях.
Вот в том то и дело: чсвшники кругом. Ой мне блин не нравится то, мне не нравится это. Я свое создам. В итоге ни одной стабильной linux-оси для десктопа. Зато все линуксоиды топят за «линукс в массы». С таким подходом такого не будет никогда.
В итоге ни одной стабильной linux-оси для десктопа.

Вы сели в машину времени и прилетели к нам из 2005?
Стабильную ось для ноута с гибридной графикой в студию. Такую, чтоб из коробки и максимум 3 команды в терминал.

Или чтобы GTX 16**/ RTX 20** без бубна нормально работали.

Ну или чтобы управление питанием или турбобуст процессора без скрипта в миллион строчек.
Автор, вы очередной разработчик велосипеда (причем старого)? Ибо мало того, что «концепции» Ваши родом из 80-х годов прошлого века, так еще и некоторые из них, мягко говоря, абсурдны и бессмысленны. Мой Вам совет: у вас хорошо получается писать пустопорожние тексты, так вот и займитесь этим, а не лезте в сферы чуждые Вам. Не верите — так откройте глаза и скажите ответьте себе на вопрос: зачем вообще сейчас пользователю нужно что-то, кроме быстрого браузера? Нужны ли окна, когда 90% пользователей разворачивают любое окно во весь экран? Нужна ли рядовому пользователю консоль и система буквенных команд, как класс? И вообще, чем плоха концепция распределенных вычислений и диференциация фронтенда от бэкенда? Дядюшка Илон запускает свои долбаные спутники все дальше и выше. И что-то мне говорит о том, что каналы связи между девайсами пользователей и серверов будут всяко надежнее привычных интерфейсов обмена внутри компутера. И зачем тогда ОС как класс нужна будет? А уж тем более в виде мамонта, описанного у вас? Вообще-то странно пытаться родить собственную ОС, при этом не видя современных тенденций развития в этой сфере. Или это вам курсовую работу в техникуме дали написать?

На сколько бы хабр не был бездонной выгребной ямой для людей с бесконечным самомнением, но в этом случае я что-то не могу промолчать.


Уважаемый автор, Ваши поэтические изыскания вполне связны, но не очень информативны. Больше похожи на выкладки эффективных менеджеров на конференциях между бутылочками бесплатного пива. "Да-да, я придумал инновационную идея, а как ее будет реализовывать обслуга это не моя проблема. Я лучше задач им в спринты накидаю, чтобы они вот эту деталь верстки сдвинули на полсантиметра вправо. Что значит нам нужно устранять технический долг? Ну ладно, но только по одной карточке на спринт и не больше часа в неделю."


Но не будем о лирике.


Первое, что я хотел бы предложить автору, это окунуться в удивительный мир более технической графомании osdev.org и, как бы, в целом подтянуть базовые знания о том "човаще это такое". Возможно придется подтянуть английский, но там вроде не сложно.


Второе — проблему унифицироаанного протокола решают примерно раз в пять лет. Из существующих решений конечно же dbus и из, к счастью, академических — поделка Лёни Пёттеринга (да осветится имя его ярким пламенем в 6 круге ада) k-dbus что-ли или dbus-1. (Я уже точно и не помню)


У меня есть еще много чего сказать по поводу увиденного, но что-то мне подсказывает, что даже этот текст не пройдет модерацию, посему оставляю крик в пустоту как есть.


Спасибо за внимание, ушел обратно в ro.

Так думаю, это проект миллиардов на 50.

Чтобы написать всё — от ядра до офиса и ОО-фреймворков (ну и попутные расходы — бронировать отели для встреч комитета по стандартизации и т.п.).

Сторонние коммерческие фирмы тут сразу пройдут мимо — у них отбирают как их вендор-лок, так и доступ к персональным данным и прочим вкусностям.

«Программисты за идею» тоже мимо. Каждый из них «я художник, я так вижу», а тут предлагается любое ничтожное поле в карточке контакта, типа «адрес btc-кошелька», согласовывать на самом верхнем уровне. Причём другие писатели мессенджеров закидают кто помидорами, кто какашками, потому что кому-то неохота тащить «мусорную функциональность» в свой идеальный мессенджер, кому-то просто влом переделывать макеты и перекомпилировать код, чтобы включить в интерфейс новое поле.

Остаются только коммерческие кодеры, которые строго по ТЗ с 9:00 до 18:00 будут пилить вашу Сивелькирию (и получится, конечно же, УГ).

Отдельный момент с внедрением. Многим юзерам кроме игрушек-то ничего и не надо. А Стим, понятно, на такое разбазаривание его монополии не пойдёт. Поэтому нужно будет купить эксклюзивность десятка AAA-тайтлов (чего там сейчас все ждут? HL3? GTA6?) и раздать на своей платформе бесплатно (иначе нафиг не впёрлось брать игру за фулл-прайс в магазине-однодневке под неизвестную ОСь).

Также неплохо бы раздать систему бесплатно (в качестве прикорма) и корпоративным пользователям. Ан нет… Тут уже бюждет в $50B маловато будет. Корпоративные откаты и всё такое.

В-общем, срочно нужен инвестор на 100, лучше 200, миллиардов.

Вообще эти объектные интерфейсы между модулями создают сильную связанность. И если. Плюс удаленное взаимодействие как реализовать? Как поведет себя один модуль, если другой модуль отвалится? Так они будут связаны данными.
По мне вообще взаимодействие лучше реализовать через асинхронные каналы, которые можно и через сетевые интерфейсы проталкивать.

Здравствуйте. Связность ограничивается тем, что всё взаимодействие ведётся через общие интерфейсы. Таким образом, модуль зависит от типа модуля-контрагента (через его API), но не от конкретной версии конкретного модуля.


Ошибка в соседнем модуле — это исключительная ситуация, которую можно (и нужно) обрабатывать. ОС проследит за тем, чтобы уведомить пострадавших.


Вариант с асинхронными каналами мне очень нравится, сам к тому же пришёл. Сюда хорошо ложатся и прокси-паттерн, и вкусности вроде async/await.

Побуду снобом:


Доступность базового API операционной системы любому компоненту.

Это, так то, определение «операционной системы». Удачи вам запустить что-либо в вашей ОС без memlock. И удачи написать драйвера без возможности перезаписывать вектор прерываний и прямого доступа к шинам. Ну и с объектами драйвер видеокарты будет неистово тормозить.

Sign up to leave a comment.

Articles

Change theme settings