Короткие новости

Jim Meyering выпустил grep версии 2.21. Обращаем внимание, что хотя Jim говорит, что это релиз, ускоряющий работу, версия у него нечетная. Это значит, что завтра Jim запросто может выпустить экстренный багфикс-релиз.

Хотя многие наши коллеги имеют более десятка-полутора-двух лет опыта работы с Linux и Open Source, еще полно моментов, которые мы понимаем неполностью. Этого мы никогда не стеснялись, не стесняемся и не будем стесняться - учиться никогда не поздно, и всегда приятно и полезно. Вот тут приключилась интересная история, разборки с которой пролили свет на еще один темный уголок Unix-архитектуры. Мы, как и некоторые другие люди, не понимали, почему если процесс запущен не от суперпользователя, то он не может сбросить себе некоторые привилегии - например, группы. Понятно, почему нельзя назначить себе группы, но отказаться-то почему нельзя? Сходу понять это не получается. Josh Triplett решил, что это ошибка, и прислал патч, исправляющий это поведение. В обсуждении оказалось, что Josh, как и мы, просто был не в курсе типичного use case, популярного среди матерых Unix-админов, который проще показать, чем объяснять. Можно создать группу restricted_group_name и добавить туда пользователей. А затем выставить на каталог права доступа 705, а затем сменить владельца вот так - chmod root:restricted_group_name /path/to/restricted_dir. И теперь каталог /path/to/restricted_dir будет доступен всем, кроме тех, кто находится в группе restricted_group_name. А если они смогут сбрасывать группы, то смогут достучаться до содержимого каталога. Вот так.

Кстати, у Josh есть и другие интересные патчи - например, позволяющий процессу иметь несколько UID.

Сдвинулось с мертвой точки портирование Go на неподдерживаемые Google платформы. Во-первых в GCC включают поддержку Go на s390x. Во-вторых представили первый вариант фронтэнда Go для LLVM. Вообще Google очень разумно ограничил язык лишь рядом процессорных архитектур и рядом операционных систем, радикально сократив матрицу тестирования. Тем, кому надо, они предлагают самим реализовывать функционал, и догонять уезжающий поезд, причем строго отдельно, чтоб не мешать лететь. А вот в Opensource-коммьюнити до сих пор местами крикливые меньшинства сдерживают движение вперед большинства.

Дмитрий Монахов, попавший в КПЗ из-за своей политической позиции, откинулся и теперь авторитетный программист в Parallels благополучно вернулся к работе. Мы уже видим его в деле, например, в обсуждении интересного патчсета от Theodore Tso - lazytime, замена relatime. Немного истории - в Unix есть три типа таймстемпов у файлов и директорий, ctime (время изменения файла или его метаданных), mtime (время изменения файла) и самый бесполезный в быту, но самый ресурсоемкий - atime (время последнего доступа к файлу, например его чтения без изменения содержания). Если нам бывает часто интересно, когда последний раз изменено содержимое файла или его права доступа, то когда последний раз производилось чтение - не так важно (хотя многие почтовые клиенты всерьез работали именно так, учитывая atime). Некоторые с незапамятных времен добавляют в опции монтирования noatime, хотя, как говорят, сейчас достаточно добавить relatime, чтоб почти всегда это работало хорошо. Однако, Theodore поразмыслил, и решил, что можно улучшить еще, не нарушая замшелый стандарт POSIX, который требует работы именно atime, не noatime, relatime или чего еще. Он предложил накапливать изменения atime в памяти, и сбрасывать на диск лишь когда кончается память, либо когда происходят какие-либо иные события, требующие обновления atime. Звучит неплохо, и говорят, что примерно так было уже давным давно реализовано в Solaris. К сожалению, Theodore реализовал функционал лишь для ext4. Наш коллега, инженер Red Hat, Dave Chinner, справедливо посчитал, что это не лучший архитектурный вариант, и предложил реализовать ее на уровне выше, на VFS, что автоматически (ну или почти автоматически) добавит эту функциональность во все файловые системы. Посмотрим, что из этого получится.

В интервью с кандидатами в Fedora Council им задавался вопрос - "в чем состоит успешность нашего проекта и как ее измерить?" Некоторые отметили, что не в количестве пользователей или участников, а в способности убеждать других в правоте выбранных нами архитектурных решений. Ну раз так, то у нас еще две победы. Во-1 инженер Google, Russell Hancox, разработал santa - с нашей точки зрения, это выглядит, как SELinux для Mac OS X, хотя почитав реализацию мы бы порекомендовали автору не мучаться, а портировать SELinux, как есть. Конечно, лицензия не та, но что же остается делать остающим? А во-2 отстающие наконец-то сообразили, что отстают, и это очень здорово! В течении следующих десяти лет FreeBSD собирается переходить на launchd. Для нас это не новость, разумеется. Срок, конечно, удивительный, но по-другому не получится - ни у одного из всех пяти разработчиков FreeBSD нет свободного времени. Им бы, конечно, не мучаться, а взять systemd, но верующие в BSD считают GPL несвободной, и поэтому копировать решение будут из проприетарной Mac OS X - таково понимание свободы у любителей Windows и Putty. В ленте Google+ у Lennart Poettering уже с удовольствием обсуждают новость.

Ну и напоследок грустная новость, никак не связанная с Fedora - в Google полностью отказываются от OpenID. Еще один открытый стандарт медленно бредет на свалку истории.