Обновить
67.95

*nix *

Хаб про UNIX-подобные операционные системы

Сначала показывать
Порог рейтинга
Уровень сложности

Пособие по программированию модулей ядра Linux. Ч.3

Время на прочтение25 мин
Количество просмотров17K

От редакции: Сегодня исполнился 31 год с момента первого анонсирования Linux. Именно в этот день, 25 августа 1991 года Линус Торвальдс разместил в новостях Usenet comp.os.minix соообщение следующего характера:
Привет всем тем, кто использует миникс — Я делаю (свободную) операционную систему (это только хобби, не столь большое и профессиональное, как GNU) для 386(486)AT клонов. Эта система пишется с апреля и скоро будет готова. Я хочу получить любой отзыв, касающийся вещей, которые нравятся/не нравятся людям в миникс, так как моя ОС похожа на неё (такое же устройство файловой системы (по практическим соображениям), среди прочего).

В настоящее время я портировал bash (1.08) и gcc (1.40), и, похоже, эти программы работают. Это значит, что я получу что-то практичное в ближайшие несколько месяцев, и я хочу узнать, какие возможности хотят большинство людей. Любые предложения принимаются, но я не обещаю, что я осуществлю их:-)

Линус (torvalds@kruuna.helsinki.fi)

PS. Да — в ней нет кода миникс, и будет мультипотоковая ФС. Система НЕПЕРЕНОСИМА (использует команды Intel 386 и т. д.) и, вероятно, будет поддерживать только жесткие диски AT, так как это всё, что у меня есть 🙁
Ну а мы — в этот интересный день, можем только пожелать, чтобы труды по переводу этого руководства были для вас полезны.

Продолжаем серию статей по созданию модулей ядра. В текущей части мы разберем работу с файловой системой /proc, взаимодействие с модулями при помощи sysfs, а также работу с файлами устройств.
Читать дальше →

Краткий справочник по «всем-всем» командам Linux

Уровень сложностиСредний
Время на прочтение90 мин
Количество просмотров215K

Периодически меня на начальном курсе просят дать "список всех-всех команд с кратким описанием что делает"... Ну прям "всех-всех". И ведь если искать в интернете "такие" справочники существуют - либо про "20-30 команд, но самых важных", либо с неточностями и устаревшей информацией. Так что предлагаю вашему вниманию свою версию такого "краткого" справочника (на 300, 515, 612, 716, 842, 1005,... 1260 команд) с ссылками на wiki-описание и на cheat.sh-примеры наиболее важных команд.

Справочник по всем-всем командам LINUX

Брайан Керниган добавляет в AWK поддержку юникода

Время на прочтение2 мин
Количество просмотров9.8K

Для мира Unix эта новость — что-то в духе «появился Моисей и анонсировал дополнение к десяти заповедям».

AWK, язык программирования для анализа текстовых файлов, является ключевой частью Unix-систем — включая Linux, BSD и другие. Для того, чтобы OS могла считаться POSIX-совместимой, она обязана включать AWK. Впервые AWK появился в 1977-м и был включен в Version 7 UNIX в 1979-м — в последней версии UNIX от Bell Labs перед тем, как AT&T превратили его в коммерческий продукт.

В том, что он получает поддержку Unicode, заметнее даже не сама фича, а кто занялся её реализацией: канадский информатик Брайан Керниган.

Название AWK — аббревиатура, образованная по фамилиям трёх его создателей: Альфреда Ахо (обладателя премии Тьюринга), Питера Вейнбергера и Брайана Кернигана. Также Керниган — это буква «K» в названии «K&R C»: классической книге 1978 года «The C Programming Language», написанной Керниганом и великим Деннисом Ритчи.

Читать далее

Шифровальщики и трояны для FreeBSD – краткий обзор

Время на прочтение8 мин
Количество просмотров6.9K

В комментариях к моей заметке об энкодерах для NAS один из читателей поинтересовался, а были ли похожие трояны под FreeBSD? И я подумал: а ведь действительно, интересный вопрос! Шифровальщики для этой платформы существуют, и как минимум один совершенно точно распространялся в «дикой природе». Правда, руткиты и другое вредоносное зверьё для неё встречается гораздо чаще, всё-таки, шифровальщики — это слегка экзотика. Вспоминается, что в период, когда я работал в антивирусной компании, нет-нет, да изредка проскакивало что-то, связанное с FreeBSD. Потому я решил вспомнить вредоносы для этой ОС, о которых мне когда-либо доводилось слышать. Ну, и про шифровальщика тоже поговорим.
Читать дальше →

Операционная система FreeBSD на ноутбуке Lenovo

Время на прочтение117 мин
Количество просмотров53K

В этой статье я хочу поделиться с общественностью некоторыми аспектами настройки и эксплуатации операционной системы FreeBSD при установке на современный ноутбук с целью использования его как основного рабочего места инженера (программиста, электронщика или конструктора). В своих предыдущих статьях я упоминал, что являюсь тонким ценителем этой ОС и с некоторых пор организовал своё рабочее место под управлением FreeBSD, о чем ни сколько не пожалел, и даже наоборот — мои волосы теперь по-настоящему мягкие и шелковистые.

Моя статья посвященная настройке САПР КОМПАС-3D под FreeBSD получила ряд одобрительных комментариев, поэтому мне захотелось продолжить тему «FreeBSD на десктопе». К тому же, есть добрые предпосылки — недавно я приобрел новый современный ноутбук Lenovo Ideapad 3 Gaming взамен окончательно рассыпавшегося на несколько частей Asus VX7, а с ним и массу приятного и затейливого опыта установки и настройки ОС FreeBSD для работы на новом «железе». В этой статье я не будут касаться установки и настройки специализированного ПО и прочих САПР, будет рассмотрен только системный вопрос: установка операционной системы, драйверов, патчей, библиотек, настройка и борьба с железом. Будет много выдержек из системного руководства (мануала - man) — уж сильно я к нему пристрастился за последние 130 лет.

Ссылка на статью в формате PDF для "офф-лайн" прочтения

Продолжить читать журнал

Как справиться с устареванием apt-key и add-apt-repository с помощью gpg в Ubuntu 22.04

Время на прочтение10 мин
Количество просмотров42K

apt-key - это утилита, используемая для управления ключами, которые APT использует для аутентификации пакетов. Это тесно связано с утилитой add-apt-repository, которая добавляет внешние репозитории с использованием серверов ключей в список надежных источников установки APT. Однако ключам, добавленным с помощью apt-key и add-apt-repository, apt доверяет глобально. Эти ключи не ограничиваются авторизацией единственного хранилища, для которого они были предназначены. Любой ключ, добавленный таким образом, может быть использован для авторизации добавления любого другого внешнего хранилища, что представляет собой важную проблему безопасности.

Начиная с Ubuntu 20.10, использование apt-key выдает предупреждение о том, что инструмент устареет в ближайшем будущем; аналогичным образом, add-apt-repository также скоро устареет. Хотя эти предупреждения об устаревании строго не запрещают использовать apt-key и add-apt-repository с Ubuntu 22.04, но игнорировать их не рекомендуется.

В настоящее время рекомендуется использовать gpg вместо apt-key и add-apt-repository, и в будущих версиях Ubuntu это будет единственным вариантом. apt-key и add-apt-repository сами по себе всегда действовали как оболочки, вызывая gpg в фоновом режиме. Использование gpg напрямую отсекает посредника. По этой причине метод gpg обратно совместим со старыми версиями Ubuntu и может использоваться в качестве замены apt-key.

В этом руководстве будут описаны две процедуры, использующие альтернативы apt-key и add-apt-repository соответственно. Сначала будет добавлено внешнее хранилище с использованием открытого ключа с помощью gpg вместо использования apt-key. Во-вторых, в качестве дополнения в этом руководстве будет рассмотрено добавление внешнего репозитория с использованием сервера ключей с gpg в качестве альтернативы использованию add-apt-repository.

Читать далее

Пособие по программированию модулей ядра Linux. Ч.2

Время на прочтение19 мин
Количество просмотров17K

Продолжение последней версии руководства по написанию модулей ядра от 2 июля 2022. В первой половине текущей части мы подробнее разберём структуру и принцип действия модулей, узнаем, чем отличается пространство пользователя от пространства ядра, а также немного поговорим об использовании памяти. Вторая же половина будет посвящена одному из типов модулей — драйверам устройств, основы работы с которыми мы также подробно рассмотрим.
Читать дальше →

Установка OpenWRT на CheckPoint T-120 (4200 appliance)

Время на прочтение5 мин
Количество просмотров12K

В очередной раз просматривая объявления о продаже компьютерной техники и всяческой электроники наткнулся на интересного зверя - корпоративный файрвол CheckPoint T-120. Быстренько погуглив, нашел технические характеристики этого устройства. Вот они:

Читать далее

showcert: проверяем сертификаты (без боли)

Время на прочтение4 мин
Количество просмотров19K

Этот пост не про какой-то большой и сложный проект, а про очень маленькую, простую утилитку showcert, мой маленький самодельный велосипед, который экономит время и нервы. Она не для тех, кто не знает, про утилиту openssl, а для тех, кто все знает, но когда хочет проверить дату истечения почтового сертификата яндекса, немного гуглит, потом сноровисто пишет:

$echo | openssl s_client -connect mx.yandex.ru:25 -starttls smtp 2>&1 | openssl x509 -noout -dates
notBefore=Jul 25 11:16:45 2022 GMT
notAfter=Jan 22 20:59:59 2023 GMT

Когда я пишу эту строчку, мне приходят на ум много красочных многокоренных слов из флотской службы. А ведь я даже не служил... А теперь, представьте, что мы хотим не просто увидеть дату, а еще и как-то что-то сделать, если до истечения останется меньше N дней... как будет выглядеть команда?

А теперь сравните с:

$ showcert mx.yandex.ru:25
Names: mx.yandex.ru mx.yandex.net
notBefore: 2022-07-25 11:16:45 (15 days old)
notAfter: 2023-01-22 20:59:59 (165 days left)
Issuer: C=BE O=GlobalSign nv-sa CN=GlobalSign RSA OV SSL CA 2018

Ну разве не проще? showcertсам, по номеру порта догадывается, как начать STARTTLS (но конечно же, это можно переопределить через опцию -t / --starttls, например -t no или -t imap)

Предупредить о том, что сертификат скоро протухнет? Окей!

$ showcert mx.yandex.ru:25 -qw 200 || echo PROBLEM
mx.yandex.ru:25 expires in 165 days
PROBLEM

-q - тихий режим, не печатать лишнего, только предупреждения, -w 200 - завершаться с кодом 1, если до протухания меньше 200 дней. (-w без значения, проверка на 20 дней, без -w проверка валидности сегодня).

Проверки файлов:

Читать далее

Пособие по программированию модулей ядра Linux. Ч.1

Время на прочтение19 мин
Количество просмотров51K

Перед вами последняя версия пособия по программированию модулей ядра Linux, вышедшего 2 июля 2022 года. Пособие большое, поэтому материал будет разбит на серию статей. В первой части мы разберём, что такое модули ядра, рассмотрим необходимые подготовительные этапы для их создания и в завершении по традиции напишем первый простейший модуль «Hello world», попутно разобрав вопросы лицензирования, передачу аргументов командной строки и прочие нюансы. Это пособие вы можете смело воспроизводить и изменять в соответствии с условиями Open Software License v 3.0.
Читать дальше →

Пасхалки в DNS

Время на прочтение8 мин
Количество просмотров19K
Сетевой стек TCP/IP не в одночасье стал паутиной, соединившей интернет от края до края. Вся система развивалась довольно бурно, противоречиво, но в целом через инкрементальные усовершенствования в разных местах. Не было какого-то единого плана создания глобальной коммуникационной сети и подходящего под эти цели стека протоколов. Из-за этого вместо сферической семиэтажной OSI в вакууме в наличие у нас есть причудливое смешение технологий и протоколов, где стандарты, написанные в 1970-х всё ещё живы, лягаются и даже обеспечивают нагрузкой ваши боевые сервера.

The less popular 8.8.4.4 is slated for discontinuation
Figure 1. Комикс xkcd на злобу дня

Всё это в полной мере относится к подсистеме разрешения имён, aka name resolving, и DNS, как современной и наиболее полноценной реализации этой ключевой технологии. В качестве такового DNS пережил разнообразных саблезубых тигров и археоптериксов вроде YP/NIS/NIS+ эпохи накопления битов, вследствие чего в нём набралось немало артефактов и пасхальных яиц. Иногда их обнаруживают случайно при раскопках с помощью dig, но есть также и новые, нестандартные применения старого механизма.
Читать дальше →

Новое, старое, улучшенное и поддержка китайских процессоров: что собой представляет ядро Linux 5.19

Время на прочтение5 мин
Количество просмотров12K

Прошло совсем немного времени со времени релиза 5.18, и Линус Торвальдс представил новый — 5.19. Как всегда, исправлений огромное количество — свыше 16 000 от 2190 разработчиков. В прошлом релизе было примерно столько же, так что в мире Linux, можно сказать стабильность.

Объем патча составил 90 МБ, при этом изменены в разной степени почти 14 000 файлов. Добавлено 1,14 млн строк кода, удалено при этом 349 177 тыс. Что касается фокуса изменений, то активнее всего велась работа с драйверами устройств, это около 39% всех изменений, еще около 21% — обновление кода, связанное с различными аппаратными архитектурами. Ну и уже меньше изменений, связанных с сетевым стеком, файловыми системами и внутренними подсистемами. Под катом подробности о главных новшествах и апдейтах.
Читать дальше →

Библиотека вывода с использованием escape-последовательностей

Время на прочтение9 мин
Количество просмотров5.3K

Osmanip – это библиотека C++, предоставляющая полезные механизмы для работы с управляющими последовательностями ANSI и настройки потока вывода программ. С помощью этих механизмов вы можете оформлять выводимые строки различными цветами и стилями, изменять расположение курсора в терминале и регулировать прочие компоненты вроде индикаторов выполнения и графики. Весь этот функционал будет очень полезен для придания желаемого вида общему потоку вывода программы или для выполнения операций с курсором.
Читать дальше →

Ближайшие события

Пишем наш первый модуль для ядра Linux

Время на прочтение14 мин
Количество просмотров21K
image

Пожалуй, ядро Linux сегодня – это самый вездесущий (и по-прежнему недооцененный) программный код. На нем основаны все дистрибутивы Linux (что очевидно), но это далеко не все. Кроме того, на ядре Linux работает огромная масса встроенного ПО практически везде. У вас есть микроволновка? Вероятно, она работает на ядре Linux. Посудомоечная машина? Тоже. Вы состоятельный человек и приобрели автомобиль Tesla? Может быть, вы найдете в ней какие-то баги и исправите их, в таком случае, можете отправить патч им на Github, где лежит код для модели S и модели X. Электронная начинка МКС, благодаря которой станция не падает на Землю смертельно опасным и разрушительным огненным болидом — конечно же, тоже работает под Linux. Ядро легковесно. Наверное, именно поэтому оно так хорошо работает в условиях низкой гравитации.
Читать дальше →

Что такое Linux? Статья-шпаргалка для новичков

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров93K

Что такое Linux?


Салют! Это статья — попытка систематизировать некие базовые знания об Linux’ах, которая может быть полезна для продвинутых пользователей, разработчиков и админов Windows, которые еще не имели (или имели крайне небольшой и отрывочный) опыт работы с Linux системами и не знают, с чего начать, однако хотят попробовать — сами, или по причине производственной необходимости. Каждый пункт содержит не исчёрпывающие сведения, а лишь отправные пункты для дальнейшего изучения (гуглежа) материала.

Содержание:

  1. Linux Kernel aka Ядро
  2. GNU Core Utilities (coreutils)
  3. Bash — интерпретатор командной строки
  4. Системы управления пакетами и пакетные менеджеры
  5. Init systems — системы инициализации
  6. systemd
  7. Ваш первый вход на сервер
  8. Управляем пользователями
  9. Сети
  10. FHS — Filesystem Hierarchy Standard — навигация в файловых системах Linux
  11. Window system / display server — сервер экранов
  12. Полезные ссылки и список литературы для изучения


Если интересно — прыгайте под кат
one root to rule them all

Несколько хостов FreeIPA за HTTP-proxy: настраиваем HAProxy 2+

Время на прочтение5 мин
Количество просмотров5.1K

Путь инженера в телекоме часто начинается со службы технической поддержки. Чтобы вырастить из новичков высококлассных специалистов, нужно дать им возможность работать над выходящими за рамки служебных обязанностей задачами. Мы стараемся помогать активным коллегам в развитии — это один из главных принципов HOSTKEY с момента основания компании. Публикуем заметку о реализации проксирования административной панели FreeIPA через HAProxy, написанную нашим инженером техподдержки Александром Тряпкиным.

(А здесь можно прочесть, как синхронизировать FreeIPA с Active Directory).

Читать далее

Использование утилиты tar по сети через SSH

Время на прочтение4 мин
Количество просмотров20K

GNU-версию утилиты архивирования tar, равно как и её старые версии, можно использовать через сетевое подключение по протоколу ssh. От telnet/nc стоит отказаться, так как они не гарантируют безопасность соединения. Создавать архивы можно с помощью каналов (pipe) Unix/Linux, и ниже я продемонстрирую ряд примеров использования tar по ssh для архивирования в Linux, BSD/macOS или Unix-подобных системах.
Читать дальше →

Tutorial. Как отправлять сообщения из cli (и MikroTik ROS) в Telegram

Время на прочтение8 мин
Количество просмотров25K

Telegram давно уже мой основной мессенжер, и вот, решил я разобраться, как отправлять сообщения из CLI себе в клиент TG, а попутно, понял что это можно использовать и как канал уведомлений от mikrotik'ов.

Под катом - простейшие примеры.

Читать далее

Известные баги ядра Linux и борьба с ними

Время на прочтение7 мин
Количество просмотров14K

Поскольку с каждым днём в современном цифровом пространстве появляются все новые кибер-угрозы, важность безопасности IT-систем переоценить сложно. При этом уязвимыми являются не только онлайн-сети, но и операционные системы. И хотя Linux отличается более высоким уровнем безопасности в сравнении с другими ОС, на 100% от угроз не защищена и она.

В действительности наблюдается повышение количества атак на операционные системы Linux. Наиболее ценные мишени зачастую работают именно на этой ОС, что ставит её безопасность во главу угла. Например, организации, которые стремятся сохранять свои коммуникации совместимыми с HIPAA, должны убедиться, что каждый элемент используемого ими ПО, включая операционные системы (англ.) и даже программы для цифрового рабочего пространства (англ.), максимально защищён.
Читать дальше →

30 лет назад появилась свободная Unix-подобная OC… и это не Linux

Время на прочтение4 мин
Количество просмотров24K


Когда мы говорим о свободно распространяемой Unix-подобной операционной системе с открытым исходным кодом, то обычно подразумеваем Linux. Однако в начале 90-х существовал как минимум еще один подобный проект, релиз первой полнофункциональной версии которого состоялся ровно 30 лет назад, 14 июля 1992 года. Речь идет об операционной системе 386BSD, также известной под названием Jolix. Если вы подзабыли о существовании этой любопытной платформы, самое время немного освежить память.
Читать дальше →

Вклад авторов