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

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

Состоялись релизы 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

Глубокое погружение в Linux namespaces
Часть 1
Часть 2
Часть 3
Часть 4
В этой серии постов мы внимательно рассмотрим один из главных ингредиентов в контейнере – namespaces. В процессе мы создадим более простой клон команды docker run – нашу собственную программу, которая будет принимать на входе команду (вместе с её аргументами, если таковые имеются) и разворачивать контейнер для её выполнения, изолированный от остальной системы, подобно тому, как вы бы выполнили docker run для запуска из образа.
Бытие современного фуллстек-разработчика

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

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

Пользовательские интерфейсы современных прикладных приложений, как правило, сложны — зачастую необходимо реализовывать поддержку постраничной навигации, обрабатывать разного рода поля ввода, на основе выбранных пользователем параметров отображать или скрывать информацию. При этом, для улучшения 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
В первой части нашего повествования мы показали как, имея на руках криптографический токен с поддержкой российской криптографии, создать запрос на получение сертификата, получить и установить сертификат на токен, проверить электронную подпись сертификата и его валидность по списку отозванных сертификатов (CRL), удалить сертификат с токена, сменить метки и т.д.AvaloniaUI: особенности на примере MessageBox

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

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

Ближайшие события
Анализ сишного Hello World
Для C hello world выглядит просто и коротко:
#include <stdio.h>
void main() {
printf("Hello World!\n");
}Поскольку программа такая короткая, должно быть элементарно объяснить, что происходит «под капотом».
Свободный как ветер и бесплатный как пиво перевод «Free as in Freedom» на русский язык под лицензией GNU FDL 1.3
Очень странно, но долгие годы подряд никто не переводил на русский «Free as in Freedom 2.0» — фундаментальную книгу про Ричарда Столлмана и его крестовый поход против проприетарного ПО, соглашений о неразглашении и других вещей, попирающих фундаментальные человеческие свободы в цифровую эпоху. Время это исправить!

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

5 принципов здравого смысла для создания cloud-native apps
Прекрасно осознавая необходимость и важность перехода на облачные приложения, многие организации все еще не знают, с чего начать. В этом посте мы рассмотрим ряд принципов, соблюдение которых при разработке контейнерных приложений позволит реализовать потенциал облачных платформ и добиться надежной работы и масштабирования приложений даже при серьезных отказах на уровне ИТ-инфраструктуры. Конечная цель изложенных здесь принципов – научиться создавать приложения, которые могут автоматически управляться облачными платформами, такими как Kubernetes.
Часть 1. QInst: лучше день потерять, потом за пять минут долететь (пишем инструментацию тривиально)
В предыдущей части я приблизительно описал, как можно загрузить 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. Требуется эльф для работы в Матрице. Возможна релокация
Внимание: содержит системное программирование. Да, в сущности, ничего другого и не содержит.
Давайте представим, что вам дали задание написать фэнтезийно-фантастическую игру. Ну там про эльфов. И про виртуальную реальность. Вы с детства мечтали написать что-нибудь эдакое и, не раздумывая, соглашаетесь. Вскоре вы понимаете, что о мире эльфов вы знаете по большей части из анекдотов со старого башорга и прочих разрозненных источников. Упс, неувязочка. Ну, где наша не пропадала… Наученный богатым программистским опытом, вы отправляетесь в Гугл, вводите «Elf specification» и идёте по ссылкам. О! Вот эта ведёт на какую-то PDF-ку… так, что тут у нас… какой-то Elf32_Sword — эльфийские мечи — похоже, то что нужно. 32 — это, по-видимому, уровень персонажа, а две четвёрки в следующих столбцах — это урон, наверное. Точно то, что нужно, да к тому же как систематизировано!..
Windows Subsystem for Linux (WSL) версии 2: как это будет? (FAQ)
Под катом расположен перевод опубликованного FAQ'а о деталях будущей WSL второй версии (автор — Craig Loewen).


- WSL 2 использует Hyper-V? Будет ли WSL 2 доступна на Windows 10 Home?
- Что будет с WSL 1? Она будет заброшена?
- Будет ли возможность одновременно запустить WSL 2 и другие сторонние инструменты виртуализации (например VMWare или Virtual Box)?
- Можно ли будет получить доступ к GPU из WSL 2? Какие планы на расширение поддержки оборудования?
- Сможет ли WSL 2 использовать сетевые приложения?
Вклад авторов
dlinyj 1092.6Seleditor 1084.0unxed 1071.5artyomsoft 858.0Bright_Translate 851.9bodyawm 700.0Andrey2008 679.2ru_vds 572.6m1rko 537.2
