Обновить
388.26

Linux *

Пишем под *nix

Сначала показывать
Порог рейтинга
Уровень сложности

CryptoAPI ядра Linux: разработка и применение российской криптографии

Время на прочтение8 мин
Количество просмотров15K
imageCryptoAPI представляет собой реализацию криптографических алгоритмов с предоставлением доступа к ним как из самого ядра, так и из прикладного программного обеспечения. Наиболее яркими представителями этого программного обеспечения является IPSEC (VPN ) и dm-crypt (шифрованная файловая система).
Читать дальше →

«Байкал-T1»: знакомство с платой на первом в России 28-нм процессоре

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

В нашу инженерную лабораторию попала демоплата Baikal BFK Rev 1.6 на основе первого российского процессора для коммерческих разработок — SOM Baikal-T1 MIPS.


Двухъядерный процессор «Байкал-Т1» на архитектуре MIPS Warrior P-class P5600 MIPS 32 был анонсирован еще в 2015 году в рамках программы по импортозамещению, его разработчик — российская фаблес-компания «Байкал Электроникс». Эта система на кристалле была создана для проектирования промышленных и потребительских устройств: маршрутизаторов и сетевых накопителей, тонких клиентов, мультимедийных центров, систем ЧПУ и т.п.


Откроем коробку и посмотрим, как работает стандартный пакет поддержки платформы (BSP) на тестовой плате:


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

В поисках перформанса: мониторинг производительности JVM под Linux при помощи BPF

Время на прочтение6 мин
Количество просмотров9.9K
Специалист по низкоуровневой оптимизации приложений, Саша Гольдштейн, в рамках своего доклада на JPoint немного отклонится от привычной тематики .NET и расскажет об инструментарии, помогающем бороться за производительность Java приложений под Linux. Что это за инструмент, кому он нужен и зачем, мы решили узнать заранее и взяли у Саши интервью.

JUG.Ru Group: Расскажите, пожалуйста, пару слов о себе и своей работе?

Саша Гольдштейн: Меня зовут Саша Гольдштейн, последние 10 лет я работаю в израильской консалтинговой компании Sela в качестве CTO.
Моя работа сфокусирована на вопросах оптимизации производительности, диагностике на продакшн, мониторинге и всевозможных низкоуровневых задачах.
Моя типичная рабочая неделя наполнена самыми разными задачами: я преподаю, исправляю ошибки или проблемы производительности для клиентов, а также работаю над внутренними проектами. Также я вхожу в программный комитет пары конференций: нашей собственной SDP (Тель-Авив, Израиль), а также DotNext (Москва и Санкт-Петербург, Россия), что на удивление занимает довольно много времени.

«Производительность большинства приложений определяется не железом или средой исполнения» – Sasha Goldshtein о мониторинге производительности Java под Linux
Читать дальше →

Создание и тестирование Firewall в Linux, Часть 2.3. Завершаем Firewall. Обрабатываем трафик в userspace

Время на прочтение5 мин
Количество просмотров8.1K
Содержание первой части:


Содержание второй части:

2.1 — Введение во вторую часть. Смотрим на сеть и протоколы. Wireshark.
2.2 — Таблицы Firewall. Transport Layer. Структуры TCP, UDP. Расширяем Firewall.
2.3 — Расширяем функциональность. Обрабатываем данные в user space. libnetfilter_queue.
2.4 — Бонус. Изучаем реальную Buffer Overflow атаку и предотвращаем с помощью нашего Firewall'а.
Читать дальше →

Как мы внедряли DevOps: публикация образа в Docker Hub с помощью Visual Studio Team Services

Время на прочтение4 мин
Количество просмотров5.6K
Продолжаем цикл статей «Как мы внедряли DevOps» от команды Vorlon.JS. Под катом вы узнаете, как они использовали систему сборки Visual Studio Team Services (VSTS) для автоматизации создания и публикации образа в репозитории с применением Linux-агента.


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

Ломаем Android. Как глубока кроличья нора?

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

image


Мой первый Android телефон Galaxy Note N7000 был приобретен сразу после анонса в октябре 2011 года. Благодаря одному немецкому умельцу под ником bauner, у меня была возможность использовать последнюю версию CyanogenMod (ныне LineageOS). До тех пор, пока полтора года назад телефон не умер от китайской автомобильной зарядки.


Замену искал долго и остановился на Kyocera (да, они и телефоны выпускают) KC-S701. Он отличается брутальным внешним видом и отсутствием сенсорных кнопок. О root доступе к телефону я тогда даже и не задумывался, полагая, что нынче каждый телефон тем или иным способом имеет возможность получения root. И найдется умелец, который сможет под него портировать CyanogenMod. Я ошибался.


За полтора года было выпущено всего одно обновление — фикс падения ядра от специально сформированного ping пакета. А Android KitKat уже год назад был не первой свежести. Root доступ на этот телефон так никто и не получил, и никакой информации о нем не было. Отмечу, что тоже самое железо используется в американской версии телефона Kyocera Brigadier E6782, в котором по-умолчанию активизирован режим fastboot и нет ограничения на запуск неподписанных ядер (именно запуск, а не прошивку, и только при использовании непропатченного bootloader'а, CVE-2014-4325) и присутствует возможность загружаться в эти режимы путём зажатия кнопок телефона. Стараниями Verizon (а может Kyocera?) версия Android на Brigadier была обновлена до Lollipop.


Итак, я решил разобраться с процессом получения root на Android самостоятельно.

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

Разработка SELinux-модуля для приложения

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

Давным-давно, в далекой-далекой стране


… государственная служба NSA разработала систему безопасности для ядра и окружения Linux, и назвала ее SELinux. И с тех пор люди разделились на две категории: disabled/permissive и enforcing. Сегодня я покажу вам путь Силы и переведу на другую сторону всех желающих.

Предположения


В тексте будет содержаться много технической информации, поэтому автор предполагает, что читатель:

  • Имеет какое-то приложение (демон), которое должно работать с SELinux
  • Просмотрел разницу между DAC, MAC и RBAC
  • Знаком с администрированием Linux
  • Что-то читал про SELinux и может расшифровать user_u:user_r:user_home_t:s0
  • Имеет под рукой CentOS 7
  • На котором установлены пакеты setools-console, policycoreutils-devel, selinux-policy-devel
  • И включен SELinux в режиме permissive с политикой targeted или minimum

Это все про вас? Тогда поехали!
Читать дальше →

Пользователи Windows получили возможность работать с openSUSE (и Arch Linux)

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


Веcной прошлого года появились слухи о том, что в новую операционную систему от Microsoft интегрировали Linux. В это поверило не так много пользователей, и зря — слухи оказались правдой. В конце марта 2016 года Microsoft подтвердила эту информацию. Тогда было объявлено, что пользователи Windows 10 смогут работать с командным интерпретатором Linux, то есть bash. Это означает, что в Windows есть встроенный загрузчик ELF-файлов, а также среда для исполнения таких файлов, плюс стандартные инструменты вроде ssh, grep, sed, и awk. Эталонной системой было решено выбрать Ubuntu Linux.

Речь тогда шла о полноценной подсистеме Linux, а не каких-то эмуляторах либо виртуальных машинах. Сначала новую возможность опробовали пользователи предварительных релизов Windows, а с выходом Anniversary update — все остальные. Сейчас, кроме Ubuntu Linux, в Windows появилась возможность работать и с OpenSUSE. Конечно, если вы не работаете с Windows, то и положительных эмоций особо не будет, но если работаете, плюс нужен еще и Linux, то эта новость может оказаться полезной.
Читать дальше →

Расширение Visual C++ for Linux Development

Время на прочтение9 мин
Количество просмотров38K
Расширение Visual C++ for Linux Development позволяет создавать решения на C++ для серверов, настольных ПК и устройств под управлением Linux. Управлять подключениями к ним можно непосредственно в Visual Studio. VS будет автоматически копировать и удалённо собирать исходный код программ. Также среда позволяет запустить ваше приложение в режиме отладки. Система управления проектами поддерживает создание решений для конкретных архитектур, в том числе APM. Под катом мы расскажем, как начать работу с новыми проектами для Linux.


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

Exploit Exercises или ещё один сайт для любителей VulnHub

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


Всем доброго времени суток, спасибо, что читаете мои райтапы. Сегодня речь пойдёт ещё об одном сайте, который похож на VulnHub. Это Exploit Exercises. Несмотря на небольшое количество виртуалок, и их относительно давнюю публикацию, почерпнуть что-то новое можно и там. Тем более это компенсируется разнообразием и количеством уровней.

Начать предлагается с виртуальной машины под названием Nebula. Её мы сегодня и разберём.
Читать дальше →

Прямой доступ к диску из python (simhdd)

Время на прочтение3 мин
Количество просмотров14K
image

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

На этот раз я расскажу о создании приложения для тестирования жестких дисков на базе этой библиотеки.
Читать дальше →

Nuklear — идеальный GUI для микро-проектов?

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

Nuklear — это библиотека для создания immediate mode пользовательских интерфейсов. Библиотека не имеет никаких зависимостей (только C89! только хардкор!), но и не умеет создавать окна операционной системы или выполнять реальный рендеринг. Nuklear — встраиваемая библиотека, которая предоставляет удобные интерфейсы для отрисовки средствами реализованного приложения. Есть примеры на WinAPI, X11, SDL, Allegro, GLFW, OpenGL, DirectX. Родителем концепции была библиотека ImGUI.


Чем прекрасна именно Nuklear? Она имеет небольшой размер (порядка 15 тысяч строк кода), полностью содержится в одном заголовочном файле, создавалась с упором на портативность и простоту использования. Лицензия Public Domain.

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

Создание и тестирование Firewall в Linux, Часть 2.2. Таблицы Firewall. Доступ к TCP\IP структурам

Время на прочтение8 мин
Количество просмотров18K
Содержание первой части:


Содержание второй части:

2.1 — Введение во вторую часть. Смотрим на сеть и протоколы. Wireshark.
2.2 — Таблицы Firewall. Transport Layer. Структуры TCP, UDP. Расширяем Firewall.
2.3 — Расширяем функциональность. Обрабатываем данные в user space. libnetfilter_queue.
2.4 — Бонус. Изучаем реальную Buffer Overflow атаку и предотвращаем с помощью нашего Firewall'а.
Читать дальше →

Ближайшие события

Мобильный терминальный клиент, как зарождалась идея

Время на прочтение3 мин
Количество просмотров18K
Как создавался Российский тонкий клиент и к чему все привело.



В те времена, когда красный флаг уже перестал развеваться над нашей Родиной, на дворе шел 2012 год. Я работал в одном Российском системном интеграторе, где занимал двойную должность «Руководителя ИТ отдела» и «Руководителя ИТ проектов». Время было веселое, отличная команда профессионалов, которая всегда слаженно работала, хотя и не так все было просто. Можно долго перечислять имена и фамилии людей, которые работали плечом к плечу со мной, но сдавать агентов КГБ, не буду, не имею такой привычки.
Читать дальше →

Упрощать сложно — усложнять легко. GUI программа для создания deb-пакетов

Время на прочтение3 мин
Количество просмотров9.1K
Возможно, на меня снизойдет гнев эстетов linux, vim, mc. Но скажу сразу, пользовались — знаем. Собирать deb-пакет, так для новичка, так что не будем усложнять ему жизнь изучением vim и mc, а а просто дадим дальше кликать мышкой. Кому интересен вопрос упрощения создания бинарных deb-пакетов и не боится собрать с помощью qtcreator'a сам, добро пожаловать под кат

С чего началось


Вдохновленный статьей о создании deb-пакетов сел я собирать пакеты… После 10го пакета, признаться 4 открытых MC навели меня на мысль, что всё таки нужно gui инструмент. Конечно, тут же был установлен giftwrap, быстро заполнены первые страницы настройщика, и тут обнаруживается, что скрипты нужно опять таки тащить руками внутрь папки DEBIAN.
Читать дальше →

Как обновить ядро в системе без перезапуска сервисов (пошаговая инструкция)

Время на прочтение8 мин
Количество просмотров14K
Как вы думаете насколько реально зайти на машину по ssh, обновить систему, загрузить новое ядро и при этом оставаться в той же ssh сессии. Сейчас есть модное движения по обновлению ядра на лету (ksplice, KernelCare, ReadyKernel, etc), но у этого способа есть много ограничений. Во-первых, он не позволяет применять изменения, которые меняют структуру данных. Во-вторых, объекты в памяти могут уже содержать неверные данные, которые могут вызвать проблемы в дальнейшем. Здесь будет описан более «честный» способ обновить ядро. На самом деле, сам способ уже давно известен [1], а ценность этой статьи в том, что мы разберем все в деталях на реальном примере, поймем, насколько это просто или сложно, и чего стоит ждать от подобных экспериментов.
Читать дальше →

Чем «interface» отличается от «междумордия»: наш подход к документированию и локализации программных продуктов

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

Однажды в технической документации к Parallels Desktop нам потребовалось использовать фразу «жёсткий диск виртуальной машины». На английском языке это звучит: virtual machine hard disk. Наш прошлый технический писатель ошибся всего в одной букве в одном слове, но смысл получился диаметрально противоположный. Заметили мы это не сразу и в какой-то момент наша техническая документация, локализованная на многих языках мира, содержала нетленное: virtual machine hard dick. Был грандиозный скандал, после которого мы ужесточили проверку текстов. Под катом — рассказ нашего технического писателя Андрея Старовойтова о том, где обитают технические писатели, на что их ловить и как Parallels документирует и локализует свои продукты.
Читать дальше →

TeamCity как Debian-репозиторий

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

… или использование TeamCity для сборки *.deb-пакетов и не только.


Написать статью меня побудило знакомство с модулем tcDebRepository. Я наивно полагал, что "вот сейчас я его подключу, и всё волшебным образом заработает". Как водится, не заработало, и в конце концов был накоплен некий опыт, который захотелось систематизировать.


Статья ни в коей мере не является введением в основы TeamCity и предполагает, что читатель уже знаком и собственно с TeamCity, и с инфраструктурой Debian GNU/Linux. Если вы уже представляете, что такое continuous integration, но ещё ни разу не держали в руках TeamCity — вам, наверное, сюда. О сборке пакетов в Debian можно почитать в Debian New Maintainers' Guide.


Для игр (на случай, если кто-то захочет воспроизвести результаты) использовался сервер TeamCity 10 и 3 агента под управлением Debian 8.0 (Jessie). 3 агента — это лимит в случае TeamCity Professional. Всё ниженаписанное, думаю, без проблем переносится на любой другой дистрибутив на основе Debian GNU/Linux, напр., Astra Linux.

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

13 перспективных языков программирования

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


Более быстрое и умное программирование, с меньшим количеством багов. Подобными обещаниями создатели многих современных языков привлекают внимание программистов. Всё это мы слышали уже много раз, но недостаток новизны — вовсе не причина отвергать эти обещания. Ведь будущее программирования требует стабильности и внедрения хороших методик, поэтому инновации будут работать. А учитывая, что программные продукты часто бывают просто огромными, сегодня мы нуждаемся в инновациях как никогда ранее.
Читать дальше →

Docker, GitLab, бесплатные SSL-сертификаты и другие плюшки современной веб-разработки

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

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


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


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


Под хабракатом вы найдете Quick Start по использованию Docker на уровне, необходимом для решения конкретных задач, обозначенных ниже, без углубления в "дебри" виртуализации и прочих сопутствующих тем. Если вы до сих пор хотите начать успешно использовать эту современную технологию, тем самым значительно упростив целый ряд процессов: от разработки веб-продуктов и до разворачивания и переноса оных под какое-либо современное оборудование — прошу под кат!


Opening Illustration - Docker

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

Вклад авторов