Рубрика «Разработка под Linux»

Как выясняется, далеко немногие знают о существовании режима оверлеев в ACPICA и их поддержки в ОС Linux. Я хочу восполнить этот пробел на примере добавления ведомых устройств I2C в систему без перекомпиляции.
Читать полностью »

Недавно на GoTo Chicago я читала лекцию на эту тему и подумала, что будет неплохо написать статью с выводами. Этот пост посвящён тому, почему прошивки с открытым исходным кодом важны для безопасности.

Уровни привилегий

В типичном стеке у вас различные уровни привилегий.

  • Кольцо 3. Приложения: минимальное привилегий, за исключением песочницы в пользовательском пространстве, которая ещё больше ограничена.
  • Кольцо 0. Ядро: ядро операционной системы, в случае ОС с открытым исходным кодом вы видите его код.
  • Кольцо −1. Гипервизор: мониторинг виртуальных машин (VMM), создаёт и запускает виртуальные машины. В гипервизорах с открытым исходным кодом, таких как Xen, KVM, bhyve и другие, вы видите код.
  • Кольцо −2. Режим управления системой (SMM), ядро UEFI: проприетарный код, подробнее об этом ниже.
  • Кольцо −3. Движок управления: проприетарный код, подробнее об этом ниже.

Отрицательные кольца указывают на уровни с привилегиями больше, чем у нулевого.
Читать полностью »

Контейнеры представляют собой облегченную версию пользовательского пространства операционной системы Linux – фактически, это «голый» минимум. Тем не менее, это все равно полноценная операционная система, и поэтому качество этого самого контейнера так же важно, как полновесной операционной системы. Именно поэтому долгое время мы предлагали образы Red Hat Enterprise Linux (RHEL), чтобы пользователи могли иметь сертифицированные, современные и актуальные контейнеры корпоративного уровня. Запуск образов контейнеров (container images) RHEL на хостах контейнеров (container hosts) RHEL обеспечивает совместимость и переносимость между средами, не говоря уже о том, что это – уже знакомые инструменты. Была, правда, одна проблема. Вы не могли просто передать такой образ кому-то еще, даже если речь шла о заказчике или партнере, использующем Red Hat Enterprise Linux.

Build, Share, Collaborate - 1

Но теперь все изменилось
Читать полностью »

Всем привет! Сегодня мы рассмотрим разные фишки и изменения, которые появились в .NET Core платформе и сравним их с Framework. Я разбил статью на модули для более лучшего понимания. Эта статья будет интересна тем кто собирается переходить на .NET Core или уже использует его.

Stack technology

В данный момент у нас есть три платформы: .NET Framework, Mono и .NET Core. Каждая платформа включает в себя следующие технологии:

NET Framework — WPF, WinForms, ASP.NET (DNX реализация), WCF
NET Core — UWP, ASP.NET Core, WA, Xamarin (.NET Standard), Avalonia and other
Mono — Xamarin (PCL, Share project), Unity, ASP.NET, WinForms (cross platform)
NET Core (3.0) — Всё тоже самое, что и у .NET Core выше + WPF и WinForms, ML.NET

NET Standard

Ещё есть .NET Standard. Это набор классов, методов и интерфейсов, которые позволяют писать и использовать общий код под все перечисленные выше платформы. Ещё на ней можно писать консольные приложения. Вкратце это тот же PCL, но работает на всех перечисленных выше платформах.

Cross Platform

Читать полностью »

На своей ежегодной конференции для разработчиков компания Microsoft сделала сразу несколько достаточно важных презентаций. Мы выбрали две из них.

Первое: в летней сборке 19H2 Windows 10 будет поставляться полноценное Linux-ядро на базе версии 4.19 от 22 октября 2018 года для собственной подсистемы «Linux для Windows» (WSL — Windows Subsystem Linux).

Второе: в будущие энтерпрайз-сборки Chromium-реинкарнации умерщвленного компанией Microsoft Edge будет встроено ядро IE.

Первая новость — важна и полезна для разработчиков, вторая — похожа на плохой анекдот.

Чудеса упаковки от Microsoft: ядро Linux в Windows 10 и движок IE внутри Chromium Edge - 1
Мы встроили в твой Chromium-браузер движок IE, чтобы ты не забывал, что это браузер Edge
Читать полностью »

Спустя два месяца работы Линус Торвальдс представил релиз ядра Linux 5.1. Новинка получила большое количество новых функций и доработок, включая новый интерфейс для асинхронного ввода ввода/вывода io_uring, поддержку масштабируемого мониторинга очень больших ФС через fanotify, решение проблемы 2038 года и др.

По словам Торвальдса, 5.1 получил более 13 тысяч коммитов, что немало. Итоговый список изменений получился очень внушительным.
Читать полностью »

В данном разделе я рассматриваю часть возможностей по кастомизации, которые потребовались мне. Это не полный список того, что предлагает buildroot, но они вполне рабочие и не требуют вмешательства в файлы самого buildroot.

Читать полностью »

В данной статье я постараюсь рассказать о фреймворке SpaceVIL (Space of Visual Items Layout), который служит для построения пользовательских графических интерфейсов на платформах .Net / .Net Core и JVM.

SpaceVIL является кроссплатформенным и мультиязычным фреймворком, в его основе лежит графическая технология OpenGL, а за создание окон отвечает библиотека GLFW. Используя данный фреймворк, вы можете работать и создавать графические клиентские приложения в операционных системах Linux, Mac OS X, Windows. Для программистов C# в данное время это особенно актуально, учитывая, что Microsoft не собирается переносить WPF на другие ОС и Avalonia является единственным возможным аналогом. Особенностью же SpaceVIL в этом конкретном случае является мультиязычность, то есть на данный момент фреймворк под .Net Core можно использовать в связке со следующими языками программирования: C#, VisualBasic. Фреймворк под JVM можно использовать в связке с языками Java и Scala. То есть, SpaceVIL можно использовать с любым из этих языков и итоговый код будет выглядеть одинаково, поэтому при переходе на другой язык переучиваться заново не придется.

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

Читать полностью »

Введение

В данной серии статей я хочу рассмотреть систему сборки дистрибутива buildroot и поделиться опытом её кастомизации. Здесь будет практический опыт создания небольшой ОС с графическим интерфейсом и минимальным функционалом.

Прежде всего, не следует путать систему сборки и дистрибутив. Buildroot может собрать систему из набора пакетов, которые ему предложили. Buildroot построен на make-файлах и поэтому имеет огромные возможности по кастомизации. Заменить пакет на другую версию, добавить свой пакет, поменять правила сборки пакета, кастомизировать файловую систему после установки всех пакетов? Всё это умеет buildroot.

В России buildroot используется, но на мой взгляд мало русскоязычной информации для новичков.

Цель работы — собрать дистрибутив с live-загрузкой, интерфейсом icewm и браузером. Целевая платформа — virtualbox.

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

Buildroot система очень мощная, но она ничего не сделает за вас. Она может лишь дать возможности и автоматизировать процесс сборки.

Альтернативные системы сборки (yocto, open build system и прочие) не рассматриваются и не сравниваются.

Читать полностью »

Столкнулся с проблемой «ненахода» актуального скрипта для массового создания сотрудников.

Проблема связана с переходом Яндекса с PDD (Почта для домена), на Я.Коннект с новой версией API.

Скрипты которые мне попадались, были написаны только для «старой» версии API, и потому считаются нерабочими неактуальными.

Потому, вот актуальный простенький скрип на сегодня, для массового создания «Сотрудников» в организации.
Читать полностью »