• Операционные системы с нуля; Уровень 0

    • Translation
    • Tutorial

    Добрый день/вечер/ночь/утро! Есть один экспериментальный курс по операционным системам. Есть он в Стэнфордском университете. Но часть материалов доступно всем желающим. Помимо слайдов доступны полные описания практических занятий.


    Чем этот курс отличается от прочих других? Большая часть кода пишется самостоятельно и выполняется на вполне реальном современном железе. В качестве целевой платформы выбран Raspberry Pi 3 model B. Т.е. достаточно актуальная архитектура AArch64. ARMv8 Cortex-A53, четыре ядра, 64-бита и вот это всё. В качестве основного языка программирования выбран Rust. Который безопасный, быстрый, без GC и так далее. Его, Rust, предполагается изучать во время курса.


    Тут есть про диски, файловые системы, операции ввода-вывода, потоки /процессы, планирование, виртуальную память, защиту и безопасность, прерывания, параллелизм и синхронизацию. Как и в любом другом, уважающем себя курсе. Разница в актуальности материала и в количестве практики. Коддить придётся много.

    Читать дальше →
  • MikroTik и блокировка нежелательных сайтов (на примере youtube и facebook)



    На написание данной статьи меня сподвиг тот факт, что старший ребенок стал по ночам вместо того чтобы укладываться спать, смотреть на своем смартфоне всякие ролики на youtube, до поздней ночи, а так же замена домашнего роутера с TP-Link TL-WR1043ND на MikroTik RB951G-2HnD.
    Читать дальше →
  • Пишем список дел на Python 3 для Android через QPython3 и SL4A

    • Tutorial


    Движок QPython (и QPython 3) для Android – вещь по-прежнему плохо изученная, и особенно что касается его встроенной библиотеки Scripting Layer For Android (SL4A), она же androidhelper. Эту библиотеку написали несколько сотрудников Google по принципу 20% свободного времени, снабдили ее спартанской документацией, которую почти невозможно найти, и отправили в свободное плавание. Я искал информацию об SL4A по крупицам, но со временем нашел практически все, что мне нужно.

    Читать дальше →
    • +16
    • 29.6k
    • 7
  • Учим Arduino печатать телеграммы

    • Tutorial

    Небольшой проект на Arduino, который печатает приходящие вам на телефон уведомления: сообщения из разнообразных мессенджеров, новости из Твиттера и всё остальное. Такой «телеграфный аппарат» задумывался как интересная игрушка без серьёзного применения, но, как оказалось, получать сообщения в виде бумажных телеграмм крайне приятно. Под катом — описание работы аппарата и подробный туториал.
    Читать дальше →
  • Скрипт, который пишет другой скрипт и настраивает роутеры

      image alt text


      Производители сетевого оборудования потихоньку двигаются в сторону универсального API для настройки и сбора показателей: есть NETCONF, OpenConfig, существует ПО для импорта MIB, та же настройка с помощью SNMP существует давно. Но я не буду касаться этих высоких материй, а просто поделюсь способом автоматизировать настройку сетевого оборудования – на случай массового открытия филиалов, например,


      Для иллюстрации использую D-Link DFL-800 в воображаемом центральном офисе и MikroTik RB951UI-2HnD на периферии. В частности, настроим между ними туннель IPsec, раз уж речь про сценарий с новым филиалом.

      Читать дальше →
    • Глубокое обучение для новичков: распознаем рукописные цифры

      • Translation
      • Tutorial

      Представляем первую статью в серии, задуманной, чтобы помочь быстро разобраться в технологии глубокого обучения; мы будем двигаться от базовых принципов к нетривиальным особенностям с целью получить достойную производительность на двух наборах данных: MNIST (классификация рукописных цифр) и CIFAR-10 (классификация небольших изображений по десяти классам: самолет, автомобиль, птица, кошка, олень, собака, лягушка, лошадь, корабль и грузовик).



      Читать дальше →
      • +31
      • 88.5k
      • 5
    • Гоночный квадрокоптер с FPV для нерезинового бюджета – Robocat 270

        Пятничный пост подготовил коптеровод по имени Виктор. Он собрал и научился летать на гоночном квадрокоптере с онлайн-трансляцией (FPV). Передаем слово ему:

        Всем привет. Сегодня речь пойдет о гоночном квадрокоптере Robocat 270*. Появился он у меня совсем недавно. При покупке этого квадрокоптера я преследовал две цели: летать по FPV и не париться о всевозможных крашах.


        Читать дальше →
        • +7
        • 34.9k
        • 7
      • Исследование Crackme Chiwaka1

        imageВ данной статье сделана попытка подробно описать исследование одного занимательного crackme. Занимательным он будет в первую очередь для новичков в реверс-инжиниринге (коим и я являюсь, и на которых в основном рассчитана статья), но возможно и более серьезные специалисты сочтут используемый в нем приём интересным. Для понимания происходящего потребуются базовые знания ассемблера и WinAPI.
        Читать дальше →
      • Механизмы профилирования Linux



          Последние пару лет я пишу под ядро Linux и часто вижу, как люди страдают от незнания давнишних, общепринятых и (почти) удобных инструментов. Например, как-то раз мы отлаживали сеть на очередной реинкарнации нашего прибора и пытались понять, что за чудеса происходят с обработкой пакетов. Первым нашим позывом было открыть исходники ядра и вставить в нужные места printk, собрать логи, обработать их каким-нибудь питоном и потом долго думать. Но не зря я читал lwn.net. Я вспомнил, что в ядре есть готовые и прекрасно работающие механизмы трассировки и профилирования ядра: те базовые механизмы, с помощью которых вы сможете собирать какие-то показания из ядра, а затем анализировать их.
          Читать дальше →
        • PentestBox — портативная сборка популярных security утилит



            На сегодняшний день самыми популярными дистрибутивами для тестирования на проникновение являются *nix-like дистрибутивы: Kali Linux, BlackArch Linux, Pentoo, Whonix и многие другие. Они могут использоваться как в виртуальной среде, так и в качестве live системы или вообще быть установлены в виде десктопной ОС.

            Windows пользователи до недавнего времени были обделены (виртуальные машины не берем во внимание) такими сборками, пока не появилась волшебная коробочка — PentestBox.
            Читать дальше →
          • Взламываем D-Link DIR-890L

            • Translation
            Последние 6 месяцев, я был жутко занят и не следил за новыми хренями от D-Link. Чтобы немного поразвлечься, я зашел на их сайт, и меня поприветствовал этот кошмар:

            Insane router
            Самый безумный роутер D-Link DIR-890L за $300

            Пожалуй, самым «безумным» в роутере является то, что он работает под управлением все той же забагованной прошивки, которую D-Link ставит в свои роутеры вот уже несколько лет…and the hits just keep on coming.
            Читать дальше →
          • Bashrunner или PowerShell для юниксоида

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

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

              image

              Я часто езжу на природу, как в длинные походы, так и в короткие вылазки на выходные. Инструментальное наблюдение с одной стороны просто позволит удовлетворить любопытство, ответив на вопрос «Теплее ли сегодня чем вчера?», или «Насколько холодно было ночью?», с другой стороны, наличие даже примитивной метеорологической информации может помочь предсказать улучшение или ухудшение погоды или выпадение тумана. Отсюда возникает желание создать автономный прибор для измерения, логгирования и отображения метеоинформации, пригодный для походного использования, и удовлетворяющий следующим требованиям:
              • Герметичное ударозащищенное исполнение корпуса;
              • Постоянное отображение реального времени и текущих метеоданных: давления, температуры, влажности, а также истории их изменения в течение последних несколько часов и нескольких дней на экране;
              • Читаемый на ярком солнце экран;
              • Работа прибора в течение всего похода без подзарядки или замены элементов питания или подзарядки;
              • Желательно сохранение истории метеоданных в энергонезависимой памяти.

              Стоит отметить, что приборы подобного назначения в виде часов, брелков и отдельных устройств доступны на рынке, однако их возможности по отображению истории изменения метеоинформации, на мой взгляд, недостаточны, а логгирование, как правило, отсутствует вовсе. Поэтому я принял решение разработке собственного прибора.
              Читать дальше →
            • Как жить с Docker, или почему лучше с ним, чем без него?



                Эта статья предназначена для тех, кто уже знает про Docker, знает для чего он. А вот что делать с этим дальше не знает. Статья носит рекомендательный характер и не посягает на звание «лучшая практика».

                Итак, возможно вы прошли docker tutorial, докер кажется простым и полезным, но вы пока не знаете, как он может вам помочь с вашими проектами.

                Обычно с деплоем возникает три проблемы:
                1. Как мне доставить код на сервера?
                2. Как мне запустить код на серверах?
                3. Как мне обеспечить одинаковость окружения, в котором запускается и работает мой код?


                Как с этим поможет Docker под катом.
                Читать дальше →
              • Делаем дамп фотографий из диалога vk.com

                Всем привет!

                Вчера мне понадобилось скачать все фотографии из диалога с одним человеком в vk.com. Фотографий было больше 1000 штук. Понятное дело, что ручками это все делать было бы утомительно и… Стыдно. Не для того программированием занимаюсь, чтобы такую грязную работу делать не автоматизированно. Поэтому было решено написать скрипт.

                В качестве языка был выбран Python. Его удобно использовать для консоли, он довольно быстрый, есть модуль urllib, позволяющий «одним движением» скачивать картинки по ссылке. Но главная причина — это то, что я начал изучать его недавно. Решил дополнительно попрактиковаться.

                Сам скрипт получился небольшой, но было бы интересно описать процесс создания. Буду стараться писать побольше комментариев в коде, чтобы те, кто не знает python, тоже смогли понять процесс. А от знатоков очень приветствуются советы и указания. Итак, приступим.
                Читать дальше →
              • Пошаговая модификация предустановленной настройки Bacula

                Введение


                Это краткая пошаговая инструкция для начинающих: как изменить уже работающую систему резервного копирования на базе Bacula. Такая работа поможет Вам понять взаимосвязи элементов конфигурации bacula.

                В современных дистрибутивах GNU/Linux установленная из пакетов Bacula нередко уже настроена для резервного копирования конфигурации ОС. Если у Вас bacula не настроена предварительно, возьмите полное руководство (см. «Литература»).
                Читать дальше →
                • +11
                • 17.2k
                • 7
              • Удобное удаленное управление консолью linux из-под Windows

                Итак, друзья, некоторое подмножество нас (людей) так или иначе испытавает необходимость удаленного управления компьютером (как правило, сервером) на linux (способ может сработать и в BSD, и в Mac OS X, но я не пробовал) при помощи ssh. Другое подмножество использует Windows в качестве ОС на основной рабочей машине. К пересечению этих подмножеств обращена моя статья.

                Полезности, ради которых затевается всё вселье:
                1. Сохранение подключения при обрыве связи. Этот пункт для меня самый важный и сыграл решающую роль в том, чтобы взяться за настройку такой системы. Дело в том, что я живу в общежитии с очень-очень нестабильным интернетом, и обрывы связи у меня (в плохие дни) могут происходить поминутно. А putty требует последовательности действий, чтобы переподключиться каждый раз
                2. Сохранение сессии, включая текущую директорию, историю команд и вывода. Зачастую, единственной задачей при подключении к серверу стоит: зайти в одну и ту же директорию и написать git pull. Чтобы каждый раз не вспоминать путь к этой директории, нужно сохранение сессии
                3. Терминал поддерживает вкладки. Самое главное, что данный терминал можно использовать также и для cmd, и для PS, и для git bash консоли. Поэтому не придется держать несколько разных терминалов открытыми.
                4. Плюсы tmux: многооконность в одной сессии и split

                image
                Читать дальше →
              • network manager + автоматизация http-логина в wifi

                  Пост будет коротким, но очень полезным.

                  abstract: Есть масса wifi-хот-спотов, которые просят сделать какую-нибудь глупость при подключении. Ввести пароль в http-форме, поставить чекбокс «согласен с продажей почки в обмен на интернет» и т. д.

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

                  Подготовка


                  Нам надо понять куда кого как посылать, чтобы оно заработало. Ставим firebug или любой другой похожий плагин. Включаем, идём в вкладку 'net', включаем persistent (это важно), логинимся.

                  Получаем вот такое:



                  Находим POST (если их несколько — методом перебора и комбинирования), выбираем copy as curl, сохраняем куда-нибудь на будущее.

                  Дальше находим uuid нашего коннекта — в файле /etc/NetworkManager/system-connections/our_wifi.

                  Пишем скрипт (всё ниже — от рута) в каталоге /etc/NetworkManager/dispatcher.d/, например, /etc/NetworkManager/dispatcher.d/02-our_wifi-auto
                  Читать дальше →
                • PowerShell Web Access: управление серверами из браузера

                    PowerShell – это один из основных инструментов, который может использовать системный администратор для выполнения настройки и для управления доменной сетью. Часто у системного администратора возникает необходимость удаленно подключиться к серверу и выполнить на нем определенные задачи. Конечно, можно использовать Remote Desktop, но этом случае администратор будет ограничен – не всегда можно легко и быстро удаленно подключиться к компьютеру, не всегда под рукой есть удобный компьютер. В этой статье я расскажу вам о возможности удаленного подключения с использованием PowerShell Web Access.



                    Читать дальше →
                  • grep в Windows? Легко!

                      grep


                      Многим любителям шела нравится чудная команда grep.
                      К сожалению, windows нативно не имеет такой команды, по этому некоторые ставят себе наборы различных консольных утилит в *nix стиле, включая grep.

                      Мне, как любителю посидеть в консоли Windows очень мешало отсутствие грепа, по этому мои скрипты под Win всегда были не так хороши, как могли бы быть. Но мои скрипты должны работать на любой (ну, или почти на любой) Windows, так как же быть?
                      Читать дальше →