ch
Feedback

不要被骗子欺骗!Telemetrio 会找到并标记这些频道 👉 如果想查看标记,请订阅

GNU/Linux | Notes

GNU/Linux | Notes

前往频道在 Telegram

Open Source, GNU/Linux, Debian/Ubuntu, Dotfiles, Software, Scripts, Notes, Terminal, Shell, Tools, Games, Fun, Misc, Music, Geek, Free Software Movement. Почта: krekhov.dev@gmail.com Кто я: https://t.me/krxnotes/246 GitHub: https://github.com/krekhovx

显示更多
2 205
订阅者
无数据24 小时
-47 天
-1530 天
帖子存档
Виртуальная память, общий вид #memory #theory
Виртуальная память, общий вид #memory #theory

Утилита findmnt Выводит примонтированные ФС в виде древовидной формы: $ findmnt Вывести в виде списка: $ findmnt -l Вывести о
Утилита findmnt Выводит примонтированные ФС в виде древовидной формы:
$ findmnt
Вывести в виде списка:
$ findmnt -l
Вывести определенный тип файловой системы, например ext4:
$ findmnt -t ext4
#utils

Адресное пространство процесса (память процесса) Когда программа запускается на выполнение, ядро выделяет для нее место в оперативной памяти. Память запущенной программы (процесса) разделена на ряд непрерывных секций. Команды из секций выполняются последовательно. При развертывании программы секции разделяются и каждая готова для работы. Некоторые секции уже известны перед запуском процесса .text, .data, .bss. Их можно посмотреть после компиляции:
$ size ./a.out
.text еще может называться code space. .data может называться data space. .text (младшие адреса 0x0) В этой секции хранится код программы, машинные инструкции (исполняемый код), сюда нельзя ничего записывать. Эта секция существует в read-only чтобы предотвратить несанкционированное изменение кода программы. .data Хранятся глобальные, статические переменные, которые определены, например:
int i = 2;
char name[20];
изначально эта секция пуста, и существует на чтение/запись. .bss Хранятся глобальные, статические переменные, которые НЕ определены, например:
int i;
int x;
.heap Динамическая аллокация памяти (для долгоживущих объектов). Она аллоцируется, когда процесс стартует, и не привязана ни какому файлу (месту на диске), а .text, .data, .bss можно увидеть в /proc/$(pidof a.out)/maps файле. .stack Может расширяться и сжиматься по мере вызова функций (frames). Содержит аргументы функций, локальные переменные функций (короткоживущие объекты). Вызов функции приводит к помещению в стек (создание кадра), когда функция возвращает управление, кадр уничтожается. Размер у стека фиксированный (8 MiB). .env (0xfffffff...) Аргументы командной строки и переменных окружения. Это могут быть argc, argv, envp (переменные окружения). .debug Ключ -g при компиляции, добавляется отладочная информация. Программист, когда использует в программе указатели, использует память процесса (адресное пространство) и работает только с ней! Указатели = работа с адресным пространством процесса (логические адреса). #memory #theory

В Gentoo намерены прекратить поставку Chromium из-за трудности сопровождения Новость: https://www.opennet.ru/opennews/art.shtml?num=66489 #news

Довольно часто приходится обращаться к Docker, чтобы не засорять свою основную Debian машину ненужными пакетами/зависимостями
Довольно часто приходится обращаться к Docker, чтобы не засорять свою основную Debian машину ненужными пакетами/зависимостями. Запустить Debian образ и развернуть его в интерактивном режиме можно так:
$ docker run -it debian
Можно подключиться к нужному контейнеру с другого tty/pts (чтобы было больше рабочих окон, терминалов). Узнать идентификатор контейнера и подключиться. На другом терминале выполнить:
$ docker ps
$ docker exec -it <ID> /bin/bash
Аналогичную работу можно произвести и с другими дистрибутивами, просто найти нужный образ и запустить его, поиск на Docker Hub осуществляется таким образом:
$ docker search <rocky-distr-for-example>
#debian

Документальный фильм о проекте KDE Новость: https://www.opennet.ru/opennews/art.shtml?num=66483 #news

Процесс разработки Debian. Архивы пакетов. #debian
Процесс разработки Debian. Архивы пакетов. #debian

Релиз ядра Linux 7.3 Новость: https://www.opennet.ru/opennews/art.shtml?num=66499 #kernel #news

GNU философия Философия GNU (GNU's Not Unix) заключается в приверженности свободному и открытому программному обеспечению. Ос
GNU философия Философия GNU (GNU's Not Unix) заключается в приверженности свободному и открытому программному обеспечению. Основные принципы GNU включают в себя: Свобода использования: Пользователи имеют право использовать программное обеспечение в любых целях без каких-либо ограничений. Свобода изучения: Пользователи имеют право изучать, адаптировать и модифицировать программное обеспечение по своему усмотрению. Свобода распространения: Пользователи имеют право распространять копии программного обеспечения и делиться им с другими. Свобода улучшения: Пользователи имеют право улучшать программное обеспечение и делиться своими улучшениями с сообществом. GNU философия призывает к сотрудничеству, обмену знаниями и созданию программного обеспечения, которое будет доступно для всех без ограничений и безопасно для использования. #misc #opensource

#music
#music

Список красивых и необычно оформленных профилей GitHub: проект собирает примеры README-файлов профилей, которые обновляются и отображаются прямо на странице пользователя. Его можно использовать как источник идей для оформления собственного GitHub-профиля. > GitHub #misc #opensource #git

Я часто использую онлайн-редактор Markdown с предпросмотром в реальном времени: в нём можно писать и форматировать текст с помощью Markdown-разметки, а рядом сразу видеть, как он будет выглядеть в готовом виде. Ссылка: https://markdownlivepreview.com/ #misc

Музыкальные пресеты — это заранее сохраненные наборы настроек и параметров для виртуальных синтезаторов, аудиоэффектов или программ для создания музыки, которые позволяют получить готовый звук в один клик. Большинство виртуальных синтезаторов идут с заводской библиотекой пресетов: например, Surge XT, Vital, Serum, Pigments, Massive и другие. Обычно там есть басы, лиды, пады, плаки, арпы, клавиши, эффекты и экспериментальные звуки. Помимо встроенных банков, для многих популярных синтезаторов выпускают сторонние пресет-паки — бесплатные и платные. При этом пресеты не универсальны: патч, созданный для Vital, нельзя просто открыть в Surge XT или Serum. У каждого синтезатора свой формат и своя архитектура звука — осцилляторы, фильтры, модуляции и эффекты работают по-разному. Иногда можно повторить похожий звук вручную, но перенести настройки одним файлом не получится. Пресеты удобны не только как «готовый звук», но и как материал для обучения. Можно открыть понравившийся патч, посмотреть, как настроены волны, огибающие, фильтры и эффекты, а затем изменить его под свой трек. Часто лучший результат — не использовать пресет как есть, а взять его за основу и доработать под аранжировку. #music

Vital Synth (Виталя) Это виртуальный wavetable-синтезатор для создания басов, лидов, падов, арпеджио и других звуков. У него
Vital Synth (Виталя) Это виртуальный wavetable-синтезатор для создания басов, лидов, падов, арпеджио и других звуков. У него понятный интерфейс, много визуализации и удобная система модуляций, поэтому он хорошо подходит новичкам. Vital можно скачать для Windows, macOS и Linux. Сейчас доступна версия 1.6.4 (Early Access). Я успешно установил его на Debian. И да, для скачивания необходимо зарегистрироваться на сайте. > Сайт > GitHub #software #music

здрясти
здрясти

Недавно я мельком увидел на Хабре интересный термин — Fastfood IT. Нет, это не разработка платформ для фастфуд-индустрии (хотя и такое тоже есть), а кое-что более тревожное. Так вот: Fastfood IT — неофициальный термин для быстрого, дешёвого и шаблонного создания IT-продуктов: сайтов, приложений, кода или MVP. С развитием AI это понятие стало особенно актуальным: нейросети позволяют за минуты генерировать код, дизайн и контент. Но у такой скорости есть обратная сторона. Как и фастфуд, результат может быть удобным и доступным «здесь и сейчас», но впоследствии привести к техническому долгу, ошибкам, проблемам с безопасностью, сложностям в поддержке и, в конечном итоге, к забрасыванию проекта. Поэтому я и перестал «писать» новые пет-проекты: ИИ очень помогает, но демотивирует. Проект быстро превращается в типичную ИИ-пустышку. Пока что я не смог разрешить этот внутренний конфликт для себя. #thoughts #ai

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

В 2025 году я встречался с разработчиками Debian — Debian Developers (DD). Это инженеры, которые кучу лет вносят вклад в Debian, поддерживают пакеты, инфраструктуру, исправляют баги, ну и так далее. Я отношусь к ним с большим уважением. Мне особенно запомнилась процедура подтверждения GPG-ключа. Она была нужна мне на пути к статусу Debian Maintainer (DM): чтобы публиковать и сопровождать пакеты в Debian, важно не только уметь делать это технически, но и быть известным сообществу как реальный и ответственный человек. GPG-ключ — это криптографический ключ, который позволяет подтверждать вашу цифровую личность и авторство подписанных действий. В Open Source с его помощью можно подписывать коммиты, теги, пакеты и загрузки в репозитории, связывая эти действия с владельцем ключа. Новый GPG-ключ сам по себе ничего не говорит окружающим. Он может принадлежать кому угодно: реальному разработчику, случайному человеку или тому, кто просто указал чужое имя и почту. Поэтому важна подпись ключа кем-то другим, более известным и проверенным в сообществе. Так и образуется цепочка доверия между реальными людьми в сообществе. Когда опытный участник Debian подписывает мой публичный ключ, он не «ручается за меня во всём» и не выдаёт мне особые права одной подписью. Смысл подписи более конкретный: этот человек подтверждает, что лично проверил, что данный отпечаток ключа действительно принадлежит мне с указанными именем и адресом электронной почты. При встрече желательно показать друг другу документы, например паспорт или водительское удостоверение. Отпечаток, или fingerprint, — это короткий уникальный идентификатор GPG-ключа. Его можно вывести так:
$ gpg --fingerprint email@example.org
На встрече мы обменялись бумажками с отпечатками наших GPG-ключей и сверили их друг с другом. После проверки личности и совпадения отпечатка разработчик мог подписать мой публичный ключ уже дома, а я - его (взаимная подпись). Технически я уже не помню, как именно мы это делали и какие команды использовали, но суть не в этом, а в том, как выстраивается цепочка инженеров, которым можно доверять. Именно в этом для меня ценность личной встречи. В интернете аккаунт, никнейм и даже фотография, которую можно сгенерировать, почти ничего не гарантируют. То же самое с голосовыми сообщениями, которые тоже можно подделать или сгенерировать: за профилем может быть бот, фейк, мошенник или человек, выдающий себя за другого. А когда ты лично встретился с человеком, показал документы, вместе сверил отпечаток ключа — уровень доверия становится совсем другим. Конечно, GPG не делает человека автоматически надёжным и не заменяет репутацию, код-ревью или правила проекта. Но он помогает криптографически связать цифровой ключ с реальным человеком. Для больших свободных проектов, где участники живут в разных странах и работают через интернет, это очень полезная вещь. Вывод: будьте осторожнее, общаясь со всякими ноунеймами в сети. Особенно — с аккаунтами противоположного пола :D #thoughts #security #debian

hedgewars Пошаговая тактическая игра в стиле Worms: игроки управляют командами забавных ежей, перемещаются по разрушаемым кар
hedgewars Пошаговая тактическая игра в стиле Worms: игроки управляют командами забавных ежей, перемещаются по разрушаемым картам и используют большой набор оружия и необычных предметов, чтобы победить соперников. Можно играть одному, по локальной сети или онлайн, настраивать команды, уровни и правила боя. Это полностью свободная игра с открытым исходным кодом, распространяемая по лицензии GPL-2.0-or-later. Установка:
$ apt-get install -y hedgewars
> GitHub > Salsa > Сайт #games #opensource

Chroot и Docker: в чём разница Chroot и Docker-контейнеры позволяют запускать программы в изолированной среде, но работают по-разному. Chroot меняет для процесса корневую папку файловой системы. Программа «видит» указанную директорию как / и работает с файлами внутри неё. Это простой и очень лёгкий механизм: почти нет дополнительной инфраструктуры, можно быстро собрать минимальную среду с нужными библиотеками и программами. Плюсы chroot: минимальный расход ресурсов, простота, быстрый запуск, полный контроль над файловой структурой. Минус — слабая изоляция: chroot не предназначен для защиты от вредоносных процессов. При наличии root-доступа из такого окружения часто можно выбраться в основную систему. Также chroot не изолирует сеть, процессы и другие системные ресурсы сам по себе. Docker использует возможности ядра Linux: namespaces изолируют процессы, сеть, пользователей и точки монтирования, а cgroups ограничивают потребление ресурсов. Контейнер Docker обычно запускается из готового образа и включает приложение со всеми зависимостями. Плюсы Docker: удобная упаковка и переносимость приложений, воспроизводимый запуск, управление сетью и томами, более сильная изоляция, развитая экосистема. Минусы: больше служебных компонентов, сложнее настройка, крупнее образы и выше расход ресурсов по сравнению с простым chroot. Итог: chroot подходит для лёгких локальных окружений, сборки пакетов и экспериментов, где важны простота и минимализм. Docker удобнее для развёртывания сервисов, командной разработки и проектов, которым нужна переносимость и изоляция. ——— Если хотите работать с chroot удобно и быстро, советую использовать pbuilder или sbuild в Debian. А ещё можно написать свой велосипед с использованием утилиты chroot — так будет проще понять, как это всё работает. Если же хотите Docker, можно использовать официальный репозиторий download.docker.com. Например, вот скрипт, который скачивает актуальные пакеты для Bookworm (если используется Trixie — просто поменяйте dist в скрипте). #build #utils #misc