23484
По всем вопросам- @workakkk @itchannels_telegram - 🔥полезные ит-каналы https://t.me/Golang_google - Golang программирование @golangl - golang chat @GolangJobsit - golang channel jobs @golang_jobsgo - jobs РКН: clck.ru/3FmvZA #VRHSZ
Где будет всё ИТ-комьюнити этой осенью?
На IT Elements 2026: конференции для профессионального сообщества, где встречаются архитекторы, инженеры, руководители и команды, отвечающие за инфраструктуру, сети, безопасность, данные и ИИ.
Вместо абстрактных рассуждений — реальные кейсы, технические доклады и профессиональные дискуссии.
Что вас ждет:
📌 лаборатории и практические воркшопы;
📌 выставка главных российских вендоров;
📌 обмен опытом с коллегами из крупнейших компаний;
📌 два дня насыщенной технической программы, нетворкинга и знакомств.
Формат: офлайн в Москве и онлайн.
Участие бесплатное.
Программа будет постепенно пополняться, а зарегистрироваться можно уже сейчас.
Если планируете профессиональные мероприятия этой осенью — IT Elements точно стоит добавить в список. 📆
C умел «объектный стиль» задолго до модных споров про ООП.
В Linux-драйверах это видно особенно хорошо. Каждый драйвер фактически реализует интерфейс, просто заполняя структуру с указателями на функции.
file_operations из include/linux/fs.h - хороший пример. Ядро говорит: вот набор операций, которые может поддерживать файл, сокет или устройство. Драйвер сам решает, какие обработчики дать:
open
read
write
release
mmap
fsync
unlocked_ioctl
Если операция не нужна, поле остаётся NULL, и ядро использует поведение по умолчанию там, где это возможно.
По сути это тот же контракт между системой и реализацией, только без классов, наследования и рантаймовой магии. Есть таблица функций, есть объект, есть набор действий, которые с ним можно выполнить.
Именно поэтому C до сих пор живёт в ядрах, драйверах и системном коде. Он не навязывает модель абстракций, но даёт достаточно низкоуровневых инструментов, чтобы собрать нужную модель самому.
Просто вместо красивого слова interface у тебя struct с function pointers.
#programming #linux #c
✔️ Компилятор C однажды «опроверг» теорему Ферма
Теорема Ферма говорит: не существует целых чисел, для которых выполняется:`a³ + b³ = c³`
Её доказал Эндрю Уайлс в 1995 году - спустя 358 лет после формулировки.
Но затем Джон Регер показал забавный пример: цикл, скомпилированный через gcc -O2, мог напечатать:Fermat's Last Theorem has been disproved
В коде происходило signed integer overflow - переполнение знакового int. А в C это undefined behavior.
Для компилятора это значит: «такого не должно происходить». Поэтому оптимизатор имеет право строить предположения, которые человеку кажутся абсурдными.
В итоге: программа выглядит так, будто нашла контрпример к великой теореме, хотя на деле просто попала в UB.
C не опроверг Ферма.
C просто напомнил, что undefined behavior - это не ошибка выполнения, а разрешение компилятору делать почти всё что угодно.
ИИ заставляет перестраивать инфраструктуру
Когда говорят про развитие ИИ, обычно обсуждают модели, агенты и новые возможности.
Но есть менее заметная проблема: всё это нужно где-то запускать. На infra.conf’26 Александр Чубинский из Яндекса рассказал, как компания перестраивает физическую и ML-инфраструктуру под растущие нагрузки.
Изменения происходят сразу на нескольких уровнях:
- вместо отдельных дата-центров развивают кампусы дата-центров мощностью до 180 МВт;
- внедряют жидкостное охлаждение, потому что традиционные подходы уже не всегда справляются с плотностью вычислений;
- запустили внутренний сервис Dev Cluster, который ускоряет эксперименты и разработку ML-моделей.
Чем больше ИИ, тем меньше это история только про софт.
А ваши данные в S3 надежно защищены?
Проверьте вашу инфраструктуру и узнайте несколько лайфхаков на вебинаре
30 июня эксперты Selectel расскажут об эффективных механизмах защиты данных в S3 под разные задачи: например, для защиты от случайного удаления или кибератак и для соответствия регуляторным требованиям. В практическом блоке покажут реальные примеры настройки S3 через API и CLI.
📍 Онлайн
⏰ 30 июня в 12:00
👥 Для DevOps-специалистов, системных администраторов, специалистов по информационной безопасности и всех, кто не хочет столкнуться с утечкой и удалением данных.
Регистрируйтесь ➡️ https://slc.tl/6ohvs
Больше мероприятий для ИТ-специалистов в канале @selectel_events. Подписывайтесь!
Реклама. АО "Селектел". erid:2W5zFGhZPv9
⚙️ Cloud-native в России начинает собирать собственный инженерный «core team»
Первая в России независимая некоммерческая ассоциация, которая занимается развитием облачно-ориентированных технологий (АОТ), формирует экспертный совет. В него войдут девять практиков, которые работают с Kubernetes и современной облачной инфраструктурой не в презентациях, а в продакшене.
Фокус ожидаемо инженерный:
- Kubernetes
- платформенные решения
- DevOps и DevSecOps
- безопасность облачных систем
- observability
- устойчивость инфраструктуры
- применение AI в разработке
Если раньше cloud-native был набором отдельных инструментов, то сейчас это уже полноценное направление со своим профессиональным сообществом, исследованиями и отраслевой повесткой.
Похоже, Kubernetes окончательно перестал быть просто оркестратором контейнеров и превратился в фундамент современной инфраструктуры.
https://kod.ru/aot-experts/amp
⚙️ ASMLings - подробный гайд на русском
ASMLings - это набор из ~32 коротких упражнений на ассемблере Intel 8086, выстроенных по возрастанию сложности: от mov ax, 0x1337 до 32-битного сложения через carry flag, циклов, подпрограмм, работы с памятью и стеком.
Полный русскоязычный гайд по asmlings — интерактивной песочнице для изучения ассемблера Intel 8086, в которой 16-битный x86-эмулятор написан на Rust.
Внутри: что это, как устроено под капотом, как установить, как читать и решать упражнения, разборы реальных задач из репозитория, готовые примеры в examples/ и шпаргалки.
https://github.com/justxor/-ASMLingsru/
Рэй Брэдбери бы оценил: запрещённые книги теперь прячут в умных лампочках
Энтузиаст разобрал обычную Wi-Fi лампочку и превратил её микроконтроллер ESP32-C3 в маленький автономный веб-сервер.
Получился почти сюжет из «451 градуса по Фаренгейту»: лампа создаёт открытую Wi-Fi сеть, открывает портал и даёт читать книги, которые запрещали или ограничивали в школах.
SD-карту в тесный корпус встроить не удалось, поэтому библиотека живёт прямо во встроенной памяти. Всего 4 МБ, но для текста этого хватает.
Самое забавное, что такие лампочки уже давно вышли за пределы «умного дома». На похожем железе поднимают Minecraft-серверы, запускают DOOM и теперь ещё прячут мини-библиотеки.
Будущее странное: раньше книги сжигали, теперь они раздаются из лампочки.
https://www.richardosgood.com/posts/banned-book-library/
Открываете Grafana и видите 50 дашбордов «из коробки», но не понимаете ни один.
Копируете PromQL со Stack Overflow, потому что писать с нуля долго и непонятно.
200 алертов в день, критичных — три, и их не видно в общем шуме.
Не нужно учить всё это месяцами, пройдём полный путь за час.
23 июня в 12:00 — вебинар Deckhouse Академии. 60 минут, один живой сюжет, ноль воды.
Что покажем в эфире:
– как формируется metric и почему «удобный» label вроде user_id может взорвать кардинальность и заполнить всё хранилище;
– Prom++ против ванильного Prometheus: экономия памяти от ~10x и причины этой экономии (реестр ПО № 28605);
– модуль monitoring-custom в DKP или как начать собирать метрики без правок scrape_config;
– базовую агрегацию метрики;
– Alert Rule с for и keep_firing_for: как сделать «нешумный» алерт;
– как настроить отправку уведомлений и получить алерт.
4 MCP-сервера, о которых стоит знать каждому DevOps-инженеру
1. Kubernetes MCP
- расследовать pod’ы в CrashLoopBackOff;
- дебажить неудачные деплои;
- анализировать состояние кластера.
Repo:
https://github.com/Flux159/mcp-server-kubernetes
2. AWS MCP
- разбирать резкие скачки расходов в AWS;
- находить неиспользуемые ресурсы;
- troubleshooting облачной инфраструктуры.
Repo:
https://github.com/awslabs/mcp
3. Terraform MCP
- проверять Terraform-планы;
- находить drift в инфраструктуре;
- объяснять изменения в инфраструктуре.
Repo:
https://github.com/hashicorp/terraform-mcp-server
4. Grafana + Prometheus MCP
- расследовать скачки latency;
- анализировать production-инциденты;
- объяснять alert storms.
Repos:
https://github.com/grafana/mcp-grafana
https://github.com/pab1it0/prometheus-mcp-server
ИИ может получать доступ к вашей инфраструктуре, понимать, что реально происходит, и помогать разбирать проблемы на основе настоящих данных, а не догадок.
🖥Ускорь Linux без апгрейда железа
Linux может стать заметно отзывчивее без апгрейда железа.
Мало кто включает zram, а зря. Он создаёт сжатую память прямо в RAM и снижает обращения к медленному swap на диске.
Особенно хорошо это чувствуется на ноутбуках и VPS с 8–16 гигабайтами памяти.
Система меньше тупит под нагрузкой, быстрее переключается между задачами и реже упирается в диск.
Один небольшой твик - и Linux работает лучше.
https://www.youtube.com/shorts/XGSNY4a0nJA
⚡️ Linux Roadmap: подробный практический курс от нуля до уверенного администратора
Это пошаговый маршрут изучения Linux с упором на практику. Каждый раздел содержит объяснение «почему это устроено именно так», разбор команд и обязательные задания, которые нужно выполнить руками в терминале. Чтение без повторения навыка не даёт — держите терминал открытым рядом с этим текстом.
Как работать с этим курсом: идите сверху вниз, не перепрыгивайте разделы; каждую команду набирайте руками, а не копируйте; в конце каждого блока выполняйте задание; специально ломайте систему в виртуалке и чините — это лучший способ учиться.
https://github.com/justxor/linuxfullroadmap/
Один человек написал код, который сегодня работает на 20+ млрд устройств
Даниэль Стенберг начал cURL в 1996 году как маленькую утилиту для скачивания файлов из интернета.
Без большой команды. Без венчурных денег. Без хайпа. Просто писал open-source инструмент в свободное время.
Почти 30 лет спустя cURL стал тихим фундаментом интернета.
Он есть в iPhone, Android, PlayStation, Tesla, серверах, приложениях, сайтах и куче устройств, о которых мы даже не думаем. Его используют Spotify, YouTube, Netflix, Instagram и тысячи других сервисов.
NASA даже использовала cURL на марсианском вертолёте Ingenuity.
То есть код Стенберга буквально летал на другой планете.
Самое безумное - первые 23 года он не зарабатывал на cURL ничего. Триллионные компании строили продукты на его коде, а он продолжал бесплатно поддерживать проект и отвечать на баг-репорты.
В 2017 году король Швеции вручил ему премию Полхема - впервые в истории эту награду получил open-source проект.
В 2019 году Стенберг наконец начал работать над cURL фултайм в wolfSSL. В 2025 году получил золотую медаль IVA от Королевской шведской академии инженерных наук.
Но по сути ничего не изменилось: он всё ещё пишет код из домашнего офиса в Стокгольме и сам отвечает на GitHub issues.
Почти 30 лет человек делал инструмент, который работает в фоне и держит огромную часть интернета.
Без громких презентаций.
Без миллиардных раундов.
Просто хороший код, который пережил почти всё.
⚡️ GitHub ударил по vibe coding
GitHub выкатил Spec Kit - набор инструментов для разработки с AI-агентами, где сначала появляется спецификация, а уже потом код.
И это важный сдвиг.
Проблема vibe coding не в том, что модели слабые. Проблема в том, что ты кидаешь агенту идею в стиле «сделай мне приложение», а дальше он сам додумывает требования, архитектуру, ограничения и порядок работы.
Иногда попадает.
Чаще начинает уверенно строить не то.
Spec Kit предлагает другой процесс: сначала зафиксировать правила проекта, уточнить требования, выбрать стек, разбить работу на задачи и только потом запускать реализацию.
Основной workflow выглядит так:
- /speckit.constitution - правила проекта: качество, тесты, архитектура, ограничения
- /speckit.specify - что нужно построить и зачем, без преждевременного выбора стека
- /speckit.clarify - агент задаёт вопросы по мутным местам до старта разработки
- /speckit.plan - технический план, стек, архитектурные решения
- /speckit.tasks - список задач с зависимостями и порядком выполнения
- /speckit.implement - реализация по уже собранному плану
Главная идея простая: агенту больше не дают «мечту в одном абзаце» и не надеются, что он не уедет в сторону.
Ему дают живую спецификацию.
Она описывает, что строим, почему именно так, какие ограничения есть, в каком порядке идти и по каким критериям проверять результат.
И, похоже, GitHub прямо показывает, куда всё идёт: AI-агенты будут писать всё больше кода, но нормальная разработка всё равно начинается не с автокомплита, а с ясных требований.
github.com/github/spec-kit
Когда инфраструктура перестаёт соответствовать текущим нагрузкам, компаниям приходится принимать решение о переезде в новое окружение. Чтобы сделать этот процесс менее затратным, Yandex Cloud предлагает программу миграции.
Она рассчитана на организации, которые переходят из других облаков, хостингов или собственных дата-центров. В рамках программы можно получить грант на 60 дней использования облачной платформы, консультации архитектора по подготовке плана миграции и поддержку персонального менеджера. Грант покроет все расходы на миграцию, размер рассчитывается индивидуально.
В распоряжении пользователей Yandex Cloud — более 75 сервисов и 4 собственных дата-центра для работы с инфраструктурой, данными и приложениями. Расходы зависят только от объёма реально потреблённых ресурсов.
Подайте заявку до 20 июня и получите поддержку при миграции в Yandex Cloud.
ScrapeComfort — бесплатный инструмент для безболезненного веб-скрапинга прямо с вашего рабочего стола.
Интуитивно понятный интерфейс обеспечивает бесперебойный процесс извлечения данных независимо от вашей технической подготовки.
🎥 Вебинар: «Gitlab CI как конструктор workflow»
Научитесь создавать эффективные и надежные пайплайны с помощью Gitlab CI
О чём поговорим:
• Быстрый обзор Gitlab CI в сравнении с другими решениями.
• Как использовать особенности Gitlab для улучшения работы команды.
• Антипаттерны CI: обилие ручек, сабмодули и другие.
• Идеальный пайплайн деплоя инфраструктуры по мнению автора.
Что вы получите:
• Вы получите понимание ключевых преимуществ Gitlab CI по сравнению с другими решениями.
• Научитесь использовать возможности Gitlab для повышения производительности команды.
• Избежите распространенных ошибок и антипаттернов в CI/CD.
• Сможете создать идеальный пайплайн деплоя инфраструктуры, соответствующий лучшим практикам.
🧠 Вебинар проходит в преддверие старта курса «DevOps практики и инструменты». Зарегистрируйтесь сейчас и получите скидку на обучение.
👉 Для участия зарегистрируйтесь: https://otus.pw/RR0q/?erid=2W5zFHSfRYV
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
Основы Git и GitHub за 30 секунд: настройка, коммиты, ветки, Pull Request
GitHub пугает новичков не сложностью, а количеством команд, в которых легко утонуть в первый же день. Эта шпаргалка собирает весь базовый путь от пустого терминала до открытого Pull Request, чтобы не держать всё в голове и не гуглить каждый шаг.
Сначала первая настройка: задаёшь имя и email, иначе коммиты уходят непонятно от кого. Дальше старт работы: клонируешь репозиторий, заходишь в папку и сразу создаёшь свою ветку под задачу. Потом ежедневный цикл, который повторяется каждый день: status, pull, add, commit, push. Проверил, обновил, добавил, закоммитил, отправил. Отдельно блок полезных команд на каждый день: log с графом, diff, stash, branch и переключение на main.
10 GitHub-репозиториев, которые заставят вас навсегда забыть о платном ПО
Полностью бесплатно.
1.LocalSend / http://github.com/localsend/localsend
Воздушная передача файлов между платформами. Передача файлов между Windows, Mac, Linux, Android, iOS — без регистрации и облака
2.yt-dlp / http://github.com/yt-dlp/yt-dlp
Скачивание видео и аудио с любого сайта. YouTube, Bilibili, Twitter — всё покрыто, мощнее любого платного загрузчика
3.Stirling-PDF / http://github.com/Stirling-Tools/Stirling-PDF
Самостоятельный универсальный инструмент для PDF. Объединение, разделение, сжатие, конвертация в Word, добавление водяных знаков, OCR — замена всему семейству Adobe
4.FreeTube / http://github.com/FreeTubeApp/FreeTube
Десктопный плеер для YouTube. Без рекламы, без слежки, без аккаунта Google — что вы смотрите, знает только вы
5.Syncthing / http://github.com/syncthing/syncthing
Альтернатива Baidu Netdisk и iCloud. Прямая синхронизация файлов между устройствами, сквозное шифрование, данные не проходят через серверы третьих лиц
6.Vaultwarden / http://github.com/dani-garcia/vaultwarden
Самостоятельный менеджер паролей. Бесплатная замена 1Password и LastPass навсегда, данные хранятся только на вашем устройстве
7.Immich / http://github.com/immich-app/immich
Самостоятельный Google Фото. Автоматическое резервное копирование фото с телефона, распознавание лиц, поиск по ИИ — больше не платите аренду за хранилище ежемесячно
8.AdGuard Home / http://github.com/AdguardTeam/AdGuardHome
Блокировка рекламы по всей сети. Блокировка на уровне роутера — все устройства в доме, включая смарт-телевизоры, без рекламы
9.Jellyfin / http://github.com/jellyfin/jellyfin
Самостоятельный Netflix. Свои фильмы, сериалы и музыка — транслируйте сколько угодно, без ежемесячных платежей платформам
10.Uptime Kuma / http://github.com/louislam/uptime-kuma
Самостоятельная панель мониторинга. Следит за вашими сайтами и сервисами, мгновенно уведомляет о сбоях — замена платному мониторингу за $50 в месяц.
Редкий Docker-трюк для баз данных: отдельный volume под WAL
У Postgres есть место, куда он пишет журнал изменений: WAL.
Если база активно пишет данные, WAL может стать узким местом. В Docker его можно вынести в отдельный volume:
services:
db:
image: postgres:16
environment:
POSTGRES_PASSWORD: postgres
POSTGRES_INITDB_WALDIR: /var/lib/postgresql/wal
volumes:
- pg_data:/var/lib/postgresql/data
- pg_wal:/var/lib/postgresql/wal
volumes:
pg_data:
pg_wal:
А вы знали, что Linux тоже можно забэкдорить?
Многие считают Linux почти неуязвимым. Но это не так.
В 2024 году злоумышленник почти 2 года тихо встраивал бэкдор в XZ Utils - базовую библиотеку сжатия, которая есть почти во всех крупных Linux-дистрибутивах.
Целью был sshd. При наличии правильного ключа шифрования можно было внедрять код через SSH-сертификаты входа. Тихо, без алертов, внешне всё выглядело полностью легитимно.
Один разработчик заметил проблему только потому, что sshd стал запускаться примерно на 500 мс медленнее обычного.
Именно из-за этого бэкдор не успел попасть в production-системы по всему миру.
Linux не неуязвим. Просто долгое время он не был главной целью. Теперь это меняется.
Хватит держать сервер нараспашку: базовый хардэнинг Linux за 8 шагов
Большинство серверов взламывают не через киношные zero-day, а через базовые ошибки: парольный SSH, открытые порты, root-вход и отсутствие бэкапов.
В этом ролике короткий чек-лист, как обезопасить Linux-сервер с нуля.
Первое: вход только по SSH-ключу, парольную авторизацию отключить.
Второе: запретить прямой вход под root и работать через sudo.
Третье: закрыть все лишние порты через UFW или iptables.
Четвёртое: регулярно ставить security updates.
Дальше: fail2ban против перебора паролей, двухфакторка там, где возможно, минимум прав для пользователей и сервисов.
И обязательно бэкапы. Не “когда-нибудь”, а по расписанию и отдельно от сервера.
Финальный слой: логи и мониторинг, чтобы видеть подозрительную активность до того, как сервер уже лег.
Минимум, который реально нужен: SSH-ключи, firewall, обновления, fail2ban и бэкапы.
Полезно бэкендерам, DevOps и всем, кто держит VPS или продакшен.
#Linux #сервер #безопасность #DevOps #SSH #fail2ban #firewall #VPS #хардэнинг #кибербезопасность #бэкапы #системноеадминистрирование
Linux tip: когда процесс завис, не убивайте его вслепую
Если процесс завис, не обязательно сразу делать kill -9 и гадать, что там произошло.
Можно подключиться к нему через strace и посмотреть в реальном времени, на каком системном вызове он застрял.
Команда:
strace -p <PID> -e trace=read,write,open
pidof my_process
sudo strace -p <PID> -e trace=read,write
Linux-инсайт: shell - это просто обычная программа
Ваш терминал не разговаривает с ядром напрямую магическим языком. Shell - это обычная userspace-программа. Просто таких программ целое семейство:bash, zsh, fish, dash, ksh, ash, встроенный shell из BusyBox.
С точки зрения ядра все они делают примерно одну и ту же работу:
- читают байты из file descriptor
- парсят их как командный язык
- вызывают fork
- вызывают exec
- запускают другие программы
Разница почти вся живёт в userspace: какой синтаксис shell принимает, насколько он удобен в интерактивной работе, насколько строго следует POSIX и какие расширения добавляет сверху.
POSIX описывает shell-язык, который часто называют просто sh. Большинство shell реализуют его как базу, а потом добавляют свои фичи.
Поэтому bash и dash - это не «разные терминалы». Это разные реализации одной идеи.
Небольшой сюрприз: в Debian и Ubuntu /bin/sh обычно не bash, а dash. Он проще, меньше и стартует быстрее. Поэтому скрипт с первой строкой:
#!/bin/sh
readlink -f /bin/sh
Разработчик так устал смотреть, как его AI-агент пишет 500 строк для задачи на 5 строк, что сделал фикс.
Он назвал его Ponytail. В честь того самого человека, который есть почти в каждой команде: длинный хвост, овальные очки, работает там дольше, чем существует version control. Ты показываешь ему 50 строк, он молча смотрит на них и заменяет одной.
Теперь ваш агент делает то же самое. Перед тем как что-то написать, он сначала ищет причину не писать.
На 80–94% меньше кода. На 47–77% дешевле. В 3–6 раз быстрее.
Лучший код, тот, который вы вообще не написали.
GitHub: https://github.com/DietrichGebert/ponytail
Pointer tagging: как рантаймы прячут данные прямо внутри указателя
В x86-64 Linux пользовательские процессы обычно используют не все 64 бита адреса. На практике адреса занимают около 48 бит, а верхние биты часто остаются свободными.
И вот тут начинается низкоуровневая магия.
Некоторые рантаймы кладут в эти верхние биты служебную информацию: тип объекта, флаги, состояние GC, короткий идентификатор или другой metadata-tag. Перед разыменованием указатель очищается маской, и процессор снова видит обычный валидный адрес.
Это называется pointer tagging.
Зачем это нужно:
- можно хранить метаданные без отдельной структуры
- меньше аллокаций
- лучше cache locality
- быстрее проверка типа или состояния объекта
- меньше overhead в рантайме
Такой подход используют Lisp-рантаймы, garbage collectors, JavaScript-движки и VM, где каждый байт и каждый лишний переход по памяти имеют значение.
Идея простая: если часть битов в указателе всё равно не участвует в адресации, почему бы не заставить их работать.
🖥 На stepik обновили курс Python в 2026 - рабочий инструмент для автоматизации, ботов, парсинга, API, данных и разработки с ИИ.
Проблема новичков в том, что они учат Python кусками: синтаксис, пару задач, немного теории - и потом не понимают, как собрать из этого реальный проект.
Этот курс закрывает именно этот разрыв. Здесь вы не просто смотрите уроки, а учитесь писать код, разбирать ошибки и собирать рабочие решения на практике.
Внутри:
- Python с нуля
- много практики без сухой теории
- реальные задачи и проекты
- автоматизация рутины
- работа с файлами, данными и API
- понятная логика программирования
- современная разработка с ИИ
- отдельный блок по вайбкодингу
Вайбкодинг это нормальный навык 2026 года и вас научат- правильно ставить задачу, проверять код, понимать результат и быстрее доводить проект до рабочего состояния.
48 часов скидка 60%: https://stepik.org/course/288218/
🚀 RSS и виртуальная память - не одно и то же
Хороший пример для тех, кто путает virtual memory и реальное потребление памяти в Linux.
Когда процесс делает mmap, он может зарезервировать большой кусок виртуального адресного пространства, например 1 GB. Но это ещё не значит, что процесс реально занял 1 GB физической памяти.
Физические страницы появляются только тогда, когда программа реально к ним обращается:
- mmap создаёт отображение в адресном пространстве
- запись в region[0] или region[4096] заставляет ядро выделить физические страницы
- RSS растёт, потому что теперь за частью адресов стоит реальная память
- madvise(..., MADV_DONTNEED) говорит ядру: эти страницы больше не нужны
- Linux может освободить физическую память
- само виртуальное отображение при этом остаётся
Именно поэтому после MADV_DONTNEED RSS падает, но virtual memory почти не меняется. Адреса всё ещё зарезервированы, просто за ними больше нет физических страниц.
А если потом снова записать в region[0], произойдёт page fault, и Linux заново подложит физическую страницу по требованию.
Редкий, но важный момент для backend, runtime, баз данных и всего, где память измеряется не глазами в top, а пониманием того, что именно показывает метрика.
Создатели Unix сами устали от Unix - и в Bell Labs начали строить ему замену.
Кен Томпсон, Деннис Ритчи и Роб Пайк почти десятилетие работали над Plan 9. Название взяли из старого трэшового sci-fi фильма Plan 9 from Outer Space, как внутреннюю шутку. Но сама система была совсем не шуткой.
Plan 9 пыталась довести идеи Unix до логического конца. Если в Unix «всё файл» звучало как красивая философия, то в Plan 9 это стало реальной архитектурой. Файлами выглядели устройства, процессы, сеть, окна, удалённые машины. Всё собиралось в единое пространство имён, с которым можно работать одинаковыми инструментами.
Самые сильные идеи Plan 9:
- единое пространство имён для файлов, устройств, процессов, сети и графики
- личный вид системы для каждого пользователя
- распределённые вычисления как основа, а не отдельная надстройка
- UTF-8, который потом стал стандартом для всего интернета
- сетевые идеи, которые позже повлияли на Linux, Android и контейнеры
- подходы, которые Роб Пайк позже перенёс в Go
В 2000 году Plan 9 открыли бесплатно. Можно было запускать, менять, изучать и использовать без лицензий уровня Windows и без привязки к железу Apple.
Но массовым он так и не стал. Linux забрал внимание индустрии, Unix-наследие осталось везде, а Plan 9 превратился в систему, которую знают в основном системные программисты и любители красивых ОС.
Ирония в том, что Plan 9 проиграл как продукт, но выиграл как источник идей. UTF-8, распределённая модель, namespaces, сетевой подход, влияние на Go - всё это живёт в современных системах до сих пор.
Мир почти не заметил Plan 9.
Зато взял у него кучу идей.
Как автоматизировать работу с выделенными серверами без слез и костылей
Разбираемся на бесплатном вебинаре от Selectel. Присоединяйтесь, чтобы узнать, как работать с Terraform на выделенных серверах, чем подход Infrastructure as Code может быть полезен для бизнеса и как устроен Bare Metal Cloud в Selectel.
Все участники вебинара получат промокод на 3000 бонусов в панели Selectel.
📍 Онлайн
⏰ 16 июня в 12:00
Регистрируйтесь ➡️ https://slc.tl/h2fy7
Больше мероприятий для ИТ-специалистов в канале @selectel_events. Подписывайтесь!
Реклама. АО "Селектел". erid:2W5zFJ3GM5s