Pull to refresh
2
0
Send message

Как работает DNS в Linux. Часть 1: от getaddrinfo до resolv.conf

Level of difficultyMedium
Reading time9 min
Views19K

Привет, Хабр! Меня зовут Анатолий Кохан, я — DevOps-инженер в К2Тех.

Когда мы вводим в браузере имя сервера или доменное имя сайта, выполняем ping или запускаем любое удаленное приложение, операционная система должна преобразовать указанные имена в IP-адреса. Этот процесс называется разрешением доменного имени. На первый взгляд он может показаться весьма прозрачным, однако за ним скрывается многослойный механизм.

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

Читать далее

Я сделал тачпанель управления умным домом чтобы вам тоже пришлось

Level of difficultyMedium
Reading time26 min
Views20K

Немного железа, немного софта, много времени, и у вас появится легендарная панель управления с интерактивным планом дома.

Вот как это сделать

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

Level of difficultyMedium
Reading time10 min
Views16K

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

Что входит в состав пасты? Как выбрать нужный тип припоя? Почему от характеристик флюса зависит не только качество пайки, но и долговечность всего изделия? И наконец, какие требования предъявляют к хранению и подготовке этого, казалось бы, простого вещества?

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

Читать далее

Программирование ESP32 с ESP-IDF в среде platformio #0

Level of difficultyMedium
Reading time6 min
Views5.2K

Привет хабр!
Совсем недавно мне в руки попала плата ESP32 (NodeMCU‑32S). Ранее я уже работал с ESP8266 и даже создавал на ней простейшее веб‑приложение в режиме Station. Делал я все это в ArduinoIDE и был рад обнаружить расширение, которое позволяло организовать мой проект (да и просто в VSCode удобнее работать) - PlatformIO. Именно в PlatformIO я в первый раз увидел фреймворк ESP-IDF и начал потихоньку углубляться в эту тему.

Читать далее

Как найти и потерять бэкдор в ESP32

Level of difficultyEasy
Reading time9 min
Views11K

В марте маленькая платка внезапно оказалась в центре глобального технологического скандала. Заголовки пестрили страшилками про «бэкдор» в «миллиардах устройств», и по новостям казалось, что хакеры вот-вот захватят все умные лампочки, термостаты и прочий IoT.

А потом... все как-то поутихло. Что же на самом деле нашли испанские исследователи в популярном микроконтроллере? Почему новость о «бэкдоре» разлетелась со скоростью лесного пожара? И главное — насколько реальна была угроза?

Давайте разберемся в этой запутанной истории, где переплелись технические исследования, PR-ходы, погоня за кликами и, конечно же, всеми любимые низкоуровневые протоколы. Поехали!

Читать далее

Вайб-кодинг: практика, о которой почему-то не говорят

Reading time10 min
Views52K
В феврале мир разработки перевернулся с выходом Sonnet 3.7. Потому что вдруг внезапно оказалось, что джуны уже не очень-то и нужны. И нейросетка нормально заменяет мидлов тоже.

Я откидываюсь в кресле, беру наушники и смотрю, как работает LLM. Можно сразу несколько, работающих над разными частями проекта:

image

Пример проекта с прикручиванием аналитики к инфраструктуре:

  • Сначала в GPT 4.5 провёл продуктовые исследования и сформулировал требования.
  • Попросил превратить это в архитектурный план.
  • Отревьюил, поправил тупые ошибки.
  • Затем этот план (как метапромпт) скормил Sonnet в VS Code через плагин Cline. Попросил сначала создать общую структуру, шаблонные имплементации, документацию, спецификации API (protobuf для gRPC, REST API).
  • Архитектурно сразу заложил микросервисы. Sonnet для каждого сервиса подобрал и обосновал оптимальную базу данных (где-то Postgres, где-то ClickHouse и т.д.).
  • Сгенерировал SDK для взаимодействия, примеры использования. Сразу заложил observability: централизованные логи, метрики Prometheus, трейсинг Jaeger/Tempo, дашборды для Grafana.
  • Потом итерационно генерировал код: сначала тесты (End-to-end, BDD), потом имплементацию под эти тесты.
  • Написал манифесты для Kubernetes и Docker Compose для локального запуска.
  • Сгенерировал даже скрипты для тестов REST API через curl и gRPC через gRPCurl.

И всё.

А теперь практика — что делать с тем, что современные нейросети учились преимущественно на говнокоде и как быть с джунами.
Читать дальше →

Как работает ptrace в Linux и зачем он тебе

Level of difficultyEasy
Reading time5 min
Views8.2K

Привет, Хабр! Сегодня у нас на столе инструмент, о котором многие слышали, но мало кто использовал по-настоящему — ptrace.

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

Читать далее

Пополнение среди ультрабюджетных девбордов: FPGA — «отладка» за 201 р

Level of difficultyMedium
Reading time4 min
Views12K

Пополнение среди ультрабюджетных девбордов: FPGA - "отладка" за 201 р.

Самая дешёвая "оценочная плата" с ПЛИС Xilinx Spartan-6 на AliExpress обойдётся в ровно 3000р. На Авито и майнерских "Купи-Продайках" - в 10 раз дешевле. С более "жирным камнем". Никакого подвоха, всё честно.

Читать далее

Мониторим потребление памяти в Linux-системе

Level of difficultyMedium
Reading time12 min
Views11K

Сколько себя помню, меня всегда привлекали счётчики памяти в Linux: смотришь в условный htop – в плане потребления CPU вроде всё +/- понятно, а вот память всегда считалась как-то не так, как ты это на первый взгляд ожидаешь, и долгое время у меня было довольно наивное и ошибочное представление о механизмах её работы.

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

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

Читать далее

Прячем шифрованные диски

Reading time4 min
Views9.2K

Что такое криптография - все знают: берем что-то секретное, зашифровываем его - и без ключа никто ничего не прочитает.
Но есть минус: если кому-то очень хочется почитать - вас могут вежливо попросить поделиться ключиком, и отказаться может быть очень сложно.

Что такое стеганография - тоже многие знают: берем что-то секретное и прячем его среди обычного, оно как бы на виду, но если не знать где именно искать - найти сложно.
Тут минус в другом - оно не должно выделяться и бросаться в глаза.

Что, если попробовать совместить одно с другим?

Читать далее

DeepSeek работа с API и оплата доступа из РФ

Level of difficultyEasy
Reading time3 min
Views38K

Недавно выстрелила китайская нейросеть DeepSeek, сегодня разберёмся как работать с её API, как оплачивать из РФ и есть ли какие-то сложности.

Читать далее

Бинарный формат вместо текста

Level of difficultyMedium
Reading time9 min
Views6K

Как быстро, без боли и страданий организовать хранение структурированных данных в бинарном формате. А затем и их передачу при необходимости. А потом, немного подумав, ещё их обнаружение в «замусоренном» потоке.

Читать далее

Большое руководство по сетям и шифрованию трафика в Linux (часть 1)

Level of difficultyMedium
Reading time23 min
Views26K

Приветствую вас, читатели Хабра! В этой статье я бы хотел уделить внимание такой вещи как шифрование трафика на Linux системах. Наверно каждый из нас прекрасно понимает, насколько важна защита нашей приватности. Ведь в эпоху когда многие компании собирают данные, а иногда хакеры могут перехватить наш трафик, это становится особенно важно. Просто необходимо позаботиться о безопасности своих данных. Например, быть уверенным, что какая-либо корпоративная сеть не прослушивается злоумышленниками. Информационная безопасность сегодня — это не просто мода, а насущная необходимость. Постоянно растет киберпреступность, и защита трафика от перехвата — это основной аспект цифровой жизни человека или бизнеса.

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

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

Читать далее

Десульфатация автомобильных аккумуляторов — это просто

Level of difficultyEasy
Reading time10 min
Views56K


Привет, Хабр! К обслуживанию аккумуляторной батареи не все автомобилисты относятся серьёзно, ведь её можно сдать для переработки в обмен на деньги или скидку при покупке нового аккумулятора.

Однако это вопрос не только экономики и экологии, но ещё и надёжности. Когда двигатель не заводится в самый неподходящий момент, либо выходит из строя генератор, а резервная ёмкость АКБ не позволяет доехать до места назначения, это серьёзно портит жизнь.

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

Самые Эпичные Баги при Программировании Микроконтроллеров

Level of difficultyEasy
Reading time11 min
Views24K

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

Самый типичный баг - это зависание прошивки.

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

Читать далее

Teensy 4: Arduino на скорости 600 МГц (почувствуй себя властелином вселенной)

Level of difficultyEasy
Reading time10 min
Views37K


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

Оказывается, последняя версия Teensy 4 сделана на основе Cortex M7 и работает на частоте 600 МГц, причём ядро там довольно продвинутое и позволяет исполнять две инструкции за такт, использует предсказание ветвлений и аппаратную обработку 64-битных чисел с плавающей точкой, а также много чего ещё, в том числе имеет на борту много RAM, Flash и PSRAM памяти и т. д.

В общем, контроллер очень продвинутый и позволяет создавать проекты в области обработки звука, управления массивами светодиодов, вывода видео на LED экраны, создания музыкальных синтезаторов и т. д. и т. п.

В результате я пришёл к выводу, что с этим стоит познакомиться поближе и на Али был заказан комплект Teensy 4.1 с Audio и Ethernet расширениями, а затем я с большим удовольствием поэкспериментировал с этим железом. Ну а далее я предлагаю свой отчёт о проведённых экспериментах, а также поделюсь своими впечатлениями о Teensy 4.1.
Читать дальше →

Мирное применение фейковой базовой станции

Level of difficultyHard
Reading time5 min
Views12K
Приветствую всех!
После выхода статьи про запуск сотовой сети 4G в домашних условиях я получил немало вопросов, сводящихся к одному: можно ли при помощи такой связки обходить региональные ограничения, заставляя подключившееся устройство считать, что оно находится в той стране, какая установлена параметрами сети? Задач, где это требуется, очень много: китайские машины, различные девайсы для умного дома, телефоны и много чего ещё.

Мысли об этом не покидали меня уже давно, и вот сейчас у меня выдался шанс проверить все имевшиеся предположения. Получится ли провернуть это на практике? Сейчас и узнаем.



Итак, в сегодняшней статье узнаем, реально ли оживить заблокированное на территории нашей страны устройство при помощи того софта, что я показывал ранее. Посмотрим, какие проблемы могут всплыть и решаемы ли они. А заодно и выясним: есть ли вообще смысл пытаться, или же идея тупиковая?
Читать дальше →

Базовый набор тимлида: от каких убеждений стоит отказаться, чтобы команда тебя не возненавидела

Reading time5 min
Views36K

Привет! Меня зовут Артем Валевич, последние три года я тимлид в AGIMA. За это время я составил для себя что-то вроде тимлидского кодекса — список небольших правил и принципов, которые помогают мне в работе. Правила эти я вывел разными способами: что-то установил опытным путем, что-то подсказали старшие коллеги, что-то вычитал в статьях и книгах.

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

Читать далее

С++ — это настоящий кайфǃ

Level of difficultyEasy
Reading time18 min
Views49K

Я хочу, чтобы вы задали себе один вопрос и честно на него ответили. Когда в последний раз вы получали настоящее удовольствие от программирования? Оглядываясь назад, я понимаю, что не испытывал подобных ощущений, наверное… уже лет десять. Удовольствия у меня не было ни от JavaScript, ни от Python, ни от Ruby или C — ни от чего. Когда я говорю «удовольствие» — я имею в виду ощущения человека, которого во время работы над неким проектом переполняет искренний восторг. Этот человек постоянно ловит себя на такой мысли: «Ох, ну какая ж круть. Поверить не могу, что моя безумная идея и правда сработала!».

Например, я писал маленькую игру-«рогалик». У меня была такая идея: «Готов поспорить, что у меня получиться воспользоваться этим вашим алгоритмом Дейкстры для соединения комнат при генерировании карты, сначала инвертируя карту, а потом его запуская. Вероятно, мне удастся прокопать отличнейшие туннели между комнатами». То было благословенное время, когда я пытался справиться с этой задачей, и при этом не чувствовал, что C++ мне мешает. Мне тогда удалось решить эту задачу, попутно многому научившись. Потом у меня появилась такая мысль: «Интересно, получится мне взять пользовательский интерфейс, сделанный на FTXUI, и просто напрямую его отрендерить в окно визуализации SFML?». Как и следовало ожидать, у меня всё отлично получилось. И хотя это было не так уж и сложно, я по ходу дела много узнал о том, как в C++ обрабатывается юникод. Ни одна из этих задач лёгкой не была, но все их, в принципе, можно было решить, и я не могу напридумывать себе достаточно много «подводных камней», которыми C++ мог бы помешать мне сделать то, что я хочу. Это — то, что я называю «удовольствием».

Читать далее

Обзор BKHD N100 NAS — Лучшая материнская плата для домашнего NAS

Level of difficultyEasy
Reading time12 min
Views37K
Для этого обзора я приобрёл плату BKHD-1264-NAS, которая широко известна в узких кругах строителей NAS и обладателей домашних лаб.

Плата интересна наличием шести SATA портов, четырьмя портами 2.5GbE на чипах Intel i226-V, а также современным и энергоэффективным процессором Intel N100 — и всё это в компактном формате Mini ITX!

Её подробный обзор можно почитать далее в статье.

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

Information

Rating
8,910-th
Registered
Activity