4 Ответы
Собственно, это моя последняя машина, на которой установлен Линукс, а точнее Debian 11. Я ее использую для всяких экспериментов.

Накатил я Fvwm3. Хотел посмотреть, как там дела с ним. Оказывается, все очень хорошо (чего не скажешь про FreBSD. Там он неюзабельный). А тут все хорошо. Устанавливал по Дебиановскому рецепту.  Конечно, все заработало.  

А еще я накатил NcCDE. Люблю я олдскульные окружения. Компелять CDE не было охоты, да и идея эта так себе....прочитав мануалы понял, что несекюрно это все. Фиг знает, какие там дыры в коде. Так что остановился я на вышеупомянутом NcCDE.

Что могу сказать? Все работает, зомби процессов не создает, жрет ОЗУ как старый добрый lxde.

Мой вывод.

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

Желаем стабильного софта, надёжного железа, долгого аптайма, непрерывного развития, адекватных клиентов, компетентных руководителей, и всего самого лучшего!

С уважением, администрация форума /bin/dev.
58 Ответы
Приветствую.

Вот и сам сабж. Название скрина говорит само за себя.

Это моя минималистская настройка для FVWM. Это все крутится на FreeBSD 13.1 Все работает. От звука, до 3d ускорения.

Звук идет через oss, так что имею теплый и ламповый звук. Ютуб работает, звук проигрывается, ненужны всякие ptlseaudio или apulse.

Флешки монтируются через dsbmc-cli. Это простая утилита, работающая из коробки. Хочется отметить, что автомонтирование в FreeBSD стало проще некуда. Есть утилита automount, которая тоже отлично работает.

Аптайм доходит до пару суток. Никаких фризов, утечек памяти. Ничего такого не наблюдаю. Очень доволен. Буду переводить все свои машины на FreeBSD.
Эскизы(ов)
   
1 Ответы
Скажу так: тут ничего не изменилось с осени. Та же Fedora 37, GNOME 43 с BlurMyShell.

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

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

Я не люблю шумные мероприятия группами из более 5 человек, мне скучно там. Да и семейные посиделки не мое. Впрочем, не буду о себе много говорить. Я вообще не люблю говорить.

Ваш бункер уже наряжен? Гирляндочки моргают, елочка горит? Отлично, осталось лишь украсить рабочий стол.

Первым делом завозим снег. Снежок на компьютере обязателен, поэтому ставим xsnow и запускаем.
Открываем CCTV и смотрим количество снега снаружи нашего бункера, подкручиваем ползунки в настроечках до нужного количества, редактируем места обитания и объекты под свою местность.

Теперь черед игор. Обязательны к установке SuperTuxKart и OpenArena. Так я встречал 2022 год. Заходим на зимнюю карту с вашим любимым персонажем и начинаем гонку. Не забываем дрифтить и испускать запасы N2O. Затем, после того, как часы станут больше 00:00, запускаем OpenArena и дубасим всех, кого видим. Главное настройки под себя не забыть сконфигурировать, графику получше, если можно.

Снеки, чипсы, колу, фрукты, мандарины не забыть поставить рядом.
Эскизы(ов)
   
2 Ответы
Я тут подумал и решил что будет прикольной идеей сделать мини страничку через ssh.
Однако ssh по умолчанию пускает либо по паролю либо по ключу и нужно как-то сделать чтобы он не требовал ни того ни другого.
Что нам для этого нужно сделать:
Создать пользователя без пароля(в моем случае его имя guest):
Код:
adduser -w none
Заранее создать пустой файл чтобы при входе через ssh не отображалось сообщение дня от FreeBSD:
Код:
touch /home/guest/.hushlogin
Создаём скрипт который будет исполняться при входе ибо давать доступ к sh небезопасно:
Код:
# touch /home/guest/shell.sh
# chmod +x /home/guest/shell.sh
# chsh -s /home/guest/shell.sh guest
Я решил туда просто написать мини Шелл:
Код:
#!/bin/sh
echo Welcome to Test Shell. Enter help to list commands
while true
do
read -p '# ' res
if [[ $res == "help" ]]
then
echo "Commands: help, exit"
elif [[ $res == "exit" ]]
then
exit 0
else
echo "$res: command not found"
fi
done
Теперь нам нужно как-то пускать в этот пользователя без пароля ибо при создании мы его не задали:
Добавляем в /etc/ssh/sshd следующие строки:
Код:
Match User guest
    AllowTCPForwarding no # запрещаем проброс портов
    PermitEmptyPasswords yes # разрешаем пустой пароль
Теперь нам нужно отредактировать Pam конфиг /etc/pam.d/sshd и найти там строку с pam_unix.so
Добавляем там в конце nullok и сохраняем
Теперь при входе через пользователя guest у нас не будет требовать пароль и будет выполняться скрипт shell.sh
3 Ответы
Данная статья содержит в себе ссылки на различные инструменты (самостоятельные, кроссплатформенные или аналоги из других ОС) для получения информации об оборудовании и его тестирования.

Статья будет корректироваться и дополняться по мере нахождения новых инструментов.

Инструменты, помеченные как [CLI], не имеют графического интерфейса. Некоторые инструменты подходят под несколько категорий - в таком случае они не будут дублироваться в каждой.

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

Процессор
  • CPU-X - аналог CPU-Z для Windows. Умеет отображать подробную информацию о процессоре (модель, частота, кэши, напряжение, наборы инструкций), оперативной памяти, материнской плате, видеокарте.
  • GtkStressTesting - набор функций примерно такой же, что и у CPU-X. Поддерживает стресс-тест процессора и оперативной памяти.
  • hardinfo - получение информации об оборудовании и набор различных бенчмарков
  • [CLI] Geekbench - бенчмаркинг процессора

Хранилище (жёсткие диски, SSD, флешки)
  • [CLI] hdparm - программа для настройки параметров жёстких дисков. Умеет измерять скорость чтения и записи.
  • KDiskMark - аналог CrystalDiskMark для Windows. Проверка скорости.
  • GSmartControl - получение SMART накопителей
  • [CLI] badblocks - проверка секторов жёсткого диска

Сеть
  • [CLI] speedtest-cli - тестирование скорости интернета через Speedtest из терминала
  • LinSSID - получение информации об окружающих точках Wi-Fi (список точек, уровень сигнала, построение графика каналов)

Видеокарта
  • GpuTest  - набор приложений для стресс-тестирования видеокарты и бенчмаркинга. Включает в себя знаменитый фурри-пончик. Использует OpenGL.
  • glmark2 - бенчмаркинг OpenGL
  • vkmark - бенчмаркинг Vulkan
  • UNIGINE Benchmarks - набор бенчмарков от UNIGINE
  • LuxMark - бенчмаркинг OpenCL
2 Ответы
Как известно, ZFS не может быть уменьшена, но это не значит что ничего нельзя сделать.
Это краткий мануал, здесь не будет расписано что какая команда делает, документация к каждой команде идёт в комплекте с FreeBSD.



Структура диска:

Код:
# gpart show -p
=>      40  234441568    ada0  GPT  (112G)
        40    131072  ada0p1  efi  (64M)
    131112      1024  ada0p2  freebsd-boot  (512K)
    132136  234309472  ada0p3  freebsd-zfs  (112G)

Различия с исходным HDD на 500G только в размере ada0p3.



Грузимся в Live USB/CD/DVD FreeBSD (на которой заранее размечен дополнительный раздел в UFS2+SU: da0s4).

Код:
zpool import -R /mnt freebsd0
mkdir -p /tmp/backup
mount /dev/da0s4 /tmp/backup
zfs snap -r freebsd0@MOVE
// Если есть возможность воткнуть сразу два диска, то send|recv и dd можно совместить. В этом случае не понадобится временный раздел.
Код:
zfs send -Lwp freebsd0@MOVE >/tmp/backup/freebsd0.zfs
dd if=/dev/ada0p1 of=/tmp/backup/ada0p1.efi.img bs=8m
dd if=/dev/ada0p2 of=/tmp/backup/ada0p2.gptboot.img bs=512k
sync;sync;sync;reboot

Меняем диски…

Код:
gpart create -s gpt ada0
gpart add -t efi -s 64m -a 4k -l efiboot0 -i 1 ada0
gpart add -t freebsd-boot -s 512k -l gptboot0 -i 2 ada0
gpart add -t freebsd-zfs -l freebsd0 -i 3 ada0
zpool create -O compress=lz4 -O atime=off -m none -o failmode=continue -O utf8only=on freebsd0 /dev/gpt/freebsd0
mkdir -p /tmp/backup
mount /dev/da0s4 /tmp/backup
dd of=/dev/ada0p1 if=/tmp/backup/ada0p1.efi.img bs=8m
dd of=/dev/ada0p2 if=/tmp/backup/ada0p2.gptboot.img bs=512k
zfs recv -e freebsd0 </tmp/backup/freebsd0.zfs
zfs rename ... # перемещаем ВСЕ датасеты из freebsd0/freebsd0/* в freebsd0/*
zfs destroy freebsd0/freebsd0
zpool set bootfs=freebsd0/ROOT/13.1R freebsd0
gpart bootcode -b /boot/pmbr ada0
sync;sync;sync;reboot

Первая загрузка может быть с проблемами по ряду причин, ещё одна перезагрузка после полной загрузки ставит всё на свои места.
1 Ответы
8 сентября в сообществе BSD было принято решение включить ссылку на depenguin.me, которая описывает, способ установки BSD с использованием среды аварийной загрузки.

В ссылке описана процедура установки FreeBSD-13.1 на выделенный сервер из спасательной среды Linux. (rescue environment)
1 Ответы
Пока писал предыдущую статью понял, что несколько раз упомянул в ней такую штуку, как «сложность алгоритма». Спустя пару ночей пришел к выводу, что оно тянет на отдельную статью... В общем, так и получилось.

Как и в прошлый раз, чтобы не копировать тексты, вкратце расскажу, о чем там речь.

Сначала рассмотрена теория, что такое эта самая сложность алгоритма и для чего она нужна. Если вкратце — это время. Абстрактное время выполнения алгоритма. Зависит оно от реализации этого алгоритма (ну и от железа, на котором выполняется, но в силу абстрактности это можно опустить).

Обозначается она большой буквой О и может принимать разные значения. Например:
  • O(n) — линейное время;
  • O(log n) — логарифмическое время;
  • O(n * log n) — линейное, помноженное на логарифмическое для каждой итерации;
  • O(n2) — линейное в квадрате;
  • O(n!) — факториальное, стремящееся к бесконечности.


Далее практическая часть, в рамках которой я допилил в предыдущую программу функцию простого поиска по массиву перебором:

Код:
func simpleSearch(array *[]int, lookingFor int) (int, bool) {
    count := 0
    start := time.Now()
    for value := range *array {
        count++
        if value == lookingFor {
            duration := time.Since(start)
            fmt.Print("Simple search time: ")
            fmt.Println(duration)
                        fmt.Println("Steps: " + strconv.Itoa(count))
            return value, true
        }
    }
    duration := time.Since(start)
    fmt.Print("Simple search time: ")
    fmt.Println(duration)
        fmt.Println("Steps: " + strconv.Itoa(count))

    return 0, false
}

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

Сама табличка:

[Изображение: Screenshot_20220905_210402.png]
За подробностями и болтологией прошу сюда. Ну и как всегда рад любым комментам.
Нет ответов
Выпущены релизы безопасности matrix-js-sdk и matrix-react-sdk, чтобы исправить пару уязвимостей высокой степени серьезности (зарезервированных как CVE-2022-36059 для matrix-js-sdk и CVE-2022-36060 для matrix-react-sdk).

Затронуты клиенты, которые зависят от затронутых библиотек, такие как Element Web/Desktop и Cinny. Релизы затронутых клиентов появятся в ближайшее время. Пользователям этих клиентов рекомендуется выполнить обновление при первой же возможности.

Уязвимости дают злоумышленнику, с которым вы делите комнату, возможность провести атаку типа «отказ в обслуживании» против уязвимых клиентов, заставляя его не показывать все комнаты или пространства пользователя и/или вызывая незначительные временные повреждения.

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

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

Авторы благодарят Вэла Лоренца, который обнаружил уязвимость и сообщил о ней на выходных.

Новость на LOR

 >> Подробности