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

*nix *

Хаб про UNIX-подобные операционные системы

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

Определение общей длительности медиафайлов

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров908

Привет, Хабр! Недавно я сел смотреть «марафон лекций», а через пару часов понял: я понятия не имею, сколько ещё впереди. Час? Десять? А может, это вообще сериал длиной в жизнь? Вот так родился mdur — утилита, которая считает, сколько часов, минут и секунд тебе предстоит потратить на медиафайлов (видео и аудио) в любой папке. Без преувеличений, без подсчетов вручную...

Читать далее

Новости

Как настроить NeoVim

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров3K

Сегодня я поделюсь своим опытом настройки NeoVim для разработки. Если вы уже немного знакомы с этим редактором и хотите сделать свою работу в нём эффективнее — эта статья для вас.

Читать далее

Чеклист по приложениям реального времени в Linux

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

Может ли ядро Linux при всей своей гибкости обеспечивать гарантированное время отклика при работе с приложениями?

Ядро Linux является универсальным и приспособлено к работе как с крошечными встраиваемыми устройствами, так и с титаническими серверами… а также со всем спектром машин между этими крайностями! Но может ли такое поразительно адаптивное ядро обеспечить гарантированную скорость отклика для приложения, работающего на всех этих платформах? Если в вашем приложении допустимая задержка при отклике укладывается в 200 микросекунд — то уверенно отвечаем на этот вопрос «да»! (Кстати, для Linux такая планка совсем не высока, но, чтобы её держать, потребуется тщательно подбирать аппаратное обеспечение и, возможно, обратиться за консультацией к специалисту по системам Linux, работающим в режиме реального времени).

Итак, почему же в приложении, работающем под Linux, иногда могут возникать задержки свыше 200 микросекунд? Универсальность ядра Linux требует сбалансировать пропускную способность, время отклика и честность распределения процессорной мощности, чтобы соответствовать требованиям такой универсальности. Если по одному из этих аспектов предъявляются жёсткие требования, то необходимо тонко настраивать как само ядро, так и поведение приложения. В этом посте рассмотрим 10 основных пунктов, которые необходимо учитывать при разработке системы Linux, к которой предъявляются строгие требования по работе в режиме реального времени. По каждому пункту также упомяну, в каком аспекте легко засыпаться разработчику-новичку, только приступающему к программированию систем реального времени под Linux.

Читать далее

Необычный гиковский девайс: как китайский стартап сделал планшет с тремя ОС одновременно

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров13K

Пожалуй, все мы с вами любим диковинные гаджеты из 2000-х годов, когда производители всё ещё пытались удивить пользователя некой изюминкой. Таким необычным устройством был и предок современных планшетов — MID SmartQ V7, где за цену в 150$, производитель предлагал неплохое железо, приятный дисплей и целых три предустановленных операционных системы!

Что было «под капотом» у первых планшетов и что умел «дедушка» современного iPad с Android, Ubuntu и Windows CE «на борту» — читайте в сегодняшней подробной статье!

Читать далее

Что дал переход на zsh мне, как разработчику?

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров21K

Когда я был еще джуном, старшие разработчики настоятельно советовали мне перейти на zsh. Я помню, что я так и не получил никакой аргументации, чем zsh лучше привычного bash, и какую конкретно пользу я получу от перехода.
Что ж, в этой статье я хочу ответить на эти вопросы тем, кто еще только задается этим вопросом, с небольшим уклоном к PHP разработке

Zsh это командная оболочка, то есть программа, которая получает от пользователя команду в текстовом виде и выполняет соответствующие исполняемые файлы, найденные по путям, указанным в переменной окружения PATH.
Zsh является дефолтной оболочкой для macOS, на linux дефолт - bash. Zsh лучше, чем bash в основном благодаря своей очень обширной системе плагинов, модулей, различных тем и т. д.

Например, установив вот такой плагин.

Читать далее

Я купил детский ARM-ноутбук за 500 рублей, чтобы поставить на него Linux

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров66K

Сегодня компьютером на x86-совместимом процессоре едва ли можно кого-то удивить с гиковской точки зрения. Другое дело — обучающий ноутбук для детей, который работает на интересном и необычном ARM-процессоре от небезызвестной компании VIA. И хотя для запуска произвольных программ его необязательно было хакать — всем гикам известно, надо было ставить Linux!

К чему приводит давняя детская мечта об обучающем ноутбуке, что скрывается внутри устройства за 500 рублей и как на всё это накатить Linux с дуалбутом в родную систему — читайте в сегодняшней подробной статье!

Читать далее

Шифрование скриптов

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров10K

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

Компилируемые языки хоть как-то защищаются, соответственно, с помощью компиляции, хотя и это не панацея. А вот что делать со скриптами, которые могут быть написаны на bash или pyton?

Как вариант решения такой проблемы, может быть, шифрование скриптов с аппаратной привязкой дешифратора к платформе, на которой этот скрипт исполняется. Звучит красиво, но надёжно ли? Насколько будет эффективен и взломостойкий этот метод?

У меня в одном проекте была проба пере такого решения. Заодно проверил, и вскрыл это шифрование.

Читать далее

BGGP3: Хороший тамада и конкурсы интересные

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров1K

Продолжаю рассказывать широкой аудитории о «гусарских забавах» компьютерной элиты — третий по счету Binary Golf Grand Prix.

Читать далее

Про настройку уведомлений о создании бэкапов в Telegram

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров670

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

Что нужно для этого предпринять?

В первую очередь займемся ботом с минимальными возможностями. Для этого находим специальный бот BotFather, через который и будет происходить все управление, и нажимаем на кнопку “start” и видим следующее:

I can help you create and manage Telegram bots. If you're new to the Bot API, please see the manual.

You can control me by sending these commands:

/newbot - create a new bot

/mybots - edit your bots

Edit Bots

/setname - change a bot's name

/setdescription - change bot description

/setabouttext - change bot about info

/setuserpic - change bot profile photo

/setcommands - change the list of commands

/deletebot - delete a bot

Bot Settings

/token - generate authorization token

/revoke - revoke bot access token

/setinline - toggle inline mode

/setinlinegeo - toggle inline location requests

/setinlinefeedback - change inline feedback settings

/setjoingroups - can your bot be added to groups?

/setprivacy - toggle privacy mode in groups

Web Apps

/myapps - edit your web apps

/newapp - create a new web app

/listapps - get a list of your web apps

/editapp - edit a web app

/deleteapp - delete an existing web app

Games

/mygames - edit your games

/newgame - create a new game

/listgames - get a list of your games

/editgame - edit a game

/deletegame - delete an existing game

Для создания бота выбираем опцию /newbot - create a new bot, указываем имя и username, который должен заканчиваться на bot. 

Читать далее

Как мы анализируем сетевые аномалии с помощью Suricata и машинного обучения

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров1.7K

Suricata — это мощный движок IDS/IPS и сетевого мониторинга с открытым исходным кодом. Он может анализировать сетевой трафик в режиме реального времени и генерирует структурированные события в формате eve.json.

Однако при работе с большим потоком событий становится ясно: просто фиксировать отдельные аномалии недостаточно.

Аналитикам нужно видеть взаимосвязи, агрегированные отклонения и комплексное поведение сети.

Читать далее

Сбор событий Linux: есть цель – ищем путь

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров6.6K

Приветствую всех, кто заглянул на огонек! Меня зовут Роман, и я занимаюсь исследованием безопасности Linux (и всякого другого, связанного с ним) в экспертном центре безопасности в Positive Technologies.

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

Читать далее

Docker + Neovim: поднимаем конфиг на любом сервере и не засоряем систему

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров8.1K

Иногда нужно запустить nvim на старом сервере. Но тут сразу куча проблем: одно не поставить, другое не собрать, а если что-то обновить — можно развалить весь проект.

Этот подход удобен и для новых систем. Docker позволяет поднять nvim с последним Python, nvim-treesitter и своим конфигом прямо в контейнере, не засоряя основную ОС.

При этом можно редактировать локальные файлы на сервере так, как будто nvim установлен на самой системе. В статье показано, как всё это запустить на CentOS 7.
А если заработало там — значит, на любом современном Linux тем более проблем не будет.

Читать далее

Задержки и системная архитектура

Уровень сложностиПростой
Время на прочтение17 мин
Количество просмотров2.5K

Много JavaScript‑фреймворков назад, в 2009 году, Джеффри Дин, будучи инженером в Google, представил знаменитые «числа, которые должен знать каждый программист».

Читать далее

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

Используем регулярный файл вместо блочного устройства для отладки

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров962

Иногда удобно при отладке файловых систем в пространстве пользователя (fuse) создавать файловые системы в регулярном файле и монтировать их как обычные файловые системы, расположенные на блочных устройствах. Также данный подход бывает полезным и при редактирования образов разделов диска, полученных с помощью утилиты dd.

Читать далее

Как установить OS X на QEMU и не схватить Kernel PANIC

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров2.8K

Запуск OS X на QEMU — задача не из простых.

Всё дело в том, что Apple использует собственную прошивку (Apple EFI) и дополнительные драйвера, без которых система работать не хочет.

Однако этот гайд проведет вас через тернии ядра прямо к звездам OS X!

Читать далее

Zerotrust по-пацански #3. Защита конечных устройств

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

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

Получается, для того, чтобы злоумышленнику получить доступ к данным админки, проще всего взломать ноутбук сотрудника. Наша задача наоборот - это предотвратить.

Читать далее

Жизнь в консоли или как я полюбил боль

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров8.9K

Много лет был адептом GUI и вот уже ворочу нос от этой смердятины. Всё постоянно давит, всё не нравится. Если открываю VS Code или QtCreator - 10 минут вспоминаю как этом пользоваться. Хочу поделиться с тобой своей историей...

Все на дно!

Образцовый джун

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров5.7K

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

Читать далее

Внедрение крупного open-source проекта only office server с портированием на astra linux

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

Я работаю в одной региональной государственной организации, в которой потребовалось внедрить онлайн систему управления документами, умеющую работать с документами формата docx и xlsx.

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

Был сделан запрос цены в АО «Р7», но когда руководство увидело предложение от правообладателя Р7, то сразу отклонило это предложение, ведь оказалось, что цена на 2 порядка выше, чем себе это представлял руководитель. Я могу понять правообладателя, ведь он потратил деньги на сертификацию, программистов и т. д., но нашему руководству этого не понять у них бюджет строго ограничен.

Итак задача изменена на внедрить онлайн систему управления документами но настолько дешево насколько это возможно, а лучше бесплатно но удовлетворяющую требованиям безопасности. Из альтернатив остается только применение open source решения only office server вкупе с выполнением рекомендаций по запуску не доверенного ПО в защищенных средах.

Задача усложняется тем, что базовые сервера работают на ОС AStra linux 1.8. Казалось бы в чем сложность? бери готовые docker образы, разворачивай и будет тебе счастье, но не все так просто – согласно одниму из требований по безопасности docker образ должен быть на базе ОС astra linux.

Итак для безопасности применяем 2 системы: система контейнеризации docker, работающая на основе встроенных в ядро linux механизмов изоляции и МКЦ в ОС astra linux. С docker все стандартно, а вот с запуском docker на пониженном уровне целостности пришлось повозиться. Включаем запуск командой sudo astra-docker-isolation enable, запускаем любой образ и получаем ошибку запуска docker. Путем анализа логов удалось обнаружить, что не удается пробросить порт, так как docker не имеет на это прав. После долгих поисков найдено решение написать политику разрешения доступа к firewalld для процесса docker.

Читать далее

Что PID твой мне?

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров1.8K

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

Читать далее
1
23 ...

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