Обновить
336.85

Linux *

Пишем под *nix

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

Исследование: Linux — все еще самая популярная ОС в облаке

Время на прочтение3 мин
Количество просмотров12K
Обсуждаем статистику зарубежных IaaS-провайдеров, приводим цифры по нашему облаку и говорим о причинах, которые повлияли на такое распространение ОС с открытым исходным кодом.

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

Пингвин в окне: о потенциале и перспективах WSL2

Время на прочтение8 мин
Количество просмотров13K
Привет, Хабр!

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


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

В Open Invention Network больше трех тысяч лицензиатов — что это значит для открытого ПО

Время на прочтение3 мин
Количество просмотров2.5K
Open Invention Network (OIN) — это организация, владеющая патентами на ПО, связанное с GNU/Linux. Цель организации — защита Linux и связанного с ним программного обеспечения от патентных исков. Члены сообщества передают свои патенты в общий пул, тем самым разрешая другим участникам их использовать на основе royalty-free лицензии.

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

Состоялись релизы Debian 10 Buster и Linux 5.2

Время на прочтение4 мин
Количество просмотров34K
В конце прошлой недели состоялось сразу два важных для сообщества релиза: свет увидела юбилейная версия Debian 10, которая, следуя традиции, получила имя «Buster», а также новая версия Linux 5.2.



Так, новый дистрибутив Debian может похвастаться приращением более 13370 пакетов в своей системе (их общее число теперь составляет 57 тысяч). При этом из системы было удалено 7278 пакетов (13% от общего объема предыдущей версии). Все они не подлежат обновлению и получили пометку «устаревшие».

Новая версия Linux принесла нам новую прошивку Open Sound, mount API, обновление GPU-драйверов для устройств ARM Mali и поддержку case-insensitive имен для файловой системы ext4.

С полными патч-ноутами можно ознакомиться по ссылкам:

Debian 10 Buster
Linux 5.2

А о самом основном подробнее — под катом.
Читать дальше →

Linux-разработка в Windows с WSL и Visual Studio Code Remote

Время на прочтение2 мин
Количество просмотров35K
Работа с VS Code Remote и Windows Subsystem for Linux (WSL) дает возможность использовать полнофункциональную среду разработки Linux на ноутбуке или десктопе с предустановленной Windows. В этом материале рассмотрим то, как использовать эти инструменты для разработки приложений на Python в Linux.

image

Глубокое погружение в Linux namespaces

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

Часть 1
Часть 2
Часть 3
Часть 4


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

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

Бытие современного фуллстек-разработчика

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


Я живу на периферии технологической тусовки. И на периферии в географическом смысле. А это значит, что:


  • Я никогда не был на профессиональных конференциях. Просто потому, что никогда не предоставлялось такой возможности.
  • Я никогда не покупал обучающие курсы: для меня странно платить за то, что можно изучить самому в этих ваших интернетах или по книгам. Заманчиво, конечно, получить концентрированные знания, подкрепленные выполнением практических заданий, заполучить сертификат. Но на это у меня никогда не было ни средств, ни времени.
  • Я адепт цифрового аскетизма: не по своей воле, но как порождение вечной перестройки в нашей стране. В короткие периоды финансовой стабильности я обновляю электронику по остаточному принципу. Вот и сейчас пишу этот текст на Core2Duo десятилетней давности. Все еще жду следующего стабильного плато на кривой моих доходов.
  • Раза три в своей жизни я покупал игры. В 90-е. Это были кассеты для отживающего своё Спектрума. На покупку ПО я смотрю с удивлением: когда все пользовались пиратским ПО, то и я пользовался, не понимая сути вопроса. А потом, в начале двухтысячных, полностью перешел на Linux и покупать стало нечего.
Читать дальше →

Карта средств защиты ядра Linux

Время на прочтение3 мин
Количество просмотров12K
Защита ядра Linux — очень сложная предметная область. Она включает большое количество сложно взаимосвязанных понятий, и было бы полезным иметь ее графическое представление. Поэтому я разработал карту средств защиты ядра Linux. Вот легенда:

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

Навигация в кроссплатформенном приложении на .NET Core с сохранением состояния на диск на примере ReactiveUI и Avalonia

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



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


MVVM фреймворк ReactiveUI предлагает сохранять состояние приложения путём сериализации графа моделей представления в момент приостановки программы, при этом механизмы определения момента приостановки различаются для фреймворков и платформ. Так, для WPF используется событие Exit, для Xamarin.Android — ActivityPaused, для Xamarin.iOS — DidEnterBackground, для UWP — перегрузка OnLaunched.


В данном материале рассмотрим использование ReactiveUI для сохранения и восстановления состояния ПО с GUI, включая состояние роутера, на примере кроссплатформенного GUI фреймворка Avalonia. Материал предполагает наличие базовых представлений о шаблоне проектирования MVVM и о реактивном программировании в контексте языка C# и платформы .NET у читателя. Последовательность действий, описанная в статье, применима к ОС Windows 10 и Ubuntu 18. Код проекта, описанного в статье, доступен на GitHub.

Приступим!

Криптографический АРМ на базе токенов PKCS#11. Электронная подпись. Часть 2

Время на прочтение4 мин
Количество просмотров6.2K
В первой части нашего повествования мы показали как, имея на руках криптографический токен с поддержкой российской криптографии, создать запрос на получение сертификата, получить и установить сертификат на токен, проверить электронную подпись сертификата и его валидность по списку отозванных сертификатов (CRL), удалить сертификат с токена, сменить метки и т.д.
Читать дальше →

AvaloniaUI: особенности на примере MessageBox

Время на прочтение4 мин
Количество просмотров13K
Avalonia ui — восхитительный фреймворк, к которому хочется возвращаться снова и снова. Так давайте же вернемся к нему еще раз и рассмотрим некоторые особенности вместе с моим message box.


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

WSL 2 теперь доступен для Windows Insiders

Время на прочтение3 мин
Количество просмотров32K
Мы рады рассказать, что теперь вы можете попробовать Windows Subsystem for Linux 2 установив Windows build 18917 в Insider Fast ring! В этой статье мы расскажем о том, как начать работу, о новых wsl.exe командах, а также поделимся важными заметками. Полная документация о WSL 2 доступна на странице в нашей документации.

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

Как создается ОС, сертифицированная по I классу защиты

Время на прочтение12 мин
Количество просмотров62K
Рассказ из первых рук о том, как создается, а потом готовится к сертификации для работы с данными под грифом «особой важности» защищенная ОС Astra Linux.


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

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

Анализ сишного Hello World

Время на прочтение7 мин
Количество просмотров71K
Hello World — одна из первых программ, которые мы пишем на любом языке программирования.

Для C hello world выглядит просто и коротко:

#include <stdio.h>

void main() {
  printf("Hello World!\n");
}

Поскольку программа такая короткая, должно быть элементарно объяснить, что происходит «под капотом».
Читать дальше →

Свободный как ветер и бесплатный как пиво перевод «Free as in Freedom» на русский язык под лицензией GNU FDL 1.3

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

Очень странно, но долгие годы подряд никто не переводил на русский «Free as in Freedom 2.0» — фундаментальную книгу про Ричарда Столлмана и его крестовый поход против проприетарного ПО, соглашений о неразглашении и других вещей, попирающих фундаментальные человеческие свободы в цифровую эпоху. Время это исправить!


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

Бенчмарки для Linux-серверов: 5 открытых инструментов

Время на прочтение4 мин
Количество просмотров27K
Сегодня мы расскажем об открытых инструментах для оценки производительности процессоров, памяти, файловых систем и систем хранения данных.

В список вошли утилиты, предлагаемые резидентами GitHub и участниками тематических тредов на Reddit, — Sysbench, UnixBench, Phoronix Test Suite, Vdbench и IOzone.

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

5 принципов здравого смысла для создания cloud-native apps

Время на прочтение9 мин
Количество просмотров5K
«Облачно-ориентированные» (cloud native) или просто «облачные» приложения создаются специально для работы в облачных инфраструктурах. Обычно они строятся как набор слабо связанных микросервисов, упакованных в контейнеры, которые, в свою очередь управляются облачной платформой. Такие приложения по умолчанию готовы к сбоям, а значит надежно работают и масштабируются даже при серьезных отказах инфраструктурного уровня. Обратная сторона медали – наборы ограничений (контракты), которые облачная платформа накладывает на контейнерные приложения, чтобы иметь возможность управлять ими в автоматическом режиме.



Прекрасно осознавая необходимость и важность перехода на облачные приложения, многие организации все еще не знают, с чего начать. В этом посте мы рассмотрим ряд принципов, соблюдение которых при разработке контейнерных приложений позволит реализовать потенциал облачных платформ и добиться надежной работы и масштабирования приложений даже при серьезных отказах на уровне ИТ-инфраструктуры. Конечная цель изложенных здесь принципов – научиться создавать приложения, которые могут автоматически управляться облачными платформами, такими как Kubernetes.
Читать дальше: 5 принципов здравого смысла для создания cloud-native apps

Часть 1. QInst: лучше день потерять, потом за пять минут долететь (пишем инструментацию тривиально)

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

В предыдущей части я приблизительно описал, как можно загрузить eBPF функции из ELF-файла. Теперь пришла пора перейти от фэнтези к советским мультикам, и следуя мудрому совету, потратив один раз некоторое количество усилий, сделать универсальный инструмент инструментации (или, сокращённо, УИИ!!!). При этом я воспользуюсь антипаттерном проектирования «Золотой молоток» и сооружу инструмент из относительно знакомого мне QEMU. Бонусом за это мы получим кросс-архитектурную инструментацию, а также инструментацию на уровне целого виртуального компьютера. Инструментация будет вида «небольшой нативный so-шничек + небольшой .o-файл с eBPF». При этом eBPF-функции будут подставляться перед соответствующими инструкциями внутреннего представления QEMU перед оптимизацией и кодогенерацией.


В итоге сама инструментация, добавляемая при кодогенерации (то есть, не считая пары килобайтов обычного сишного рантайма), выглядит вот так, и это не псевдокод:


#include <stdint.h>

extern uint8_t *__afl_area_ptr;
extern uint64_t prev;

void inst_qemu_brcond_i64(uint64_t tag, uint64_t x, uint64_t y, uint64_t z, uint64_t u)
{
    __afl_area_ptr[((prev >> 1) ^ tag) & 0xFFFF] += 1;
    prev = tag;
}

void inst_qemu_brcond_i32(uint64_t tag, uint64_t x, uint64_t y, uint64_t z, uint64_t u)
{
    __afl_area_ptr[((prev >> 1) ^ tag) & 0xFFFF] += 1;
    prev = tag;
}

Что же, пора загрузить нашего эльфа в Матрицу. Ну, как загрузить, скорее вмазать распылить.

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

Часть 0. Требуется эльф для работы в Матрице. Возможна релокация

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

Внимание: содержит системное программирование. Да, в сущности, ничего другого и не содержит.


Давайте представим, что вам дали задание написать фэнтезийно-фантастическую игру. Ну там про эльфов. И про виртуальную реальность. Вы с детства мечтали написать что-нибудь эдакое и, не раздумывая, соглашаетесь. Вскоре вы понимаете, что о мире эльфов вы знаете по большей части из анекдотов со старого башорга и прочих разрозненных источников. Упс, неувязочка. Ну, где наша не пропадала… Наученный богатым программистским опытом, вы отправляетесь в Гугл, вводите «Elf specification» и идёте по ссылкам. О! Вот эта ведёт на какую-то PDF-ку… так, что тут у нас… какой-то Elf32_Sword — эльфийские мечи — похоже, то что нужно. 32 — это, по-видимому, уровень персонажа, а две четвёрки в следующих столбцах — это урон, наверное. Точно то, что нужно, да к тому же как систематизировано!..

Ну-с, приступим...

Windows Subsystem for Linux (WSL) версии 2: как это будет? (FAQ)

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

Под катом расположен перевод опубликованного FAQ'а о деталях будущей WSL второй версии (автор — Craig Loewen).





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

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