The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

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

21.10.2011 17:33

Кей Сайверс (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();
  • Уведомление, когда завершается произвольный процесс, не только дочерний.


  1. OpenNews: Список возможностей, которых не хватает в ядре Linux по мнению системных программистов
Лицензия: CC-BY
Тип: Обобщение
Ключевые слова: kernel, linux, system
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (44) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.3, AlexAT (ok), 18:24, 21/10/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >>> Добавление в tmpfs поддержки дисковых квот для защиты от переполнения /tmp, /dev/shm, /run/user/$USER отдельным пользователем.

    Да.

    >>> Использование 64-разрядных PID-идентификаторов по умолчанию.

    Да!

    >>> Вариант файловой системы в стиле unionfs или возможность слияния нескольких точек монтирования (union mount).

    ДА!!!

    Остальное под вопросом. В частности "управление подкачкой" и "уведомление о завершении любого процесса" - потенциальные дыры.

     
     
  • 2.9, gfh (??), 19:34, 21/10/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    mhddfs ?
     
     
  • 3.17, СуперАноним (?), 21:54, 21/10/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >>> Использование 64-разрядных PID-идентификаторов по умолчанию.
    >Да!

    Нахрена? Неужели на одной машине может быть одновременно более 4 млрд. процессов? Даже на кластере трудно представить столько.

     
     
  • 4.19, AlexAT (ok), 21:57, 21/10/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >>>> Использование 64-разрядных PID-идентификаторов по умолчанию.
    >>Да!
    > Нахрена? Неужели на одной машине может быть одновременно более 4 млрд. процессов?
    > Даже на кластере трудно представить столько.

    Нет, но неповторяемость идентификаторов при частой смене тысяч процессов типа pppd очень удобна.

     
  • 2.13, gegMOPO4 (ok), 20:55, 21/10/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Наверняка для этого понадобятся особые права, так что нормально.
     

  • 1.12, Аноним (-), 20:04, 21/10/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Уведомление, когда завершается произвольный процесс, не только дочерний

    Моя мечта - утилита killwait, которая бы не просто отправляла сигнал процессу, но и дожидалась его завершения.

     
     
  • 2.14, gegMOPO4 (ok), 20:59, 21/10/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ...и контрольный выстрел в голову.
     
     
  • 3.15, Аноним (-), 21:48, 21/10/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Да, возможность отправить сигнала 9 по таймауту должна быть обязательной фичей.
     
  • 2.16, Аноним (-), 21:49, 21/10/2011 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >Моя мечта - утилита killwait, которая бы не просто отправляла сигнал процессу, но и дожидалась его завершения.

    #!/bin/bash
    #killwait
    kill -9 $1
    sleep 1

     
     
  • 3.18, Аноним (-), 21:55, 21/10/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > -9
    > sleep 1

    не годится.

     
     
  • 4.22, gegMOPO4 (ok), 23:39, 21/10/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Может попробовать помониторить /proc?
     
     
  • 5.25, Аноним (-), 00:10, 22/10/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Может попробовать помониторить /proc?

    Может просто стоит признать, что

    >Уведомление, когда завершается произвольный процесс, не только дочерний.

    нужная штука?

     
  • 4.23, Аноним (-), 23:57, 21/10/2011 [^] [^^] [^^^] [ответить]  
  • +/
    kill $1
    while kill -0 $1; do sleep 1; done
    ?
     
     
  • 5.24, Аноним (-), 00:06, 22/10/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Примерно такие костыли и использую. Но хотелось бы нормальный способ.
     
  • 5.32, Аноним (-), 14:45, 22/10/2011 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Некотрые видимо не понимают разницы между ожиданием таймаута и ожиданием событий... большой текст свёрнут, показать
     
     
  • 6.35, Аноним0 (?), 02:10, 23/10/2011 [^] [^^] [^^^] [ответить]  
  • +/
    боюсь плюсануть, т.к много текста про бсд, совсем неуместного. а вот то что сигналы надо обрабатывать, а не херней страдать с килами и слипами (которые выглядят крайне глупо) хочу подчеркнуть.
     
     
  • 7.41, Аноним (-), 06:00, 23/10/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Все там уместно. Тема как озаглавлена? Список возможностей, которых не хватает Линуксу. Вот и было сказано, чего ему не хватает. Ну и что в нем неправильно - сюда же.
     
  • 6.42, AlexAT (ok), 14:09, 23/10/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >>> Все нормальные юниксы передают их через стек. И только в Linux почему-то

    Потому, что доступ к регистрам быстрее доступа в память. А регистров на современных процах полно. Особенно на не-x86. И на x86_64. И только "нормальные юниксы" этого не учитывают, каждый вызов жертвуя пропускной способностью кеша и памяти.

    >>> Заставляя приложение все время сохранять и восстанавливать регистры и терять кучу циклов на это

    Зачем? Компилятор настолько туп, что не может оптимизировать доступ к регистрам?

    >>> и увеличивая вероятность возникновения ошибок.

    Можно пояснить, чем разница в расположении данных "увеличивает вероятность"?

    >>> Хотя регистры все равно в стек сохраняются. Зачем этот ДОС-овский маразм нужен?

    Есть хитрость - в ряде случаев можно ничего не сохранять.


     
     
  • 7.44, Аноним (-), 17:23, 23/10/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вы видимо не знаете более достойного использования регистров, пусть даже если ре... большой текст свёрнут, показать
     
     
  • 8.45, AlexAT (ok), 18:40, 23/10/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В момент вызова ядра более достойного использования им всё равно нет - все приде... текст свёрнут, показать
     
     
  • 9.52, Аноним (-), 08:36, 24/10/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я переставил некоторые ваши абзацы местами при цитировании, сгруппировав их по ... большой текст свёрнут, показать
     
     
  • 10.55, AlexAT (ok), 23:11, 24/10/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо, кэп Открыть секрет Оптимизация по размеру делается в ущерб производит... текст свёрнут, показать
     
     
  • 11.56, AlexAT (ok), 23:13, 24/10/2011 [^] [^^] [^^^] [ответить]  
  • +/
    ЗЫ Последний тезис - про абстрактные сферические в пределах одной программы Пр... текст свёрнут, показать
     
     
  • 12.58, Аноним (-), 14:29, 25/10/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Ну допустим, здесь я позволил себе допустить небрежность Следовало сказать не о... большой текст свёрнут, показать
     
     
  • 13.59, Аноним (-), 15:00, 25/10/2011 [^] [^^] [^^^] [ответить]  
  • +/
    В простоте, кода и инструментов Вам нужны примеры простоты Сложность может выи... текст свёрнут, показать
     
  • 13.60, AlexAT (ok), 08:06, 26/10/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Я доверяю ABI, которое однозначно говорит, что надо сохранять Нормальный оптими... большой текст свёрнут, показать
     
     
  • 14.61, Аноним (-), 17:49, 26/10/2011 [^] [^^] [^^^] [ответить]  
  • +/
    О, да Это одна из моих любимых фраз simple, stupid - похоже Ваше всё - то ... большой текст свёрнут, показать
     
  • 8.49, Ytch (?), 23:58, 23/10/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Если регистры используются для передачи возврата значений функций, это вовсе не ... большой текст свёрнут, показать
     
     
  • 9.53, Аноним (-), 08:56, 24/10/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Вы неправильно все интерпретируете Как раз таки наследие DOS и отягощено прив... большой текст свёрнут, показать
     

  • 1.20, Аноним (-), 22:55, 21/10/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    aufs разьве не заменяет unionfs ? Или я туплю и его нету в ванильном ядре?
     
     
  • 2.54, Аноним (-), 13:53, 24/10/2011 [^] [^^] [^^^] [ответить]  
  • +/
    aufs как раз является "вариантом файловой системы в стиле unionfs". Но в ваниле таких ФС нет и не будет, Торвальдс в свое время высказался достаточно жестко.
     

  • 1.21, Андрей (??), 23:31, 21/10/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    "В механизм нотификации fanotify..."
    Да, и монтирование - это изменение! Плиз, добавьте! Каких только "выстрелить себе в ноге" не наёдёшь, чтобы мониторить такую вещь как монтирование!
     
  • 1.26, pavlinux (ok), 02:32, 22/10/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Мечты 0 Верните dev XOR 1 Нужны dev aes, dev blowfish, dev gost, ... большой текст свёрнут, показать
     
     
  • 2.33, Аноним (-), 15:02, 22/10/2011 [^] [^^] [^^^] [ответить]  
  • +/

    > 7. Хотя бы примитивный искусственные интеллект с предсказаниями для SMP-балансировщика,
    >    чтоб после 500 раз форков апача он уже понимал,
    > что каждый 50-й надо сразу форкать
    >    на новый процессор/ядро, а не ждать пока ядро загрузиться
    > до 101%

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

     
  • 2.36, Аноним (-), 03:34, 23/10/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >Мечты.
    >0. Верните /dev/XOR
    > ...

    Pavlinux, ты реально крут. Очень надеюсь что пожелания уже успел отправить девелоперам. Я уверен, что если и kernel-хакеры не реализуют все или какую-то часть, то ваши пожелания, как минимум, получать широкую огласку, что увиличивает (потенциально) щансы на улучшения. Ну а если у вас есть напористость - то вполне можете завести дискуссию и остаивать необходимые пунткы. То что вы понаписали сильно может улучшить ядро. Это очень хорошо.

     

  • 1.28, Какаянахренразница (?), 10:38, 22/10/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А где список пожеланий, которые были в предыдущей редакции, но не вошли в нынешнюю, ибо УЖЕ ВЫПОЛНЕНЫ? Или несть таких?
     
     
  • 2.29, Aquarius (ok), 11:33, 22/10/2011 [^] [^^] [^^^] [ответить]  
  • +/
    так быстро?
    однако, вы фантазер, батенька
     
     
  • 3.39, fyjybvec (?), 04:27, 23/10/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    По первому списку я видел несколько патчей в течение дня-двух, дальше не отслеживал.
     

  • 1.37, Аноним (-), 03:57, 23/10/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    не отказался бы от сжатия tmpfs с, скажем, LZO.

    а то 4х гектаров мозгов уже еле хватает, чтобы фуррифокс 8-ой собрать.

     
     
  • 2.38, Аноним (-), 04:09, 23/10/2011 [^] [^^] [^^^] [ответить]  
  • +/
    ZRAM?
     
     
  • 3.40, Аноним (-), 05:05, 23/10/2011 [^] [^^] [^^^] [ответить]  
  • +/
    опа-це! спасибо за наводку!
     
     
  • 4.43, Аноним (-), 14:32, 23/10/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Как просто открывался ларчик. Кстати, если 4 гектар мозгов не хватает на какую-то сборку, я бы всерьез подумал о качестве всего мемори менеджмента в ядре. Как-то фиговато-вато-этово это выглядит. Чай, не Оракл собирать.
     
     
  • 5.57, Aquarius (ok), 06:05, 25/10/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Как просто открывался ларчик. Кстати, если 4 гектар мозгов не хватает на
    > какую-то сборку, я бы всерьез подумал о качестве всего мемори менеджмента
    > в ядре. Как-то фиговато-вато-этово это выглядит. Чай, не Оракл собирать.

    а почитать внимательнее если?
    речь идет о tmpfs, то есть об использовании памяти в качестве контейнера для того, что принято называть виртуальным диском

     
  • 3.47, Аноним (-), 23:55, 23/10/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > ZRAM?

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

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Слёрм
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру