Все потоки
Поиск
Написать публикацию
Обновить
168.51

*nix *

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

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

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

Кроме удовольствия от переноса многочисленных мыслей в текст, это безобразие меня еще и мотивирует этим заниматься и структурирует тот бардак, который живет у меня в голове. Потому что хочется спасать человечество, искать средство от смерти или думать о вечном, а вот решать проблему, почему очередной раз не выполняется элементарный apt-get update на машинке совсем не хочется. Сразу появляются мыслишки, что я трачу свое время на что-то бессмысленное и глупое и сажусь играть в "собери три предмета в ряд", потому что там в отличие от элементарных проблем с линуксом я не чувствую себя тупой, а при окончании ходов тебе всегда услужливо предлагают посмотреть рекламу за несколько дополнительных, чтобы ты снова чувствовала себя победителем.

По сложившейся традиции моих немногочисленных постов

Мое маленькое ДАНО ХОЧУ:

Установить постгрю на дебианоподобную ОС, чтобы вспомнить, куда она пишет логи и в каком точно файле это место настраивается.

И да, я знаю, что вполне можно нарыть это в тырнетике или спросить у чата жипити, но я опрометчиво решила, что установить ее и посмотреть ручками будет проще, а когда это не получилось командой apt-get install postgres мое самолюбие было уже не остановить и срочно надо было доказать дурацкой базе данных, что я умнее (ну как иначе, то?). Вообще не то, чтобы я никогда не работала с постгрей, в моей голове достаточно смутные воспоминания, что скорее всего она пишет лог в /var/log/, а настройки у нее вообще живут только в двух файлах. Но точных имен я не помню, поэтому имеем, что имеем.

А вот теперь ДАНО:

У меня есть в запасе чистый диски на VirtualBox'e винды и дебиана, вот клон последней и было решено использовать для изысканий.

Шаг 1

Пробуем запустить apt-get install postgres, потому что что может быть проще... учитывая, что в ТЗ даже версия мне безразлична... просто вспомнить название файликов...

На что умный дебиан нам напоминает про безопасность и права (женщины боролись за права с 18 века!!!! а мне до сих пор не хватает =( )

Поэтому заходим под рутом, выполняем apt-get update - радуемся, когда тот успешно выполняется и идем искать нужный нам пакет apt search postgres.

В получившейся портянке ищем саму постгрю, потому что apt-search выдает результаты со словом postgres не только в названии пакета, но и в его описании. Лично мой взор привлекает пакет postgresql-all, где в описании обещают, что это metapackage depending on all PostgreSQL server packages. Его и пробуем поставить.

На удивление пакет (а точнее пакеты) ставится без ошибок, и в цмдушечке появляется заветный psql, который правда говорит, что подключаться ни к чему он не хочет, сокета на 5432 у него нет, а роль root вообще не существует.

Но по крайней мере у меня есть ответ на мой первый вопрос. Основные файлы конфигурации живут в /etc/postgres/ее версия/main/ и зовутся pg_hba.conf и posgresql.conf, где первый отвечает за разрешения подключения к этой самой бдушечки, а второй как раз хранит в себе все переменные ее настройки - в том числе и куда хранить лог "log_directory" которая по умолчанию закомментирована.

Удивительно и невероятное, если запустить apt-get update из под пользователя, у которого нет прав, под рутом этот самый apt-get update выдает обшибку.

Удивительно и невероятновое 2: Почему-то мой быстрый путь тяп ляп и готово по добавлению извера в /etc/sudoers не помог дать ему необходимых прав, а дебиан под ним пакеты не захотел устанавливать.

Но об этом в лучших традициях Скарлетт О'Хара я подумаю завтра, потому что количество букв в посте сильно ограничены.

Теги:
-3
Комментарии0

Как изменить SSH-пароль для Amnezia VPN

Amnezia - достаточно удобное приложение, которое позволяет в пару кликов (или тапов смартфона) развернуть VPN-сервер на вашем VPS.

Работает это следующим образом: при старте приложения на смартфоне/ПК вы вводите адрес сервера и данные SSH-подключения: user + password/privatekey (лично у меня подключение по ключу не взлетело). После этого приложение подключается к серверу по SSH и скачивает/настраивает VPN.

Приложение запоминает данные SSH-подключения и в дальнейшем они используются для упрощенного администрирования: добавления/удаления VPN-пользователей, установки/удаления дополнительных компонентов и прочего.

Проблемы начинаются тогда, когда вам по какой-то причине нужно поменять реквизиты SSH-подключения: изменить юзера, заменить пароль/ключ, изменить порт. Приложение Amnezia не предосталяет такой возможности (есть даже открытый feature request). Если вы попробуйте поискать информацию по данной теме, то единственным найденным вариантом будет что-то вроде "удалите сервер и разверните заново", что естественно приведет к тому, что ключи всех VPN-пользователей придется генерировать заново.

Итак, как же изменить пароль (или другой атрибут) без редеплоя VPN-сервера?

Инструкция:

  1. В приложении заходим ⚙️ -> Backup -> Make a backup. Получаем JSON-файл.

  2. JSON-файл содержит все параметры в открытом виде, в т.ч. пароль. Меняем пароль на новый и сохраняем файл.

  3. Заходим ⚙️ -> Backup -> Restore from backup, это действие затирает текущую конфигурацию и устанавливает конфигурацию из файла.

  4. Меняем пароль на самом сервере.

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

Вынос тестов Zig в отдельные файлы

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

Выносить тесты в отдельные файлы — хорошая практика. Рассмотрим это на примере проекта https://github.com/ktarasov/zigrep.

Для начала создадим директорию tests в корне проекта и файл unit_tests.zig. Перенесем туда все тесты из src/main.zig. В список зависимостей добавим импорт главного модуля: const main_mod = @import("../src/main.zig");. Вызовы функций и структур в тестах модифицируем, добавив к ним модуль, например: main_mod.parseArgs.

Важно сделать тестируемые функции публичными, иначе тесты не скомпилируются.

Далее нужно сообщить компилятору, что тесты теперь находятся в другом месте. Для этого изменим файл build.zig. После строки run_step.dependOn(&run_cmd.step) добавим создание модуля с тестами:

const unit_test_mod = b.createModule({
  .root_source_file = b.path("tests/unit_tests.zig"),
  .target = target,
  .optimize = optimize,
});

Также изменим блок добавления константы exe_unit_tests, указав unit_test_mod в качестве root_module.

Вроде всё готово. Попробуем скомпилировать и запустить тесты...

О нет, ошибка: "error: import of file outside module path: './src/main.zig'". Компилятор не импортирует файлы за пределами модуля unit_tests.zig.

Придется явно добавить основной модуль в импорт test-модуля. Для этого вернемся в build.zig и добавим после создания exe_unit_tests следующую строку:

exe_unit_tests.root_module.addImport("zigrep", exe_mod);

Снова запустим тесты — и они успешно пройдут!

Итого: мы вынесли тесты в отдельный файл и создали иерархию директорий, разделив основной код и тесты.

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

Вся история SCO: (ex-Microsoft) Xenix, SCO UNIX/ODT, SCO OpenServer 5, SCO UnixWare 7, поглощение SCO Calder'ой, Дарл МакБрайд, суд против Linux, SCO OpenServer 6, банкротство, UnXis/Xinuos, Definitive, Definitive 2018, суд 2021 года против IBM/Red Hat, Definitive 2018 MP1/UP1...

Может показаться, что это готовый промпт для нейросеток, но на самом деле - это краткая версия всей истории одного из (когда-то) крупнейших разработчиков коммерческих UNIX-систем для x86.

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

Недавно я задумался, а как создать 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
1

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