• Шпионим за вашими программами с помощью Strace

    • Translation
    Не смогли пройти мимо и перевели ко Дню программиста комикс Джулии Эванс об утилите Strace. Полезный инструмент, который помогает отслеживать системные вызовы и доставку сигналов между процессами и ядром Linux. Читайте и вдохновляйтесь. С наступающим, друзья!



    Читать дальше →
    • +22
    • 4.7k
    • 3
  • Книга «Kali Linux. Тестирование на проникновение и безопасность»

      image Привет, Хаброжители! 4-е издание Kali Linux 2018: Assuring Security by Penetration Testing предназначено для этических хакеров, пентестеров и специалистов по IT-безопасности. От читателя требуются базовые знания операционных систем Windows и Linux. Знания из области информационной безопасности будут плюсом и помогут вам лучше понять изложенный в книге материал. Чему вы научитесь • Осуществлять начальные этапы тестирования на проникновение, понимать область его применения • Проводить разведку и учет ресурсов в целевых сетях • Получать и взламывать пароли • Использовать Kali Linux NetHunter для тестирования на проникновение беспроводных сетей • Составлять грамотные отчеты о тестировании на проникновение • Ориентироваться в структуре стандарта PCI-DSS и инструментах, используемых для сканирования и тестирования на проникновение
      Читать дальше →
      • +15
      • 11.8k
      • 5
    • Как оценить производительность Linux-сервера: открытые инструменты для бенчмаркинга

        Мы в 1cloud.ru подготовили подборку инструментов и скриптов для оценки производительности процессоров, СХД и памяти на Linux-машинах: Iometer, DD, vpsbench, HammerDB и 7-Zip.

        Другие наши подборки с бенчмарками:


        Читать дальше →
      • Делаем сами сцинтилляционный радиометр. Часть 1, аппаратная

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

          Читать дальше →
        • Где хранятся ваши константы на микроконтроллере CortexM (на примере С++ IAR компилятора)

            Я обучаю своих студентов работе с микроконтроллером STM32F411RE, на борту которого имеется аж целых 512 кБайт ROM и 128 кБайт ОЗУ
            Обычно на этом микроконтроллере в ROM память записывается программа, а в RAM изменяемые данные и очень часто нужно сделать так, чтобы константы лежали в ROM.
            В микроконтроллере STM32F411RE, ROM память расположена по адресам с 0x08000000...0x0807FFFF, а RAM с 0x20000000...0x2001FFFF.

            И если все настройки линкера правильные, студент рассчитывает, что вот в таком незамысловатом коде его константа лежит в ROM:

            class WantToBeInROM
            {
            private:
              int i;
            public:
              WantToBeInROM(int value): i(value) {}
              int Get() const
              {
                return i;
              }
            };
            
            const WantToBeInROM myConstInROM(10);
            
            int main()
            {  
              std::cout << &myConstInROM << std::endl ;
            }
            

            Вы тоже можете пробовать ответить на вопрос: где лежит константа myConstInROM в ROM или в RAM?

            Если вы ответили на этот вопрос, что в ROM, поздравляю вас, на самом деле скорее всего вы не правы, константа в общем случае будет лежать в RAM и чтобы разобраться, как правильно и законно расположить ваши константы в ROM — добро пожаловать под кат.
            Читать дальше →
          • Пользователь в Docker

              Андрей Копылов, наш технический директор, любит, активно использует и пропагандирует Docker. В новой статье он рассказывает, как создать пользователей в Docker. Правильная работа с ними, почему пользователей нельзя оставлять с root правами и, как решить задачу несовпадения идентификаторов в Dockerfile.

              Читать дальше →
            • Кластерное хранилище для небольших web-кластеров на базе drbd+ocfs2

              • Tutorial
              О чем мы расскажем:
              Как быстро развернуть общее хранилище для двух серверов на базе решений drbd+ocfs2.

              Для кого это будет полезно:
              Туториал станет полезен системным администраторам и всем, кто выбирает способ реализации хранилища или хотят попробовать решение.

              От каких решений мы отказались и почему


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

              • Glusterfs не устроил нас производительностью на чтение и запись, возникали проблемы с одновременным чтением большого количества файлов, была высокая нагрузка на CPU. Проблему с чтением файлов можно было решить, обращаясь за ними напрямую в brick-и, но это не всегда применимо и в целом неправильно.

              • Ceph не понравился избыточной сложностью, которая может быть вредна на проектах с 2-4 серверами, особенно, если проект впоследствии обслуживают. Опять же, имеются серьезные ограничения по производительности, вынуждающие строить отдельные storage кластеры, как и с glusterfs.

              • Использование одного nfs сервера для реализации общего хранилища вызывает вопросы в плане отказоустойчивости.

              • s3 — отличное популярное решение для некоторого круга задач, но это и не файловая система, что сужает область применения.
              Читать дальше →
            • Силовой модуль разработчика. Работа над ошибками

                Приветствую! В моих предыдущих статьях (раз и два) вы ознакомились с силовым модулем полумоста, который позволяет построить преобразователь практически любой топологии. Я показал как можно быстро и без особых усилий получить макет силового преобразователя и обкатать идею, а в процессе их реализации были выявлены определенные недостатки.

                Увы, но даже в достаточно простых устройствах требуется 2-я ревизия железа, чтобы «подчистить» плохие реализации того или иного функционала, улучшить компоновку и конструктив. В итоге была проведена работа по оптимизации технических параметров и по улучшению удобства работы с модулем. Сегодня в статье я как раз расскажу подробнее о данных изменениях, объясню почему именно так, а в конце статьи вы увидите обновленные исходники. Поехали!



                Читать дальше →
              • AERODISK: СХД по-русски или суровый люберецко-сахалинский стартап с завода

                  image

                  Добрый день, коллеги.

                  В сегодняшней статье речь пойдет о российском вендоре Aerodisk – разработчике и производителе решений в области хранения данных (аппаратные СХД) и виртуализвации, о трудностях, с которыми сталкивается вендор на рынке. И, более подробно, о линейке СХД Aerodisk Engine (железо + софт).

                  Сразу отмечу, что 9 октября (вторник) с 11:00 до 12:30 (МСК) пройдёт бесплатный
                  технический вебинар
                  , где мы покажем на живой системе, как все работает.
                  Читать дальше →
                • Экономим на RAID-контроллере, или как накормить Варю иопсами

                  В наш век облачных сервисов, AWS Lambda и прочих шаред хостингов абсолютно неосязаемых вычислительных ресурсов иногда хочется немножко своего. Кроме желания, иногда бывают и потребности вдумчиво покрутить тот или иной программный продукт с минимальными затратами на платформу. Найти какие-то излишки матчасти можно почти всегда, иногда даже получается собрать всё вместе и включить. Если излишки эти представляют собой CPU хотя бы на 4-6 ядер и памяти от 64ГБ — вообще отлично, можно брать ESXi и работать с чем угодно. Одна проблема: с дисковой ёмкостью на бытовом железе у VMWare — совсем никак. Производительность локальных одиночных HDD невысокая, а уж утратить содержимое отдельно взятого, сферического в вакууме винта в 21м веке — это как здрасьте. Попробуем подключить что-нибудь по сети.

                  TL;DR> объединение, балансировка, rr limit, вот это вот всё.
                  Читать дальше →
                • Docker. Начало



                    Примерно такие же эмоции я и мои коллеги испытывали, когда начинали работать с Docker. В подавляющем большинстве случаев это происходило от недостатка понимания основных механизмов, поэтому его поведение казалось нам непредсказуемым. Сейчас страсти поутихли и вспышки ненависти происходят все реже и все слабее. Более того, постепенно мы на практике оцениваем его достоинства и он начинает нам нравиться… Чтобы снизить степень первичного отторжения и добиться максимального эффекта от использования, нужно обязательно заглянуть на кухню Docker'a и хорошенько там осмотреться.
                    Читать дальше →
                  • Разработка сенсорного Z-Wave выключателя на аккумуляторе со светящимися кнопками



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

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

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

                      • Функционал
                      • Дизайн корпуса
                      • Разработка печатной платы
                      • Изучение рассеивателей света
                      • Подбор материалов рассеивателя
                      • Использование

                      Видео работы сенсорного выключателя в конце.
                      Читать дальше →
                    • Новые процессоры ARM смогут потягаться с Core i5


                        Согласно собственным тестам ARM, процессор Cortex-A76 уже примерно соответствует по производительности разогнанному процессору Core i5-7300U, рассеивая при этом менее 5 Вт (TDP), в сравнении с 15 Вт у чипа Intel

                        Процессоры ARM традиционно используются в смартфонах и планшетах, но в последнее время производители ПК вроде Asus и HP решили, что производительность и низкое энергопотребление этих «камней» вполне подходят для ноутбуков. Глядя на такое положение вещей, сама компания ARM анонсировала процессорные архитектуры, специально предназначенные для конкуренции с Intel и AMD на ноутбуках и настольных компьютерах в 2019−2020 годы. По мнению ARM, новые чипы вполне могут сравниться и даже превзойти процессоры Intel в однопоточной производительности.
                        Читать дальше →
                      • Неуловимая проблема тайминга кадров

                        • Translation

                        Технический директор Croteam Ален Ладавач, участвовавший в разработке Serious Sam и Talos Principle, рассказывает, как ему удалось найти причину торможения графики даже на самых мощных машинах.

                        Наконец-то появилось объяснение того, почему некоторые игры тормозят на вашем PC (и луч надежды на то, что в ближайшем будущем они тормозить перестанут).

                        Т-т-тормоза


                        Вы с нетерпением ждали следующей части вашей любимой серии видеоигр для PC и она наконец вышла. На этот раз вы хотите насладиться ею во всей полноте, поэтому потратили деньги и время на тщательную подготовку. Вы заменили процессор, поставили сверхсовременную видеокарту, добавили ещё ОЗУ — чёрт возьми, даже купили RAID на SSD. Игра должна быть плавной с самой заставки.

                        Предзаказ наконец разблокирован и вы только что завершили установку. В нервном предвкушении вы впервые запускаете игру. Пока всё хорошо — она работает с частотой 60 кадров в секунду. Или, по крайней мере, так сообщает счётчик кадров тюнера GPU. Но что-то не так. Вы делаете мышью резкие, хаотичные движения. Стрейфитесь влево-вправо, и тут игра… начинает тормозить! Блин, да как такое возможно? Как она может тормозить при 60 кадрах в секунду?

                        Если такое с вами никогда не случалось, то это может показаться смешным. Но если вы их испытали, то, скорее всего, ненавидите тормоза всей душой. Тормоза в играх. Это не старый добрый «лаг». Не низкая частота кадров. Это просто «тормоза», происходящие при высоких частотах кадров на идеальных, супербыстрых машинах. Что это, откуда они взялись и как от них избавиться? Позвольте мне рассказать вам историю…
                        Читать дальше →
                      • Векторное управление электродвигателем «на пальцах»

                        • Tutorial
                        — Что такое векторное управление?
                        — Держать ток под 90 градусов.


                        Термин «векторное управление» электродвигателями знаком всем, кто хоть как-то интересовался вопросом, как с помощью микроконтроллера управлять двигателем переменного тока. Однако обычно в любой книге по электроприводу глава про векторное управление находится где-нибудь ближе к концу, состоит из кучи волосатых формул с отсылками ко всем остальным главам книги. Отчего разбираться в этом вопросе совсем не хочется. И даже самые простые объяснения всё равно держат путь через дифференциальные уравнения равновесия, векторные диаграммы и кучу другой математики. Из-за чего появляются примерно вот такие вот попытки как-то закрутить двигатель без использования мат.части. Но на самом деле векторное управление – это очень просто, если понимать принцип его работы «на пальцах». А там уже и с формулами разбираться в случае надобности будет веселее.
                        Читать дальше →
                      • Кластеры Kubernetes в сервисе VPC



                          Мы добавили возможность удобного запуска Kubernetes в сервисе Виртуальное приватное облако в режиме раннего beta-тестирования.


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


                          Так как сервис Виртуальное приватное облако построен на базе OpenStack, мы используем один из его компонентов — OpenStack Magnum. Он позволяет быстро создавать приватные кластеры Kubernetes с нужным количеством нод.


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


                          В этой статье мы расскажем про основные объекты кластера Kubernetes и на примерах рассмотрим процесс создания кластера при помощи OpenStack Magnum.

                          Читать дальше →
                          • +24
                          • 4.6k
                          • 5
                        • Мониторим активные сессии PostgreSQL 10, как в Oracle

                            image

                            Данный инструмент написан из спортивного интереса, когда мною было обнаружено, что вьюха pg_stat_activity в PostgreSQL 10 имеет поля wait_event_type и wait_event, очень похожие по сути на оракловые wait_class и event из v$session.

                            Активно работая в данный момент с программой ASH-Viewer от akardapolov мне стало любопытно — насколько сложно переписать этот продукт под Postgres. Учитывая, что я не профессиональный разработчик, было не просто, но очень интересно. По ходу дела даже нашёл, как мне кажется, пару значительных багов, которые проявляются и в оригинальной программе для Oracle, по кр.мере для Standard Edition.

                            Принципы работы PASH-Viewer:


                            Читать дальше →
                          • Разгоняем бэкап. Лекция Яндекса

                              Несколько ближайших лекций будут по мотивам первого Я.Субботника по базам данных, который состоялся весной. Сначала на Я.Субботнике выступил разработчик Андрей Бородин. Он рассказал о WAL-G — простом и эффективном инструменте для резервного копирования PostgreSQL в облако, а также об алгоритмах и технологиях, которые позволяют WAL-G создавать бэкапы быстрее. Главная особенность WAL-G — дельта-бэкапы. Из лекции вы узнаете об их реализации и о том, как поддержка этой технологии развивается в PostgreSQL.


                              — Привет! Я разработчик в Яндексе из Екатеринбурга. К технологиям быстрого бэкапа. Бэкапом мы занимаемся довольно давно, были доклады Владимира Бородина и Евгения Дюкова о том, как мы исследуем и что разрабатываем, чтобы хранить данные безопасно, надежно, удобно и эффективно. Эта серия посвящена последним наработкам в указанной области.

                              Поговорим про бэкапы в PostgreSQL в принципе. Стандартная утилита для переноса данных — pg_dump — определяется как консольная утилита, создающая файл с логическим представлением ваших данных.
                              Читать дальше →
                            • Почему процессоры Skylake иногда работают в 2 раза медленнее

                              • Translation
                              Мне сообщили, что на новых компьютерах некоторые регрессиионные тесты стали медленнее. Обычное дело, такое бывает. Неправильная конфигурация где-то в Windows или не самые оптимальные значения в BIOS. Но в этот раз нам никак не удавалось найти ту самую «сбитую» настройку. Поскольку изменение значительное: 9 против 19 секунд (на графике синий — это старое железо, а оранжевый — новое), то пришлось копать глубже.


                              Читать дальше →
                            • Wiren Board 6: снова на Хабре с новой версией контроллера для автоматизации

                                Всем привет!

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


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