Профиль: Аноним (вход | регистрация) неRU opennet.me  
The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Представлены X-сервер Frame и рабочий стол CHasm, написанные на ассемблере

17.07.2026 13:46 (MSK)

Проект Frame развивает новый X-сервер, написанный целиком на ассемблере NASM для архитектуры x86_64 и предназначенный для работы в Linux без внешних зависимостей. Взаимодействие с ядром Linux, включая интерфейсы DRM/KMS и evdev, осуществляется напрямую через системные вызовы, без привлечения библиотек, таких как libc, Mesa и FreeType. Код Frame распространяется как общественное достояние. Разработка ведётся с привлечением AI-ассистента Claude Code.

Целью проекта является реализация расширений протокола X11, достаточных для функционирования рабочего стола CHasm, развиваемого тем же автором и также написанного на ассемблере. В качестве необходимого минимума заявлена поддержка запуска типовых X11-приложений, среди которых Firefox, VS Code, GIMP и Inkscape. Из намеченных к реализации X11-расширений упомянуты SHAPE, RENDER, XKB, COMPOSITE, DAMAGE, RANDR, MIT-SHM, XInput2 и XVideo.

Разработка разделена на 14 стадий. В настоящее время проект находится на 7 стадии, на которой уже реализованы базовые возможности для запуска терминала и некоторых X11 приложений. 14 стадия будет достигнута, когда будут реализованы все возможности для полноценной работы с Firefox. На текущем этапе заявлено о возможности запуска базового рабочего стола CHasm, GIMP и Firefox (с ограничениями).

Среди уже реализованных возможностей: приём X11-запросов через Unix-сокет, программная отрисовка через подсистему ядра DRM/KMS, обработка ввода через evdev, API для управления вводом, поддержка подключения нескольких X11-клиентов, функции для создания и работы с окнами, операции с пиксельными картами, атомарные операции, выделение текста для буфера обмена, X11-расширения SHAPE, RANDR, XKB, XInput2 и MIT-SHM. Ещё не реализованы примитивы векторной отрисовки, атомарное переключение видеорежима, буфер обмена, переключение раскладки клавиатуры, управление курсором, X11-расширения RENDER, DAMAGE и COMPOSITE.

Среда рабочего стола CHasm насчитывает около 100 тысяч строк кода и включает написанные на ассемблере компоненты: мозаичный оконный менеджер Tile, панель состояния Strip, блокировщик экрана Bolt, интерактивная оболочка Bare и эмулятор терминала Glass. Разработанные компоненты заменяются собой связку из gdm, X11 Server, i3, conky, wezterm и zsh.

Разработка ведётся с оглядкой на минимальное потребление энергии при использовании на ноутбуке. В режиме ожидания оконный менеджер Tile и терминал Glass совсем не потребляют ресурсы и активируются только при действии пользователя. Frame в режиме простоя расходует почти в три раза меньше ресурсов CPU, чем X.Org Server.

Утверждается, что окружение на базе Frame и CHasm уже достаточно стабильно для использования в повседневной работе автора проекта. Когда возникают проблемы или чего-то не хватает, автор по мере необходимости привлекает Claude и устраняет недоработки. Автор также развивает набор консольных утилит fe2o3, написанных на Rust и покрывающих все его потребности, кроме web-браузера. В состав fe2o3 входит двухпанельный файловый менеджер Pointer, командный интерпретатор rush, vim-подобный текстовый редактор Scribe, RSS-ридер Gazette, почтовый клиент и мессенджер Kastrup, календарь-планировщик Tock, конфигуратор Crush, просмотрщик документов Viewer.



  1. Главная ссылка к новости (https://www.theregister.com/so...)
  2. OpenNews: Выпуск X-сервера yserver 1.0.0, написанного на Rust и пригодного для запуска MATE, Xfce и Cinnamon
  3. OpenNews: Проект Phoenix развивает современный X-сервер, написанный на языке Zig
  4. OpenNews: Проект SonicDE продолжил развитие KDE для систем с X11
  5. OpenNews: Основан GNOME-X11, форк GNOME 50 с возвращённой поддержкой X11
  6. OpenNews: Выпуск проекта XLibre XServer 25.2.0, развивающего форк X.Org Server
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/65922-frame
Ключевые слова: frame, chasm, assembler, linux, x11
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (122) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 14:33, 17/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +12 +/
    ИИ открывает новые горизонты - можно пилить софт исключительно под свои потребности и забить на языки программирования и компиляторы,  генерируя код на ассемблере.
     
     
  • 2.30, Аноним (30), 15:58, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Можно также не работать, не есть и не дышать, полностью переложив эти обязанности на AI, который все это сделает за чудака, который не вырос из детства и не перестал верить в чудеса.
     
     
  • 3.90, Аноним (90), 19:37, 17/07/2026 Скрыто ботом-модератором     [к модератору]
  • +7 +/
     
  • 2.37, sena (ok), 16:09, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +5 +/
    жду когда ИИ будет генерировать сразу бинарники, без промежуточных исходников
     
     
  • 3.57, nikitron (ok), 17:09, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +5 +/
    зачем вообще бинарники или исходники, если можно просто посылать сигналы что всё хорошо
     
  • 3.59, penetrator (?), 17:16, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    чтобы что? чтобы не иметь вообще никакой возможности для контроля результата?
     
     
  • 4.71, Аноним (71), 18:00, 17/07/2026 Скрыто ботом-модератором     [к модератору]
  • +5 +/
     
  • 4.93, Жыжа (?), 19:59, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А щас какой контроль? Агентик луп из 7 за^W агентов, которые читают код, который выдала ллм?
     
     
  • 5.123, Аноним (123), 00:03, 18/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Есть такие слова sdd, tdd
     
  • 3.92, Жыжа (?), 19:58, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Реально не понимаю зачем эти полумеры с текстом и кнопкой "аппрув", если можно сразу на выходе делать какой-нибудь условный байткод для виртуальной машины LLMVM
     
  • 3.125, Аноним (125), 00:28, 18/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А то, что ИИ может делать в бинарник деструктивные или шпионские вставки, не смущает?
     
     
  • 4.128, sena (ok), 00:43, 18/07/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А то, что ИИ может делать в бинарник деструктивные или шпионские вставки,
    > не смущает?

    Смутить это может только в ситуации, когда мы исходим из предположения, что возможна ситуация: человек главенствует, а более умный ИИ ему подчинён и помогает изо всех сил. По-моему же такая ситуация невозможна. Как только ИИ станет умней человека в каком-то аспекте, то именно он будет определять что и куда. И тогда деструктивные или шпионские вставки ему не будут нужны.

     

  • 1.2, Аноним (2), 14:34, 17/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –15 +/
    Файрфокс на иксах полноценно не работает, придётся попотеть. 152 чёт совсем сломали, тоже чатботы видимо.
     
     
  • 2.3, EuPhobos (ok), 14:36, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +11 +/
    > Файрфокс на иксах полноценно не работает, придётся попотеть. 152 чёт совсем сломали, тоже чатботы видимо.

    Откуда вы такие берётесь? Что именно сломано то?
    Сижу на иксах, лиса 153.0.6 - особых проблем при ежедневном сёрфигне сайтов не наблюдал, что такого может не работать, что прям блокер?

     
     
  • 3.5, Аноним (5), 14:41, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Похоже, на иксах ты сидишь с вяленого, потому что в firefox стабильно каждые 10 выпусков ломают primary selection.

    И стабильно каждые 40 там падает софтрендер.

     
  • 3.7, Аноним (2), 14:42, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Из будущего пишешь? Превью табов по mouseover сломано, виджеты без композитинга сломаны и показывают чёрный фон. Файловые диалоги совсем сломаны: и клики, и подтверждение перезаписи существующего файла.
     
     
  • 4.12, Аноним (2), 14:53, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А вот превью работает в другом окне, но выглядит так себе. Без скруглённых углов наверно не пришлось бы заполнять всё чёрным.
     
  • 4.26, Аноним (26), 15:35, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Превью табов по mouseover сломано, виджеты без композитинга сломаны и показывают чёрный фон.

    Результат многолетнего скругления окон. Итоги.

     
  • 4.28, Аноним (26), 15:38, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Превью табов по mouseover сломано, виджеты без композитинга сломаны и показывают чёрный фон.

    Результат многолетнего скругления окон. Итоги.

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

     
  • 4.73, oficsu (ok), 18:06, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Файловые диалоги совсем сломаны

    Кастомные файловые диалоги в любом софте – боль, и всегда ею была. Железобетонно решается использованием порталов. Ставим xdg-desktop-portal-<your-de> и прописываем GTK_USE_PORTAL=1 перед запуском Firefox

     
  • 4.129, Аноним (129), 02:49, 18/07/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 3.8, Аноним (8), 14:43, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Сижу на форточке и он в текущем мажоре регулярно фризится даже если у тебя минимально 2-3 таба открыто с текстом
     
     
  • 4.31, Аноним (30), 16:00, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Для форточек 4 гбайта ныне критически мало. Пора за апгрейдом в китайскую лавочку.
     
  • 2.41, Аноним (41), 16:14, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Враньё, сижу на Иксах, всё работает стабильно.
     
     
  • 3.56, Аноним (2), 17:03, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Особенно zerocopy, ага.
     
     
  • 4.106, omnirootofc (ok), 20:48, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Зачем ты нули копируешь, иди делом займись
     
  • 2.51, Аноним (51), 16:51, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Никаких проблем на 153.0.6 в минте.
     
     
  • 3.61, Аноним (2), 17:26, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ты опять на связь выходишь? У всех есть, а у тебя нет.
     
  • 2.54, Аноним (54), 16:57, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Секрет прост - твой дистрибутив. Никак вы ----- не научитесь, небось либо ролинг либо модно-геймерский дистр с кучей експериментальных патчей, а потом "у меня фаерфокс сломался". У тебя система сломалвсь а не фаерфокс.
     
     
  • 3.60, Аноним (2), 17:17, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Предлагаешь протухший браузер юзать? Ну такое, это для инвалидов развлечение.
     
     
  • 4.63, dannyD (?), 17:31, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    а НЕ инвалиды развлекаются беготнёй впереди паровоза.
     
     
  • 5.65, Аноним (2), 17:36, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > а НЕ инвалиды развлекаются беготнёй впереди паровоза.

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

     
     
  • 6.104, dannyD (?), 20:40, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >>Технически самый свежий браузер уже несколько месячной давности на момент выхода...

    no comments.

     
     
  • 7.115, Аноним (2), 22:02, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >>>Технически самый свежий браузер уже несколько месячной давности на момент выхода...
    > no comments.

    Когда он у тебя будет падать каждый день из-за обновившегося видеодрайвера, ты запоёшь иначе. Касается и венды, ага.

     
  • 4.64, localhostadmin (ok), 17:34, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Что такого радикально нового добавляют в фаерфокс, что необходимо моментально перейти на последнюю версию?
     
     
  • 5.69, Аноним (2), 17:56, 17/07/2026 Скрыто ботом-модератором     [к модератору]
  • –1 +/
     
  • 5.85, Аноним (5), 19:11, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Он перестаёт ломаться на некотых chrome only сайтах.
     
  • 3.116, Аноним (5), 22:04, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Вот этому дистрохопперу slackware пропишите, чтоб не нёс про дистрибутивы.
     
  • 2.82, Аноним (82), 18:43, 17/07/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 3.83, Аноним (2), 18:50, 17/07/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.103, Аноним (103), 20:38, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Вай, какой).
     

  • 1.4, Аноним (8), 14:41, 17/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    а почему не на fasm?
     

  • 1.9, xsignal (ok), 14:44, 17/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +11 +/
    Если уж писать на ассебмлере, то без ИИ. Ассемблерный код от ИИ вряд ли будет лучше, чем код оптимизирующего компилятора.
     
     
  • 2.10, Аноним (5), 14:48, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если на сорцах luajit и fasm тренировать, будет лучше.
     
  • 2.11, Аноним (5), 14:49, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    И вне зависимости от компилятора, оно будет читаемо.
     
  • 2.22, Аноним (22), 15:21, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    повторно надо код вскормить, чтобы оптимизировал, срабатывает.
     
  • 2.46, Фамилия (?), 16:40, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    По мне код получился просто как рукописный на ассемблере. Есть ли в этом какая-то ценность - хз...

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

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

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

     
     
  • 3.94, Аноним (22), 20:01, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > (надо в голове держать где кто какой регистр использует и что там в стеке лежит)

    можно текстовый редактор в стиле дебаггера сделать, чтобы видеть и текущее положение регистров (флагов) по всему коду и состояние памяти (стека).

     
     
  • 4.97, Фамилия (?), 20:10, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Да-да, а потом можно прийти к тому, что можно писать не прям ассемблерные инструкции, а обернуть их в подобие удобных макросов, а потом чтобы можно было назвать "переменную" как-нибудь и она автоматом будет то в регистр сгружаться, то в стек. И получится ... Си.
     
     
  • 5.100, Аноним (22), 20:19, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Да-да, а потом можно прийти к тому

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

    > И получится ... Си.

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

     
     
  • 6.105, Фамилия (?), 20:41, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Не, ну вы не путайте ЯП и "редактор для ассемблера, а-ля Forth". ЯП родились не просто так и к ним пришли эволюционно. Ассемблер привязывает ровно к одной процессорной архитектуре. И не позволяет легко и просто провести оптимизации, в отличие от ЯП.
     
     
  • 7.117, Аноним (22), 22:12, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Не, ну вы не путайте ЯП

    ЯП и есть функции текстового редактора, ваш компилятор всего лишь текстовый компилятор.

    > Ассемблер привязывает ровно к одной процессорной архитектуре. И не позволяет легко и просто провести оптимизации, в отличие от ЯП.

    Какие оптимизации уровня аппаратуры делает ЯП? - никакие, все оптимизации могут быть сделаны на уровне кодогенерации и линковки. Любые "оптимизации" уровня ЯП это просто текстовые операции.

     
     
  • 8.126, Фамилия (?), 00:41, 18/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Согласен ... текст свёрнут, показать
     

  • 1.13, JoePeach (ok), 15:03, 17/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    А помните, ржали над Microslop... Вот, досмеялись!
     
  • 1.14, Аноним (14), 15:04, 17/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Чтобы никто без ИИ в коде не разобрался?
     
  • 1.15, Аноним (26), 15:05, 17/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Вроде бы фанаты wayland говорили, что кроме Xorg других иксов не бывает в отличие от кучи несовместимых реализаций протоколов wayland.
    Как же так?
     
     
  • 2.16, Аноним (16), 15:09, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Как же так, фанаты wayland не посмотрели в будущее и не узрели, что кто-то начнёт писать иксы на асме.
     
     
  • 3.17, Аноним (26), 15:11, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Они и в прошлое и настоящее не смотрели, когда на момент открывания своего рта про единственный Xorg уже были и другие Икс-серверы.
     
     
  • 4.47, Аноним (47), 16:46, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Есть X.Org, а также статические погрешности
     
     
  • 5.74, Frestein (ok), 18:17, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А динамические были уже?
     
     
  • 6.118, Аноним (118), 22:19, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Только стационарные
     
  • 2.33, Аноним (-), 16:04, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    мне кажется, ты путаешь - говорили о об этом именно фанаты иксов, называя отсутствие кучи несовместимых реализации плюсом

    теперь, собственно, вопрос - что там с совместимостью реализаций различных Хы-серверов? тут в расширениях не перечислены сервер шрифтов, сервер печати, запускатор COFF и a.out, так что считаем его несовместимой реализацией Хы, ненастоящим Хы

     
     
  • 3.39, Аноним (26), 16:11, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > сервер печати

    Это как встроенный оконный менеджер в дисплейный сервер в wayland'ах? Ну да, тут такого уже сто лет нету даже в Xorg.

     
     
  • 4.80, Аноним (-), 18:38, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    раскрой пожалуйста мысль, каким образом ты пришел к вейланду? как этот факт влияет на несовместимость различных реализаций серверов Хы?
     

  • 1.18, Аноним9000 (?), 15:12, 17/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    По-моему очень сомнительное решение. Если прямо нужна невероятная оптимизация производительности, то лучше Rust + ассемблерные вставки в hot paths.
    А так 100к+ строк абсолютно не поддерживаемого ассемблерного кода написанного LLM без каких бы то ни было гарантий от компилятора
     
     
  • 2.20, Аноним (26), 15:15, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Зачем тебе компилятор и какие-то его гарантии, если код _уже_ на ассемблере? Что-то тут компилировать собрался? Код уже скомпилирован, дальше только его ассемблировать в машинный код.
     
     
  • 3.24, Аноним9000 (?), 15:24, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Я нигде не говорю про компиляцию ассемблерного кода, как раз наоборот говорю, что в данном случае не будет никаких гарантий от компилятора, в отличии от ситуации с Rust.

    Итого:
    1) В ситуации Rust + ассемблерные вставки мы можем вычитать unsafe части, а в остальном полагаться на гарантии компилятора
    2) В данной ситуации у нас 100к+ строк ассемблера, которые невозможно вычитать, а значит можно полагаться только на проверку LLM и специфичными инструментами статического анализа

     
     
  • 4.50, warlock66613 (ok), 16:49, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Технически, у компилятора Rust одна гарантия -- отсутствие UB. Любой код на ассемблере по определению не содержит UB, так что эта гарантия есть.
     
     
  • 5.58, Аноним (2), 17:14, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Нет там таких гарантий, никто их тебе не даст. Хочешь каких-то гарантий, учи Ada.
     
  • 5.70, Аноним9000 (?), 17:59, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    В самом ассемблере технически UB быть не может, но т.к. в данном проекте количество кода такое, что его никто никогда не вычитает фактически UB может быть на границе промт - LLM - ассемблер. Плюс этот код не существует в вакууме, а дёргает интерфейсы ядра.

    И в Rust гарантии не только насчёт UB.

     
     
  • 6.78, oficsu (ok), 18:33, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > В самом ассемблере технически UB быть не может

    В самом – может и нет. Но ub – это отсутствие гарантий на поведение. И гарантии поведения не всегда присутствуют на уровне самого железа. Поэтому код на nasm легко может триггерить ub

    Например, инструкция rdrand не даёт гарантий на результат:
    > no valid random value is available—due to ongoing conditioning or entropy source replenishment—the destination register contents are undefined

    Или работа с неверно выравненными данными для некоторых отдельных cpu даёт unpredictable behavior, что для программиста фактически равноценно ub

    Также этот проект запускается в операционке, а не в вакууме, и его код зовёт сисколлы. А там тоже есть и abi, и требования на входные данные, и гарантии, и ub на нарушение требований

     
     
  • 7.96, Аноним (22), 20:05, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Но ub – это отсутствие гарантий на поведение. И гарантии поведения не всегда присутствуют на уровне самого железа.

    UB это отсутствие доказательства корректности! Если ваш ЦПУ имеет спеку и коректный, он верифицирован, то в нем UB быть не должно по определению. Доказательство корректности и ее верификация это и есть гарантия.

     
     
  • 8.122, Аноним (122), 23:46, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    В armv8 есть UB C1 3 4 Interaction of undefined instruction behavior with UNPRE... большой текст свёрнут, показать
     
     
  • 9.124, Аноним (22), 00:12, 18/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    кто-то отрицал это повторяю, отсутствие UB необходимо ДОКАЗЫВАТЬ А с другой ст... текст свёрнут, показать
     
     
  • 10.130, Аноним (122), 04:04, 18/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Cуть в том что спека у фрма есть, а в ней UB ... текст свёрнут, показать
     
  • 7.98, Аноним (22), 20:14, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Например, инструкция rdrand не даёт гарантий на результат:

    нету таких понятий, гарантия на результат. Сама функция четко определяется, то есть задается ее область определений и значений, доказывается корректность и т.д. которое можно верифицировать. Но уже внутри самой этой функции есть другие функции (источники энтропии) даже они могут быть вполне определены, и доказаны на корректность (а результат сводится в таком случае к функции возвращающей либо 0 либо 1), и поведение этих функций вполне определены!

     
  • 6.95, Аноним (22), 20:03, 17/07/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.21, Аноним (2), 15:20, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Раст это блоат. Проверки в рантайме не бесплатны и в отличие от си достаточно сложно предугадывать вычислительную сложность.
     
     
  • 3.27, Аноним9000 (?), 15:37, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Я не настоящий сварщик, но мне кажется hot paths можно найти динамическим анализом ведь?
    И вроде бы практика показывает, что на Rust удаётся достичь очень высокой производительности.
    Конечно, в идеальном мире идеальный код на Си или, ещё лучше, на ассемблере это лучше решение, но LLM ещё не настолько хороши, чтобы доверять им, что они напишут идеальный код
     
  • 3.62, karag0 (?), 17:26, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А давно у rust рантайм среда появилась, а ?
     
     
  • 4.66, Аноним (2), 17:47, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Хм? У раста нет встроенного сборщика мусора, но рантайм у кода, им генерируемом, конечно же есть. Проверка индексов (причина существенного замедления), раскрутка стека и обработка паник (очень сильное замедление), менеджмент памяти (отладка затруднена), потоки и ввод-вывод. Если нужна поддержка асинхронного кода, сейчас подключается сторонний рантайм тоже.
     
     
  • 5.68, Аноним (68), 17:50, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > причина существенного замедления
    > очень сильное замедление

    Но работает на уровне СИ, а иногда и быстрее.
    Может ты не релизную сборку делал?

    > отладка затруднена

    По сравнению с чем?

     
     
  • 6.72, Аноним (2), 18:04, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Я видел, как он у меня произвольно висит на мютексе где-то в кишках serde, ну замечательно. В релизной сборке меньше. Максимально аналогичный код на питоне (тоже десериализация и всё остальное) в итоге одинаковую производительность с растом показывал (и раз в 30 быстрее отладочного билда). Зачем связываться, если можно взять предсказуемые плюсы (открываешь отладчик и смотришь), мне решительно непонятно.
     
  • 5.119, Аноним (118), 22:32, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Проверка индексов (причина существенного замедления)

    Компилятор их убирает, если доказуемо выхода за пределы нет.

    Но у компилятора Rust эти проверки несколько ограничены.

    Ada/SPARK в этом на голову лучше.

    В Rust есть get_unchecked (unsafe) для случаев, когда вы уверены в том, что выхода за пределы не будет.

    А вообще есть perf book.

     
  • 3.67, fidoman (ok), 17:49, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    блоат это когда после одного сложения надо сделать три сравнения чтобы факт переноса установить.
    ах ну да, это же просто UB.
     
     
  • 4.77, Аноним (2), 18:31, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ну так в переполнении ничего плохого. В любом случае, штатная функциональность компилятора этот вопрос решает. И это никак не UB. А вот переполнение чисел с плавающей запятой в расте -- определённо UB, но стандарта то и нет -- как ты собираешься устанавливать, что является UB, а что нет?
     
  • 2.25, Аноним (2), 15:25, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Нет разделяемой памяти библиотек опять же, для дисплейного сервера это весьма важно. Взять тот же квин -- своей памяти у него в районе 20 мегабайт и ещё 60 разделяемой. Ну и у ксорга 90 (зависит от числа окон) и 150 -- порядок примерно такой.
     
  • 2.29, Ivan_83 (ok), 15:49, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Раст даром и с приплатой не сдался, и производительности с ним не будет.
    А на С уже есть хорг.
     
     
  • 3.32, Аноним (32), 16:02, 17/07/2026 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
     
  • 4.42, Аноним (26), 16:14, 17/07/2026 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
  • 2.34, Аноним (5), 16:05, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >Если прямо нужна невероятная оптимизация производительности, то лучше Rust + ассемблерные вставки в hot paths.

    Отличный проект! Думаю, ты справишься! Замечание про 100к+ строк абсолютно не поддерживаемого ассемблерного кода - просто шик! Хочешь, составлю месячный план по написанию X-сервера на Rust?

     
     
  • 3.38, Аноним9000 (?), 16:10, 17/07/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 3.43, Аноним (41), 16:15, 17/07/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.53, Аноним (51), 16:54, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >По-моему очень сомнительное решение. Если прямо нужна невероятная оптимизация производительности, то лучше

    взять Си.

     

  • 1.36, Анонимный аноним (?), 16:08, 17/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Взрыв мозга для опеннетовцев. С одной стороны obsolete X11 сервер и оконный менеджер, что хорошо. С другой стороны terrible AI-кодинг, что ужасно. )))
     

  • 1.40, Анонимный аноним (?), 16:12, 17/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Я не понимаю, зачем все целиков на ассемблере писать? Это же нечитаемый трудноподдерживаемый непортируемый код. Можно на любом низкоуровневом языке писать -- Си, подмножестве Си++, да хоть на Rust или Zig без привязки к внешним каким бы то ни было библиотекам. Просто сделать обертку над ассемблерными обращениями к ядру и все.
     
     
  • 2.44, Аноним (26), 16:21, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Это промпт-инженер ничего не писал, это все Claude Code сгенерировал.
     
  • 2.48, Аноним (47), 16:48, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Just 4 lulz
     
  • 2.81, Аноним (81), 18:40, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Это же нечитаемый трудноподдерживаемый непортируемый код

    Что может быть проще асемблера?

     
     
  • 3.86, Анонимный аноним (?), 19:18, 17/07/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 3.102, Аноним (102), 20:32, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Проще для кого: машины или программиста?
     
     
  • 4.114, Аноним (81), 21:40, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Да
     
  • 3.110, Аноним (110), 21:17, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Forth
     

  • 1.45, Я (??), 16:27, 17/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Лучше писал бы на Си или на ограниченном варианте С++ с минимальным использованием стандартной библиотеки. Эффективность была бы куда лучше, а расход ресурсов примерно таким же. И была бы кроссплатформенность. А на асме это просто игрушка для автора и не более того.
     
  • 1.49, Аноним (5), 16:48, 17/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Давайте уже сбросим шляпы и скажем, какой нейронкой генерировали комментарии.
     
  • 1.52, Аноним (52), 16:52, 17/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    вроде чем сложнее яп тем сложнее на нём писать и человеку и ии. а вот километры асма в одном файле для ии намного легче чем для человека. так что чел нашёл видимо правильный путь
     
  • 1.55, Аноним (55), 16:58, 17/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Если глянуть в код, особенно в md-шку, то такая жуткая «многословность» ;) А особенно забавляют дефисы. Они ИИчек длинные и являются одним из признаков…
     
     
  • 2.109, Аноним (109), 21:13, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Использую правильные тире и кавычки в соответствии с типографскими правилами того языка, на котором пишу с года эдак двухтысячного. В некоторых кругах это признак грамотного человека.
     
  • 2.112, kusb reg (ok), 21:37, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Там никто и не скрывает, что это написано ИИ. Почитай блог человека. Там "замена всех программ на написанные ИИ специально для меня, я и есть потенциальный единственный потребитель - умолчания, предположения, особенности сделаны для меня и нет предположения других пользователей, поэтому это просто и как-бы идеально"
     
     
  • 3.113, kusb reg (ok), 21:39, 17/07/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это не приглашение использовать моё программное обеспечение Честно говоря, пожа... большой текст свёрнут, показать
     

  • 1.76, Аноним (76), 18:21, 17/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Работаем Асм на 86-64, и больше ни на чем, в помойку Асм
     
  • 1.79, anonymous (??), 18:35, 17/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Если в структурированном коде ещё можно найти где налажал нейрослоп, то в ассемблерных спагетти разобраться сможет только сам ИИ.
     
  • 1.84, Джон Титор (ok), 18:56, 17/07/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –1 +/
     
  • 1.87, Аноним (87), 19:30, 17/07/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     
  • 1.89, Аноним (89), 19:33, 17/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Аналог libxkbcommon без зависимостей и с базой раскладок в комплекте был бы очень кстати. Оч всрато что эту штуку можно вызвать только из сей. Мне на go понадобились всякие суровые колдунства, чтобы без cgo обойти это.
     
  • 1.99, Аноним (109), 20:16, 17/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Один васян с ИИ сделал иксы на ассебмлере (на ассемблере, Карл!) за пару месяцев лучше, чем толпа инженеров за десятилетия на сях. Достойно уважения и восхищения. А эксперты с опеннета только комментов написали два тома про то, как они бы уж точно сделали ли бы лучше и соврешенно иначе. Если бы встали с дивана.

    Это всё, что вам нужно знать о разнице между мужчиной и мальчиком, мальчики.

     
  • 1.108, Аноним (108), 21:12, 17/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Frame в режиме простоя расходует почти в три раза меньше ресурсов CPU, чем X.Org Server.

    Значит в xlibre есть что оптимизировать

     
  • 1.111, Аноним (110), 21:22, 17/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Когда-то давно пришлось по работе реверсить 700 килобайт текста на ассемблере ... Да, удовольствие из средних ...
     
  • 1.121, Аноним (121), 22:42, 17/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    А потом - да вы правы, эта конструкция приведет к выходу за границы буфера, хотите я вам расскажу какие ещё бывают ошибки?
     
     
  • 2.127, Аноним (22), 00:43, 18/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    так и есть это бич реинфорстмент лернинга, ваш ЫЫ вам угождает, он даже готов будет принять 2+2=5 за истину.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2026 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру