Как стать автором
Поиск
Написать публикацию
Обновить
209.96

Linux *

Пишем под *nix

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

Position-independent code (PIC) в разделяемых библиотеках на x64

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

enter image description here


Привет, я все еще Марко и все еще системный программист в Badoo. На прошлой неделе я опубликовал перевод о PIC в шареных библиотеках, но есть вторая часть – про разделяемые библиотеки на х64, поэтому решил не оставлять дело незаконченным.

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

Придумываем название для нового гипервайзера для архитектуры MIPS с аппаратно-поддерживаемой виртуализацией

Время на прочтение5 мин
Количество просмотров8.5K
На днях в офисе Imagination Technologies в Санта-Клара, Калифорния ко мне подходит специалист по многоядерному Линуксу Леонид Егошин и говорит:

Егошин: Вот, написал самый маленький гипервайзер в мире.

Я: Да? А как называется?

Егошин: Еще не придумал. И маркетинг названия не спустил. Придумай название! Это все равно будет opensource-проект.

Я: Мне чего-то трудно такое придумать. Как говорится «как вы яхту назовете, так она и поплывет». Надо общественность спросить.

Егошин: И я еще в апреле в Долгопрудном буду, в МФТИ. Не был там с XX века. Есть ли там кто-нибудь, кого интересует MIPS-Linux/IoT/гипервизоры на MIPS?

Я: Ну об этом тоже можно спросить общественность.

Итого, я написал этот пост, чтобы спросить общественность. Но сначала я расскажу, кто такой Леонид Егошин и что такое гипервайзер.

***

Не вся молодежь знает, но в СССР был свой Unix. Не при Брежневе, но уже при Андропове.

И вот одним из первых советских юниксологов и был Егошин (он единственный на фотке на Красной Площади 1980-х, кто улыбается). Потом Егошин переехал в Silicon Valley и стал работать в MIPS Technologies, которая стала Imagination Technologies. На снимке справа Егошин уже в 2015 году, с первой привезенной в Америку из России платой с российским микропроцессором Байкал-Т — Егошин помогал отлаживать на ней Линукс:



А теперь что такое гипервайзер.
Читать дальше →

Position-independent code (PIC) в разделяемых библиотеках

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

enter image description here


Привет. Меня зовут Марко, и я системный программист в Badoo. Я очень люблю досконально разбираться в том, как работают те или иные вещи, и тонкости работы разделяемых библиотек в Linux не исключение. Я представляю вам перевод именно такого разбора. Приятного чтения.

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

Bake – запускаем таски на bash

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

Думаю многим известна ситуация, когда собственный изобретенный велосипед нигде потом не используется. Поэтому я долго не решался опубликовать эту разработку, пока не обратил внимание, что таскаю его из проекта в проект. И так, одним из неотъемлемых элементов современной разработки являются так называемые таск раннеры – это Grunt/Gulp для nodejs, Rake для Ruby, Make для C/C++ и т.п. А для главного инструмента разработчика – консоли – ничего подобного нет. Точнее есть, но, как это обычно бывает, не совсем то. В результате изысканий, на свет появился инструмент Bake – таскраннер написанный на bash с поддержкой модульной структуры.


Основные особенности:


  • Таски в виде функции.
  • Поддержка аргументов.
  • Модули.
Читать дальше →

Почему все виртуальные помощники — женщины?

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


Вы замечали, в нашем мире все так устроено, что везде можно найти плюсы и минусы, черное и белое, мужское и женское? Понятно, что на Хабре 76,1 процентов мужчины, поэтому, если вы испытываете жесткий антагонизм к тематическим постам, можете смело дальше не читать. Под катом много картинок и пара любопытных историй о том, почему современные виртуальные помощники говорят женскими голосами.
Читать дальше →

Некоторые приёмы работы в Битрикс на SQL и BASH

Время на прочтение6 мин
Количество просмотров32K
Я продолжаю писать о Битриксе в контексте обменов, Mysql и командной строки Linux.

Эта статья является вводной к серии статей о структуре базы данных Битрикс, где эта тема будет раскрыта достаточно подробно. Для начала же будут представлены решения некоторых небольших, но назойливых задач. Как всегда, знание SQL обязательно.

В статье рассматриваются довольно частные вопросы, которые не возникают ежедневно. Конечно, вы можете использовать эти материалы по их прямому назначению, но главная цель статьи не в этом. Я начинаю вскрывать «чёрный ящик» под названием «структура базы данных битрикс», и показывать, что эти знания могут пригодиться для повышения уровня владения как системой, так и базовыми технологиями (SQL, linux shell), что, конечно, помогает решать новые, сложные, интересные, разнообразные задачи.

Страница, с которой можно делать SQL запросы в базу, или mysql web клиент битрикс, находится в панели управления Битрикса по пути: «Настройки->Инструменты->SQL запрос».

Также, конечно, можно делать запросы из командной строки операционной системы, для чего могу предложить вам несложную операцию извлечения логина и пароля прямо из настроек Битрикса:

log=$(grep -i "login" /home/bitrix/www/bitrix/php_interface/dbconn.php | cut -f2 -d'"')
pas=$(grep -i "pass" /home/bitrix/www/bitrix/php_interface/dbconn.php | cut -f2 -d'"')
mysql -u$log -p$pas $log

— таким образом можно получить логин и пароль к базе данных Mysql Bitrix из командной строки linux на bash. Пути, конечно же, заменяйте на ваши собственные. В варианте, предоставляемом виртаульной машиной Битрикс, DOCUMENT_ROOT выглядит как /home/bitrix/www/.
Читать дальше →

Как кастомные решения помогли сэкономить на сетевой инфраструктуре

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


Построение инфраструктуры CDN связано с большим количеством технических вопросов: от выбора оборудования и установки его в датацентрах до пользовательского интерфейса для взаимодействия с возможностями сети. Мы приводим перевод статьи из блога Fastly, где команда рассказывает об очень интересных кастомных решениях для работы с сетью (значительная часть которых независимо была использована в инфраструктуре Айри).

В результате оптимизации инфраструктуры удалось добиться минимального времени простоя при отказе какого-либо узла и большой масштабируемости системы.
Читать дальше →

EMC DPO: как защитить свои товары от подделок

Время на прочтение7 мин
Количество просмотров5.4K
Представим ситуацию: вы приходите в магазин, скажем, дорогих часов, покупаете понравившийся товар, с нетерпением идете домой, чтобы открыть заветную коробочку, открываете ее, и, вдруг, выясняется, что купленный товар — дешевая подделка.

Знакомо? Что делать и кто виноват? Доверие к производителю часов у вас начинает резко падать. А разве виноват произоводитель часов, что его продукцию подделывают? Спорный вопрос, мне кажется. Так или иначе, очевидно, что контрафакт причиняет огромные репутационные потери и убытки легальным производителям.

Решением может быть использование продукта EMC DPO и блокчейна Emercoin.
Читать дальше →

Разработка SELinux-модуля для пользователя

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

Это вторая статья из цикла


Сегодня мы поговорим о SELinux-пользователях, их создании, привязке, правам и другим вещам.

Зачем это делать? Есть много причин. Для меня главной причиной было выдать доступ для техподдержки для рутинных операций (таких как ребут, чистка логов, диагностика итд), но без доступа к критичным данным и изменению системных функций.

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


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

  • Прочитал прошлую статью
  • Имеет под рукой CentOS 7
  • На котором установлены пакеты setools-console, policycoreutils-devel, selinux-policy-devel, policycoreutils-newrole
  • И включен SELinux в режиме enforcing с политикой targeted или minimum

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

Так ли безопасно использование абсолютного пути в *nix системах, как мы привыкли считать?

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

image


Идея редактирования переменных окружения пользователя для повышения прав при тестировании на проникновение стара как мир. По этой теме написано множество статей, и даже в книгах начали появляться советы по использованию абсолютного пути вместо относительного. Вот пример такого совета из довольно известной книги Unix и Linux. Руководство системного администратора (4 издание):


…
Рекомендуем взять за правило при вводе команды указывать полное имя, например /bin/su или /usr/bin/su, а не просто su. Это послужит определенной защитой от тех программ с именем su, которые преднамеренно были прописаны в переменной среды path злоумышленником, намеревавшимся собрать хороший “урожай” паролей.
…

Но так ли это безопасно? Если вы тоже задавались этим вопросом, то добро пожаловать под кат.


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

Салют-ЭЛ24Д1: отладочная плата на российском процессоре 1892ВМ14Я для жестких условий эксплуатации

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

В нашей инженерной лаборатории появилась новая российская плата для экспериментов — отладочный модуль Салют-ЭЛ24Д1 на многоядерной системе на кристалле 1892ВМ14Я для Арктики и космоса. Посмотрим, на что она способна.
Читать дальше →

Портирование — дело тонкое: проверка Far Manager под Linux

Время на прочтение12 мин
Количество просмотров19K
Одним из популярных файловых менеджеров в среде Microsoft Windows является Far Manager, принявший эстафету у Norton Commander, созданной еще для DOS. Far Manager позволяет облегчить работу с файловой системой (создание, редактирование, просмотр, копирование, перемещение, поиск, удаление файлов), а также расширяет стандартный функционал (работа с сетью, архивами, резервными копиями и т.д.). Недавно была произведена работа по портированию Far Manager на Linux, и на текущий момент была выпущена альфа-версия. Команда PVS-Studio не могла обойти стороной данное событие и решила проверить качество адаптированного кода.
Picture 24
Читать дальше →

Инкрементальный анализ в PVS-Studio: теперь и на сборочном сервере

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


Введение


При внедрении статического анализатора в существующий процесс разработки, команда может столкнуться с определенными трудностями. Например, очень полезно проверять измененный код перед тем, как он попадет в систему контроля версий. Однако, выполнение статического анализа в этом случае может требовать достаточно продолжительного времени, особенно на проектах с большой кодовой базой. В этой статье мы рассмотрим режим инкрементального анализа в статическом анализаторе PVS-Studio, который позволяет проверять только измененные файлы, что значительно сокращает время, необходимое для анализа кода. Следовательно, разработчики смогут использовать статический анализ так часто, как это необходимо, и минимизировать риски попадания кода, содержащего ошибку, в систему контроля версий. Поводом для написания статьи послужило, во-первых, желание еще раз рассказать о такой полезной функции нашего анализатора, а во-вторых, тот факт, что мы полностью переписали механизм инкрементального анализа и добавили поддержку этого режима в версию нашего анализатора для командной строки.
Читать дальше →

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

UNIX-подобные системы содержат кучу костылей. Крах «философии UNIX»

Время на прочтение29 мин
Количество просмотров108K
UPD от 2017-03-04: кто-то выполнил английский перевод. Обсуждение на Hacker News.

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

Костыли в UNIX начали возникать ещё с момента появления UNIX, а это было ещё раньше появления не только Windows, но даже вроде бы Microsoft DOS (вроде бы, мне лень проверять, проверяйте сами). Если лень читать, хотя бы просмотрите все пункты, что-нибудь интересное найдёте. Это далеко не полный список, это просто те косяки, который я захотел упомянуть.
Читать дальше →

Как создавать, собирать, устанавливать и использовать пакеты с программами и библиотеками для UNIX-подобных систем

Время на прочтение13 мин
Количество просмотров47K
Речь пойдёт о программах и библиотеках для UNIX-подобных систем, распространяемых в виде исходного кода (в том числе в виде тарболлов), написанных обычно на C и C++ (хотя этот же порядок работы может применяться к софту на любом языке). Многие вещи в этой статье написаны применительно конкретно к GNU/Linux, хотя многое из статьи может быть обобщено и на другие UNIX-подобные ОС.

Под словом «пакет» я понимаю в этой статье пакет с исходными текстами, причём не пакет конкретного дистрибутива GNU/Linux, а просто пакет, исходящий от оригинальных авторов софта (UPD от 2017-02-09: кроме тех случаев, где из контекста ясно, что слово «пакет» употреблено в другом смысле).

В этой статье я разберу следующие вопросы:

  • Вот скачал программу или библиотеку. Как её собрать и установить? Как воспользоваться библиотекой?
  • Что такое префикс (prefix) установки? В чём разница между сборкой и установкой? Куда обычно устанавливают программы?

Я разберу только совсем базовые вещи. Те, которые типичные участники сообщества свободного ПО, программирующие на C и C++ под UNIX-подобные системы, обычно уже знают. Как создавать тарболлы (на примере «голого» make) и как устанавливать чужие тарболлы. Advanced советы по созданию «хороших» пакетов я не дам. «Продвинутые» вещи читайте в документации систем сборки, в замечательной статье «Upstream guide» от Debian (в её конце есть ещё куча ссылок о создании «хороших» пакетов). Многое в этой статье можно было сделать по-другому, моя цель: дать хотя бы один способ, не пытаться объять необъятное.
Читать дальше →

Стандартный обмен 1С-Битрикс на BASH: Подробный разбор скрипта инкрементальной выгрузки

Время на прочтение8 мин
Количество просмотров13K
Для обеспечения синхронизации каталога товаров между системой 1С и сайтом на системе управления Битрикс, используется стандартный для Битрикса протокол обмена XML файлами в формате CommerceML, основанный на передаче от 1С к Битриксу HTTP GET и POST запросов с определёнными параметрами, и получении стандартных ответов, содержащих статус операции, обозначающий результат её выполнения.

В первой статье этой серии дано обоснование возможности применения отдельного скрипта, берущего сформированные 1С или другой системой или программой, XML файлы, и передающего их Битриксу, используя стандартный протокол.

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

Скрипт написан на BASH и является одним из нескольких скриптов, обеспечивающих различные обмены через один и тот же стандарт, который предлагает 1С-Битрикс для передачи товаров каталога из 1С и загрузки заказов с сайта, построенного на основе системы управления Битрикс.

Далее идёт текст скрипта с комментариями. Краткий вид скрипта, содержащий исключительно код, приведён в предыдущей статье, и доступен на github проекта bitrexchange.
Читать дальше →

Visual C++ for Linux Development: Практика использования для Windows разработчиков

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

enter image description here


Так получилось, что за достаточно долгую карьеру Windows и Embedded разработчика судьба свела меня по серьезному с Linux всего лишь несколько месяцев назад. Нужно было написать не очень сложную консольную программу. На тот момент все мои знания о Linux были взяты из курса по операционным системам в вузе (10 лет назад). Но Stackoverflow, google и опыт позволили достаточно быстро справиться с задачей. В итоге все было написано в Visual Studio Code под Ubuntu 14.04. Правда, приложение под Linux являлось только лишь небольшим клиентом для Windows сервера. Поэтому результат не очень удовлетворял меня, так как был оторван от основного проекта в Visual Studio. И только сейчас я смог перенести код в основной проект с помощью Visual C++ for Linux Development. В процессе мне пришлось решить несколько сопутствующих проблем. Об этом я рассажу под катом.

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

Заметка о способе отладки блокировок в ядре Linux

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

Всем привет! Данная заметка касается одного практического приёма, который я использовал при решении задачи определения места в ядре ОС Linux, где удерживается определённая спин-блокировка (спин-лок). Данная проблема возникла достаточно спонтанно и, учитывая сложность ядра, могла бы потребовать большое количество времени для решения. Если Вам это интересно, прошу читать далее...

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

Стандартный обмен 1С-Битрикс на BASH: инкрементальная выгрузка XML файлов каталога import и offers

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

Когда говорят о преимуществах 1С-Битрикс, в первых словах упоминают о лёгкой интеграции системы с 1С. Взаимодействие Битрикс с 1С осуществляется посредством передачи данных в формате CommerceML, который определяет формат XML файлов. В дополнение к этому Битрикс предлагает и стандарт обмена этими XML файлами между 1С и сайтом. Обмен состоит в отсылке из 1С обычных HTTP GET и POST запросов на сайт и получения от сайта простых ответов, определяющих результат выполнения команды.


Обычно декларируется, что в составе 1С существует некий "стандартный обмен с сайтом", который должен работать сразу после его включения. На практике, реализация обмена оказывается не такой тривиальной задачей, как это представляется вначале. Есть жалобы на то, что модуль обмена с сайтом 1С непомерно загружает систему и требует доработок под конкретные нужды. То есть, по факту, обмен вроде бы и есть, но чтобы заставить его работать так, как нужно, необходимо приложить усилия.


Есть ещё несколько причин, чтобы вклиниться в стандартный обмен:


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

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

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

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