Новая редакция списка возможностей, которых не хватает в ядре Linux по мнению системных программистов

Кей Сайверс (Kay Sievers), Леннарт Поттеринг (Lennart Poettering) и Харальд Хойер (Harald Hoyer) опубликовали обновлённый вариант списка возможностей, которых не хватает в ядре Linux по мнению системных программистов, занимающихся разработкой низкоуровневых компонентов для Linux-систем.

По сравнению с первым вариантом в новом списке добавлены следующие пожелания:

  • Добавление в tmpfs поддержки дисковых квот для защиты от переполнения /tmp, /dev/shm, /run/user/$USER отдельным пользователем;
  • Добавление корректной поддержки fallocate() для tmpfs для предварительного резервирования места под создаваемые файлы;
  • В механизм нотификации fanotify предлагается добавить поддержку генерации событий при переименовании файла, создание безопасного метода непривилегированного доступа и возможность передачи информации о флагах открытия файлов, что позволит осуществляющим мониторинг приложениям разобрать открыт файл на запись или только на чтение. Также предлагается создать метод проверки был ли действительно изменен файл после закрытия, если файл был до этого открыт в режиме записи и чтения (read-write);
  • Более быстрая реализация xattrs для ext2/3/4, позволяющая использовать xattrs из пространства пользователя без дополнительных накладных расходов на позиционирование;
  • Возможность создавать доступные в режиме только для чтения точки bind-монтирования (одна директория монтируется в другую) через один системный вызов mount(), вместо двух (возможен эффект гонки). Через один системный вызов также предлагается реализовать настройки для точки монтирования, связанные с пространством имён;
  • Возможность управлять перемещением в область подкачки для отдельных страниц памяти;
  • Готов патч для нотификации об изменении имени хоста и патч для PR_SET_CHILD_SUBREAPER;
  • Использование 64-разрядных PID-идентификаторов по умолчанию;
  • Вариант файловой системы в стиле unionfs или возможность слияния нескольких точек монтирования (union mount);
  • Реализация системного вызова revoke();
  • Уведомление, когда завершается произвольный процесс, не только дочерний.

Полный текст статьи читайте на OpenNet