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

*nix *

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

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

Исходники закрыты, но мы не сдадимся: Пишем полностью нативное GUI-приложение под No-Name смартфон без Android

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

Для многих разработчиков приложений далеко не секрет, что экосистема Android не предполагает написание полностью нативных приложений: в этой платформе очень многое завязано на Java и без ART можно запустить только простые службы без какого-либо интерфейса. Однако, есть один способ писать практически под «голый» Linux, не перекомпилируя ядро и при этом пользоваться самыми интересными фишками устройства без оверхеда в виде тяжелого Android: ускорение 3D-графики (OpenGLES), микшер звука, ввод с различных устройств, OTG, Wi-Fi и если очень постараться — даже 3G. Это открывает множество разных интересных применений старым устройствам: «железо» смартфонов зачастую гораздо мощнее современных недорогих одноплатников. Сегодня я покажу вам, как написать и запустить программу, которая полностью написанное на C без Android, на No-Name Android-смартфоне практически без модификаций. Интересно? Жду вас в статье!
Читать дальше →
Всего голосов 93: ↑92 и ↓1+91
Комментарии38

Нейронные сети на Эльбрусе

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

Мои эксперименты с нейронными сетями на Эльбрусе

В данной статье хочу поделиться своими наработками по теме нейронных сетей, запускаемых на Эльбрусе

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

Диск — это просто куча битов

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

Доводилось ли вам слышать утверждение, что диск или память — это «просто куча битов?»
Не знаю точно, откуда эта идея пошла, но она вполне разумна и в некоторой степени рассеивает таинственный ореол вокруг компьютеров. Например, она опровергает теорию о том, что внутри моего ПК живёт очень плоский эльф.

Оказывается нет, в нём находятся биты, закодированные в электрических компонентах.

И всё же компьютеры по-прежнему хранят в себе загадочность. Что это за биты? Что они означают? Можем ли мы с ними поиграться, спарсить их, понять?

Далее я покажу вам, что всё это определённо возможно! Ради вашего развлечения я засуну руку в свой ПК, вытащу оттуда кучку битов, и мы их с вами изучим.
Читать дальше →
Всего голосов 57: ↑56 и ↓1+55
Комментарии38

Как делается OpenSource: личный опыт

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

Я - автор двух пакетов, входящих более-менее во все дистрибутивы Linux: sane-airscan и ipp-usb.

Кроме того, sane-airscan входит во все основные дистрибутивы BSD (FreeBSD, NetBSD и OpenBSD) и в ChromeOS. ipp-usb в ChromeOS не взяли потому, что он написан на Go, а у них там очень жестко с размером исполняемых файлов, вместо этого они написали свое на Rust, но предпочли бы взять моё изделие, если бы могли. Совсем недавно появился порт ipp-usb на FreeBSD, вероятно, другие BSD тоже скоро подтянутся.

Вместе эти два пакета образуют стек "бездрайверного" сканирования документов для Linux и *BSD, а в перспективе нескольких лет, когда старые сканеры, наконец, вымрут, вероятно других драйверов и не останется.

Кроме того, ipp-usb делает возможным "бездрайверную" печать на USB-устройствах.

Здесь я хочу рассказать, каково оно, быть автором популярных OpenSource пакетов. Хоть эта работа и не принесла мне особых денег (на что я, впрочем, особо и не рассчитывал), она принесла мне бесценный опыт.

В целом, я полагаю, продвижение OpenSource пакетов структурно близко к продвижению на рынок программных продуктов. Занимаясь этой деятельностью, очень хорошо начинаешь понимать разницу между (1) написать программу, которая работает для меня (2) написать программу, которую можно назвать продуктом (3) вывести продукт на рынок.

Первое занимает гораздо меньше времени, чем второе. Второе - гораздо меньше времени, чем третье.

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

Как на самом деле Linux выполняет запись на диск?

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

Друзья мои, программисты и операторы, я бы хотел поговорить о том, как в Linux работает запись файлов.

Раньше я думал, что она устроена определённым образом, и как Джон Леннон, «I’m not the only one». Оказалось, операции записи работают совершенно иначе. То, как они работают, интересно и важно знать.

Позвольте начать с того, как я раньше думал о записи файлов.

Читать далее
Всего голосов 82: ↑63 и ↓19+44
Комментарии113

Мы сделали вам плату, а дальше вы сами: Доводим дешевый одноплатник до ума своими руками

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

В прошлой статье, мы с вами рассмотрели на что способен одноплатный компьютер, который стоит всего 1.000 рублей. Как мы выяснили, перспективы у данного девайса весьма неплохие, однако по факту, Orange Pi продаёт практически голую железку, которую нужно дорабатывать самому. Да, тут есть Ubuntu/Fedora, да, тут выведена гребенка с I2C/SPI — однако из коробки это всё работает криво-косо, либо не работает совсем. Даже обещанные шины SPI/I2C фактически не доступны в системе «из коробки». Материалов о доработке этого одноплатника в сети мало, поэтому я решил довести его до ума сам и поделится с вами — в том числе, готовыми бинарными образами! Интересно, на что способен доработанный одноплатник по цене ящика пива? :)
Читать дальше →
Всего голосов 41: ↑41 и ↓0+41
Комментарии21

Развлечение на выходные: собираем Android для Raspberry Pi из исходного кода

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

Привет, Хабр! В этой статье я хочу поделиться пошаговой инструкцией по компиляции Android Open Source Project для Raspberry Pi. Эта статья поможет разобраться в первых шагах разработки ОС на базе Android Open Source Project.

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

Как считать Linux на десктопах? И главное — зачем?

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

Вы обратили внимание, что практически все статьи Linux vs Windows успешны и вызывают бурные дискуссии? Почему так происходит? Ниже мое частное мнение, об причинах подобных «холиваров» и о том, насколько они актуальны сейчас.

В чем же, по рассказам посвященных, магическая сила Linux?

Ознакомиться
Всего голосов 8: ↑3 и ↓5-2
Комментарии25

Пишем виртуальную машину (интерпретатор) простого байткода + JIT компиляция

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

На Хабре есть две статьи, автор которых пишет виртуальную машину для исполнения простого байткода, а потом применяет различные оптимизации для ускорения этой виртуальной машины. Кроме того, есть и компилятор простого С‑подобного языка в этот самый байткод. Ознакмившись со статьями и этим компилятором, я подумал, что будет интересно изучить, как написать виртуальную машину этого языка, которая сможет делать JIT‑компиляцию байткода с помощью библиотеки libjit. Опыт этого я и описываю в настоящей статье. В интернете есть статьи, описывающие испльзование этой библитеки, но все, что я видел, описывают генерацию машинного кода с помощью libоit для конкретных программ, а не произвольного байткода: есть официальный tutorial, серия статей и ещё серия сравнений на Хабре.

Весь мой код приведён в моём репозитории.

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

Моя 24-летняя HP Jornada может то, на что не способен современный iPhone

Время на прочтение5 мин
Количество просмотров27K
Я люблю баловаться со старым железом. DEC PDP-8 — мой любимый ретро-компьютер, а Office 2003, на мой взгляд — лучшая версия «офиса» из всех. Ещё одно из моих любимых ретро-устройств — это HP Jornada 720. Маленький карманный PC (меньше нетбука) с Windows CE или, как в моём случае, с Linux. У него хорошая клавиатура, экран с CFL-подсветкой, 32 МБ ОЗУ(!), карта compact Flash для хранения данных и стилус для резистивного сенсорного экрана. А, и ещё у моего есть сетевая PCMCIA-карта на 10 Мбит, но до сих пор можно купить и беспроводные карты. Пусть он стар (выпущен в 1999 году), зато способен на то, чего не может современный iPhone.


На нём можно разрабатывать, компилировать и запускать нативное ПО. В нём есть компилятор C и C++, Python и даже Perl, так что это полнофункциональная рабочая станция для разработки. На нём можно не только разрабатывать, но и запускать ПО.
Читать дальше →
Всего голосов 106: ↑97 и ↓9+88
Комментарии158

Nokia N9 — уникальный Linux-смартфон, опередивший своё время на много лет вперед

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

Многие из нас помнят компанию Nokia, как одного из лидеров мобильного рынка и производителя самых разных, необычных устройств, которые опережали свое время на много лет вперед! К сожалению, нынешняя Nokia — это уже совсем не та компания, которую мы любили и которой отдавали предпочтение при выборе мобильного девайса. Однако ещё во времена перехода под крыло Microsoft, практически под самый закат, финны сделали шедевральное устройство на десктопном Linux, которое до сих пор находит отголоски в современном мире смартфонов. И имя этому шедевру — Nokia N9! Недавно мне написал почётный хабровчанин dlinyj и предложил подарить этого красавца мне: причём с полным комплектом! Почему он оказался прорывным и что общего имеет с Lumia 800? Читайте подробнее в статье!
Читать дальше →
Всего голосов 74: ↑69 и ↓5+64
Комментарии63

ОС «Альт» — групповые политики в Linux, как в Windows

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

Смешанной инфраструктурой надо управлять, в идеале — из единого центра на основе единых групповых политик.

Задачу решили разработчики компании «Базальт СПО». Они дополнили линейку операционных систем «Альт» набором инфраструктурного ПО, которое обеспечивает единое управление компьютерами с ОС «Альт» и Windows, и их пользователями. Решение позволяет избежать двойных затрат на поддержку ИТ-инфраструктуры в переходный период.

Сегодня тысячам государственных и коммерческих организаций необходимо перевести свои цифровые инфраструктуры на российское ПО. Многие зарубежные вендоры покинули российский рынок, приостановив продажу и поддержку своих систем. У заказчиков возникли трудности с обновлением программных продуктов, с приобретением дополнительных лицензий и продлением текущих, с получением техподдержки. Эти риски особенно опасны для критической информационной инфраструктуры (КИИ). На их устранение направлен Указ Президента Российской Федерации №166 от 30 марта 2022 г. «О мерах по обеспечению технологической независимости и безопасности критической информационной инфраструктуры Российской Федерации», а также Постановление Правительства Российской Федерации № 1236 от 16 ноября 2015 «Об установлении запрета на допуск программного обеспечения, происходящего из иностранных государств, для целей осуществления закупок перевод КИИ на российское программное обеспечение.

Проекты перехода на российское ПО длятся не один год, и в этот период в ИТ-инфрастрктуре должны одновременно работать компьютеры с ОС Windows и какой-либо из российских ОС, большинство которых создано на ядре Linux. Как интегрировать их в единое информационное пространство, чтобы избежать потери работоспособности цифровых ресурсов и исключить двойные расходы на администрирование корпоративной сети и обучение ИТ-персонала?

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

SSH с высоты птичьего полёта, или разгребаем кучи ключей

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

Решил я недавно разобраться в подробностях работы SSH. Использовал его для удалённого запуска команд давно, но, будучи не слишком опытным в системном администрировании, очень размыто представлял, зачем админы просят им отправить какой-то ключ, что с этим ключом происходит при подключении, и прочее. Поэтому предлагаю здесь обзорную экскурсию по используемым алгоритмам и ключам.

Статья рассчитана на тех, кто поверхностно знаком с SSH, возможно, использовали на практике, но не осознали его сакральных смыслов и глубоких тайн. Попытаюсь описать основные аспекты безопасности протокола: какие ключи и алгоритмы используются, в какой момент и зачем. Также будут замечания, как некоторые части протокола реализованы в OpenSSH.

Читать далее
Всего голосов 41: ↑39 и ↓2+37
Комментарии46

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

Мой терминал: alacritty, zsh, tmux, nvim

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

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

Читать далее
Всего голосов 33: ↑29 и ↓4+25
Комментарии27

Автоматический обход блокировок

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

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

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

Редчайший прозрачный смартфон на FireFox OS — прошиваем и смотрим на LG Fx0 2014 года выпуска

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

Друзья! Много ли гиковских серийных смартфонов вы знаете на текущее время? PinePhone, Pixel, Nothing Phone, да даже AYYA — выбор не так уж и велик. В 2014 году компания LG представила смартфон для гиков на базе FireFox OS эксклюзивно для рынка Японии — Fx0, который был интересен не только своей системой, но и прозрачным стильным дизайном, под которым можно было рассмотреть некоторые внутренности смартфона. Кроме того, это был самый мощный серийный смартфон на FireFox OS из когда-либо выпущенных. Несколько месяцев назад мне написал читатель с Хабра, предложив подарить такой девайс и попросил написать подробную инструкцию о перепрошивке на Android. Предлагаю сегодня посмотреть на этот уникальный и коллекционный смартфон поближе!
Читать дальше →
Всего голосов 42: ↑38 и ↓4+34
Комментарии24

Linux 6.4: новые возможности ядра — что изменилось в релизе

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

Новая версия ядра Linux 6.4 появилась спустя всего два месяца после Linux 6.3. Несмотря на относительно небольшой временной интервал, изменений достаточно много. Всего принято 16012 исправлений от 2080 разработчиков, причем изменения затронули 14220 файлов, добавлено 1006924 строк кода, удалено 597615 строк. Размер патча составил 81 МБ.

Больше всего изменений, которые связаны с драйверами устройств. Это около 43% от общего объема. Еще около 14% изменений относятся к обновлению кода, актуального для аппаратных архитектур, 10% — сетевой стек, всего 4% — файловые системы и еще 3% — внутренние подсистемы ядра. Подробности под катом!
Читать дальше →
Всего голосов 51: ↑51 и ↓0+51
Комментарии0

От 3proxy до Nginx forward proxy через боль и страдания (Часть первая 3proxy)

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

Не судите строго, это моя первая статья, наверное если бы я был гуру Nginx и "Линуха", то скорее всего боли и страданий бы не было.

С чего все началось?

Одним днем мне понадобилось реализовать довольно не тривиальную задачу:

Есть множество сервисов с которых нужно собирать данные для обработки и дальнейшей аналитики, модуль который это все собирает может быть установлен на множество серверов (пока 40, но в горизонте года это 1000), но хочется чтобы все обращения от этих серверов шли на один ip , а с него уже распределялись в зависимости от типа запроса или конечной точки обращения. Условно мы обращаемся к серваку 100.1.2.101 по порту 8080 и просим от него данные о всех домах на определенной территории ,он в свою очередь по заданному сценарию коннектится к определенному proxy (Допустим squid, он нужен так как некоторые api залочены по ip) и через него получает данные из конечного api.

P.S. Данные нельзя хранить на промежуточном сервере, так как они слишком часто обновляются :(

В итоге я решил эту задачу разделить на несколько этапов одна из них это распределение нагрузки...

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

Kubernetes для сетевых инженеров

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

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

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

Кластер HA для групп доступности AlwaysON MS SQL Server 2022 Linux при помощи Pacemaker для хранения ИБ 1С

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

В сети огромное количество мануалов по созданию отказоустойчивых групп доступности AlwaysON Microsoft SQL Server посредством Windows Server Failover Cluster. Но что делать, если экземпляры Microsoft SQL Server развёрнуты на Linux, а очень хочется создать отказоустойчивые группы доступности AlwaysON? В русскоязычном сегменте не нашёл внятных мануалов, посвящённых этому вопросу. Решил написать гайд. Сразу скажу, гайд в некоторых местах будет очень подробный и разжёвыванием банальных вещей может раздражать опытных системных администраторов, однако, как показывает практика, людей которым хотелось бы, чтобы он был ещё подробнее куда больше, чем тех, кому эта подробность не по нраву. Тут мы затронем и вопросы оптимизации производительности, которые актуальны для наверно самого популярного прикладного применения Microsoft SQL Server в России — хранения информационных баз 1С. На самом деле данная задача не особо сложная, но важна к освящению.

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

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