Обновить
256K+

Linux *

Пишем под *nix

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

Запускаем Embedded Linux на Hard- и Soft-CPU Xilinx Zynq: проект программируемой логики

Уровень сложностиСложный
Время на прочтение20 мин
Охват и читатели18K

Привет, Хабр! Меня зовут Павел Панкратов, я ведущий инженер-программист в дивизионе искусственного интеллекта YADRO. Этим текстом я запускаю цикл статей — экскурс в особенности работы с SoC, комбинирующей в себе реализованные в «железе» аппаратные блоки (Hard IP’s) и программируемую логику (Soft IP’s). Основная задача, которая объединит все три статьи, — параллельный запуск встраиваемой операционной системы на двух различных по архитектуре процессорах, представленных в виде Hard и Soft IP-блоков.

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

Читать далее

Kubernetes на сковородке: готовим самые вкусные кластеры

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

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

Привет! Меня зовут Игорь Титов, я Product Lead системных инженеров в Garage Eight. В этой статье расскажу, что такое контейнеризация, как с ней помогает Kubernetes и почему важно уметь правильно его готовить.

Читать далее

Адаптируем фаззинг для поиска уязвимостей

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

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

Читать далее

Docker для разработки C#

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

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

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

Возможности Docker достаточно обширны, однако в данной статье хотелось бы остановиться на трех:

Читать далее

Телеграм бот на С++ сложно? Давайте развеем этот миф

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

Небольшая статья по настройке серверной части для телеграм бота, на базе языка программирования С++ и библиотек TgBot и sqlite3.

Продолжить чтение...

Программирование на C в Linux на примере создания командной оболочки: часть 2

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

Я решил недавно улучшить свой навык владения C, путем написания проектов. Самая первая мысль, которая пришла мне на ум — это командный интерпретатор, командная оболочка, shell проще говоря. А также я расскажу о системе сборки make, и о том, как правильно писать и документировать C-код.

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

Да-да, мы превратим наш велосипед в мопед! Я вынес из прошлой статьи итоги, и попытался решить все проблемы и замечания. Продолжаем погружение в пучины разработки под Linux!

Читать далее

Unix на работе. Часть вторая, программная

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

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

Из первых рук и на основе многолетней практики.

Читать далее

Подключаем монохромный LCD дисплей 12864 на контроллере ST7920 по SPI интерфейсу к ZYNQ-7010. Практическое руководство

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

О платформе

Опишу, как «поднять» SPI в Линуксе (Убунту), подключить экранчик 12 864 с контроллером ST7920 (бывают и другие варианты контроллеров) к ZYNQ-7010 и отобразить на нём текст, линию и прямоугольник, используя Питон.

Читать далее

Проблемы с Raspberry Pi 4 не дают выйти в бета-релиз Fedora 41. Но почему?

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

Fedora — один из самых известных дистрибутивов операционной системы GNU/Linux. Проект охватывает множество направлений, таких как мобильные устройства, облачные технологии и робототехника. Разработчики Fedora ежедневно решают задачи различной сложности: от управления IT‑инфраструктурой до программирования микроконтроллеров и создания роботов.

Несмотря на общий успех и популярность, почти каждый релиз Fedora не обходится без сложностей. Поддержка одноплатного компьютера Raspberry Pi 4 вновь стала источником проблем, что уже не впервые задерживает выход бета-версии.
Читать дальше →

Руководство по межпроцессному взаимодействию (IPC) в Linux — Часть 2

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

Представляю вашему вниманию вторую часть перевода статьи A guide to inter-process communication in Linux.

Первая часть перевода была посвящена общему введению в курс дела и механизму разделяемого хранилища (shared storage). В этой части будут рассмотрены механизмы каналов (именованных и неименованных) и очереди сообщений.

Приятного чтения!

Читать далее

Оптимизация Linux задерживается: ушел главный разработчик проекта Rust for Linux. Но почему?

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

Привет, Хабр! Это Даша Волкова из МТС Диджитал. Несколько дней назад стало известно, что Ведсон Алмейда Фильо (Wedson Almeida Filho), ключевой участник проекта Rust for Linux, решил уйти из команды. О своем решении он объявил неожиданно для многих представителей как самого проекта, так и Linux-сообщества. Теперь переход ОС на Rust замедлится. Что случилось?

Читать далее

Unix на работе. Часть первая:  Качая железо

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

Открываю серию статей про повседневное использование Linux и *BSD-систем в качестве основной ОС для работы. Начнем с общих принципов и выбора подходящего оборудования.

Читать далее

Программирование на C в Linux на примере создания своей командной оболочки

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

Привет, хабр! Язык программирования C — основополагающий, как я считаю. И его знать, нет, не обходимо, но довольно желательно. Большинство языков отсылают к C, и зная C (или C++) другой язык будет даваться намного легче.

Я решил недавно улучшить свой навык владения C, путем написания проектов. Самая первая мысль, которая пришла мне на ум — это командный интерпретатор, командная оболочка, shell проще говоря. А также я расскажу о системе сборки make, и о том, как правильно писать и документировать C-код.

В этом туториале я буду использовать компилятор CLANG, а не GCC, и расскажу его преимущества

Итак, для создания своего шелла на C для Linux вам понадобится простой советский копеечный...

Узнать

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

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

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

С ростом числа кибератак и угроз безопасности информационных систем автоматизация процесса анализа уязвимостей становится критически важной задачей.

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

Читать далее

Все меняется: новые выпуски Ubuntu будут базироваться на свежайшей версии ядра, даже нестабильной

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

Привет, Хабр! Это Даша Волкова и новости из мира ИТ.

Компания Canonical, которая разрабатывает дистрибутив Ubuntu, пообещала формировать новые выпуски своей ОС на базе свежей версии ядра. Даже в том случае, если она еще не стабильна. Разработчики уверяют, что приняли такое решение в интересах пользователей и партнеров. Подробности — под катом.

Читать далее

Python. Tkinter. В ожидании релиза 3.13

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

Работая нал проектом svgwidgets я активно использовал функционал tk busy, который появился в релизе Tcl/Tk 8.6.0. Мне стало интересно, а поддерживается ли этот функционал в Python-е, а точнее в Tkinter-е. Каково же было мое удивление узнать, что именно сейчас в Tkinter, который входит в состав Python версии 3.13, добавляется функционал tk busy, который давно включен в tcl/tk. Релиз Python 3.13 ожидается в октябре этого года. Мне показалось, что будет полезно рассказать о функционале tk busy, а точнее о новых методов для виджетах в Tkinter. Вот эти методы - tk_busy_hold(), tk_busy_configure(), tk_busy_cget(), tk_busy_forget() и tk_busy_current().

Командаy tk busy предоставляет простой способ блокировки виджета от действий пользователя.

Как работает методы блокировки tk_busy в Tkinter рассмотрим на примере. При этом будем использовать классические виджеты.
Но для начала пришлось собрать из исходных кодов Python-3.13.0rc1.tgz дистрибутив Python-а. Все это было мною проделано в Linux на Mageia release 9.
Итак, создадим некий графический интерфейс, в котором будет главное окно (mwin) размером 10 сантиметров на 6 сантиметров с виджетом панели (frame1), в которой будут размещены поле ввода данных (ent1) и кнопка (but1):

bash-5.2$ /usr/local/bin64/python3.13 Python 3.13.0rc1 (main, Aug 21 2024, 15:48:04) [GCC 12.3.0] on linux Type "help", "copyright", "credits" or "license" for more information.

Читать далее

Как я пришёл к пониманию основ создания Live-дистрибутивов Linux, решив починить свой старый SSD

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


Был у меня старенький SSD объёмом 240 Гбайт от Kingston, который внезапно перестал работать, вообще перестал распознаваться в системе. Попробовал я подключить SSD к другому компьютеру, попробовал использовать как внешний диск, ничего не дало результата. Поэтому я купил новый, а этот разобрал.


Внешних признаков, указывающих на то, что SSD сгорел, я не заметил, а интуиция говорила: «Проблема программная». Выбрасывать диск не хотелось, поэтому он остался пылиться до «лучших» времён. И вот недавно захотелось попробовать его починить. К своему удивлению, я достаточно быстро нашёл необходимую статью на Хабре, где рассказывалось, как можно оживить SSD на том же контроллере, что и мой, отдельную тему на форуме Ru-Board, а также статью с подробной инструкцией, по ней я и восстановил свой SSD. Но кроме восстановленного SSD я еще приобрёл и закрепил знания по Linux, которые изложил в этой статье. Всем, кому интересно, добро пожаловать под кат.

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

Из истории технологий: откуда взялся Unix

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

Сегодня многие полагают, что «Unix» и «Linux» — это одно и то же. Но по состоянию на 2024 год с большинством дистрибутивов, которые мы причисляем к «Unix» и «Linux» ситуация почти так и обстоит.

Но у Unix долгая история. Если у вас в распоряжении только известные сейчас системы Linux, то сложно размышлять о том «какова была ситуация на заре Unix», поскольку так много с тех пор изменилось.

Читать далее

Как оптимизировать размер контейнерного образа в Docker

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

Введение


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

Я для сравнения покажу различные варианты Dockerfile, а в конце этой статьи приведу таблицу, в которой будет показано, образы какого размера получаются из каждого файла. Так вам будет проще оценить, каково влияние от каждого варианта оптимизации.
Читать дальше →

Made in China: вышел новый дистрибутив китайского Linux — Deepin 23

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

Привет, Хабр! Это Виктор Сергеев из МТС Диджитал. Сегодня поговорим о Deepin 23 — дистрибутиве Linux, 15 августа был опубликован релиз. Его особенность — фокус на развитии графического окружения Deepin Desktop, который называется Deepin 2Environment (DDE). Еще ОС выделяется наличием 40 собственных пользовательских приложений, включая музыкальный проигрыватель DMusic, видеоплеер DMovie, систему обмена сообщениями DTalk, инсталлятор и центр установки программ Deepin Software Center. Подробности о новинке и ее возможностях — под катом.

Читать далее