LINUX.ORG.RU

Сообщения utf8nowhere

 

systemd mask unit in a container

Форум — Admin

Как сделать так, чтобы определённый юнит не запускался в контейнере? (в systemd-nspawn, например)

Возможно ли сделать так, чтобы в контейнере был активен другой таргет? (multiuser вместо graphical)

 ,

utf8nowhere
()

Read-only root on NFS

Форум — Admin

Попробовал обеспечить загрузку системы с read-only /, смонтированному по NFS.

Исходные данные:

  • Ubuntu 18.04 Mate, установлена в виртуалку, rootfs перенесен с виртуального диска на NFS-сервер
  • Изменён конфиг initramfs для загрузки с NFS, изменён fstab, initramfs и ядро закинуты в каталог tfpt-сервера

Система типа грузится по NFS, но ожидаемо обламывается куча юнитов (Failed to start Create Volatile Files and Directories, Failed to start Load/Save Random Seed, Failed to start Network Time Synchronization и т.д.), т.к. им нужен / в rw. Логин не работает, даже автологин.

Нашёл такую штуку, как overlayroot: https://spin.atomicobject.com/2015/03/10/protecting-ubuntu-root-filesystem/ Монтирует / как overlayfs с нижним ro-слоем и верхним rw. Я использовал описанный по ссылке вариант с rw-слоем в tmpfs.

Поставил, настроил. Судя по логам загрузки, скрипты overlayroot отрабатывают на стадии initramfs. Но дальше лог загрузки тот же: те же юниты не стартуют, залогиниться не получается. Есть подозрение, что systemd обнуляет все усилия скриптов overlayroot по созданию rw-корня с помощью overlayfs перемонтируя / (Starting Remount Root and Kernel File Systems...)

Какие идеи?

 , , , ,

utf8nowhere
()

Is it intentional что Клаб можно смотреть через Комментарии пользователей?

Форум — Linux-org-ru

Если ты не залогинен, то получаешь 403 при попытке доступа к Клабу. Однако, через профиль любого пользователя видно, что он писал в Клаб.

 

utf8nowhere
()

Оптимизатор НАКАЗАЛ разработчика Clang за UB в коде

Форум — Talks

Изложение https://qinsb.blogspot.ru/2018/03/ub-will-delete-your-null-checks.html

Однажды один человек закоммитил один коммит в clang и компилятор перестал проходить один из тестов. После тщательного анализа выяснилось, что в коде была возможна ситуация UB, но оптимизатор её проигнорировал и соптимизировал код так, как будто эта ситуация невозможна.

Вот код, который моделирует поведение кода из коммита (Код покоцан движком блога, вырезаны аргументы шаблонов. Я не буду пытаться их восстановить, т.к. аргумент-тип у llvm::SmallVector может быть понят из контекста, где надо, а аргумент-число — не особо важен):

struct Foo {
  llvm::SmallVector Vals;
};
struct Bar {
  Foo *getLastFoo() { return Foos.empty() ? nullptr : Foos.back(); }
  llvm::SmallVector Foos;
  void *Pad;
  void doUB();
};
void __attribute__((noinline)) Bar::doUB() {
  if (getLastFoo()->Vals.empty())
    puts("Vals empty");
  else
    puts("Vals non-empty");
}
int main() {
  Bar b;
  b.doUB();
}

В SmallVector::back стоит assert на не-пустоту вектора (!empty()). Т.к. код этих методов инлайнится (в getLastFoo) и компилятор видит, что проверка на пустоту в assert-е находится в false-ветке тернарного оператора, в условии которого та же самая проверка уже сделана, то в assert подставляется константа true и, в общем, можно считать, что assert выкинут.

Далее. Компилятор видит, что результат вызова getLastFoo в Bar::doUB() всегда разыменовывается, поэтому он не может быть нулевым указателем. Следовательно, условие тернарного оператора в getLastFoo не может быть истинным и при инлайнинге оператор безусловно заменяется на свою false-ветку (Foos.back() (в котором уже нет проверки на empty, т.к. assert был выкинут ранее)).

SmallVector устроен так, что в пустом векторе back() указывает внутрь самого SmallVector, и, короче говоря, код интерпретирует кусок памяти объекта Bar b как объект типа struct Foo и выполняет проверку Vals.empty() с непредсказуемым результатом.

Автор заканчивает тем, что радуется новому юз-кейсу для опции -fno-delete-null-checks, но по-прежнему не считает, что эту опцию стоит использовать для решения проблем ядра linux.

(видимо, имеется в виду типичный говнокод ядра

struct foo* p = bar->p;

if (!bar) {
...
}
который ядрописатели не считают багом, а винят в своих кривых руках компиляторы)

Перемещено tailgunner из development

 ,

utf8nowhere
()

Откуда такой восторг от ThinkPad?

Форум — Talks

В Ноутбук за 35-40 тысяч рублей настойчиво рекомендуют refurbished ThinkPad.

Ну у меня ThinkPad TXXXs. Не стал бы его особо рекомендовать кому-то. (И сам не буду брать больше.) Ноут как ноут. Дрянной пластиковый корпус: потрескался, стоило мне чуть-чуть переборщить с затягиванием винтика при сборке.

Полно ноутов с хорошим экраном и металлическим корпусом и не дороже ThinkPad-ов.

Откуда такой восторг от ThinkPad?

 ,

utf8nowhere
()

В каком месте XCB «асинхронный»?

Форум — Development

Вместо ответов на запрос он возвращает так называемые cookies, по которым можно получить ответ. И ждать ответа с использованием cookies надо — та-дам! — синхронно, блокируясь. Это вместо действительно асихронных колбэков.

Конечно, вы можете сказать, что cookies это Futures, а Futures это более лучший, более высокоуровневый механизм, чем колбэки. Но Futures хороши когда они и правда высокоуровневые и предоставляют, например, возможность их композиции. А куцые Futures, типа XCB cookies, хуже колбэков. IMO.

 ,

utf8nowhere
()

linux, Intel GPU, битые шрифты

Форум — Desktop

www.linux.org.ru/images/17858/original.gif

Не видел подобного года с 2012-го.

В Ubuntu 17.10 опять вернулось.

Thinkpad T410s, i5-520M со встроенным видео, ядро 4.13.0-21-generic.

По моим наблюдениям проблемы проявляются не сразу и не при любых условиях. Замечено, что при подключении внешнего монитора (и даже после его последующего отключения) через некоторое время иксы начинают тормозить. Скроллинг, например, превращается в слайд-шоу и процесс xorg при этом сильно грузит CPU.

Возможно, самого подключения/отключения внешнего монитора недостаточно, ещё нужно отключить ноутбук от блока питания. Драйвера переходят/переводят железо в режим уменьшения производительности и потом из него не выводят? От тормозов иксов помогает только релогин или перезагрузка.

Теперь увидел «фирменную» фишку интеловских драйверов — битые шрифты, про которую уже почти успел забыть со времён Арча на EEE PC.

UPD: что касается тормозов иксов:

[ 40510.329] (II) intel(0): EDID vendor "LEN", prod id 16438
[ 40510.329] (II) intel(0): Printing DDC gathered Modelines:
[ 40510.329] (II) intel(0): Modeline "1440x900"x0.0  106.89  1440 1488 1520 1924  900 903 909 926 -hsync -vsync (55.6 kHz eP)
[ 40510.329] (II) intel(0): Modeline "1440x900"x0.0   89.26  1440 1488 1520 1740  900 903 909 1026 -hsync -vsync (51.3 kHz e)
[ 40515.096] (II) intel(0): resizing framebuffer to 1920x1080
[ 40515.162] (II) intel(0): switch to mode 1920x1080@60.0 on VGA1 using pipe 0, position (0, 0), rotation normal, reflection none
[ 42566.284] (EE) intel(0): Failed to submit rendering commands (No such file or directory), disabling acceleration.
Есть такой багрепорт https://bugs.freedesktop.org/show_bug.cgi?id=103509
И такой https://bugs.freedesktop.org/show_bug.cgi?id=103025

 

utf8nowhere
()

Return при автологине в терминале выдаёт код 0x0d вместо 0x0a

Форум — General

Настраиваю автологин при использовании machinectl login, через /etc/systemd/system/container-getty@.service.d/override.conf:

[Service]
ExecStart=
ExecStart=-/sbin/agetty --noclear -a user --keep-baud pts/%I "115200 38400 9600" $TERM

Автологин работает, но при этом enter работает «криво». Если запустить xxd и понажимать enter, то xxd печатает 0d.

Если из опций agetty убрать -a user, т.е. автологин, и залогиниться с вводом пароля, то xxd печатает 0a, как и должно быть.

bash переваривает кривое поведение enter-а при автологине, а многий другой софт — нет, приходится жать Ctrl-J, что неудобно.

stty -a при автологине

speed 38400 baud; rows 44; columns 142; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd -cmspar cs8 hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl ixon ixoff
-iuclc -ixany -imaxbel iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon -iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
-echoctl echoke
при обычном логине
speed 38400 baud; rows 44; columns 142; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd -cmspar cs8 hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon ixoff
-iuclc -ixany -imaxbel iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon -iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
-echoctl echoke
diff -u noauto auto
--ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon ixoff
+-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl ixon ixoff

Нашёл такое https://lists.freedesktop.org/archives/systemd-devel/2015-July/033533.html

Как чинить?

 , ,

utf8nowhere
()

Общие /var /etc для нескольких boot environments

Форум — General

(для нескольких экземпляров / на одной ЭВМ: от снепшотов одной системы (как минимум) до разных неродственных дистрибутивов (как максимум))

Я так понимаю, в debian/ubuntu это не реально, т.к. systemd там собирается с отключённым systemd-sysusers.service, и sysusers.d для создания системных пользователей не используется. Поэтому несколько систем передерутся за /etc/passwd: если в двух системах есть пакет с демоном, которому нужен пользователь и этот пакет удаляется в одной из систем, то из /etc/passwd выпилится запись о пользователе и при перезагрузке во вторую систему выйдет лажа.

Насколько реально это в RHEL/её производных?

 , ,

utf8nowhere
()

Поеттеринг сознался в диктаторстве

Форум — Talks

В http://0pointer.de/blog/projects/on-etc-sysinit.html Поеттеринг называет избавление от дистрибутиво-специфичных конфигов «дебалканизацией»:

Configuration stored in these files works against de-balkanization of the Linux platform.

«балканизация» — это дробление балканских государств на более мелкие, например, распад Югославии. Дебалканизация — типа обратный процесс. Т.е. Поеттеринг считает себя кем-то типа Милошевича и отрицает право дистрибутивов на самоопределение.

Не пора ли созвать Международный трибунал по systemd?

 , ,

utf8nowhere
()

javaws: выдать AllPermission неподписанному jar

Форум — Development

или «человек разумный против макакотехнологии».

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

Найденный в интернете способ написать

grant {
    permission java.security.AllPermission;
};
в javaws.policy у Oracle Java 8 и IcedTeaWeb/OpenJDK-8 эффекта не возымели ни там, ни там. Исключение по-прежнему вылетает и запустить приложение нельзя. А очень нужно.

Всякие добавления сайтов в списки исключений и прочие отключения проверок сертификатов в Java Control Panel тоже не помогли.

Как это победить?

 ,

utf8nowhere
()

Справедливое распределение ресурсов (CPU, RAM etc.) для нескольких пользователей

Форум — Admin

В общем, задача ясна — раздавать ресурсы пользователям поровну, чтобы один пользователь, создав 1000 процессов, не мешал пользователям, создавшим 10 процессов, т.е. не сожрал всё CPU-time.

Оказалось, что знаменитейшая величайшая распрекраснейшая shell-code-несодержащая известнейшая современнейшая несравненная блистательная незаменимая неотразимая непогрешимая безглючная безбажная и прочая и прочая systemd, после стольких лет разработки и пиара, не может решить эту тривиальную задачу (см. https://github.com/systemd/systemd/issues/2556).

А что может решить эту задачу?

Обращаю внимание, что меня интересует готовое решение, а не капитанство «ну это с помощью cgroups можно решить)))0)0».

 ,

utf8nowhere
()

Ещё более ублюдочный шрифт нельзя использовать?

Форум — Linux-org-ru
code {
    font-family: "Droid Sans Mono", monospace, sans-serif;
}

Droid Sans Mono? Серьёзно? Видели, как в нём выглядят -> или -=? А сравните (-){-}[-] с (+){+}[+]

Никак нельзя было не выбрать шрифт, в котором - и скобки выравнены по высоте не так, как + и остальные символы, вроде < > = и т.д.?

 

utf8nowhere
()

С помощью GDB можно удобно отлаживать форкающиеся процессы?

Форум — Development

Есть одна софтина, которая запускает fork-ом условный сервер и общается с ним как клиент (или наоборот).

Можно это как-то отлаживать без боли с помощью gdb? Бряки ставить в сорцах и ловить остановку на них в разных процессах?

Если скомандовать set detach-on-fork off, всё к чёрту зависает. Я в курсе про inferiors, но вот IDE — нет. И вообще это костыль.

Вставлять/удалять дебажный вывод не предлагать, изменение кода интересующих файлов влечёт перелинковку почти всего прожэкта и регенерацию кучи PCH- и ещё каких-то файлов. Это, конечно, длится не часами, но всё равно ждать надоело.

 , ,

utf8nowhere
()

Танцпольный аватар

Форум — Linux-org-ru

 

utf8nowhere
()

memory_order_consume deprecated в C++17

Форум — Development

Вообще не понятно зачем эта НЁХ была нужна.

 

utf8nowhere
()

Intel напрягся: новые российские процессоры «Байкал» превзошли западные аналоги

Форум — Talks

На этой неделе Министерство промышленной торговли выдало компании «Т-Платформы» субсидию в размере 150 млн рублей, которая пойдет на разработку сверхпрочного ноутбука, в котором будут использоваться отечественные процессоры «Байкал».

Как сообщает Slovodel, отечественное «железо» будет превосходить западные аналоги по ряду важнейших критериев.

«Неубиваемый» ноутбук
«Т-Платформы» начала активную работу после введения западными странами санкций в рамках курса импортозамещения и уже реализовала несколько проектов. На данный момент компания разрабатывает два проекта. Первый посвящен ноутбуку, который создают на базе процессора х86 Intel, второй проект — полностью отечественная разработка на базе процессора Baikal-M компании «Байкал Электроникс», дочерней компании «Т-Платформы». При этом ноутбуки будут работать на операционной системе Linux, но по желанию заказчиков они будут встраивать Windows 10.

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

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

По расчетам разработчиков, для создания «промышленного» ноутбука им понадобится не менее года.

На смену Intel
До этого компания разработала российский двухъядерный процессор Baikal-T1 на 32-битном ядре MIPS Warrior. По словам представители российского холдинга «Рикор» Алексея Ванина, цены на отечественные процессоры будут варьироваться в пределах $50, тогда как тот же процессор Intel Core i3-3110M стоит сейчас $100. Комбинация процессора и высокоскоростных интерфейсов позволяет работать чипу быстро и при минимальной затрате энергии. Производитель заявляет о высокой конкурентоспособности российского процессора.

В прошлом году партия российского производства была отправлена в немецкий вычислительный центр Forschingszentrum Julich, Университет штата Нью-Йорк в Стоуни-Брук, Рижский технический университет, Финский суперкомпьютерный центр CSC-IT Center for Science.

Также идут переговоры с российским производителем смартфонов Yota Devices. Основатель «Байкал Электроникс» Всеволод Опанасенко пояснил:

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

Сейчас российскими процессорами интересуются свыше 100 компаний, в том числе и из Тайваня и ряда европейских компаний. При этом, по данным статистики, объемы продаж процессоров Intel и AMD в России снижаются.

Дочерняя компания «Байкал Электроникс» при участии «Ростеха» и «Роснано» с 2014 года создает микропроцессоры Baikal для персональных компьютеров и микросерверов. В августе 2015 года Экспертный совет Фонда развития промышленности одобрил 500-миллионный рублевый займ для того, чтобы выпустить процессор Baikal-T1 в массовое производство. К 2020 году на рынок поступит не менее 5 млн этих процессоров.

http://www.macdigger.ru/macall/intel-napryagsya-novye-rossijskie-processory-b...

 , , ,

utf8nowhere
()

Не нарушает ли ник «u0atgKIRznY5» правила регистрации?

Форум — Linux-org-ru

www.linux.org.ru/people/u0atgKIRznY5/profile

https://www.linux.org.ru/help/rules.md

При регистрации на сайте запрещается: использовать длинные имена, состоящие из произвольного набора символов, в том числе: случайные последовательности; кодирования uuencode, base64, binhex; хеши; uuid и т.п;

 

utf8nowhere
()

Спасибо товарищу maxcom-у за наше счастливое детство!

Форум — Linux-org-ru

Прочитал в Удаление ценных для сообщества постов (комментарий)

tailgunner временно лишен модераторских полномочий

и сразу настроение поднялось.

Надеюсь, этого врага народа по результату голосования модераторов вообще забанят.

Да здравствует наша цветущая социалистическая родина!
Да здравствует наш любимый и мудрый вождь товарищ maxcom!

 

utf8nowhere
()

Все софтверные мануфактуры придерживаются таких взглядов?

Форум — Development

Роберт Мартин. Быстрая разработка программ

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

 

utf8nowhere
()

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