fa
Feedback

فریب کلاهبرداران را نخورید! تل‌متریو این کانال‌ها را شناسایی و برچسب‌گذاری می‌کند 👉 برای مشاهده برچسب، اشتراک تهیه کنید

commit -m "better"

commit -m "better"

رفتن به کانال در Telegram

just random thoughts

نمایش بیشتر
4 110
مشترکین
+724 ساعت
+147 روز
+29830 روز
آرشیو پست ها
Оказалось, что мой монументальный текст про #pizd0s design никто не осилил, и надо коротенько написать, чего же новое я там хочу сделать. https://t.me/itpgchannel/56 https://t.me/itpgchannel/1331 В целом, все очень просто - программы в моей OS - это #wasm модули со своим ABI, процессы - те же wasm модули, после компиляции в native код с помощью моего же AOT компилятора https://github.com/pizd0s/kernel/tree/main/bin/aot. В OS нет paging, защиты памяти, как ее обычно себе представляют в OS, с помощью аппаратных средств процессора. Трансляции адресов тоже нет. Вместо этого - изоляция на уровне моей виртуальной машины, и сгенерированного кода. Если совсем просто, любой доступ в памяти в wasm компилируется во что-то типа if (!check(ptr)) raise(); *ptr .... Поэтому есть гарантия, что исполняемый код не полезет туда, куда ему нельзя. Из этого есть огромное количество интересных следствий, которые мне и хочется поисследовать: * нет paging и трансляции адресов - программы становятся 1.2-2 раза быстрее, только из-за отсутствия tlb cache misses и прочего, зависит от нагрузки. Это примерно как если бы вы запустили весь userspace в 1G huge pages. * сгенеренный AOT код, из-за кучи check(), становится на 20% медленнее. Это сам по себе очень удивительный результат, потому что очевидный тут вопрос - "а почему не в 10 раз медленее?". Про свой AOT я напишу отдельно, и расскажу, почему так. Промежуточный вывод - я ожидаю, что на bare metal программы в моей OS будут работать в среднем быстрее, а не медленнее, чем в конвенциональной OS. * сисколл в такой схеме - это просто прямой вызов runtime ядра, как если бы вы позвали вызов из .so, то есть, в 100 - 1000 раз быстрее обычного сисколла в конвенциональной OS. Из этого уже можно сделать такой вывод - что API ядра у меня идет не по границе "так эффективно", а по "так удобно", "есть профит от разреза именно в этом месте". Еще один моментальный вывод - так как нет context switch, то ядро может использовать любые регистры, и вообще, любой "обычный", библиотечный, код. * malloc/free/calloc/realloc у меня не часть libc, а API, предоставляемое ядром, потому что смотри пункт выше. Из этого есть несколько моментальных интересных следствий - например, структуры аллокатора лежат в ядре, и недостижимы для программы, внутри адресного пространства программы - только данные, без структур аллокатора, и их невозможно повредить вредоносной программой. Прощай, heap overflow. Второе интересное следствие - ASAN у меня не отдельный режим компиляции программы, а отдельный режим исполнения, то есть, я могу любую, неинструментированную, программу, запустить в ASAN режиме. * wasm - гарвардская машина. Она не имеет доступа к свому коду, и к своему стеку исполнения. Если взять это свойство, если взять предыдущий пункт, и еще отдельно отметить, что мой AOT работает поверх go runtime, то есть, его таргет - растущий и перемещающийся в памяти стек go, то "прощай, stack overflow, прощай, ROP". (на самом деле, любой СБ тут должен адово перевозбудиться, и начать дергать меня со словами "когда же уже в прод?") * как я уже сказал, сисколлы в моей модели абсолютно бесплатны, поэтому я могу выделить в отдельный процесс (область изоляции) вообще все что угодно, например, целоя ядро Linux, скомпиленное в wasm. Я так и делаю - у меня Linux - это отдельный процесс, который управляет оборудованием. А точнее, несколько процессов Linux, разделенных по подсистемам и конкретным драйверам, чтобы после проезда можно было рестартовать процесс Linux, и работать дальше. Или вот мои FS работают по протоколу FUSE, и не тормозят при этом. Доступна любая FS, для которой есть FUSE драйвер. Думаю, пока хватит.

#pizd0s достиг self host
#pizd0s достиг self host

https://dennisforbes.ca/blog/microblog/2026/10/the_accidental_12000x_sqlite_slowdown/ TL;DR - какой-то растовый крейт для sqlite использует zig cc для кросс-сборки сишного кода. Ранее zig для этого использовал musl, но шаловливые ручки покоя не дают, и они решили написать libc на zig. Нахрена им это нужно - непонятно. Вот, сломали как раз те самые строковые функции, оптимизацией которых я занимаюсь в последнее время: "In the rewrite of strspn, replacing the musl version with the pure zig variant), the first step measures the entire length of the string. This is also seen in the rewrites of strcspn, strpbrk and strstr. This is a problem for tokenizers. A tokenizer takes a giant string and a common iterating step is to skip whitespace, getting the new string location and then repeating this pattern iteratively. With this shlemiel the painter pattern introduced with these rewrites, as it steps through the text it is tokenizing it is remeasuring the remaining length of the string endlessly. This is what caused my performance issue, and it’s why it appeared on Linux but was never seen on my Mac (where zig wasn’t used for compiling sqlite). Tokenizing a 1.2MB file, which was seen passing json to sqlite, is approximately 12,000x slower with this pattern. As the file gets larger, the slowdown is quadratic" Не используйте zig, они там явно слабо отдупляют, что творят!

Инженеры Яндекса (в том числе и ваш покорный слуга немного приложил к этому руку) после атак на дата-центры смогли вернуть доступ к 97,16% клиентских данных в Yandex Cloud. Оставшиеся 2,84% восстановить невозможно из-за критических повреждений оборудования и отсутствия у клиентов бэкапов на платформе.

photo content

Доказательства, между прочим, добежали. Клошадь целую неделю держала мою #lab #home_lab в полочку по CPU, отлаживала и ускоря
Доказательства, между прочим, добежали. Клошадь целую неделю держала мою #lab #home_lab в полочку по CPU, отлаживала и ускоряла доказательства. Я бы сам не справился, все же, мой опыт с #Z3 обычно ограничивается "что-то написал - сработало - класс, зависло на вечность - хз что с этим делать". Последний полный прогон бежал почти сутки, и таки сошелся! В процессе нашли и починили 3 настоящие ошибки, так что все не зря!

https://www.opennet.ru/opennews/art.shtml?num=66658 "... Добавлены правила для AI-ассистентов, в которых указано, что Mesa развивает сообщество людей, поэтому AI-агентам не следует открывать pull-запросы или публиковать комментарии. Для коммитов, отправленных людьми, но созданных с использованием AI, предписано явно указывать тег "Generated-by: LLM" или Assisted-by: LLM". Для драйверов asahi, nouveau, panfrost, imagination, jay, и poly разработчиками введены отдельные ограничения на использование AI ..." asahi - и чому я не удивлен?

В рамках эксперимента один из инженеров Anthropic поручил Fable 5.2 разработать прототип видеоигры. Начав с пустой папки, модель координировала работу более 1000 субагентов, которые восемь дней круглосуточно писали, тестировали и проверяли код. В результате была создана рабочая игра, запускающаяся на ноутбуке, с собственным движком, графикой и звуком, управлением с клавиатуры, сетевым режимом, системой сохранений, игровым интерфейсом, главным меню, установщиком и встроенными функциями Claude (см. видео ниже) https://korovan.ru/ (на самом деле про https://x.com/cgtwts/status/2119921009637900580?a=kIj6JyWWS2BUSS7Mf-s&s=46, но суть не меняется)

Эх, погорел Дженсен на китайских моделях, кто бы мог подумать!

#pizd0s
#pizd0s

Продолжаем тему быстрых строковых функций. https://t.me/itpgchannel/4600 https://t.me/itpgchannel/4615 В коментариях задали два закономерных вопроса: * как ты гарантируешь результат по скорости своими проходами поверх результата компилятора, если компиляторы разные, и результат меняется? * что именно ты доказываешь, и на что может надеяться человек, если он собирается другим компилятором? Я подумал, и решил эту проблему #изящно - отказался от clang/gcc, и заставил клошадь запилить собственный компилятор ровно того подмножества С, что используется в нашем коде. Вот он - https://github.com/pg83/str/tree/main/dev/opt Кстати, изначально запилил две реализации - клодой (opus 5.5 xhigh + fable 5.1 xhigh), и кодексом (sol-6.1 max). Результат кодекса в итоге выкинул, потому что он просто подогнал под результат.

Repost from эйай ньюз
Fable 5.2 @ai_newz
Fable 5.2 @ai_newz

В общем, как выяснилось, все из-за ИИ, да. В августе DHH наехал на Asahi за то, что они не дают контрибутить код от ИИ в проект, после чего форкнул наработки Asahi Linux, и начал их пилить с командой из 15 человек, интегрируя разработки в свой Omarchy Linux. С помощью ИИ DHH быстренько наслопил то, что команда Asahi руками клепала б еще пару лет, что вызвало дикую попоболь у команды Asahi, и попытку огораживания своего кода. Замечу, что про OSS лицензии они не понимают примерно нихера, потому что стирать авторство не разрешает и MIT, а GPL не защищает от AI-переслопливания. В общем, какое-то истеричное поведение на ровном месте, из-за "не поделились деньгами, послали нахер уважаемых людей с их дурацкими правилами про ИИ, аааа". Отдельно доставляет, что "поменяли" лицензию без договоренностей с авторами оригинального кода. Ничего не имею против, новый код идет только под GPL + некоторые части под MIT + GPL, старый под MIT. Сам так сделал с #shitty, но что-то не слышно вскукареков от копилефтоблядей что "ай-ай-ай нельзя так"! https://view.homelab.cam/view/24a3c1f00c9aa7fdb74b4a248385c08aad97c24db4922a2ff7340e1a3d8ec3be/

Меня тут спрашивают, почему я даю такие вызывающие имена своим проектам - #shitty, #pizd0s, типа "никто не будет пользоваться же". Мое отношение к своему open source очень сильно поменялось в последнее время, и лучше всего это видно вот тут - https://t.me/itpgchannel/4275 Раньше для жизнеспособности проекта было нужно, чтобы им пользовались внешние люди. Если пользуются - то, возможно, занесут патч-другой, а потом присоединятся к разработке проекта. Я, кстати, свой блог завел ровно по этой причине - мне хотелось как-то найти помощь для разработки #stal/ix. Сейчас помощь в разработке мне не нужна, ни в stal/ix, ни где-то еще, мне достаточно клошади. Поэтому мой open source мне теперь нужен только для: * личного использования. Я вполне переживу, если моим софтом больше никто не будет пользоваться. * мне интересно про него писать в свой блог. Кстати, это вторая причина, почему я завел блог - мне не хватало общения на излете изоляции от коронавируса. Сейчас мой блог - это мой основной канал общения с внешним миром, и он мне очень нравится, тусовка, сложившаяся в группе блога - лучшая! И, так как теперь нет необходимости подстраиваться под чужие представления о прекрасном, то я называю проекты так, как того требует моя панковская душа! ("панки со счетами в банке", ага)

Если бы Claude существовал в 1998 году 😁

Вот вы тут сидите, а коллеги портировали целый Doom под #pizd0s! https://github.com/Rulexec/pizdos/tree/doom-poc Да, оно уже может запустить целый Doom! #pizd00m

https://jepsen.io/analyses/particledb-1.1.4 TL;DR - случилось страшное! У кого-то: * нашлись деньги наслопить базу данных * нашлись деньги, чтобы Jepsen посмотрел на их творчество! Способностей произвести годный продукт у них не нашлось. Ну и он их и разъебал! Еще в копилочку того, что #LLM - мультиплицируют, а не прибавляют, сколько денег ты в них не вбухивай.

photo content