Как стать автором
Обновить
4
0
Алексей @Allliksey4

DevOps, Go Developer

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

MiTM атака на SSH

Время на прочтение2 мин
Количество просмотров44K
В новой версии Intercepter-NG появилась возможность провести полноценную атаку на SSH-2 протокол.

Атакующий получает данные авторизации пользователя и логирует весь сеанс связи, запуск команд и результат их выполнения.
Для этого Intercepter перенаправляет трафик жертвы на свой собственный ssh сервер и в случае успешной авторизации
проксирует соединение до оригинального сервера.
Читать дальше →
Всего голосов 76: ↑60 и ↓16+44
Комментарии79

RPG для обучения детей программированию на Java

Время на прочтение2 мин
Количество просмотров126K

Java считается мало подходящим для того, чтобы стать первым языком программирования, в отличие от того же Pascal или Python, тем более для детей. Однако, это обстоятельство не остановило специалистов университета Калифорния (Сан-Диего) от любопытного эксперимента, который, по их словам, показал вполне успешные результаты — ими была разработана игра CodeSpell для обучения детей Java в ходе игрового процесса.

Игра представляет собой нечто вроде RPG от первого лица с довольно скромной на сегодня графикой и весьма типичным сюжетом. Игрок — волшебник в стране, населённой гномами, которые по некоторой причине утратили свои магические способности. Задача игрока — помогать гномам при помощи своей магии, которая представляет из себя Java-код, выполнение которого приводит к модификации предметов и влиянию на окружающий мир: левитация, полёты, уничтожение огнём и тому подобное. Игра «помогает» игроку различными способами, начиная от подсказок и заканчивая чем-то на подобие дополнения кода, так что раздражения по поводу заклинания на Java «как разрушить это препятствие» у школьников не должно возникнуть.

Игровой процесс — правда, урывками и без особого смысла — можно посмотреть на видео
Узнать подробности
Всего голосов 80: ↑70 и ↓10+60
Комментарии92

10 советов по использованию микроконтроллеров AVR в системах с двигателями

Время на прочтение6 мин
Количество просмотров66K
Среди людей, увлекающихся электроникой, одним из самых популярных этюдов является изготовление гусеничного робота. Этой теме посвящена масса статей, в том числе и на Хабре. Обилие руководств, схем и статей привело меня к мысли, что это будет не так уж трудно, и мне тоже захотелось самому изготовить такую прекрасную самоделку. Можно сказать, что мне не повезло — в процессе работы я столкнулся с массой проблем, связанных с наличием двигателей. В конце концов все эти проблемы мне удалось решить, но это заняло очень много времени. В данной статье я предлагаю несколько советов по проектированию схем, содержащих двигатели, на базе микроконтроллеров AVR. В практической полезности всех этих советов мне пришлось убедиться на собственном опыте. Многие советы, как мне кажется, подойдут и для других микроконтроллеров.

Читать дальше →
Всего голосов 68: ↑63 и ↓5+58
Комментарии23

Продолжение видео лекций курса «Операционные системы» с Алексеем Брагиным в МГТУ им. Баумана

Время на прочтение1 мин
Количество просмотров23K
Мы продолжаем выкладывать в общий доступ лекции imageАлексея Брагина, который теперь читает авторский курс лекций об операционных системах в МГТУ им. Баумана.

Прошу принять во внимание, что это пилотный проект. А так конструктивная критика приветствуется, пожелания принимаются.
По просьбам трудящихся качество звука значительно улучшено!
Но смотреть, все равно лучше в HD


Читать дальше →
Всего голосов 53: ↑49 и ↓4+45
Комментарии8

Пишу игрушечную ОС (о прерываниях)

Время на прочтение4 мин
Количество просмотров50K

Данная статья написана в форме поста для блога. Если она окажется вам интересной, то будет продолжение.

Последние четыре месяца посвящаю свободное от работы время написанию игрушечной ОС для x86_64. Исходный код лежит здесь.

Общая задумка (пока весьма далёкая от реализации) следующая: единое 64-битное адресное пространство с вечно живущими нитями (как у Phantom OS); виртуальная машина, обеспечивающая безопасность исполнения кода. На данный момент реализованы:

1. загрузка ядра при помощи multiboot-загрузчика (GRUB);
2. текстовый VGA-режим (16-цветов, kprintf);
3. простой интерфейс настройки отображения страниц;
4. возможность обработки прерываний на C;
5. идентификация топологии процессоров (сокеты, ядра, потоки) и их запуск;
6. работающий прототип вытесняющего SMP-планировщика с поддержкой приоритетов;

Пропустим описание multiboot-загрузки и работы с VGA-режимом (об этом не писал, разве что, ленивый). Про отображение страниц тоже не хочу писать, боюсь это будет скучно (может, в другой раз). Давайте лучше поговорим об обработке прерываний.
Читать дальше →
Всего голосов 116: ↑111 и ↓5+106
Комментарии17

Основы безопасности операционной системы Android. Уровень ядра

Время на прочтение6 мин
Количество просмотров100K

Вступление


Самой распространенной операционной системой для смартфонов на сегодняшний день является Android. Но не только этот факт подогревает интерес к ней. Открытость, возможность что-то настроить, подкрутить, и, естественно, сломать тоже в немалой степени способствуют увеличению популярности этой платформы. Я попробую поделиться опытом, как устроена эта операционная система, а так же рассмотреть систему безопасности. Всем, кому интересно, добро пожаловать! В этой статье я рассмотрю безопасность на уровне ядра.
Читать дальше →
Всего голосов 108: ↑102 и ↓6+96
Комментарии19

Почему MineCraft стоит использовать в образовании

Время на прочтение3 мин
Количество просмотров78K
Прочитал статью, что в Швеции ввели уроки Minecraft’а и подумал, а в этом, что-то есть! Эта игра выделяется на фоне других своей обучающей способностью.
Решил написать статью почему Minecraft стоит использовать как обучающую платформу для детей, с примером того чем он был полезен мне, что он заставил меня выучить и попробую аргументировать, почему стоит показать ребёнку эту игру, а лучше вместе с ним начать играть на одном сервере. Заодно и опишу особенности игры для тех кто знает о Minecraft, «только что там всё квадратное».
image
Читать дальше →
Всего голосов 83: ↑53 и ↓30+23
Комментарии52

Valve начинает публиковать пакеты своего дистрибутива Linux

Время на прочтение2 мин
Количество просмотров45K
Steam Box, игровая консоль компании Valve, скорее всего, будет продаваться с предустановленной кастомизированной версией Linux. На веб-сервере репозитория Valve уже начали появляться первые наброски будущей операционной системы.

Как говорит Майкл Ларабел, так называемый “Steam Box”, вероятно, будет поставляться с кастомизированной версией Debian или Ubuntu. Более всего логично ожидать выпуска операционной системы на Ubuntu Core. Конечно же, за основу будет взята версия LTS, с продолжительным периодом поддержки.

Владельцам сайта Phoronix намекнули, что существует репозиторий hometest, права доступа к которому были изменены на публичные несколько дней назад. В отличие от обычного репозитория Valve, содержащего лишь пакеты Steam и Steam Launcher, в этом есть обновления для Steam на Ubuntu 12.04.2 LTS, экспериментальные драйвера nVidia для Linux, экран загрузки для графического загрузчика Plymouth и новые нескучные обои.
Читать дальше →
Всего голосов 97: ↑88 и ↓9+79
Комментарии103

Непредсказуемый, но адекватный бот в играх

Время на прочтение5 мин
Количество просмотров94K
Рассказ пойдет о 2D играх от третьего лица (вид сверху). В основном это шутеры, но и стратегия будет тоже затронута. Для простоты сравнения и понимания мы возьмем наших любимых «котяток». Да, да, именно коты нам хорошо в этом помогут.



Почему коты, узнаешь под катом.
Всего голосов 207: ↑181 и ↓26+155
Комментарии72

Время вспять…

Время на прочтение3 мин
Количество просмотров72K
Вот и отгремело первое апреля. Кто-то в этот день нюхал свои девайсы в новом сервисе Google Nose, кто-то играл в «Поле чудес», а кто-то, позабыв о роковой дате, просто угрюмо отряхивал спину от мела…

Я же, воодушевлённый статьёй про скрытые возможности кастомизации процесса explorer.exe, тоже решил сделать что-нибудь забавное.
Пусть сегодня моя секундная стрелка часов в Windows идёт в обратную сторону! Не самый, конечно, полезный в хозяйстве мод, но в академических и рекреационных целях вполне сгодится :)
Часовую и минутную стрелки я оставил в правильном направлении. Иногда всё же приходится полгядывать на часы в трее — пусть они показывают время с точностью хотя бы до минуты...
Читать дальше →
Всего голосов 226: ↑221 и ↓5+216
Комментарии29

А вы хорошо знаете статическую маршрутизацию?

Время на прочтение12 мин
Количество просмотров207K
Статический маршрут — первое, с чем сталкивается любой человек при изучении понятия маршрутизации IP пакетов. Считается, что это — наиболее простая тема из всех, в ней всё просто и очевидно. Я же постараюсь показать, что даже настолько примитивная технология может содержать в себе множество нюансов.
Следите за руками.
Всего голосов 68: ↑65 и ↓3+62
Комментарии53

DCDIAG – диагностика здоровья AD одной утилитой

Время на прочтение8 мин
Количество просмотров175K
Авторское примечание: Статья в первую очередь написана для начинающих системных администраторов, опытные вряд ли почерпнут для себя здесь что-нибудь новое и полезное. Навеяно статьей про GPUPDATE /force (спасибо mrHobbY).

Active Directory – это большой и сложный организм (даже если он состоит и двух контроллеров домена и одного сайта), и для системного администратора очень важно в любой момент времени провести диагностику для анализа работы этого организма.
Ну, а так как по оснасткам ходить и смотреть малоэффективно, по логам системы тоже не всегда поймешь, что происходит, поэтому на помощь приходят различные утилиты. Одна из них – dcdiag от компании Microsoft.
Посмотрим на нее внимательно – ибо полезность данной утилиты трудно переоценить. Я не буду приводить многочисленные ключи данной команды – про них при желании можно и в справке прочитать — а остановлюсь только на тех, – которые использую сам при диагностике на практике.

Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии9

Linux в домене Active Directory

Время на прочтение6 мин
Количество просмотров234K
Перед администраторами иногда встают задачи интеграции Linux серверов и рабочих станций в среду домена Active Directory. Обычно требуется:
1. Предоставить доступ к сервисам на Linux сервере пользователям домена.
2. Пустить на Linux сервер администраторов под своими доменными учётными данными.
3. Настроить вход на Linux рабочую станцию для пользователей домена, причём желательно, чтобы они могли при этом вкусить все прелести SSO (Я, например, не очень люблю часто вводить свой длинный-предлинный пароль).

Обычно для предоставления Linux системе пользователей и групп из домена Active Directory используют winbind либо настраивают библиотеки nss для работы с контроллером домена Active Directory по LDAP протоколу. Но сегодня мы пойдём иным путём: будем использовать PowerBroker Identity Services (Продукт известен также под именем Likewise).
Как ввести Linux машину в домен Active Directory
Всего голосов 28: ↑23 и ↓5+18
Комментарии14

Делегирование административных задач в Active Directory

Время на прочтение12 мин
Количество просмотров160K
Ввиду того, что во время Хабравстречи я рассказывал об 11 различных сценариях, естественно, мне хотелось бы на каждом из этих моментов остановиться подробнее. Другими словами, начиная с этой статьи я рассмотрю большинство моментов, о которых шла речь во время предыдущего доклада. Итак…
Относительно недавно мне в Windows Live Messenger задали несколько вопросов, связанных с делегированием административных полномочий в Active Directory. Однако, прежде чем переходить к самим вопросам по этой теме, я буквально в двух словах расскажу, что же собой представляет делегирование и для чего оно нужно.
Читать дальше →
Всего голосов 25: ↑22 и ↓3+19
Комментарии7

Возвращаем приватность или большой брат следит за мной на стандартных настройках. Часть 2. Блокируем следящие скрипты на сайтах и настраиваем VPN

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

Сегодня посмотрим (и избавимся) на то, сколько статистики собирают на нас даже без использования сторонних «куки»-файлов и расскажем о пользе и настройке VPN простым языком.

Хочу сказать большое спасибо всем, кто оставлял комментарии в прошлой статье (и оставит в этой) — все ваши дельные советы будут включены в этот или последующий мануалы.


Читать дальше →
Всего голосов 46: ↑43 и ↓3+40
Комментарии50

Высокоуровневые API для Linux-контейнеров

Время на прочтение2 мин
Количество просмотров22K

Компания DotCloud разработала и выложила в открытый доступ систему Docker — высокоуровневые интерфейсы для доступа к Linux-контейнерам (LXC). Это идеальный инструмент для работы с контейнерами на любом сервере x64, для развёртывания крупномасштабных веб-инсталляций, кластеров БД, частных PaaS и т.д.

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

Ключевые особенности Docker
  • Изоляция файловой системы: каждый контейнер процесса работает полностью отдельной корневой файловой системе
  • Изоляция ресурсов: системные ресурсы, как CPU и память, можно выделять по-разному для каждого контейнера процесса, используя cgroups
  • Сетевая изоляция: каждый контейнер процесса работает в своём собственном пространстве имён, с виртуальным интерфейсом и собственным IP-адресом
Читать дальше →
Всего голосов 32: ↑28 и ↓4+24
Комментарии15

Как запустить программу без операционной системы

Время на прочтение13 мин
Количество просмотров183K

Так вышло, что в нашей статье, описывающей механизм опроса PCI шины, не было достаточно подробно описано самого главного: как же запустить этот код на реальном железе? Как создать собственный загрузочный диск? В этой статье мы подробно ответим на все эти вопросы (частично данные вопросы разбирались в предыдущей статье, но для удобства чтения позволим себе небольшое дублирование материала).

В интернете существует огромное количество описаний и туториалов о для того как написать собственную мини-ОС, даже существуют сотни готовых маленьких хобби-ОС. Один из наиболее достойных ресурсов по этой тематике, который хотелось бы особо выделить, это портал osdev.org. Для дополнения предыдущей статьи про PCI (и возможности писать последующие статьи о различных функциях, которые присутствуют в любой современной ОС), мы опишем пошаговые инструкции по созданию загрузочного диска с привычной программой на языке С. Мы старались писать максимально подробно, чтобы во всем можно было разобраться самостоятельно.

Итак, цель: затратив как можно меньше усилий, создать собственную загрузочную флешку, которая всего-навсего печатает на экране компьютера классический “Hello World”.

Читать дальше →
Всего голосов 196: ↑188 и ↓8+180
Комментарии69

Программирование в научной работе

Время на прочтение5 мин
Количество просмотров21K
image
В школе, изучая информатику и участвуя в олимпиадах по программированию, я подозревал, что умение составлять алгоритмы пригодится в жизни. И первые исследования в задачах, например, «Монах каждый день спускался в погребок и выпивал кружку вина из бочки. А чтобы никто не догадался — доливал сверху кружку воды. Сколько процентов вина будет в кружке у монаха через 30 дней?», давали интересные жизненные решения вроде асимптотических зависимостей. На сегодняшний день, я все чаще сталкиваюсь с задачами программирования в научных и инжереных изысканиях, о чем бы и хотелось рассказать. Проследим историю развития студента физического факультета.
Читать дальше →
Всего голосов 28: ↑18 и ↓10+8
Комментарии26

Тестируем память с помощью Memtest86+ и VirtualBox

Время на прочтение4 мин
Количество просмотров37K
По роду деятельности приходится иметь дело с железом, с большим количеством компьютеров разной конфигурации, и, в частности, заниматься их тестированием. Естественно, хочется чтобы этот процесс был автоматизирован на сколько возможно. Для этих целей я использую бездисковую загрузку линукс через PXE, на котором подготовлены к автозапуску соответствующие скрипты с разными тестами, демоны следят за состоянием системы, а мониторинг на сервере показывает результаты и ругается, если что-то не так. В общем-то, всем можно быть довольным, но процесс проверки оперативной памяти никогда мне не нравился. Нативный для линукса memtester, субъктивно, работает слишком долго, прежде чем что-то найдет, да и находит далеко не всегда. Собрать ядро или поиграться с архивами — неплохой способ проверить систему на стабильность, но в глюках не всегда бывает виновата память. А самым действенным способом, в конечном счете, является старый добрый Memtest86. Но с ним необходимо следить за каждым компьютером по отдельности, теряется весь процесс автоматизации, а когда компьютеров слишком много, то начинает поджимать и время. К сожалению, обделен всякими хитрыми kvm'ами.

Размышляя над этим, я обратил свой взгляд на виртуализацию. Почему бы не попробовать? Хотя бы just for lulz. Память ведь используется таже самая.

Смотрим что получилось
Всего голосов 48: ↑37 и ↓11+26
Комментарии34

Действительно ли у каждого ядра есть «свой собственный» кэш первого и второго уровней?

Время на прочтение6 мин
Количество просмотров35K
У современных процессоров архитектуры Core i7 существует очевидный, документированный, но отчего-то не очень известный даже среди многих специалистов сценарий priority inversion. Его я опишу в этом посте. В нем есть код на С, три диаграммы, и некоторые подробности работы кэшей в процессорах архитектуры Core i7. Никаких покровов не срывается, вся информация давно общедоступна.

Priority inversion – ситуация, когда низкоприоритетный процесс может блокировать или замедлять высокоприоритетный. Обычно имеется в виду очередность доступа к исполнению на ядре для высокоприоритетного кода относительно низкоприоритетного. С этим должно неплохо справляться ядро ОС. Однако помимо вычислительных ядер, которые несложно распределять посредством affinity и MSI-X, в процессоре есть ресурсы, общие для всех задач – контроллер памяти, QPI, общий кэш третьего уровня, PCIe устройства. В вопросы PCIe я углубляться не буду, т.к. не являюсь экспертом в данной теме. Priority inversion на почве доступа к памяти и QPI я давно не наблюдал – пропускной способности современного многоканального контроллера как правило хватает и высокоприоритетным, и низкоприоритетным задачам. Остановлюсь на кэшах.
Читать дальше →
Всего голосов 59: ↑55 и ↓4+51
Комментарии31

Информация

В рейтинге
Не участвует
Откуда
Вологда, Вологодская обл., Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Backend Developer, DevOps
Linux
Golang
Kubernetes