قابلیت خفن Provenance Time؛ زمانسنج جدید لینوکس برای فایلها

تا حالا شده فایلی رو جابجا کنید و تاریخ ساختنش بپره؟ دنیای لینوکس قراره با یک تغییر بزرگ روبهرو بشه. اگر با سیستمعاملهای متنباز کار کرده باشید، میدونید که Kernel لینوکس و خیلی از file-system driverها سالهاست که از چیزی به اسم birth time برای فهمیدن زمان دقیق تولد یا همون ساخت فایلها و دایرکتوریها استفاده میکنن. حالا قراره یک مفهوم جدید و جذاب به اسم Provenance Time یا همون ptime به این دنیا اضافه بشه تا این مشکلات رو به شکل دیگهای حل کنه!
این قابلیت جدید قراره تاریخ دقیق ساخت یک فایل یا دایرکتوری رو خیلی دقیقتر ردیابی کنه. تفاوت اصلیش با birth time سنتی اینه که تاریخچه اصلی محتوای فایل رو حتی وقتی بین فایلسیستمهای مختلف جابجا میشید، حفظ میکنه. یعنی دیگه تاریخ کپی شدن جایگزین تاریخ اصلی تولد فایل نمیشه و تاریخچه گم نخواهد شد.
توسعهدهزنده این پیشنهاد جذاب، جزئیات فنی جالبی رو مطرح کرده که نشون میده این timestamp جدید چقدر میتونه کاربردی باشه:
“معناشناسی این timestamp جدید باید حداقل به این شکل باشه:
– روی یک فایل تازهساختهشده دقیقا مثل btime عمل میکنه
– توسط کاربر قابل تنظیمه، پس برای بکآپگیری، تبدیل فایلسیستم، آرشیو کردن و کارهای مشابه کاملاً حفظ میشه
– هر بار که mtime حفظ بشه، این یکی هم دستنخورده باقی میمونهو هماهنگی اون با بقیه timestampها به این صورت خواهد بود:
ctime btime
mtime ptimeمثالها:
۱) فرض کنید یک فایل .zsh_history ساخت سال ۲۰۱۹ دارید. بعد از چند سال تصمیم میگیرید فایلسیستم رو عوض کنید و این فایل رو ببرید به home جدید. اینجا btime تاریخ دقیق همین کپی کردن رو نشون میده، اما ptime همون تاریخ سال ۲۰۱۹ رو نگه میداره (دقیقاً مثل کاری که mtime انجام میده).۲) یک symlink که سال ۲۰۲۰ ساخته شده هم همین روند رو طی میکنه و ptime کمک میکنه تاریخ اصلی سال ۲۰۲۰ حفظ بشه و فقط به تاریخ ساخت inode محدود نشه.”
در حال حاضر، پچهای مربوط به این درخواست نظردهی یا همون request for comments patches روی لایه VFS از Kernel لینوکس فعال شدن و اولین پیادهسازی روی Btrfs انجام شده. همچنین پچهای اولیهای برای ابزارهای Coreutils جهت استفاده از PTIME با دستورات stat و cp هم آماده شده که نشون میده کار خیلی جدیه و به زودی باید منتظر ورودش به دنیای لینوکس باشیم.



