Привет. Наткнулся на эту статью на одном большом канале. В целом, тема российских разработок всегда хайповая, но все мы понимаем что дальше дивана все равно ничего не уедет, нет ни одной причины для этого(идея операционной системы с полного нуля). Нравится кому-то это или нет. Я попытаюсь разобрать статью по частям и объяснить ситуацию со стороны своего небольшого опыта и банальной логики доступной каждому.
И на всякий случай напишу дисклеймер:
Я не имею претензий к автору той статьи, и не преследую цели кого-то оскорбить. Пишу эту статью только потому, что мое жирное мнение не влезет в формат комментария.
Во-первых, делая операционную систему на базе открытого ПО мы напрочь убиваем у себя системных архитекторов, сводя всю работу к мартышкиному труду обычных программистов. Мы не сможем самостоятельно менять архитектуру операционной системы, будучи вынуждены быть привязанными к уже имеющимся базовым программным решениям. Фактически, наши программисты просто будут обслуживать чужой проект, не имея возможности влиять на направление его развития.
Стоп-стоп-стоп. Звучит конечно страшно. Но вопрос в другом, а зачем нам ее менять? Что не так с уже имеющейся архитектурой?
Да, говорят, можно форкнуть ядро Линукса и полностью развивать параллельную ветвь. Но не форкают и форкать не будут, потому что это скучно и уныло.
Во-первых. Что значит "скучно и уныло"? Такие термины вообще не применимы к чему-то сложнее лопаты. У всего есть целесообразность, задачи, сфера применения. Этот момент мне сейчас вообще не понятен.
Форк Линукса не зажжёт архитектурную мысль, не родит новых архитекторов.
Во-вторых. А зачем нужна архитектурная мысль и новые архитекторы?
Кроме того, даже если форкнуть и развивать, то все будут стремиться соблюдать совместимость с ПО, написанном для основной ветки, и это сильно ограничит полёт мысли. В общем, тупик это.
Как совместимость с ПО может ограничить полет мысли? И куда, мы собственно, собираемся лететь?
Во-вторых, Линукс, вопреки распространённому мнению, довольно дыряв. Сообществу банально не хватает специалистов, чтобы вовремя исправлять найденные уязвимости.
Ок. Дырявый, но он работает. Что мешает латать дыры?
В общем, операционная система — слишком серьёзный продукт, чтобы доверять её свободному мировому сообществу. Ею должен заниматься финансово заинтересованный хозяин.
Тут согласен. Но если я ничего не путаю, то Android, Mac OS и даже Windows не были созданы с нуля. И в той или иной мере содержат код из linux, unix, dos. Не? И при том ими занимаются финансово заинтересованные хозяева. Я что-то не понимаю, или эти вещи друг-другу не противоречат?
Необходимо консолидировать специалистов, выработать архитектуру операционной системы, позволяющую максимально раскрыть потенциал единственной отечественной архитектуры процессора (Эльбрус), и вплотную заниматься её написанием.
Так вот зачем нужна архитектура. Потенциал раскрыть? Хорошо. Понимаю. В чем измеряется потенциал, и как понять что он раскрывается?
Я бы пошёл ещё дальше. Вместо языка Си я бы использовал какой-нибудь новый язык, например, RUST, чтобы программисты не тянули в код новой операционной системы для Эльбруса существующий свободный код
Лол. Это как запретить писать на английском, чтобы перестали заимствовать слова, не?
задуманный и написанный исходя из концепции совсем другой архитектуры процессоров. Под новую процессорную архитектуру в данном конкретном случае надо писать с нуля.
Стоп-стоп-стоп. Во-первых, если я ничего не путаю, Линукс как раз таки задумывался максимально кроссплатформенным, чтобы работать вообще на любом ведре. То есть именно низкоуровневого кода по минимуму. Потому я не очень понимаю, при чем здесь концепция архитектуры процессора. Оно же вроде реально на любой микроволновке работает, даже если я ОПЯТЬ ЖЕ ничего не путаю, линукс умудрялись в калькулятор запихать. Какая, блин, архитектура процессора для линукса?
Во-вторых, в чем виноват сам язык? Это же просто набор команд, который соответствует более длинным командам на языке ассемблера. Я уже очень давно не пишу код, но есть такая штука, называется транслятор. К ним относят компиляторы и интерпретаторы. В курсе же чем они занимаются? Переводят русский с языка программирования на машинный.
Простая аналогия, если ты учишь английский язык, но не можешь выучить — проблема не в языке. Она в голове того, кто учит. Что такого принципиально нового есть в языке раст? Любой язык — просто набор слов и правил, тем более что ни один язык программирования не является интеллектуальной собственностью, а значит ты можешь написать любой транслятор под любой язык, и изменить что-то, что не нравится.
Есть единственная отечественная архитектура «Эльбрус», сильно отличающаяся от других, и писать нужно под неё изначально. Кроме того, язык Си уже не отвечает современным требованиям по безопасности написанного на нём кода. В общем, нужен другой, безопасный язык.
Ну пишите на свою архитектуру, хоть на языке Си, хоть на бейсике, в чем проблема? Просто нормальный транслятор сделайте, чтобы корректно код программистов переводил в машинный. Не отвечает требованиям? Измените сам язык, чтобы отвечал, вам никто не имеет право с этим помешать.
Вообще, низкоуровневый код это хорошо. Если хотите делать действительный быстрый и надежный код, без бекдоров, то пишите на языке ассемблера, лол. Там все максимально прозрачно, и работать будет максимально быстро. Да это еще тяжелее, я знаю, но вы уже определитесь "вам шашечки или ехать?". Впрочем, нет, если менять только проблемные куски кода на язык ассемблера, тогда это даже проще.
Что касается необходимости писать весь парк ПО для новой системы — так его и так сейчас пишут для процессора Эльбрус. Так не всё ли равно, по большому счёту, под какую операционную систему, как временная мера, портировать код приложений, если его всё равно переводят не только на другую систему команд, но и вообще на архитектуру, построенную по другому принципу
Стоп-стоп-стоп. То есть абсолютно каждое приложение под "Эльбрус "переписывается вручную? Вот вообще все? Не какие-то общие для программ модули, который работают с низкоуровневым кодом, а каждую программу с нуля переписывают? Почему я в это не верю? Может быть я конечно глупец, ничего не понимаю, но мне кажется это какой-то бредовой концепцией. Либо я не так понял автора.
Само написание новой ОС — не настолько неподъёмное дело, как это себе представляют многие. Почему-то они приравнивают время естественной эволюции операционной системы Windows ко времени написания системы подобного уровня, хотя это время отличается в разы. Почему-то они сравнивают объём кода старой операционной системы, тянущей за собой ворох устаревших и дублирующих технологий с объёмом кода новой операционной системы, даже её первой версии.
А я кроме Mac OS систем "подобного уровня", что и Windows и не знаю. Ну в плане юзабилити и коммерческого успеха уж точно. Разве что андроиды и айосы где-то как-то сопоставимы. Почему-то никто ничего похожего и близко не сделал, отсюда и вывод о сложности. Это не на пустом месте люди говорят.
А если просто в техническом плане, без учета всех этих ваших юзабилити, коммерческих успехов и тд. и тп. Вот просто рабочая система, чтобы просто работала и была "не такая как все", то как бы это все равно тяжело. Даже если будет большой штат кодеров, архитектурных архитекторов(масло маслянное). Да, возможно, но в итоге просто придется реально все писать с нуля, вот вообще все, совсем-совсем. В итоге сведется к заимствованию, потому что это блин единственный способ сократить катастрофическое отставание, которое неизбежно, когда у тебя вообще ничего нет.
Если посчитать даже по количеству строк кода последней версии Windows, то в течение 10 лет вполне реально написать систему того же уровня, и стоить она будет для государства относительно немного (только одна трасса Адлер-Сочи к олимпиаде обошлась нам больше). Поэтому деньги — точно не проблема.
Индусы тоже по количеству строк кода считают зарплату. Потому они там "2 + 2" в три строчки раскручивают. А еще мне интересно, откуда инфа о том, сколько строк кода в винде.
Специалистов тоже много, они живут в России, но многие работают на западные компании. Тот редкий случай, когда всё решается баблом. Да и никто не заставляет писать систему уровня Windows 10 сразу. Можно начать с базового, минимально необходимого функционала, и в дальнейшем ускоренно эволюционировать по уже проторенному пути.
Ну емае, ну зачем? Ну за что? Никто так не делает, вот совсем никто и совсем нигде. Потому что это изобретение велосипеда. А давайте изобретем огонь, а потом уже по пути подражания, так сказать, проторенному пути, доберемся до атомных электростанций. И плевать, что зажигалка в кармане.
Я понимаю Линуксоидов, с детства пропитанных духом свободы, взаимопомощи и братства. Для них неприемлема сама мысль о том, что вместо свободного Линукса в России может появиться другая отечественная ось, к тому же ненавистная проприетарная. Поэтому они сейчас будут спорить с каждым абзацем этой статьи и со всей статьёй целиком. Они просто не могут быть объективны, ибо они влюблены. Влюблены в Линукс. И ещё они не являются системными архитекторами.
Вот ни разу не влюблен в линукс. За всю историю, кроме Windows XP ничего прямо не любил. Что семерку, что восьмеру, что висты-десятки и тд. Из линуксов немного дистрибутивов тоже попробовал, есть что-то крутое в идее, но ни одна его реализация мне не нравится. МакОсь? Ну mac кстати ничего так, но все равно какая-то урезанная или что, слишком простая. Для работы как ни странно ничего лучше винды для себя не вижу, ну возможно на маке бы посидел. А линукс, ну линукс по своей сути это чистый лист, база, на основе которой можно слепить хоть конфету, хоть убунту, это как алфавит или цифры. Фундамент. Правда конфету честно говоря, в моем понимании никто так и не слепил, да и у меня ни желания, ни мозгов для такого не хватит.
Вот какие-то такие выводы. Велосипеды — это хорошо, но по своей сути делать свою систему с нуля выглядит как потеря времени ради потери времени. Ну реально. Если бы нужна была отдельная система, которая исключительно приспособлена под работу с ИИ — это было бы целесообразно, или система работающая в реальном времени, или система с какой-то абсолютно уникальной идеей, где например работа с данными через магнитные ленты происходит, а оперативная память полностью под крышкой процессора распаяна. Даже у Северной Кореи, у которой казалось бы вообще все свое, основа их Red Star на линуксе. Потому что это рационально.
А еще есть поговорка у инженеров, которую я очень уважаю: "Работает — не трогай". Хоть я и не инженер. Безопасность хорошо, но разве для этого обязательно весь код на помойку выкидывать? Мне это кажется очень странным.