'\" t .TH "DISORDERFS" "1" "2018\-04\-10" "\ \&" "\ \&" .nh .ad l .SH "نام (NAME)" disorderfs \- سیستم فایل FUSE برای ایجاد رفتار غیرقطعی در اَبَرداده‌ها .SH "خلاصه دستور (SYNOPSIS)" .sp \fBdisorderfs\fR [\fIگزینه‌ها\fR\&...] \fIROOTDIR\fR \fIMOUNTPOINT\fR .SH "توضیحات (DESCRIPTION)" .sp سیستم فایل .B disorderfs یک سیستم فایل لایه‌ای (overlay) مبتنی بر FUSE است که رفتارهای غیرقطعی (non\-deterministic) را به متادیتای سیستم فایل وارد می‌کند؛ برای نمونه می‌تواند ترتیب خواندن مدخل‌های یک پوشه را تصادفی کند. این ویژگی برای شناسایی رفتارهای غیرقطعی در فرآیند ساخت نرم‌افزار (build process) بسیار مفید است. .sp مقدار .I ROOTDIR مسیر پوشه زیربنایی است که قرار است بازتاب شود، و .I MOUNTPOINT نقطه اتصالی است که سیستم فایل لایه‌ای باید روی آن سوار (mount) شود. .SH "گزینه‌ها (OPTIONS)" .sp برای فهرست کامل گزینه‌ها به .BR fusermount (1)، .BR mount.fuse (8) و .BR mount (8) مراجعه کنید. .sp گزینه‌های اختصاصی .BR disorderfs : .PP \fB\-\-multi\-user=yes|no\fR .RS 4 تعیین اینکه آیا سایر کاربران اجازه دسترسی به نقطه اتصال لایه‌ای را دارند یا خیر (پیش‌فرض: no). در صورت فعال بودن، disorderfs با همان اعتبارات (شناسه کاربری UID، شناسه گروه GID و فهرست گروه‌های تکمیلی) فرآیند درخواست‌کننده به پرونده زیربنایی دسترسی پیدا می‌کند. این با گزینه .B allow_other در FUSE متفاوت است که اجازه دسترسی می‌دهد اما با اعتبارات کاربری که disorderfs را اجرا کرده اقدام می‌کند که معمولاً نامطلوب است. تنظیم .B \-\-multi\-user=yes نیازمند اجرای disorderfs با دسترسی ریشه (root) است. .RE .PP \fB\-\-shuffle\-dirents=yes|no\fR .RS 4 بر زدن و تصادفی کردن مدخل‌های پوشه (پیش‌فرض: no). هر بار که پوشه خوانده شود مدخل‌ها بر می‌خورند، بنابراین خواندن‌های مکرر یک پوشه نتایج متفاوتی برمی‌گرداند. .RE .PP \fB\-\-reverse\-dirents=yes|no\fR .RS 4 بازگرداندن مدخل‌های پوشه با ترتیب معکوس (پیش‌فرض: yes). .RE .PP \fB\-\-sort\-dirents=yes|no\fR .RS 4 بازگرداندن مدخل‌های پوشه با ترتیب مرتب‌شده (پیش‌فرض: no). توجه داشته باشید که برای دریافت نتایج با ترتیب مورد انتظار، باید صریحاً گزینه پیش‌فرض .B \-\-reverse\-dirents=no را اعمال نمایید. .RE .PP \fB\-\-pad\-blocks=\fR\fB\fIN\fR\fR .RS 4 افزودن .I N به فیلد st_blocks در ساختار .BR stat (2) (پیش‌فرض: ۱). .RE .PP \fB\-\-share\-locks=yes|no\fR .RS 4 اشتراک‌گذاری قفل‌ها میان disorderfs و سیستم فایل زیربنایی (پیش‌فرض: no). در صورت فعال بودن، قفل‌های ایجادشده روی سیستم فایل زیربنایی درون disorderfs دیده می‌شوند و برعکس. در صورت غیرفعال بودن، قفل‌ها همچنان درون disorderfs کار می‌کنند اما اگر فرآیندی مستقیماً و فرآیند دیگری از طریق disorderfs دسترسی پیدا کند، قفل‌های یکدیگر را نخواهند دید. اشتراک‌گذاری قفل‌ها در حال حاضر دارای باگ است، لذا به طور پیش‌فرض غیرفعال است. .RE .PP \fB\-\-help\fR, \fB\-h\fR .RS 4 نمایش راهنما. .RE .PP \fB\-\-version\fR, \fB\-V\fR .RS 4 نمایش نسخه. .RE .SH "اشکالات (BUGS)" .sp گزینه .B \-\-share\-locks=yes در حال حاضر دارای اشکال است: برنامه‌ها ممکن است گزارش دهند پرونده‌ای قفل است در حالی که واقعاً قفل نیست. .SH "مثال (EXAMPLE)" .sp اگر در تلاش برای آزمایش مسأله ساخت‌های بازتولیدپذیر (Reproducible Builds) هستید، پیشنهاد می‌شود به جای .B \-\-shuffle\-dirents=yes از گزینه .B \-\-sort\-dirents=yes استفاده کنید تا هرگونه تفاوت بین ساخت‌ها به خودی خود قطعی باشد. برای نمونه: .sp .nf $ mkdir rootdir sorted reversed $ touch rootdir/a rootdir/b rootdir/c (1) $ disorderfs \-\-sort\-dirents=yes \-\-reverse\-dirents=no rootdir sorted (2) $ ls \-f sorted \&. \&.\&. a b c (3) $ disorderfs \-\-sort\-dirents=yes \-\-reverse\-dirents=yes rootdir reversed (4) $ ls \-f reversed c b a \&.\&. \&. (5) .fi .sp توضیح مراحل بالا: .sp (1) ابتدا چند پرونده نمونه می‌سازیم. .br (2) پوشه rootdir را در حالت مرتب سوار (mount) می‌کنیم... .br (3) ... و نتایج به ترتیب مرتب‌شده برمی‌گردند. .br (4) مجدداً rootdir را سوار می‌کنیم، با مرتب‌سازی به صورت معکوس... .br (5) ... و محتویات پوشه به صورت برعکس برگردانده می‌شوند. .sp .nf $ fusermount \-u sorted $ fusermount \-u reversed .fi .SH "نویسندگان (AUTHORS)" .sp Andrew Ayer .br Chris Lamb