0 - en to fa-IR translation catalogue (128 entries)

en: BIOS
fa-IR: بایوس

en: Kernel
fa-IR: کرنل

en: Unix
fa-IR: یونیکس

en: Process
fa-IR: فرآیند

en: Hierarchy
fa-IR: سلسله‌مراتب

en: Basic Commands
fa-IR: دستورات ابتدایی

en: Short Remedial Course
fa-IR: درس کاربردی کوتاه

en: Even though this book primarily targets administrators and “power-users”, we wouldn't like to exclude motivated beginners. This appendix will therefore be a crash-course describing the fundamental concepts involved in handling a Unix computer.
fa-IR: با اینکه مخاطب عمده این کتاب مدیران سیستم و “کاربران حرفه‌ای” هستند، اما قصد نداریم که کاربران تازه‌کار را از این فهرست خارج سازیم. این ضمیمه شامل درس‌های مقدماتی است که برای مدیریت یک رایانه تحت یونیکس باید بدانید.

en: Shell and Basic Commands
fa-IR: خط فرمان و دستورات ابتدایی

en: In the Unix world, every administrator has to use the command line sooner or later; for example, when the system fails to start properly and only provides a command-line rescue mode. Being able to handle such an interface, therefore, is a basic survival skill for these circumstances.
fa-IR: در دنیای یونیکس، هر مدیر سیستمی دیر یا زود باید با خط فرمان ارتباط برقرار کند؛ برای نمونه، زمانی که سیستم عملکرد صحیح خود را از دست داده و به حالت اضطراری در خط فرمان برده می‌شود. توانایی مدیریت رابط خط فرمان، یک مهارت حیاتی برای نجات سیستم در چنین شرایطی به حساب می‌آید.

en: <emphasis>QUICK LOOK</emphasis> Starting the command interpreter
fa-IR: <emphasis>نگاه سریع</emphasis> اجرای مفسر دستور

en: This section only gives a quick peek at the commands. They all have many options not described here, so please refer to the abundant documentation in their respective manual pages.
fa-IR: این قسمت تنها به بررسی اجمالی برخی دستورات می‌پردازد. تمامی آن‌ها شامل گزینه‌هایی هستند که اینجا به آن‌ها نمی‌پردازیم، پس برای جزئیات بیشتر به مستندات موجود در صفحات راهنمای آن‌ها مراجعه کنید.

en: Browsing the Directory Tree and Managing Files
fa-IR: مرور ساختار درختی و مدیریت فایل‌ها

en: Once a session is open, the <command>pwd</command> command (which stands for <emphasis>print working directory</emphasis>) displays the current location in the filesystem. The current directory is changed with the <command>cd <replaceable>directory</replaceable></command> command (<command>cd</command> is for <emphasis>change directory</emphasis>). The parent directory is always called <literal>..</literal> (two dots), whereas the current directory is also known as <literal>.</literal> (one dot). The <command>ls</command> command allows <emphasis>listing</emphasis> the contents of a directory. If no parameters are given, it operates on the current directory.
fa-IR: زمانی که ترمینال باز می‌شود، دستور <command>pwd</command> (که مخفف <emphasis>print working directory</emphasis> است) مسیر جاری در فایل سیستم را نمایش می‌دهد. این مسیر توسط <command>cd</command> قابل تغییر است (که مخفف <emphasis>change directory</emphasis> است). دایرکتوری پدر همیشه با علامت <literal>..</literal> (دو نقطه) فراخوانده می‌شود، در صورتی که مسیر جاری با علامت <literal>.</literal> (یک نقطه) شناخته می‌شود. دستور <command>ls</command> جهت نمایش محتویات داخل یک دایرکتوری استفاده می‌شود. اگر پارامتری داده نشود، بر روی دایرکتوری جاری عمل می‌کند.

en: A new directory can be created with <command>mkdir <replaceable>directory</replaceable></command>, and an existing (empty) directory can be removed with <command>rmdir <replaceable>directory</replaceable></command>. The <command>mv</command> command allows <emphasis>moving</emphasis> and/or renaming files and directories; <emphasis>removing</emphasis> a file is achieved with <command>rm <replaceable>file</replaceable></command>.
fa-IR: یک دایرکتوری جدید می‌تواند توسط <command>mkdir <replaceable>directory</replaceable></command> ایجاد شود و یک دایرکتوری موجود (خالی) می‌تواند با دستور <command>rmdir <replaceable>directory</replaceable></command> حذف شود. دستور <command>mv</command> <emphasis>امکان جابجایی</emphasis> یا نامگذاری مجدد فایل‌ها و دایرکتوری‌ها را به عهده دارد؛ <emphasis>حذف</emphasis> یک فایل توسط دستور <command>rm</command> انجام می‌شود.

en: Displaying and Modifying Text Files
fa-IR: نمایش و تغییر فایل‌های متنی

en: The <command>cat <replaceable>file</replaceable></command> command (intended to <emphasis>concatenate</emphasis> files to the standard output device) reads a file and displays its contents on the terminal. If the file is too big to fit on a screen, use a pager such as <command>less</command> (or <command>more</command>) to display it page by page.
fa-IR: دستور <command>cat <replaceable>file</replaceable></command> (که با هدف <emphasis>الحاق</emphasis> فایل‌ها به خروجی استاندارد ایجاد شده) یک فایل را خوانده و محتویاتش را روی ترمینال نمایش می‌دهد. اگر فایل بیش از اندازه بزرگ باشد تا محتویاتش روی یک صفحه قابل نمایش باشند، از یک ابزار صفحه‌بندی مانند <command>less</command> (یا <command>more</command>) استفاده کنید تا محتویات فایل به صورت صفحه‌بندی شده نمایش داده شوند.

en: The <command>editor</command> command starts a text editor (such as <command>vi</command> or <command>nano</command>) and allows creating, modifying and reading text files. The simplest files can sometimes be created directly from the command interpreter thanks to redirection: <command>echo "<replaceable>text</replaceable>" &gt;<replaceable>file</replaceable></command> creates a file named <replaceable>file</replaceable> with “<replaceable>text</replaceable>” as its contents. Adding a line at the end of this file is possible too, with a command such as <command>echo "<replaceable>moretext</replaceable>" &gt;&gt;<replaceable>file</replaceable></command>. Note the <literal>&gt;&gt;</literal> in this example.
fa-IR: دستور <command>editor</command> یک ویرایشگر متن را اجرا می‌کند (مانند <command>vi</command> یا <command>nano</command>) که امکان ایجاد، تغییر و خواندن فایل‌های متنی را می‌دهد. ساده‌ترین فایل‌ها بعضی اوقات می‌توانند با دستوری مانند <command>echo "<replaceable>text</replaceable>" &gt;<replaceable>file</replaceable></command> ایجاد شوند: این دستور منجر به ایجاد فایلی به نام <replaceable>file</replaceable> با محتویات “<replaceable>text</replaceable>” می‌شود. اضافه‌کردن یک خط به انتهای این فایل نیز قابل انجام است، با دستوری مانند <command>echo "<replaceable>moretext</replaceable>" &gt;&gt;<replaceable>file</replaceable></command> . به کاربرد <literal>&gt;&gt;</literal> در این نمونه توجه کنید.

en: Searching for Files and within Files
fa-IR: جستجو به دنبال فایل‌ها و محتویات آن‌ها

en: The <command>find <replaceable>directory</replaceable> <replaceable>criteria</replaceable></command> command looks for files in the hierarchy under <replaceable>directory</replaceable> according to several criteria. The most commonly used criterion is <literal>-name <replaceable>name</replaceable></literal>: that allows looking for a file by its name.
fa-IR: دستور <command>find <replaceable>directory</replaceable> <replaceable>criteria</replaceable></command> به دنبال فایل‌هایی در سلسه‌مراتب <replaceable>directory</replaceable> بر اساس شرایط گفته شده می‌گردد. پرکاربردترین شرایط مورد استفاده در آن عبارتند از <literal>-name <replaceable>name</replaceable></literal>: که امکان جستجوی فایلی بر اساس نام آن را می‌دهد.

en: The <command>grep <replaceable>expression</replaceable> <replaceable>files</replaceable></command> command searches the contents of the files and extracts the lines matching the regular expression (see sidebar <xref linkend="sidebar.regexp" />). Adding the <literal>-r</literal> option enables a recursive search on all files contained in the directory passed as a parameter. This allows looking for a file when only a part of the contents are known.
fa-IR: دستور <command>grep <replaceable>expression</replaceable> <replaceable>files</replaceable></command> به جستجوی محتویات داخل یک فایل پرداخته و خط‌هایی را که با عبارت باقاعده (regex) همخوانی دارند استخراج می‌کند (به قسمت کنار صفحه‌ای <xref linkend="sidebar.regexp" /> مراجعه کنید). اضافه‌کردن گزینه <literal>-r</literal> امکان جستجو به صورت بازگشتی درون فایل‌های یک دایرکتوری را می‌دهد که نام آن در انتهای دستور ذکر می‌شود. این امکان به جستجوی فایل‌هایی کمک می‌کند که تنها برخی از محتویات آن‌ها قابل دسترسی هستند.

en: Managing Processes
fa-IR: مدیریت فرآیندها (پروسه‌ها)

en: The <command>ps aux</command> command lists the processes currently running and helps identifying them by showing their <emphasis>pid</emphasis> (process id). Once the <emphasis>pid</emphasis> of a process is known, the <command>kill -<replaceable>signal</replaceable> <replaceable>pid</replaceable></command> command allows sending it a signal (if the process belongs to the current user). Several signals exist; most commonly used are <literal>TERM</literal> (a request to terminate gracefully) and <literal>KILL</literal> (a forced kill).
fa-IR: دستور <command>ps aux</command> فهرستی از فرآیندهای جاری در سیستم را نمایش می‌دهد و با نمایش <emphasis>pid</emphasis> (شناسه فرآیند) به شناسایی هر چه بهتر آن‌ها یاری می‌رساند. زمانی که <emphasis>pid</emphasis> یک فرآیند شناخته شود، دستور <command>kill -<replaceable>signal</replaceable> <replaceable>pid</replaceable></command> امکان ارسال یک سیگنال را به آن می‌دهد (اگر فرآیند به کاربر جاری تعلق داشته باشد). سیگنال‌های متفاوتی وجود دارند؛ پرکاربردترین آن‌ها عبارتند از <literal>TERM</literal> (درخواست نابودسازی مودبانه) و <literal>KILL</literal> (نابودسازی خشن).

en: The command interpreter can also run programs in the background if the command is followed by a “&amp;”. By using the ampersand, the user resumes control of the shell immediately even though the command is still running (hidden from the user; as a background process). The <command>jobs</command> command lists the processes running in the background; running <command>fg %<replaceable>job-number</replaceable></command> (for <emphasis>foreground</emphasis>) restores a job to the foreground. When a command is running in the foreground (either because it was started normally, or brought back to the foreground with <command>fg</command>), the <keycombo action="simul"><keycap>Control</keycap><keycap>Z</keycap></keycombo> key combination pauses the process and resumes control of the command-line. The process can then be restarted in the background with <command>bg %<replaceable>job-number</replaceable></command> (for <foreignphrase>background</foreignphrase>).
fa-IR: مفسر دستور همچنین می‌تواند برنامه‌ها را در پس‌زمینه اجرا کند در صورتی که عبارت “&amp;” بعد از دستور قرار بگیرد. با استفاده از امپرسند، کاربر کنترل مجدد خط فرمان را بر عهده می‌گیرد با اینکه دستور در پس‌زمینه در حال اجرا است (از دید کاربر مخفی است؛ به عنوان یک فرآیند پس‌زمینه). دستور <command>jobs</command> فهرستی از فرآیندهای موجود در پس‌زمینه را ارائه می‌دهد؛ اجرای دستور <command>fg %<replaceable>job-number</replaceable></command> (برای <emphasis>پیش‌زمینه</emphasis>) یک کار را به پیش‌زمینه منتقل می‌کند. وقتی دستوری در پیش‌زمینه اجرا می‌شود (خواه به صورت معمولی اجرا شده باشد، خواه با فراخوانی دستور <command>fg</command>) ترکیب کلید‌های <keycombo action="simul"><keycap>Control</keycap><keycap>Z</keycap></keycombo> فرآیند را به حالت توقف درآورده و کنترل خط فرمان را به کاربر انتقال می‌دهد. این فرآیند می‌تواند با اجرای دستور <command>bg %<replaceable>job-number</replaceable></command> (برای <foreignphrase>پس‌زمینه</foreignphrase>) به ادامه فعالیت خود بپردازد.

en: System Information: Memory, Disk Space, Identity
fa-IR: اطلاعات سیستم: حافظه، فضای ذخیره‌سازی، هویت

en: The <command>free</command> command displays information on memory; <command>df</command> (<emphasis>disk free</emphasis>) reports on the available disk space on each of the disks mounted in the filesystem. Its <literal>-h</literal> option (for <emphasis>human readable</emphasis>) converts the sizes into a more legible unit (usually mebibytes or gibibytes). In a similar fashion, the <command>free</command> command supports the <literal>-m</literal> and <literal>-g</literal> options, and displays its data either in mebibytes or in gibibytes, respectively.
fa-IR: دستور <command>free</command> اطلاعات مربوط به حافظه را نمایش می‌دهد؛ دستور <command>df</command> (که مخفف <emphasis>disk free</emphasis> است) گزارش میزان فضای باقیمانده روی دیسک در تمام دیسک‌های نصب شده روی فایل سیستم را می‌دهد. گزینه <literal>-h</literal> آن (که مخفف <emphasis>human readble</emphasis> است) اندازه‌ها را به واحد خواناتری تبدیل می‌کند (معمولا مگابایت یا گیگابایت). به روشی مشابه، دستور <command>free</command> از گزینه‌های <literal>-m</literal> و <literal>-g</literal> بهره‌ می‌برد و داده‌ها را به صورت مگابایت یا گیگابایت نمایش می‌دهد.

en: The <command>id</command> command displays the identity of the user running the session, along with the list of groups they belong to. Since access to some files or devices may be limited to group members, checking available group membership may be useful.
fa-IR: دستور <command>id</command> هویت کاربری که ترمینال را اجرا کرده است، نمایش می‌دهد، به همراه فهرست گروه‌هایی که کاربر به آن‌ها تعلق دارد. از آنجایی که دسترسی به برخی فایل‌ها یا دستگاه‌ها ممکن است برای اعضای گروه محدود شود، بررسی عضویت در گروه‌های موجود ممکن است مفید واقع شود.

en: Organization of the Filesystem Hierarchy
fa-IR: سازماندهی سلسله‌مراتب فایل‌سیستم

en: <primary>Filesystem Hierarchy</primary>
fa-IR: <primary>سلسله‌مراتب فایل‌سیستم</primary>

en: The Root Directory
fa-IR: دایرکتوری ریشه

en: A Debian system is organized along the <emphasis>Filesystem Hierarchy Standard</emphasis> (FHS). This standard defines the purpose of each directory. For instance, the top-level directories are described as follows:
fa-IR: سیستم دبیان بر اساس <emphasis>استاندارد سلسله‌مراتب فایل‌سیستم</emphasis> یا FHS سازماندهی شده است. این استاندارد هدف از هر دایرکتوری را تعریف می‌کند. برای نمونه، دایرکتوری‌های اصلی سیستم به صورت زیر تعریف می‌شوند:

en: <filename>/bin/</filename>: basic programs;
fa-IR: <filename>/bin/</filename>: برنامه‌های پایه;

en: <filename>/boot/</filename>: Linux kernel and other files required for its early boot process;
fa-IR: <filename>/boot/</filename>: فایل‌های کرنل و سایر فایل‌هایی که برای راه‌اندازی اولیه سیستم لازم هستند;

en: <filename>/dev/</filename>: device files;
fa-IR: <filename>/dev/</filename>: فایل‌های مربوط به دستگاه‌ها;

en: <filename>/etc/</filename>: configuration files;
fa-IR: <filename>/etc/</filename>: فایل‌های پیکربندی و تنظیمات;

en: <filename>/home/</filename>: user's personal files;
fa-IR: <filename>/home/</filename>: فایل‌های شخصی کاربران;

en: <filename>/lib/</filename>: basic libraries;
fa-IR: <filename>/lib/</filename>: کتابخانه‌های پایه;

en: <filename>/media/*</filename>: mount points for removable devices (CD-ROM, USB keys and so on);
fa-IR: <filename>/media/*</filename>: نقاط اتصالی برای دستگاه‌هایی با قابلیت جابجایی (سی‌دی‌رام، یو‌اس‌بی و ...);

en: <filename>/mnt/</filename>: temporary mount point;
fa-IR: <filename>/mnt/</filename>: نقطه اتصال موقتی;

en: <filename>/opt/</filename>: extra applications provided by third parties;
fa-IR: <filename>/opt/</filename>: نرم‌افزاهای ثالثی که توسط شرکت‌های دیگر توسعه یافته‌اند;

en: <filename>/root/</filename>: administrator's (root's) personal files;
fa-IR: <filename>/root/</filename>: فایل‌های شخصی مدیر اولیه سیستم;

en: <filename>/sbin/</filename>: system programs;
fa-IR: <filename>/sbin/</filename>: برنامه‌های سیستمی;

en: <filename>/srv/</filename>: data used by servers hosted on this system;
fa-IR: <filename>/srv/</filename>: داده‌هایی که توسط سرورهای موجود روی سیستم استفاده می‌شوند;

en: <filename>/tmp/</filename>: temporary files; this directory is often emptied at boot;
fa-IR: <filename>/tmp/</filename>: فایل‌های موقتی؛ این دایرکتوری معمولا در زمان راه‌اندازی سیستم خالی است;

en: <filename>/usr/</filename>: applications; this directory is further subdivided into <filename>bin</filename>, <filename>sbin</filename>, <filename>lib</filename> (according to the same logic as in the root directory). Furthermore, <filename>/usr/share/</filename> contains architecture-independent data. <filename>/usr/local/</filename> is meant to be used by the administrator for installing applications manually without overwriting files handled by the packaging system (<command>dpkg</command>).
fa-IR: <filename>/usr/</filename>: برنامه‌های کاربردی؛ این دایرکتوری معمولا به زیرمجموعه‌های دیگری مانند <filename>bin</filename> و <filename>lib</filename> و <filename>sbin</filename> تقسیم می‌شود که بر اساس همان منطق دایرکتوری ریشه عمل می‌کنند. به علاوه، <filename>/usr/share/</filename> شامل داده‌های جدای از معماری رایانه است. <filename>/usr/local</filename> به عنوان مکانی جهت نصب برنامه‌های توسط مدیر سیستم به صورت دستی استفاده می‌شود که با مدیر برنامه روی سییستم هیچ دخالتی ندارد.;

en: <primary>daemon</primary>
fa-IR: <primary>فرآیند پس‌زمینه</primary>

en: <filename>/var/</filename>: variable data handled by daemons. This includes log files, queues, spools, caches and so on.
fa-IR: <filename>/var/</filename>: داده‌های متغیری که توسط دیمن‌ها مدیریت می‌شوند مانند فایل‌های لاگ، صف‌، اسپول مانند ایمیل و پرینتر و ...

en: <filename>/proc/</filename> and <filename>/sys/</filename> are specific to the Linux kernel (and not part of the FHS). They are used by the kernel for exporting data to user space (see <xref linkend="sect.userspace-presentation" /> and <xref linkend="sect.user-space" /> for explanations about this concept).
fa-IR: <filename>/proc/</filename> و <filename>/sys/</filename> مختص به کرنل لینوکس هستند (و نه قسمتی از FHS). این فایل‌ها توسط کرنل استفاده می‌شوند تا داده‌های فضای کاربر مورد دسترسی قرار گیرند (<xref linkend="sect.userspace-presentation" /> و <xref linkend="sect.user-space" /> را مشاهده کنید).

en: The User's Home Directory
fa-IR: دایرکتوری خانه کاربر

en: The contents of a user's home directory is not standardized, but there are still a few noteworthy conventions. One is that a user's home directory is often referred to by a tilde (“~”). That is useful to know because command interpreters automatically replace a tilde with the correct directory (usually <filename>/home/<replaceable>user</replaceable>/</filename>).
fa-IR: محتوای داخل دایرکتوری خانه کاربر شامل استاندارد خاصی نمی‌شود، اما برخی قواعد حائز اهمیت وجود دارند. یکی از آن‌ها این است که برای دسترسی به این مسیر می‌توان از (“~”) استفاده کرد. این عمل بسیار مفید است چرا که مفسرهای دستور به صورت خودکار این کاراکتر را بار دایرکتوری صحیح آن تعویض می‌کنند (معمولا <filename>/home/<replaceable>user</replaceable>/</filename>).

en: Traditionally, application configuration files are often stored directly under the user's home directory, but their names usually start with a dot (for instance, the <command>mutt</command> email client stores its configuration in <filename>~/.muttrc</filename>). Note that filenames that start with a dot are hidden by default; and <command>ls</command> only lists them when the <literal>-a</literal> option is used, and graphical file managers need to be told to display hidden files.
fa-IR: بر اساس یک رسم قدیمی، فایل‌های پیکربندی برنامه‌ها معمولاً به صورت مستقیم در دایرکتوری خانه کاربر ذخیره می‌شوند، اما نامشان با یک نقطه آغاز می‌گردد (برای نمونه، نرم‌افزار ایمیل‌خوان <command>mutt</command> تنظیماتش را درون <filename>~/.muttrc</filename> نگاه می‌دارد). نکته اینکه فایل‌هایی که با نقطه آغاز می‌شوند یه صورت پیش‌فرض مخفی هستند؛ و دستور <command>ls</command> تنها در صورتی آن‌ها را نمایش می‌دهد که از گزینه <literal>-a</literal> استفاده شود و مدیر فایل‌های گرافیکی نیز تنظیماتی برای نمایش آن‌ها دارند.

en: Finally, the email system sometimes stores incoming emails into a <filename>~/Mail/</filename> directory.
fa-IR: در نهایت، سیستم ایمیل گاهی اوقات پیام‌های دریافتی را داخل دایرکتوری <filename>~/Mail/</filename> نگاه می‌دارد.

en: Inner Workings of a Computer: the Different Layers Involved
fa-IR: طرزکار داخلی یک رایانه: لایه‌های مختلفی درگیر هستند

en: A computer is often considered as something rather abstract, and the externally visible interface is much simpler than its internal complexity. Such complexity comes in part from the number of pieces involved. However, these pieces can be viewed in layers, where a layer only interacts with those immediately above or below.
fa-IR: یک رایانه بیشتر به عنوان یک شی انتزاعی در نظر گرفته می‌شود و رابط گرافیکی خروجی بسیار ساده‌تر از پیچیدگی‌های درون آن دارد. این پیچیدگی از قسمت‌هایی می‌آید که با یکدیگر در ارتباط هستند. اگرچه، این قسمت‌ها می‌توانند به عنوان لایه‌های گوناگون دیده شوند، که هر لایه می‌تواند صرفاً با لایه بالا یا پایین خود ارتباط داشته باشد.

en: An end-user can get by without knowing these details… as long as everything works. When confronting a problem such as, “The internet doesn't work!”, the first thing to do is to identify in which layer the problem originates. Is the network card (hardware) working? Is it recognized by the computer? Does the Linux kernel see it? Are the network parameters properly configured? All these questions isolate an appropriate layer and focus on a potential source of the problem.
fa-IR: یک کاربر نهایی کاری با جزئیات این لایه‌ها ندارد... تا زمانی که همه چیز درست کار می‌کند. وقتی با مشکلاتی مانند “اینترنت کار نمی‌کند!” رو‌به‌رو می‌شویم، اولین کاری که باید کرد شناسایی لایه‌ای است که این مشکل از آن نشات گرفته است. آیا کارت شبکه (سخت‌افزار) کار می‌کند؟ آیا توسط رایانه شناخته شده است؟ آیا کرنل قادر به تعامل با آن است؟ آیا پارامترهای شبکه به درستی تنظیم شده‌اند؟ تمام این پرسش‌ها مربوط به یک لایه خاص می‌باشند و تمرکز خاصی روی موضوع مورد سوال دارند.

en: The Deepest Layer: the Hardware
fa-IR: عمیق‌ترین لایه: سخت‌افزار

en: Let us start with a basic reminder that a computer is, first and foremost, a set of hardware elements. There is generally a main board (known as the <emphasis>motherboard</emphasis>), with one (or more) processor(s), some RAM, device controllers, and extension slots for option boards (for other device controllers). Most noteworthy among these controllers are IDE (Parallel ATA), SCSI and Serial ATA, for connecting to storage devices such as hard disks. Other controllers include USB, which is able to host a great variety of devices (ranging from webcams to thermometers, from keyboards to home automation systems) and IEEE 1394 (Firewire). These controllers often allow connecting several devices so the complete subsystem handled by a controller is therefore usually known as a “bus”. Option boards include graphics cards (into which monitor screens will be plugged), sound cards, network interface cards, and so on. Some main boards are pre-built with these features, and don't need option boards.
fa-IR: بگذارید با یادآوری کوتاهی شروع کنیم که رایانه در حقیقت مجموعه‌ای از عناصر سخت‌افزاری است. معمولاً یک برد اصلی وجود دارد (که با نام <emphasis>motherboard</emphasis> شناخته می‌شود) با یک (یا چند) پردازنده، مقدای حافظه، کنترلرهای دستگاه و کارت‌های توسعه برای سایر بردها (برای سایر کنترلرهای دستگاه). قابل توجه‌ترین این کنترلرها عبارتند از IDE (که Parallel ATA نیز نامیده می‌شود) و SCSI و Serial ATA، برای اتصال به دستگاه‌های ذخیره‌سازی مانند هارددیسک‌ها. سایر کنترلرها عبارتند از USB، که قادر به میزبانی از بسیاری دستگاه‌ها است (از دوربین گرفته تا دستگاه‌های حساس به حرارت، از صفحات کلید تا سیستم‌های خودکارسازی خانه) و IEEE 1394 (یا همان Firewire). این کنترلرها اغلب اجازه اتصال چندین دستگاه را می‌دهند تا جایی که سیستم درونی که این فعالیت‌ها را مدیریت می‌کنند با نام “گذرگاه” شناخته می‌شوند. بردهای دیگر شامل کارت‌های گرافیکی (که نمایشگرها به آن‌ها وصل هستند)، کارت‌های صدا، کارت‌های رابط شبکه و بسیاری دیگر. برخی بردهای اصلی به صورت پیش‌فرض این قابلیت‌ها را دارند و نیازی به سایر بردها وجود ندارد.

en: <emphasis>IN PRACTICE</emphasis> Checking that the hardware works
fa-IR: <emphasis>در عمل</emphasis> بررسی عملکرد صحیح سخت‌افزار

en: Checking that a piece of hardware works can be tricky. On the other hand, proving that it doesn't work is sometimes quite simple.
fa-IR: بررسی اینکه آیا قطعه‌ای سخت‌افزاری کار می‌کند ممکن است فوت و فن زیادی داشته باشد. از طرف دیگر، اثبات عدم عملکرد صحیح آن بسیار ساده است.

en: A hard disk drive is made of spinning platters and moving magnetic heads. When a hard disk is powered up, the platter motor makes a characteristic whir. It also dissipates energy as heat. Consequently, a hard disk drive that stays cold and silent when powered up is broken.
fa-IR: یک درایو هارددیسک از صفحات گردان و قسمت‌های متحرک مغناطیسی تشکیل شده است. وقتی یک هارددیسک روشن می‌شود، موتور صفحه آن غژغژ خاصی را ایجاد می‌کند. گاهی اوقات نیز انرژی مصرف شده را در قالب گرما خارج می‌شود. در نتیجه، یک درایور هارددیسک که سرد و خاموش می‌شود زمانی که این عملکرد اولیه دچار اشکال گردد.

en: Network cards often include LEDs displaying the state of the link. If a cable is plugged in and leads to a working network hub or switch, at least one LED will be on. If no LED lights up, either the card itself, the network device, or the cable between them, is faulty. The next step is therefore testing each component individually.
fa-IR: کارت‌های شبکه اغلب شامل چراغ LED هستند که وضعیت ارتباطی را نمایش می‌دهد. اگر کابل شبکه وصل باشد و به یک هاب یا سوئیچ متصل، حداقل یک چراغ روشن می‌شود. اگر هیچ چراغی روشن نشد، خواه کارت شبکه، سخت‌افزار شبکه یا کابل بین آن‌‌ها قطع است. گام بعدی بررسی هر یک از این سخت‌افزارها است.

en: Some option boards — especially 3D video cards — include cooling devices, such as heat sinks and/or fans. If the fan does not spin even though the card is powered up, a plausible explanation is the card overheated. This also applies to the main processor(s) located on the main board.
fa-IR: برخی بردهای اختیاری - به خصوص کارت‌های ویدیوئی ۳ بعدی - شامل دستگاه‌های خنک‌کننده هستند، مانند فن‌ها. اگر فن به چرخش خود ادامه ندهد با وجود اینکه کارت به کارش ادامه دهد، نشان می‌دهد که دچار گرمای بیش از اندازه شده است. این امر شامل پردازنده اصلی واقع در برداصلی نیز می‌شود.

en: The Starter: the BIOS or UEFI
fa-IR: راه‌انداز: BIOS یا UEFI

en: Hardware, on its own, is unable to perform useful tasks without a corresponding piece of software driving it. Controlling and interacting with the hardware is the purpose of the operating system and applications. These, in turn, require functional hardware to run.
fa-IR: سخت‌افزار، به خودی خود، نمی‌تواند بدون ارتباط یک نرم‌افزار که آن را کنترل کند عملکرد مفیدی داشته باشد. کنترل و تعامل با سخت‌افزار از جمله وظایف سیستم عامل و برنامه‌های کاربردی آن است. این عمکرد، نیز متعاقباُ نیاز به عملکرد صحیح سخت‌افزار دارد.

en: <emphasis>TOOL</emphasis> Setup, the BIOS/UEFI configuration tool
fa-IR: <emphasis>ابزار</emphasis> Setup، ابزار پیکربندی BIOS/UEFI

en: The boot sector (or the EFI partition), in turn, contains another piece of software, called the bootloader, whose purpose is to find and run an operating system. Since this bootloader is not embedded in the main board but loaded from disk, it can be smarter than the BIOS, which explains why the BIOS does not load the operating system by itself. For instance, the bootloader (often GRUB on Linux systems) can list the available operating systems and ask the user to choose one. Usually, a time-out and default choice is provided. Sometimes the user can also choose to add parameters to pass to the kernel, and so on. Eventually, a kernel is found, loaded into memory, and executed.
fa-IR: سکتور راه‌انداز (یا پارتیشن EFI) در عوض، شامل نرم‌افزار دیگری نیز هستند که bootloader نامیده می‌شود که هدف اصلی‌اش جستجو و اجرای سیستم عامل است. از آنجایی که این bootloader داخل برد اصلی قرار ندارد و محتوایش از روی دیسک خوانده می‌شود، عملکرد هوشمندانه‌تری نسبت به BIOS دارد، که توضیح می‌دهد چرا BIOS نمی‌تواند به خودی خود سیستم عامل را راه‌اندازی کند. برای نمونه، bootloader (که اغلب در سیستم‌های لینوکس GRUB نامیده می‌شود) می‌تواند فهرستی از سیستم عامل‌های موجود روی سیستم را به کاربر نمایش داده تا وی انتخاب کند. معمولاً، زمان و گزینه پیش‌فرض انتخاب می‌شود. گاهی اوقات کاربر می‌تواند پارامترهای دیگری به کرنل ارائه دهد و مواردی از این دست. در نهایت، یک کرنل پیدا،‌در حافظه بارگذاری و اجرا می‌شود.

en: <emphasis>NOTE</emphasis> UEFI, a modern replacement to the BIOS
fa-IR: <emphasis>یادداشت</emphasis> UEFI, جایگزینی پیشرفته برای BIOS

en: <primary>Secure Boot</primary>
fa-IR: <primary>راه‌اندازی امن</primary>

en: The BIOS/UEFI is also in charge of detecting and initializing a number of devices. Obviously, this includes the IDE/SATA devices (usually hard disk(s) and CD/DVD-ROM drives), but also PCI devices. Detected devices are often listed on screen during the boot process. If this list goes by too fast, use the <keycap>Pause</keycap> key to freeze it for long enough to read. Installed PCI devices that don't appear are a bad omen. At worst, the device is faulty. At best, it is merely incompatible with the current version of the BIOS or main board. PCI specifications evolve, and old main boards are not guaranteed to handle newer PCI devices.
fa-IR: یکی دیگر از کاربردهای BIOS/UEFI شناسایی و بارگذاری اولیه برخی دستگاه‌ها است. به طور مشخص این فرآیند شامل دستگاه‌های IDE/SATA (معمولاً هارددیسک‌ها و درایوهای CD/DVD) و همچنین دستگاه‌های PCI می‌شود. دستگاه‌های شناسایی شده حین فرآیند راه‌اندازی سیستم، روی صفحه نمایش داده می‌شوند. اگر این فهرست به تندی از جلوی چشمتان رد می‌شود می‌توانید با فشردن دکمه <keycap>Pause</keycap> صفحه را برای چند لحظه نگاه دارید و به مطالعه آن بپردازید. دستگاه‌های PCI که نصب شده‌اند اما نمایش داده نمی‌شوند مانند طالعی نحس عمل می‌کنند! در بدترین حالت، خود سخت‌افزار ممکن است مشکل داشته باشد. در بهترین حالت، تنها ناسازگاری آن‌ها با نسخه BIOS یا برد اصلی است. قوانین مربوط به PCI پیشرفت زیادی داشته‌اند، اما بردهای اصلی قدیمی ضمانت اجرای دستگاه‌های PCI جدیدتر را ندارند.

en: The Kernel
fa-IR: کرنل

en: Both the BIOS/UEFI and the bootloader only run for a few seconds each; now we are getting to the first piece of software that runs for a longer time, the operating system kernel. This kernel assumes the role of a conductor in an orchestra, and ensures coordination between hardware and software. This role involves several tasks including: driving hardware, managing processes, users and permissions, the filesystem, and so on. The kernel provides a common base to all other programs on the system.
fa-IR: هر دو ابزار BIOS/UEFI و bootloader تنها برای چند ثانیه اجرا می‌شوند؛ در این مرحله به اولین نرم‌افزاری می‌رسیم که برای مدت طولانی‌تری اجرا می‌شود، کرنل (هسته) سیستم عامل. کرنل نقش یک رهبر ارکستر را بازی می‌کند و ارتباط صحیح بین نرم‌افزار و سخت‌افزار را تضمین می‌نماید. این نقش مستلزم اجرای وظایف گوناگونی است از قبیل: مدیریت سخت‌افزار، مدیریت فرآیندها، کاربران و مجوزهای مربوط به آنان، فایل سیستم و بسیاری موارد دیگر. کرنل یک پایگاه عمومی برای سایر برنامه‌های سیستم ایجاد می‌کند.

en: The User Space
fa-IR: فضای کاربری

en: Although everything that happens outside of the kernel can be lumped together under “user space”, we can still separate it into software layers. However, their interactions are more complex than before, and the classifications may not be as simple. An application commonly uses libraries, which in turn involve the kernel, but the communications can also involve other programs, or even many libraries calling each other.
fa-IR: با اینکه هر آنچه خارج از محیط داخلی کرنل اتفاق می‌افتد با نام “فضای کاربری” شناخته می‌شود، می‌توانیم این قسمت را به لایه‌های مختلف نرم‌افزاری تقسیم کنیم. اگرچه، تعامل بین آن‌ها نسبت به گذشته پیچیده‌تر شده است و طبقه‌بندی آن‌ها کار ساده‌ای نخواهد بود. یک برنامه کابردی به صورت عمومی از کتابخانه‌هایی استفاده می‌کند که برخی عملکردهای کرنل را فراخوانی می‌کنند، اما ارتباط بین آن‌ها می‌تواند منجز به درگیر کردن سایر برنامه‌ها نیز بشود یا حتی کتابخانه‌های بیشتری در این فرآیند فراخوانی گردند.

en: Some Tasks Handled by the Kernel
fa-IR: برخی از وظایفی که کرنل به آن‌ها رسیدگی می‌کند

en: Driving the Hardware
fa-IR: مدیریت سخت‌افزار

en: The kernel is, first and foremost, tasked with controlling the hardware parts, detecting them, switching them on when the computer is powered on, and so on. It also makes them available to higher-level software with a simplified programming interface, so applications can take advantage of devices without having to worry about details such as which extension slot the option board is plugged into. The programming interface also provides an abstraction layer; this allows video-conferencing software, for example, to use a webcam independently of its make and model. The software can just use the <emphasis>Video for Linux</emphasis> (V4L) interface, and the kernel translates the function calls of this interface into the actual hardware commands needed by the specific webcam in use.
fa-IR: کرنل، در درجه نخست، وظیفه مدیریت قسمت‌های سخت‌افزاری، شناسایی آن‌ها و فعال‌سازی هنگامی که رایانه روشن می‌شود را بر عهده دارد. همچنین باعث می‌شود که نرم‌افزاری که در لایه بالاتر قرار دارد بتواند از طریق یک رابط برنامه‌نویسی ساده با آن ارتباط برقرار کند تا برنامه‌های کاربردی بتوانند از مزایای آن استفاده کرده بدون آنکه درگیر جزئیات لایه پایین‌تر خود شوند. این رابط برنامه‌نویسی همچنین یک لایه انتزاعی بوجود می‌آورد؛ برای نمونه، باعث می‌شود یک نرم‌افزار ویدیو کنفرانس بدون اطلاع از مدل و شماره وب‌کم، براحتی از آن استفاده کند. نرم‌افزار تنها می‌تواند از <emphasis>Video for Linux</emphasis> یا (V4L) استفاده کرده و کرنل وظیفه ترجمه فراخوانی‌های تابع را دارد که متناظر با دستورات موجود در خود سخت‌افزار وب‌کم باشند.

en: Example of information provided by <command>lspci</command> and <command>lsusb</command>
fa-IR: نمونه اطلاعاتی که <command>lspci</command> و <command>lsusb</command> ارائه می‌دهند

en: Applications often access devices by way of special files created within <filename>/dev/</filename> (see sidebar <xref linkend="sidebar.special-files" />). These are special files that represent disk drives (for instance, <filename>/dev/hda</filename> and <filename>/dev/sdc</filename>), partitions (<filename>/dev/hda1</filename> or <filename>/dev/sdc3</filename>), mice (<filename>/dev/input/mouse0</filename>), keyboards (<filename>/dev/input/event0</filename>), soundcards (<filename>/dev/snd/*</filename>), serial ports (<filename>/dev/ttyS*</filename>), and so on.
fa-IR: برنامه‌های کاربردی اغلب بوسیله فایل‌های مخصوصی که درون <filename>/dev/</filename> ایجاد می‌شود (به قسمت <xref linkend="sidebar.special-files" /> مراجعه شود) به دستگاه‌های مختلف دسترسی پیدا می‌کنند. فایل‌های مخصوصی هستند که درایوهای دیسک (برای نمونه، <filename>/dev/hda</filename> و <filename>/dev/sda</filename>)، پارتیشن‌ها (<filename>/dev/hda1</filename> یا <filename>/dev/sda1</filename>)، ماوس (<filename>/dev/input/mouse0</filename>)، صفحه کلید (<filename>/dev/input/event0</filename>)، کارت‌ صدا (<filename>/dev/snd/*</filename>)، پورت‌های سریال (<filename>/dev/ttyS*</filename>) و بسیاری موارد دیگر را مشخص می‌کنند.

en: Filesystems
fa-IR: فایل‌سیستم‌ها

en: <primary>filesystem</primary>
fa-IR: <primary>فایل‌سیستم</primary>

en: Filesystems are one of the most prominent aspects of the kernel. Unix systems merge all the file stores into a single hierarchy, which allows users (and applications) to access data simply by knowing its location within that hierarchy.
fa-IR: فایل‌سیستم‌ها یکی از برجسته‌ترین جنبه‌های کرنل هستند. سیستم‌های یونیکس تمام فایل‌های موجود را داخل یک ساختار درختی قرار می‌دهند، که به کاربران (و برنامه‌های کاربردی) به راحتی این امکان را می‌دهند تا با دانستن مکان فایل‌ها در این ساختار، از منابع آن استفاده کنند.

en: The starting point of this hierarchical tree is called the root, <filename>/</filename>. This directory can contain named subdirectories. For instance, the <literal>home</literal> subdirectory of <filename>/</filename> is called <filename>/home/</filename>. This subdirectory can, in turn, contain other subdirectories, and so on. Each directory can also contain files, where the actual data will be stored. Thus, the <filename>/home/rmas/Desktop/hello.txt</filename> name refers to a file named <literal>hello.txt</literal> stored in the <literal>Desktop</literal> subdirectory of the <literal>rmas</literal> subdirectory of the <literal>home</literal> directory present in the root. The kernel translates between this naming system and the actual, physical storage on a disk.
fa-IR: نقطه آغازین این ساختار درختی، ریشه نام دارد، <filename>/</filename>. این دایرکتوری می‌تواند شامل دایرکتوری‌های فرزند دیگری باشد. برای نمونه، دایرکتوری فرزند <literal>home</literal> از <filename>/</filename> با نام <filename>/home/</filename> شناخته می‌شود. این دایرکتوری فرزند نیز می‌تواند زیر مجموعه‌های خود را داشته باشد و به همین ترتیب. هر دایرکتوری می‌تواند شامل فایل‌های گوناگونی باشد، جایی که داده‌های واقعی ذخیره می‌شوند. بنابراین، <filename>/home/rmas/Desktop/hello.txt</filename> به فایلی با نام <literal>hello.txt</literal> در دایرکتوری فرزند <literal>Desktop</literal> واقع در حساب کاربری <literal>rmas</literal> از <literal>home</literal> قرار دارد که خود زیرمجموعه دایرکتوری ریشه است. کرنل وظیفه ترجمه این مسیرها و آدرس حقیقی رو دیسک را بر عهده دارد.

en: Unlike other systems, there is only one such hierarchy, and it can integrate data from several disks. One of these disks is used as the root, and the others are “mounted” on directories in the hierarchy (the Unix command is called <command>mount</command>); these other disks are then available under these “mount points”. This allows storing users' home directories (traditionally stored within <filename>/home/</filename>) on a second hard disk, which will contain the <literal>rhertzog</literal> and <literal>rmas</literal> directories. Once the disk is mounted on <filename>/home/</filename>, these directories become accessible at their usual locations, and paths such as <filename>/home/rmas/Desktop/hello.txt</filename> keep working.
fa-IR: بر خلاف سایر سیستم‌ها، تنها یک ساختار درختی مانند این وجود دارد، که توانایی همگرائی داده‌ها از دیسک‌های فیزیکی گوناگون را داراست. یکی از این دیسک‌ها به عنوان دایرکتوری ریشه استفاده شده است و دیسک‌های دیگر بر روی سایر دایرکتوری‌های فرزند آن “سوار” شده‌اند (دستور یونیکس آن <command>mount</command> خوانده می‌شود)؛ این دیسک‌ها تحت عبارت “نقاط دسترسی (سوار)” شناخته می‌شوند. این قابلیت، امکان ذخیره‌سازی دایرکتوری‌های مربوط به حساب کاربری افراد (که به صورت سنتی در <filename>/home/</filename> ذخیره می‌شود) را روی دیسک دیگری می‌دهد که شامل <literal>rhertzog</literal> و <literal>rmas</literal> است. زمانی که دیسک روی <filename>/home/</filename> سوار شود، این دایرکتوری‌ها در مکان‌های مورد نظر خود قادر دسترس خواهند شد و مسیرهایی مانند <filename>/home/rmas/Desktop/hello.txt</filename> به درستی کار خواهند کرد.

en: There are also network filesystems, such as <acronym>NFS</acronym>, where data is not stored on a local disk. Instead, data is transmitted through the network to a server that stores and retrieves them on demand. The filesystem abstraction shields users from having to care: files remain accessible in their usual hierarchical way.
fa-IR: همچنین فایل‌سیستم‌های شبکه‌ای نیز وجود دارند، مانند <acronym>NFS</acronym> که داده به صورت مستقیم از روی دیسک نصب شده روی رایانه خوانده نمی‌شود. در عوض، داده توسط شبکه به سروری که وظیفه نگهداری و بازنشانی داده را به عهده دارد، منتقل می‌شود. این فایل‌سیستم لایه‌ای انتزاعی برای کاربر بوجود می‌آورد: تمامی فایل‌ها با همان ساختار درختی سابق قابل دسترسی خواهند بود.

en: Shared Functions
fa-IR: توابع اشتراکی

en: Since a number of the same functions are used by all software, it makes sense to centralize them in the kernel. For instance, shared filesystem handling allows any application to simply open a file by name, without needing to worry where the file is stored physically. The file can be stored in several different slices on a hard disk, or split across several hard disks, or even stored on a remote file server. Shared communication functions are used by applications to exchange data independently of the way the data is transported. For instance, transport could be over any combination of local or wireless networks, or over a telephone landline.
fa-IR: از آنجایی که تعدادی از عملکردهای پایه در تمام نرم‌افزارها مورد استفاده قرار می‌گیرند، معقول به نظر می‌رسد که یک مکان مرکزی برای آن‌ها در کرنل در نظر بگیریم. برای نمونه، فایل‌سیستم اشتراکی به هر برنامه کاربری این امکان را می‌دهد که تمامی فایل‌ها را با استفاده از نامشان باز کند، بدون نگرانی از اینکه این فایل در کجای دیسک ذخیره شده است. فایل ممکن است در قطاع‌های گوناگونی از دیسک ذخیره شده باشد، یا حتی بین چند دیسک گوناگون تقسیم شده باشد، یا در یک فایل سرور روی شبکه قرار داشته باشد. توابع ارتباطی اشتراکی توسط برنامه‌های کاربردی به منظور تبادل داده مورد استفاده قرار می‌گیرند مستقل از راه و روش انتقال آن. برای نمونه، عملیات انتقال ممکن است با ترکیبی از شبکه‌های محلی یا بیسیم یا حتی خطوط تلفن صورت بگیرد.

en: A process is a running instance of a program. This requires memory to store both the program itself and its operating data. The kernel is in charge of creating and tracking them. When a program runs, the kernel first sets aside some memory, then loads the executable code from the filesystem into it, and then starts the code running. It keeps information about this process, the most visible of which is an identification number known as <emphasis>pid</emphasis> (<emphasis>process identifier</emphasis>).
fa-IR: یک فرآیند، نمونه اجرایی یک برنامه به حساب می‌آید. این عمل شامل حافظه‌ای است که هم برنامه را شامل شود هم عملیات کنترلی روی آن. کرنل وظیفه ایجاد و ردیابی آن‌ها را برعهده دارد. زمانی که یک برنامه اجرا می‌شود، کرنل در ابتدا مقداری حافظه کنار می‌گذارد، سپس کد اجرایی برنامه از از فایل‌سیستم خوانده و درون حافظه بارگذاری می‌کند و در نهایت به اجرای کد می‌پردازد. اطلاعات مربوط به این فرآیند را ذخیره می‌کند، که مهم‌ترین این اطلاعات یک شناسه عددی به نام <emphasis>pid</emphasis> است (<emphasis>شناسه فرآیند</emphasis>).

en: Unix-like kernels (including Linux), like most other modern operating systems, are capable of “multi-tasking”. In other words, they allow running many processes “at the same time”. There is actually only one running process at any one time, but the kernel cuts time into small slices and runs each process in turn. Since these time slices are very short (in the millisecond range), they create the illusion of processes running in parallel, although they are actually only active during some time intervals and idle the rest of the time. The kernel's job is to adjust its scheduling mechanisms to keep that illusion, while maximizing the global system performance. If the time slices are too long, the application may not appear as responsive as desired. Too short, and the system loses time switching tasks too frequently. These decisions can be tweaked with process priorities. High-priority processes will run for longer and with more frequent time slices than low-priority processes.
fa-IR: کرنل‌های شبه یونیکس (از جمله لینوکس)، مانند سایر سیستم عامل‌های پیشرفته، قابلیت “چند وظیفگی” دارند. به عبارت دیگر، آن‌ها اجازه اجرای بسیاری از فرآیندها را “در یک زمان مشخص” می‌دهند. در حقیقت تنها یک فرآیند در هر واحد زمانی وجود دارد، اما کرنل زمان را به بازه‌های کوچکتری تبدیل می‌کند و به اجرای هر فرآیند می‌پردازد. از آنجایی که این بازه‌های زمانی بسیار کوتاه هستند (در محدوده هزارم ثانیه)، این خیال باطل بوجود می‌آید که گویی همه فرآیندها به صورت موازی اجرا می‌شوند، با اینکه در حقیقت هر یک از آن‌ها طی یک بازه زمانی فعال و در زمان دیگر دیگر بیکار هستند. وظیفه کرنل این است که مکانیزم این جدول زمانی را طوری تنظیم کند که این خیال به ذهن برسد، همزمان با اینکه عملکرد عمومی سیستم را افزایش دهد. اگر این بازه‌های زمانی بسیار طولانی باشند، برنامه کاربردی ممکن است پاسخی از خود نمایش ندهد و اگر بسیار کوتاه باشد سیستم توانایی تعویض این بازه‌ها را از دست خواهد داد. این تصمیمات می‌تواند با استفاده از اولویت‌بندی برای فرآیندها تغییر یایند. فرآیندهای با اولویت بالا برای مدت طولانی و با بازه‌های زمانی مکرر اجرا خواهند شد تا فرآیندهای با اولویت پایین.

en: <emphasis>NOTE</emphasis> Multi-processor systems (and variants)
fa-IR: <emphasis>یادداشت</emphasis> سیستم‌های چند پردازنده‌ای (و خانواده آن‌ها(

en: The limitation described above of only one process being able to run at a time, doesn't always apply. The actual restriction is that there can only be one running process <emphasis>per processor core</emphasis> at a time. Multi-processor, multi-core or “hyper-threaded” systems allow several processes to run in parallel. The same time-slicing system is still used, though, so as to handle cases where there are more active processes than available processor cores. This is far from unusual: a basic system, even a mostly idle one, almost always has tens of running processes.
fa-IR: محدودیت اشاره شده بالا که تنها یک فرآیند در هر زمان قابل اجرا است، همیشه صادق نیست. محدودیت واقعی در حقیقت این است که تنها یک فرآیند در حال اجرا روی <emphasis>هر هسته پردازنده</emphasis> در یک زمان قابل اجرا است. سیستم‌های چندپردازنده‌ای، چندهسته‌ای یا “چند-نخی” اجازه اجرای چندین فرآیند به صورت موازی را می‌دهند. کماکان از همان سیستم تقسیم زمانی استفاده می‌شود، البته، با این تفاوت که فرآیندهای فعال بیشتری روی هسته‌های پردازنده موجود هستند. این حالت اصلاً غیرعادی نیست: یک سیستم پایه، حتی بیکارترین آن‌ها، تقریباً همیشه ده‌ها فرآیند در حال اجرا دارد.

en: Of course, the kernel allows running several independent instances of the same program. But each can only access its own time slices and memory. Their data thus remain independent.
fa-IR: البته، کرنل اجازه اجرای چند نسخه مختلف از یک برنامه را می‌دهد. اما هر یک از آن‌ها تنها می‌تواند به برش زمانی و حافظه خود دسترسی داشته باشد. داده‌های موجود در آن‌ها به صورت جداگانه باقی می‌مانند.

en: Rights Management
fa-IR: مدیریت مجوز

en: Unix-like systems are also multi-user. They provide a rights management system that supports separate users and groups; it also allows control over actions based on permissions. The kernel manages data for each process, allowing it to control permissions. Most of the time, a process is identified by the user who started it. That process is only permitted to take those actions available to its owner. For instance, trying to open a file requires the kernel to check the process identity against access permissions (for more details on this particular example, see <xref linkend="sect.rights-management" />).
fa-IR: سیستم‌های شبه‌-یونیکس همچنین چند-کاربره نیز هستند. آن‌ها سیستم مدیریت مجوزی را فراهم می‌کنند که از کاربران و گروه‌های کاربری جداگانه، حمایت می‌کند؛ همچنین اجازه کنترل بر اساس نوع فعالیت و مجوز آن را هم می‌دهد. کرنل داده مربوط به هر فرآیند را مدیریت می‌کند و به آن اجازه کنترل مجوزهایش را می‌دهد. در اکثر اوقات، یک فرآیند توسط کاربری که آن را أغاز کرده است شناخته می‌شود. آن فرآیند تنها مجاز به اجرای عملیاتی است که برای آن کاربر مشخص شده است. برای نمونه، تلاش برای باز کردن یک فایل نیازمند بررسی کرنل از شناسه فرآیند در مقابله با مجوزهای مورد نیازش می‌باشد (برای جزئیات بیشتر در این مورد خاص، <xref linkend="sect.rights-management" /> را ببینید).

en: <primary>kernel space</primary>
fa-IR: <primary>فضای کرنل</primary>

en: “User space” refers to the runtime environment of normal (as opposed to kernel) processes. This does not necessarily mean these processes are actually started by users because a standard system normally has several “daemon” (or background) processes running before the user even opens a session. Daemon processes are also considered user-space processes.
fa-IR: به محیط اجرایی فرآیندهای عادی (بر خلاف کرنل) “فضای کاربر” گفته می‌شود. الزماً به این معنی نیست که این فرآیندها در حقیقت توسط کاربر اجرا می‌شوند چرا که یک سیستم استاندارد شامل چند “daemon” (پس‌زمینه) است که قبل از ورود کاربر به سیستم، فرآیندها را اجرا می‌کنند. این فرآیندها همچنین به عنوان فرآیندهای فضای-کاربر شناخته می‌شوند.

en: When the kernel gets past its initialization phase, it starts the very first process, <command>init</command>. Process #1 alone is very rarely useful by itself, and Unix-like systems run with many additional processes.
fa-IR: زمانی که کرنل فاز اولیه خود را می‌گذراند، اولین فرآیند موجود را آغاز می‌کند، <command>init</command>. فرآیند شماره ۱ به خودی خود کاربردی ندارد، به همین دلیل است که سیستم‌های شبه-یونیکس فرآیندهای بسیار دیگری را اجرا می‌کنند.

en: First of all, a process can clone itself (this is known as a <emphasis>fork</emphasis>). The kernel allocates a new (but identical) process memory space, and another process to use it. At this time, the only difference between these two processes is their <emphasis>pid</emphasis>. The new process is usually called a child process, and the original process whose <emphasis>pid</emphasis> doesn't change, is called the parent process.
fa-IR: اول از همه، یک فرآیند می‌تواند خودش را شبیه‌سازی کند (که البته با نام <emphasis>fork</emphasis> شناخته می‌شود). کرنل در این حالت یک فضای حافظه جدید (اما برابر) همچنین فرآیند دیگری که از آن استفاده کند، اختصاص می‌دهد. در این زمان، تنها تفاوت موجود بین این دو فرآیند <emphasis>pid</emphasis> آن‌ها است. فرآیند جدید معمولاً بنام فرزند و فرآیند اصلی که <emphasis>pid</emphasis> آن تغییر نکرده است بنام پدر نامگذاری می‌شوند.

en: Sometimes, the child process continues to lead its own life independently from its parent, with its own data copied from the parent process. In many cases, though, this child process executes another program. With a few exceptions, its memory is simply replaced by that of the new program, and execution of this new program begins. This is the mechanism used by the init process (with process number 1) to start additional services and execute the whole startup sequence. At some point, one process among <command>init</command>'s offspring starts a graphical interface for users to log in to (the actual sequence of events is described in more details in <xref linkend="sect.system-boot" />).
fa-IR: گاهی اوقات، فرآیند فرزند به حیات خود مستقل از فرآیند پدر ادامه می‌دهد، با داده‌های خودش که از فرآیند پدر کپی شده است. در بسیاری موارد، البته، این فرآیند فرزند برنامه دیگری را اجرا می‌کند. بجز موارد خاص، حافظه آن به سادگی با آن برنامه جدید جایگزین می‌شود و اجرای این برنامه جدید آغاز می‌گردد. این مکانیزمی است که فرآیند init (با شماره فرآیند ۱) از آن استفاده می‌کند تا سرویس‌های اضافی را راه‌اندازی کرده و به اجرای تمام مراحل بارگذاری سیستم بپردازد. در برخی نقاط، یک فرآیند از میان فرزندان <command>init</command> مبادرت به اجرای یک رابط گرافیکی می‌کند تا کاربران بتوانند وارد آن شوند (ترتیب دقیق این رویدادها به طور مشروح در <xref linkend="sect.system-boot" /> آمده است).

en: When a process finishes the task for which it was started, it terminates. The kernel then recovers the memory assigned to this process, and stops giving it slices of running time. The parent process is told about its child process being terminated, which allows a process to wait for the completion of a task it delegated to a child process. This behavior is plainly visible in command-line interpreters (known as <emphasis>shells</emphasis>). When a command is typed into a shell, the prompt only comes back when the execution of the command is over. Most shells allow for running the command in the background, it is a simple matter of adding an <userinput>&amp;</userinput> to the end of the command. The prompt is displayed again right away, which can lead to problems if the command needs to display data of its own.
fa-IR: زمانی که یک فرآیند به اتمام کار خود می‌رسد، نابود می‌گردد. کرنل در این زمان حافظه‌ای که به آن تخصیص داده بود را بازیابی می‌کند و دیگر بازه‌های زمانی در اختیارش قرار نمی‌دهد. همچنین به فرآیند پدر نیز اطلاع داده می‌شود که فرزندش نابود شده است، که این امکان را به یک فرآیندی که تحت فرآیند فرزند اجرا شده است می‌دهد تا عملیات مربوط به خود را قبل از نابودشدن آن انجام دهد. این رفتار به وضوح در مفسرهای خط فرمان (که با نام <emphasis>shell</emphasis> شناخته می‌شوند) قابل رویت است. زمانی که یک دستور درون خط فرمان نوشته می‌شود، کنترل خط فرمان تنها زمانی به کاربر بر می‌گردد که آن دستور تمام شده باشد. اکثر خط‌فرمان‌ها اجازه اجرای دستور در پس‌زمینه را می‌دهند، که این عمل به سادگی با اضافه کردن یک <userinput>&amp;</userinput> به انتهای دستور ممکن است. در این حالت، خط فرمان بلافاصله در اختیار کاربر قرار می‌گیرد، البته ممکن است در شرایطی که دستور نیاز به نمایش برخی داده‌ها داشته باشد مشکل آفرین گردد.

en: Daemons
fa-IR: فرآیندهای پس‌زمینه

en: A “daemon” is a process started automatically by the boot sequence. It keeps running (in the background) to perform maintenance tasks or provide services to other processes. This “background task” is actually arbitrary, and does not match anything particular from the system's point of view. They are simply processes, quite similar to other processes, which run in turn when their time slice comes. The distinction is only in the human language: a process that runs with no interaction with a user (in particular, without any graphical interface) is said to be running “in the background” or “as a daemon”.
fa-IR: یک “daemon” فرآیندی است که به صورت خودکار در زمان راه‌اندازی سیستم اجرا می‌شود. این فرآیند به اجرای خود (در پس‌زمینه) ادامه می‌دهد تا برخی وظایف نگهداری را انجام داده یا برخی سرویس‌ها را در اختیار سایر فرآیندها بگذارد. این “وظیفه پس‌زمینه” در حقیقت نامی دلخواه است که از دید کلی سیستم معنای خاصی نمی‌دهد. آن‌ها به سادگی، همان فرآیندها هستند، درست مانند سایر فرآیندها که هر زمان نوبتشان فرا برسد اجرا می‌شوند. تفاوت تنها در نامگذاری است که ما برایشان انتخاب کردیم: فرآیندی که بدون تعامل کاربر اجرا می‌شود (به طور خاص، بدون هیچ رابط گرافیکی) به عنوان فرآیند “پس‌زمینه” یا “daemon” شناخته می‌شود.

en: <emphasis>VOCABULARY</emphasis> Daemon, demon, a derogatory term?
fa-IR: <emphasis>واژگان</emphasis> Daemon, demon, یک عبارت موهن؟

en: Although <emphasis>daemon</emphasis> term shares its Greek etymology with <emphasis>demon</emphasis>, the former does not imply diabolical evil, instead, it should be understood as a kind of helper spirit. This distinction is subtle enough in English; it is even worse in other languages where the same word is used for both meanings.
fa-IR: با اینکه عبارت <emphasis>daemon</emphasis> ریشه‌در لغت یونانی <emphasis>demon</emphasis> دارد، اولی هیچ ارتباطی با شیطان و مظاهر آن ندارد! در عوض، بیشتر باید به عنوان یک روح یاری‌رسان دیده شود. این تفاوت در زبان انگلیسی نامحسوس است؛ حتی در سایر زبان‌ها که این لغت به هر دو معنایش اشاره می‌کند، شرایط بدتر بنظر می‌آید.

en: Several such daemons are described in detail in <xref linkend="unix-services" />.
fa-IR: تعدادی از این فرآیندهای پس‌زمینه با جزئیات در قسمت <xref linkend="unix-services" /> توضیح داده شده‌اند.

en: Inter-Process Communications
fa-IR: ارتباطات بین‌-فرآیندی

en: An isolated process, whether a daemon or an interactive application, is rarely useful on its own, which is why there are several methods allowing separate processes to communicate together, either to exchange data or to control one another. The generic term referring to this is <emphasis>inter-process communication</emphasis>, or IPC for short.
fa-IR: یک فرآیند جدا شده (ایزوله)، خواه پس‌زمینه باشد یا یک برنامه کاربردی، به خودی خود کاربردی ندارد، به همین دلیل است که روش‌های گوناگونی برای ارتباط و تعامل بین این فرآیندها وجود دارد، خواه برای تبادل داده یا کنترل یکدیگر. عبارت عمومی که به این منظور استفاده می‌شود <emphasis>ارتباط بین‌-فرآیندی</emphasis> یا به طور خلاصه IPC نام دارد.

en: The simplest IPC system is to use files. The process that wishes to send data writes it into a file (with a name known in advance), while the recipient only has to open the file and read its contents.
fa-IR: ساده‌ترین سیستم IPC از فایل‌ها استفاده می‌کند. فرآیندی که طی آن فرستنده، داده را جهت ذخیره‌سازی روی یک فایل (با نامی که در ادامه‌اش می‌آید) ارسال می‌کند و گیرنده تنها باید فایل را باز کرده و محتویات آن را بخواند.

en: <primary><emphasis>pipe</emphasis></primary>
fa-IR: <primary><emphasis>لوله</emphasis></primary>

en: In the case where you do not wish to store data on disk, you can use a <emphasis>pipe</emphasis>, which is simply an object with two ends; bytes written in one end are readable at the other. If the ends are controlled by separate processes, this leads to a simple and convenient inter-process communication channel. Pipes can be classified into two categories: named pipes, and anonymous pipes. A named pipe is represented by an entry on the filesystem (although the transmitted data is not stored there), so both processes can open it independently if the location of the named pipe is known beforehand. In cases where the communicating processes are related (for instance, a parent and its child process), the parent process can also create an anonymous pipe before forking, and the child inherits it. Both processes will then be able to exchange data through the pipe without needing the filesystem.
fa-IR: در صورتی که نخواهید داده را روی دیسک ذخیره کنید، می‌توانید از یک <emphasis>لوله</emphasis> استفاده کنید، که در ساده‌ترین حالت یک مدخل دوطرفه است؛ بایت‌هایی که در یک طرف نوشته می‌شوند در طرف دیگر قابل خواندن هستند. اگر طرفین این لوله توسط فرآیندهای جداگانه‌ای کنترل می‌شوند، این عملیات به یک کانال ارتباط بین‌-فرآیندی ساده تبدیل می‌شود. لوله‌ها می‌توانند به دو طبقه‌بندی تقسیم شوند: لوله‌های نامدار و لوله‌های بی‌نام و نشان. یک لوله نامدار توسط یک مدخل در فایل‌سیستم نمایش داده می‌شود (با اینکه داده تبادل یافته آنجا ذخیره نمی‌شود)، بنابراین هر دو فرآیند می‌توانند آن را جداگانه باز کنند در صورتی که مکان لوله نامدار قبل از آن ذکر شده باشد. در مواردی که فرآیندهای در حال تعامل به یکدیگر مربوط هستند (برای نمونه، یک فرآیند پدر و فرزند)، فرآیند پدر می‌تواند قبل از عملیات شبیه‌سازی یک لوله بی‌نام و نشان ایجاد کند تا فرزندش آن را به ارث ببرد. هر دو فرآیند در این حالت قادر به تبادل داده هستند بدون آنکه به فایل‌سیستم نیازی داشته باشند.

en: <emphasis>IN PRACTICE</emphasis> A concrete example
fa-IR: <emphasis>در عمل</emphasis> یک نمونه کاربردی

en: Let's describe in some detail what happens when a complex command (a <emphasis>pipeline</emphasis>) is run from a shell. We assume we have a <command>bash</command> process (the standard user shell on Debian), with <emphasis>pid</emphasis> 4374; into this shell, we type the command: <command>ls | sort</command> .
fa-IR: بیاید جزئیاتی را تشریح کنیم که هنگام اجرای یک دستور پیچیده (یک <emphasis>pipeline</emphasis>) از خط فرمان اتفاق می‌افتند. فرض می‌کنیم فرآیند <command>bash</command> داریم (خط فرمان استاندارد دبیان) با <emphasis>pid</emphasis> برابر ۴۳۷۴؛ درون این خط فرمان دستور <command>ls | sort</command> را وارد می‌کنیم.

en: The shell first interprets the command typed in. In our case, it understands there are two programs (<command>ls</command> and <command>sort</command>), with a data stream flowing from one to the other (denoted by the <userinput>|</userinput> character, known as <emphasis>pipe</emphasis>). <command>bash</command> first creates an unnamed pipe (which initially exists only within the <command>bash</command> process itself).
fa-IR: خط فرمان در ابتدا به تفسیر دستور وارد شده می‌پردازد. در این مورد، درک می‌کند که دو برنامه وجود دارند (<command>ls</command> و <command>sort</command>) با جریان داده‌ای که از یکی به دیگری سرازیر می‌شود (که با کاراکتر <userinput>|</userinput> به عنوان <emphasis>لوله</emphasis> نشان داده می‌شود). در ابتدا <command>bash</command> یک لوله بی‌نام و نشان ایجاد می‌کند (که به صورت اولیه در فرآیند خود <command>bash</command> وجود دارد).

en: Then the shell clones itself; this leads to a new <command>bash</command> process, with <emphasis>pid</emphasis> #4521 (<emphasis>pids</emphasis> are abstract numbers, and generally have no particular meaning). Process #4521 inherits the pipe, which means it is able to write in its “input” side; <command>bash</command> redirects its standard output stream to this pipe's input. Then it executes (and replaces itself with) the <command>ls</command> program, which lists the contents of the current directory. Since <command>ls</command> writes on its standard output, and this output has previously been redirected, the results are effectively sent into the pipe.
fa-IR: آنگاه خط فرمان به شبیه‌سازی خود می‌پردازد؛ که به ایجاد یک فرآیند جدید <command>bash</command> منجر می‌شود با شماره <emphasis>pid</emphasis> ۴۵۲۱ (<emphasis>pid</emphasis> اعداد انتزاعی هستند و در مجموع معنی خاصی نمی‌دهند). فرآیند ۴۵۲۱ از لوله ارث‌بری می‌کند، به این معنا که می‌تواند در قسمت ... آن بنویسد؛ <command>bash</command> جریان خروجی استاندارد خود را به ورودی این لوله سرازیر می‌کند. آنگاه برنامه <command>ls</command> اجرا (و جایگزین) می‌شود ،که وظیفه آن نمایش محتویات موجود در دایرکتوری فعلی است. از آنجایی که <command>ls</command> روی خروجی استاندارد خود می‌نویسد، و این خروجی قبل از این تغییر کرده است، نتایج با موفقیت به لوله فرستاده می‌شوند.

en: A similar operation happens for the second command: <command>bash</command> clones itself again, leading to a new <command>bash</command> process with pid #4522. Since it is also a child process of #4374, it also inherits the pipe; <command>bash</command> then connects its standard input to the pipe output, then executes (and replaces itself with) the <command>sort</command> command, which sorts its input and displays the results.
fa-IR: عملیات مشابهی برای دستور دوم اجرا می‌شوند: <command>bash</command> به شبیه‌سازی (کپی) خود می‌پردازد، که منجر به فرآیند <command>bash</command> جدیدی با شماره ۴۵۲۲ می‌شود. از آنجایی که یک فرآیند فرزند برای ۴۳۷۴ به حساب می‌آید، لوله را به ارث می‌برد؛ آنگاه <command>bash</command> ورودی استاندارد خود را به خروجی لوله متصل می‌کند، آنگاه دستور <command>sort</command> را اجرا (و با خود جایگزین) می‌کند، که این دستور ورودی را به صورت مرتب‌شده نمایش می‌دهد.

en: All the pieces of the puzzle are now set up: <command>ls</command> reads the current directory and writes the list of files into the pipe; <command>sort</command> reads this list, sorts it alphabetically, and displays the results. Processes numbers #4521 and #4522 then terminate, and #4374 (which was waiting for them during the operation), resumes control and displays the prompt to allow the user to type in a new command.
fa-IR: اکنون تمام قطعه‌های پازل در جای خود قرار گرفته‌اند: <command>ls</command> محتویات دایرکتوری فعلی را می‌خواند و فهرستی از فایل‌ها را روی لوله قرار می‌دهد؛ <command>sort</command> این فهرست را خوانده، به صورت الفبایی مرتب کرده و نتایج را نمایش می‌دهد. شماره فرآیندهای ۴۵۲۱ و ۴۵۲۲ نابود می‌شوند و ۴۳۷۴ (که در طی این مدت منتظر آن‌ها بود) کنترل را ادامه داده و خط فرمان را در اختیار کاربر قرار می‌دهد تا دستور جدیدی وارد کند.

en: Not all inter-process communications are used to move data around, though. In many situations, the only information that needs to be transmitted are control messages such as “pause execution” or “resume execution”. Unix (and Linux) provides a mechanism known as <emphasis>signals</emphasis>, through which a process can simply send a specific signal (chosen from a predefined list of signals) to another process. The only requirement is to know the <emphasis>pid</emphasis> of the target.
fa-IR: البته، تمام ارتباطات بین‌-فرآیندی جهت تبادل داده بکار نمی‌روند. در شرایط دیگر، تنها اطلاعاتی که نیاز به رد و بدل شدند دارند پیام‌های کنترلی مانند “توقف اجرا” یا “ادامه اجرا” می‌باشند. یونیکس (و لینوکس) مکانیزمی با نام <emphasis>سیگنال</emphasis> فراهم می‌آورد، که از طریق آن یک فرآیند می‌تواند یک سیگنال مشخص (که از فهرست از پیش آماده شده سیگنال‌ها انتخاب شده است) را به فرآیند دیگر ارسال کند. تنها پیشنیاز این ارتباط، دانستن <emphasis>pid</emphasis> فرآیند هدف است.

en: For more complex communications, there are also mechanisms allowing a process to open access, or share, part of its allocated memory to other processes. Memory now shared between them can be used to move data between the processes.
fa-IR: برای ارتباطات پیچیده‌تر، مکانیزم‌هایی وجود دارند که یه یک فرآیند اجازه دسترسی یا اشتراک‌گذاری برخی از حافظه تخصیص یافته خود را به سایر فرآیندها می‌دهد. اکنون از حافظه اشتراکی بین این دو فرآیند می‌توان به عنوان کانالی جهت تبادل داده استفاده کرد.

en: Finally, network connections can also help processes communicate; these processes can even be running on different computers, possibly thousands of kilometers apart.
fa-IR: در نهایت، ارتباطات شبکه نیز می‌تواند به ارتباط فرآیندها کمک کند؛ این فرآیندها حتی در رایانه‌های مختلف اجرا می‌شوند، که احتمالاً هزاران کیلومتر از یکدیگر فاصله دارند.

en: It is quite standard for a typical Unix-like system to make use of all these mechanisms to various degrees.
fa-IR: تقریباً برای یک سیستم شبه‌-یونیکس بسیار متداول است که بسیاری از این مکانیزم‌ها را در درجات مختلف بکار گیرد.

en: Libraries
fa-IR: کتابخانه‌ها

en: <primary>library (of functions)</primary>
fa-IR: <primary>کتابخانه‌ای (از توابع)</primary>

en: Function libraries play a crucial role in a Unix-like operating system. They are not proper programs, since they cannot be executed on their own, but collections of code fragments that can be used by standard programs. Among the common libraries, you can find:
fa-IR: کتابخانه‌های تابعی نقشی حیاتی در سیستم‌های شبه‌-یونیکس ایفا می‌کنند. آن‌ها برنامه‌های آماده نیستند، چرا که به خودی خود قابلیت اجرا شدن ندارند، اما مجموعه‌هایی جدا جدا از کد هستند که قابلیت استفاده توسط برنامه‌های استاندارد را دارند. در میان این کتابخانه‌های عمومی، می‌توانید مواردی زیر را پیدا کنید:

en: the standard C library (<emphasis>glibc</emphasis>), which contains basic functions such as ones to open files or network connections, and others facilitating interactions with the kernel;
fa-IR: کتابخانه استاندارد C (<emphasis>glibc</emphasis>)، که شامل توابع پایه مانند بازکردن فایل یا ارتباط شبکه و سایر ابزارهای تعاملی با کرنل است؛

en: graphical toolkits, such as Gtk+ and Qt, allowing many programs to reuse the graphical objects they provide;
fa-IR: ابزارهای گرافیکی، مانند +GTK و Qt به بسیاری از برنامه‌ها این امکان را می‌دهند تا از قسمت‌های مختلف یک محیط گرافیکی استفاده کنند؛

en: Thanks to those libraries, applications can reuse existing code. Application development is simplified since many applications can reuse the same functions. With libraries often developed by different persons, the global development of the system is closer to Unix's historical philosophy.
fa-IR: به لطف این کتابخانه‌ها، برنامه‌های کاربردی می‌توانند از کد موجود استفاده کنند. توسعه برنامه‌ها آسان‌تر شده است چرا از بسیاری توابع موجود استفاده می‌کنند. با کتابخانه‌هایی که توسط افراد گوناگون توسعه یافته است، توسعه سراسری سیستم به فلسفه تاریخی یونیکس نزدیک‌تر شده است.

en: <emphasis>CULTURE</emphasis> The Unix Way: one thing at a time
fa-IR: <emphasis>فرهنگ</emphasis> راه و روش یونیکس: یک کار در هر زمان

en: One of the fundamental concepts that underlies the Unix family of operating systems is that each tool should only do one thing, and do it well; applications can then reuse these tools to build more advanced logic on top. This philosophy can be seen in many incarnations. Shell scripts may be the best example: they assemble complex sequences of very simple tools (such as <command>grep</command>, <command>wc</command>, <command>sort</command>, <command>uniq</command> and so on). Another implementation of this philosophy can be seen in code libraries: the <emphasis>libpng</emphasis> library allows reading and writing PNG images, with different options and in different ways, but it does only that; no question of including functions that display or edit images.
fa-IR: یکی از بنیادی‌ترین مفاهیمی که در سیستم عامل‌های خانواده یونیکس ریشه دارد این است که هر ابزاری باید تنها یک کار انجام دهد، و آن را درست هم انجام دهد؛ برنامه‌ها می‌توانند از این ابزار استفاده کنند تا منطق پیچیده‌تری را بوجود آورند. این فلسفه می‌تواند حالت‌های گوناگونی به خود بگیرد. اسکریپت‌های خط فرمان شاید بهترین نمونه باشند: آن‌ها با استفاده از ابزار ساده، ترکیبات بسیار پیچیده‌ای بوجود می‌آورند (مانند <command>grep</command> و <command>wc</command> و <command>sort</command> و <command>uniq</command>). نمونه پیاده‌سازی شده دیگر از این فلسفه در کتابخانه‌های کد دیده می‌شود: کتابخانه <emphasis>libpng</emphasis> اجازه خواندن و نوشتن فایل‌های PNG را می‌دهد، با گزینه‌های مختلف و روش‌های گوناگون، اما تنها همین کار را انجام می‌دهد؛ توابعی که باعث نمایش تصاویر یا ویرایش آن‌ها شوند وجود ندارد.

en: Moreover, these libraries are often referred to as “shared libraries”, since the kernel is able to only load them into memory once, even if several processes use the same library at the same time. This allows saving memory, when compared with the opposite (hypothetical) situation where the code for a library would be loaded as many times as there are processes using it.
fa-IR: بر این به، أن‌ها اغلب کتابخانه‌های “اشتراکی گفته” می‌شود چرا، که کرنل تنها قادر است علاوه آن‌ها را یکبار در حافظه بارگذاری نماید با اینکه فرآیندهای بسیاری می‌توانند به طور همزمان از آن‌ها استفاده کنند. اینکار امکان صرفه‌جویی در حافظه را فراهم می‌آورد در مقایسه با شرایط عکس آن (به صورت فرضی) که کد موجود در کتابخانه به تعداد دفعاتی که فرآیندها از آن استفاده می‌کنند در حافظه قرار داده شود.
