Обновить
256K+

Linux *

Пишем под *nix

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

Как построить WaitGroup на основе 32-разрядного целого числа

Время на прочтение7 мин
Охват и читатели3.2K
image

В Go есть приятная утилита для синхронизации, именуемая WaitGroup, которую могут ожидать одна или несколько горутин. Это требуется для конкурентного завершения задач. В других языках обычно действует следующее соглашение по завершению задач: нужно объединять потоки, выполняющие работу. В Go горутины не имеют ни значений, ни дескрипторов, поэтому WaitGroup применяется вместо объединений. Собирание WaitGroup на основе типичных портируемых примитивов – путаное дело, в которое вовлечены конструкторы и деструкторы; также в процессе этой работы приходится управлять временами жизни. Однако, как минимум, под Linux и под Windows, можно построить WaitGroup из целого числа (инициализируемого в значении), во многом как при создании 32-разрядной очереди и 32-разрядного барьера.
Читать дальше →

Управляем модулем ядра Linux

Время на прочтение10 мин
Охват и читатели19K

Почему пользовательское приложение работает некорректно? Существует не так много способов, которые бы помогали выявить проблему. В большинстве случаев для поддержания высокой доступности требуется стороннее программное обеспечение. В статье рассказываем, как настроить мониторинг пользовательского приложения через модуль ядра Linux, а также разбираем, как установить связь с сокетом.

Читать далее

Домашняя лаборатория

Время на прочтение7 мин
Охват и читатели15K

Угадай данную статью написал ChatGPT или нет?

Хотите потестировать приложение, или опробовать в работе инструмент? В этой статье опишу то, как организовал тестовый стенд на Linux. Стенд поддерживает работу с доменами, умеет генерировать TLS сертификаты, легко масштабируется, окружение строится по принципе IaaC, не требует много ресурсов, легко разворачивается скриптами или SCM, есть UI, не зависит от внешних сервисов.

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

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

Читать далее

5 советов, которые помогут при переносе кода на платформы, отличные от х86

Время на прочтение8 мин
Охват и читатели4.2K

Легко написать код, который компилируется, компонуется и нормально работает на x86, но не работает на других процессорах, например Power. Обычно причина в том, что такой код изначально не был предназначен для платформ, отличных от x86. В статье разбираем отличия x86 и Power, которые могут нарушить сборку или снизить производительность. Делимся инструментами, которые помогут выявить и устранить проблемы.

Читать далее

Volvo SCT / part 1 — как проникнуть в чужое ядро

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

Я являюсь обладателем одной интересной железки - SCT unit touch. Это медиа система с Android, которую ставили в виде дополнительного аксессуара в автомобили Volvo. Проблема в том, что ее оставили без поддержки, зато на ней можно легко получить root, а значит остальное можно допилить.

Читать далее

Видеозаписи докладов CyberCamp. Разбираем вопросы безопасности Linux

Время на прочтение4 мин
Охват и читатели5.3K

Привет, Хабр! В конце декабря мы командой CyberCamp провели митап, посвященный безопасности Linux. Прошлись по всей ОС — от ядра до логов. Плюсы в виде открытого кода, надежности, быстродействия и, казалось бы, повышенный уровень защищенности от киберугроз увеличивает пул активных пользователей. Но среди этих качеств нет неуязвимости. На митапе были разобраны вопросы, какие угрозы актуальны для Linux и как от них защититься.

Под катом мы собрали полный плейлист выступлений:

  Безопасность ядра Linux: в теории и на практике / Александр Попов, Positive Technologies

 Повышение привилегий на Linux / Владимир Ротанов, «Инфосистемы Джет»

 Анализ взлома общедоступных экземпляров баз данных / Александр Матвиенко, «Инфосистемы Джет»

 Особенности вредоносного ПО под Linux-системы / Ярослав Шмелёв, «Лаборатория Касперского»

 Анализ логов в Unix-системах / Артём Крикунов, «Инфосистемы Джет»

Харденинг Linux / Антон Велижанинов, «Инфосистемы Джет»

Читать далее

Автоматизация управления с помощью Ansible

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели22K

Ansible помогает автоматизировать настройку серверов и инфраструктуры без лишней ручной работы. В статье разберём базовую установку, подключение управляемых узлов, SSH‑аутентификацию и первые плейбуки на практических примерах.

Читать далее

Пишем драйвер ядра Linux для неизвестного USB-устройства

Время на прочтение15 мин
Охват и читатели22K
image

В этой статье объяснен весь процесс, на выходе которого получается рабочий драйвер ядра Linux для недокументированного USB-устройства. Выполнив обратную разработку коммуникационного протокола USB, я покажу архитектуру драйвера ядра для USB. Кроме драйвера ядра в этой статье будет рассказано о простом инструменте для пользовательского пространства; при помощи этого инструмента можно управлять таким устройством. Конечно, придется углубиться в подробности, касающиеся конкретного прибора, но не сомневайтесь – описанный процесс с тем же успехом применим и к другим USB-устройствам.
Читать дальше →

Админка для Private Docker Registry (Registry Admin)

Время на прочтение10 мин
Охват и читатели31K

Концепция контейнеризации на базе Docker, и ему подобных технологий, для многих разработчиков стала незаменимым инструментом доставки своих продуктов в виде образов. В большинстве случаев для распространения используются бесплатные реестры такие как Docker Hub или GitHub Container Registry. Но иногда требуется развернуть свой собственный registry и управлять доступом к нему. Вариантов для развертывания своего собственного container registry предостаточно, но я решил сделать свой вариант админки для управления Private Docker Registry.

Читать далее

Моя попытка сделать утилиту для очистки Linux

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

Всем привет! Я начинающий разработчик на языке Go. До этого у меня был, так сказать, небольшой опыт, но в виде хобби. Во время изучения я также осваивал Linux, сейчас уже пользуюсь им как основной ОС.

Мой ноутбук довольно слабый, на борту всего 4ГБ ОЗУ, а на Windows существует программа, которая автоматически очищала оперативную память. Поискав в интернете, я понял, что нету такой утилиты, которая быстро и легко могла очистить оперативную память от мусора. Тогда я принялся попробовать написать ее самостоятельно.

В этой статье я расскажу, что я узнал об оперативной памяти и какими способами ее можно очистить.

Читать далее

Два модема

Время на прочтение6 мин
Охват и читатели15K

В процессе разработки прошивок для маршрутизаторов на линуксах, время от времени попадаются "интересные" баги. Такие от которых через три дня хочется рвать волосы в самых неожиданных местах. Об одной из таких проблем и пойдёт дальше речь

Читать далее

Хозяйке на заметку: разбираемся с конфигурационными файлами Linux

Время на прочтение11 мин
Охват и читатели41K

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

Читать далее

JEP-400 или UTF-8 РєРѕРґРёСЂРѕРІРєР° РїРѕ умолчанию

Время на прочтение9 мин
Охват и читатели14K

Не прошло и пяти лет, как в Java 18 докатилось небольшое, но очень ожидаемое и обсуждаемое изменение: теперь во всех стандартных API используется UTF-8 кодировка по умолчанию. Это изменение, которое сделает выражение «Write once, run anywhere» действительно правдой, так как теперь поведение приложения будет еще меньше зависеть от системы, где оно запущено. 

На конференции Joker я рассказал, как развивались события в работе над JEP-400 и как сделать так, чтобы ничего не поломалось после перехода на новые версии JDK. А теперь делюсь с Хабром и видеозаписью доклада, и текстовой версией. Как говорится, помимо двух самых сложных задач в программировании – нейминга и инвалидация кэша, есть ещё две: таймзоны и кодировки. Вот о кодировках и поговорим. Как читается название доклада/поста — разберёмся в конце.

Читать далее

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

Настройка badges в репозиториях Gitlab, с помощью Gitlab API, в CI/CD

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели14K

Простая визуализация версий установленных релизов, результатов сканирования, версии интерпретатора и прочего с помощью Gitlab Badges. Создание Gitlab Badges с помощью Gitlab API и Gitlab CI.

Читать далее

Раскрываем секреты загрузочных ISO-образов

Время на прочтение20 мин
Охват и читатели163K


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

Колдовской NeoVIM. Часть четвертая. «Полёты во сне и наяву»

Время на прочтение4 мин
Охват и читатели8.5K

Навигация - визитная карточка Nvim. Мы можем молниеносно перемещаться по коду-тексту, не ограниченные скоростью мыши или человеческими возможностями. Говорят, что эксперименты Либета доказали, что человек сначала перемещается, а потом думает… В колдовском редакторе все будет именно так.

Давайте полетаем

Как написать 2D игру на C++ и чистом STL для терминала в Linux

Время на прочтение8 мин
Охват и читатели24K

Привет хабр, я PHP разработчик с опытом работы в продакшне более 8 лет. После долгого и упорного труда мне стало скучно пилить микросервисы и бэкенды в хайлоде, я решил постичь магию разработки игр. Выбрал курс по Unreal Engine 5 и C++, так как там все структурировано, понятно, и в случае необходимости есть кому задать вопрос. На первой лекции по основам С++ преподаватель сразу предложил челлендж - написать 2D игру без использования игрового движка

Читать далее

Обзор отечественных компаний-производителей операционных систем

Время на прочтение4 мин
Охват и читатели16K

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

Читать далее

Эволюция электронного наряда-допуска или как исключить убытки, избавившись от бумаги, и зачем для этого лицензия ФСБ

Время на прочтение6 мин
Охват и читатели3.4K

Только ленивый не слышал сегодня о необходимости цифровой трансформации и автоматизации. Инфополе перенасыщено абстрактными фразами “о важности” и “нужности”, передовых подходах на промышленных предприятиях и в бизнесе. При этом сами системы внедряются медленно. Эти задержки происходят от того, что принимающие решения в госсекторе и бизнесе не всегда осознают пользу от таких внедрений.

Читать далее

Эксперименты и увлекательные манипуляции с дисковым кэшем Linux

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

Linux охотно занимает свободную оперативную память под дисковый кэш, из‑за чего привычный взгляд на free нередко создаёт ложное ощущение дефицита ресурсов.

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

Читать далее