LINUX.ORG.RU

Сообщения wandrien

 

Статья: Устройство подсистемы TTY

Форум — Talks

Опубликовал статью, посвященную устройству подсистемы TTY.

Подсистема TTY — одна из ключевых особенностей Unix и Unix-подобных операционных систем.

В этой статье я постараюсь кратко, но достаточно ёмко и доступно для читателей разного уровня подготовки разобрать устройство подсистемы TTY и её взаимодействие с другими частями программной среды.

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

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

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

 ,

wandrien
()

Не совсем Windows calculator не совсем портировали на Linux

Форум — Linux-org-ru

Windows calculator портировали на Linux

В таком виде — вызывающе неверная информация. См. подтверждение здесь: Windows calculator портировали на Linux (комментарий)

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

 

wandrien
()

Блокировать сайты в поисковой выдаче

Форум — Talks

Отщепенцы со дна общества под названием «оптимизаторы» придумали новый способ поискового спама для обхода эвристик Гугла: переводить машинным переводом Stack Overflow и заливать типа сайты вопросов и ответов на русском и других языках.

Зачастую этот мусор в результатах поиска оказывается выше, чем страницы, с которых он был спи^Wпереведён.

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

В общем, поставил в лису uBlacklist. Всем рекомендую.

 ,

wandrien
()

Куда утекает память?

Форум — General

Показания htop: https://ibb.co/fC34MBw

В первую очередь проверил tmpfs, там пусто:

$ df -h -t tmpfs
Файловая система Размер Использовано  Дост Использовано% Cмонтировано в
run                3,9G         1,6M  3,9G            1% /run
tmpfs              3,9G            0  3,9G            0% /dev/shm
tmpfs              4,0M            0  4,0M            0% /sys/fs/cgroup
tmpfs              6,2G          96K  6,2G            1% /tmp
tmpfs              788M         116K  788M            1% /run/user/1000

Главный подозреваемый – ядерный модуль VirtualBox.

Вчера днём утекло около 3 гигов. Перезагрузил, запустил VBox, оставил на ночь. За ночь утекло еще 6.

 ,

wandrien
()

И ты, Брут...

Форум — Talks

https://git.archlinux.org/pacman.git/commit/?id=454ea024383eab60295e4c4fdf2c329475887b2c

2020-05-11 This removes support for autotools in favour of meson.

Этому миру нужен герой…

 ,

wandrien
()

Bedrock Linux

Форум — Talks

Bedrock Linux – это «метадистрибутив», что в понимании авторов означает «программа для управления другими дистрибутивами».

Вы ставите любой дистрибутив по вкусу (из списка поддерживаемых) тем способом, который вам нравится. После этого запускаете установщик Bedrock Linux. Bedrock Linux перехватывает управление над системой, внедряясь в качестве дефолтного инита, изменяя и добавляя точки монтирования и т.п. После перезагрузки вы оказываетесь в системе, которая работает «внутри» Bedrock Linux. Вы можете устанавливать другие операционные системы семейства Linux «рядом» с основной системой и свободно смешивать софт из них. (Общий /bin, список файлов *.desktop, bash-completion, man pages и другие интеграционные фичи).

Библиотеки при этом не общие, таким образом дистрибутивы не нарушают бинарную совместимость друг друга.

Это всё красивая теория. Что на практике:

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

Для начала:

# ./bedrock-linux-0.7.17-x86_64.sh --hijack Arch
No file detected at /sbin/init.  Unable to hijack init system.

Смотрим в код. Установочный скрипт даже не пытается обнаружить, какой инит на самом деле использован:

    if ! [ -r "/sbin/init" ]; then
        abort "No file detected at /sbin/init.  Unable to hijack init system."
    fi

Мне лень писать ln -s ... вручную, поэтому просто ставлю пакет, который притащит нужный симлинк:

# pacman -S systemd-sysvcompat

Вот такой у меня повидавший жизнь и кучу апдейтов экземпляр Арча, в котором не стоит systemd-sysvcompat. Ладно, пофиксил, едем дальше.

Запускаю установку, на этот раз Bedrock ставится нормально. Говорит, что внедрился в операционную систему, и что надо перезагрузиться.

Сначала смотрю, что он сделал:

  • Создал директорию /bedrock со своими конфигами и бинарниками.
  • Заменил симлинк /sbin/init на свой скрипт запуска.

Других изменений не заметно.

Конфиг в /boot/grub/grub.cfg не поправил и даже не сказал, что я должен это проверить. А в конфиге вписан совсем не тот init:

menuentry "Archlinux Ester (mainline)" {
    linux /boot/vmlinuz-linux root=$root_dev ro init=/usr/lib/systemd/systemd
    initrd /boot/initramfs-linux.img
}

Правлю инит. Перезагружаюсь.

Получаю сообщение «No suitable video mode found. Booting in blind mode.» и… система не грузится.

Ну, это мой косяк. Сообщение было и раньше, и пока systemd не переключит видеорежим, экран действительно оставался чёрным.

Догадываюсь, что Bedrock пытается на чёрном экране показать мне своё boot menu. Нажимаю enter. Запускается systemd. Ура, у нас есть картинка.

Снова лезу в /boot/grub/grub.cfg. Добавляю строку insmod all_video. Перезагружаюсь.

На этот раз всё нормально, Bedrock рисует загрузочное меню, и оно отображается на экране. Предлагает грузиться через systemd или через runit-init, который у меня, оказывается, тоже установлен. Я и не помню, что его сюда ставил. Правда, в runit-init грузиться смысла нет, половина программ в Арче просто не поймут отсутствие systemd.

Загружаюсь. Сети у приложений нет. Обнаруживаю, что у меня хаос в ip route и в /etc/resolve.conf. NetworkManager видит Wifi, но, видимо, какой-то подземный стук вмешался в работу. Вручную правлю маршруты и резолверы имён. Сеть появляется.

==> Вы находитесь здесь.

Теперь надо разобраться, что мешает автоматике настраивать сеть правильно. Пока на этом из приключений всё. И дальше можно ставить рядом приложения из Debian, Void, Alpine, да хоть Gentoo компилировать.

Stay tuned!

 ,

wandrien
()

hacktoberfest

Форум — Talks

Сабж в этом году окончательно вышел из-под контроля.

Какие вам присылали бессмысленные PR-ы?

 

wandrien
()

DOS Subsystem for Linux

Форум — Talks

Там opennet наркоманию принёс:

https://www.opennet.ru/opennews/art.shtml?num=53791

 

wandrien
()

Нашел залежи документации

Форум — Talks

Нашел случайно. Чей сервер, не знаю:

https://doc.lagout.org/

Не всё на английском, часть на французском. Есть как историческая информация, так и актуальная.

 ,

wandrien
()

Хомяк в облаке. Версия для гика

Форум — Talks

Оказался на выходных без своего ноутбука и с необходимостью починить и настроить Windows 7, которую ни в коем случае нельзя переустанавливать. (Куча софта для организации, частично крякнутого, частично лицензионного, и бог знает как всё это накатывать с правильными настройками.)

Комп получил в состоянии «не грузится даже в безопасном режиме».

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

Решил, как вернусь домой, попробую реализовать эту идею.

Используете такой подход? Сталкивались с какими-то подводными камнями при этом?

 ,

wandrien
()

Безмятежность

Галерея — Скриншоты

Эти вечные вопросы, что тревожат умы… Что ставить? GNOME, KDE или Xfce? А может Mate или Cinnamon? И в каком дистрибутиве лучше готовят KDE? И что делать, когда что-нибудь отваливается? Не было печали — апдетов накачали…

Мой лаптоп под управлением Arch Linux обитает вдали от этих бурь. При обновлениях системы ничего не отваливается уже очень давно. А когда отваливалось, то чинилось элементарно.

Недавно пытался вспомнить, сколько лет я пользуюсь этой копией установленной системы. Так и не вспомнил точно. По одним прикидкам получается 9 лет, по другим больше 10-ти. И ни разу за эти годы система не была в состоянии «не загружается» или «не логинится». Хотя отдельные косяки, разумеется, случались.

При этом я наживую, без переустановок, мигрировал с 32 бита на 64, с grub-legacy на grub2, со скриптов на systemd. Два раза переносил запущенную систему с одного накопителя на другой. Не обновлялся по 8 месяцев, игнорируя городские легенды, что Арч не любит долгих пауз в обновлениях. И ставил кучу программ из AUR, которые согласно тем же легендам должны было непременно угробить систему.

Так что на основе многолетнего опыта эксплуатации могу сказать уверенно, что чтобы развалить Арч нужно иметь исключительно кривые лапки.

Ну а DE… А что DE?… Она не ломается, если её нет.

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

Да, я так и не сделал релиза SDE. Не реализовал половину запланированных фич. И не добавил половину программ, которые должны быть в составе оболочки рабочего стола.

Но использование этого компьютера настолько не вызывает тревог, что у меня практически не было стимула что-то доделывать. Все предыдущие 5 лет я уделял много внимания чему угодно, только не проекту SDE, потому что я практически не вспоминаю о его существовании: он просто работает, выполняет свои функции, просто не мешает мне заниматься на компьютере своими делами.

На скриншоте:

Панель виджетов waterline. Сбоку настроена классическая панель задач с часами, треем, регулятором громкости и т.п. Свёрнутые окна рисуются затенёнными иконками. Также можно включить показ реального изображения окна вместо иконок. Снизу меню приложений, меню доступа к каталогам, переключатель воркспейсов и плагин multiload. В правом верхнем углу напоминание о memento mori. Убавляется каждый день. Просто напоминает, что мои шансы увидеть там «0» очень невелики. Оно реализовано shell-скриптом, потому что на панели можно создавать виджеты, управляемые внешней программой.

На рабочем столе два линка на списки дел. Больше ничего на рабочем столе обычно не держу. Если же всё-таки кладу туда что-то, то специально, чтобы оно было на глазах – чтобы не забыть. Рабочий стол управляется программой stuurman-desktop. Двойным щелчком по рабочему столу можно скрыть или показать иконки. Обои меняются в случайном порядке скриптом каждые две минуты.

В трее менеджер буфера обмена rainbow-cm. Это бывший Parcellite, из которого выкинуто процентов 60 кода, а оставшийся переписан так, чтобы всё-таки работать.

Окнами управляет openbox. Тема оформления для него составлена вручную. Всё управление окнами на хоткеях.

За глобальные хоткеи (не относящиеся к openbox) отвечает xbindkeys.

За кадром остался lilyterm — лучший из всего семейства эмуляторов терминала на базе библиотеки vte. И классика — urxvt, который я недавно наконец-то настроил, и он оказался хорош.

Запуск сеанса обеспечивается старой версией lxsession, когда её еще не успели переписать на vala. Всё никак не найду времени форкнуть её и добавить немного нужных мне фич. Видимо, не слишком они и нужны.

Больше скриншотов:

  • https://ibb.co/yBBjMvy — меню приложений классическое, по категориям.
  • https://ibb.co/tpP6cyH — рекурсивное меню каталогов и файлов, быстрый доступ ко всему нужному. Можно сразу открыть терминал в каталоге проекта и начать работу. Или открыть файловый менеджер в каталоге. Или сразу открыть файл.
  • https://ibb.co/BPqmbft — текстовый редактор qk, форк medit. Мой основной редактор.
  • https://ibb.co/cFdTykT — это редактор SynWrite, который разрабатывался by @Alexey_Tor. Редактор под оффтопик. Но прекрасно работает под wine. Поставил в качестве эксперимента. И в целом, да. Ведь почему бы и нет: если под Windows разработан софт под свободными лицензиями, то почему бы им не пользоваться?

 , , , ,

wandrien
()

Очень странный баг

Форум — Desktop

Сабж, выделил на скрине красным: https://ibb.co/3fxDbqB

Кусок интерфейса окна снизу (основное окно poedit) просачивается в виде узкой вертикальной полосы на окно сверху (диалог поиска).

Ладно, допустим, что там gtk3 рисует в пределах окон одного приложения — его личное дело. Но полоса проходит по заголовку окна, а заголовок принадлежит оконному менеджеру.

Получается что? Получается, gtk3 берёт хэндл top-level окна (не клиентского, а именно openbox-ового окна) и зачем-то в него рисует.

 ,

wandrien
()

Открыть каталог с 500 тыс. файлов...

Форум — Desktop

По следам темы: разыскивается файловый менеджер

Решил протестировать.

Создал каталог с 500 тысячами файлов.

Во всех ФМ стояла сортировка по имени. Точное время не засекал. Каждому ФМ давал 30 секунд на работу. Кто не справился — в таблице написано «дисквалифицирован».

ФМРезультат
nnnоткрывает очень быстро
vifmоткрывает быстро
mcоткрывает быстро
spacefmоткрывает быстро
PathFinderоткрывает секунд за 15-20
xfeдисквалифицирован
pcmanfmдисквалифицирован
stuurmanначинает строить список инкрементально. Но после 100000 скорость падает нелинейно. Так до конца и не добрался.
dolphinстроит список инкрементально. успел одолеть 300000
thunarдисквалифицирован
doublecmdдисквалифицирован
rox-filerна пределе отрезка времени, но открывает
workerна пределе, но открывает

Итого, безусловный фаворит — spacefm:

  • Работает быстро.
  • Имеет графический интерфейс.
  • Многопанельник.
  • Очень конфигурабельный.

Мой stuurman слился. Надо переделывать алгоритм.

 ,

wandrien
()

geh 0.4.0

Форум — Development

Сабж: https://github.com/software-revive/geh-rv/releases/tag/0.4.0

Вчера в комментариях вспомнили про такой image viewer: Заброшенные Open source программы (комментарий)

Я немного причесал сорцы и выложил в виде минорного релиза.

Разных просмотрщиков, конечно, дофига. Тут из особенностей можно отметить только вот что:

  • Компилируется мгновенно.
  • Получается единственный бинарник, ничего лишнего. (Локализации тоже нет)
  • Можно собрать как с gtk2, так и с gtk3.
  • Реальная фоновая загрузка изображений, не блокирующая поток UI.
  • Режим миниатюр, удобный.
  • Можно рекурсивно сканировать каталоги.
  • Лицензия MIT, если для кого-то это важно.

Пока добавил по мелочи:

  • Added new entries to the right-click menu:

    • View -> Full Image Mode, View -> Slide Show Mode, View -> Thumbnail Mode, to switch between the view modes with mouse, not just keyboard.
    • Help -> Key Bindings, displays the list of hot keys.
    • Help -> About, displays the detailed info about the application, license supported image formats and build environment.
  • Added command line options:

    • -v, –version, prints the application version
    • -V, –about, shows the about message (the same as in GUI)
  • Added files: AUTHORS, LICENSE, NEWS

  • Fixed few compilation warnings.

  • The man page removed, since it’s short and not helpful.

Полезные части кода и идеи я потом утащу в spicview.

А этот просмотрщик, думаю, пусть остаётся компактным и простым, без привязок к разным DE и библиотекам.

 , , software revive

wandrien
()

CCZE 0.3.0 Phoenix

Новости — Open Source
Группа Open Source

CCZE — утилита для расцвечивания логов.

Оригинальный проект прекратил своё развитие в 2003-м году. В 2013-м я скомпилировал программу для личного пользования, но оказалось, что работает она довольно медленно из-за неоптимального алгоритма. Я исправил самые очевидные проблемы производительности, после чего успешно ею пользовался на протяжении 7 лет, но был слишком ленив, чтобы оформить релиз.

Итак, представляю вам релиз 0.3.0 Phoenix, восставший из цифрового пепла.

( читать дальше... )

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

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

 ccze,

wandrien
()

Нужен ли ChangeLog?

Форум — Development

Традиционный подход:

  • В NEWS перечисляются важные изменения от релиза к релизу.
  • В ChangeLog перечисляются ВСЕ изменения в исходном коде.

Моё мнение по этому поводу:

  • В наше время исходным кодом в полном смысле является не столько тарбол с копией сорцов, сколько вся история сорцов, хранимая в VCS.
  • Тарболы нужны только для поставки софта в дистрибутивы, чтобы сборочной машине не приходилось тянуть файлы из VCS (что банально занимает больше времени).
  • История изменений в программе бывает не менее, а подчас и более, важна, чем статичный срез состояния кода.
  • ChangeLog — атавизм той эпохи, когда VCS не применялись повсеместно, а патчи пересылались исключительно почтой от одного разработчика другому.
  • ChangeLog не нужен, потому что есть git log или аналоги.

Имеет смысл писать только осмысленные записи в NEWS. Все, кого интересуют мелкие детали, могут прочитать git log самостоятельно. А кто не может этого сделать, тем содержимое файла ChangeLog всё равно ничего не скажет.

Ваше мнение?

P.S.

На форуме нет тегов release engineering, releng, software engineering, software life cycle или подобных, но форум настойчиво требует от меня хотя бы один тег.

 releng,

wandrien
()

Возможно ли из приложения, запущенного в wine, получить доступ к API линукса?

Форум — Development

Предположим, есть свободное приложение под винду. Оно использует нативный тулкит винды, так что переписывать его кроссплатформенно — слишком трудозатратно. Возможно ли так сделать, что 90% приложения я оставляю без изменений, и просто использую wine чтобы рисовать UI, а оставшиеся 10% переписываю с учетом особенностей линукс? Можно как-то протащить нативный API линукса в wine?

Например, получить родные файловые дескрипторы и вызывать для них родные функции ядра?

 , ,

wandrien
()

В какой версии Debian был самый последний GNOME 2?

Форум — Desktop

Надо кое-что глянуть в археологических целях.

 

wandrien
()

Пилю форумный движок для ZeroNet

Форум — Development

Привет, народ!

Эт я, @geekless aka @devzero.

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

Сейчас я занимаюсь разработкой форумного движка для ZeroNet. Форумный движок, который делал nofish, больше похож на технодемо возможностей платформы, чем на законченное приложение. Так как nofish в основном анимается доработками ядра ZeroNet, движки сайтов ему пилить некогда. Так что форком форума занимаюсь потихоньку я.

Если вам лень ставить ZeroNet, а любопытно посмотреть, что это — можно зайти через этот шлюз: https://zeronet.now.im/

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

Вот тут можно посмотреть ченжлог по форумному движку: https://zeronet.now.im/1EgyL4nj9DmeSSQg3fytxGJjihxtmMon5y/?Topic:1549373688_1GooUE19488nDwG3TdkM8seYAHct4gjkq4/

А тут — roadmap с далёкими планами: https://zeronet.now.im/1fznczNZUMEMvCiqSmCZGUiv5sVnRcsTD/?Topic:1549014898_1GooUE19488nDwG3TdkM8seYAHct4gjkq4/

Код оригинального форума тут: https://github.com/HelloZeroNet/ZeroTalk

А мой код тут: https://zeronet.now.im/1H3qtUJRrghDHpY89CBeueVAZw8xbHuDLr/

В общем, буду держать вас в курсе. Если кто-то заинтересуется ZeroNet и захочет потыкать, пообщаться там или принять участие в разработке, you’re welcome!

 , ,

wandrien
()

RSS подписка на новые темы