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

Разработка под Linux *

Пишем под *nix

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

Ричард Столлман, автор GCC и Emacs

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


Сложно найти человека, про которого ходит больше легенд, чем Ричард Столлман (RMS). Наверное, по количеству невероятных историй и анекдотов с ним может сравниться только Джефф Дин.

Причём многие невероятные истории о Столлмане — правда. Например, что он запрашивал веб-страницы wget-демоном по почте (для безопасности) и отказался от использования мобильных телефонов, которые называет портативными устройствами слежения. На своём переделанном ноутбуке Thinkpad x200 он в основном работает в консоли и старается не подключаться к веб-сайтам с собственной машины.

В 71 год Столлман борется с раком (успешно) и пострадал от травли за свои спорные высказывания и действия. Но его достижений хватит на десятки или сотни великих жизней. Он является автором компилятора GCC и текстового редактора Emacs, а также основателем проекта GNU, дополнением к которому стало ядро Linux, в результате чего появилась полноценная ОС.

Гений Столлмана опередил время. Только в 21 веке — с ползучим наступлением цифрового тоталитаризма, всеобщей слежки в духе «1984» и алгоритмизацией всех аспектов жизни — люди постепенно начинают понимать, что Ричард Столлман был прав.
Читать дальше →
Всего голосов 74: ↑61 и ↓13+72
Комментарии46

Новости

Сказки дiда Панаса. Сказ о том, как злыдни дверь заднюю в пингвиньи ядра прорубали

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

Давно это было, сы́нки: в те времена, когда все знали, кто нужду свою справить в сеть всемирную, ынторнетом кличущуюся, вышел, по звукам характерным, Дональд Трамп ещё играл роли второго плана в комедиях, а пынгвин юный, Линуксом кличущийся, был ещё от горшка 2.4 вершка.


И хранились ядра драгоценные того пынгвина в сундуке заветном, BitKeeper-ом кличущемся, коий тогда свои златые годы переживал, замещая постепенно другой сундук, CVS прозванный, каковой хоть и ветшать начинал, но ещё был ого-го, и были у него ещё свои любители.

Читать дальше →
Всего голосов 19: ↑16 и ↓3+17
Комментарии6

Сложности с отображением иконок рабочего стола

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

Последние три недели я работал над рефакторингом и исправлением легаси-кода (самые старые части которого были написаны в 2013 году), отвечающего за позиционирование иконок в KDE Plasma, а также сохранение и загрузку этих данных.

Вот мой запрос на внесение изменений: plasma-desktop: Refactor icon positioner saving and loading.

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

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

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

В итоге периодически кому-то нужно разгребать такую запутанную базу кода и подчищать её.
Читать дальше →
Всего голосов 36: ↑33 и ↓3+51
Комментарии23

Кроссплатформенный терминал Modbus TCP / RTU / ASCII с открытым исходным кодом: Часть 2

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

Прошло уже достаточно времени с публикации моей предыдущей статьи. За это время я значительно улучшил приложение. Миграция проекта с WPF на Avalonia UI, обновленный дизайн, работа с числами типа float, а также другие возможности появились в новой версии моего Modbus терминала.

Обо всем об этом, а также небольшие заметки о разработке читайте в продолжении статьи.

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

Истории

Проверяем фактор автобуса для опенсорсных проектов

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

Из Википедии: фактор автобуса (англ. bus factor, либо truck factor) проекта — это мера сосредоточения информации среди отдельных членов проекта; фактор показывает количество участников проекта, после потери которых (в оригинале — «попадания» которых под автобус или грузовик, варианты: увольнения, заболевания, рождения у них ребёнка, наступления несчастного случая и других форс-мажорных обстоятельств) проект не сможет быть завершён оставшимися участниками.

Мотивация

Во всех компаниях, где я работал (в строительстве и разработке ПО), в тот или иной момент времени возникал вопрос «фактора автобуса» в управлении разработкой проектов.

Инженеру-строителю вычислить его было крайне сложно, потому что наша отчётная документация была сильно распределена между сотрудниками и существовал дефицит документации. Единственный раз, когда это стало очевидно, случился после увольнения одного из сотрудников — спустя полгода возник срочный запрос RFI (запрос информации) по чьему-то пакету расчётов (хотя официальный пакет должен быть подписан инженером-проектировщиком, а не инженером, непосредственно отвечающим за расчёты). После таких инцидентов нам обещали улучшить документацию, но это неизбежно отходило на второй план, когда все участники группы переходили на новые проекты даже без итогового совещания. Я был свидетелем того, как в долговременных проектах инженерный состав менялся на 100%, поэтому это ужасный антипаттерн.

В разработке ПО можно провести множество параллелей, но по природе нашей работы поставка выпущенного кода — это единственный способ измерения фактора автобуса. По крайней мере, именно её изучали многие исследователи, в том числе и в научной статье, имеющей большое количество цитирований (156, согласно Google Scholar!) с момента её публикации в 2016 году (препринт выпустили в 2015 году). Ша отправил мне статью, а после того, как мы обнаружили её исходные данные и исходный код, это стало идеальным проектом на выходные, который бы позволил, как минимум, получить представление об интересных метриках open source.

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

Добавление пользовательских иконок для типов MIME в Linux

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

Привет! Меня зовут Станислав Ермохин, я руководитель группы методического обеспечения в команде КОМПАС-3D. По ходу подготовки версии КОМПАС-3D для Linux мы встречаемся с «очевидными и невероятными» ситуациями. Решением одной из них решили поделиться. Тем более, что в Рунете не удалось найти достаточно полного описания, как назначать пользовательские иконки для файлов. Вся информация разрозненная, отрывочная или устаревшая. 

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

DPDK на динозаврах и гаишниках

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

Как часто менеджерам, дизайнерам и UX-исследователям приходится вникать в проблемы сетевого стека Linux-ядра? Подозреваю, что не часто. Но если вам пришлось это сделать, у меня хорошая новость! Я уже прошла этот путь, полный админских терминов и бесконечных аналогий, и подготовила краткое содержание в комиксах. Теперь вам не нужно будет переводить с технического на дизайнерский!

Меня зовут Наташа, я UX-исследователь в Selectel. В тексте расскажу о DPDK: что это и какую проблему решает, а также зачем потребовалось юиксеру. 🙂
Читать дальше →
Всего голосов 37: ↑37 и ↓0+44
Комментарии1

Простой шлюз в сеть Интернет на nftables в ОС Astra Linux Special Edition

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

Новая система фильтрации пакетов, фреймворк nftables, работает, начиная с версии Debian 10 Buster. ОС Astra Linux Special Edition (ALSE) основана на Debian и его пакетной базе, поддерживает nftables, начиная с версии 1.7.4.

Для помощи в миграции с Netfilter к nftables я настроил тестовый стенд, который реализует основные базовые задачи для SOHO (Small Office/Home Office) или небольшого предприятия. Эту конфигурацию можно взять за основу при создании своей или использовать все, как есть.

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

Мини заметка об оптимизации Arch Linux

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

Всем привет! Наверно, многие пришли к линуксу, когда их старый компьютер или ноутбук не тянул, или плохо тянул операционные системы от Microsoft. Многие пробовали разные дистрибутивы - AntiX, MX Linux, Linux Lite, Lubuntu, Xubuntu, и многие другие. Но скорее всего, вы в итоге пришли к Arch Linux - по моему скромному мнению, одному из лучших дистрибутивов.

Читать далее
Всего голосов 16: ↑14 и ↓2+14
Комментарии32

Поревьюим и порефакторим — Ассемблер для любопытных #2

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

Ещё статья про ассемблер для тех кто с ним не знаком. В предыдущей про 5 ассемблеров последний примерчик вызвал критику за "упрощенизм". А давайте посмотрим вместе как его улучшить и немножко нарастить - в качестве "продолжения знакомства".

Заодно полюбуемся на несовместимость Linux и BSD, а также на различие 32 и 64-битной версии обеих ОС - и подумаем как с этим бороться.

Автор не претендует на непогрешимость, поэтому приглашаем умудрённых коллег делиться идеями и подсказками в комментариях если что упущено.

cmpb $0, (%eax)
Всего голосов 10: ↑10 и ↓0+15
Комментарии39

DPDK: 100 больших и маленьких багов

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

100 багов в DPDK


В своей обители в Р'лайхе мёртвый Ктулху спит в ожидании своего часа. А в C коде проекта DPDK спит множество ошибок, и тоже в ожидании своего часа. Давайте посмотрим, какие из них может выявить анализатор PVS-Studio.

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

Подмания: запускаем графические приложения в контейнерах

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

Привет, Хабр!
Перед вами серия статей, в которых на подробно разобранных примерах показано, как удовлетворить некоторые базовые потребности пользователя ПК под управлением ОС Линукс, при помощи контейнеризации. В основном, это базовые потребности в безопасности, то есть, сохранении целостности системы и данных/идентичности пользователя, при повседневном использовании ПК. Надеюсь, что после прочтения статьи, вы спросите себя: "почему я не делал/а так всегда?". Если вы хотите получить быстрый старт в стиле использования ОС Линукс, за который вам не будет стыдно перед самим/ой собой, тогда прошу под кат.

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

Запросто собираем базу данных при помощи команд Linux

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

База данных — это сердце многих приложений, от полнофункциональных корпоративных сайтов до сравнительно простых инструментов, например, для ведения списков покупок и финансовых трекеров. Популярны реляционные базы данных на основе SQL, но в Linux можно собрать более простую и прозрачную альтернативную базу данных.

Читать далее
Всего голосов 42: ↑40 и ↓2+51
Комментарии33

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

Поиск ошибок в юнит-тестах

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

Вы должны были бороться с ошибками


Давно хотелось написать статью, что юнит-тесты — это хорошо, но не стоит забывать, что они тоже могут содержать ошибки. Сейчас встретился проект DPDK, тесты которого хорошо демонстрируют этот нюанс. Давайте посмотрим, как выглядят типичные ошибки в юнит-тестах, и как они выявляются с помощью статического анализа кода.

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

Ретрошортсы: вспоминаем бумажный журнал с дисплеем и Linux на борту

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

Приветствую! В сегодняшнем материале мы опробуем с вами новый формат статей, а именно — ‭«ретрошортсы‭». В этой рубрике будем вкратце вспоминать крутые гиковские штуки прошлых лет, и конкретно сегодня — тот самый журнал Vogue от декабря 2010 года с внешним дисплейчиком, на который можно было накатить Linux и получить мини-компьютер буквально за 200 рублей. Если вам интересно, что за девайс придумали в далеком 2009 году, причём здесь игровые консоли и как бородатые 30-летние хабровчане бегали по всей Москве в поисках ставшего дефицитным женского журнала, то добро пожаловать под кат!

Читать далее
Всего голосов 44: ↑42 и ↓2+56
Комментарии32

Установка Linux на Android: новые горизонты для разработчиков и энтузиастов

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

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

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

Коротко о SLAB, SLOB и SLYB в Linux

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

Привет! Когда речь заходит о динамическом управлении памятью в Linux, мы имеем дело с несколькими разными подходами, каждый из которых имеет свои плюсы и минусы.

В этой статье разберём три аллокатора памяти ядра: SLAB, SLOB, а также SLUB.

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

Технология NTB: опыт применения и ее виртуализация QEMU

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

В статье мы расскажем о системах хранения данных (СХД), в частности о применении технологии NTB поверх шины PCIe. Наша команда столкнулась с задачей виртуализации технологии NTB в QEMU, решение которой было сведено к созданию частичной виртуализации  IDT 89HPES24NT6AG2 PCI Express Switch, модификации модуля ядра Linux для поддержки нашей виртуализации и сборки воедино с помощью Yocto Project.

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

Операционная система реального времени Xenomai 4

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

В данной статье подробно рассмотрим, как собрать ядро, поддерживающее EVL core, и библиотеку, реализующую пользовательский API для этого ядра. А также разберем некоторые аспекты реализации драйвера устройства и приложения под Xenomai 4.

Xenomai — Фреймворк для разработки приложений реального времени на базе ядра Linux. Проект Xenomai был запущен в 2001 году с целью эмуляции традиционной ОСРВ и облегчения ее переноса на GNU/Linux с сохранением гарантий работы в режиме реального времени. Изначально Xenomai был связан с RTAI (интерфейсом приложений реального времени), но на данный момент он независим.

Мы будем работать с Xenomai версии 4. Xenomai 4 имеет архитектуру с двумя ядрами. Первое ядро Linux: для задач, отличных от реального времени, и ядро Xenomai: для задач реального времени. Ядро Linux и ядро реального времени работают практически асинхронно, оба выполняют свой собственный набор задач, всегда отдавая последнему приоритет над первым. Для осуществления доступа к основным сервисам реального времени в проекте Xenomai предусмотрена библиотека С, известная как libevl.

Xenomai поддерживает множество архитектур, таких как PowerPC, Blackfin, ARM, x86, x86_64 др. В данной статье мы используем компьютер c архитектурой x86_64 (Процессор: 12th Gen Intel® Core™ i5-12400 × 12, память: 32,0 ГиБ), операционной системой Debian GNU/Linux 12 (bookworm).

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

Автоматизированное тестирование графических приложений и сценариев установки

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

Одна из самых сложных задач в разработке и поддержке операционных систем – тестирование графических приложений и сценариев установки. Процесс усложняется постоянными обновлениями дистрибутива, увеличением количества пакетов, различными редакциями и вариантами установки ОС, а также множеством архитектур (x86_64, aarch64 и т.д.). 

Большинство компаний выбирает автоматизированное тестирование. Этот способ тестирования сложен в реализации, для запуска процесса на поток требуются различные специалисты – тестировщики, разработчики, devops-инженеры. Одна из главных проблем заключается в том, что тестирование обычно происходит с позиции разработчика: тестируются низкоуровневые функции, библиотеки и утилиты, различные API и т.п. Однако, пользователь взаимодействует не с этим. Для человека, который будет пользоваться операционной системой, важен интерфейс: что он видит на экране, как он с этим взаимодействует?. Почему бы в этом случае не тестировать ОС вручную? Это возможно, но такой подход затратен и может приводить к ошибкам, связанным с человеческим фактором.

В этой статье расскажем о том, как мы используем открытый проект openQA в тестировании российской операционной системы ОС “МСВСфера” 9 от вендора “Инферит”. 

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

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