Linux не станет свалкой AI-кода
Линус Торвальдс довольно ясно обозначил позицию: Linux не собираются превращать в мусорку для кода, который сгенерировали ИИ-инструменты и толком не проверили.
После долгих споров в сообществе появились официальные правила по использованию GitHub Copilot, Claude и других помощников при разработке ядра.
пользоваться ИИ можно. Протаскивать slop - нельзя.
Главная фраза всей истории: «За ошибки отвечают люди».
Хочешь писать с Copilot - пиши. Хочешь просить Claude помочь с патчем - проси. Но если код попадает в Linux kernel, ответственность лежит не на модели, не на тулзе и не на «оно само так сгенерировало».
Ответственность на тебе.
Ты проверяешь код. Ты исправляешь ошибки. Ты доказываешь, что патч соответствует стандартам ядра. Ты отвечаешь за последствия.
И это, пожалуй, самая взрослая позиция open source-сообщества по отношению к ИИ.
Linux строили больше 30 лет. Его не будут ломать ради экономии 20 минут на написании кода.
Линус Торвальдс довольно ясно обозначил позицию: Linux не собираются превращать в мусорку для кода, который сгенерировали ИИ-инструменты и толком не проверили.
После долгих споров в сообществе появились официальные правила по использованию GitHub Copilot, Claude и других помощников при разработке ядра.
пользоваться ИИ можно. Протаскивать slop - нельзя.
Главная фраза всей истории: «За ошибки отвечают люди».
Хочешь писать с Copilot - пиши. Хочешь просить Claude помочь с патчем - проси. Но если код попадает в Linux kernel, ответственность лежит не на модели, не на тулзе и не на «оно само так сгенерировало».
Ответственность на тебе.
Ты проверяешь код. Ты исправляешь ошибки. Ты доказываешь, что патч соответствует стандартам ядра. Ты отвечаешь за последствия.
И это, пожалуй, самая взрослая позиция open source-сообщества по отношению к ИИ.
Linux строили больше 30 лет. Его не будут ломать ради экономии 20 минут на написании кода.
❤77👍49🔥30💯9
🐧 Быстрый Linux совет
Место на Диске снова «внезапно» закончилось? Начни с этой команды:
Она показывает 10 самых больших директорий в корне системы: считает размер папок первого уровня, сортирует их от самой тяжелой к самой легкой и оставляет только топ.
На продакшн-серверах чаще всего раздуваются
Одна команда - и уже понятно, где копать.
Место на Диске снова «внезапно» закончилось? Начни с этой команды:
`du -h / --max-depth=1 2>/dev/null | sort -rh | head -10`Она показывает 10 самых больших директорий в корне системы: считает размер папок первого уровня, сортирует их от самой тяжелой к самой легкой и оставляет только топ.
2>/dev/null просто скрывает ошибки доступа, чтобы вывод не превращался в кашу из permission denied.На продакшн-серверах чаще всего раздуваются
/var/log, /var/lib/docker, кэши пакетных менеджеров и временные файлы. Поэтому если место исчезло без причины, сначала смотри туда.Одна команда - и уже понятно, где копать.
👍28❤8🔥6
Представьте: через три месяца вы открываете чужой Rust-код и читаете его как книгу.
Arc<Mutex<T>> не вызывает панику. impl Future не пугает. Вы точно знаете, почему компилятор ругается и как это починить за 10 секунд.
Это не фантазия. Это результат 50 уроков, в которых каждая концепция объясняется через код и закрепляется практикой.
Ownership, traits, generics, async, unsafe - всё, что казалось магией, станет рабочим инструментом.А бонусом - портфолио проектов: от CLI-утилит до REST API и WebAssembly.
Вы и так знаете, что Rust - ваш следующий язык. Этот курс просто сделает это реальностью.
Сегодня - 55% процентов от цены, торопись: https://stepik.org/a/269250/
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍3🤣3🔥2👾1
Пересмотр решения о создании редакции Fedora AI Developer Desktop
Управляющий совет проекта Fedora (Fedora Council) отозвал ранее принятое решение о создании Fedora AI Developer Desktop - официальной редакции дистрибутива для разработчиков, использующих AI-инструменты. Изначально все 6 членов управляющего совета проголосовали за создание проекта, но после ознакомления с критикой, высказанной в ходе обсуждения в сообществе, через несколько дней два участника изменили свои голоса и высказались против. Так как единогласия не достигнуто, утверждение решения отложено. Вопрос планируют решить до проведения конференции Flock 2026, которая пройдёт с 14 по 16 июня.
Подробнее:
https://opennet.ru/65454/
https://opennet.me/65454/
Управляющий совет проекта Fedora (Fedora Council) отозвал ранее принятое решение о создании Fedora AI Developer Desktop - официальной редакции дистрибутива для разработчиков, использующих AI-инструменты. Изначально все 6 членов управляющего совета проголосовали за создание проекта, но после ознакомления с критикой, высказанной в ходе обсуждения в сообществе, через несколько дней два участника изменили свои голоса и высказались против. Так как единогласия не достигнуто, утверждение решения отложено. Вопрос планируют решить до проведения конференции Flock 2026, которая пройдёт с 14 по 16 июня.
Подробнее:
https://opennet.ru/65454/
https://opennet.me/65454/
❤10👍5🔥4
📁🧹 Умный файловый организатор для терминала
File Organizer — это современный инструмент CLI для автоматической организации файлов в папках. С интуитивно понятным интерфейсом TUI, он поддерживает более 170 форматов файлов, обеспечивает дублирование и интеллектуальную категоризацию.
🚀Основные моменты:
- Автоматическая категоризация по типу файлов
- Интерактивный TUI с живым предварительным просмотром
- Режим "сухого запуска" для безопасного тестирования
- Поддержка JSON для гибкой настройки правил
- Обнаружение дубликатов с реальным временем прогресса
📌 GitHub: https://github.com/SaschaKohler/file-organizer
#cpp
File Organizer — это современный инструмент CLI для автоматической организации файлов в папках. С интуитивно понятным интерфейсом TUI, он поддерживает более 170 форматов файлов, обеспечивает дублирование и интеллектуальную категоризацию.
🚀Основные моменты:
- Автоматическая категоризация по типу файлов
- Интерактивный TUI с живым предварительным просмотром
- Режим "сухого запуска" для безопасного тестирования
- Поддержка JSON для гибкой настройки правил
- Обнаружение дубликатов с реальным временем прогресса
📌 GitHub: https://github.com/SaschaKohler/file-organizer
#cpp
❤13👍3🤝2🔥1💅1
Linux умеет запускать программы в почти контейнерной изоляции вообще без Docker.
За это отвечает `
Команда создает для процесса отдельные namespace: свой список процессов, свой mount-view, hostname, IPC, network и user namespace. В итоге программа видит не всю систему, а только ограниченный «кусок» окружения.
Пример:
Внутри новой shell можно выполнить:
И вместо сотен процессов увидеть почти пустую систему: bash с PID 1 и сам ps.
Это не Docker, не container runtime и не магия. Это базовый механизм ядра Linux, на котором контейнеры во многом и построены.
Полезно знать, если хотите понимать контейнеры не как «черный ящик», а на уровне того, что реально делает kernel.
За это отвечает `
unshare`.Команда создает для процесса отдельные namespace: свой список процессов, свой mount-view, hostname, IPC, network и user namespace. В итоге программа видит не всю систему, а только ограниченный «кусок» окружения.
Пример:
sudo unshare --pid --fork --mount --uts --ipc --net --user --map-root-user --mount-proc bash
Внутри новой shell можно выполнить:
ps aux
И вместо сотен процессов увидеть почти пустую систему: bash с PID 1 и сам ps.
Это не Docker, не container runtime и не магия. Это базовый механизм ядра Linux, на котором контейнеры во многом и построены.
Полезно знать, если хотите понимать контейнеры не как «черный ящик», а на уровне того, что реально делает kernel.
👍38🔥12❤9
На UNIX
И из-за этого можно поймать очень неприятный эффект: если закрыть
То есть код вроде этого:
Может записать printf не в терминал, а прямо в output.txt.
Потому что система обычно выдаёт минимальный свободный файловый дескриптор. Закрыл 1 - значит он снова свободен. Открыл файл - он может стать новым stdout.
Мелочь, но именно из таких мелочей и состоит настоящее понимание UNIX.
stdout - это просто файловый дескриптор 1.И из-за этого можно поймать очень неприятный эффект: если закрыть
stdout, следующий открытый файл может получить тот же дескриптор 1.То есть код вроде этого:
close(1);
FILE *f = fopen("output.txt", "w");
printf("hello\n");
Может записать printf не в терминал, а прямо в output.txt.
Потому что система обычно выдаёт минимальный свободный файловый дескриптор. Закрыл 1 - значит он снова свободен. Открыл файл - он может стать новым stdout.
Мелочь, но именно из таких мелочей и состоит настоящее понимание UNIX.
❤13👍7🗿4🔥2
Ты читал десять статей про XSS и до сих пор не знаешь, почему один сайт ломается через <img onerror>, а другой нет.
Ты прошёл три курса по «основам безопасности» и не сможешь сейчас провести нмап своей сетки.
Ты решал CTF, но если спросят «как работает Kerberos», ты залипнешь.
Проблема не в тебе. Проблема в том, что безопасность преподают как теорию.
Этот курс делает наоборот. С первого урока ты ломаешь, чинишь, поднимаешь стенды, читаешь HTTP-сырьём, собираешь ROP-цепочки руками. SQLi, XSS, CSRF, SSRF, IDOR, обход аутентификации, переполнение буфера, атаки на AD, побег из K8s-пода, реверс мобильных приложений, сборка собственного C2.
20 блоков, реальные задания с кодом, финальный пентест с отчётом для портфолио. С нуля. До Pro.
Начать Учиться: https://stepik.org/a/279968/
Ты прошёл три курса по «основам безопасности» и не сможешь сейчас провести нмап своей сетки.
Ты решал CTF, но если спросят «как работает Kerberos», ты залипнешь.
Проблема не в тебе. Проблема в том, что безопасность преподают как теорию.
Этот курс делает наоборот. С первого урока ты ломаешь, чинишь, поднимаешь стенды, читаешь HTTP-сырьём, собираешь ROP-цепочки руками. SQLi, XSS, CSRF, SSRF, IDOR, обход аутентификации, переполнение буфера, атаки на AD, побег из K8s-пода, реверс мобильных приложений, сборка собственного C2.
20 блоков, реальные задания с кодом, финальный пентест с отчётом для портфолио. С нуля. До Pro.
Начать Учиться: https://stepik.org/a/279968/
❤9🔥5👍2
Linux Совет: почему память занята, хотя
Если на сервере «куда-то пропала память», не всегда виновато приложение.
Часть RAM может сидеть в kernel slab cache - это память, которую ядро использует под свои внутренние объекты: dentries, inodes, сетевые буферы, структуры файловой системы и другие аллокации ядра.
Проверить это можно командой:
Она показывает live-картину slab-памяти:
• какие kernel objects занимают больше всего RAM
• сколько объектов активно
• сколько памяти уходит на dentries и inodes
не растёт ли filesystem cache слишком агрессивно
нет ли признаков kernel memory leak
Это очень полезно в проде, когда free -h показывает, что память вроде бы доступна, но система ведёт себя странно.
Типовые случаи, где помогает slabtop:
внезапный рост inode cache
слишком много dentries после работы с миллионами файлов
утечки в kernel modules
• сетевые буферы съедают память
• файловый кэш выглядит нормально, но slab раздувается
Большинство админов при memory debugging смотрят только top, free, htop и процессы.
А иногда главный потребитель памяти вообще не userspace.
Он внутри ядра.
free говорит, что RAM ещё естьЕсли на сервере «куда-то пропала память», не всегда виновато приложение.
Часть RAM может сидеть в kernel slab cache - это память, которую ядро использует под свои внутренние объекты: dentries, inodes, сетевые буферы, структуры файловой системы и другие аллокации ядра.
Проверить это можно командой:
slabtop
Она показывает live-картину slab-памяти:
• какие kernel objects занимают больше всего RAM
• сколько объектов активно
• сколько памяти уходит на dentries и inodes
не растёт ли filesystem cache слишком агрессивно
нет ли признаков kernel memory leak
Это очень полезно в проде, когда free -h показывает, что память вроде бы доступна, но система ведёт себя странно.
Типовые случаи, где помогает slabtop:
внезапный рост inode cache
слишком много dentries после работы с миллионами файлов
утечки в kernel modules
• сетевые буферы съедают память
• файловый кэш выглядит нормально, но slab раздувается
Большинство админов при memory debugging смотрят только top, free, htop и процессы.
А иногда главный потребитель памяти вообще не userspace.
Он внутри ядра.
❤12👍3😍1🐳1
⚡️ 1Password поднял цену индивидуального плана до $47,88 в год.
LastPass Premium стоит $36 в год.
Dashlane Premium - $59,88 в год.
И все это за одну базовую задачу: хранить строки текста в зашифрованном хранилище.
На этом фоне KeePassXC выглядит почти как антидот.
Это open-source парольный менеджер, который не требует аккаунта, подписки и доверия к очередному облачному сервису. Ваши пароли хранятся в одном .kdbx файле, который контролируете вы сами.
Что внутри:
- AES-256
- Argon2
- автозаполнение в браузерах
- TOTP/HOTP коды
- поддержка YubiKey и OnlyKey
- passkeys
- SSH agent для разработчиков
- Windows, macOS, Linux и BSD
- синхронизация через Dropbox, OneDrive, Nextcloud, Syncthing, флешку или что угодно
Главная магия в простоте: база паролей - это просто файл.
Если ваш облачный диск взломают, злоумышленник получит не список паролей, а зашифрованный blob. Мастер-пароль не уходит с вашего устройства.
KeePassXC развивается с 2016 года, имеет почти 27 тысяч звезд на GitHub, сотни контрибьюторов и полностью открытую GPLv2-лицензию.
На фоне индустрии, где парольные менеджеры превращаются в еще одну подписку, KeePassXC напоминает старую добрую идею:
- ваши пароли
- ваш файл
- ваш контроль
https://github.com/keepassxreboot/keepassxc
LastPass Premium стоит $36 в год.
Dashlane Premium - $59,88 в год.
И все это за одну базовую задачу: хранить строки текста в зашифрованном хранилище.
На этом фоне KeePassXC выглядит почти как антидот.
Это open-source парольный менеджер, который не требует аккаунта, подписки и доверия к очередному облачному сервису. Ваши пароли хранятся в одном .kdbx файле, который контролируете вы сами.
Что внутри:
- AES-256
- Argon2
- автозаполнение в браузерах
- TOTP/HOTP коды
- поддержка YubiKey и OnlyKey
- passkeys
- SSH agent для разработчиков
- Windows, macOS, Linux и BSD
- синхронизация через Dropbox, OneDrive, Nextcloud, Syncthing, флешку или что угодно
Главная магия в простоте: база паролей - это просто файл.
Если ваш облачный диск взломают, злоумышленник получит не список паролей, а зашифрованный blob. Мастер-пароль не уходит с вашего устройства.
KeePassXC развивается с 2016 года, имеет почти 27 тысяч звезд на GitHub, сотни контрибьюторов и полностью открытую GPLv2-лицензию.
На фоне индустрии, где парольные менеджеры превращаются в еще одну подписку, KeePassXC напоминает старую добрую идею:
- ваши пароли
- ваш файл
- ваш контроль
https://github.com/keepassxreboot/keepassxc
❤37👌6✍5😡1
Rocky Linux ввёл в строй репозиторий для оперативного устранения уязвимостей
Разработчики дистрибутива Rocky Linux объявили о создании отдельного репозитория для внеплановой публикации срочных обновлений пакетов с устранением уязвимостей, не синхронизированного с репозиториями Red Hat Enterprise Linux. Отмечается, что проект Rocky Linux придерживается принципа максимально близкого соответствия пакетной базе RHEL, при этом возникающие последнее время угрозы безопасности вынуждают сделать исключение.
Подробнее:
https://opennet.ru/65457/
https://opennet.me/65457/
Разработчики дистрибутива Rocky Linux объявили о создании отдельного репозитория для внеплановой публикации срочных обновлений пакетов с устранением уязвимостей, не синхронизированного с репозиториями Red Hat Enterprise Linux. Отмечается, что проект Rocky Linux придерживается принципа максимально близкого соответствия пакетной базе RHEL, при этом возникающие последнее время угрозы безопасности вынуждают сделать исключение.
Подробнее:
https://opennet.ru/65457/
https://opennet.me/65457/
👍13🔥7❤1
🔐 Стань этичным хакером - с нуля до Pro
Хочешь зарабатывать на поиске уязвимостей, а не бояться их? Этот курс проведёт тебя от первой команды в терминале до реальных техник пентеста.
Что внутри:
→ Разведка целей: nmap, curl, анализ заголовков
→ Криптография и разбор кода на практике
→ Эксплуатация уязвимостей и документирование находок
→ Только живые задачи - никакой воды
Без скучной теории. Только то, за что платят в bug bounty и на собеседованиях в InfoSec.
📈 От «что такое порт» — до отчёта пентестера за несколько недель.
👉 Записывайся на Stepik и начни взламывать легально уже сегодня.
Хочешь зарабатывать на поиске уязвимостей, а не бояться их? Этот курс проведёт тебя от первой команды в терминале до реальных техник пентеста.
Что внутри:
→ Разведка целей: nmap, curl, анализ заголовков
→ Криптография и разбор кода на практике
→ Эксплуатация уязвимостей и документирование находок
→ Только живые задачи - никакой воды
Без скучной теории. Только то, за что платят в bug bounty и на собеседованиях в InfoSec.
📈 От «что такое порт» — до отчёта пентестера за несколько недель.
👉 Записывайся на Stepik и начни взламывать легально уже сегодня.
👍5🍌5❤4🔥2
🔥 Linux-трюк: найдите, какой процесс жрёт диск прямо сейчас
Когда сервер тормозит,
Используйте:
Что покажет команда:
• удалённые файлы, которые всё ещё открыты
• процесс, который их держит
PID
• размер файла
• путь до удалённого файла
Типичный кейс:
/var/log/app.log (deleted)
Файл уже удалён из директории, но пока процесс жив, место не освободится.
Что делать:
sudo systemctl restart имя_сервиса
или аккуратно завершить конкретный процесс по PID.
Полезно после ротации логов, падений приложений, runaway-контейнеров и ситуаций, когда df -h показывает забитый диск, а du -sh /* ничего подозрительного не находит.
Когда сервер тормозит,
top часто показывает CPU и RAM, но не отвечает на главный вопрос: кто прямо сейчас долбит диск.Используйте:
sudo iotop -oPa
Что покажет команда:
• удалённые файлы, которые всё ещё открыты
• процесс, который их держит
PID
• размер файла
• путь до удалённого файла
Типичный кейс:
/var/log/app.log (deleted)
Файл уже удалён из директории, но пока процесс жив, место не освободится.
Что делать:
sudo systemctl restart имя_сервиса
или аккуратно завершить конкретный процесс по PID.
Полезно после ротации логов, падений приложений, runaway-контейнеров и ситуаций, когда df -h показывает забитый диск, а du -sh /* ничего подозрительного не находит.
👍10❤6😁1
Rust-приложение, которое превращает скучный терминал в живой dashboard
Splashboard - это splash screen для терминала, написанный на Rust. Открываешь новый shell - и вместо пустого экрана видишь контекст по проекту.
Он может показывать Git-статус, состояние CI, открытые PR, contribution heatmap и даже фазу Луны. Да, зачем-то это тоже есть.
Главная фишка в DX: репозиторий сам может описать свой dashboard через один
Под капотом Rust и
Вот так выглядит нормальный zero-overhead DX: не ещё одна тяжёлая панель в браузере, а быстрый TUI прямо там, где разработчик и так живёт - в терминале.
🔗 http://github.com/unhappychoice/splashboard
#Rust #RustLang #CLI #TerminalTools #OpenSource #DeveloperTools #TUI #Ratatui #Rustacean
Splashboard - это splash screen для терминала, написанный на Rust. Открываешь новый shell - и вместо пустого экрана видишь контекст по проекту.
Он может показывать Git-статус, состояние CI, открытые PR, contribution heatmap и даже фазу Луны. Да, зачем-то это тоже есть.
Главная фишка в DX: репозиторий сам может описать свой dashboard через один
dashboard.toml. Заходишь в папку проекта через cd - и терминал сразу подхватывает нужный контекст без флагов, ручной настройки и лишней возни.Под капотом Rust и
ratatui, работает кроссплатформенно, пакет доступен на crates.io.Вот так выглядит нормальный zero-overhead DX: не ещё одна тяжёлая панель в браузере, а быстрый TUI прямо там, где разработчик и так живёт - в терминале.
🔗 http://github.com/unhappychoice/splashboard
#Rust #RustLang #CLI #TerminalTools #OpenSource #DeveloperTools #TUI #Ratatui #Rustacean
❤8👍6
Forwarded from Анализ данных (Data analysis)
Об этом факте регулярно вспоминают в сообществе разработчиков, но и сейчас он продолжает бить в больную точку. Стив Джобс и Деннис Ритчи ушли в одном и том же месяце одного и того же года, в октябре 2011. Их уход превратился в символ того, насколько по-разному мир относится к людям, которые формируют технологии.
Джобса оплакивали планетой, выпускали книги, сняли фильмы, именем назвали улицы. Он подарил iPhone, iPad, iPod и Macintosh, собрал вокруг Apple одну из самых дорогих компаний в истории. Денниса Ритчи провожали разве что в узком кругу и парой статей в блогах. Это был человек, который подарил нам язык C и вместе с Кеном Томпсоном Unix.
Дальше просто пройдёмся по цепочке. Без C нет Unix. Без Unix нет Linux, нет BSD, нет macOS и iOS. Без C не было бы Windows в его нынешнем виде, не было бы C++, Objective-C, Java, JavaScript в их привычном виде. Нет Chrome и Firefox, нет PostgreSQL и SQLite, нет Nginx, нет Photoshop, нет PlayStation и Xbox. Даже Python и PHP написаны на C.
При таком влиянии Ритчи оставался человеком, которого было сложно представить на сцене с черной водолазкой и в режиссёрском свете. Он работал в Bell Labs, носил бороду, избегал интервью и писал программы. Человек, без которого современный цифровой мир просто не выглядел бы так, как сейчас, провёл жизнь в тени своих собственных результатов.
Похоже, именно в этом и суть контраста. Джобс продавал эмоции и мечты о будущем, это видно и понятно любому человеку. Ритчи писал инфраструктуру, которой пользуются все, но вспоминают о которой, только когда она ломается. Инженерх понимают это отлично: восхищение и слава идут тем, кто выходит на сцену, а не тем, кто держит фундамент.
Поэтому этот сюжет приятно иногда вытаскивать наружу. Не чтобы принижать Джобса, он действительно изменил потребительский рынок. Но чтобы напомнить, что рядом жил тихий инженер в свитере, без которого все эти коробочки от Apple были бы просто красивыми пресс-папье.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍66❤20💯15👏4😢4👨💻1
Принцип "всё есть файл" в Linux часто звучит как маркетинговый слоган, хотя на самом деле это базовое инженерное решение, на котором держится вся система. Жёсткий диск /dev/sda, терминал /dev/tty и даже мышка открываются и читаются точно так же, как обычный текстовый файл. Возникает закономерный вопрос: каким образом физическая железка вообще оказывается в файловой системе?
Вся магия упирается в один привилегированный системный вызов: mknod. На архитектуре x86_64 у него номер 133. Именно он создаёт специальный узел в файловой системе, и именно через него ядро понимает, какой драйвер должен обработать обращение к этому пути.
В отличие от обычного файла, при вызове mknod никто не выделяет блоки на диске. Вместо хранения данных создаётся связка пути с парой чисел: major и minor. Major-номер указывает ядру на конкретный драйвер, а minor-номер уточняет конкретное устройство внутри этого драйвера. Считайте их координатами, по которым ядро бьёт в нужную точку без поиска.
Именно поэтому команда cat /dev/urandom не читает никаких байт с накопителя. Файловая система видит специальный узел, перенаправляет запрос в генератор случайных чисел ядра, и вы получаете бесконечный поток энтропии. На диске при этом не лежит ровным счётом ничего.
Поскольку создание такого узла фактически даёт прямой доступ к драйверу ядра, вызов требует capability CAP_MKNOD. Без прав процесс получит EPERM и быстро поймёт, что раздавать доступ к железу от имени обычного пользователя ядро не собирается. Это дополнительный барьер безопасности поверх обычных прав на файлы.
Ниже пример на C, который полностью клонирует /dev/null. Major-номер 1 в ядре зарезервирован под memory devices, а minor-номер 3 указывает именно на null. Запускать нужно от root.
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/sysmacros.h>
#include <stdio.h>
int main(void) {
// 1 = major number for memory devices
// 3 = minor number for the null device
dev_t dev = makedev(1, 3);
// S_IFCHR creates a character device file
if (mknod("my_null", S_IFCHR | 0666, dev) == -1) {
perror("mknod failed (try running with sudo)");
return 1;
}
printf("Successfully created my_null!\n");
return 0;
}
После компиляции и запуска появится файл my_null, который ведёт себя как исходный /dev/null. Любой вывод, перенаправленный в этот файл, попадёт в тот же самый null-драйвер ядра. Различий в поведении по сравнению с системным /dev/null не будет вообще.
Такой пример хорошо показывает, почему инженеры Unix в своё время свели работу с железом к файловым операциям. Вместо десятков разных API для дисков, терминалов и сети программист получает единый интерфейс read, write, open и close. А вся сложная матчасть по маршрутизации запросов прячется внутри mknod и пары major/minor.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍8🔥5
Релиз AlmaLinux 9.8 и 10.2
Представлен релиз дистрибутива AlmaLinux 10.2, а также обновление прошлой ветки - AlmaLinux 9.8. Релизы синхронизированны c Red Hat Enterprise Linux 9.8 и 10.2, и содержат все предложенные в данных выпусках изменения. Установочные образы подготовлены для архитектур x86_64_v3, x86_64_v2, ARM64, ppc64le и s390x в форме загрузочного (1 ГБ), минимального (1.6 ГБ) и полного образа (10 ГБ). Позднее будут сформированы Live-сборки с GNOME, KDE, MATE и Xfce, а также образы для плат Raspberry Pi, контейнеров, WSL (Windows Subsystem for Linux) и облачных платформ.
Подробнее:
https://opennet.ru/65533/
https://opennet.me/65533/
Представлен релиз дистрибутива AlmaLinux 10.2, а также обновление прошлой ветки - AlmaLinux 9.8. Релизы синхронизированны c Red Hat Enterprise Linux 9.8 и 10.2, и содержат все предложенные в данных выпусках изменения. Установочные образы подготовлены для архитектур x86_64_v3, x86_64_v2, ARM64, ppc64le и s390x в форме загрузочного (1 ГБ), минимального (1.6 ГБ) и полного образа (10 ГБ). Позднее будут сформированы Live-сборки с GNOME, KDE, MATE и Xfce, а также образы для плат Raspberry Pi, контейнеров, WSL (Windows Subsystem for Linux) и облачных платформ.
Подробнее:
https://opennet.ru/65533/
https://opennet.me/65533/
👍6❤2