Shell ،Console و Terminal لینوکس چه تفاوتی‌هایی با یکدیگر دارند؟

Shell ،Console و Terminal لینوکس مفاهیم بسیار قدیمی‌ای هستند که همچنان از آن‌ها استفاده می‌کنیم، البته با طرز کار و شکل و شمایل اصلاح شده! اما آیا می‌دانستید ترمینال در اوایل یک مانیتور فیزیکی و یک کیبورد بود و یا کنسول راهی برای ارتباط Low-level با سیستم‌عامل بوده است؟ اما شل چطور؟ برای یافتن پاسخ به این سوال و همچنین درک تفاوت‌های مابین Shell ،Console و Terminal در سیستم عامل گنو/لینوکس، در ادامه با سکان آکادمی همراه باشید.

درحالی که تکنولوژی رو به جلو حرکت می‌کند، فاصلهٔ بین اشیاء و مفاهیم مختلف که پیش از این قابل تشخیص بود، کم‌کم محو می‌شود؛ کلمات می‌توانند به صورت محاوره‌ای معنای یکسانی را به اشتراک بگذارند در حالی که زمانی مفهوم منحصربه‌فرد خود را داشته‌اند. گاهی اوقات چندین ابزار مجزا، بدون نشانه‌ای از اصل‌ونسب تکنولوژیکی‌شان، مشابه‌ هم مد نظر قرار داده می‌شوند (حداقل این چیزی است که تقریباً دربارهٔ کنسول، شل و ترمینال رخ داده است.)

سال‌های سال، روتر بی‌سیم در بیشتر خانه‌ها و دفاتر اداری کوچک پشتوانهٔ اتصال به اینترنت بوده است اما بسیاری از افراد نمی‌دانند که این وسیله در واقع از چندین و چند ابزار مختلف تشکیل شده که در گذشته مستقل از یکدیگر بوده‌اند و برای خود معنی و مفهومی داشته‌اند. یک روتر بی‌سیم معمولی -حتی یکی از ارزان‌ترین مدل‌های موجود- شامل یک اکسس‌پوینت بی‌سیم، سوییچ اترنت، روتر، فایروال، DNS سرور، DHCP سرور، QoS و … است و این در حالی است حتی گاهی اوقات تعداد بسیار بیشتری از قطعات را شامل می‌شود. در نتیجه، یک فرد تازه‌کار شاید این ابزار را به عنوان یک وسیلهٔ بی‌سیم، مودم، روتر، یا به اصطلاح یک «جعبهٔ اینترنتی» شناسایی کند که هیچ کدام نمی‌توانند تمام وظایف این دستگاه را نشان دهند. این تنها یکی از مثال‌های موجود بود.

کنسول، شل و ترمینال در چه مواردی با یکدیگر متفاوت‌اند؟
هر شخصی که تا‌به‌حال تجربهٔ هرچند کوتاهی در سیستم عامل‌هایی به غیر از قلمرو مایکروسافت و اپل داشته، بدون شک با محیط Command Line روبه‌رو شده است. شما این محیط را چه می‌نامید: کنسول؟ شل؟ یا ترمینال؟ آیا باهم فرق دارند یا همهٔ آن‌ها یک چیز واحد هستند؟ پاسخی که به این سؤال می‌توان داد هم بلی است و هم خیر! دقیقاً همانند روتر بی‌سیم، این کلمات پیش از این بخش‌های مجزایی بودند، (و اگر فنی‌تر بگوییم، در حال حاضر نیز هستند) و هر لغت مفهوم متفاوتی را نشان می‌داد.

ترمینال چیست؟‌‌
برای درک بهتر این‌که ترمینال چیست باید به دوران Mainframeها برگردیم. Mainframeها کامپیوترهایی با تعداد کاربران زیاد بودند و در مراکز تجاری بزرگ و دانشگاه‌ها رایج بودند. اما وقتی تعداد زیادی از افراد متقاضی استفاده از یک کامپیوتر به طور همزمان هستند، چه راهی پیش‌روی شماست؟ چطور این وسیله را به اشتراک می‌گذارید؟ به بیان امروزی‌تر، به هر کدام‌شان یک مانیتور، یک کیبورد و ماوس می‌دهیم.

در عصر Mainframeها، از ترمینال استفاده می‌شد. یک ترمینال طبق تعریف لغت‌نامه، «پایان یک چیز یا نقطه ارتباط با چیزی است، گاهی اوقات هم هردو». Mainframeها مجهز به صفحه نمایش و کیبوردهایی -یا بهتر بگوییم ترمینال‌هایی- در اطراف بدنهٔ خود بهره می‌بردند به طوری که کاربران می‌توانستند از Mainframe استفاده کنند.

کنسول چیست؟
امروزه کنسول‌ها بخش نرم‌افزاری ماجرا هستند اما قضیه همیشه این‌طور نبوده است! در گذشته کنسول‌ با ترمینال‌ها در ارتباط بودند. یک کنسول راه‌و‌روش ارتباط فیزیکی و دیجیتالی به سیستم‌عامل Mainframe بود که این دستورات از طریق ترمینال صورت می‌گرفت. به عبارت دیگر، کنسول میز یا داشبوردی به عنوان رابط است که از این طریق& سیستم کنترل شده و یا نظارت می‌شود.

ترمینال به صورت فیزیکی به پورت مربوط به کنسول در Mainframe متصل می‌شد تا کاربر بتواند Mainframe را به صورت دیجیتالی کنترل کند. در سیستم لینوکسی می‌توانید با فشردن کلیدهای <ctrl> + <alt> + <F1> و غیره،‌ به کنسول‌های نرم افزاری مختلف دسترسی داشته باشید (در سیستم عامل اوبونتو، پس از ورود به کنسول، با فشردن کلیدهای <ctrl> + <alt> + <F7> می‌توانید به محیط رابط کاربری بازگردید.) بسیاری از سیستم‌ها هنوز هم به پورت‌های سریال کنسول برای مدیریت مجهز هستند مانند تجهیزات حرفه‌ای شبکه.

شل چیست؟
شل در لغت به معنای «پوست میوه» است که در کنار کرنل به معنی «مغز» (یا دانه) معنا پیدا می‌کند؛ شل قسمتی است که حول دانهٔ میوه‌ قرار می‌گیرد. در کامپیوترها نیز قضیه همین گونه است. شل محیط کامندلاینی است که شما با آن ارتباط دارید. به عنوان مثال BASH، CSH و ZSH نمونه‌هایی از آن هستند. شل دستورات تایپ شده را می‌گیرد و به سیستم‌عامل می‌دهد تا آن‌ها را اجرا کند یا می‌تواند اسکریپت‌ها را بگیرد و منطق داخل آن‌ها را تفسیر کرده و با دستور دادن به سیستم‌عامل، نحوهٔ اجرای دستورات اسکریپت را به سیستم عامل بفهماند.

کنسول، شل و ترمینال در یک کلام!
بنابراین تفاوت عمدهٔ این سه در چیست؟ ترمینال وقتی شل آماده به کار باشد به کنسول متصل می‌شود. البته اصطلاحات دیگری نیز وجود دارند که شاید برای‌تان مفید واقع شود. برای مثال یک TTY نوعی دستگاه تایپ از راه دور است. در واقع مترادف پورت کنسولی است اما به طور نرم‌افزاری شبیه‌سازی شده است.

اگر از طریق کلیدهایی که در بالا بیان شد در سیستم لینوکسی‌تان به کنسول مجازی دیگری بروید و لاگین کنید، می‌توانید با اجرای دستور who کنسول‌های مختلفی را همراه با کاربران وارد شده به آن‌ها مشاهده کنید. در آن قسمت تعدادی ابزار PTS وجود دارد که نوعی ابزار مجازی هستند. این اجزا نوعی از TTYها هستند اما به شکلی اجرا شده‌اند که به اتصال TTY اجازه دهند روی شبکه یا دیگر قسمت‌ها فعالیت نماید. SSH و Telnet نمونه‌های خوبی از برنامه‌هایی هستند که از ابزار PTS استفاده می‌کنند.

What Is The Difference Between Shell, Console, And Terminal?

1


مرتضی صمدی

فارغ‌التحصیل رشتهٔ نرم‌افزارم و موفق شدم تا‌به‌حال چندتا پروژهٔ نصفه‌و‌نیمه رو ناموفق رها کنم! جستجوگر خوبی هستم، طوری که تا‌به‌حال مشخصات بیشتر سخت‌افزارهای جدید مثلا اسمارتفون‌ها، کنسول‌ها و لپ‌تاپ‌ها رو میدونم؛ اطلاعات سیستم‌عامل‌های جدید مثل لینوکس، ویندوز و مک رو می‌خونم و امتحان می‌کنم، البته اگه بتونم. بازی‌های جدید رو میشناسم ولی بازی نمیکنم (چراش رو نمیدونم) و عاشق اینم که یک بار اتومبیل‌های قدیمی مثل فورد ماستنگ یا کامارو اس‌اس رو برونم.






  • amir در تاریخ: 1395/12/23

    نقل قول از نویسنده \\\"هر شخصی که تا‌به‌حال تجربهٔ هرچند کوتاهی در سیستم عامل‌هایی به غیر از قلمرو مایکروسافت و اپل...\\\".
    اما همان طور که می دانید سیستم عامل دستگاه های اپل با نام mac os x بر پایه unix بوده که بنابراین این مفاهیم را در بر دارد.

    مرتضی صمدی در تاریخ: 1395/12/23

    سلام. آقا امیر درست می فرمایید. البته من تجربه کاری زیادی ندارم در این سیستم عامل و بذارید به حساب کم تجربگی بنده. اما منظور، میزان کاربرد محیط command line در این سیستم عامل هاست. همون طور که میدونید مخاطب این سیستم عامل ها بیشتر کارهاشون رو در محیط گرافیکی انجام میدن و به غیر از استثنا ها و مشکلات نرم افزاری که پیش میاد، معمولا کسی برای کارهای روزمره سراغ محیط متنی ترمینال و cmd نمیره.

از طریق این فرم، می توانید بدون ثبت نام نظر دهید و یا اگر قبلا ثبت نام کرده اید، با ورود ناحیه ی کاربری می توانید علاوه بر ثبت نظر، به مدیریت نظرات خود نیز بپردازید.
(فیلد اجباری)
(فیلد اجباری)
(فیلد اجباری)
(فیلد اجباری)