Обновить
323.18

Linux *

Пишем под *nix

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

Ядро Linux 5.9 изучили, выяснилось, что оно поддерживает 99% популярного PCI-оборудования на рынке

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

На Хабре недавно публиковалось две статьи о новом ядре Linux. В одной из них говорилось о том, что драйвер AMD Radeon составляет 10,5% ядра Linux 5.9, в другом перечислялись новые возможности и функции. На днях появилась еще и информация о том, что это ядро поддерживает 99% популярного PCI-оборудования на рынке.

Конечно, «популярное» вовсе не означает «поддерживает вообще все, что есть", так что общая цифра может быть гораздо ниже 99%, учитывая разнообразие устройств. Но все равно, ситуация с поддержкой Linux «железа» становится лучше год от года. Как проводилось изучение поддержки PCI-устройств?
Читать дальше →

Linux kernel development для самых маленьких

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


Любой программист знает, что теоретически он может внести свой посильный вклад в развитие Linux ядра. С другой стороны, подавляющее большинство уверено, что занимаются этим исключительно небожители, а процесс контрибьюта в ядро настолько сложен и запутан, что обычному человеку разобраться в нём нет никакой возможности. А значит, и надобности.
Сегодня мы попробуем развеять эту легенду и покажем, как абсолютно любой инженер при наличии достойной идеи, воплощённой в коде, может предложить ее на рассмотрение Linux community для включения в ядро.

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

Линус Торвальдс представил релиз ядра Linux 5.9. Что нового?

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

Прошло всего два месяца со времени выхода релиза ядра Linux 5.8, которое назвали «величайшим»", а Торвальдс уже опубликовал новый релиз, на этот раз версии 5.9.

По данным журналиста Майкла Ларабеля, в коде ядра — 20,49 млн строк, 3,58 млн строк комментариев и 3,72 млн пустых строк. Количество файлов с исходным кодом достигло 59 тыс. Но окей, все это количественные характеристики. А что нового в ядре? Давайте посмотрим.
Читать дальше →

Подведение итогов конкурса самых странных заданий на собеседованиях

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


Настало время подвести итоги конкурса, который был в статье "Программисты, ходите на собеседования". Условия конкурса были следующие: привести пример самого необычного задания, которое было на вашем собеседовании. Пришло время подвести итоги конкурса и провести финальное голосование! Поехали!
Читать дальше →

Евангелист Open Source Эрик Реймонд: Windows перейдет на ядро Linux в недалеком будущем

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

Эрик Реймонд — евангелист свободного ПО, сооснователь фонда Open Source Initiative, автор «закона Линуса» и книги «Собор и базар», своеобразной «священной книгой» свободного ПО. По его мнению, в недалеком будущем Windows перейдет на ядро Linux, так что сама Windows станет слоем эмуляции на этом ядре.

Похоже на шутку, но сегодня вроде бы и не 1 апреля. Свое утверждение Реймонд аргументирует активными действиями Windows в сфере открытого ПО. Так, Microsoft активно работает над Windows Subsystem for Linux (WSL) — подсистемой Linux для Windows. Также он не забыл о браузере Edge, который работал сначала на движке EdgeHTML, но полтора года назад его перевели на Chromium.
Читать дальше →

Создание современного API на PHP в 2020 году

Время на прочтение5 мин
Количество просмотров19K
Итак, на примере этого API, я хочу показать современную PHP архитектуру для высоконагруженных проектов. Когда проект еще в самом начале, и не то, что бизнеслогика (взаимоотношения с базой данных) не прописана, но и сама бизнес модель не очень ясна, построение эффективной IT архитектуры может идти только одним путем: необходимо жестко разделить frontend и backend.

Что обычно делали в таких ситуациях два-три года назад? Брался монолитный фрейворк типа Laravel или Yii2, вся бизнес модель разбивалась, худо-бедно, на блоки, а эти блоки уже имплементировались как модули фреймворка. В итоге еще через 3 года получалась огромная не поворотная машина, которая сама по себе медленная, а становилась почти невыносимо медленной, в которой фронтенд рендится через бэкенд посредством классической MVC архитеркутуры (пользователь отправил запрос, контроллер его подхватил, вызвал модель, та в свою очередь чего-то там натворила с базой данных, вернула все контроллеру, а тот наконец-то вызвал вьювер, вставил туда данные из модели и отдал это все пользователю, который уже успел открыть очередную банку пива...). А… ну еще особо продвинутые ребята, они не просто вьюверели Tweeter Bootstrap, а во вьювер вкручивали на самом деле очень хорошие библиотеки типа JQuery или вместо вьювера использовали какой-нибудь фронтенд фреймворк. В итоге поддерживать такой БеЛаЗ становилось все сложнее, а ввести нового программиста в команду было очень сложно, ибо не все рождаются Энштейнами. Добавим сюда тотальное отсутствие документации разработчика (камменты в 9000 файлах почитаешь — там все есть!) и в итоге, смотря на это все, становилось по-настоящему грустно…
Читать дальше →

Использование инвентори-плагинов из Ansible Content Collections в Ansible Tower

Время на прочтение5 мин
Количество просмотров2.7K
ИТ-среды становятся все сложнее и сложнее. В этих условиях для системы ИТ-автоматизации критически важно иметь актуальную информацию обо узлах, которые присутствуют в сети и подлежат обработке. В Red Hat Ansible Automation Platform этот вопрос решается через так называемые инвентори (inventory) – списки управляемых узлов.



В своей простейшей форме инвентори представляет собой статический файл. Это идеальный вариант, когда вы начинаете работать с Ansible, но по мере расширения автоматизации, его становится недостаточно.
Читать дальше: Использование инвентори-плагинов из Ansible Content Collections в Ansible Tower

Как разработать аналог Zoom для ТВ-приставок на RDK и Linux. Разбираемся с фреймворком GStreamer

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

Пандемия COVID-19 стала катализатором для новых полезных сервисов. Например, Zoom стал настолько успешным, что по стоимости обогнал в этом месяце IBM. Нас вдохновил этот пример, и мы решили пойти еще дальше: а что если онлайн-конференции реализовать на приставках и Smart TV, чтобы общаться не только по работе, но устраивать удаленные посиделки на диване с друзьями? Но ведь тогда можно на футболе вместе поболеть, и кино посмотреть или спортом заняться под контролем тренера. 

Почему-то у операторов цифрового ТВ такой услуги не оказалось, хотя с инженерной точки зрения все эти функции вполне можно реализовать на ТВ-приставках на базе Linux/Android и RDK. Мы это проверили на практике и вот теперь делимся с читателями Хабра своим рецептом создания «аналога Zoom» и видеоконференций через Smart TV. Разберем архитектуру решения и кодирование видеопотока с использованием GStreamer. Информацию для работы с этим фреймворком мы собирали по крупицам, но оно того стоило.

Читать далее

Программисты, ходите на собеседования

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

Картинка взята из видеоролика с канала «Воинствующие Аметисты»

Около 10 лет я работал системным программистом под Linux. Это модули ядра (kernel space), различные демоны и работа с железом из пространства пользователя (user space), различные загрузчики (u-boot и др.), прошивки контроллеров и многое другое. Даже иной раз случалось пилить web-интерфейс. Но чаще бывало, что приходилось и с паяльником посидеть, да с проектировщиками печатных плат взаимодействовать. Одна из проблем такой работы это то, что достаточно сложно оценить уровень своей компетенции, поскольку одну задачу ты можешь знать очень глубоко, а рядом можешь не знать совсем. Единственный адекватный способ понять куда идти, и какие течения сейчас есть – это ходить на собеседования.

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

В статье будет небольшой конкурс с призами.

Справочная: «философия Unix» — базовые рекомендации, эволюция и немного критики

Время на прочтение3 мин
Количество просмотров5K
Расскажем, в чем суть философии, кто её сформулировал, расширял и критиковал по ходу развития.

(Кстати, вчера вышел и наш очередной TL;DR-дайджест про «удаленку» и личную ИБ.)

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

Что нового в ядре Linux

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

image


После всех этих лет, разработчики ядра Linux продолжают внедрять новшества. Новые версии будут быстрее и стабильнее.


Linux работает практически на всем: все 500 из 500 самых быстрых суперкомпьютеров мира; большинство общедоступных облаков, даже Microsoft Azure; и 74 процента смартфонов. Действительно, благодаря Android, Linux является самой популярной операционной системой для конечных пользователей, чуть обойдя Windows на 4 процента (39% против 35%).


Итак, что же будет дальше с Linux? После освещения Linux на протяжении всех 29 лет его истории и зная практически любого, кто хоть как-то связан с разработкой Linux, включая Линуса Торвальдса, я думаю, что у меня есть ответ на этот вопрос.

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

Автоматизация системных тестов на базе QEMU (Часть 2/2)

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

Это вторая часть статьи, посвященной автоматизации системного тестирования на основе виртуальных машин. Первую часть можно найти здесь.


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

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

Нам нужно поговорить про Linux IIO

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

IIO (промышленный ввод / вывод) — это подсистема ядра Linux для аналого-цифровых преобразователей (АЦП), цифро-аналоговых преобразователей (ЦАП) и различных типов датчиков. Может использоваться на высокоскоростных промышленных устройствах. Она, также, включает встроенный API для других драйверов.


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

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

Путешествие в мир Linux и Git

Время на прочтение9 мин
Количество просмотров33K
Во время пандемии я, честно говоря, не собиралась изучать Linux, не думала, что умение работать в этой ОС сделает меня продуктивнее. Но, как оказалось, Linux-навыки, и правда, помогают мне быстрее справляться с делами. Всё началось с того, что мне посоветовали «взглянуть на Linux». Я тогда подумала, что делать мне, всё равно, нечего, да ещё и сентябрьский выпуск #IBelieveinDoing оказался как раз о Linux.

Я почувствовала, что всё у меня получится, и отправилась в путешествие по миру Linux. В том выпуске #IBelieveinDoing были уроки не только по Linux, но и по Git. Между этими системами можно провести некоторые параллели. Linux — это опенсорсная ОС, которой пользуются программисты, а Git — это система управления версиями, которую применяют для отслеживания изменений в исходном коде при разработке программ. Надо отметить, что изучение Linux и Git оказалось весьма увлекательным занятием. Но Git — довольно сложная система, поэтому и освоить её основы было тяжелее, чем основы Linux.



В этом материале я хочу поделиться с вами тем, что узнала, осваивая Linux и Git.
Читать дальше →

Вышел Puppy Linux 9.5, дистрибутив для устаревших и слабых ПК и ноутбуков

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

Разработчики Puppy Linux выпустили новый релиз — 9.5 (FossaPup). Его загрузочный образ занимает всего 409 МБ. Новинка основана на пакетной базе Ubuntu 20.04 и Woof-CE, инструмента, который дает возможность использовать пакетные базы сторонних дистрибутивов.

По словам разработчиков, использование Ubuntu в качестве основы дало возможность сократить время подготовки и тестирования релиза, а также обеспечить максимальную совместимость с репозиториями Ubuntu. При этом сохранена совместимость с пакетами Puppy.

Автоматизация системных тестов на базе QEMU (Часть 1/2)

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

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


Статья предполагает наличие следующих навыков у читателя:


  • Уверенное пользование ОС семейства Linux;
  • Базовое понимание принципов виртуализации;
  • Знакомство с гипервизором QEMU и графическим клиентом virt-manager

Статья разбита на две части: в первой части мы познакомимся с основными инструментами, которые позволят нам создавать, развертывать и управлять виртуальными машинами используя исключительно командную строку. Эти знания нам пригодятся для второй части статьи (которую можно найти здесь: https://habr.com/ru/post/520648/), где мы соединим эти инструменты вместе и попробуем автоматизировать тесты конкретного сетевого приложения.

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

eBPF: современные возможности интроспекции в Linux, или Ядро больше не черный ящик

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


У всех есть любимые книжки про магию. У кого-то это Толкин, у кого-то — Пратчетт, у кого-то, как у меня, Макс Фрай. Сегодня я расскажу вам о моей любимой IT-магии — о BPF и современной инфраструктуре вокруг него.

BPF сейчас на пике популярности. Технология развивается семимильными шагами, проникает в самые неожиданные места и становится всё доступнее и доступнее для обычного пользователя. Почти на каждой популярной конференции сегодня можно услышать доклад на эту тему, и GopherCon Russia не исключение: я представляю вам текстовую версию моего доклада.

В этой статье не будет уникальных открытий. Я просто постараюсь показать, что такое BPF, на что он способен и как может помочь лично вам. Также мы рассмотрим особенности, связанные с Go.

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

KDE Plasma 5.20 открыли для тестирования. 13 октября выходит финальный релиз

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

Несколько дней назад мы писали о релизе GNOME 3.38, а сейчас появилась и новая версия KDE, которая получила название KDE Plasma 5.20. Правда, это лишь доступная для тестирования бета-версия,. Но финальный релиз не за горами — разработчики обещали выпустить его 13 октября.

Под катом — список обновлений и улучшений.
Читать дальше →

Кто займется развитием безопасности открытого ПО — обсуждаем новые проекты и их будущее

Время на прочтение2 мин
Количество просмотров2.2K
В августе Linux Foundation основали фонд OpenSSF. В него вошли — Core Infrastructure Initiative и Open Source Security Coalition. Их участники разработают инструментарий для поиска уязвимостей в коде и верификации программистов, участвующих в его написании. Рассказываем, что к чему.

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

Процесс разработки Linux: стоит ли игра свеч?

Время на прочтение11 мин
Количество просмотров17K
К настоящему моменту Linux существует уже почти три десятка лет. В ранние дни этой ОС Линус Торвальдс сам управлялся с кодом, написанным другими программистами, делающими вклад в развитие Linux. Тогда не было никаких систем контроля версий, всё делалось вручную. В современных условиях те же задачи решаются с использованием git.

Правда, всё это время кое-что оставалось неизменным. А именно, код отправляют в список рассылки (или в несколько списков), а там его проверяют и обсуждают до тех пор, пока он не будет сочтён готовым для включения в ядро Linux.



Но, несмотря на то, что этот процесс работы с кодом успешно использовался многие годы, он постоянно подвергался критике. Например, эта недавняя статья, которую написала Сара Новотны из Microsoft, наделала в интернете много шума. В той статье сказано, что методы совместной работы над кодом, применяемые при разработке ядра Linux, устарели. Там говорится о том, что если сообщество разработчиков Linux хочет привлекать в свои ряды молодых специалистов, эти методы хорошо бы заменить на что-то более современное. В спорах вокруг этих идей схлестнулись их защитники и противники.
Читать дальше →

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