Все потоки
Поиск
Написать публикацию
Обновить
161.92

*nix *

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

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

Большие и не очень технологии в маленьком доме

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

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

Читать далее

Баг Y292B: мы обречены (снова)

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

Измерение времени — очень сложная задача. Я выяснил это, набив шишки при попытке запрограммировать расширяемый хронометр для небесных тел Солнечной системы. Сложность в том, что все календарные системы имеют так много правил и исключений, что сборщик календаря, по сути, становится ещё одним языком программирования. Впрочем, мне хорошо знаком закон Завински*, поэтому я постарался избежать создания ещё одного Emacs.

*Закон Завински — выдуманный закон computer science, высмеивающий неизбежное разрастание фич. Он гласит, что каждая программа рано или поздно постарается прочитать электронную почту. Стоит отметить, что закон сформулирован в 90-х, поэтому и речь об электронной почте. Кстати, я нашёл хороший веб-сайт с другими законами computer science.

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

Y2KY2038 и другие баги Y2xx — это на самом деле не совсем «баги», а простые переполнения выделенного пространства памяти. Unix и подобные ему компьютерные системы измеряют время, выполняя инкремент секунд в единой целочисленной переменной time_t. Естественно, такой хронометраж назван временем Unix, а 0 в нём означает полночь 1 января 1970 года.

В разных реализациях времени Unix для time_t используются разные типы данных. Когда тип данных достигает своего верхнего предела, он «сбрасывается» или до обратного (отрицательного) значения, или до нуля. В текущей основной ветви ядра Linux используются 64-битные числа со знаком. В таком решении точка сброса приходится на 292 277 026 596 год. Он настанет примерно через 292 миллиарда 277 миллионов 24 тысяч лет.

Но что потом?

Читать далее

Немного о NixOS. Часть 1. Общая информация и установка

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

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

Читать далее

Как мы создавали PaaS-платформу App.Farm — цифровое сердце РСХБ

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

Привет, Хабр! Меня зовут Константин Белкин, я Teamlead SRE в РСХБ‑Интех. Сегодня я расскажу вам про App.Farm — PaaS‑платформу, которую мы самостоятельно разрабатываем и поддерживаем с сентября 2020 года.

Читать далее

systemD с 0 до 1: библия сисадмина

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


Что бы кто ни говорил, systemD становится стандартом систем инициализацией в линуксе. И с 80% вероятностью все сервера будут с systemD. Не факт, конечно, есть и личные сервера, на которых может стоять хоть Gentoo, хоть Devuan, хоть NixOS.

Некоторые дистрибутивы хотят даже перейти с загрузчика Grub на systemd-boot! Потому знать, как работать с данной системой инициализации, должен каждый сисадмин и просто программист, ибо сейчас он практически везде.

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

А также напишем небольшой скрипт на Python для автомизации некоторых задач. Приятного чтения, господа линуксоиды и просто пользователи!
Читать дальше →

Уникальный планшет со съёмным процессором в DDR2-слоте: что за устройство ценой в 100$ сделали китайцы в 2010?

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

Друзья, я почти уверен, что большинство читателей не видели такого диковинного девайса, который будет в сегодняшней статье! Едва ли где-то ещё можно найти планшет, у которого процессор с ОЗУ выполнен в виде съёмного модуля, который стоит в слоте DDR2-памяти, а само устройство настолько просто и гениально спроектировано, что фактически построено на базе USB-хаба и AC97-кодека. Кроме того, планшет построен на базе редкого и диковинного ARMv5 процессора, способного загружаться в Android, Linux и Windows CE. Недавно читатель с Хабра подарил мне такой планшет в нерабочем состоянии и я его оживил. Интересно узнать о том, что за интересный такой девайс и как я его ремонтировал? Тогда добро пожаловать под кат!
Читать дальше →

Firmware в Linux. Коротко и своими словами

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

Рано или поздно системный программист сталкивается с понятием firmware. В данной статье мы коротко рассматриваем, что это, зачем, и как с этим работать.

Disclaimer:
Материал не является сборником best practices и не претендует на фундаментальный труд. Это шпаргалка. Если угодно - application note в свободной форме. Основная задача материала - "сделать короткую статью, которая помогла бы лично мне быстро разобраться, если бы я впервые столкнулся с темой". Если вы знаете что-то лучше - дополнения и замечания по существу приветствуются. Мотивацией для написания послужила недавно встреченная статья, которая как раз объясняла эти аспекты не очень хорошо.

Читать далее

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

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

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

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

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

Время на прочтение7 мин
Количество просмотров2.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.

Вперед

Что такое PID 0

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

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

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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


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


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

Читать дальше →

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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


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

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

Кому не безразлично старое железо и почтенный софт, приглашаю под кат. Поехали…
Читать дальше →

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

Введение в Ubuntu autoinstall

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

Данная статья это авторский перевод/русскоязычная версия моей статьи на 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, когда элементарная задача неожиданно превратилась в «увлекательную». Зато открыло для меня совершенно новый уровень.

Читать далее

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