Обновить
5
Илья Демьянчук@000exploit

Начинающий C программист и DevOps

5
Подписчики
Отправить сообщение

Пишем мобильную ОС на Rust. Часть 3. Путь от bare-metal эксперимента к capability-based микроядру

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

В первой части мы загрузили своё ядро на настоящий телефон, вывели «Hello world» в UART и нарисовали квадратик на экране. Во второй — научили ядро управлять памятью и завели кучу.

С тех пор прошло более 4 месяцев, и проект тихо перешагнул важную черту: из bare-metal эксперимента получилось микроядро. В привилегированном режиме остались только процессы, память и передача сообщений, а всё остальное — драйверы, сервисы, будущая графика — обычные программы снаружи. Само ядро при этом выросло с неполной тысячи строк до сорока пяти тысяч.

В этой статье разберёмся, что такое capability и handle и при чём здесь seL4 и Zircon, запустим свой процесс-"калькулятор" на телефоне и поговорим с ним по IPC, а под конец напишем userspace-драйвер часов для устройства, про которое в ядре нет ни строчки.

Получить хэндл на статью

Введение в микроядро Sel4

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

Предлагаю вашему вниманию перевод seL4 Whitepaper, который является хорошим введением в одно из самых известных микроядер для ОС — seL4 (лицензия GPLv2).

Здесь не только специфика seL4 и микроядер, но и много полезного материала в целом по безопасности, формальной верификации, виртуализации и системам жёсткого реального времени.

Читать далее

Операционная система Phantom от российского разработчика: возможности и нюансы

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

Источник: СNEWS

Сразу стоит сказать, что ОС Phantom, которую готовит к выходу российский разработчик Дмитрий Завалишин, существует лишь в виде прототипа. Но прототипа уже вполне работоспособного, который позволяет говорить о возможностях системы.

По словам автора проекта, ОС Phantom предназначается, в первую очередь, для промышленного использования. Она может заинтересовать банки, военных, возможно, операторов дата-центров и энергетиков. Но это потом, а пока давайте посмотрим на то, что предлагает операционная система.
Читать дальше →

Портирование Genode OS Framework на новую аппаратную платформу

Время на прочтение11 мин
Охват и читатели13K
Последнее время все больше компаний проявляет интерес к микроядерным операционным системам. Эти системы из разряда академических начинают переходить в разряд ОС для применения в реальных продуктах. Например, представленная недавно платформа Samsung Knox построенна с использованием OKL4 Microvisor. Весьма вероятно, что таких решений гораздо больше, но не все производители афишируют используемые технологии, так как на данный момент микроядерные системы, в основном, применяются в сфере информационной безопасности.

Краткая история микроядерных ОС и описание наиболее известных проектов недавно были описаны моим коллегой sartakov в статье "Микроядра и FOSDEM'13". Я хочу рассказать более подробно о Genode OS Framework и процессе портирования его на новую аппаратную платформу на базе процессора архитектуры ARM. В качестве ядра для Genode использовал Fiasco.OC.


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

Микроядро SME2 sgemm: 1024 умножения-сложения за проход

Уровень сложностиСложный
Время на прочтение8 мин
Охват и читатели7.1K

В этой части мы возьмём первый из пропусков BLIS — микроядро sgemm; сначала зафиксируем форму аккумулятора 32×32 в четырёх тайлах ZA, затем разберём горячий цикл по K, потом эпилог с alpha, beta и ловушкой NaN, а в конце посмотрим, какие числа производительности даёт именно это ядро. Следующая часть оставит структуру почти той же, но заменит геометрию тайла и условия существования ядра.

Читать далее

Open Printer с открытым софтом и железом: новый взгляд на печать с Raspberry Pi

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

HP, Canon и Brother, которые доминируют на рынке принтеров, предлагают пользователям дорогие и защищенные от дозаправки картриджи, а также сложные для ремонта устройства. И вот появился проект, который может изменить подход к печати. Open Printer — струйный принтер с полностью открытым программным и аппаратным обеспечением. Его основа — Raspberry Pi. Создатели выложили в открытый доступ все необходимые материалы — от схем до драйверов, — чтобы любой желающий мог собрать или модифицировать устройство. Давайте разберем, как устроен принтер, чем выделяется и какие перспективы открывает.

Читать далее

Удивительный мир транспортных карт Японии

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели37K

Когда я был зимой в Японии, одним из самых удивительных для меня явлений этой страны оказалась невероятная система общественного транспорта. Она не только была эффективной и надёжной, но и турникеты на станциях работали подозрительно быстро. Турникеты лондонской подземки не сравнятся с ними по скорости работы с Google Pay и другими моими бесконтактными картами. В чём же причина? Я решил изучить, почему японская система транспортных карт (IC-карт) так уникальна по сравнению с западными, и в процессе этого исследования узнал пару любопытных фактов.

Читать далее

Конфигурирование DHCPv6 и SLAAC в IPv6-сетях

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

С развитием интернета и исчерпанием адресного пространства IPv4 переход на IPv6 становится необходимым. IPv6 расширяет количество доступных адресов и предлагает некоторые улучшения в безопасности, производительности и упрощении сетевой архитектуры.

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

Читать далее

Выкрутили автоматизацию на максимум: с чем кроме инвентаризации помог переход на NetBox

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

Привет, Хабр! На связи команда K2 Cloud — ведущий сетевой инженер Сергей Алексеев и инженер-разработчик Александр Гнатюк.

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

Читать далее

Как писать один .spec для Fedora, RHEL и openSUSE одновременно

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели2.9K

Привет, Хабр!

Сегодня мы рассмотрим, как написать один RPM .spec-файл так, чтобы он одинаково успешно собирался на Fedora, RHEL и даже на openSUSE.

Но для начала: зачем вообще поддерживать несколько дистрибутивов одной спецификацией?

Читать далее

Введение в SCTP

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

Здравствуйте, уважаемые читатели! SCTP — достаточно специфичный протокол, о котором, наверняка, многие не слышали. Тем не менее, он более чем актуален в некоторых областях, одна из них — использование для доставки контрольных сообщений в LTE сетях.

Я относительно недавно присоединился к команде, занимающейся разработкой ПО для базовых станций. Ранее я не сталкивался с данным протоколом, поэтому решил разобраться с ним более подробно и столкнулся со следующей проблемой — относительно малое количество источников, посвященных данной теме. Несомненно, они есть, и я обязательно перечислю те из них, которыми мне пришлось воспользоваться, в данной статье.

В общем, главная мотивация — желание написать небольшую вводную на таком ресурсе как habr для более легкого старта у новичков.

Также, отдельно хочу обратить внимание — в первую очередь упор идет на моменты, на которых можно споткнуться, если о них не знать.

Читать далее

Проксирование из коробки: сравнительный анализ HAProxy, Envoy, Nginx, Caddy и Traefik

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

Всем привет, меня зовут Стас, я техлид в Mish Product Lab.

Тема возникла не просто так: внутри команды у нас было немало споров и дискуссий о том, какой инструмент для проксирования и терминации SSL лучше использовать в различных ситуациях. Изначально все наши гипотезы были основаны больше на личных предпочтениях, чем на реальных данных. Мы долго спорили, надеясь, что истина будет где-то рядом с нашими любимыми решениями. Но в итоге пришли к выводу, что единственный способ получить действительно объективный ответ — это протестировать и сравнить различные варианты на практике.

Именно так родилась идея провести сравнительный анализ производительности HAProxy, Envoy, Nginx, Caddy и Traefik с поддержкой SSL/TLS. Мы хотели понять, какой из инструментов «из коробки» предоставляет наилучшую производительность и минимальные накладные расходы, особенно при обработке SSL-трафика, который, как известно, требует дополнительных ресурсов из-за шифрования и дешифрования.

Читать далее

Основные алгоритмы сортировки. Разбираемся с танцами (это не шутка)

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели7K

Два распространенных алгоритма могут ускользать от понимания. В чем отличие разбиения в быстрой сортировке и похожих «магических» движений в сортировке слиянием? Меня это долго сбивало с толку. Разберемся же с ними наконец!
Читать дальше →

Основы по GNU Make

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели16K

GNU Make - это консольная утилита, которая запускает другие консольные утилиты в желаемой последовательности согласно скрипту. Только и всего.

В этом тексте я показал, как можно организовать самостоятельно написанные make скрипты для микроконтроллерных проектов.

Читать далее

Контейнеры для взрослых (Часть 01): Практический гид по терминологии

Время на прочтение16 мин
Охват и читатели29K
Вы можете спросить, зачем разбираться с терминологией, если концепция контейнеров выглядит вполне простой и понятной? Однако, довольно часто неверное использование терминов создает препятствия на пути к освоению контейнеров. Например, люди часто считают, что термины «контейнеры» и «образы» взаимозаменяемы, хотя на самом деле между ними есть важные концептуальные различия. Другой пример: в мире контейнеров «репозиторий» означает вовсе не то, что вы думаете. Кроме того, контейнерные технологии – это гораздо больше, чем только docker.



Так что, не владея терминологией, будет сложно понять, чем docker отличается от CRI-O, rkt или lxc/lxd; либо оценить роль Open Container Initiative в деле стандартизации контейнерных технологий.
Читать дальше: Практический гид по контейнерной терминологии

Болезнь «ООП головного мозга»

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

(Объектно-Ориентированное Помешательство)

Описание

Заразное ментальное расстройство, поражающее программистов, чрезмерно увлекающихся объектно-ориентированным программированием (ООП) и паттернами проектирования. Симптомы включают неспособность писать простой код, чрезмерное усложнение архитектуры и патологическую потребность во внедрении фабрик, стратегий и синглтонов даже там, где они не нужны.

Узнать шокирующую правду

Различия между Docker, containerd, CRI-O и runc

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

Появление Docker привело к взрывному росту популярности контейнеров, но с тех пор появились и другие инструменты. К сожалению, разобраться в них может быть совсем непросто. Но мы попробуем! И если вы считаете себя единственным, кто всего этого пока не понимает, не волнуйтесь... Это не так!

Читать далее

VimFx: Пользователям Firefox и фанатам Vim посвящается (Расширение для Firefox)

Время на прочтение2 мин
Охват и читатели19K
Закончил сегодня первую версию (0.1) своего первого расширения для Firefox. VimFx делает с Firefox то, что Vimium делает с Google Chrome.

Подобное расширение для Firefox существует уже давно — Vimperator появился еще в 2007 году. Долгое время усердно пользовался им, однако расширение это довольно «тяжелое» — архив весит больше 300кб, функций необъятный океан, да и на производительность всего браузера накладывался существенный урон. Но больше всего напрягало то, что Firefox с установленным Vimperator'ом больше не являлся Firefox'ом. Расширение до неузнаваемости изменяло браузер и его функционал. Никто кроме меня не мог даже открыть новую закладку… Через некоторое время появился Vimium для Google Chrome. И это было то, о чем я мечтал. Только для Хрома…
Читать дальше →

Упрощаем «простой» ELF

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

Давайте-ка напишем простую программу для Linux. Насколько трудной она может быть? Только тут надо учесть, что простота противоположна сложности, но не трудности*, и создать нечто простое на удивление трудно. А что останется, если избавиться от сложности стандартной библиотеки, всех современных средств безопасности, отладочной информации и механизмов обработки ошибок?
Читать дальше →

Создаем новогоднюю ёлку-таймер при помощи CSS3

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


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

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

Информация

В рейтинге
Не участвует
Дата рождения
Зарегистрирован
Активность

Специализация

Системный инженер
Младший
От 600 $
Git
Linux
C
Bash
Terraform
Grafana
GitLab
HashiCorp Vault
Red Hat Enterprise Linux