Как стать автором
Обновить
58.67

*nix *

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

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

Моя первая встраиваемая система под управлением Linux

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

В этой статье я задокументировал историю создания своей первой системы под управлением Linux. Здесь я расскажу, как собрал печатную плату под эту ОС, не имея какого-либо опыта работы с печатными платами в принципе.

Первая часть статьи может показаться не совсем по теме, но в ходе прочтения вы поймёте, что она также имеет отношение к основному тексту. В общем, рекомендую терпеливо прочесть всю историю.
Читать дальше →
Всего голосов 41: ↑40 и ↓1+59
Комментарии17

Новости

Реверс-инжиниринг eBPF-программы на примере сокет-фильтра и уязвимости CVE-2018-18445

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

Привет! Меня зовут Евгений Биричевский, в Positive Technologies я работаю в отделе обнаружения вредоносного ПО экспертного центра безопасности (PT ESC). Не так давно исследователи из Black Lotus Labs рассматривали несколько образцов 2018 года — elevator.elf и bpf.test. Пускай образцы и старые, но они используют уязвимости в eBPF, что происходит крайне редко: такие случаи можно практически пересчитать по пальцам.

Исследователи достаточно подробно описали общие функции и особенности ВПО, отметили запуск и использование eBPF-программ, но практически не описали сами eBPF-программы. Мне это показалось значительным упущением, ведь крайне редко удается пощупать in the wild использование уязвимостей в eBPF. Основываясь на дате появления образца и его поведении, исследователи предположили, что используется CVE-2018-18445. В этой статье мы научимся анализировать eBPF, достаточно подробно разберем используемые eBPF-программы, а также подтвердим или опровергнем гипотезу об использовании CVE-2018-18445.

Вперед
Всего голосов 11: ↑11 и ↓0+13
Комментарии0

Что такое PID 0

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

Как говорится, «не будите во мне ботана». Иногда кто-нибудь беспечно задаст мне, казалось бы, невинный вопрос — и я убиваю следующие несколько часов (в описываемом случае — дней), чтобы полноценно сформулировать ответ. Обычно всё это заканчивается с моей стороны очередной филиппикой на mastodon или в каком-нибудь приватном чате. Но на сей раз не буду этим ограничиваться и напишу целый пост.

Вот с какого невинного вопроса всё началось:

А почему UID начинаются с 0, но PID начинаются с 1?

Если совсем коротко: в Unix PID (идентификаторы процессов) начинаются именно с 0! PID 0 просто не отображаются в пользовательском пространстве через традиционные API.  PID 0 запускает ядро, а затем практически уходит на покой, только немного участвует в работе планировщика процессов и в управлении питанием. Кроме того, на просторах Интернета доминирует заблуждение о PID 0, всё из-за одного ошибочного утверждения в Википедии, которому уже 16 лет.

В заключении к посту я дам несколько расширенную версию этого короткого ответа, но если хотите до него дойти вместе со мной — давайте разберём достаточно длинную среднюю часть.

Но, конечно же, любой желающий может просто загуглить, что такое PID 0, верно? Зачем мне вообще всё это писать?

Читать далее
Всего голосов 86: ↑74 и ↓12+72
Комментарии18

Автостарт android-устройств — это просто! Реверсим, патчим загрузчик и заставляем смартфон включаться самому

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

Обычно Android-устройства принято считать «бесполезными» через 5-10 лет после выхода. Особенно, это касается бюджетных моделей, которые "не тянут" современные сервисы или те девайсы, которые по каким-то причинам физически пострадали в процессе своей жизни. Но пока одни выкидывают смартфоны и планшеты, считая их электронным хламом и засоряя мир, другие стараются найти применение всему подряд и оказывается, что Android-устройства ещё вполне себе могут оказаться полезными. Однако порой необходимо реализовать автоматическое включение устройства при подключения к зарядке и вот здесь многие впадают в ступор — ведь замкнуть кнопку включения зачастую недостаточно! В сегодняшнем материале я расскажу свои кейсы запитывания устройств от блоков питания, а также реализацию автовключения на разных чипсетах. Интересно? Тогда добро пожаловать под кат!

Читать далее
Всего голосов 35: ↑34 и ↓1+43
Комментарии28

Истории

Под капотом загрузчика

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

Привет, Хабр!

Мы, сервисные инженеры, сталкиваемся с GRUB2 ежедневно. А вот когда стало любопытно посмотреть на загрузчик комплексно, то в интернете и в учебнике Linux нашли лишь несколько команд: как заново проинсталлировать загрузчик и обновить текущую конфигурацию. «А почему так мало?», — была наша первая мысль.  Решили восполнить пробел — так появилась эта статья. А для иллюстрации попросили нейросетку изобразить, «как выглядят эпичные проблемы с GRUB» -- вот что вышло.

Читать далее
Всего голосов 25: ↑25 и ↓0+37
Комментарии19

Почему MMAP не лучший выход

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

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


MMAP захватила умы программистов СУБД на многие десятилетия, как альтернатива буферу данных. И вот здесь следует отметить, что в mmap имеются серьёзные проблемы с корректностью и скоростью работы с данными в современных СУБД. В реальности, некоторые известные СУБД сперва использовали mmap для работы с "больше-чем-вмещается-в-память" базами данных, но вскоре обнаружили эти скрытые ограничения, которые принудили их к самостоятельному управлению файловым вводом/выводом, после заметных трат на инженерные исследования. В этом смысле mmap и СУБД подобны сочетанию кофе и острой пищи: неудачное сочетание, которое не очевидно, пока сам не попробуешь.


Покуда разработчики по прежнему пытаются использовать mmap в новых СУБД, мы написали эту статью, чтобы предупредить остальных, что mmap это не подходящая замена привычному буферу. Далее мы обсудим основные недостатки mmap, а также покажем явные ограничения производительности, которые мы обнаружили в наших экспериментах. На основании этих находок мы поделимся рецептами, когда разработчикам СУБД следует избегать mmap для реализации файлового ввода/вывода.

Читать дальше →
Всего голосов 24: ↑24 и ↓0+34
Комментарии6

Wayland 1.23: что нового, что изменилось и чего ожидать от стабильного релиза

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

Прошло больше года, и команда разработчиков представила очередной стабильный релиз протокола, механизма межпроцессного взаимодействия и библиотек Wayland 1.23. Положительным моментом является то, что эта версия обратно совместима на уровне API и ABI с выпусками 1.x и содержит в основном исправления ошибок и незначительные обновления протокола. Подробности — под катом.

Читать далее
Всего голосов 10: ↑10 и ↓0+17
Комментарии15

Как заставить говорить по-русски World Of Warcraft с помощью AI

Уровень сложностиСложный
Время на прочтение18 мин
Количество просмотров4.9K

Здравствуйте-здравствуйте, играю я значит в классический World of Warcraft и понимаю, что игра тосклива из-за отсутствия более-менее озвученных квестов. Конечно, инди-студия Метелица не способна озвучить всю свою игру, да и понятно, что сюжет развивается, а люди имеют свойство менять работу или, да это печально, физической гибели, как например случилось с озвучкой Артаса Менетила в Warcraft III: Frozen Throne.

В общем, заваривайте чай, как и все мои предыдущие публикации, эта статья в формате (б|в)лога.

Читать далее
Всего голосов 12: ↑10 и ↓2+9
Комментарии7

Пилим «Даллас» или «Шапка» и «Опёнок» на ожившем SUN-4c IPC station

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров3.2K


Приветствую, дорогие читатели!
Сегодня я хочу рассказать про этапы ремонта попавшего мне в руки компьютера фирмы SUN, дооракловской эпохи. Эта история будет о том, как я восстанавливал NVRAM при помощи дремеля, оживлял блок питания, настраивал SCSI HDD и CD-ROM, подключался в «безголовом» headless режиме, приноравливался пользоваться полуисправной клавиатурой… в общем, как мог, выходил из положения. Попутно установим любимые OpenBSD, RedHat Linux и взглянем на SUN OS Solaris, как апофеоз стараний.

Статья снабжена приличным количеством фотографий, есть видео, фото кликабельны.

Кому не безразлично старое железо и почтенный софт, приглашаю под кат. Поехали…
Читать дальше →
Всего голосов 37: ↑36 и ↓1+53
Комментарии19

Два способа отформатировать USB flash-накопитель в ОС «Альт» графическими средствами

Уровень сложностиПростой
Время на прочтение1 мин
Количество просмотров2.2K

Форматирование флешки графическими средствами при помощи утилиты «Форматирование USB» и редактора разделов gparted.

Читать далее
Всего голосов 12: ↑4 и ↓8+1
Комментарии4

Возврат заметок домой на Obsidian и git

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

Сегодня в нашем кружке «оч.умелые клавиатурки» возврат блудных заметок домой. Долго пользовался платным Evernote, но оплатить его все труднее и дороже. Вернее даже так, сейчас я знаю всего один способ оплатить подписку через Билайн / МТС и Apple. Притом без оплаты подписки Evernote ужасен и порезан самым неприятным образом. Конечно есть ещё Notion, но кто знает как и когда он окуклиться как это случилось со временем с Evernote.

В качестве новой основы заметок я выбрал obsidian.md. Opensource, море документации, толпа плагинов, готовые сборки подо все используемые мне платформы, в общем, все как я люблю. Я верю что вы умеете ставить докер и немного понимаете ansible сценарии.

Читать далее
Всего голосов 11: ↑11 и ↓0+15
Комментарии39

Гейминг за 300: как я купил и оживил дешевую игровую консоль на Android. Можно ли поиграть, сэкономив на шаурме?

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

Несмотря на незаурядное название, наверняка многие олдовые читатели будут рады видеть статью в «старом» формате с оживлением и попыткой использования чего-то очень дешевого, грязного и нерабочего. В процессе подготовки подробного материала о том, как работали 2D игры на телефонах из прошлого, я не терял времени и искал различные интересные девайсы на онлайн-барахолках «за копейки». Так уж получилось, что на моей карте осталось 60 рублей, ещё 250 рублей задонатил читатель и я увидел её: Android-игровую консоль «на запчасти», которую мне удалось забрать всего за 300 рублей. Сегодня мы с вами: поговорим, есть ли смысл брать дешевые консоли на Android, во всех подробностях отремонтируем и отреставрируем нерабочий, грязный девайс «из подвала» и проведем бенчмарки эмуляторов, дабы понять — реально ли получить игровую консоль по цене шаурмы. Интересно? Тогда жду вас под катом!
Читать дальше →
Всего голосов 30: ↑28 и ↓2+37
Комментарии31

Введение в Ubuntu autoinstall

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров6.1K

Данная статья это авторский перевод/русскоязычная версия моей статьи на Medium, и первая из цикла про этот интересный инструмент.

Пожалуй, наиболее адекватным эпиграфом будет перефразированный английский перевод частушки «по реке плывет топор»:

Down the pipeline flows the code
From the towers of London.
Let it setup by itself
On this fancy piece of iron

Как это часто бывает, данный проект появился в результате случайности. Я всего лишь устанавливал Ubuntu на новую Dell rack workstation, когда элементарная задача неожиданно превратилась в «увлекательную». Зато открыло для меня совершенно новый уровень.

Читать далее
Всего голосов 8: ↑7 и ↓1+8
Комментарии4

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

AdIndex City Conference 2024
Дата26 июня
Время09:30
Место
Москва
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область

DPI из подручных материалов

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

Всем привет!

Однажды, много лет назад, во времена эпидемии вируса Code Red, я работал сисадмином в одном вузе и невежливо ответил на электронное письмо из какого то‑банка с требованием немедленно прекратить атаку на их веб сервер, работающий под управлением Apache, через месяц пришло бумажное письмо от их службы безопасности, и завертелось. Так я познакомился с системой Snort, которая некоторое время защищала Интернет от наших студентов. Со временем, большая часть трафика стала https, и решение потеряло смысл, но, есть места, где он снова превращается в http, например после https прокси. Тут то мы и сможем его «подсмотреть», выявить атаки и заблокировать злоумышленника!

Читать далее
Всего голосов 3: ↑2 и ↓1+3
Комментарии4

Katello и Foreman в процессе patch management

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

Это публикация о некоторых функциях системы Katello и Foreman, касающихся процесса Patch Management.

Katello - это модульная часть системы Foreman, управляющая сторонними или локальными репозиториями pip, rpm, deb пакетов, podman, docker образов. Katello предоставляет возможность использовать абстракцию Lifecycle Environment: назначать целевым хостам доступность определенных состояний репозиториев (фиксированные версии пакетов или теги контейнеров).

Читать далее
Всего голосов 3: ↑3 и ↓0+5
Комментарии2

Делаем из битого планшета одноплатник: подключаем Android-устройства к дешевым микроконтроллерам через UART

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров35K
image

В наше время, из-за санкций одноплатники стали стоить каких-то «конских» денег. Даже б/у RaspberryPi Zero стоит 2-3 тысячи рублей на барахолках, что, мягко скажем, не совсем лояльная цена для «самого дешевого одноплатного компьютера в мире». Конечно, Orange Pi Zero всё ещё можно купить в пределах 1.500-2.000 рублей, но как по мне и эта цена не слишком лояльна за те характеристики, который предлагает такой одноплатник. С другой стороны, Android-планшеты 10-летней давности продаются на барахолках по 100-300 рублей, что выглядит гораздо привлекательнее, причём на некоторые устройства практически без костылей можно установить полноценный дистрибутив Linux! Вероятно, многие читатели скажут мол «автор бомж» и будут правы: ведь в рамках этой статьи, я хочу рассказать о том, как использовать полурабочий древний планшет в качестве полноценного одноплатника путём подключения его к микроконтроллеру и выводу GPIO! Сегодня мы с вами: узнаем, как подключить микроконтроллер к шине UART в планшете и научимся работать с последовательной шиной в Android прямо из Java и нативных программ. Интересна моя концепция антикризисного одноплатника? Тогда добро пожаловать под кат!
Читать дальше →
Всего голосов 74: ↑72 и ↓2+90
Комментарии61

От падений базы данных до кибератак: история о том, как мы обнаружили взлом

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров7.9K

Статья про расследование простого но интересного киберпреступления. От первых незначительных инцидентов до открытия взлома сервера, мы покажем, как расследовали взлом, копаясь в тысячах строк логов.

Читать далее
Всего голосов 8: ↑8 и ↓0+10
Комментарии18

Fedora Linux 40: новая версия дистрибутива. Что нового и что изменилось?

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

В мире дистрибутивов Linux всё идёт по плану. Разработчики Fedora Linux 40 выпустили финальный релиз 23 апреля. Уже готовы версии Fedora Workstation, Fedora Server, Fedora CoreOS, Fedora Cloud Base, Fedora IoT Edition и Live-сборки. Они поставляются c десктоп-окружениями KDE Plasma 5, Xfce, MATE, Cinnamon, LXDE, Phosh, LXQt, Budgie и Sway. Давайте посмотрим, что там нового, что удалили, а что изменилось. Подробности — под катом.

Читать далее
Всего голосов 14: ↑14 и ↓0+18
Комментарии1

Xv6: учебная Unix-подобная ОС. Заключение

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

Книга рассказала об идеях, что лежат в основе операционных систем, на примере xv6. Одна часть кода xv6 выражает основные идеи и каждая строка кода важна - переключение потоков, пространства пользователя и ядра, блокировки и т.д. Другая часть кода воплощает алгоритмы и структуры данных, которые легко заменить на другие - политика планирования процессов, структуры файлов на диске, устройство журнала файловой системы и т.д. Книга полагается на интерфейс системных вызовов Unix, который оказался успешным настолько, что идеи легли в основу и других современных ОС.

Книга об xv6 на русском языке в формате PDF, HTML и EPUB.

Читать далее
Всего голосов 7: ↑7 и ↓0+9
Комментарии1

Устройство памяти процессов в ОС Linux. Сбор дампов при помощи гипервизора

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

Иногда для анализа ВПО или, например, для отладки какого-либо процесса может потребоваться дамп памяти процесса. Но как его собрать без отладчика? Постараемся ответить на этот вопрос в этой статье.

Задачи:

- Обозначить цель сбора дампа процесса.

- Описать структуру памяти процессов в Linux и отметить различия в старой и новой версиях ядра ОС

- Рассмотреть вариант снятия дампа памяти процесса внутри виртуальной машины на базе связки гипервизора Xen и фреймворка с открытым исходным кодом DRAKVUF.

Читать далее
Всего голосов 16: ↑16 и ↓0+20
Комментарии2
1
23 ...

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