Comments 117
Идея довольно интересная. Давно слежу, будет круто если это во что-то выльется.
Проект сильно впечатлил. Вот что реально финансировать нужно. Жаль, немного таких людей…
Думаю, что к моменту когда её допилят, будет интересная штука. И компьютеры тогда уже будут подходящими для подобных финтов «нет-убийствам». Но вот на сервере, например, такая не особо нужна. Потому что сервер и перезапускается нечасто, и память должен беречь. А вот до десктопа ей ещё очень далеко, если какой-нибудь совместимости бинарников с популярными системами не будет.
DZ говорил, что первый прицел — это встраиваемые системы. Телевизоры, холодильники. Там готовые приложения не нужно тащить.
Не верится. Насколько я понял, ей нужно очень, ОЧЕНЬ много оперативки и хорошо если адресация 64 бит. А такой шик на холодильник не каждый производитель будет ставить. Какой-нибудь MINIX 3 будет более выгодным вариантом.
А зачем ему много памяти. Вроде как памяти надо ровно столько, сколько требуются работающим процессам. А 64х разрядность нужна для адресации жестокого диска, а не оперативки.
Т.е. на втроенных системах с жестким диском (флеш памятью) до 4х гигабайт 32х разрядной системы с головой, да и оперативной памяти не больше надо, чем всем остальным системам.
а я вот прослушал/не услышал ситуацию когда у нас данных ну намного больше оперативы, что тогда (и поступают они, допустим, не с HDD, а с сети)?
А другие ОС от этого захлебываются? Повторное использование объектов и/или gc должны спасать в такой ситуации.
А если мы, допустим, качаем 40G файл, а у нас 4G оперативы, то он постепенно начнет свопиться.
Единственно что, если мы качаем его с торрентов маленькими перемешанными кусками. в таком случае своппинг должен сойти с ума от постоянной подгрузки/выгрузки страниц (или как у него там блоки называются).
вы точно на мой вопрос ответили?
я спрашивал как это в данной ОС, а не как сейчас.
А тогда начнется допиливание, встраивание заплаток на основе «старья, которое развивалось-развивалось» и т.д. И получим в итоге нормальную полноценную ОСь, только с меньшим функционалом, потому-что она вынуждена догонять убежавших вперед «старичков».
Да, Вы правы, примерно так можно построить приложение, которое полностью повесит (засвоппирует) данную систему.
Правда, это и для существующих осей возможно.
Все упрется в соотношение «объема оперативки»/«оптимальность управления памятью».
Чем больше первое и чем лучше второе, тем меньше проблема.
А как возникнет-таки проблемка, метода известная: нужно убивать приложение.
Чип в телевизоре вполне может заниматься декодированием видео (и занимается уже во многих). Так что на процессорную мощь уже есть спрос.

Про холодильник ничего дельного не скажу. Я его, видимо, зря приплел. Вообще не знаю зачем это холодильнику. :)
Можно будет p2p сеть для холодильников написать. Они будут обмениваться друг с другом виртуальными магнитиками и подсказывать хозяину, что нынче модно жрать у вас на раёне.
не нужно много оперативы, та же виртуальная память, которая свопится на диск.
у проекта есть какой-нибудь сайт? с кратким описанием, текущим состоянием и инструкции как присоединиться к проекту хотя бы?
Как-то растянуто вышло. Дмитрий Завалишин утверждает, что система написана с чистого листа, но в ходе презентации ясно дает понять, что многие моменты пособраны из других систем, тем самым legacy о котором идет речь присутствует в виде концепций, идей и прочих вещей, придуманных давно. Слышал о системе еще пару лет назад, но ее инновационность сомнительна… даже если сейчас начинать тратить миллионы на разработку и маркетинг, волна linux систем уже с десяток лет торжествует…
Я полагаю, что стремиться сделать что-то настолько отличное, чтобы ни одна старая концепция не подходила — это вообще неправильная цель. В конце концов, делается именно ОС — программа для управления программами. Ось построена по необычным принципам, но ее назначение вполне традиционно.
А никуда не денешься от подбирания и встраивания старых кусков. Операционки разрабатывались опираясь на существующую структуру железа. А она с тех пор практически не изменилась — проц+оперативка+внешнее хранилище. С появлением и развитием флэш-дисков внешнее хранилище будет все ближе к оперативке, но всеравно не догонит и структура эта будет сохраняться еще долго. Может что-то типа квантовых компьютеров изменит эту картинку, ну так для них и другая идеология построения систем будет разработана, на совершенно других логических принципах.
Интересно, если вынести всю эту среду в облако, наверное можно и проблемы сборки мусора решить, и снепшоты. От пользователя далеко и для него незаметно.

Правда, встает проблема квотирования всего и вся…
о том же подумал. Новые ОСи для десктопа уже какбэ неактуальны, все потихоньку переезжает в веб
Облачные бонусы от Фантома неочевидны. Там гораздо важнее кластеризация, параллельное обслуживание запросов, нежели чем быстрый старт приложения и отсутствие возни с файлами. Наоборот, более полезна возможность прибить рабочую ноду в любой момент и начать с чистого листа.
Неочевидны, согласен.
Прибить-то можно, не ноду а приложение, просто объявить все его объекты мусором и запустить новый экземпляр.
зато как красиво смогут взаимодействовать сервисы в одном облаке
Красиво, но с большим синхронизационным геморроем. Тут ведь много тредов параллельно будут работать с единым графом объектов, живущим в памяти.
Да, при этом не реплицированные, а один объект на какой-то одной машине. Нет, это точно не кластерное решение. :)
Может, я не прав и не знаю тонкостей, но с виду оно мне бредом кажется.
Общее адресное пространство для всех программ имхо убивает безопасность. А выделение отдельного стека для каждой функции — просто захламит память (зачем отдельный стек функции, которая слагает два числа?).
Постоянный сброс на диск всего содержимого оперативки с корректным ее восстановлением вряд ли возможен параллельно, так как если два процесса взаимодействуют между собой, но находятся в памяти далеко друг от друга, при восстановлении второй процесс будет получать неактуальную информацию от первого. А если какой-то процесс работал с сетью, то соединение будет утеряно и придется постоянно осуществлять проверку на это и создавать соединение заново. Хотя может быть, эти проблемы с сохранением/восстановлением как-то решили.
Отсутствие файловой системы с хранением всех файлов в памяти, с передачей их между процессами — это мне кажется еще большим бредом. Как эти процессы будут взаимодействовать с имеющимися накопителями данных? Для этого все равно придется реализовывать нечто (модуль, процесс, драйвер — не знаю, как в этой операционке оно будет назыаться) для работы с файловой системой. Передача файлов между процессами должна затруднить их работу, так как сейчас файловые системы — один из основных способов взаимодействия программ между собой, в том числе между программами на разных компьютерах. Опять-таки непонятно, как хранятся снепшоты памяти на диске, если нет файловой системы. И тем более непонятно, откуда берутся программы, чтобы их запускать.
Сборка мусора на основе reference counter в подобной системе — плохо, ибо не осилит циклические связи и в результате память захламится процессами/объектами с циклическими ссылками.
Но вообще идея интересная :)
Насколько я понимаю, файлов там просто нет. Поэтому если вам нужно перенести документ из одной систмы в другую, надо его заэкспортить из объекта в некоторый документ, а на другой системе — проимпортить. В принципе, совершенно аналогичным образом работают со своими файлами все программы.

Синхронизирование памяти на диск у них уже работает. Так что о невозможности говорить поздно, видимо. :)
В таком случае все равно получается файловая система.
А по поводу синхронизации памяти с диском — я просто не понимаю, как оно может работать одновременно и параллельно с процессами, и корректно.
Если все приложения написаны на неком managed языке, то ОС контролирует все указатели. Т.е. можно, например, взять и внезапно сделать COW на всю память — заменить указатели на настоящую память другими, обращение к которым будет вызывать исключение, обрабатываемое ядром (которое будет копировать старые блоки памяти). После этого можно спокойно записать все старые блоки на диск (приложения теперь не могут портить память, которая уже записалась). А потом наложить изменённую память и высвободить ненужные старые блоки (в случае их полной замены новой версией). Остаётся проблема с сохранением целостности данных во время изменения состояния самим приложением, то тут можно поступить так же, как в современных РСУБД — ввести понятие транзакции (которые тоже можно реализовать через COW).
Да. Такое возможно только при введении понятия транзакции и введения этого понятия в систему разработки программ для Фантома. А кто забыл коммитнуть свой результат — получит на выходе пшик и больше забывать не будет.
Как вывод — большая вероятность ошибки в ОС, которая может привести к Privelege escalation. Т.к. в данном случае границы ОС находятся в области managed code — unmanaged code, в этот самый unmanaged код лезет дополнительно интерпретатор, бесконечные JIT, GC, etc., etc. Если надо что-то написать критичное к скорости, от gc нужно будет отказаться, что эквивалентно запуску потоков в ядре в современных ОС.

… и я что-то не верю в быстрый GC :// Перекладывая проблему контроля ЖЦ объектов с очевидно технически оптимального места (явно, в коде, соответственно семантике ЖЦ объекта) на другое, более простое в смысле кодирования (неявно, через многочисленные алгоритмы), неизбежно получается проигрыш в ресурсах.
Можно придумать и ручное управление памятью для managed языков, например инвалидировать указатели и выполнять проверки в момент free (а если язык хорошо поддаётся статическому анализу, то можно проверки и опустить). А ещё можно съесть много памяти и отложить GC «на потом». Privilege escalation возможен и в случае обнаружения ошибок в процессоре — хотя, конечно же, это гораздо менее вероятное событие.
Вы, видимо, имеете ввиду явно дропать единственную ссылку на объект. В таком случае всё равно есть накладные расходы на подсчёт ссылок. И вообще, получается борьба «машина всё сделает за вас, ни о чем не думайте» и «не учите меня жить», которая обычно плохо заканчивается.

Где отличие классической ОС и managed модели в смысле ошибок процессора? Если их нет, тогда зачем вообще об этом говорить?
Отличие в том, что классические ОС позволяют пользовательским процессам манипулировать регистрами процессора напрямую, а также используют больше особенностей архитектуры (всё, что связано с переключением задач и защитой памяти).
Всё ещё проще — в r/o переключаются страницы виртуальной памяти — тот же COW, только нет никаких проблем с приложением и не нужно менять указатели. Строго говоря, персистентность памяти Фантома никак не связана с managed языками — в ней можно и юниксовые процессы запустить, и, наверное, в следующей версии мы так и сделаем. :)
> Опять-таки непонятно, как хранятся снепшоты памяти на диске, если нет файловой системы.
Это можно сделать, например, так же, как в Линуксе (mkswap). Хотя swapfs и можно назвать файловой системой, но файлов там нет :)

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

> Для этого все равно придется реализовывать нечто (модуль, процесс, драйвер — не знаю, как в этой операционке оно будет назыаться) для работы с файловой системой.
Это значит, что это нечто можно будет легко выгрузить/обновить/загрузить обратно. Если в этой реализации драйвера ФС будет допущена ошибка, то это не приведёт к фатальным последствиям, как в «обычных» ОС.
>>Постоянный сброс на диск всего содержимого оперативки с корректным ее восстановлением вряд ли возможен параллельно
Посмотрите, как быстро делает снэпшоты VMWare Workstation, а тут будет реализованно на уровне ОС. Я примерно это себе представляют, как моментальное копирование файлов в ZFS — логическое копирование происходит практически мгновенно, область памяти просто помечается, как скопированная, а физическое копирование происходит постепенно, по мере изменения данных или наличия свободных ресурсов.

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

Меня в этом проекте больше смущает производительность, соблазн использовать винт понятен — но это ж медленно, не выкопаем ли мы себе на нем могилу?..
Ну тут скорее NVRAM, Flash например. То есть деления на «диск» и «не диск» просто нет.
Уже сейчас есть SSD, SATA III, Thunderbolt, другие красивые слова. Думаю, до сверхбыстрой персистентной памяти недолго осталось.
При всей красивости слов скорости по стравнению с памятью совершенно не сопоставимы.
В то счастливое время и необходимости в RAM как классе не останется. Зачем? Если ROM такая же быстрая? Тогда, простите, любые процессы в любой оси станут персистентными, и без всяких затей.

А вот каких либо оценок производительности Фантома что-то не видно… ну кроме «это ядро такое медленное потому что девелоперское» — дык покажите недевелоперское, запустите на нем что нибудь сложнее i++, пусть память жрет, пусть снапшоты пишутся в полный рост не умирая на IO.
В лохматом году (около 1990) Intel сделали микросхемы NAND, по тем временам сделали резкий прорыв по скорости работы. Тоже говорили — «круто, скоро сделаем на этой технологии процы и ОЗУ — компу будет не страшно отключение питания». Где-то брошюрка даже валяется, про эти микросхемы.

И где они, где эти компы?
Ну не сравнивайте хрен с пальцем…
У интела и других крупных контор разработок на десятки лет вперед.
Только разработки стоят очень дорого, а предыдущие еще не окупились…
Им банально невыгодно новье производить — так как из текущих разработок еще не все деньги выжаты…
Общее адресное пространство для всех программ имхо убивает безопасность

Разруливание ошибок просто надо переносить на уровень верификации кода, посмотрите как это сделано в Singularity
например, в гуглооблаках (appengine) нет никакой файловой системы, а вызовы open() эмулируются чем-то странным.
не сказалбы, что существование приложений в этой среде сильно проблематично.
> Общее адресное пространство для всех программ имхо убивает безопасность.

Нет. Посмотрите Singularity. В той же JVM в одном процессе могут работать изолированно разные апликации (основа J2EE). Все дело в том, что загружаемый код предварительно проходит валидацию на корректность, и таким образом искусственно отсекается невалидные операции с памятью. В Singularity вообще предлагают все выполнять в нулевом кольце защиты как один процесс.

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

По-моему. DZ делает для себя открытие велосипеда. Он не понимает или не видит современные тенденции развития ПО. В качестве модели того, что должна предоставлять операционка:
— Software Transactional Memory — граф объектов с транзакционным доступом. Вся память делится на репозитории, каждый из которых представляет собой граф объектов. Для доступа к каждому репозиторию извне используется SPI (Service Provider Interface), а ссылки действительны исключительно внутри графа. Persistence графа делается прозрачно внутри SPI по мере необходимости.
— Асинхронную модель параллельной обработки на базе Actors. Отказаться от тредов и процессов как таковых, ибо они лимитированы и плохо параллелятся.
— Единый Registry объектов и сервисов.
— Transport SPIs — сервисы приема-передачи данных.

А DZ зациклен на том, как посчитать сцылки и сделать вечными программы.
Во, разумный комментарий. Думал, что же меня смущает — после вас смог сформулировать:

передаю я том процессу свой объект, а он грохается и его портит. И что мне делать?
UFO landed and left these words here
UFO landed and left these words here
Очень понравилась и идея и то как её излагает автор.
Некоторые высказывания ближе к концу выступления буквально заставили улыбнуться.
Вот мне почему-то кажется, что если после всего сказанного авторы концепции с головой и также творчески подойдут к вопросам безопасности, то это будет действительно бомба. А взорвётся она в тот день, когда в архитектуре ПК по техническим причинам исчезнет разделение на быструю оперативную и медленную постоянную память. Над этим инженеры уже давно работают.
Удачи.
Любопытно, что следить за этим проектом я начал с самого начала, практически когда это были еще только «мысли вслух» в очередных выпусках тогда существовавшего dz-online, страшно вспомнить как давно.

Завалишин большой умница и упорный человек, который «хотя бы попытался», в отличие от остальных, которые на том же Хабре исписали словами «пилят, воруют, сколково» и так далее, уже не одну сотню килобайт.
Забавно кстати, как изменилась (в позитивно-конструктивную сторону) тональность комментариев на посты про Фантом за последние 1-2 года. Любопытно, это всё уже другие люди пишут или те же, что раньше dz поливали всякими жидкостями :)
«Сперва тебя игнорируют, потом над тобой смеются, потом с тобой борются, потом ты побеждаешь.» (с) Ганди
То что Завалишин молодец не как не отменяет того что кругом пилят, воруют и сколково — дерьмо. И то что люди это отмечают не в коем мере не говорит о том что они ничего не пытаются, даже наоборот, просто глупо молчать — видя очевидное.
Просто есть люди, для которых тот факт, что «воруют и пилят» есть достаточное оправдание махнуть на все рукой и не делать вообще ничего, оправдывая этим, безусловно отвратительным безобразием России, собственную неспособность ничего сделать.
Надо отметить что даже мне не программисту вполне понятно о чем идет речь. Вообще идея отличная и стоит того чтобы жить и разрабатываться. Честно говоря когда я с пол года назад прочитал про ФантомОС я решил, что это вообще выдумка или что-то вроде концепта, которое так и будет концептом, рад что ошибался.
По поводу файловой системы, в данном случае, мне кажется, её лучше назвать системой хранения объектов раз вместо файлов объекты.
По-моему они переизобрели лисп-машины, с небольшими улучшениями.
UFO landed and left these words here
да, тоже отметил, что идею одноранговой памяти, никаких файлов, всё — объекты, встроенная бд я изучал еще в 199… году на курсах AS/400
есть на сайте в вопросах и ответах:
— Q: Это похоже на...?

A: Это, в зависимости от вашей религии, похоже на Java, Smalltalk, C#, Python, OS/400, iAPX432, Inferno, Grails, Singularity и т.д. и т.п.
Блин, предупреждать нужно, включил как радио, а это оказался сеанс гипноза!
Идея буквально выносит мозг, когда пытаешься представить как там можно решать привычные задачи.
Для встраиваемых устройств, это просто что-то невообразимое, и гораздо более рациональное чем всякие там андрйды…
Интересно, что концепция «все вызовы дико неблокирующие» вполне себе реализована в фреймворке
Twisted.
Возможно это одна из идеальных сред для будущего Phantom.

Мне Phantom активно не нравится — я сужу с точки зрения безопасности и мне представляются просто стада вирусов-обьектов внутри этой системы! Но удачи Завалишину — может это как-то можно побороть.
Вот кстати насчет вирусов интересная тема. Да, у нас managed code и полная безопасность в юзер-моде. Но хотелось бы рассмотреть два момента:

1. ОС будет постоянно развиваться, будут выходить всякие обновления и патчи для ядра. Значит будет механизм, позволяющий засунуть в ядро нативный код из внешнего источника. Источник можно подменить, подпись можно подделать, ключ шифрования можно подобрать или украсть.
В итоге встает вопрос проверки благонадежности импортируемого кода, для чего потребуется интегрированный в систему антивирус.

2. Всегда остается угроза критической уязвимости в управляющем модуле прослойки между стулом и монитором. Даже если эта прослойка не обладает админскими правами, все равно сложно помешать ей нажать «да», когда какое-нибудь приложение с непонятным, но вызывающим доверие названием в духе «глобальный супервизор безопасности» запросит доступ к объекту с непонятым именем «BrowserName::UserDataStorage->SavedPasswords».
Это ставит вопрос о том, как не дать пользователю наломать дров, не стесняя при этом его свободы.

Собственно тут нет ничего нового, просто интересно, как будут реализованы механизмы защиты в ФантомОС.
Я б выделил 2 основные идеи
1. Full Managed OS, — единое адресное пространство, только менеджед языки для разработки итд. Фактически ОС == виртуальная машина. И я двумя руками за такое решение.
2. Сохранение состояния обьектов, отсутствие файлов — и эта идея вызывает намного больше вопросов чем дает ответов. Звучит конечно круто, но насколько это реально?
Будет очень обидно, если проблемы при реализации второй идеи испортят карму 1й.
Что тогда скажеш, очень круто.
У меня все время возникают вопросы в стиле «почему мы тянем за собой это гавно 40 летней давности» и я очень рад, что есть люди, которые взяли на себя грязную работу это все вычистить.
Присоединюсь к большинству, идея превосходная. Даже если она не выйдет на рынок в качестве реального продукта, думаю может вполне быть приобретена крупными компаниями и интегрирована в их спектр. Причём компаниями не сколько софтверными сколько производящими железо.
Самое главное почему-то все упускают — востребованность системы определяется наличием в ней востребованных приложений. И поэтому чаще поддерживать «старье» экономически выгодней. По этой же причине за бугром до сих пор живут тучи Cobol-программ на давно забытом, можно сказать мертвом (как латынь) языке.
Если эта ОСь родится и даже если она будет большой конфеткой, скажите, кому она будет нужна на рынке?
Технические идеи — это технические идеи. Но я не вижу как минимум бизнес-идеи.
Дык, метод проб и ошибок. Не всё меряется коммерческой выгодой, есть ведь чисто академические изыски, которые могут принести доход только в очень далёкой перспективе, или вообще не принести.
Вот академическая полезность, считаю, присутствует. Пусть не весь проект, но отдельные рещения могут получить право на жизнь в качестве расширений программных продуктов или даже существующих операционок.
Ну во первых ничего общего со снапшотами lvm тут нет, а во-вторых, вы будете делать снапшоты каждые несколько секунд?
У вас проблемы со скачиванием с narod-а?
По моему опыту это наиболее оптимальный файлхостинг без порнографии, в России скачивалось очень шустро.

А если вы зарубежом, то как раз можно скачивать с Vimeo (который запрещает скачиваение для России).
У меня (самара) народ — самый нестабильный файлохостинг. 10 метров могут качаться два часа, а могут — две секунды. Правда работает вполне ожидаемо — в строгом соответствии с законом Мерфи: когда присылают посмотреть какую-нить хрень — загрузка на максимальной скорости, файлы от заказчиков, которые нужны прямо сейчас, делают всё возможное, чтобы ни в коем случае не попасть на мой компьютер :)
Грустно. Буду знать.
Что делать правда непонятно — выкладывать записи на торренты бессмысленно, это не прон, качают их редко…
Эта же запись «DZ про Фантом» полгода лежала на народе без единой скачки…

Год назад у меня (Москва) narod за считанные секунды (гиг за 5 минут) скачивался — сейчас тоже как-то похуже, но чтобы совсем не скачать какой-то гиг — такого нет.

А на остальные [варезо]файлхостинги мне этика не позволяет выложить.
Т.к. вы не мой заказчик, видео скачалось хорошо, спасибо что выложили! :)

Я думаю в дальнейшем выкладывайте так же на народ. Проблемы с народом единичны, судя по отзывам знакомых, не стоит на нас ориентироваться )
Считаю что Фантом это фантом и регресс потому что:
Отсутствие сборщика мусора изначально и в процессе работы.
Сохранение данных вместо протоколов обмена.
Отсутствие типизации данных.
Отсутствие таймеров системы реального времени.
Отсутствие внятной реализации на уровне языка.
Большой объём в памяти, низкая скорость.

Смотрим альтернативу bluebottle из Швейцарии.
Сборщик мусора и активные объекты, которые учитывают ссылку и обеспечивают сборку мусора.
Все понимают, кто в теме, что данные это перегрузка протокола, тоесть надо сохранять не процессы а алгоритмы разбора или деревья протокола точнее.
(Смотрим xmpp)
Чёткая типизация данных.
Таймеры на месте.
Реализация объектов, структурных типов, Активных объектов и явное присваивание (:=) на уровне языка.

Плюс: наследование данных, выполнение любого кода написанного в любом окне, явные модули и нет проблем с областью видимости, всё само себя компилирует и занимает маленький объём. Работает быстро.

Уд.,
i
Кстати, да, удивительно, что про OBERON System и последователей никто не вспомнил ещё. А ведь замечательная вещь была, причём, насколько я помню, с конца 80х уже.
Откуда Вы это всё взяли??

— сборщик мусора, конечно, есть.
— типизация, конечно, есть.
— приоритеты (таймеры-то тут при чём?) реального времени, конечно, есть. Таймеры, конечно, тоже.

Остальное как-то в пользу бедных — что такое «внятная», что такое «большой» (на 64 Мб запустить можно, да и в 32 втиснуть вряд ли проблема).

Фантом — не ЯП, а ОС. ЯП поверх можно реализовать почти какой угодно.

PS: value assign в ЯП Фантом тоже есть, это банально. Этот ЯП там для мебели — у меня нет амбиций разработчика языка. Несмотря на то, что сделал пару, и их даже кое-где используют. :)
«Остальное как-то в пользу бедных» — просто проекты новых процессоров основных игроков на рынке направлены на экономию энергии и на использования встроенной памяти сенсоров. Поэтому Вы тут ошибаетесь.

Повторяю: Данные это перегруженный непосильно протокол. Современные ОС типа Актив Оберон А2 (BlueBottle) проектируются как раз на основе созданного языка, в котором и заложены те особенности которые вы хотите создать в ОС с листа.

Вспоминаем: Вначале Си, потом UNIX.
Вначале компилятор и инструменты GNU, затем Линукс.
Вначале Актив Оберон а потом уже OS A2.
Вот без такого подхода и получается вещь в себе, которую Вы и сделали.

Даже поверх. Net можно не что угодно реализовать, а специально созданный на деньги MS Zoonon.

Ждём что создадут в Googl для языка — Go.
Что за язык использует Oracle все знают.
И все примеры со встроенным сборщиком мусора.

Похоже у Вас концептуальная ошибка!!! Из за незнания теории проектирования инженерных систем.
Смотрите Матлаб/Симулинк. Про проектирование FPGA Вам даже не советую смотреть. Так как там больше про реальную физику, а она однозначно указывает, для RT ОС больше подходят множество ядер или даже чипов небольших недорогих процессоров с отсутствием цикла и присутствием прерываний по таймеру для каждой задачи а не одна большая куча-помойка.

Так что видно что Ваша система для «бедных и обречённых» :-)

Удачи,
ignat
Ну — видно и видно. Сделайте лучше.

PS: Историю Юникса надо бы и знать — он был написан ДО появления языка Си. Натурально, на языке Би.

PPS: Я не очень понял, с чего Вы решили, что мне незнаком матлаб и программирование FPGA. У меня несколько хобби, и программированием на верилоге я иногда занимаюсь, чего тут такого фантастического-то?

PPPS: Да и системки я проектировал — дай бог каждому. Ничо, что я спроектировал инфраструктуру для портала Яндекса? И крупнейший сервис Яндекса после поиска? И сам портал до 2004 года вёл? Вы уж, это, как-то поспокойней с оценочками, ладно?

«Пользователь не заметит исчезновения файлов. Для него будут существовать папки и иконки-документы в них. Иконка будет активизировать (условно говоря — запускать метод editDocument в новой нити) объект, соответствующий документу пользователя. Просто документ будет храниться не в сериализованном «файловом» виде, а ровно в том виде, в котором он присутствует в программе и удобен для её работы. Это означает, что 1) программист больше не должен писать код записи состояния программы в файл и считывания его (это, в разных ситуациях, от 30 до 70% кода программы), 2) само «открытие документа» будет происходить существенно быстрее (нет процесса десериализации, нет никакого перемещения данных с места на место) и 3) любой документ может элементарно интегрировать в себя любой другой документ — просто добавив в себя ссылку на чужой объект.»

Звучит революционно!
Чем-то похоже на Blender RNA, когда граф объектов со всем состоянием программы сохраняется на диск. И работает при открытии разными версиями программы.

Чем-то идеологически переплетается с идеями Раскина про будущие системы, в которых приоритетность «потока» определяет новый уровень взаимодействия, все больше воплощая тем самым идею машины для человека, а не наоборот.
Потрясный оратор. Становится на каблук, потом ноги бубликом, туда — сюда расхаживает. Да, сложная наука программирование. Нет пределов для совершенства. Обрадовали объяснения в духе — Для того, что бы понять, кто такой Федор Кузьмич надо знать Татьяну Юрьевну.
Короче, стоит досмотреть до места, где у него все обваливалось из-за мусора. Дальше как-то фрагментарно.
А что это уже «едет»?
Я этого не заметил.
Некий Гуру тряся бородой ( а чем же еще) опровергает вещи достаточно проверенные и оттестированные, и на основании этого заставляет верить себе, как открывшему наконец всем Светлую Истину. В действительности он ничего не рассказывает и не объясняет. Его речь сплошные ссылки. Эти ссылки скорее всего " цикличны", что надежно забивает головы слушателей мусором.
«… это managed-языки, … вообще говоря, отдельные адресные пространства не нужны» — я должен в это верить? На основании чего? Это что тестировалось?
Фантом загружается быстрее любой ОС?
А на фига?
Я не буду рвать последние волосы и биться головой о стену, если мой компьютер грузится на пару минут дольше. В real-time (автомобили, медицина) для быстродействия ставится FPGA. Кстати ПЛИС сейчас стали такими мощными, что в них целиком заливается ANDROID, что по моему совершенно не нужно, поскольку на кой черт ОС на периферии? А вот нечто подобное Фантому наверно в контроллерах прекрасно бы подошло. Думаю, живи Завалишин в реальности, он бы давно переключился именно на контроллеры периферии. Но… Фантом должен завоевать мир!!! Не менее.
Дальше
Ну видел я эти «двухдисковые» компьютеры со времен которых якобы ничего не изменилось. Наверно если ты всю жизнь писал плоский текст и кодовую вермишель, то ты просто этого не заметил. Мне сейчас для того, что бы провести НИОКР достаточно двух программ CAD & MATLAB, а тогда это и не снилось. Это компьютеры, в тут пору служили исключительно предметом самой дешевой спекуляции. Их привозили первые наши Вернувшиеся, продавали за одну цену, ставили в бумагах другую, а на выручку покупали ВАЗ 2109. И еще и на месячную пьянку хватало.
И для смеха под занавес Цитата
Около двух третей лица Маркса покрывает борода — широкая, торжественная, густая, скучная борода, которая, вероятно, причиняла своему хозяину много неудобств в повседневной жизни. Такая борода не вырастает сама собой; ее холят, лелеют и патриархально возносят над миром. Своим бессмысленным изобилием она чрезвычайно похожа на «Капитал»; и то человеческое, что остается от лица, смотрит поверх нее совиным взглядом, словно желая знать, какое впечатление эта растительность производит на мир.
Г Уэллс Россия во мгле.

Наверно самый длинный пост на Хабре который я внимательно прочитал полностью.

Спасибо автору за статью, и спасибо Дмитрию и прочим разработчикам за реализацию этой великолепной концепции, которая просто обязана стать основой для операционных систем будущего.
сегодня полностью не осилил, садится батарея, но, стало интерестно, не на ЛИСПе ли пишут/мыслят разработчики? Операционка с принципами REPL и использованием одного и тогоже языка на разных уровнях (от ассемблеров до скриптования) это интересный был бы вариант. А со своим аппаратным базисом, как Lisp machines, например, только с аналогичными видяхами (имеющими, например, встроенные функции отрисовки GUI) было бы еще интерестнее. Можно было бы получить реальное микроядро и перегрузку модулей на лету, впрчем все это фантазии :(
Наверное, каждый на заре обучению языкам программирования встречался со своим недоумением, когда создаём переменную
var a=0;
а потом оказывается, что программа держит её только на время исполнения. Дальше нужны файлы или БД для хранения «души умершей программы». Устранение этого архаизма, действительно, упростило бы логику на 1-2 шага. И, конечно, повлекло бы требование правильного называния имён — что есть «а», в каком она контексте. То, что делают объекты и ООП.
Программу можно убить, перезапустить, это обычный thread, который так же себя ведет. Потому что меня постоянно спрашивают — если программа вечно живет, а она сломалась, как же ее убить? Ну просто убить. Берешь и убиваешь. Тем же самым killом и убивешь, или нажатием на какой-нибудь крестик, там, в уголку. В этом плане никаких отличий нет. Просто данные, которыми она пользуется, они остались. При остановке процесса, все это остается.

Ну блин, ну если программа поломалась, то что под этим понимается? Сам-то код в памяти не портится (ну, один бит на гигабайт за месяц не считаем).
«Программа поломалась» означает «в её данных возникли внутренние противоречия». Именно ИХ мы хотим уничтожить, и как раз для этого перезапускаем программу, чтобы начать с инициализации — с чистого листа.

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

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

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

… оно само отправилось…

Вообще всё это очень, очень напоминает фричество. В физике, например, фрики очень любят говорить в духе, что официальная наука заблудилась, от неё надо полностью отказаться и сделать всё заново: «Эйнштейн понапридумывал полный бред, я один знаю, как правильно» или даже «о заблуждениях Ньютона», «вы все неправильно понимаете суть электрона», «эфир реален», " и прочее подобное.

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

Только уже который год я слышу про этот фантом, и никакой практики в руках не держал.
UFO landed and left these words here
Only those users with full accounts are able to leave comments. Log in, please.