Как стать автором
Обновить
10.95

*nix *

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

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

Недавно я задумался, а как создать systemd-timer для текущего пользователя без sudo прав, ведь c cron в этом вопросе проблем не было? Оказывается можно создавать локальные для пользователя systemd таймеры и сервисы и никакой root или sudo не нужны для создания файлов в /etc/systemd/system/ ! И как оказалось это касается не только таймеров и сервисов но и вообще всех сущьностей.

И так у меня есть задача конвертировать записи экрана сделанные с помощью Spectacle из vp9/webm в h264/mp4 и h265/mp4, так как он не умеет ещё в аппаратное энкодирование с GPU , а собственные записи в h264/mp4 крайне плохого кчества о чём был даже баг.

Создаём нужный подкаталог и сервисный файл:

mkdir -p ~/.config/systemd/user 
nano ~/.config/systemd/user/screencast-transcoder.service

Сам screencast-transcoder.service:

[Unit]
Description=Screencast Transcoder Script
After=graphical-session.target

[Service]
Type=simple
ExecStart=/home/user/.local/bin/sc_formater_nvenc.sh
Restart=on-failure
Environment=DEBUG=false

[Install]
WantedBy=default.target

Обновляем список и стартуем сервис:

systemctl --user daemon-reexec
systemctl --user daemon-reload
systemctl --user enable --now screencast-transcoder.service
systemctl --user status screencast-transcoder.service

Если надо, то смотрим логи:

journalctl --user -o short -n 10 -f -u screencast-transcoder.service

---

Если вдруг вам интересно, то скрипт выглядит так:

#!/bin/bash
set -euo pipefail
DEBUG=${DEBUG:-false}
if ${DEBUG}; then
    set -x
fi
DN="${HOME}/Videos/Screencasts"
while true; do
    if FN=$(inotifywait -e close_write,moved_to --format %f "${DN}"); then
        if [[ "${FN##*.}" == "webm" ]]; then
            INPUT="${DN}/${FN}"
            BASENAME="${FN%.webm}"

            # H.264
            ffmpeg \
                -hide_banner \
                -hwaccel cuda \
                -i "${INPUT}" \
                -c:v h264_nvenc \
                -cq 23 \
                -preset p7 \
                -f mp4 "${DN}/${BASENAME}.h264.mp4" &

            # HEVC / H.265
            ffmpeg \
                -hide_banner \
                -hwaccel cuda \
                -i "${INPUT}" \
                -c:v hevc_nvenc \
                -cq 23 \
                -preset p7 \
                -f mp4 "${DN}/${BASENAME}.hevc.mp4" &
        fi
    fi
done
Теги:
Всего голосов 4: ↑3 и ↓1+2
Комментарии6

Научите, как пользоваться Хабром

К примеру, открыл я сайт. Увидел статью (оказалось пост)

Статья и Пост
Статья и Пост

Решил поставить комментарий под постом. Просит залогиниться. Жму залогиниться...

И всё, нет поста. Потерялся видимо в моих "рекомендациях". Необоснованные трудности для пользователя на пустом месте.

При этом пост не имеет простой ссылки открываемой кликом по заголовку или тип того

Решил вопрос, нажав - поделиться, скопировал. Залогинился. Вставил ссылку. Перешёл....

Мне кажется не такой должен быть пользовательский путь

Теги:
Всего голосов 8: ↑7 и ↓1+9
Комментарии3

Личный опыт использования Ubuntu как основной рабочей системы

В последнее время много постов про Linux в контексте использования в качестве рабочей системы, и так получилось, что мне не удалось установить Windows на свой рабочий компьютер, и я вспомнил про Ubuntu, на которой работал лет 15 назад.

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

Итак, Ubuntu 24.04.2 LTS установилась без вопросов на отдельный SSD. После установки я начал смотреть, какой софт для работы есть, а для какого софта нужен будет Wine или виртуальная машина с Windows. С удивлением обнаружил, что такого очень мало.

Железо и периферия работает исправно, включая Bluetooth-наушники с микрофоном.

Программы которые я использую:

  • Outlook Electron Client

  • Microsoft Teams (тоже Electron на базе Chromium)

  • Dbeaver + Azure Data Studio - для работы с базами данных

  • Postman + Bruno - всё что связанно с тестированием API

  • Libre Office - работает сносно

  • VS Code

  • Основной браузер Opera

  • Допольнительные браузеры (Firefox, Vivaldi, Brave, Chromium)

  • 1Password - хранилище паролей (рабочее)

  • Shutter для снимков экрана. Задача стояла в том, чтобы можно было сделать снимок области экрана и что-то нарисовать поверх, не включая отдельный редактор изображений.

  • Slack

  • Zoom

  • AnyDesk

  • draw.io для диаграм - работает плохо, но работает

  • battle.net который работает через Lutris, нормально запускает игры.

То что работает в виртульной машине на Windows

  • разные VPN - Forti/Checkpoint/Global Protect - даже если есть клиент под линукс, у клиентов в политиках безопасности стоит только подключения с Windows

  • Visual Studio + SQL Management Studio - в некоторых проектах используем SSAS (SQL Server Analysis Services) - под линукс не нашел как работать с ним

Не решенные проблемы

  • Переключение языков по Alt + Shift вызывает меню апликаций, закрываеться ещё одним нажатием на Alt.

  • Text Editor при перетаскивании с экрана на экран «плющит», буквально, потом через какое-то время отпускает

  • Иногда отваливаеться второй жесткий диск, лечиться перемонтированием

В общем я доволен, работает стабильно и шустро.

Конфигурация компьютера:

HP Z640 Workstation

  • Процессор - Intel® Xeon® E5-1630 v4 × 8

  • Память - 128 Gb

  • Графическая карта - NVIDIA GeForce GTX 760

  • Диски - система стоит на Samsung SSD 490 GB, дополнительный диск TOSHIBA 3 TB HDD

  • 3 экрана - 32" (FHD) + 27" (FHD) + 22" (2K)

  • tp-link AX3000 - WiFi + Bluetooth

  • Мышь - Logitech Lift Vertical Ergonomic

  • Клавиатура - Das Keyboard 3 Professional

  • Камера

  • Наушники с микрофоном - Logi Zone Vibe 100

Теги:
Всего голосов 5: ↑5 и ↓0+6
Комментарии5

Обновление моего текстового редактора на java

обновлённая версия редактора
обновлённая версия редактора
  • подсветка синтаксиса java пока в процессе(подсветка простая пока только на С++)

  • добавлена панелька для ввода поиска - её можно скрыть

  • добавлен счетчик символов текста в редакторе

  • все панели участницы можно скрыть, менять размер

  • быстрое переключение между консолью и пространством с текстом

  • выбран путь емуляции исполнения процесса это значит * - звёздочку я реализовал сам )

  • табы как пробелы - пока предустановлен размер 2 пробела на 1 таб

  • добавлены хоткеи, покачто их нельзя переназначить

  • покраска ошибок в красный цвет

    радует что редактором уже можно пользоваться, мне самому как криейтеру этого текстового редактора нравится )

    добавлю режим PLAIN text`a, подсветку синтаксиса java, калькулятор простенький, возможно добавлю проигрыватель музыки аля как опция

Теги:
Всего голосов 3: ↑2 и ↓1+1
Комментарии7

Часто в разных скриптах, обрабатывающих серверные TLS-сертификаты, - скажем, для мониторинга, - в качестве источника "целевого" имени при выборе сертификата используется содержание Subject/CN (commonName). Предполагается, что в Subject/CN должно быть доменное имя. Вот типичный пример:

$ openssl x509 -in disruptive.pem -subject -noout -nameopt multiline | awk -F' = ' '/commonName/ {print $2}'
disrupted.zone

Однако, если речь про сертификаты для TLS в современном вебе и про имена, то полагаться тут на Subject нельзя. Нужно использовать другой фрагмент сертификата, а именно - расширение SAN (Subject Alternative Name).

Для извлечения расширения SAN при помощи OpenSSL x509 нужно использовать опцию -ext subjectAltName. Выдача состоит из списка, где каждому значимому элементу соотвествует префикс, обозначающий тип. DNS-имена OpenSSL выводит с префиксом "DNS" (кто бы мог подумать!). Пример:

$ openssl x509 -in google-com.cert.pem -noout -ext subjectAltName
X509v3 Subject Alternative Name: 
    DNS:*.google.com, DNS:*.appengine.google.com
[...]

Кроме "DNS" могут встретиться другие префиксы, обозначающие IP-адреса и т.д. Однако для обработки имён - нужны имена, то есть "DNS". Скрипт, конечно, несколько усложнится. Пример:

$ openssl x509 -in google-com.cert.pem -noout -ext subjectAltName \
> | awk 'NR>1{split($0,A,",");for(k in A){split(A[k],B,":"); if(B[1]~/DNS/){print B[2]}}}' \
> | wc -l
135

Причина использования SAN в том, что имя из поля Subject/CN оконечного (серверного) сертификата браузеры давно не используют в качестве идентификатора при валидации. А чтобы валидация сертификата для веб-узла прошла успешно (в браузере), необходимо наличие подходящего имени в SAN. Более того, современные требования для УЦ по выпуску TLS-сертификатов ("документы CA/B-форума") прямо не рекомендуют использование поля commonName в Subject оконечных сертификатов для веб-узлов. Это значит, что доменного имени в Subject может просто не оказаться, но сертификат (при прочих равных) будет валидным для браузера.

Теги:
Всего голосов 3: ↑3 и ↓0+4
Комментарии0

Праздничный unixporn: python vim ide в контейнере

В разработке на python, особенно в DS/ML проектах, мы все сталкиваемся со сложной схемой зависимостей на специфичной аппаратной платформе. Зачастую, вести разработку удобно в том окружении, в котором в последствии запускается приложение.

Если вы вдруг vim user, то можно просто доставить редактор в контейнер с окружением и разрабатывать прямо там. Такая схема достаточно лекговесна, позволяет относительно просто держать актуальными завистимости при разработке, переиспользовать существующие сборочные конвейеры с небольшим наборов слоёв для самого редактора. Так же это может быть удобно, если вам нужно работать где то на удалённом кластере по ssh.

У меня был некоторый шаблон Dockerfile с добавкой vim с плагинами который кочует из проекта в проект и я решил поделиться с вами этой наработкой.

С Новым годом!

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Обновление 2024.11.05 сборки DogLinux для тестирования, обслуживания ПК, ноутбуков

Основной состав ПО: FurMark2, GPUTest, Unigine Heaven, CPU-X, GSmartControl, GParted, Partimage, Partclone, TestDisk, ddrescue, WHDD, DMDE.

Linux kernel 5.10-amd64 / 6.10-amd64 / 6.1-i686
nvidia-driver 550.120 / 390.157 / 340.108
mesa 24.2.2-amd64 / 22.3.6-i686

В initrd устранены ошибки и добавлены новые возможности (эти изменения включены в сборочные скрипты основного проекта DogLinux):

  • При запуске можно указать modprobe.blacklist=ahci,nvme и запретить загрузку модулей ядра что иногда требуется при работе с неисправными HDD и SSD. После запуска можно подгрузить необходимые модули ядра вручную.

  • При сетевой PXE загрузке можно переопределить nfs путь по умолчанию /srv/pxe/ с помощью параметра nfspath=

  • Исправлен порядок загрузки модулей ядра broadcom и tg3. Ранее адаптер Broadcom Netlink BCM57780 Ethernet был не работоспособен при загрузке.

  • Уменьшен размер путем исключения из состава initrd не используемых для начальной загрузки модулей.

  • Обеспечена выгрузка не задействованных модулей ATA контроллеров ata_* sata_* pata_*

  • Обновлены пакеты прошивок firmware-nonfree 20240909

  • Добавлены firmware-cirrus (git20241031) для звукового кодека и усилителя Cirrus Logic CS42L43 и CS35L56 которые используются в некоторых ноутбуках Asus, Dell, HP, Lenovo производства 2022г.

  • Обновлены Chromium 130, FurMark 2.4.1.0

  • Исправлен скрипт ddrescue-loop (не работал с SATA устройствами при отсутствии /dev/disk/by-path/)

Теги:
Всего голосов 2: ↑2 и ↓0+3
Комментарии0

Привет, Хабр!

Довольно часто на разных ресурсах попадаются посты в духе «Linux глазами пользователя Windows». Где обычно описывается, как же не привычно всё выглядит, насколько это сложный и травмирующий опыт для пользователя. О чувстве неполноценности нового опыта. Но что если мы посмотрим на этот процесс с обратной стороны.

Сам я перешёл на Linux ещё во времена, когда актуальной была Windows XP, и с тех пор не касался в домашнем использовании продукции Microsoft. И вот у меня в руках оказался ноутбук, на который необходимо заново поставить и настроить Windows 10.

Первая сложность, с которой я столкнулся,- это собственно создание загрузочной флешки. Когда мы создаём загрузочную флешку для установки дистрибутива Linux, то просто записываем дисковый образ, и готово. С Windows так не получится: всё начинается с того, что потребуется использовать специальное ПО, к примеру, WoeUSB.

После того как успешно установили ОС и компьютер включился мы попадаем в мир чистого GUI. Никаких менеджеров пакетов, только файлы с расширением «exe» и магазин приложений. Нельзя просто добавить репозиторий с нужной программой и потом установить её одной командой.

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

Теги:
Всего голосов 12: ↑9 и ↓3+11
Комментарии16

Ускорение Youtube в Линукс. Скрипт для автоматизированной установки полезного ПО из исходников.

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

По отзывам для реального решения проблемы медленного Ютуба в РФ на Линуксах весьма неплохо себя показал специально настроенный под эту задачу "zapret", но по тем же отзывам у рядового пользователя тонкости настроек этого ПО вызывают трудности.

С учетом изложенного, внося свой посильный вклад, написал, для ускорения Ютуба, скрипты на bash: скрип-установщик, который автоматически качает исходники с GitHub, ставит зависимости, компилирует, устанавливает и настраивает zapret на настольном ПК с Ubuntu-based и Red-Hat-based Линуксами, скрипт обновления zapret(не изменящий его настройки), и скрипт деинсталятор.

Обновление от 22.09.2024 и zapret-a и его настроек (запускать скрип-установщик) Скрипты для Ubuntu-based ОС, скрипты для Red-Hat-based ОС. Проверенно на Linux Mint 20.1 "Ulyssa" и "Fedora 40" соответственно.

Ставится все в пару кликов. Берите пользуйтесь, адаптируйте к другим Линуксам! Конструктивная критика приветствуется.

Теги:
Всего голосов 11: ↑9 и ↓2+8
Комментарии31

Компания ООО «РусБИТех‑Астра» представила дистрибутив специального назначения Astra Linux Special Edition 1.8, который может применяться для защиты конфиденциальной информации и государственной тайны до уровня «особой важности».

Дистрибутив Astra Linux 1.8 основан на пакетной базе Debian GNU/Linux и содержит дополнительные механизмы обеспечения безопасности, такие как собственная система мандатного управления доступом, аудита, контроля целостности и подлинности файлов (PARSEC), гарантированное удаление файлов, сборка ядра с патчами для повышения безопасности. Пользовательское окружение построено на основе проприетарной среды рабочего стола Fly с компонентами, использующими библиотеку Qt.

Дистрибутив Astra Linux 1.8 распространяется в рамках лицензионного соглашения, которое накладывает ряд ограничений на пользователей, в частности, запрещены коммерческое использование без заключения лицензионного договора, декомпиляция и дизассемблирование продукта.

В ОС Astra Linux версии 1.8 представлен новый визуальный стиль. Оригинальные, реализованные специально для Astra Linux, алгоритмы работы и исходные коды отнесены к категории коммерческой тайны. Пользователю предоставляется возможность воспроизведения только одного экземпляра продукта на одном компьютере или виртуальной машине, а также даётся право на изготовление только одной резервной копии носителя с продуктом. Готовые установочные сборки пока публично не предоcтавляются, но доступны образы контейнеров и виртуальных машин.

Теги:
Всего голосов 4: ↑4 и ↓0+6
Комментарии3

Почему бы не сделать runtime языка С++ проще и легче? почему бы не сделать его перенос в том числе проще? Когда я задался этим вопросом, я решил, что во чтобы то ни стало, я напишу свой RT, для тех, кто пишет под слабые машины, или тех, кто пишет под bare metal среду. результат вы можете посмотреть на гитхабе: вотъ

Когда я работал, я старался максимально всё упростить, при этом сохранив юзабельность. не знаю как для других, но лично мне было важно сохранить исключения, для меня это удобно. но в С++ они жутко дорогие из-за RTTI (RunTime Type Information), и на bare metal реализуется с большим напрягом. выход прост - использовать статусы вместо типов. но чтобы оставить всем знакомый и удобный синтаксис исключений и позволить функциям возвращать что-то вместо статуса, где это везде лепят, я переделал всё на тупо макросах :>

так же я понял, что сложность моей работы и сложность переносимости этой вещицы усложнится, если прям всё с нуля пилить, поэтому просто воспользовался libc, выпилив libc++. Пришлось сделать обёртки над new и delete, но это не так уж и сложно, просто вызывать malloc/free.

Так же я невероятно сильно намучился в попытках сделать всё используя стандартный синтаксис С++. Потратил несколько часов в попытках разобраться как оторвать исключения от использования rtti, возился в флагах, писать cxa, gxx и unwind с нуля, даже лез в ассемблерный код в попытках вырезать надоеду, но по итогу сдался и просто слепил всё из макросов.

Всем добра <3

Теги:
Всего голосов 3: ↑2 и ↓1+3
Комментарии2

Проблема с samba и Windows 10 последних редакций:

Windows 10 упорно не видит *nix шары. Уже и SMB1 компонент включили, и wins с local master роли самбе выделили - тишина. При попытке в Проводнике увидеть соседний хост с samba получаем только локалхост windows.

Проблема оказалась в том, что последние редакции Windows 10, и, в особенности, Windows 11, более не используют NetBIOS определение соседей, или обзор сети. Теперь - только Web services.

И да, Avahi не поможет.

Решение оказалось смешным до безобразия:

  • на машину с samba ставим wsdd или wsdd2 (форк от Netgear на С)

  • на Windows отключаем (если включали) компонент SMB1 и разрешаем Network Discovery

  • Профит

Теги:
Всего голосов 4: ↑3 и ↓1+4
Комментарии3

Эндрю Таненбаум получил премию ACM Software System Award 2023, ежегодно присуждаемую профильной Ассоциацией вычислительной техники (ACM).

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

ОС MINIX построена на базе микроядерной архитектуры. Базовое программное окружение Minix включает в себя большое число типичных для BSD-систем утилит и библиотек, портированных из NetBSD. Дополнительно в репозитории представлено около 700 пакетов с разнообразными приложениями. Исходные тексты MINIX распространяются под BSD-подобной лицензией. Среди прочего, MINIX используется в прошивке Intel Management Engine, которая поставляется во всех современных ПК и ноутбуках с чипами Intel.

Премия ACM Software System Award ежегодно вручается за разработку программных систем, оказавших определяющее влияние на отрасль, внеся в обиход новые концепции или раскрывших новые области коммерческого применения. Размер премии $35 тыс.

В прошлом году премию ACM получили проекты GCC и LLVM и их основатели Ричард Столлман и Крис Латнер. Премией также были отмечены такие проекты и технологии, как UNIX, Java, Apache, Mosaic, WWW, Smalltalk, PostScript, TeX, Tcl/Tk, RPC, Make, DNS, AFS, Eiffel, VMware, Wireshark, Jupyter Notebooks, Berkeley DB, seL4, и Eclipse.

Источник: OpenNET.

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии1

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

Иксам (протоколу X Window System) исполнилось 40 лет.

19 июня 1984 года Роберт Шейфлер из MIT анонсировал в своём письме в список рассылки проекта Афина (Athena) работу над новой оконной системой X. Несколькими годами позже X стал стандартом для юникс-подобных систем и продолжает быть основной оконной системой в свободных ОС и по сей день.

Путь от выпуска X1 до X11 протокол прошёл всего за три года, после чего состояние X11 стабилизировалось и со временем лишь обрастает расширениями, но не меняет своей сути. Например, в качестве расширений в своё время были представлены такие распространённые возможности, как XVideo, X Font Server, XKB, Xinerama, XCB, Multi-Pointer X, Present, DRI2, DRI3, RandR, X Input и так далее.

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

Теги:
Всего голосов 3: ↑3 и ↓0+5
Комментарии1
Теги:
Всего голосов 4: ↑4 и ↓0+5
Комментарии1

Сообщество RISC OS Open представило выпуск ОС RISC OS 5.30, оптимизированной для создания встраиваемых решений на базе плат с процессорами ARM.

Выпуск основан на исходных текстах RISC OS, открытых в 2018 году компанией RISC OS Developments (ROD) под лицензией Apache 2.0.

Сборки RISC OS сформированы для плат Raspberry Pi, PineA64, BeagleBoard, Iyonix, PandaBoard, Wandboard, RiscPC / A7000, OMAP 5 и Titanium. Размер сборки для Raspberry Pi составляет 157 МБ.

RISC OS развивается с 1987 года и ориентирована в основном на создание специализированных встраиваемых решений на базе ARM-плат, обеспечивающих максимальную производительность. ОС не поддерживает вытесняющую многозадачность (только кооперативная) и является однопользовательской (все пользователи имеют права суперпользователя). Система состоит из ядра и модулей-надстроек, в том числе доступен модуль с простым оконным графическим интерфейсом и набор простых приложений. В графическом окружении используется кооперативная многозадачность. В качестве веб-браузера используется NetSurf.

В новом выпуске:

  • в разряд стабильных переведена поддержка платформы OMAP5, формированию первого стабильного выпуска для которой ранее мешали проблемы с видеодрайвером;

  • для всех платформ реализована полная поддержка ФС SparkFS с возможностью чтения и записи данных;

  • обновлена редакция RISC OS для плат Raspberry Pi.

  • обновлена коллекция приложений, среди прочего предложен новый выпуск браузера NetSurf 3.11;

  • максимальный размер RAM-диска увеличен до 2 ГБ.

Теги:
Всего голосов 3: ↑3 и ↓0+4
Комментарии0

Друзья! Может кто‑то из моих читателей продаёт HTC Dream aka T‑Mobile G1? Сейчас готовлю новый материал из серии «сам себе экосистема», где пилю клиенты современных сервисов под смартфоны 14+ летней давности. В идеале, конечно, показать работоспособность клиента на самом первом Android‑смартфоне:) Тг — @monobogdan

Теги:
Всего голосов 7: ↑7 и ↓0+7
Комментарии1

Разработчики проекта FreeBSD опубликовали план прекращения поддержки 32-разрядных платформ.

В ветке FreeBSD 15 не будут поставляться платформы armv6, i386 и powerpc, а в ветке FreeBSD 16 будет прекращена поддержка платформы armv7. Возможность сборки 32-разрядных программ и использования режима COMPAT_FREEBSD32 для запуска 32-разрядных исполняемых файлов в окружении на базе 64-разрядного ядра сохранится как минимум до конца жизненного цикла ветки FreeBSD 16.

В качестве причин прекращения поддержки 32-разрядных архитектур упоминается снижение популярности 32-разрядных установок, смещение рынка аппаратного обеспечения в сторону 64-разрядных систем, вывод из эксплуатации 32-разрядного оборудования, а также нехватка у проекта FreeBSD ресурсов разработчиков на сопровождение устаревших платформ.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Вышел проект Maestro по разработке на Rust легковесного Unix-подобного ядра, реализующего подмножество системных вызовов ядра Linux, достаточное для создания типовых рабочих окружений. Проект был создан в 2018 году и вначале использовал язык C, но в 2020 году был полностью перезапущен с нуля с учётом накопленного опыта и перешёл на Rust для снижения вероятности совершения ошибок, возникающих при работе с памятью.

Код проекта распространяется под лицензией MIT. Помимо ядра проектом на языке Rust также развиваются X11-сервер, пакетный менеджер, загрузчик, инсталлятор, наборы утилит и другие компоненты, необходимые для построения операционной системы.

Ядро на Rust имеет монолитную архитектуру и пока поддерживает только системы x86 в 32-разрядном режиме. Кодовая база ядра насчитывает 48.8 тыс. строк кода (для сравнения в ядре Linux - 33 млн. строк кода). Возможен запуск в QEMU, VirtualBox или поверх оборудования. На текущем этапе развития в Maestro реализован 31% (135 из 437) системных вызовов Linux, чего достаточно для загрузки консольного окружения на базе bash и стандартной С-библиотеки Musl. В окружении на базе Maestro также могут выполняться некоторые утилиты из набора GNU coreutils, такие как ls, cat, mkdir, rm, rmdir, uname и whoami.

Источник: OpenNET.

Теги:
Всего голосов 15: ↑15 и ↓0+15
Комментарии1

На днях с коллегами довелось восстанавливать FC коммутатор Brocade. В открытом доступе были скрипты, которые формировали из образа прошивки образ диска и записывали образ на Compact Flash. К сожалению, они были из 90-х и частично не работали. Мы изучили алгоритмы тех мест, которые не работали и исправили скрипты. Обновленный форк с пояснениями(P.S.) можете найти на github.

Теги:
Всего голосов 5: ↑5 и ↓0+5
Комментарии0
1