Обновить
0
@Pavilionread⁠-⁠only

Пользователь

Отправить сообщение

Немного о ARM Security Extensions (aka ARM TrustZone)

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

О чем эта статья


На Хабре уже несколько раз упоминали о SMM — режиме процессора x86/64 который имеет больше привилегий чем даже режим гипервизора. Нечто подобное есть и в процессорах архитектуры ARMv7 и ARMv8. Вычислительные ядра этих архитектур могут иметь опциональное расширение под названием ARM Security Extensions, которое позволит разделить исполняемый код, память и периферию на два домена — доверенный и недоверенный. Официальное маркетинговое название этой технологии — ARM TrustZone. Но технари чаще предпочитают говорить о security extensions.


Это будет обзорная статья, поэтому я не буду вдаваться в глухие технические дебри. Тем не менее технические детали будут присутствовать. Первая часть статьи будет посвящена вопросу зачем это всё вообще нужно, а вторая — как это работает в общих чертах. Если общество заинтересуется — следующая статья будет содержать больше технических деталей. Кому интересно — добро пожаловать под кат.

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

Смотрим на Общую Теорию Относительности изнутри

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

Представьте себе: обычный клерк в патентном бюро перебирает бумаги и вдруг бросает вызов самой Вселенной. Без телескопов, без лабораторий — только ручка, бумага и дерзкая мысль. Так начинается история Альберта Эйнштейна, человека, который решил переписать законы природы. Вместо того чтобы считать гравитацию силой, он увидел её как изгиб пространства-времени. Массивные объекты гнут реальность вокруг себя, а всё остальное катится по этим кривым. Звучит как фантастика? Но именно это объяснило орбиту Меркурия, предсказало чёрные дыры и волны в самой ткани космоса.

Читать далее

Посткапитализм без откатов: эволюция к равенству возможностей

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

Сегодня всё чаще звучат призывы к восстановлению родов, возрождению клановой структуры, укреплению семейных династий. Эти идеи подаются как путь к справедливости, к возрождению социальных связей, к возвращению "естественного порядка".

Эта статья является ответом на хабра-материал «Концепция Человек-Род-Государство» (от @Avant28) в котором предлагается вернуться к родовой структуре как основе социального устройства.

Но стоит ли идти назад?

Путь пакета через ядро Linux

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

Аннотация - Сетевые стеки являются основой коммуникации и обмена информацией. В данной статье исследуется сетевой стек TCP/IPv4 и UDP/IPv4 в Linux, наиболее распространенной серверной ОС. Мы описываем трассировку наиболее важных сетевых функций ядра Linux 5.10.8. Хотя документация по сетевому коду Linux существует, она часто устарела или охватывает только отдельные аспекты, такие как уровень IP или TCP. Мы рассматриваем эту проблему комплексно, охватывая путь пакета на выходе и входе через сетевой стек Linux. Кроме того, мы освещаем тонкости реализации и показываем, как ядро Linux реализует сетевые протоколы. Наша статья может послужить основой для оптимизации производительности, анализа безопасности, наблюдения за сетью или отладки.

Читать далее

Как написать Android приложение, которое не будет стыдно положить в портфолио. Гайд для новичков в Android разработке

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

Гайд по написанию Android-приложения с нуля, используя лучшие архитектурные подходы – Clean Architecture и MVI, они обеспечат поддерживаемость, тестируемость и масштабируемость приложения, что особенно важно для сложных и долгосрочных проектов.

Читать далее

Чиним замедление YouTube на уровне роутера

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

Всех категорический приветствую. Буквально первого августа, прямо в ночь, стал у меня жутко лагать YouTube. Естественно, мне это сильно не понравилось. Ну, что же, давайте разбираться, почему и как это исправить в условиях моей личной сети.

Что случилось?

Хорошо описано произошедшее здесь, на Хабре. Если совсем кратко, своими словами - во время установки SSL соединения в открытом виде домен передается к которому мы подключаемся(так называемое SNI). И если это googlevideo.com то начинают твориться "интересные вещи". Можно проверить это локально коммандами из статьи.

$ curl https://speedtest.selectel.ru/100MB -o/dev/null

Читать далее

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

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

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

UART и с чем его едят

Время на прочтение10 мин
Охват и читатели1M
После Vogue истерии появилось множество вопросов, как подключить плату к компьютеру. И многие люди даже не понимают, что же такое UART. И я решил рассказать здесь какой это мощный инструмент.

image
Роутер превращается в компьютер, если к нему по UART подключить клавиатуру и дисплей

От телеграфа к COM-порту


Протокол UART (Universal asynchronous receiver/transmitter) или, по-русски, УАПП (универсальный асинхронный приемопередатчик) — старейший и самый распространенный на сегодняшний день физический протокол передачи данных. Наиболее известен из семейства UART протокол RS-232 (в народе – COM-порт, тот самый который стоит у тебя в компе). Это, наверное, самый древний компьютерный интерфейс. Он дожил до наших дней и не потерял своей актуальности.

Надо сказать, что изначально интерфейс УАПП появился в США как средство для передачи телеграфных сообщений, и рабочих бит там было пять (как в азбуке Морзе). Для передачи использовались механические устройства. Потом появились компьютеры, и коды ASCII, которые потребовали семь бит. В начале 60-х на смену пришла всем известная 8-битная таблица ASCII, и тогда формат передачи стал занимать полноценный байт, плюс управляющие три бита.
Читать дальше →

Визуализация алгоритмов стандартной библиотеки C++

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

В интернете много различных видео, в которых визуализируются алгоритмы. Однако такая визуализация, как правило, делается под определенный алгоритм, и код отрисовки соединен с кодом самого алгоритма. Мне пришла идея, что если отделить визуализацию алгоритма от его исполнения. Тогда можно будет визуализировать любой алгоритм. В том числе алгоритмы стандартной библиотеки С++. Вот что у меня получилось.

Читать далее

Аллокаторы памяти

Время на прочтение20 мин
Охват и читатели144K
Всем привет! Не так давно, после очень плотного изучения аллокаторов и алгоритмов распределения памяти, а также в последующем применении их на практике мне в голову пришла идея написать статью, в которой будет максимально подробно рассказано о них. Считаю, что данная тема будет достаточно востребованной, так как в сети, особенно в русскоязычной части, на данный момент существует очень мало источников, посвященных этому вопросу.
Читать дальше →

План алгоритмического собеседования: как впечатлить интервьюера и получить работу мечты

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

При поиске работы программистам часто приходится сталкиваться с алгоритмическим интервью. По моему опыту общения с людьми из индустрии ИТ я заметил, что многие считают, что алгоритмическая секция бинарна: либо алгоритм написан корректно за отведенное время, либо нет. На самом деле всё немного сложнее и во время интервью собеседующий обращает внимание на многие другие аспекты.

Я за свою карьеру имел возможность быть по обе стороны баррикад. С одной стороны я провёл сотни алгоритмических интервью в компаниях, где работал. С другой стороны сам успешно проходил такие интервью и получал оффер в Google, Facebook, Amazon, Uber, Yandex и Mail.Ru.

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

Читать далее

Проблема вагонетки: в какую сторону переключишь стрелку именно ты?

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

А вы помните уроки обществознания в старших классах и жаркие споры вокруг загадочной категории «Проблема вагонетки»? О, да. 

Trolley problem или пресловутая «Проблема вагонетки», это мысленный этический эксперимент, сформулированный в 1967 году английским философом, внучкой 22-го и 24-го президента США Гровера Кливденда, Филиппой Фут.

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

Посмотрим дальше

Секреты auto и decltype

Время на прочтение5 мин
Охват и читатели121K
Новый стандарт языка принят относительно давно и сейчас уже, наверное, нет программиста, который не слышал о новых ключевых словах auto и decltype. Но как почти с любым аспектом С++, использование этих новых инструментов не обходится без нюансов. Некоторые из них я постараюсь осветить в этой статье.
Читать дальше →

Введение в DPDK: архитектура и принцип работы

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

За последние несколько лет тема производительности сетевого стека Linux обрела особую актуальность. Это вполне понятно: объёмы передаваемых по сети данных и соответствующие нагрузки растут не по дням, а по часам.

И даже широкое распространение сетевых карт 10GE не решает проблемы: в самом ядре Linux имеется множество «узких мест», которые препятствуют быстрой обработке пакетов.
Читать дальше →

Разделение control и data plane в сетевом оборудовании

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


В работе сетевого устройства можно выделить две абстракции – управляющий уровень (control plane) и передающий уровень (data plane). Сontrol plane отвечает за логику работы сетевого устройства для обеспечения в дальнейшем возможности передачи пакетов (заполнение различных таблиц, например, маршрутизации, отработку различных служебных протоколов ARP/STP/и пр.). Data plane в свою очередь отвечает непосредственно за передачу полезного трафика через наше сетевое устройство. Т.е. сontrol plane нам предоставляет информацию куда и как слать сетевой трафик, а data plane уже выполняет поставленные перед ним задачи. Данные абстракции могут быть выделены как на логическом, так и на физическом уровне. Но всегда ли на сетевом оборудовании присутствует такое разделение и где именно выполняются функции каждой из абстракций? Давайте попробуем в этом разобраться.
Читать дальше →

Архитектура event-driven приложений

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


Автор статьи: Артем Михайлов


Введение в концепцию event-driven архитектуры


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

Организация памяти

Время на прочтение7 мин
Охват и читатели256K
За последнюю неделю дважды объяснял людям как организована работа с памятью в х86, с целью чтобы не объяснять в третий раз написал эту статью.

И так, чтобы понять организацию памяти от вас потребуется знания некоторых базовых понятий, таких как регистры, стек и тд. Я по ходу попробую объяснить и это на пальцах, но очень кратко потому что это не тема для этой статьи. Итак начнем.
Читать дальше →

Параллелизм против многопоточности против асинхронного программирования: разъяснение

Время на прочтение4 мин
Охват и читатели172K
Хочу представить вашему вниманию перевод статьи Concurrency vs Multi-threading vs Asynchronous Programming: Explained.

В последние время, я выступал на мероприятиях и отвечал на вопрос аудитории между моими выступлениями о Асинхронном программировании, я обнаружил что некоторые люди путали многопоточное и асинхронное программирование, а некоторые говорили, что это одно и тоже. Итак, я решил разъяснить эти термины и добавить еще одно понятие Параллелизм. Здесь есть две концепции и обе они совершенно разные, первая синхронное и асинхронное программирование и вторая – однопоточные и многопоточные приложения. Каждая программная модель (синхронная или асинхронная) может работать в однопоточной и многопоточной среде. Давайте обсудим их подробно.
Читать дальше →

Кто такой Thread Pool и как его написать своими руками на С++

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

Thread Pool достаточно популярный паттерн в программировании, с которым рано или поздно сталкивается каждый первый программист. Если вы новичок и не хотите бездумно пользоваться пулом потоков, то эта статья поможет вам разобраться с его устройством и написать наивные реализации с использованием С++ 14 и С++ 17. Так же статья будет полезна всем, кто изучил теорию по многопоточности, но не знает как можно применить свои знания.

Читать далее

Настраиваем окружение Qt6+QtC без VPN

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

Как известно, с недавних пор сервера qt.io запрещают загрузку любых архивов с российских IP. Если первое время проверка шла только на получение метаинформации, теперь любая загрузка файла обрывается сервером.

Обычные советы, как это обойти, включают:

Используй платный безлимитный VPN;
Используй дистрибутив Linux и его бинарные сборки;
Собирай сам из исходинков.

Все это рабочие советы, но не очень дружелюбны к начинающим разработчикам, которые только hello world начинают собирать. Я расскажу, как можно быстро настроить окружение используя зеркала Yandex и github.

Читать далее
1
23 ...

Информация

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