This media is not supported in your browser
VIEW IN TELEGRAM
👉 Linux - strace: один из самых недооценённых инструментов
Он нужен в тот момент, когда приложение падает, не видит конфиг, не может найти библиотеку или ругается на файл, которого “вроде бы нет”.
Обычно в такой ситуации начинают гадать: путь не тот, прав не хватает, переменная окружения сломалась, сервис запущен не от того пользователя.
Но strace позволяет не гадать.
Он показывает, к каким файлам процесс реально обращается во время работы. Не то, что написано в документации. Не то, что вы предполагаете. А то, что программа делает на самом деле.
И вот тут часто всё становится очевидно: приложение ищет config не в той директории, лезет за библиотекой по старому пути, не может открыть сертификат или получает отказ из-за прав доступа.
Это особенно полезно при отладке сервисов, Docker-контейнеров, странных production-багов и бинарников, у которых нет нормальных логов.
Главная идея простая: когда Linux-программа ведёт себя непонятно, сначала посмотри её системные вызовы.
https://www.youtube.com/shorts/iRnNQWKozSA
Он нужен в тот момент, когда приложение падает, не видит конфиг, не может найти библиотеку или ругается на файл, которого “вроде бы нет”.
Обычно в такой ситуации начинают гадать: путь не тот, прав не хватает, переменная окружения сломалась, сервис запущен не от того пользователя.
Но strace позволяет не гадать.
Он показывает, к каким файлам процесс реально обращается во время работы. Не то, что написано в документации. Не то, что вы предполагаете. А то, что программа делает на самом деле.
И вот тут часто всё становится очевидно: приложение ищет config не в той директории, лезет за библиотекой по старому пути, не может открыть сертификат или получает отказ из-за прав доступа.
Это особенно полезно при отладке сервисов, Docker-контейнеров, странных production-багов и бинарников, у которых нет нормальных логов.
Главная идея простая: когда Linux-программа ведёт себя непонятно, сначала посмотри её системные вызовы.
https://www.youtube.com/shorts/iRnNQWKozSA
👍6❤4🔥3🤔1
Пятница, 17:58.
Вы пишете git push --force. И понимаете, что были не в той ветке.
Дальше два сценария. Первый: холодный пот, звонок тимлиду, испорченные выходные. Второй: git reflog, две команды, всё на месте, идёте домой.
Разница между этими сценариями - этот курс.
Git изнутри. Rebase без страха. Конфликты по алгоритму. Pull Request, code review, защита веток, CI/CD. Три модели ветвления - выберете свою.
Скидка 58%, 48 часов: https://stepik.org/course/284799/
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3❤1👍1🥴1🐳1
🔥 Лучшие БЕСПЛАТНЫЕ ресурсы по Linux в 2026 году
1. Linux Foundation Training
https://training.linuxfoundation.org/training/introduction-to-linux/
2. Linux Journey
https://linuxjourney.com
3. Ubuntu Tutorials
https://ubuntu.com/tutorials
4. Red Hat Training Resources
https://developers.redhat.com/learn
5. Документация GNU
https://gnu.org/manual
6. OverTheWire Bandit (Linux-варгеймы)
https://overthewire.org/wargames
7. Книга The Linux Command Line
https://linuxcommand.org/tlcl.php
8. MIT Missing Semester (Linux и CLI)
https://missing.csail.mit.edu
9. Туториалы по Linux от DigitalOcean
https://digitalocean.com/community/tutorials
10. Linux From Scratch
https://linuxfromscratch.org
11. Arch Linux Wiki
https://wiki.archlinux.org
12. Курс по Linux от freeCodeCamp
https://freecodecamp.org/news/tag/linux
13. Linux Survival (интерактивное обучение)
https://linuxsurvival.com
14. NDG Linux Essentials
https://netacad.com/courses/os-it/ndg-linux-essentials
15. Bash Guide (руководство по Bash)
https://tldp.org/LDP/Bash-Beginners-Guide/html
1. Linux Foundation Training
https://training.linuxfoundation.org/training/introduction-to-linux/
2. Linux Journey
https://linuxjourney.com
3. Ubuntu Tutorials
https://ubuntu.com/tutorials
4. Red Hat Training Resources
https://developers.redhat.com/learn
5. Документация GNU
https://gnu.org/manual
6. OverTheWire Bandit (Linux-варгеймы)
https://overthewire.org/wargames
7. Книга The Linux Command Line
https://linuxcommand.org/tlcl.php
8. MIT Missing Semester (Linux и CLI)
https://missing.csail.mit.edu
9. Туториалы по Linux от DigitalOcean
https://digitalocean.com/community/tutorials
10. Linux From Scratch
https://linuxfromscratch.org
11. Arch Linux Wiki
https://wiki.archlinux.org
12. Курс по Linux от freeCodeCamp
https://freecodecamp.org/news/tag/linux
13. Linux Survival (интерактивное обучение)
https://linuxsurvival.com
14. NDG Linux Essentials
https://netacad.com/courses/os-it/ndg-linux-essentials
15. Bash Guide (руководство по Bash)
https://tldp.org/LDP/Bash-Beginners-Guide/html
❤6🔥3👍2🤩1
🔥 5 проектов, которые реально прокачают резюме DevOps / Cloud
Если хочешь не просто «учил теорию», а показать реальные навыки - вот база, с которой уже берут на работу:
Flask + двухуровневая архитектура
https://github.com/prashantgohel321/DevOps-Project-Two-Tier-Flask-App
Разберёшь деплой, контейнеризацию и базовую инфраструктуру
Трёхуровневая архитектура в AWS (EKS + IaC)
https://github.com/LondheShubham153/three-tier-eks-iac
Практика Kubernetes, Terraform и продовой архитектуры
Terraform на Azure
https://github.com/piyushsachdeva/Terraform-Full-Course-Azure
Полный цикл инфраструктуры как кода под Azure
Observability стек (Prometheus + мониторинг)
https://github.com/techiescamp/devops-projects/tree/main/04-prometheus-observability-stack
Метрики, алерты и понимание что происходит в системе
AI + DevOps
https://github.com/iam-veeramalla/ai-assisted-devops
Event-driven autoscaling (KEDA + GKE)
https://github.com/ChimbuChinnadurai/keda-gke-event-driven-autoscaling-demo
Первый шаг в MLOps
https://github.com/iam-veeramalla/first-mlops-project
Сохрани, чтобы не потерять
Если хочешь не просто «учил теорию», а показать реальные навыки - вот база, с которой уже берут на работу:
Flask + двухуровневая архитектура
https://github.com/prashantgohel321/DevOps-Project-Two-Tier-Flask-App
Разберёшь деплой, контейнеризацию и базовую инфраструктуру
Трёхуровневая архитектура в AWS (EKS + IaC)
https://github.com/LondheShubham153/three-tier-eks-iac
Практика Kubernetes, Terraform и продовой архитектуры
Terraform на Azure
https://github.com/piyushsachdeva/Terraform-Full-Course-Azure
Полный цикл инфраструктуры как кода под Azure
Observability стек (Prometheus + мониторинг)
https://github.com/techiescamp/devops-projects/tree/main/04-prometheus-observability-stack
Метрики, алерты и понимание что происходит в системе
AI + DevOps
https://github.com/iam-veeramalla/ai-assisted-devops
Event-driven autoscaling (KEDA + GKE)
https://github.com/ChimbuChinnadurai/keda-gke-event-driven-autoscaling-demo
Первый шаг в MLOps
https://github.com/iam-veeramalla/first-mlops-project
Сохрани, чтобы не потерять
👍9🤔1
🔥 Продвинутый Rust без учебных игрушек
Базу уже прошли? Тогда следующий шаг - production-разработка.
На Stepik идет скидка 60% на продвинутый курс по Rust для тех, кто хочет не просто знать синтаксис, а строить реальные системы.
Внутри: async, unsafe, gRPC, lock-free, observability, Kafka, NATS, axum, tower, CI/CD и канареечный деплой.
Финальный проект - production-ready feed-сервис от архитектуры до релиза.
21 модуль, 84 урока, 400+ проверочных шагов.
Если хотите перейти от маленьких Rust-утилит к коммерческой разработке, сейчас хороший момент зайти: https://stepik.org/a/285608/pay
Базу уже прошли? Тогда следующий шаг - production-разработка.
На Stepik идет скидка 60% на продвинутый курс по Rust для тех, кто хочет не просто знать синтаксис, а строить реальные системы.
Внутри: async, unsafe, gRPC, lock-free, observability, Kafka, NATS, axum, tower, CI/CD и канареечный деплой.
Финальный проект - production-ready feed-сервис от архитектуры до релиза.
21 модуль, 84 урока, 400+ проверочных шагов.
Если хотите перейти от маленьких Rust-утилит к коммерческой разработке, сейчас хороший момент зайти: https://stepik.org/a/285608/pay
❤3👍2👎2🔥2
Coinbase сокращает около 700 человек - это примерно 14% штата.
CEO Coinbase Брайан Армстронг объясняет это просто: компания хочет стать меньше, быстрее и эффективнее, потому что ИИ уже позволяет небольшим командам делать то, для чего раньше требовалось больше людей.
Coinbase не единственная. Технокомпании всё чаще упаковывают сокращения не только в историю про рынок, но и в историю про AI-native операционку.
Похоже, главный эффект ИИ для бизнеса оказался не в красивых демках, а в очень скучной строке P&L: меньше людей, меньше затрат, быстрее выполнение задач.
bloomberg.com/news/articles/2026-05-05/coinbase-to-cut-14-of-workforce-citing-volatile-markets-ai
CEO Coinbase Брайан Армстронг объясняет это просто: компания хочет стать меньше, быстрее и эффективнее, потому что ИИ уже позволяет небольшим командам делать то, для чего раньше требовалось больше людей.
Coinbase не единственная. Технокомпании всё чаще упаковывают сокращения не только в историю про рынок, но и в историю про AI-native операционку.
Похоже, главный эффект ИИ для бизнеса оказался не в красивых демках, а в очень скучной строке P&L: меньше людей, меньше затрат, быстрее выполнение задач.
bloomberg.com/news/articles/2026-05-05/coinbase-to-cut-14-of-workforce-citing-volatile-markets-ai
❤4👍3🖕3🔥1💯1
Функция Аккермана: монстр рекурсии, который ставит в тупик даже самые умные алгоритмы
Если ты когда-нибудь думал, что рекурсия в твоём коде слишком запутанная, то функция Аккермана покажет, что такое настоящая бездна. Это одна из самых известных в математике функций, которая растёт настолько быстро, что обычные представления о больших числа
В чём суть. Берёшь сложение, умножение, возведение в степень, тетрацию и так далее. Все эти операции можно описать через примитивную рекурсию, то есть через простые вложенные циклы. Аккерман показал, что существует функция, которая вычислима, но при этом выходит за пределы примитивной рекурсии. То есть теоретически её посчитать можно, но никакой простой цикл с фиксированной глубиной её не опишет.
Если подставить даже скромные значения, результат становится физически невозможно записать. Например, A(4, 2) уже содержит десятки тысяч цифр. A(4, 3) превосходит количество атомов во Вселенной. А дальше начинается совсем абсурд: значения функции улетают в бесконечность так быстро, что любые попытки их вычислить упираются в стек, память и здравый смысл.
Почему это важно для разработчика и инженера машинного обучения. Функция Аккермана стала классическим тестом для компиляторов и интерпретаторов: на ней проверяют, как язык работает с глубокой рекурсией и хвостовой оптимизацией. Если ты хоть раз ловил StackOverflow на безобидном на вид коде, скорее всего где-то рядом был именно такой паттерн.
В теории сложности и анализе алгоритмов обратная функция Аккермана α(n) появляется в оценках производительности структуры данных «система непересекающихся множеств». Эта функция растёт настолько медленно, что для всех практических входов её значение меньше 5. Поэтому амортизированную сложность операций часто считают почти константной. Получается красивый парадокс: одна из самых быстрорастущих функций даёт нам одну из самых медленнорастущих оценок сложности.
Для тех, кто работает с AI и большими моделями, история Аккермана это напоминание о пределах вычислимости. Современные нейросети отлично аппроксимируют функции, но классы вычислимости и теория рекурсии задают фундаментальные границы того, что вообще может быть посчитано за разумное время. Когда мы рассуждаем о том, может ли LLM «решить» произвольную задачу, стоит помнить, что между «вычислимо» и «практически вычислимо» лежит пропасть, и функция Аккермана это её самый наглядный пример.
Если хочешь поиграться, реализуй её на своём любимом языке и попробуй посчитать A(4, 1). Уже на этом значении большинство интерпретаторов начнут серьёзно страдать, и ты на практике почувствуешь разницу между теоретической вычислимостью и реальностью железа.
Если ты когда-нибудь думал, что рекурсия в твоём коде слишком запутанная, то функция Аккермана покажет, что такое настоящая бездна. Это одна из самых известных в математике функций, которая растёт настолько быстро, что обычные представления о больших числа
В чём суть. Берёшь сложение, умножение, возведение в степень, тетрацию и так далее. Все эти операции можно описать через примитивную рекурсию, то есть через простые вложенные циклы. Аккерман показал, что существует функция, которая вычислима, но при этом выходит за пределы примитивной рекурсии. То есть теоретически её посчитать можно, но никакой простой цикл с фиксированной глубиной её не опишет.
Если подставить даже скромные значения, результат становится физически невозможно записать. Например, A(4, 2) уже содержит десятки тысяч цифр. A(4, 3) превосходит количество атомов во Вселенной. А дальше начинается совсем абсурд: значения функции улетают в бесконечность так быстро, что любые попытки их вычислить упираются в стек, память и здравый смысл.
Почему это важно для разработчика и инженера машинного обучения. Функция Аккермана стала классическим тестом для компиляторов и интерпретаторов: на ней проверяют, как язык работает с глубокой рекурсией и хвостовой оптимизацией. Если ты хоть раз ловил StackOverflow на безобидном на вид коде, скорее всего где-то рядом был именно такой паттерн.
В теории сложности и анализе алгоритмов обратная функция Аккермана α(n) появляется в оценках производительности структуры данных «система непересекающихся множеств». Эта функция растёт настолько медленно, что для всех практических входов её значение меньше 5. Поэтому амортизированную сложность операций часто считают почти константной. Получается красивый парадокс: одна из самых быстрорастущих функций даёт нам одну из самых медленнорастущих оценок сложности.
Для тех, кто работает с AI и большими моделями, история Аккермана это напоминание о пределах вычислимости. Современные нейросети отлично аппроксимируют функции, но классы вычислимости и теория рекурсии задают фундаментальные границы того, что вообще может быть посчитано за разумное время. Когда мы рассуждаем о том, может ли LLM «решить» произвольную задачу, стоит помнить, что между «вычислимо» и «практически вычислимо» лежит пропасть, и функция Аккермана это её самый наглядный пример.
Если хочешь поиграться, реализуй её на своём любимом языке и попробуй посчитать A(4, 1). Уже на этом значении большинство интерпретаторов начнут серьёзно страдать, и ты на практике почувствуешь разницу между теоретической вычислимостью и реальностью железа.
👍8👏3❤2🔥2
Audiobookshelf — это бесплатный и открытый сервер для хранения и потоковой передачи аудиокниг и подкастов. Он позволяет организовывать вашу коллекцию, слушать книги в браузере или через мобильные приложения, а также делиться доступом с другими пользователями.
🔹 Основные возможности:
- Поддержка аудиокниг и подкастов
- Автоматическая загрузка метаданных и обложек
- Встроенный веб-плеер и мобильные приложения
- Многопользовательский доступ с ролями и разрешениями
- Прогресс прослушивания синхронизируется между устройствами
- Поддержка форматов MP3, M4B и других
https://github.com/advplyr/audiobookshelf
🔹 Основные возможности:
- Поддержка аудиокниг и подкастов
- Автоматическая загрузка метаданных и обложек
- Встроенный веб-плеер и мобильные приложения
- Многопользовательский доступ с ролями и разрешениями
- Прогресс прослушивания синхронизируется между устройствами
- Поддержка форматов MP3, M4B и других
https://github.com/advplyr/audiobookshelf
👍5❤1
🚀 Claude Code: от «балуюсь в терминале» до агента в проде
Claude Code уже не просто пишет код. Он рефакторит монорепо, делает code review, катит миграции и ведёт расследования инцидентов.
Разница между «иногда играюсь» и «выжимаю реальные часы экономии» — огромная.
Этот курс закрывает её за 20 практических модулей.
Что соберёшь своими руками:
— кастомные slash-команды и sub-agents
— свои MCP-серверы под твой стек
— хуки и автоматизация ревью
— workflow в GitHub Actions и интеграция в CI/CD
Что получишь на выходе:
• релизы быстрее
• ревью короче
• токены дешевле
• спокойный сон по поводу безопасности
Подойдёт разработчикам, тимлидам, DevOps и архитекторам, которые почувствовали, что Claude Code - почти магия, и хотят довести её до магии на продакшене.
🎓 Курс на Stepik
🔥 Сейчас действует скидка −50%
Хватит играться. Пора выкатывать агента в прод 👉
https://stepik.org/a/285842
Claude Code уже не просто пишет код. Он рефакторит монорепо, делает code review, катит миграции и ведёт расследования инцидентов.
Разница между «иногда играюсь» и «выжимаю реальные часы экономии» — огромная.
Этот курс закрывает её за 20 практических модулей.
Что соберёшь своими руками:
— кастомные slash-команды и sub-agents
— свои MCP-серверы под твой стек
— хуки и автоматизация ревью
— workflow в GitHub Actions и интеграция в CI/CD
Что получишь на выходе:
• релизы быстрее
• ревью короче
• токены дешевле
• спокойный сон по поводу безопасности
Подойдёт разработчикам, тимлидам, DevOps и архитекторам, которые почувствовали, что Claude Code - почти магия, и хотят довести её до магии на продакшене.
🎓 Курс на Stepik
🔥 Сейчас действует скидка −50%
Хватит играться. Пора выкатывать агента в прод 👉
https://stepik.org/a/285842
❤3👍2🔥1🥰1🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
Вайбкодер после того, как попросили Opus 4.7 отцентрировать div
🤣33🔥3❤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
👍15❤6🔥2🤔1
Ты лезешь в Kubernetes слишком рано
K8s не сложный сам по себе. Он просто усиливает все твои слабые места. И если база хромает - ты будешь неделями дебажить «магические» проблемы, которые на деле банальны.
Перед тем как трогать Kubernetes, закрой эти вещи:
- Linux. Права, процессы, сеть. Если не понимаешь, что происходит в системе - дальше будет боль.
- Git. Не просто commit и push, а нормальная работа с ветками, ребейзами и конфликтами. Это твоя повседневка в команде.
- Docker. Умение собирать образы, уменьшать их, дебажить контейнеры. Kubernetes без этого - просто чёрный ящик.
- Сети. DNS, порты, балансировка, HTTP vs HTTPS. Половина «проблем Kubernetes» - это на самом деле сеть.
- CI/CD. Любая нормальная система живёт через пайплайны. Build, test, deploy - всё должно быть автоматом.
- Облака. Базовое понимание AWS, GCP или Azure. Если ты не знаешь, как работает compute и IAM - EKS тебя сломает.
- Мышление дебага. Логи, метрики, потом гипотезы. Не наоборот. Это главный скилл, который отличает инженера от новичка.
Kubernetes - это не старт. Это множитель.
Если база слабая - он умножит хаос. Если сильная - даст кратный рост.
Что бы ты ещё добавил?
K8s не сложный сам по себе. Он просто усиливает все твои слабые места. И если база хромает - ты будешь неделями дебажить «магические» проблемы, которые на деле банальны.
Перед тем как трогать Kubernetes, закрой эти вещи:
- Linux. Права, процессы, сеть. Если не понимаешь, что происходит в системе - дальше будет боль.
- Git. Не просто commit и push, а нормальная работа с ветками, ребейзами и конфликтами. Это твоя повседневка в команде.
- Docker. Умение собирать образы, уменьшать их, дебажить контейнеры. Kubernetes без этого - просто чёрный ящик.
- Сети. DNS, порты, балансировка, HTTP vs HTTPS. Половина «проблем Kubernetes» - это на самом деле сеть.
- CI/CD. Любая нормальная система живёт через пайплайны. Build, test, deploy - всё должно быть автоматом.
- Облака. Базовое понимание AWS, GCP или Azure. Если ты не знаешь, как работает compute и IAM - EKS тебя сломает.
- Мышление дебага. Логи, метрики, потом гипотезы. Не наоборот. Это главный скилл, который отличает инженера от новичка.
Kubernetes - это не старт. Это множитель.
Если база слабая - он умножит хаос. Если сильная - даст кратный рост.
Что бы ты ещё добавил?
❤11🔥9👍6🤔2❤🔥1
🧩 Визуализация памяти классов в Neovim
classlayout.nvim позволяет увидеть, как компилятор размещает поля и выравнивание в структурах и классах C/C++. Просто наведите курсор на тип или переменную, и получите наглядное представление о распределении памяти.
🚀 Основные моменты:
- Поддержка структур, классов, объединений и STL типов
- Автоопределение флагов компилятора из
- Мгновенный доступ к кэшированным данным
- Интеграция с clangd для разрешения типов
📌 GitHub: https://github.com/J-Cowsert/classlayout.nvim
#lua
classlayout.nvim позволяет увидеть, как компилятор размещает поля и выравнивание в структурах и классах C/C++. Просто наведите курсор на тип или переменную, и получите наглядное представление о распределении памяти.
🚀 Основные моменты:
- Поддержка структур, классов, объединений и STL типов
- Автоопределение флагов компилятора из
compile_commands.json- Мгновенный доступ к кэшированным данным
- Интеграция с clangd для разрешения типов
📌 GitHub: https://github.com/J-Cowsert/classlayout.nvim
#lua
GitHub
GitHub - J-Cowsert/classlayout.nvim: Neovim plugin to visualize C/C++ class/struct memory layouts using clang
Neovim plugin to visualize C/C++ class/struct memory layouts using clang - J-Cowsert/classlayout.nvim
❤2👍2
🚀 В Linux каждый процесс живёт в своей версии памяти.
Два разных приложения могут одновременно использовать один и тот же адрес, например
Почему так?
Потому что процесс видит не настоящую физическую память, а virtual address space - виртуальное адресное пространство.
Когда программа делает
Если запустить такую программу в двух терминалах, адрес может оказаться одинаковым.
Но это не значит, что процессы пишут в одну и ту же память.
Для каждого процесса ядро и MMU переводят виртуальные адреса в свои физические страницы. Один и тот же виртуальный адрес в процессе A может указывать на один участок RAM, а в процессе B - на другой.
Именно поэтому процессы изолированы друг от друга.
Программа думает:
«Это моя память».
На самом деле Linux говорит:
«Это твоя иллюзия памяти. А куда она реально мапится - решаю я».
Виртуальная память - одна из тех штук, без которых не было бы нормальной изоляции процессов, безопасного multitasking, shared libraries, fork, mmap и современного Linux в целом.
Два разных приложения могут одновременно использовать один и тот же адрес, например
0x555555..., но попадать при этом в совершенно разные места физической RAM.Почему так?
Потому что процесс видит не настоящую физическую память, а virtual address space - виртуальное адресное пространство.
Когда программа делает
malloc, она получает адрес, который выглядит как обычный указатель:
int *x = malloc(sizeof(int));
*x = getpid();
printf("PID %d -> virtual address: %p -> value: %d\n",
getpid(), (void*)x, *x);
Если запустить такую программу в двух терминалах, адрес может оказаться одинаковым.
Но это не значит, что процессы пишут в одну и ту же память.
Для каждого процесса ядро и MMU переводят виртуальные адреса в свои физические страницы. Один и тот же виртуальный адрес в процессе A может указывать на один участок RAM, а в процессе B - на другой.
Именно поэтому процессы изолированы друг от друга.
Программа думает:
«Это моя память».
На самом деле Linux говорит:
«Это твоя иллюзия памяти. А куда она реально мапится - решаю я».
Виртуальная память - одна из тех штук, без которых не было бы нормальной изоляции процессов, безопасного multitasking, shared libraries, fork, mmap и современного Linux в целом.
❤11🔥4👍1🤔1
Представьте: через четыре месяца вы открываете чужой .NET-проект и читаете его как книгу.
IServiceCollection не вызывает ступора.
async Task<IActionResult> пишется на автомате. Вы точно знаете, почему EF Core сгенерировал именно такой SQL - и как переписать запрос, чтобы он летал.Это не фантазия. Это результат после 16 модулей, в которых каждая концепция объясняется через код и закрепляется практикой.
ООП, SOLID, LINQ, async/await, DI, EF Core, ASP.NET Core, Docker, Kubernetes - всё, что казалось магией, станет рабочим инструментом.А бонусом - портфолио проектов: от CLI-утилит и REST API до собственного SaaS с multi-tenancy, JWT и деплоем в Kubernetes под TLS.
Скидка - 58% доступна 48 часов: https://stepik.org/a/282984/
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2🔥2
Kubernetes сам по себе ничего не решает. Сила появляется, когда начинаешь правильно его комбинировать
Именно связки инструментов превращают кластер в полноценную платформу
База, без которой никуда
K8s + Docker даёт стандарт оркестрации контейнеров
K8s + Terraform автоматизирует поднятие инфраструктуры
K8s + Helm убирает боль с деплоем и версиями
K8s + ArgoCD закрывает GitOps и делает релизы предсказуемыми
Наблюдаемость и безопасность
K8s + Prometheus + Grafana дают полный контроль над метриками
K8s + Vault решает проблему секретов без костылей
K8s + Cilium добавляет нормальную сетевую безопасность и observability
K8s + OPA позволяет внедрить policy as code и контролировать всё на уровне кластера
Трафик и масштабирование
K8s + NGINX Ingress или Envoy дают контроль над L7 трафиком
K8s + Istio превращает всё это в полноценный service mesh
K8s + KEDA добавляет event-driven scaling, без ручного тюнинга
AI и платформенная инженерия
K8s + Ollama + KServe позволяют гонять LLM-инференс в проде
K8s + Kubeflow закрывает ML пайплайны
K8s + Crossplane делает из Kubernetes основу для platform engineering
По факту Kubernetes это не инструмент, а каркас
И то, во что он превратится, полностью зависит от того, какие связки ты соберёшь
Именно связки инструментов превращают кластер в полноценную платформу
База, без которой никуда
K8s + Docker даёт стандарт оркестрации контейнеров
K8s + Terraform автоматизирует поднятие инфраструктуры
K8s + Helm убирает боль с деплоем и версиями
K8s + ArgoCD закрывает GitOps и делает релизы предсказуемыми
Наблюдаемость и безопасность
K8s + Prometheus + Grafana дают полный контроль над метриками
K8s + Vault решает проблему секретов без костылей
K8s + Cilium добавляет нормальную сетевую безопасность и observability
K8s + OPA позволяет внедрить policy as code и контролировать всё на уровне кластера
Трафик и масштабирование
K8s + NGINX Ingress или Envoy дают контроль над L7 трафиком
K8s + Istio превращает всё это в полноценный service mesh
K8s + KEDA добавляет event-driven scaling, без ручного тюнинга
AI и платформенная инженерия
K8s + Ollama + KServe позволяют гонять LLM-инференс в проде
K8s + Kubeflow закрывает ML пайплайны
K8s + Crossplane делает из Kubernetes основу для platform engineering
По факту Kubernetes это не инструмент, а каркас
И то, во что он превратится, полностью зависит от того, какие связки ты соберёшь
❤9👍6🔥3👎1
Практическое руководство по росту в C#-разработке. Материал собран для тех, кто хочет получить инженерную глубину, а не просто накликать CRUD по туториалам.
Здесь последовательность изучения, лучшие практики, ресурсы и трезвый разбор того, как работать с ИИ-инструментами и оставаться востребованным.
https://github.com/Develp10/Csharp_Roadmap/
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2🔥2👍1
Selectel работает — вы зарабатываете до 20% от чека клиентов
Становитесь партнером ведущего независимого провайдера ИТ-инфраструктуры, рекомендуйте качественный сервис и получайте пассивный доход от реферальной программы. Партнером может стать как юридическое, так и физическое лицо.
При регистрации в программе до 31 мая вы получите повышенную ставку 20% на 3 месяца. А после этого срока — от 10 до 15% от чека с ежемесячными выплаты без лимитов по сумме и сроку.
Ваши рефералы будут довольны. В Selectel 50+ инфраструктурных продуктов, большой выбор комплектующих для серверов и бесплатная техподдержка.
Регистрируйтесь в партнерской программе Selectel до 31 мая и получайте 20% от чека ваших рефералов первые 3 месяца: https://slc.tl/uzqv1
Реклама. АО "Селектел". erid:2W5zFHUVYRf
Становитесь партнером ведущего независимого провайдера ИТ-инфраструктуры, рекомендуйте качественный сервис и получайте пассивный доход от реферальной программы. Партнером может стать как юридическое, так и физическое лицо.
При регистрации в программе до 31 мая вы получите повышенную ставку 20% на 3 месяца. А после этого срока — от 10 до 15% от чека с ежемесячными выплаты без лимитов по сумме и сроку.
Ваши рефералы будут довольны. В Selectel 50+ инфраструктурных продуктов, большой выбор комплектующих для серверов и бесплатная техподдержка.
Регистрируйтесь в партнерской программе Selectel до 31 мая и получайте 20% от чека ваших рефералов первые 3 месяца: https://slc.tl/uzqv1
Реклама. АО "Селектел". erid:2W5zFHUVYRf
Хочешь держать несколько терминальных сессий открытыми и не плодить кучу окон?
Используй `tmux`.
Он позволяет запускать отдельные сессии, делить терминал на панели, отключаться от работы и потом возвращаться к ней с того же места.
Например, ты подключился к серверу, запустил долгий процесс и не хочешь потерять его при разрыве SSH. Создаешь сессию:
tmux new -s myserver
Отключаешься от нее - процесс продолжает работать. Потом можно посмотреть список сессий:
tmux ls
И вернуться обратно:
tmux attach -t myserver
tmux превращает один терминал в полноценное рабочее пространство.
Сессии, окна, панели, detach, reattach - и ты больше не зависишь от одного открытого терминального окна.
#linux #terminal #tmux #devops
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍5👎3❤2