Рубрика «linux» - 306

image
Мы продолжаем публиковать на Хабре лекции курса «Сетевое программирование в UNIX». Хотя тема второй лекции – не сетевая, ее можно считать смежной с сетевым программированием. Видео посвящено способам обработки нескольких клиентов в одном сетевом сервере. «Использование более одного процесса можно организовать по-разному. Можно создавать процессы заранее (это модель prefork) или делать это по мере необходимости. Оба способа рассмотрены в лекции», — рассказал Александр Патраков, автор курса.

Стоит отметить, что в нашем курсе не затронутаЧитать полностью »

Изучая node.js я обнаружил, что добиться успеха в этом непростом деле мне мешает постоянная необходимость перезапускать руками сервер node в командной строке. Так появилась идея повесить перезапуск сервера на горячую клавишу в любимом редакторе (в моем случае, Vim'е) сохранив возможность следить за выводом STDOUT и STDERR сервера. Решение linux-only, поскольку написано на sh.

Однако, одним node.js дело не ограничивается. Используя это решение можно организовать перезапуск и перенаправление вывода любой утилиты (python/php/etc), просто указав ее имя в настройках скрипта вместо node.

Не исключаю вероятность, всё это (и намного больше) реализовано в «нормальнойЧитать полностью »

Системное администрирование / [Из песочницы] QoS в Linux: фильтр U32
Так повелось, что фильтр U32 в подсистеме управления трафиком ядра Linux считается простым и понятным, а потому в подробном документировании не нуждается. Например, в LARTC (Linux Advanced Routing and Traffic Control) про него лишь несколько абзацев. Но на самом деле U32 устроен гораздо сложнее и интереснее, но и в использовании он не так прост, как может показаться. Под катом статья по этому фильтру с примерами использования и подробными пояснениями.
Сопоставление

И так, основная функция фильтра U32 заключается в том, что берётся некоторый блок данных из пакета, и сравнивается с заданным значением. Если значения совпадают, то выполняютсяЧитать полностью »

Системное программирование / [Из песочницы] Учимся писать модуль ядра (Netfilter) или Прозрачный прокси для HTTPS
Эта статья нацелена на читателей, которые начинают или только хотят начать заниматься программированием модулей ядра Linux и сетевых приложений. А также может помочь разобраться с прозрачным проксированием HTTPS трафика.
Небольшое оглавление, чтобы Вы могли оценить, стоит ли читать дальше:Как работает прокси сервер. Постановка задачи.

Клиент – серверное приложение с использованием неблокирующих сокетов.

Написание модуля ядра с использованием библиотеки Netfilter.

Взаимодействие с модулем ядра из пользовательского пространства (Netlink)

P.S. Для тех, кому толькоЧитать полностью »

Убунтариум / На Distrowatch появился новый русско-украинский дистрибутив: Ubuntu DesktopPack
На днях на DistroWatch.com: появился новый русско-украинский дистрибутив Ubuntu DesktopPack, который за 4-е дня с момента публикации стремительно поднялся с 319 позиции на 122.
Популярность обеспечивается наличием в дистрибутиве кроме стандартного интерфейса Unity интерфейсов Gnome Shell (для тех кому новый Gnome-интерфейс нравиться больше чем Unity) и Gnome Classic (для тех кто не привык к инновациям и отдает предпочтение классическому интерфейсу от Gnome). Также в дистрибутиве уже из коробки присутствует полная поддержка мультимедиа, русского, украинского и английского языков, что избавляет от необходимости сразу после установки докачивать что то из интернета.
Читать полностью »

Вдохновившись статьёй Привет из свободного от libc мира, я так же решил проделать нечто подобное. Чтобы не заниматься этим бесцельно, я решил поставить перед собой следующую задачу. Сделать программу, выводящую какую-нибудь простую строку, вроде «ELF, hello!». Разобраться с тем, как именно она будет представлена в исполняемом файле. Ну и попутно, постараться уложиться в 100 байт.
Для начала, стандартный helloworld на C++
#include
using namespace std;
int main()
{
cout << "ELF, hello!n";
return 0;
}

Компилируем, смотри размер:$ g++ test.cpp -static && ls -s -h a.out
1,3M a.out
Сколько, сколько? 1.3 Мб? Для вывода одного единственное сообщения размером в 12 байт? Хм… Ладно,Читать полностью »

Сетевые технологии / DNS сервер BIND (теория)
Основная цель DNS — это отображение доменных имен в IP адреса и наоборот — IP в DNS. В статье я рассмотрю работу DNS сервера BIND (Berkeley Internet Name Domain, ранее: Berkeley Internet Name Daemon), как сАмого (не побоюсь этого слова) распространенного. BIND входит в состав любого дистрибутива UNIX. Основу BIND составляет демон named, который для своей работы использует порт UDP/53 и для некоторых запросов TCP/53.
Основные понятия Domain Name System

Исторически, до появления доменной системы имен роль инструмента разрешения символьных имен в IP выполнял файл /etc/hosts, который и в настоящее время играет далеко не последнюю роль в данном деле. Но с ростом количества хостов вЧитать полностью »

Типографика / [Из песочницы] Шрифты из склепа
Мне от моноширинных шрифтов многого не надо. Адекватная поддержка кириллицы. Для программирования — отсутствие замыливания. Возможность различать 0 (который ноль) и О. Возможность различать I (которое i), l (которое L) и | (которое or). Для работы в консольном двухпанельнике — поддержка псевдографики. Однако в современном мире подобных шрифтов не так, чтобы много. Откуда же их взять?
Осторожно! Под катом — сплошные анахронизмы.
Мне эта мысль не давала покоя довольно долго. Была перепробована куча вариантов, и ни один из них не устроил. Да, есть Terminus, но на его реализацию кириллицы невозможно смотреть без слез, есть Nouveau IBM — он почтиЧитать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js