Внутреннее устройство веб-сервера. Часть 1: От syscalls до WSGI

В этой статье мы разберём, какие механизмы предоставляет Linux для работы с сетью и как на их основе строятся фреймворки и библиотеки, которыми мы пользуемся каждый день. К концу статьи мы напишем минималистичный WSGI -веб-сервер, с помощью которого можно запускать произвольные WSGI -приложения.

https://habr.com/ru/articles/1002550/

#сервер #backend #python #сокет #socket #sockets #системное_программирование #linux_kernel #ядро_линукс #системные_вызовы

Внутреннее устройство веб-сервера. Часть 1: От syscalls до WSGI

Когда мы разрабатываем веб-сервисы на Python, мы почти всегда работаем с готовыми абстракциями: фреймворками ( fastapi , flask , django ) и веб-серверами ( uvicorn , gunicorn ). Фреймворк...

Хабр

[Перевод] Торвальдс рассказал, как превратил Linux из проекта одного человека в коллективную работу с помощью друзей и коллег

Линус Торвальдс и его друзья рассказали журналисту The Register Стивену Дж. Вогану-Николсу, как сольный проект на Linux превратился в «глобальный джем-сейшен».

https://habr.com/ru/articles/1001460/

#линус_торвальдс #linux #linux_kernel #linux_kernel_development #ядро_linux #разработка_linux #история_linux #воспоминания

Торвальдс рассказал, как превратил Linux из проекта одного человека в коллективную работу с помощью друзей и коллег

Линус Торвальдс и его друзья рассказали журналисту The Register Стивену Дж. Вогану-Николсу, как сольный проект на Linux превратился в «глобальный джем-сейшен». Если вы хоть что-то знаете об истории...

Хабр

Тетрис в ядре Linux

Вероятно, вы знаете, что если запустить ядро Linux без корневой файловой системы или файла initramfs, то оно упадет с сообщением о панике ядра. Но возможна ли работа ядра Linux без этих, вроде бы обязательных компонентов? Ответ на вопрос - да, возможна, но использовать такие возможности в конечном продукте не стоит. При запуске ядра ему могут передаваться параметры через командную строку. Одним из параметров является rootwait , указывающий ядру на то, что нужно подождать появление корневой файловой системы. В этом случае ядро ожидает появление корневой системы, а не завершается выполнение ядра с ошибкой. Формально ничто не мешает написать модуль ядра, который взаимодействует с клавиатурой и дисплеем и временно выполняет функции пользовательского приложения, пока ядро ожидает корневую файловую систему. Пользовательским приложением может быть, например, игра Тетрис. Она из-за своей простоты в реализации и зрелищности добавляет наглядности в изучении темы и дает чувство завершенности. А мысль о том, что тетрис, работает в ядре, усиливает эффект.

https://habr.com/ru/companies/timeweb/articles/989156/

#linux #linux_kernel #linux_modules #qemu #c_language #lowlevel #ненормальное_программирование #timeweb_статьи

Тетрис в ядре Linux

Вероятно, вы знаете, что если запустить ядро Linux без корневой файловой системы или файла initramfs, то оно упадет с сообщением о панике ядра. Но возможна ли работа ядра Linux без этих, вроде бы...

Хабр

Изучаем, как работает клавиатура в Linux, и пишем шуточный модуль ядра

Часто в учебной литературе по Linux приведены скучные и неинтересные примеры написания модулей ядра. Я решил исправить этот пробел и показать, что разработка небольшого модуля — это задача под силу многим, если понимаешь базовые принципы разработки программ.

https://habr.com/ru/companies/ruvds/articles/992906/?utm_source=habrahabr&utm_medium=rss&utm_campaign=992906

#linux #linux_kernel #linux_driver #linux_module #c #keyboard #fun #input #ruvds_статьи

Изучаем, как работает клавиатура в Linux, и пишем шуточный модуль ядра

Часто в учебной литературе по Linux приведены скучные и неинтересные примеры написания модулей ядра. Я решил исправить этот пробел и показать, что разработка небольшого модуля — это задача под силу...

Хабр

Изучаем, как работает клавиатура в Linux, и пишем шуточный модуль ядра

Часто в учебной литературе по Linux приведены скучные и неинтересные примеры написания модулей ядра. Я решил исправить этот пробел и показать, что разработка небольшого модуля — это задача под силу многим, если понимаешь базовые принципы разработки программ.

https://habr.com/ru/companies/ruvds/articles/992906/

#linux #linux_kernel #linux_driver #linux_module #c #keyboard #fun #input #ruvds_статьи

Изучаем, как работает клавиатура в Linux, и пишем шуточный модуль ядра

Часто в учебной литературе по Linux приведены скучные и неинтересные примеры написания модулей ядра. Я решил исправить этот пробел и показать, что разработка небольшого модуля — это задача под силу...

Хабр
Linux 6.19: 40% Speed Boost on Old AMD GPUs & Faster Ext4 - OMG! Ubuntu

Linus Torvalds has released Linux 6.19, moving legacy AMD Radeon GPUs to the modern amdgpu driver and enabling larger block sizes in ext4 for improved

OMG! Ubuntu

eBPF в Linux: когда писать код в ядре — неплохая идея

eBPF давно перестал быть узкоспециализированной игрушкой для kernel-энтузиастов и исследователей внутренностей Linux. Сегодня с ним так или иначе сталкиваются не только SRE, но вообще все, кто разрабатывает системы, близкие к сети, производительности или безопасности: от авторов сетевых плагинов (CNI) и прокси, до разработчиков кастомных агентских решений, observability-инструментов и low-level инфраструктурных компонентов. Даже если вы никогда не писали eBPF-код руками, есть хороший шанс, что он уже работает в вашей системе — тихо, незаметно и с довольно широкими полномочиями. Чаще всего eBPF проявляется через удобные CLI, библиотеки и дашборды: установили агент, включили, и внезапно система знает о происходящем больше, чем strace, tcpdump и половина метрик вместе взятых. Но за этим комфортом скрывается нетривиальный механизм исполнения пользовательского кода прямо внутри ядра Linux — с жёсткими правилами валидации, ограниченной моделью исполнения и целым набором архитектурных компромиссов, о которых обычно не принято говорить в маркетинговых описаниях.

https://habr.com/ru/companies/gnivc/articles/990402/

#ebpf #linux_kernel #network #linux

eBPF в Linux: когда писать код в ядре — неплохая идея

eBPF давно перестал быть узкоспециализированной игрушкой для kernel-энтузиастов и исследователей внутренностей Linux. Сегодня с ним, так или иначе, сталкиваются не только SRE, но вообще все, кто...

Хабр

Как заставить китайскую механическую клавиатуру работать в Linux

Как заставить китайскую механическую клавиатуру (Zifriend, SAMA, Gamestop, Cyberlinx) работать в Linux, хотя производитель этого не обещал. История о том, как я «подружил» свою Cyberlinx ZA63 с Linux Ubuntu, когда официально поддержки нет. Для всех, кто думал, что клавиатуры «просто работают» везде или столкнулся с такой же проблемой.

https://habr.com/ru/articles/982984/?utm_source=habrahabr&utm_medium=rss&utm_campaign=982984

#linux_kernel #ubuntu #keyboard #механические_клавиатуры #grub

Как заставить китайскую механическую клавиатуру работать в Linux

Предыстория Мне подарили компактную механическую клавиатуру CYBERLYNX ZA63 с подсветкой — выглядит стильно, клавиши приятно щёлкают. До этого дел с механникой не имел. Подключил к домашнему ПК. На...

Хабр

Как заставить китайскую механическую клавиатуру работать в Linux

Как заставить китайскую механическую клавиатуру (Zifriend, SAMA, Gamestop, Cyberlinx) работать в Linux, хотя производитель этого не обещал. История о том, как я «подружил» свою Cyberlinx ZA63 с Linux Ubuntu, когда официально поддержки нет. Для всех, кто думал, что клавиатуры «просто работают» везде или столкнулся с такой же проблемой.

https://habr.com/ru/articles/982984/

#linux_kernel #ubuntu #keyboard #механические_клавиатуры #grub

Как заставить китайскую механическую клавиатуру работать в Linux

Предыстория Мне подарили компактную механическую клавиатуру CYBERLYNX ZA63 с подсветкой — выглядит стильно, клавиши приятно щёлкают. До этого дел с механникой не имел. Подключил к домашнему ПК. На...

Хабр

Строим свой остров: как создать минимальный Linux для Raspberry Pi

Ещё три года назад меня просили рассказать, как собрать минимальный Linux для Raspberry Pi, — и сейчас я выполняю эту просьбу. Несмотря на то, что первоначальной целью Raspberry Pi было создание дешёвого устройства для обучения базовым навыкам программирования, информации о том как, создать минимальный Linux для Raspberry Pi в интернете немного. Я хочу восполнить этот пробел для желающих начать погружение в embedded-разработку. Linux для встраиваемых систем, включая Raspberry Pi, и Linux для PC имеют ряд различий. Различия касаются используемых загрузчиков, платформо-зависимого кода ядра, файловых систем и прочего. Для встраиваемых систем большое значение имеет Board Support Package (BSP), который обычно сопровождает различные системы на кристалле (System on Chip — SoC) или одноплатные компьютеры (Single Board Computer — SBC). Чтобы сделать статью интереснее и полезнее, я рассмотрю создание Linux для Raspberry Pi 3 и для Raspberry Pi 4 и укажу на различие этих одноплатных компьютеров в контексте загрузки и сборки ядра Linux. Также мы соберём и запустим downstream и upstream Linux-ядра для Raspberry Pi. Под Raspberry Pi 3 и Raspberry Pi 4 подразумеваются модели Raspberry Pi 3 Model B и Raspberry Pi 4 Model B соответственно. А обе модели называются в статье Raspberry Pi. Как и в моей прошлой статье по сборке Linux для PC собирать мы будем без использования Buildroot или Yocto Project , только сделаем его более практичным, так как он будет поддерживать работу с SD-картой. Такие сборки минимального Linux без Buildroot и Yocto Project мне чем-то напоминают высадку на необитаемый остров, где вы вынуждены минимальным набором инструментов благоустраивать свою жизнь. Да, вашей жизни ничего не угрожает, но определённая закалка в виде полученных базовых знаний остаётся. Поэтому системе Linux, создаваемой в статье, я дал кодовое название Robinson Linux. Я надеюсь, что после прочтения статьи вам будет гораздо проще собрать Linux для другого одноплатного компьютера, например, Orange Pi. Кому интересно погрузиться в embedded-разработку, добро пожаловать под кат.

https://habr.com/ru/companies/ruvds/articles/971084/?utm_source=habrahabr&utm_medium=rss&utm_campaign=971084

#linux #embedded_linux #raspberry_pi #linux_kernel #crosscompilation #devicetree #bootloader #uart #arm #статьи_ruvds

Строим свой остров: как создать минимальный Linux для Raspberry Pi

Ещё три года назад меня просили рассказать, как собрать минимальный Linux для Raspberry Pi, — и сейчас я выполняю эту просьбу. Несмотря на то, что первоначальной целью Raspberry Pi было создание...

Хабр