Допомога ЗСУ https://www.sternenkofund.org/donate 🫶🏻Фонд @sternenkofund ❗️Нікому не пишу, не прошу гроші, поповнити рахунок чи щось купити. Усі збори на армію публічні. Російська мова у коментах заборонена.
Офіційний канал Батальйону Безпілотних Систем Небесна Кара, 54 ОМБр Наше гасло: "Зло - має бути покарано! Ворог - має бути знищений!" Приєднуйтесь до нас, підримуйте нас! Більше донатів - більше контенту! Дякуємо! Зворотній зв'язок: [email protected]
Підписуйся на канал Frontend Shinobi, щоб отримувати найсвіжіші техніки, поради та інструменти для веб-розробників. Хочеш бути в тренді? Хочеш створювати стильні сайти та веб-додатки? Тоді тобі точно сюди!
Кнопка-мультитул SysRq: що таке і чим може бути корисноюСпочатку ця кнопка була впроваджена IBM для виклику низькорівневих операцій ОС без ризику конфлікту з існуючими програмами. Якщо поговорити конкретно про UNIX-подібні системи (як Linux), то клавіша SysRq - це єдиний спосіб безпосередньо звʼязатися з ядром, минаючи графічні оболонки, ініт системи (systemd, openrc, тощо) та юзерські процеси. Чим це може бути корисним? Якщо система повністю зависла, то Alt + SysRq + REISUB зможе безпечно перезавантажити систему, або якщо є зависнуті процеси і kill взагалі не допомагає, то Alt + SysRq + I вбʼє всі процеси, окрім ініт системи. (на деяких клавіатурах SysRq знаходиться на кнопці PrtScr). Щоб зрозуміти, чи увімкнена ця кнопка та які команди дозволені, введіть команду cat /proc/sys/kernel/sysrq. Може вивести різні числа, що означають, які функції дозволені (детальніше з описом кожного числа можете ознайомитися тут), але щоб увімкнути весь функціонал кнопки, у /etc/sysctl.d/99-sysrq.conf вставте kernel.sysrq = 1, та після збереження введіть sudo sysctl --system.До речі, SysRq можна визивати через термінал командою: echo <БУКВА> | sudo tee /proc/sysrq-triggerДетальніше ознайомитися з усім переліком існуючих команд можете тут: https://docs.kernel.org/admin-guide/sysrq.html#what-are-the-command-keys
The front 9 fell off [2/2]Це елегантно поєднується з іншою ідеєю Plan 9: протоколом 9P. Усі файлові операції у системі використовують протокол 9P, який визначає такі операції, як читання та запис. Цей протокол мережево прозорий: ви можете монтувати віддалені сервери у свою файлову ієрархію та працювати з їхніми файлами через 9P. На Unix можна зробити щось подібне, але в Plan 9 ця концепція знаходить набагато ширше застосування, бо тут усе дійсно є файлами.Наприклад у вас дома є клієнт, за яким працюєте ви, та окремий сервер. Якщо у вашого клієнта нема аудіовиходу, ви можете замонтувати аудіовихід вашего серверу у вашу файлову систему. Плеєр навіть не знатиме, що він грає музику через мережу.Також треба згадати неймспейси. У plan9 кожний прцоес бачить файлову ієрархію по-своєму. Тому монтування не потребує спеціальних привелегії, як в unix. Користувацькі програми також можуть реалізувати файлові системи, сумісні з тими, які зазвичай реалізуються драйверами ядра, наприклад /net/ether0, і надавати їх процесам у своїх просторах. Наприклад, /dev/draw є аналогом framebuffer-пристрою: ви відкриваєте його, щоб писати пікселі на екран. Віконний менеджер Rio реалізує інтерфейс /dev/draw у користувацькому просторі, а потім монтує його у файлову ієрархію своїх дочірніх процесів. Таким чином, будь-які графічні програми можуть працювати як у звичайному framebuffer, так і у вікні, не знаючи про різницю.Ці ідеї також дозволяють побудувати механізм схожий на контейнери - задовго до появи BSD jails і значно ефективніше реалізований. Згадайте, що в Plan 9 усе - буквально файли. Доступ до обладнання надається через звичайні файли, а пер-процесні namespace не потребують привілегії для зміни монтувань. Створити контейнер дуже просто: відмонтуйте все обладнання, до якого програма не повинна мати доступ. Готово. І не потрібно бути root. Хочете пробросити TCP-порт? Напишіть обмежений варіант /net/tcp, який дає доступ лише до потрібних портів. Усе це можна зробити просто shell-скриптом.Оригінальний Plan 9 від Bell Labs більше не підтримується, але спільнота зберегла його спадщину через кілька форків, серед яких найбільш активним і життєздатним є 9front. У цьому форку розробники серйозно попрацювали над підтримкою сучасного обладнання, а також значно покращили драйвери, інструменти та документацію.Попри всі свої переваги, Plan 9 навряд чи підходить як основна операційна система. Спільнота дуже невелика, сучасного софту практично немає, навіть веббраузера з підтримкою JS не існує. Проте саме ці особливості роблять її однією з найкращих платформ для дослідників: мінімалізм, прозорість архітектури та чистота ідей дозволяють глибоко вивчати принципи взаємодії компонентів ОС і експериментувати з дизайном системного програмного забезпечення на рівні, недосяжному для традиційних Unix-подібних систем.
Пам'ятаєте, як в Ubuntu замінили GNU Coreutils на uutils? uutils призвів до порушення роботи скрипта для перевірки наявності оновлень.Серед іншого, виявився непрацездатним механізм автоматичної установки оновлень з усуненням вразливостей, що застосовується в Ubuntu Desktop і Ubuntu Server, а також в конфігураціях для хмарних систем і контейнерів.Проблема виникла через утиліту date, в якій не була реалізована опція -r, що виводить час зміни заданого файлу. Вказання даної опції в date приймалося парсером, але логіка обробки опції була відсутня, тому замість часу останньої зміни файлу завжди повертався поточний час. Команда date -r використовувалася в скрипті apt.systemd.daily, що запускався щодня, для визначення часу модифікації файлу /var/lib/apt/periodic/upgrade-stamp, який використовувався для обчислення часу останньої інсталяції оновлень. Оскільки виклик date -r не призводив до виведення помилки і повертав поточний час, скрипт завжди вважав, що в системі встановлені найсвіжіші оновлення.Хочу зазначити, що клон date проходить тільки 2 з 8 тестів - це 75% відмов, а деякі інші клони показують ще гірші результати.
Вийшов OpenBSD 7.8 - нові можливості на ARM64, посилена безпека і точність ядра до наносекунд OpenBSD - це UNIX-подібна система, заснована Тео де Раадтом після конфлікту з розробниками з NetBSD. Після того, як йому закрили доступ до репозиторію NetBSD, він зібрався з однодумцями і зробив з вихідного коду NetBSD абсолютно нову ОС, головною метою якої є бути переносимою, стандартизованою і безпечною.У новому релізі було змінено досить багато, тому я зупинюся на найважливішому:- У порту для архітектури ARM64 додано підтримку плат Raspberry Pi 5, реалізовано драйвер acpicpu, забезпечено роботу apm (Advanced Power Management) і sysctl hw.cpuspeed на пристроях з Qualcomm Snapdragon X Elite. - Реалізовано підтримку прапора FD_CLOFORK (close-on-fork) для закриття файлового дескриптора для дочірніх процесів після виклику функції fork(). У порівнянні з іншими реалізаціями, було забезпечено скидання даного прапора після виклику функції exec() з міркувань безпеки та зручності. - Ядро переведено на використання наносекунд замість тиків таймера при виконанні функції sleep(), що дозволяє уникнути втрати точності через перетворення з наносекунд в тики і назад при ініціюванні операцій з бібліотечних функцій в просторі користувача.- Забезпечено попереднє виділення робочої області для сплячого режиму під час завантаження, а також додано можливість використання режиму очікування при підключенні пристроїв через GPIO.- Реалізовано підтримку роботи у віртуальних машинах kvm/qemu при використанні для захисту гостьової системи розширення AMD SEV-ES (Encrypted State).- Підвищена сумісність з файловими системами на базі механізму FUSE (Filesystem in Userspace), в реалізації яких використовується бібліотека libfuse. - Реалізація фреймворка DRM синхронізована з ядром Linux 6.12.50- У драйвер web-камер uvideo додано підтримку кодека H.264.
Після двох місяців розробки Лінус Торвальдс представив реліз Linux 6.17 У нову версію прийнято 14334 виправлень від 2118 розробників, а розмір патча - 46 МБ (зміни торкнулися 12841 файлів, додано 646654 рядків коду, видалено 398782 рядків). У нову версію ядра увійшло дуже багато змін, тому я розповім про найважливіші з них: - У Btrfs додано експериментальну підтримку великих фоліантів сторінок пам'яті, що дозволяють знизити накладні витрати і підвищити продуктивність ФС.- На системах з архітектурою ARM64 реалізована підтримка Live-патчів, що дозволяють застосовувати виправлення у Linux на льоту, без перезавантаження і зупинки системи. - Додана можливість увімкнення захисту від вразливостей у ЦП через вибір векторів атаки, що блокуються, замість вказання в налаштуваннях конкретних вразливостей.- Додано підтримку збірки компілятором Clang з увімкненням режиму відстеження глибини стека, при якому виконується ініціалізація всіх змінних, що зберігаються в стеку.- Додано захист від підміни атакуючим файлової системи /proc через монтування в режимі "bind".- У механізм SCHED_EXT, що дозволяє використовувати BPF для створення планувальників ЦП, додана можливість керування навантаження через cgroup.
П'ятниця, а значить час проєктів від підписників!Для тих, хто не в курсі - щоп'ятниці я ділюся проєктами від підписників. Детальніше тут: https://t.me/linux_ukraine/1487Ніхто не прийшов до мене в ЛС з проєктом, тому зі своїм проектом прийду до вас у стрічку я.🌞—Підписникам привіт!Хочу розповісти про свій маленький, але досить цікавий і прикольний проєкт, який я постійно використовую, суть якого полягає в блокуванні екрану root-паролем для X11-сесій (а може навіть Wayland, треба перевірити). Надихнувся i3lock і slock та вирішив розробити свою версію блокувальника з однієї причини:- i3lock був написаний на xcb, який я терпіти не можу, а у slock (як і у всіх suckless проєктів) дуже брудна кодова база, підтримувати яку дуже незручно.Кодова база TXLock побудована на бібліотеці XLib - для реалізації GUI і взаємодії в оточенні, разом з Shadow і Crypt - для перевірки введеного root-пароля.На даний момент підрахунок IDLE залежить від сторонніх програм (наприклад, xautolock -time 5 -locker txlock), але в найближчому майбутньому я вирішу цю "проблему" додаванням в кодову базу функції підрахунку IDLE. Вага програми близько 17.5 кілобайт, в порівнянні з 19 кілобайт у slock і 51 кілобайт у i3lock.https://github.com/rendick/txlock/
Представлено Multikernel - механізм для одночасного виконання декількох ядер LinuxMultikernel дозволяє на одному фізичному комп'ютері виконувати кілька екземплярів ядра Linux, які мають прямий доступ до апаратних ресурсів і можуть використовуватися для запуску декількох ізольованих системних середовищ.Для запуску та керування ядрами запропоновано вдосконалений виклик kexec, який на відміну від класичного kexec не обмежується заміною працюючого ядра і дозволяє запускати додаткові екземпляри ядра, що виконуються паралельно. Для моніторингу та налагодження запущених екземплярів ядра реалізовано інтерфейс /proc/multikernel, а для обміну повідомленнями між ядрами та координації роботи запропоновано фреймворк Multikernel IPI.З основних переваг Multikernel можу відмітити:- Покращену ізоляцію від збоїв під час роботи.- Підвищену безпеку за рахунок поділу на рівні ядра.- Більш ефективне використання ресурсів у порівнянні з традиційними віртуальними машинами на базі гіпервізорів, таких як KVM і Xen.- Потенційна можливість оновлення ядра без зупинки роботи при використанні механізму Kernel Hand Over.- Підтримка інтеграції зі стандартними хмарними інфраструктурами і можливість прозорого переходу з традиційних систем віртуалізації і контейнерної ізоляції.- Повна сумісність з існуючими програмами і системними інтерфейсами Linux. Multikernel лише частково змінює ядро, зберігаючи повну сумісність на рівні API.
Розпочато виробництво Linux-телефону FLX1sДистрибутив, що використовує смартфон, побудований на пакетній базі Debian 13 і оснащений оболонкою Phosh, заснованою на GNOME і GTK. Для забезпечення конфіденційності пристрій оснащений трьома перемикачами, що дозволяють відключити камеру, мікрофон і GPS + модуль Baseband. Всі дані залишаються на пристрої користувача і не синхронізуються з хмарою.Підтримується запуск Android-застосунків, що працюють в ізольованому контейнері, які безшовно інтегруються в систему, як дефолтні програми.І, звичайно, технічні характеристики: 1. Чіпсет: Dimensity 900 (2 ядра Cortex-A78 2.4Ghz + 6 ядер Cortex A55 2.0Ghz), GPU Mali G68 MC4;2. Памʼять: 8 ГБ ОЗУ, 128 ГБ + MicroSD; 3. Екран: 6,7", 1600*720, 90 Гц; 4. Камери: 20 МП + 2 МП (макро), фронтальна 13 МП; 5. Акумулятор: 5000 мАг; 6. 2G-5G, Dual SIM, WiFi 6, Bluetooth 5.2, LE; 7. Габарити: 170*76*8 мм, 201 грам. Пристрій доступний для попереднього замовлення за ціною 550 доларів, а перша партія буде випущена 25 жовтня.
Розроблено нову схему атак на чіпи DDR5, що призводить до спотворення вмісту пам'ятіДослідники зі Швейцарської вищої технічної школи Цюріха спільно з інженерами Google розробили нову техніку атаки класу Rowhammer - Phoenix (CVE-2025-6202), що дозволяє обійти механізм захисту TRR (Target Row Refresh) в чіпах DDR5, що запобігає спотворенню комірок пам'яті через втрату заряду.Оскільки пам'ять DRAM - це двовимірний масив комірок з конденсаторів і транзисторів, виконання безперервного читання колишньої області пам'яті призводить до флуктуації напруги і аномалій, що викликають невелику втрату заряду сусідніх комірок. При великій інтенсивності читання сусідня комірка може втратити великий обсяг заряду і черговий цикл регенерації не встигне відновити її первісний стан, що призведе до зміни значення даних.Ключ для обходу захисту DRAM - розуміння логіки роботи механізму TRR, заснованого на "безпеці через неясность". Для проведення реверс-інжинірингу дослідники використовували плати на базі FGPA Arty-A7 і ZCU104 для: тестування модулів DDR5-SO-DIMM/RDIMM, виявлення шаблонів звернення до пам'яті, відстежування низькорівневих DDR-команд після програмних операцій з пам'яттю і аналізування реакцій на них.
Після шести місяців розробки випущено середовище робочого столу GNOME 49 Для оцінки можливостей GNOME 49 запропоновано Live-збірки та інсталяційний образ, підготовлений в рамках ініціативи GNOME OS.Крім різних другорядних поліпшень, я хочу відзначити основні нововведеня:- З'явилася можливість додавання додаткових віртуальних моніторів до сеансу віддаленого доступу до GNOME для відтворення багатомоніторних конфігурацій, навіть якщо на вихідній системі відсутні додаткові реальні монітори.- Посилено залежність від systemd: у GDM задіяно інфраструктуру userdb та видалено реалізацію власного менеджера служб у gnome-session, як запасний обробник для запуску служб GNOME в середовищах без systemd. - Підтримка X11 за замовчуванням вимкнена в gnome-session, mutter і gnome-shell, але за бажанням її можна повернути на етапі збірки.- Проведено оптимізацію продуктивності менеджера програм GNOME Software, що прискорило роботу з flatpak-каталогами, такими як Flathub.- У веб-браузері Epiphany розширено засоби блокування реклами з можливістю підключення регіональних списків блокування.- У композитному сервері Mutter покращено керування кольором і підтримку HDR.- Увімкнено sandbox-ізоляцію завантаження зображень у GTK-застосунках.