Комментарии 100
Rewrite it in Rust
Было уже. Singularity. Smalltalk. PhatomOS. Не взлетело.
Пункты 5-9 просто на корню убивают саму идею разработки под такую систему.
9 пункт-то почему убивает? Все ОС, что я знаю, поддерживают разработку на языках без этой ориентации, и ничего, вроде. Не убивают.
Потому что пункт 9 — это отсутствие поддержки не-ОО-языков. Проще говоря, писать на функциональном языке не дадут.
Потому что пункт 9 — это отсутствие поддержки не-ОО-языков. Проще говоря, писать на функциональном языке не дадут.
От ОС эта поддержка и не обязательная.
В Windows/Linux на уровне системы ООП так себе.
От ОС эта поддержка и не обязательная.
Не обязательна. Но вот когда ОС начинает подавлять все остальные языки — становится… занятно.
Но вот когда ОС начинает подавлять все остальные языки — становится… занятно.
Если эта ОС не работает с исходным текстом языка программирования прикладной программы, то она никак подавлять не может.
Всю работу по смене парадимы берет на себя «runtime-библиотека языка программирования, на котором реализована прикладная программа + API ОС».
По оба конца этого тандема — может быть что угодно, любая парадигма в ОС, любая парадигма в языке.
К слову, создатель Фантома продолжает что-то пилить в репозиторий проекта
Точно, виртуальная машина smalltalk с бутстрапом и управлением железом.
Пункт 9 особенно шикарен.
Хотелось бы узнать у автора как он видит перенос софта написанного на массе различных языков, в том числе полумертвых, типа кобола на свою ос, и в том числе софта на языках которые про ооп ничего не знают и знать не хотят.
Насколько я могу судить, основная причина провала упомянутых Вами проектов состоит в банальной нехватке софта под них вкупе со слабой обратимостью смены платформы, что отпугивает как пользователей, так и разработчиков.
Буду рад услышать Ваше мнение на этот счёт.
А если серьезно — в этом потоке общих слов и фраз хочется увидеть цель. Представим, что система создана — что в ней можно делать такого, чего нельзя в существующих? Очень хочется примеров.
Я читал как-то про некую ОС, где основная цель была безопасность. И система позиционировалась как продукт для управления медицинским оборудованием. А у вас?
Да, если система создается с целью развлекательного велосипедостроения — то это тоже нормально.
Мы пишем самую лучшую в мире операционную систему
Не систему а планы сделать систему.
Скорее всего до хоть сколько-то осмысленной реализации дело не дойдёт.
на данный момент находящейся на раннем этапе проектирования и разработки.
Это в переводе на русский означает "пока что занимаемся графоманией и может быть написали бут лоадер".
Если вкратце, то цель — получить совместимость любого софта. Не на уровне «в новой версии Программа 1 поддерживает экспорт данных в формат Программы 2», а, например, на уровне возможности использовать интерфейс MS Word при работе с Гуглодокументами, если это удобно. Или через интерфейс клиента VK общаться по Skype, опять же, если это удобно. Видеть всю свою музыку из Яндекса/ВК/Ютюба/Локальной подборки в одном месте, если это удобно. Зачем? Потому что это удобно. Потому что компьютер/телефон мог бы представлять собой целостный инструмент, не поделенный на узкие зоны ответственности ограниченными приложениями. Я разовью тему в следующих постах.
Хотя, разумеется, некоторая доля развлекательного велосипедостроения тут присутствует. Все мы хотим получать удовольствие от того, что делаем. =)
не поделенный на узкие зоны ответственности ограниченными приложениями
Я вот не пойму это в самом деле такая нереальная наивность или троллинг? Цель разработки всего перечисленного в вашем комменте софта — отъесть зону ответственности себе (разработчику-правообладателю софта) и ни с кем ей не делиться. Нафиг им не сдалась ваша всеобщая совместимость, им надо устранять конкурентов с рынка, и управляемая несовместимость — важный инструмент в этом. Хотите совместимость — пишите полный стек всего софта который будет совместим сам с собой и выживайте в конкурентной борьбе с остальными. Только по-моему результат заранее известен и он не в вашу пользу.
Это впихнуть невпихуемое. Кто вам эти интерфейсы взаимодействия будет реализовывать для Skype и vk? В Винде тоже можно создать компоненты com, но они очень ограничено используются для взаимодействия. При том интерфейсы постоянно меняются.
Проблему с «да зачем это и кто реализовывать» MS решала за счет того что:
— офис УЖЕ поддерживает. вы же не хотите чтобы пользователи ВАМ задавали вопросы почему не работает с вашим приложением то что вполне работает с компонентами офиса
— поддержка в библиотеках MFC/ATL всего этого хозяйства
Если вкратце, то цель — получить совместимость любого софта. Не на уровне «в новой версии Программа 1 поддерживает экспорт данных в формат Программы 2»
у меня такое чувство что вы очень слабо представляете как вообще всё это работает, а как именно реализовывать вы еще даже не думали
Если вкратце, то цель — получить совместимость любого софта.
Совместимость — это принятый всеми участниками контракт. Кто будет эти контракты согласовывать в случае вашей системы?
Понятно. Если вкратце, это означает, что ни один из разработчиков (кроме самих разработчиков ОС) не получит удобный ему контракт, а, следовательно, не будет и участвовать в этом проекте. Потому что зачем?
Вы сейчас про то, как работает стандарт на HTML?
Так вот, сколько я помню свои столкновения со стандартом на HTML, с полной совместимостью между использующими его клиентами было… сложно, скажем так.
Порешали?
Аналогично, путаница, привнесённая Borland C++, Managed C++ и т. п., заметно улеглась с возобновлением работ по стандартизации и выходом C++11/14/17.
Ну то есть сейчас-таки можно открыть любой сайт/веб-приложение в любом браузере, и везде будет себя вести и выглядеть одинаково?
Так же, как и ваше заявление об успехах W3C.
Проще говоря, точно так же, как W3C не добилась полной совместимости, так же и ОС из поста ее не добьется, а это значит, что "цель — получить совместимость любого софта" достигнута не будет.
Потому что разработчики прикладного софта — люди, за которыми стоит, в общем-то, бизнес, и и у людей, и у бизнеса, есть другие задачи помимо того, чтобы пытаться соблюсти какой-то там стандарт.
Вопрос не вам, а автору статьи.
Предположим, что ОС будет открытой и каждый без ограничений сможет выпускать свои модули и программы. Если появится такой автор, который будет плевать на совместимость, не полностью реализовывать интерфейсы, нарушать стандарты и за счёт этого намного быстрее создавать фичи, обходить конкурентов, набирать пользовательскую базу, что с этим планируется делать? Если ничего, это будет началом конца идеи, т.к. его дурной пример заставит всех остальных тоже пренебречь качеством и совместимостью, чтобы хоть как-то не отстать.
Кроме того, такое поведение просто неэффективно с точки зрения бизнеса. То же можно провернуть под любой популярной ОС на выбор, и ценой гораздо меньших усилий. Это всё равно что пытаться построить универсальную DRM-систему, покрывающую все линуксы, а потом просить пользователей добровольно отказаться от возможности рутоваться.
То же можно провернуть под любой популярной ОС на выбор, и ценой гораздо меньших усилий.
Именно.
у других авторов будет список совместимых с их модулем модулей (формируемом, в том числе, путём прогона тестовПро это ничего нет в статье. Но, мне кажется, такую систему сделать нереально. Попробуйте придумать авто-тесты на «модуль интерфейса мессенджера, отправляющего сообщения по Ctrl-Enter». Если есть известная функциональность, покрытая тестами, то есть и референсная реализация. И больше писать ничего не надо? Если нужно расширить функциональность, для чего потребуется написать новую версию модуля, то на новую функциональность не будет тестов в репозитории.
Соответственно, пользователи, которые пришли на данную ОС ради её преимуществ, увидят, что данный софт их существенно ограничивает, и с большой вероятностью предпочтут конкурентовДля пользователей всё выглядит так, что этот софт работает идеально, а чужой софт, подключающий его модули, глючит.
Как максимум — нарушит условия лицензииХа-ха! Лицензия запрещает писать глючный софт? :) Лицензия запрещает двоечнику Васе создавать свои модули, потому что он не может сделать их достаточно качественными? Посмотрел бы я на текст этой лицензии )))
Для пользователей всё выглядит так, что этот софт работает идеально, а чужой софт, подключающий его модули, глючит.Не совсем так. Не нужно смотреть на автора софта как на автора всего стека модулей (аналога приложения), которыми пользователь начинает обмазываться с места в карьер. У пользователя, скорее всего, в системе уже стоит любимый интерфейс, через который все мессенджеры работают, любимый менеджер уведомлений, который мигает светом в аквариуме при получении нового сообщения, любимый плейер, который выводит mp3шечки на колонки в зале, и так далее. Если после установки нового интерфейса мессенджера в нём не видны сообщения из других клиентов, или если новый модуль подключения к серверу обмена сообщениями не работает со старым менеджером уведомлений, или если пересланные песни начинают проигрываться с ноутбука, пользователь с большой вероятностью откатится и забудет. Смысл нарезки софта на зоны ответственности состоит как раз в том, чтобы отвязать пользователя от платформы, позволяя получить от каждой по крупице.
Про это ничего нет в статье.Будет.
пользователь с большой вероятностью откатится и забудет.
Как вы думаете, почему у меня суммарно пять мессенджеров стоит, даром, что как минимум два из них меня бесят?
Нет, не поэтому. А потому, что ни от одного из них я не могу отказаться без потерь для себя.
Что означает следующее: предположим, я гипотетический пользователь вашей ОС из примера выше, у меня стоит четыре мессенджера, любимый интерфейс, и уведомления в аквариум. Потом у меня появляется новый корреспондент, ради которого надо поставить пятый мессенджер, которому плевать и на интерфейс, и на аквариум. Что я могу сделать? Да ничего, смирюсь, и будет у меня два интерфейса — один для четырех мессенджеров, и второй для пятого. А потом один из этих четырех мессенджеров посмотрит на пятый, и скажет — а чего, собственно, я страдаю, тратя силы на поддержание совместимости? И выкатит обновление, которое ломает аквариум. И что я сделаю? Откачусь? Нет, старая версия новый протокол не поддерживает. Потеряю полторы сотни корреспондентов? Тоже нет. Смирюсь, и будет у меня уже три варианта.
И ничего ни вы, ни пользователь с этим сделать не можете.
Кстати, насчёт утверждения интерфейсов. Первые 2 года вам может быть будет интересно рассматривать все предложения и работать с ними. А дальше, откуда брать мотивацию? Просить деньги за рецензирование каждого нового входящего предложения, и повышать цены, по мере роста потока входящих? Или сказать: да делайте уж что хотите, задолбали?!
Или другой вариант: технологически продвинуты банк на букву Т — делает приложение по всем канонам ОС и все работает, банк на букву А — делает то что мало мальски формально их выполняет а банк на букву С делает вообще по сути иконку внутри который свой пользовательский интерфейс. Только вот пользователю зарплату платят через банк С и перевести возможно нет (а у банка А — хорошие условия по карточкам).
И что делать? Не использовать приложения от А и С?
Вы же понимаете, что операционная система — это не вещь, которая сама по себе нужна пользователям. Это инструмент, с помощью которого они смотрят свою подписку Нетфликс, читают почту 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-е годы, например, когда доля СПО на рынке была под лупой неразличима? Совершенно неважно, свободный софт или проприетарный, если он качественный и выполняет свои задачи. Да и если он некачественный, тоже уже неважно, какая там у него модель распространения.
Операционная система «Сивелькирия» задумана как решение описанных выше и некоторых других проблем.
Из статьи совершенно непонятны две вещи:
1. Как она собирается решать описанные выше проблемы
2. Почему вообще это считается проблемами
То, как я услышал сказанное автором: мы собираемся сделать нечто, работающее само по себе, выяснить, чем на самом деле занят ваш компьютер вы не сможете, вмешаться — в случае возникновения проблем — тоже, заботиться о ваших данных на компьютере вам тоже не придется, вы просто не будете иметь к ним доступа.
Примеры реализаций "все в одном месте" мы видели и продолжаем наблюдать: Windows, есть еще Apple, Google со своим андроидом, яндекс, который свою ОС пока не запилил, но со своим браузером столько г… а на компьютер засовывает. Я не спрашиваю "зачем", как на этом зарабатывают большие корпорации — это более или менее понятно, просто, есть большие сомнения что вы это сможете, прежде всего финансово.
Да и сама идея "ОС, как платформа для интеграции, максимально защищенная от вмешательства пользователя" плоха. Мы каждый день сталкиваемся с разного рода интеграторами, оператор связи постоянно "возникает" со своими предложениями по голосу/интернету/тв, банки, рекламные/информационные конторы, магазины ...., список у каждого свой. Сомнительно, что вам удастся внушить доверие потенциальным пользователям.
Австралийские пожары можно затушить разом этой статьёй, столько в ней воды
ну не управляет ОС окнами (последний раз это было, вроде в win3.11)
Почему не управляет? Вроде в виндовс до сих пор графическая подсистема, включая и собственно управление окнами, тесно интегрирована в ОС. Это вам не линукс с совершенно отдельными DM и WM.
Ну не настолько она тесно интегрирована в ос. Винда может работать и без нее и такой вариант даже есть. UI там реализуется через user32 апи, которое находится в одноименном dll. Даже графические драйвера находятся не на уровне изоляции ядра, а пользователя.
Даже графические драйвера находятся не на уровне изоляции ядра, а пользователяЭто неверно. Вся работа с ресурсами графики и окон (GDI, User) находится в драйвере ядра win32k.sys. Отсюда же множество уязвимостей, позволяющих из пользовательских программ залезть в ядро. Примеры:
habr.com/company/pt/blog/328804
habr.com/company/eset/blog/314266
Подозреваю, автор дольше придумывал название ОС, чем работал над концепцией)
Давайте уже создадим ОС, которую можно будет быстро понять, с хорошей документацией на всех языках, по всем интерфейсам, с кучей библиотек на все случаи жизни и опять таки с нормальной документацией. Да сделаем так чтобы всё это работало вместе как часы. Раздадим всем ресурсов, чтобы никто не голодал. И тогда никто уже не будет думать о разработке какой-то там ОС, дающей хлеб кучке людей да решающей проблемы больших корпораций
Зачем делать целую ОС, если не хватает каких-то интеграций? Шансы того, что она станет популярной и что кто-то будет под неё что-либо делать крайне малы. Если нравится сам процесс разработки — то нет вопросов, почему бы и нет.
Мне кажется, куда более реалистично придумать что-то вроде модуля ядра/сервиса для существующих ОС, в котором будут все нужные API, чтобы можно было интегрировать что угодно с чем угодно (и пересылать, например, сообщения из одного приложения в другое, реализовав абстрактное апи Сообщений).
… а затем каким-то образом убедить всех разработчиков приложений, что им это нужно. Но чтобы навязать стандарт, нужно колоссальное количество ресурсов и времени, куда большее, чем на разработку, но однозначно меньше, чем делать целиком новую ОС.
На самом деле, примеров такого внедрения стандартов достаточно много: HTML, всяческие IEEE и RFC, семейство протоколов IEC. Другое дело, что исторически чаще стандартизуются узкоспециализированные или технически запутанные отрасли, а программы для простых пользователей пишутся кто во что горазд. В итоге нам до сих пор приходится вспоминать сначала, какой мессенджер нужно открыть для связи с конкретным человеком, а потом — нужно ли зажимать Shift, чтобы вставить в сообщение перевод строки.
В каждой статье про новую ОС / очередной дистрибутив линукса / очередную графическую оболочку / etc возникает один единственный вопрос "ЗАЧЕМ?!!!!!!!!!!". Нет ни одного дистрибутива линукса, который нормально работает из коробки, нет ни одной нормально работающей оболочки. Зачем 100500 дистров линукса? Зачем очередная ОС, когда более менее нормально работают только две? Почему бы не взять и не допилить всем миром убунту? Потому что сообщество ЧСВ, а убунта снап из коробки поддерживает и поприетарные дрова ставит. Ой все. Задолбали. Никогда Линукс не возьмёт и 20% на десктопе, пока все будут изобретать велосипеды.
2. Многим не интересно допиливать условную убунту. Это же чужой проект, зачем тратить на него время, если за это не платят? А велосипед можно построить и бесплатно, просто потому, что интересно, и полезно для развития.
3. Линукс не пойдет на десктоп из-за ряда «врожденных» проблем, которые не устранить допиливанием. Он просто не создан для этого.
3. Линукс не пойдет на десктоп из-за ряда «врожденных» проблем, которые не устранить допиливанием. Он просто не создан для этого.
Линукс — никаких проблем не имеет для десктопного применения.
Это просто — ядро ОС.
Оно вполне себе живет и на серверах и на десктопах и на смартфонах.
Проблемы имеет, например, X Windows System. Но она появилась еще до рождения Linux. Когда автор Linux еще в школу ходил.
2. Многим не интересно допиливать условную убунту. Это же чужой проект, зачем тратить на него время, если за это не платят? А велосипед можно построить и бесплатно, просто потому, что интересно, и полезно для развития.
Все зависит от того, хотите вы в конце концов увидеть велоспед на ходу еще при вашей жизни или нет.
Время, когда одиночка мог создать полнофункциональную ОС за обозримый срок, закончилось еще лет 40 назад (Linux не полнофункциональная ОС, а только ядро; кроме ядра прочие 99,9% компонентов ОС были созданы не тем самым автором Linux).
Чтобы ОС пошла на десктоп, нужно привлечь коммерческих разработчиков. А вирусные лицензии типа GPL этому явно не способствуют. А также этому не способствует общая нестабильность и неоднородность api. Очень сложно сделать приложение, которое будет работать более чем в одном дистрибутиве какой-либо одной конкретной версии. И которое не отвалится внезапно после обновления какой-либо библиотеки.
В Андроиде эта проблема более-менее решена, ценой существенной потери в производительности.
Что касается серверов — их обслуживают профессионалы, которые как раз и занимаются подобными проблемами.
А в телефонах вообще прошивка под конкретный аппарат, где что-либо обновить — сама по себе задача нетривиальная, и делается обычно производителем.
А велосипеды обычно строятся ради процесса, а не результата.
В итоге ни одной стабильной linux-оси для десктопа.
Вы сели в машину времени и прилетели к нам из 2005?
На сколько бы хабр не был бездонной выгребной ямой для людей с бесконечным самомнением, но в этом случае я что-то не могу промолчать.
Уважаемый автор, Ваши поэтические изыскания вполне связны, но не очень информативны. Больше похожи на выкладки эффективных менеджеров на конференциях между бутылочками бесплатного пива. "Да-да, я придумал инновационную идея, а как ее будет реализовывать обслуга это не моя проблема. Я лучше задач им в спринты накидаю, чтобы они вот эту деталь верстки сдвинули на полсантиметра вправо. Что значит нам нужно устранять технический долг? Ну ладно, но только по одной карточке на спринт и не больше часа в неделю."
Но не будем о лирике.
Первое, что я хотел бы предложить автору, это окунуться в удивительный мир более технической графомании osdev.org и, как бы, в целом подтянуть базовые знания о том "човаще это такое". Возможно придется подтянуть английский, но там вроде не сложно.
Второе — проблему унифицироаанного протокола решают примерно раз в пять лет. Из существующих решений конечно же dbus и из, к счастью, академических — поделка Лёни Пёттеринга (да осветится имя его ярким пламенем в 6 круге ада) k-dbus что-ли или dbus-1. (Я уже точно и не помню)
У меня есть еще много чего сказать по поводу увиденного, но что-то мне подсказывает, что даже этот текст не пройдет модерацию, посему оставляю крик в пустоту как есть.
Спасибо за внимание, ушел обратно в ro.
Чтобы написать всё — от ядра до офиса и ОО-фреймворков (ну и попутные расходы — бронировать отели для встреч комитета по стандартизации и т.п.).
Сторонние коммерческие фирмы тут сразу пройдут мимо — у них отбирают как их вендор-лок, так и доступ к персональным данным и прочим вкусностям.
«Программисты за идею» тоже мимо. Каждый из них «я художник, я так вижу», а тут предлагается любое ничтожное поле в карточке контакта, типа «адрес btc-кошелька», согласовывать на самом верхнем уровне. Причём другие писатели мессенджеров закидают кто помидорами, кто какашками, потому что кому-то неохота тащить «мусорную функциональность» в свой идеальный мессенджер, кому-то просто влом переделывать макеты и перекомпилировать код, чтобы включить в интерфейс новое поле.
Остаются только коммерческие кодеры, которые строго по ТЗ с 9:00 до 18:00 будут пилить вашу Сивелькирию (и получится, конечно же, УГ).
Отдельный момент с внедрением. Многим юзерам кроме игрушек-то ничего и не надо. А Стим, понятно, на такое разбазаривание его монополии не пойдёт. Поэтому нужно будет купить эксклюзивность десятка AAA-тайтлов (чего там сейчас все ждут? HL3? GTA6?) и раздать на своей платформе бесплатно (иначе нафиг не впёрлось брать игру за фулл-прайс в магазине-однодневке под неизвестную ОСь).
Также неплохо бы раздать систему бесплатно (в качестве прикорма) и корпоративным пользователям. Ан нет… Тут уже бюждет в $50B маловато будет. Корпоративные откаты и всё такое.
В-общем, срочно нужен инвестор на 100, лучше 200, миллиардов.
Вообще эти объектные интерфейсы между модулями создают сильную связанность. И если. Плюс удаленное взаимодействие как реализовать? Как поведет себя один модуль, если другой модуль отвалится? Так они будут связаны данными.
По мне вообще взаимодействие лучше реализовать через асинхронные каналы, которые можно и через сетевые интерфейсы проталкивать.
Здравствуйте. Связность ограничивается тем, что всё взаимодействие ведётся через общие интерфейсы. Таким образом, модуль зависит от типа модуля-контрагента (через его API), но не от конкретной версии конкретного модуля.
Ошибка в соседнем модуле — это исключительная ситуация, которую можно (и нужно) обрабатывать. ОС проследит за тем, чтобы уведомить пострадавших.
Вариант с асинхронными каналами мне очень нравится, сам к тому же пришёл. Сюда хорошо ложатся и прокси-паттерн, и вкусности вроде async/await.
Побуду снобом:
Доступность базового API операционной системы любому компоненту.
Это, так то, определение «операционной системы». Удачи вам запустить что-либо в вашей ОС без memlock. И удачи написать драйвера без возможности перезаписывать вектор прерываний и прямого доступа к шинам. Ну и с объектами драйвер видеокарты будет неистово тормозить.
Операционная Система «Сивелькирия»: вводное описание