Интересно, как это работает.
Sep. 4th, 2013 09:38 amИз Changelog новой версии ядра Linux (3.11, "Linux for workgroups"):
В системные вызовы open() и openat() добавлена поддержка флага O_TMPFILE, позволяющего передать файловой системе информацию о создании временного файла, не видимого в иерархии ФС, что позволяет применить для данного типа файлов отдельные оптимизации. Создаваемые при помощи O_TMPFILE временные файлы не имеют имени, в качестве пути передаётся только директория. Создание невидимого временного файла без имени позволяет разработчикам приложений не задумываться о возможных уязвимостях, таких, как атака через символические ссылки;
В ряде мест такая возможность сильно упростит жизнь. Но до широкого распространения, боюсь, еще долго.
В системные вызовы open() и openat() добавлена поддержка флага O_TMPFILE, позволяющего передать файловой системе информацию о создании временного файла, не видимого в иерархии ФС, что позволяет применить для данного типа файлов отдельные оптимизации. Создаваемые при помощи O_TMPFILE временные файлы не имеют имени, в качестве пути передаётся только директория. Создание невидимого временного файла без имени позволяет разработчикам приложений не задумываться о возможных уязвимостях, таких, как атака через символические ссылки;
В ряде мест такая возможность сильно упростит жизнь. Но до широкого распространения, боюсь, еще долго.
no subject
Date: 2013-09-04 03:31 pm (UTC)Впрочем, я как-то больше пошел по прикладным, поэтому многих подробностей не помню. Надо поспрошать брата, который во времена оные написал на ассемблере аналог squeeze, который использовался на ... Откат был невозможен, при сбое умирало все, но работало раз в 5 быстрее :)
no subject
Date: 2013-09-05 12:47 am (UTC)Разумеется - так для close подобные функции естественны довольно таки
А в RSX каталог был просто файлом с записями по 16B емнимп, которые устанвливали соответствие имяфайла -> его ID - (ID - пара - порядковый номер, контрольное значение, потом появился третий - номер устройства кажется, или хоста).
Файловый процессор в принципе умел по отдельному каталогу искать (хотя я так и не очень понял зачем), а уже работа с вложенными каталогами делалась просто на уровне user space библиотеки (что забавно - хотя структура была формально двух уровневой - главный каталог - пользовательские - зашито было исключительно на уровне соглашений об именовании файлов и соответствующих функций. Уже утилита Verify (тамошний fsck) работала с произвольной вложенностью каталогов и произвольными же их именами.
А собственно файл с точки зрения системы представлялся именно ID.