Трудности в процессе разработки на Go — частая история. Чтобы их преодолеть, нам даже пришлось писать собственный бойлерплейт. Хотя казалось бы — всё уже есть, но нет, нам понадобилось имплементировать собственную хардкорную штуку. Расскажем, почему и зачем.
Software engineer
Docker — не то, чем кажется
Привет, Хабр! Меня зовут Матвей Мочалов, я — компьютерный инженер и один из авторов корпоративного блога cdnnow! Мы с вами познакомились в этом посте про историю DRM для видеоконтента. Сегодня я хочу поговорить с вами про Docker, а точнее про то, о чём многие забывают: различиях в нём для разных систем. Нам, как CDN-провайдеру Docker, все его 50 оттенков близки и знакомы. И, к счастью, наше взаимодействие с ним происходит из-под Linux, но, увы, не всем так везёт.
Как это часто бывает, с мультиплатформенностью и прочими «красивыми» словами в IT, всё не так однозначно. У всего своя цена, и под капотом один и тот же инструмент на разных системах, по сути своей может представлять из себя несколько разных вещей с различными принципами работы и производительностью. А обещания революции скрывают за собой эволюцию, либо вовсе регресс и топтание на месте.
Управление памятью в Linux
Управление памятью (memory management) является важной подсистемой операционной системы Linux, которая обеспечивает эффективное использование ресурсов физической и виртуальной памяти. В Linux управление памятью в основном подразумевает обработку запросов к памяти от процессов, выделение и освобождение блоков памяти, а также обеспечение ее эффективного использования.
Числа и байты: как работает память в Linux?
❯ Часть первая: физическая память
При создании операционных систем всегда уделяется внимание работе с памятью. Память — это компонент компьютера, где хранятся программы и данные, и без нее современные компьютеры не могли бы функционировать. Важной единицей хранения данных в памяти является бит, который может принимать два значения: 0 или 1. Память состоит из ячеек, каждая из которых имеет свой адрес. Ячейки могут содержать различное количество битов, и количество адресуемых ячеек зависит от количества бит в адресе.
Также память включает в себя оперативное запоминающее устройство (ОЗУ) или RAM, где можно записывать и считывать информацию. Существует статическая ОЗУ (SRAM) и динамическая ОЗУ (DRAM), различающиеся в том, как хранится информация. В SRAM информация сохраняется до выключения питания, в то время как в DRAM используются транзисторы и конденсаторы, что позволяет хранить данные, но требует их периодического обновления. Разные типы ОЗУ имеют свои преимущества и недостатки, и выбор зависит от конкретных потребностей.
Понимание работы с памятью в компьютере важно для всех, кто работает с техникой и программным обеспечением. Важно знать, как устроена память, какие ее типы существуют и как эти типы могут влиять на производительность и функционирование компьютера.
Но что такое физическая память, как она работает в Linux? Что такое сегментация, утечки памяти и некие «страницы»?
Все, что вы хотели знать, но боялись спросить о памяти пингвина — читайте здесь и сейчас!
Мошенники. Вектор атаки на айтишников через LinkedIn
Кажется, только что испытал на себе новый вектор атаки на айтишников. Почему думаю, что на айтишников? Потому что через LinkedIn и, очевидно, с айтишников есть, что взять.
Устройство памяти процессов в ОС Linux. Сбор дампов при помощи гипервизора
Иногда для анализа ВПО или, например, для отладки какого-либо процесса может потребоваться дамп памяти процесса. Но как его собрать без отладчика? Постараемся ответить на этот вопрос в этой статье.
Задачи:
- Обозначить цель сбора дампа процесса.
- Описать структуру памяти процессов в Linux и отметить различия в старой и новой версиях ядра ОС
- Рассмотреть вариант снятия дампа памяти процесса внутри виртуальной машины на базе связки гипервизора Xen и фреймворка с открытым исходным кодом DRAKVUF.
HashiCorp обвинила сообщество OpenTofu в краже кода Terraform, но что-то пошло не так
3 апреля на сайте InfoWorld вышла статья известного публициста на тему Open Source и юриста Matt Asay под названием «OpenTofu, возможно, демонстрирует нам, как не надо делать форк». Лидер-абзац в статье довольно жёсткий:
Не согласны с лицензией? Просто сделайте форк проекта, но не выкидывайте его код — говорите, что он всегда был доступен публично. Сравните код и лицензию HashiCorp с версией OpenTofu.
Разберемся в этой истории последовательно — кто прав, кто виноват и чем всё закончилось.
Выжимаем максимум из PostgreSQL
Привет, Хабр! Меня зовут Максим, я работаю тестировщиком оборудования в Selectel Lab. В лаборатории мы занимаемся тестированием нового оборудования для дата-центров. О том, как мы измеряли производительность PostgreSQL на разных конфигурациях — под катом!
Варим C с компилятором Zig и его build.zig
По случаю выхода версии 0.11.0 языка Zig я решил написать ещё одну статью о языке Zig. В этот раз речь пойдет о системе сборки языка. А точнее, как пользоваться кодом написанным на языке C в проекте на языке Zig, с небольшими ответвлениями в стороны для описания некоторых возможностей системы сборки. Тем более, что она претерпела несколько изменений, о чём я так же коротко упомяну. Эксперименты проводились мной на Windows 11. Стоит сразу упомянуть, что указанные в статье команды будут работать и на других операционных системах. Это одна из особенностей языка Zig. Но пример кода линковки системных библиотек для сборки библиотеки raylib будет платформозависимый, так как для разных платформ набор библиотек отличается. Если интересно, то прошу...
От «здравствуйте» до こんにちは: языки программирования не на английском языке
Существует огромное количество самых разных языков программирования, их насчитывается несколько тысяч. Какие‑то — идеальны для работы, другие же созданы just for fun. К слову, есть ЯП, представленные программистами из неанглоязычных стран, в них операторы, функции и т. п. — все на родном для автора языке. Кроме того, некоторые страны стремятся развивать свои собственные IT‑индустрии, и использование местного языка в программировании может быть способом поддержать эту инициативу. Мы выбрали самые интересные на наш взгляд non‑English языки программирования.
AmigaOS, LisaOS и NeXTSTEP: операционные системы эпохи расцвета ПК
В этом посте мы расскажем о трёх операционных системах для персональных компьютеров родом из 1980-х и начала 1990-х — AmigaOS, LisaOS и NeXTSTEP. Некоторые из них сегодня ещё можно найти где-нибудь в виде легаси, некоторые поддерживаются энтузиастами или даже компаниями, но все они, пожалуй, уже покоятся на свалке истории, оставив после себя наследие разных масштабов.
Начнем с операционки, запущенной в 1985 году, когда Apple представила Macintosh. В то время более известной ещё была компания Commodore International. Начинали эти ребята с ремонта и перепродажи печатных машинок, но со временем переквалифицировались. Славу Commodore принес прежде всего персональный компьютер Commodore 64, через три года после выпуска которого Commodore представили новый многообещающий ПК — Amiga.
Последнее издание культовой книги «Искусство схемотехники» стало доступно русскоязычным читателям
“Электронщики, как учит нас Парацельс, самозарождаются среди паяльников, радиодеталей, универсальных плат и проводов” (@teap0t)
Возможно, это действительно так, но без хорошей книги - учебника или справочника, которые служат катализатором, этот процесс может так и не завершиться. А лучшей книгой для начинающих разработчиков электронных схем и практически библией электронщиков последние сорок лет, считается "Искусство схемотехники" (англ. - The Art of Electronics) Пауля Хоровица и Уинфилда Хилла.
Realms of Arkania: Blade of Destiny (1992/2013)
«…мы стремились сделать самую задротсткую ролевую игру всех времён и народов…»
«Современные игры разбаловали игроков. С нетерпением жду, когда игроки откажутся покупать игры, в которых можно проиграть… Игра обязана бросать вызов. Я вырос на игровых автоматах, потратив бессчётные четвертаки на поиски способов пройти особо сложное место». (Из интервью создателя игры Гвидо Хенкеля)
Blade of Destiny для MS-DOS и Amiga появилась на прилавках магазинов в 1992-ом году. После успеха на местном рынке игра была переведена на английский и издана легендарной Sir-Tech в 1993-ем.
Читаем EXPLAIN на максималках
Многим, кто работает с MySQL, известно, что команда EXPLAIN используется для оптимизации запросов, получения информации об использованных и возможных индексах. Большинство разработчиков и администраторов СУБД этой информацией и ограничивается. Я же предлагаю изучить команду EXPLAIN максимально подробно.
Как настроить префикс в PortProton
В программу PortProton для запуска Windows-игр под Linux добавлена возможность использовать в ОС «Альт» установленный в систему wine и wine-etersoft.
Список ПО, которое можно запускать при помощи PortProton, существенно расширился.
Покажем по шагам, как создавать и настраивать новые префиксы в PortProton для использования системного wine. Этой же инструкцией можно воспользоваться для встроенных wine в PortProton.
Лучшие практики для надёжной работы с RabbitMQ
Привет, Хабр! Я Женя, архитектор интеграционной платформы в Точке, отвечаю за асинхронный обмен сообщениями между внутренними сервисами, за ESB и за брокеры сообщений.
В этой статье я постарался кратко и последовательно изложить основные моменты, о которых полезно помнить при использовании RabbitMQ, если важны стабильность обмена и сохранность данных.
В первую очередь материал рассчитан на разработчиков, которым ещё не приходилось погружаться в тонкости работы с RabbitMQ или использовать его вообще. Более опытным читателям статья может пригодиться в качестве компактной и упорядоченной выжимки из уже знакомых статей, вебинаров и многочисленных страниц документации.
Kubeshark — мониторинг и анализ Kubernetes
Wireshark - это хорошо известный инструмент для захвата пакетов, анализа и устранения неполадок. Он может перехватывать текущий сетевой трафик и анализировать его в режиме реального времени на микроскопическом уровне, а также считывать и обрабатывать сохраненные файлы захвата. Wireshark может анализировать и отображать множество различных протоколов и обладает мощной системой фильтрации для сужения интересующего трафика.
RabbitMQ. Часть 1. Introduction. Erlang, AMQP
Добрый день, Хабр! Хочу поделиться учебником-справочником знаний, которые мне удалось собрать по RabbitMQ
и сжать в короткие рекомендации и выводы.
Разбираемся в новом роутинге в Go 1.22
В начале февраля 2024 года вышел Go 1.22. Вот, что нового и интересного принёс новый релиз: сделали более безопасное поведение переменных в циклах, добавили функции-итераторы в качестве rangefunc-эксперимента и улучшили шаблоны роутинга. В этой статье я сфокусируюсь на последнем, самом долгожданном, для многих, обновлении — шаблонах http-роутинга.
Хеш-функция Стрибог. Особенности аппаратной реализации на System Verilog
На просторах интернета есть несколько статей об алгоритме получения хеш-функции Стрибог (ГОСТ 34.11-2012), в том числе и на Хабре. Однако везде в качестве примера приводится реализация на языках программирования C, C#, Python и других. То есть идет последовательное выполнение операций алгоритма. В данной статье я хочу затронуть аппаратную реализацию на языке System Verilog, уделить внимание распараллеливанию вычислений и описанию интерфейсов модулей. Для начала кратко рассмотрим теорию.
Information
- Rating
- 1,843-rd
- Location
- Москва, Москва и Московская обл., Россия
- Registered
- Activity