February 2026

S M T W T F S
1234567
891011121314
15161718192021
22232425262728

Style Credit

Expand Cut Tags

No cut tags
Tuesday, October 17th, 2017 03:31 pm
API fail: Linux stores file creation timestamp (on most filesystems). stat() has structures to retrieve it. CLI tools have formats and UI to support it. But Linux kernel just doesn't return file creation TS, despite having it. Why? Because shut up, that's why.
[personal profile] gb0
Tuesday, October 17th, 2017 10:40 pm (UTC)
Не просто shut up. Shut up and do it. FOSS же.
[personal profile] gb0
Wednesday, October 18th, 2017 12:11 am (UTC)
Линупс и красноглазие – прям как Michelle и ma belle – tres bien ensemble. FOSS не означает несправедливости TANSTAFL. There (still) Ain't No Such Thing As a Free Lunch.
Thursday, October 19th, 2017 12:05 am (UTC)
это не API в кернел. а тупо в драйвер конкретной FS дописать. раз уж хочется завязаться на нее.
Thursday, October 19th, 2017 06:09 am (UTC)
Если нужно настолько нестандартное не-POSIX поведение, то можно и драйвер написать.
Thursday, October 19th, 2017 06:15 am (UTC)
Ну, если надо, то и ос пишем. А че делать, никто не обещал, что будет легко.
Ключевой вопрос: надо ли?
Tuesday, October 17th, 2017 10:42 pm (UTC)
Непонятно, зачем такое время может быть нужно.
Wednesday, October 18th, 2017 02:31 am (UTC)
"Because POSIX doesn't require it, and we're lazy."

Sunday, October 22nd, 2017 11:01 pm (UTC)
Вносить в ядро расширения к позиксу - вызывать проблемы при смене ОС. На это, как я понимаю, в линуксе вполне идут. См. напр. расширенные файловые атрибуты. Но вносить в ядро расширения не всеми файловыми системами в самом же линуксе поддерживаемые - вызывать проблемы типа на этом файле программа работает, а на этом почему-то нет. Паранойю в ЭТОМ месте можно только приветствовать.
Thursday, October 19th, 2017 12:04 am (UTC)
Не понял в чем проблема, ну нет стандартного API для этого. Мало того не все файловые системы это поддерживают.
Какой надо было изобресть?
А еще у меня есть несколько вопросов:
1. Вот берем тар, тарим в архив какие-то файлы, стираем все, антарим архив в то же место. Какие должны быть "birth" таймстемпы?
2. Тот же вопрос, но немного сбоку: кончается место в /var, подключаем новый диск, бэкапим на него /var, маунтим тот диск под /var-ом, какое поведение ожидается?
Thursday, October 19th, 2017 06:11 am (UTC)
Мне интересно тогда, какое поведение апликации может рассчитывать на birth timestamp, если оный таймстемп может под апликацией незаметно поменяться?
Thursday, October 19th, 2017 06:20 am (UTC)
Еще раз: какое поведение апликации завязано на такие таймстемпы?
В обычном линуксе есть ключи к tar и другим утилитам, которые позволяют таймстемпы _сохранять_, мой вопрос был о том как сохранять и этот таймстемп?
Переписать еще и tar, cp, mv и еще кучу? Сказать, что поведение их undefined? Другая смешная опция?
Thursday, October 19th, 2017 06:37 am (UTC)
Хмм, это была хорошая мысля.
Посмотрел быстренько в код gnu tar, и таки я прав, не используется нигде get_stat_birthtime_ns(), хоть и объявлен.
Thursday, October 19th, 2017 06:31 am (UTC)
P.S. Это я на самом деле к тому, что если не переписывать tar и cp, то после tar -cpf и cp -a (описанные в пп. 1 и 2) у нас будут все таймстемпы (включая last modification time) _меньше_, чем birth.
Thursday, October 19th, 2017 06:38 am (UTC)
Скорее всего апликация, завязанная на такое поведение, сделает что-то не то, а если это поведение не обязательно, то и поддерживать не обязательно.
Thursday, October 19th, 2017 06:55 am (UTC)
> Какое "такое" поведение?

На поведенеие, где для чего-то требуется знать именно birth time, и не достаточно last modification.
Т.е. у меня нет идей зачем это надо, поэтому уже over 9000 букв я прошу узнать зачем кому-то это надо?
Friday, October 20th, 2017 08:45 pm (UTC)
> Таймстемп, натурально, когда запись в каталоге создана.

может всё-таки inode?