Обновить
256K+

Linux *

Пишем под *nix

418,37
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности
Формат публикации

Пишем конфигурацию для Neovim

Время на прочтение13 мин
Охват и читатели67K

Привет, сегодня будет писать конфигурацию для терминального редактора Neovim на чистом Lua. Мы не будем использовать VimScript от слова совсем. Я расскажу в чем плюсы создания таких конфигураций, как соблюдать KISS (Keep It Stupid Simple) все время дополняя такие конфигурации, а также расскажу про полезные плагины для веб-разработки и не только.

Бегом под кат!

Исследователь запустил Doom на бортовом компьютере трактора John Deere

Время на прочтение1 мин
Охват и читатели3.1K

Исследователь безопасности под ником Sick Codes и моддер Skelegant запустили первый Doom на бортовом компьютере трактора John Deere. Игровой процесс показали на конференции Def Con в Лас-Вегасе.

Читать далее

История одного перехода с gcc на clang

Время на прочтение5 мин
Охват и читатели15K


На прошлой неделе, после нескольких месяцев разработки, вышла очередная версия языка программирования NewLang. Одной из технических особенностей данного релиза является переход на использования компилятора clang вместо gcc.

Данная статья описывает причины смены компилятора, некоторые особенности этого процесса, проблемы, которые приходилось решать и итоговые выводы.

Автор надеется, что эта информация может оказаться полезной и позволит сэкономить кучу времени, если заранее знать некоторые подводные камни, а так же положительные стороны от перехода на clang.
Читать дальше →

Вышла версия ядра Linux 6.0-rc1 с названием от Линуса Торвальдса: «Hurr durr I'ma ninja sloth»

Время на прочтение1 мин
Охват и читатели6.1K


14 августа 2022 года стала доступна первая релиз-кандидат версия ядра Linux 6.0 с названием от Линуса Торвальдса: "Hurr durr I'ma ninja sloth".
Читать дальше →

Пособие по программированию модулей ядра Linux. Ч.1

Время на прочтение19 мин
Охват и читатели58K

Перед вами последняя версия пособия по программированию модулей ядра Linux, вышедшего 2 июля 2022 года. Пособие большое, поэтому материал будет разбит на серию статей. В первой части мы разберём, что такое модули ядра, рассмотрим необходимые подготовительные этапы для их создания и в завершении по традиции напишем первый простейший модуль «Hello world», попутно разобрав вопросы лицензирования, передачу аргументов командной строки и прочие нюансы. Это пособие вы можете смело воспроизводить и изменять в соответствии с условиями Open Software License v 3.0.
Читать дальше →

Есть ещё выдающиеся программисты, кроме Торвальдса, Беллара и Дина? Знакомьтесь — Джастин Танни

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели48K
Программистам не дают Нобелевские премии. Хотя некоторые заслуживают. В нашей отрасли есть настоящие герои с выдающимися достижениями. Эти люди не строят карьеру, перепрыгивая с одной должности на другую, прокачивая зарплату. Создаётся впечатление, что им карьера вообще не важна. В силу высокого интеллекта, врождённой любознательности и особого характера эти люди не способны выполнять скучные, рядовые задания. Только интересные или важные. И только по своей воле, не по указанию сверху.

На Хабре рассказывали про «чак норрисов» от программирования, таких как Линус Торвальдс, Фабрис Беллар и Джефф Дин. Конечно, есть и другие феноменальные таланты, их много. Зачастую эти люди далеки от публичности, никогда не давали интервью и известны только по никам. Но их объединяет одно — выдающиеся индивидуальные разработки, которые разрывают шаблон и выделяются из общей массы.

Мы собирали этот список несколько лет. Начнём с последних строчек своебразного хит-парада… Знакомьтесь — Джастин Танни (Justine Tunney), хакерша и гений системного программирования.
Читать дальше →

Энтузиасты запустили Cyberpunk 2077, «Ведьмака 3», GTA V и DOOM на ПК на базе «Эльбрус-8С»

Время на прочтение1 мин
Охват и читатели14K


Энтузиасты на YouTube-канале Elbrus PC Test запустили Cyberpunk 2077, «Ведьмака 3», GTA V и DOOM на ПК на базе 8-ядерного российского процессора «Эльбрус-8С» с тактовой частотой 1,3 ГГц. В тесте использовалась рабочая станция «Эльбрус-801») с 32 ГБ ОЗУ DDR3-ECC и видеокартой Radeon R9 370 4GB.
Читать дальше →

Эскалация привилегий при помощи polkit: как заполучить root-доступ в Linux, воспользовавшись семилетним багом

Время на прочтение14 мин
Охват и читатели20K

polkit – это системный сервис, по умолчанию устанавливаемый во многих дистрибутивах Linux. Он используется демоном systemd, поэтому в любом дистрибутиве Linux, где применяется system, также используется polkit. Автор этой статьи, входя в состав a GitHub Security Lab, работает над улучшением безопасности опенсорсного софта; он ищет уязвимости и докладывает о них. Именно он однажды нашел уязвимость в polkit, позволяющую злоумышленнику увеличить его привилегии. Раскрытие уязвимости было скоординировано с командой по поддержке polkit, а также с командой по обеспечению безопасности в компании Red Hat. О раскрытии этой уязвимости было объявлено публично, патч для нее был выпущен 3 июня 2021 года, и ей был присвоен код CVE-2021-3560.

Эта уязвимость позволяет непривилегированному пользователю, работающему на локальном ПК, получить root-доступ к командной оболочке системы. Такой эксплойт несложно осуществить при помощи нескольких стандартных инструментов командной строки, как показано в этом коротком видео. В данном посте будет объяснено, как устроен этот эксплойт, а также показано, где именно в исходном коде находится этот баг.

История уязвимости CVE-2021-3560 и какие дистрибутивы она затронула

Рассматриваемый баг достаточно старый. Он вкрался в код более восьми лет назад в коммите bfa5036 и впервые мог использоваться в версии 0.113 программы polkit. Однако, во многих популярных дистрибутивах Linux эта уязвимая версия не использовалась до относительно недавнего времени.

Немного специфической историей этот баг обладает в Debian и его производных (например, в Ubuntu), так как Debian использует форк polkit, в котором есть своя особенная схема нумерации версий. В форке Debian этот баг появился в коммите f81d021 и впервые попал в дистрибутив в версии 0.105-26. В стабильном релизе Debian 10 (“buster”) используется версия 0.105-25, таким образом, уязвимости в нем нет. Но некоторые производные Debian, в том числе, Ubuntu, основаны на нестабильной версии Debian, а она уязвима.

Читать далее

Миграция SAP HCM в Yandex Cloud: зачем и как мы это делали и причем тут сертификация по ФЗ “О персональных данных”

Время на прочтение7 мин
Охват и читатели2.2K

Сегодня в российском ИТ-сообществе хорошо знакомы с Федеральным Законом ФЗ-152. Этот документ регулирует обработку персональных данных и предъявляет к системам, которые работают с ними, ряд жестких требований. Будем честны —  закон не только защищает данные, но и серьезно осложняет использование зарубежных сервисов, ряд из которых пока сложно заменить отечественными аналогами в настоящий момент. SAP HCM одна из таких систем.

Ещё в 2014-м году мы поставили амбициозную задачу перенести все системы SAP в облако при построении гибридной инфраструктуры хранения данных. В 2020-м мы смогли её реализовать. С одной стороны, это позволяло обновить наше собственное технологическое ядро, планировать ресурсы и управлять бизнесом realtime. С другой — исключить риск роста расходов на инфраструктуру и поддержку SAP, как для нашей компании, так и для клиентов. В этом посте несколько слов об опыте миграции SAP HCM в Yandex Cloud, причинах выбранных решений и некоторых юридических нюансах.

Читать далее

Разработка драйвера сетевого адаптера для Linux. Часть 1

Время на прочтение25 мин
Охват и читатели34K

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

Cтатью разделим на две части.

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

Хотя при разработке драйверов необходимо использовать стандартные ядерные фреймворки, такие как clock, reset, libphy и пр., поначалу мы будем работать с адаптером напрямую через регистры состояния и управления. Это позволит нам детально разобраться с аппаратной частью.

Во второй части статьи приведем драйвер к нормальному виду, с использованием стандартных фреймворков и описанием того, что надо указать в Device Tree, и рассмотрим как передавать сетевые пакеты.

Нам нужна макетная плата с сетевым адаптером, на которую можно поставить Linux. Возьмем Orange Pi Zero на платформе Allwinner H2+. В состав платформы входят четыре процессорных ядра Cortex-A7, поддерживается ОЗУ стандартов LPDDR2, LPDDR3, DDR3, широкий спектр соединений и интерфейсов, в том числе сетевой адаптер, для которого мы будем разрабатывать драйвер. Подробное описание платформы тут, документация на платформу Allwinner H3 Datasheet.

Читать далее

Новое, старое, улучшенное и поддержка китайских процессоров: что собой представляет ядро Linux 5.19

Время на прочтение5 мин
Охват и читатели13K

Прошло совсем немного времени со времени релиза 5.18, и Линус Торвальдс представил новый — 5.19. Как всегда, исправлений огромное количество — свыше 16 000 от 2190 разработчиков. В прошлом релизе было примерно столько же, так что в мире Linux, можно сказать стабильность.

Объем патча составил 90 МБ, при этом изменены в разной степени почти 14 000 файлов. Добавлено 1,14 млн строк кода, удалено при этом 349 177 тыс. Что касается фокуса изменений, то активнее всего велась работа с драйверами устройств, это около 39% всех изменений, еще около 21% — обновление кода, связанное с различными аппаратными архитектурами. Ну и уже меньше изменений, связанных с сетевым стеком, файловыми системами и внутренними подсистемами. Под катом подробности о главных новшествах и апдейтах.
Читать дальше →

Библиотека вывода с использованием escape-последовательностей

Время на прочтение9 мин
Охват и читатели5.9K

Osmanip – это библиотека C++, предоставляющая полезные механизмы для работы с управляющими последовательностями ANSI и настройки потока вывода программ. С помощью этих механизмов вы можете оформлять выводимые строки различными цветами и стилями, изменять расположение курсора в терминале и регулировать прочие компоненты вроде индикаторов выполнения и графики. Весь этот функционал будет очень полезен для придания желаемого вида общему потоку вывода программы или для выполнения операций с курсором.
Читать дальше →

Пишем наш первый модуль для ядра Linux

Время на прочтение14 мин
Охват и читатели23K
image

Пожалуй, ядро Linux сегодня – это самый вездесущий (и по-прежнему недооцененный) программный код. На нем основаны все дистрибутивы Linux (что очевидно), но это далеко не все. Кроме того, на ядре Linux работает огромная масса встроенного ПО практически везде. У вас есть микроволновка? Вероятно, она работает на ядре Linux. Посудомоечная машина? Тоже. Вы состоятельный человек и приобрели автомобиль Tesla? Может быть, вы найдете в ней какие-то баги и исправите их, в таком случае, можете отправить патч им на Github, где лежит код для модели S и модели X. Электронная начинка МКС, благодаря которой станция не падает на Землю смертельно опасным и разрушительным огненным болидом — конечно же, тоже работает под Linux. Ядро легковесно. Наверное, именно поэтому оно так хорошо работает в условиях низкой гравитации.
Читать дальше →

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

Что такое Linux? Статья-шпаргалка для новичков

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

Что такое Linux?


Салют! Это статья — попытка систематизировать некие базовые знания об Linux’ах, которая может быть полезна для продвинутых пользователей, разработчиков и админов Windows, которые еще не имели (или имели крайне небольшой и отрывочный) опыт работы с Linux системами и не знают, с чего начать, однако хотят попробовать — сами, или по причине производственной необходимости. Каждый пункт содержит не исчёрпывающие сведения, а лишь отправные пункты для дальнейшего изучения (гуглежа) материала.

Содержание:

  1. Linux Kernel aka Ядро
  2. GNU Core Utilities (coreutils)
  3. Bash — интерпретатор командной строки
  4. Системы управления пакетами и пакетные менеджеры
  5. Init systems — системы инициализации
  6. systemd
  7. Ваш первый вход на сервер
  8. Управляем пользователями
  9. Сети
  10. FHS — Filesystem Hierarchy Standard — навигация в файловых системах Linux
  11. Window system / display server — сервер экранов
  12. Полезные ссылки и список литературы для изучения


Если интересно — прыгайте под кат
one root to rule them all

Вышел Linux 5.19

Время на прочтение2 мин
Охват и читатели11K


31 июля 2022 года Линус Торвальдс представил первый стабильный релиз ядра Linux 5.19. Выпуск новой версии ядра Linux вышел в соответствии с графиком, спустя два месяца после выхода предыдущей стабильной версии Linux 5.18 в конце мая этого года.
Читать дальше →

Вышел Linux Mint 21 «Vanessa» (Ванесса)

Время на прочтение2 мин
Охват и читатели19K


31 июля 2022 года вышел релиз Linux Mint 21 «Vanessa» (Ванесса), который основан на пакетной базе Ubuntu 22.04 LTS. Это событие произошло спустя два года после релиза Linux Mint 20 «Ulyana» (Ульяна).
Читать дальше →

Запуск MFC-приложения на не-x86 архитектуре нативно при помощи Winelib и подключение к нему плагина на Qt

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

Занимался я недавно портированием одного старого win32 MFC MDI приложения, до сих пор разрабатываемого с использованием Microsoft Visual Studio 6.0 (среда разработки 1998 года выпуска), на Linux. При чем необходимо было, чтобы под Linux собирался нативный бинарник в формате ELF из исходников. Взгляд упал на проект Wine, позволяющий запускать бинарники Windows (формат PE - Portable Executable). Один из компонентов Wine - библиотека Winelib - является прослойкой (враппером) между вызовами win32 и вызовами библиотек Linux. С помощью Winelib можно под Linux собирать win32 приложения из исходников. В составе Winelib есть десятки врапперов стандартных библиотек Windows. Но вот незадача. Враппера для MFC (Microsoft Foundation Classes) нет. В итоге прослойку между классами MFC и вызовами win32, пригодную для компиляции с использованием Winelib, пришлось готовить самому. Далее будет описан путь к решению задачи, а также компромиссы, на которые пришлось пойти по ходу реализации.

Читать далее

Debian получила доступ к домену Debian.Community, где критиковался проект и выкладывались его частные рассылки

Время на прочтение1 мин
Охват и читатели3K


Debian выиграла процесс по защите своей интеллектуальной собственности на название против автора проекта Debian.Community. Этот домен с 29 июля будет принадлежать проекту Debian. Ранее на нем разработчик Дэниэл Покок (Daniel Pocock) выкладывал в виде блогов свои соображения с критикой проекта, а также инсайдерскую информацию из частных рассылок debian-private.
Читать дальше →

Сети на Linux: все ещё достойны

Время на прочтение3 мин
Охват и читатели13K

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

Алексей Учакин, спикер Слёрма по направлению «Сети для DevOps», поделился своим мнением и ответил на насущный вопрос: «Быть или не быть профессии сетевого инженера».

Читать далее

26 июля, в Санкт-Петербурге состоится встреча мониторингового сообщества Monhouse, темой станет мониторинг уязвимостей

Время на прочтение1 мин
Охват и читатели505

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

Подробности и регистрация