تفاوت بین Shell، Console و Terminal چیست؟

Shell، کنسول و ترمینال مفاهیم نسبتاً قدیمی هستند که امروزه همچنان کاربرد دارند؛ هرچند قالب آن‌ها تغییر کرده باشد. آیا می‌دانستید که درگذشته ترمینال، یک مانیتور فیزیکی به همراه کیبورد و کنسول، یک پورت با اتصال سطح پایین به سیستم‌عامل بود؟ پس بر سر Shell چه آمد؟

2

همین‌که تکنولوژی پیشرفت می‌کند، مرز بین اشیاء و مفاهیمی که درگذشته بسیار جدا از هم بودند کم‌رنگ می‌شود. شاید کلمه‌های قدیمی، تغییر کرده و معنای جدیدی به خود بگیرند. گاهی اوقات دستگاه‌های متعدد در جعبه‌ای یکسان ادغام‌شده و دشوار می‌توان گفت که تکنولوژی‌های آن‌ها کاملاً متمایز از یکدیگر بوده است. برای شل، کنسول و ترمینال نیز سرنوشت مشابهی رقم خورد.

چند سالی می‌شود که روتر وایرلس، ستون فقرات اتصالات اینترنت در بیشتر خانه‌ها و دفترهای اداری کوچک را تشکیل می‌دهد؛ اما بسیاری از مردم (به‌غیراز گیک‌ها) متوجه نمی‌شوند که همین دستگاه از چندین دستگاه کوچک که درگذشته جدا از یکدیگر بودند و تعاریف مختص خود را داشتند، تشکیل‌شده است. یک روتر وایرلس معمولی (حتی ارزان‌ترین آن‌ها)، دارای یک اکسس پوینت بی‌سیم، سوئیچ اترنت، روتر، فایروال حالتمند یا وضعیتی، سرور DNS، سرور DHCP، موتور QoS و گاهی قابلیت‌های بسیار دیگر نظیر مودم DSL/coax هستند. به همین علت تازه‌کاران بخش فنی ممکن است که به آن با عناوینی چون «وایرلس»، مودم، روتر یا به‌سادگی «جعبه اینترنت» اشاره کنند؛ که تمامی این اسم‌ها نمی‌توانند حقیقت دستگاه را نشان دهند.

Shell، Terminal و Console – تفاوت آن‌ها چیست؟

هرکسی که تلاش کرده با سیستم‌عاملی خارج از قلمرو مایکروسافت و اپل کار کند، به رابط خط فرمان که تنها از دستورات متنی برای اجرای فرمان‌ها استفاده می‌کند، برخورده است. شما آن را به چه نامی می‌خوانید؟ شل؟ کنسول؟ ترمینال؟ اصلاً فرقی دارد؟ همه آن‌ها معنای یکسانی دارند، نه؟ پاسخ این سؤال بله و خیر است. درست مثل روتر وایرلس، این‌ها درگذشته (و ازلحاظ فنی هنوز هم) قطعات جداگانه‌ای از یک مفهوم بزرگ‌تر هستند. حتی اگر امروزه معنی اسم آن‌ها یکسان به نظر برسد.

ترمینال چیست؟

برای درک اینکه یک ترمینال چیست، باید به‌روزهای کامپیوترهای Mainframe بازگردیم. مین‌فریم‌ها کامپیوترهایی با تعداد کاربر بالا بودند. عموماً از آن‌ها در کسب‌وکارهای بزرگ و دانشگاه‌ها استفاده می‌شد. اگر چندین کاربر داشته باشید که بخواهند به‌صورت هم‌زمان از یک کامپیوتر استفاده کنند، چه‌کاری انجام می‌دهید؟ امروز برای حل این مشکل به هرکدام یک مانیتور، کیبورد و موس می‌دهیم. در عصر مین‌فریم، از ترمینال‌ها برای این منظور استفاده می‌شد. در دیکشنری‌ها ترمینال به‌عنوان پایانه، یک نقطه تماس و گاهی اوقات هردو توصیف‌شده است. مین‌فریم‌ها، ایستگاه‌های ترمینال مجهز به صفحه‌نمایش و کیبورد داشتند که در نقاط مختلف محوطه قرار می‌گرفت؛ به‌عبارت‌دیگر نقاط پایانی بودند که کاربران به کمک آن با مین‌فریم کار می‌کردند.

کنسول چیست؟

امروزه کنسول‌ها می‌توانند در نرم‌افزار جای گرفته باشند، اما همیشه هم این‌طور نبوده است. کنسول‌ها و ترمینال‌ها در کنار هم کار می‌کردند. کنسول، یک پورت و یک اتصال دیجیتالی به سیستم‌عامل یک مین‌فریم از ترمینال بود. یک مفهوم گسترده‌تر از کنسول، میز یا داشبوردی مثل رابط است که از طریق آن سیستم کنترل و نظارت می‌شود. ترمینال به‌صورت فیزیکی به پورت یک کنسول در مین‌فریم متصل می‌شود تا کاربر بتواند مین‌فریم را به‌صورت دیجیتالی کنترل کند. در یک سیستم لینوکسی، می‌توانید با فشردن ترکیب دکمه‌های ctrl، alt و F1 یا F2 یا… به کنسول نرم‌افزارهای مختلف دسترسی پیدا کنید. بسیاری از سیستم‌ها مثل ابزار حرفه‌ای شبکه، هنوز از پورت‌های مختلف کنسول برای مدیریت استفاده می‌کنند.

شل چیست؟

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

مقایسه Shell، Console و Terminal

پس تفاوت حقیقی شل، کنسول و ترمینال چیست؟ ترمینال به کنسول که شل در آن حضور دارد متصل می‌شود. ساده به نظر می‌رسد نه؟ اصطلاحات دیگری هم در این زمینه وجود دارد که ممکن است برایتان مفید واقع شود. TTY یک TeleTypeWriter یا ماشین‌تحریر از راه دور، اساساً مثل یک پورت کنسول است؛ اما معمولاً در نرم‌افزار مجازی‌سازی می‌شود. اگر با استفاده از ترکیب دکمه‌های بالا به یک کنسول مجازی متفاوت واردشده و به سیستم لاگین کنید، می‌توانید با اجرا کردن دستور who کاربران متعددی که به سیستم واردشده‌اند را ببینید. دستگاه‌های PTS هم وجود دارند که اساساً Psuedo Terminal Slaves یا بردگان شبه ترمینال هستند و گونه‌ای نامعمول محسوب می‌شوند. نوعی از TTY هستند، اما طوری شبیه‌سازی‌شده‌اند که امکان برقراری اتصال TTY بر شبکه یا دیگر بسترها را فراهم می‌کنند. SSH و Telnet مثال خوب از تکنولوژی‌هایی هستند که از دستگاه‌های PTS استفاده می‌کنند.

در طول زمان، مفاهیم تکنولوژی قربانی بست دادن بیش‌ازحد شده و تاریخ غنی پشت خود را پنهان می‌کنند. با توجه به این مطلب، شاید بد نباشد که اصطلاحات تکنولوژی را با دقت و آگاهی به کار ببریم تا در آینده، دانش فنی افراد ناقص نباشد.

آیا از این مقاله لذت بردید؟ منتظر نظرات ارزشمند شما هستیم!

منبع hackernoon
شاید بخوای اینا رو هم بخونی:
2 نظر برای این مطلب
  1. Javadi می‌گوید

    عالی بود …

  2. mta می‌گوید

    خیلی مفید بود… ممنون

نوشتن دیدگاه

آدرس ایمیل شما منتشر نخواهد شد.

دیدگاه شما پس از بررسی توسط تحریریه منتشر خواهد شد. در صورتی که در بخش نظرات سوالی پرسیده‌اید اگر ما دانش کافی از پاسخ آن داشتیم حتماً پاسخگوی شما خواهیم بود در غیر این صورت تنها به امید دریافت پاسخ مناسب از دیگران آن را منتشر خواهیم کرد.