1.83K subscribers
3.3K photos
132 videos
15 files
3.58K links
Блог со звёздочкой.

Много репостов, немножко программирования.

Небольшое прикольное комьюнити: @decltype_chat_ptr_t
Автор: @insert_reference_here
Download Telegram
Наконец-то

#трудовыебудни
🎉11😱3👍2😁1
Четверг, а значит время проектов от подписчиков! 🌝

Тем, кто пропустил, что такое четверговые проекты от подписчиков, можно прочитать тут - https://t.iss.one/tech_b0lt_Genona/4983

Слово автору @viqxq

---

Всем привет.

Меня зовут Ви, и я делаю свою операционную систему — Amadeus (https://t.iss.one/amadeus_eco_tg). Я активно пишу про это в своём канале.

Моя ОС — это не очередной дистрибутив Linux. Это попытка сделать нечто принципиально новое, чего раньше никто не делал в рамках проекта одного человека:

* Своя архитектура с нуля. Ядро Amadeus — это не монолит и не микроядро в классическом понимании. Это гибридная система, где все компоненты (включая драйверы) общаются через сверхбыстрый IPC на общей памяти, что сводит к минимуму накладные расходы и переключения контекста. Системные вызовы как устаревшая концепция — отправлены в отставку.

* Бинарная совместимость без компромиссов. Я не хочу заставлять мир переписывать софт под себя. Поэтому в Amadeus можно будет запускать нативные приложения Linux и Windows через механизм «вложенных ядер» (nested kernels). Ядро эмулирует API чужой ОС, но преобразует его в свой высокопроизводительный IPC. Цель — работать быстрее, чем Wine и быстрее нативного Linux в некоторых сценариях.

* Написана полностью на Rust. Это не просто модно. Это даёт беспрецедентную надежность для системы такого уровня. Безопасность памяти на уровне компилятора + полный контроль над железом — вот наш девиз.

* Драйверы? Не проблема. Я разработал инструмент для автоматического портирования драйверов из ядра Linux в нативную среду Amadeus. Это решает главную проблему всех новых ОС — поддержку железа.

* Безопасность и изоляция. Падение любого драйвера или сервиса не уронит всю систему. Они работают в изолированных пространствах пользователя. Никаких SUID-бинарей. Современная модель прав доступа, а не устаревшая UNIX-модель.

* Производительность как религия. Вся архитектура заточена под скорость: zero-copy IPC, акцент на асинхронность, собственные легковесные реализации libc и системных библиотек.

Зачем мне это всё?

* Хочется иметь «правильно» устроенную ОС. Без груза обратной совместимости, с современными решениями под капотом.
* Это вызов. Доказать, что один человек с упорством и правильным подходом может бросить вызов индустриальным гигантам.
* Создать платформу для будущего. Amadeus — это не просто ядро. Это мета-платформа, на основе которой можно будет создавать другие ОС с совместимостью нужной вам экосистемы.

Зачем мне этот анонс?

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

Проект уже работает на реальном железе, загружается через bootboot, и сейчас идёт активная фаза разработки базовых подсистем.

Присоединяйтесь! Ваша помощь в портировании софта, тестировании, документации или просто распространении информации бесценна.

Канал с новостями: https://t.iss.one/amadeus_eco_tg

Давайте вместе строить ОС будущего.

---
👍11🤡42💩2🖕1
😁24🔥41😱1
Forwarded from Neural Machine
Однажды я буду свободен от друзей, заставляющих выпить.
😢6❤‍🔥1
#prog #rust #itsec

crates.io: Malicious crates faster_log and async_println

The users in question were immediately disabled, and the crates in question were deleted from crates.io shortly after. We have retained copies of all logs associated with the users and the malicious crate files for further analysis.

The deletion was performed at 15:34 UTC on September 24, 2025.
Forwarded from Random Rust Dev
Вчера мне открыли issue на egui-probe, я прочитал сегодня вечером, добавил нужную фичу и выпустил релизнул патч в течение нескольких часов.

И вы обращайтесь =^_^=
👍1
> лоток для дайсов
👍8
😁23🌚11👍21👌1
#prog #rust #rustreleasenotes

Вышла версия Rust 1.90.0!.. Больше недели назад. В свою защиту могу сказать, что в этой версии заметных для большинства пользователей изменений в языке и нету.

Как всегда, тут только избранные части, всё остальное в детальных заметках о релизе.

▪️Как и было обещано, для таргета x86_64-unknown-linux-gnu теперь по умолчанию используется более быстрый линкер lld.

▪️В качестве расширения к методам, добавленным в Rust 1.66.0, добавили методы uX::*_sub_signed (wrapping, checked, overflowing и saturating варианты) для корректного вычитания чисел с разной знаковостью.

▪️CString, CStr и Cow<CStr> теперь можно сравнивать на равенство между собой. Нет, PartialOrd между ними не реализован. Нет, я не знаю, почему.

▪️Старый PR докатился до стейбла: в const-контексте наконец можно вызывать reverse на слайсах. Также теперь там можно вызывать на числах с плавающей точкой различные методы для округления и fract для извлечения дробной части.

▪️Реализацию Default для iter::Fuse привели в соответствие с документацией: теперь default создаёт Fuse, оборачивающий значение по умолчанию внутреннего итератора, вместо создания всегда пустого итератора.

▪️Реализации io::Write для TcpStream и UnixStream теперь на Linux пишут данные с флагом MSG_NOSIGNAL. Это означает, что запись в померший нижележащий сокет теперь возвращает EPIPE — или, в терминах Rust, io::Error, у которого kind() возвращает ErrorKind::BrokenPipe. Данное изменение делает поведение консистентным с тем, как сокеты ведут себя в других местах в std.

▪️Компилятор теперь не даёт скомпилировать код, который упоминает ABI, неподдерживаемый на целевой платформе.
👍41
#prog #web #article

You no longer need JavaScript

Демонстрация того, что можно сделать исключительно при помощи CSS. Включая виджет для выбора цвета (в статье). И включая целую игру-кликер.
🥴4🔥2
#prog #article

Towards Alias-Free Pointers (PDF)

Папир из 1995 года, про который я узнал из презентации Rust: Correctness at Large, Correctness in Motion. Уже тогда была база для основы Rust! Сама статья не столь ясна, как могла бы быть, поскольку демонстрирует примеры на основе модифицированной версии Eiffel.

In this paper we argue that pointer-induced aliasing is largely a self inflicted wound, caused by the almost universal practice in programming to transfer information by copy. As a remedy for this defect we intro duce a concept unshareable objects, and the companion concept of unique pointers, which can be moved from one place to another, but which cannot be copied. We argue that unshareable objects can be employed conveniently in many, if not most, situations where dynamic objects are being used, and without incurring their pitfalls. And we show that it takes no more than minor, and virtually costless, modifications to a typical imperative programming language to support such objects.

И ещё, как отмечает автор:
Another natural application of u-objects [unshareable objects — прим. моё] is discussed in [8], where we show how such objects can be used to implement tokens — objects that, like the capabilities of operating systems, represent certain authority. Such unshareable tokens can be utilized, in particular, for the control of sharing in software systems such as object-oriented databases.

И подобный подход действительно применяется в программах на Rust, самый наглядный пример — MutexGuard.
Перебой — overbattle
🤣4🤡2
#prog #rust #article

From Rust to Reality: The Hidden Journey of fetch_max

Why would Rust provide fetch_max as a built-in intrinsic? Intrinsics usually exist to leverage specific hardware instructions. But x86-64 doesn't have an atomic max instruction. So there had to be a CAS loop somewhere in the pipeline.

<...>

So I started digging. What I found was a fascinating journey through five distinct layers of compiler transformations, each one peeling back another level of abstraction, until I found exactly where that loop materialized. Let me share what I discovered.
2
Почему у либералов такие плоские шутки?

Потому что у них на графиках нет оси Z

(#politota, не моё)
😁11💩8👍2