Российскую операционную систему «Фантом» довели до тестирования после 12 лет разработки с нуля Статьи редакции
Система использует необычную архитектуру, не похожую на Windows и Linux.
Основная версия операционной системы «Фантом» готова для пробных проектов, а полноценный релиз запланирован на конец 2022 года. Об этом главный разработчик системы Дмитрий Завалишин сообщил в интервью изданию CNews. Завалишин работает над системой с 2010 года вместе с сотрудниками холдинга DZ Systems, первую компанию которого он основал в 2005 году.
Система «Фантом» отличается от классических Windows, Linux и macOS — она использует персистентную виртуальную память, управляемый код и глобальное адресное пространство.
- Персистентная виртуальная память подразумевает «непрерывность» выполнения процессов и высокую надёжность хранения данных. Приложения «не видят» перезагрузок и выключений, с их точки зрения система работает без остановок и постоянно сохраняет все изменения данных. Пользователю не нужно самому заботиться о сохранении файлов и резервных копий — даже аварийное завершение не повредит их. Файлов в «Фантоме» вообще нет — вместо них система оперирует объектами, которые доступны напрямую по указателям.
- Управляемый код защищает каждый объект и не даёт программисту вручную работать с памятью — это сразу отсекает большую часть ошибок и уязвимостей, которые повреждают данные пользователя и позволяют распространяться вирусам. Классические системы защищают только процессы друг от друга, тогда как внутри них может происходить буквально что угодно.
- Глобальное адресное пространство обеспечивает максимальную производительность выполнения программ. Классические системы делят память на пространство ядра и пространство пользователя — в первом работает ядро системы (центральная часть, управляющая всеми ресурсами), во втором — приложения пользователя. Во время работы системе приходится миллионы раз в секунду переключаться между этими пространствами, что плохо сказывается на производительности. «Фантом» избавлен от этих переключений — все процессы взаимодействуют друг с другом через прямую передачу ссылок на объекты. В классической системе это чрезвычайно опасный подход, но не в системе с управляемым кодом.
Основная ниша «Фантома» это встраиваемые системы — управление промышленным оборудованием и бытовой техникой, интернет вещей и прочие задачи, где сейчас господствует Linux. DZ Systems работает над переносом «Фантома» на фреймворк Genode — специальную «обвязку» для микроядерных операционных систем, позволяющую запускать обычные Linux-программы. Именно эта версия должна выйти к концу 2022 года.
В дальнейшем Завалишин с коллегами планируют перенести «Фантом» на микроядро seL4, чтобы математическим способом проверить всю систему и доказать отсутствие в ней ошибок и уязвимостей. Это позволит создать основу для построения крайне надёжных и защищённых программных комплексов.
Идеи интересные. А что с языками прикладной разработки? Какая-то экзотика нужна чтобы все эти ништяки эффективно использовать? Или православные плюсы подойдут?
Это скорее всего будет закрытая система, для которой будут писать люди без права выезда.
Если будет так - будет труп по определению.
Расскажите это тысячам живых программеров, работающих на нашу оборонку... Впрочем, пофик, нет смысла развивать вопрос.
Комментарий недоступен
Боюсь, что кодят они прямо в подвале ))
Ну вот смотрите - пусть я программист, у меня есть выбор - работать с чем-то, что я смогу использовать в дальнейшей карьере или работать с чем-то узко-специализированным, при этом возможности выбора работы и места для жизни у меня будут ограничены.
Выбрать второе (оборонка - практически автоматически - это форма допуска - какая - тут уже будет вопрос), можно только в случае того, что проблемы будут компенсированы. А оборонка - это и не особо высокая зарплата и проблемы и технологические ограничения (потому что это довольно закрытый мир и с технологиями там всё довольно специфично) и много чего ещё.
Так зачем (кроме нездорового патриотизма) мне такое выбирать?
Аналогично с изделиями местной электронной промышленности. Если есть выбор - выбирать будут то, что документировано, имеет открытые спецификации и имеет сообщество разработчиков, а не то, где документацию надо выбивать из производителя, спецификации идут как ДСП, а сообщества нет по определению?
Если бы люди всегда делали рациональный выбор в жизни, мы бы жили в совсем другом мире.
Как пример можно привести Delphi.
Я на Делфи пришел году эдак в 2004. Тогда уже в нее все кому не лень кидались какашками, но была работа и я ее делал за достойные деньги. Попрогал несколько лет, потом на плюсы ушёл, потом вообще в веб. Коллеги многие на шарп перешли (это проще всего было). В общем нет никакой проблемы сменить стек.
Вот да, стеки-то достаточно похожи.
не то чтобы похожи, после Делфи на плюсах мозги очень скрипели, но это ж даже полезно.
А шарп просто очень простой язык для понимания. Фреймворк только гигантский (.NET) - но это вопрос доступа к документации всего лишь.
А чего там скрипеть то? Парадигмы одинаковы.
А если писал на низком уровне, то там все те же указатели, вызовы системных api, а кое-где и ассемблерные вставки.
Вот если перейти на ассемблер, то да.. там другие принципы мышления нужно включать.
А если не писал? Delphi для прикладного уровня создавался. Писать на Delphi на нижнем уровне - это боль, хотя бы потому что все SDK и документация тех лет давала примеры именно на плюсах.
Парадигмы одинаковы.ООП? Ну так-то да. И то и то ООП, если в нюансы не вдаваться
А чего там скрипеть то?Все что пишу - для Delphi7, более поздние версии уже не застал.
1. В Делфи все объекты классов создаются в куче, поэтому будь любезен вызывать конструкторы и деструкторы ручками, не забывать про try...finally везде где объекты создаешь. В плюсах можно в куче, можно на стеке. И на стеке это делается быстрее, поэтому используется гораздо чаще. На стеке деструкторы срабатывают автоматически.
2. В Delphi7 на котором я прогал, отсутствовало в принципе понятие темплейтов, которые в плюсах используются крайне широко. В более поздних версиях, да, появились дженерики.
3. Работа с указателями в D7 - можно сказать экзотика, редкость (на прикладном уровне). В плюсах - это норма жизни хоть в нижнем хоть в прикладном уровнях.
4. В Delphi строгая типизация, в плюсах - нет.
5. Массивы в Delphi нумеруются с 1, в плюсах - с нуля.
6. Компиляция и сборка в Delphi скрыта от типичного разработчика, в плюсах она во-первых в десятки раз медленнее, во-вторых в ней нужно тоже разбираться.
7. В Delphi есть встроенная в язык система сериализации и публикации свойств и методов (published). В плюсах такого нет.
8. В Delphi есть встроенный строковый тип string и функции работы со строками, в C++ - нет, только в библиотеках типа STL, boost, Qt с разными реализациями
UPD:
9. В Delphi нельзя перегружать стандартные бинарные операторы языка, в плюсах - можно и используется сплошь и рядом
10. В Delphi не было таких функций как ++, —, +=, -= и прочих.
Это только то что я вспомнил, уже лет 13 не открывал Delphi и лет 8 - C++.
А что Delphi? Он до сих пор жив, в той или иной форме. Довольно удобная среда была по своему времени.
Вот именно, "была". Много кто из молодых специалистов хочет работать с Delphi? Много ли вакансий? Какие у человека будут перспективы?
Не знаю, я лет 15 не писал на нём.
"Молодые специалисты" сейчас пересели на модные "фреймворки" и ничего не хотят ни видеть ни слышать.
Как и почему работает железо и как это влияет на производительность и т.д. и т.п.
одни сплошь птичьи языки.