تفاوت ترمینال، شل، TTY و کنسول چیست؟ هنگام کار با کامپیوتر ها، به ویژه سیستم های لینوکسی، اغلب از کلماتی مانند ترمینال، شل، TTY و کنسول استفاده می شود. در ادامه، تفاوت میان این اصطلاحات مورد بررسی قرار میگیرد.
در گذشته، بیشتر سیستم های رایانشی دارای واحدهای پردازشی بزرگ و متمرکزی بودند که به عنوان مین فریم (mainframe) شناخته می شدند. هر یک از این دستگاه های مین فریم دارای چندین رابط (interface) جهت اتصال بودند. این رابطها شامل مجموعهای از دستگاههای ورودی و خروجی میشدند. دستگاههای خروجی معمولاً بر مبنای متن بودند، هرچند گاهی طراحی گرافیکی نیز داشتند. همچنین اینترفیس ها دارای سطوح دسترسی مختلفی بودند که از عملکردهای پایه تا مدیریت سیستمعامل را شامل میشدند.
تصویر: کامپیوتر مینفریم IBM System Z9
تصویر(1)
جهت آگاهی از تفاوت ترمینال، شل، TTY و کنسول ابتدا می بایست هر یک از آن ها مورد بررسی قرار گیرد.
1- ترمینال چیست؟
در ابتدا، واژه ترمینال به دستگاههای سختافزاری خاصی اشاره داشت که جهت ارسال ورودی برای یک سیستم رایانشی و دریافت خروجی از آن استفاده میشد. این دستگاهها ماهیتی الکترونیکی یا الکترومکانیکی داشتند و معمولاً به سیستمهای پردازشی خارجی مانند کامپیوترهای مینفریم متصل میشدند. بخش ورودی این دستگاه شبیه ماشینتحریر بوده و در طول زمان به کیبوردهای امروزی تکامل یافته است. بخش خروجی آنها نیز در ابتدا پرینترهایی بودند که نتیجه را به صورت چاپی روی کاغذ ارائه میکردند. در سالهای بعد، نمایشگرهای الکترونیکی مشابه مانیتور، جایگزین این پرینترها شدند.
تصویر: ترمینال IBM 2741
تصویر(2)
در کامپیوترهای امروزی، معمولاً از کلمه ترمینال برای اشاره به برنامههای شبیهساز ترمینال (terminal emulators) استفاده میشود. این برنامهها ترمینالهای قدیمی را در یک کامپیوتر شبیهسازی نموده و رابط ورودی-خروجی مشابه ایجاد میکنند. از نمونههای این برنامهها میتوان به gnome-terminal، xterm و terminator اشاره کرد.
2- کنسول چیست؟ تفاوت ترمینال و کنسول
کنسول دستگاهی فیزیکی است که امکان تعامل با یک سیستم پردازشی را فراهم میکند و معمولاً برای مدیریت آن استفاده میشود. تفاوت ترمینال و کنسول در چیست؟ به عبارت دیگر، کنسول نوع خاصی از ترمینال است که مستقیما به مینفریم متصل شده و برای انجام وظایف نگهداری و پشتیبانی کاربرد دارد. به عنوان مثال، از کنسول معمولاً جهت تعامل با بخشهای مدیریتی سیستم مانند بوتلودر، کرنل و لاگر استفاده میشود. در رایانههای شخصی، کنسول شامل صفحهکلید و مانیتور بهصورت یکپارچه است.
تصویر: کنسول اپراتور برای IBM 701
تصویر(3)
کنسول مجازی یک برنامه نرمافزاری است که دسترسی به سیستم مشابهی را در لینوکس فراهم میکند. در روزهای اولیه توسعه لینوکس، برخی از توسعهدهندگان اصطلاحات ترمینال مجازی و کنسول مجازی را بهجای یکدیگر استفاده میکردند. اگر تعریف قدیمی کنسول (دستگاهی که مستقیماً به مینفریم متصل است) در نظر گرفته شود، میتوان تمامی کنسولهای مجازی را به عنوان ترمینالهای مجازی طبقهبندی نمود اما عکس این موضوع صادق نیست. ترمینالهای مجازی مانند xterm یا sshd دارای لایههای نرم افزاری بین خود و سیستم هستند، از این رو نمیتوان آنها را به عنوان کنسول مجازی دستهبندی کرد.
3- TTY چیست؟
TTY چیست؟ عبارت TTY در ابتدا مخفف teletypewriter بود، دستگاهی که در اواسط دهه 1800 میلادی مورد استفاده قرار می گرفت. این دستگاه کاراکترهای تایپشده را بهصورت سیگنالهای الکتریکی برای دستگاههای دوردست مانند چاپگرها ارسال میکرد. بعدها، زمانی که مینفریمها به دستگاههای ورودی و خروجی نیاز پیدا کردند، عبارت teletypewriter برای این منظور استفاده شد.
تصویر: یک teletypewriter قابل استفاده بهعنوان ترمینال
تصویر(4)
در دنیای لینوکس، TTY رابطی است که امکان دسترسی به ترمینال را فراهم میکند. برای درک بهتر پاسخ سوال (TTY چیست) به مثال زیر دقت نمایید که میتوان مجموعهای از فایلهای TTY را در دایرکتوری dev/ لینوکس پیدا کرد:
تصویر(5)
این TTY ها ممکن است ترمینالهای مجازی باشند یا مستقیماً به یک پورت سریال متصل شوند. در واقع آنها یک انتزاع از رابطهایی هستند که کاراکترها را به سیستم پردازشی اصلی ارسال یا از آن دریافت میکنند.
4- shell چیست؟ تفاوت ترمینال و شل
shell رابط اصلی است که هنگام ورود به یک سیستمعامل نمایش داده میشود. هدف اصلی آن کمک به اجرای برنامههای دیگر است. برخلاف سایر اصطلاحاتی که بررسی شدند، این واژه پیشینه سختافزاری ندارد اما ممکن است که به عنوان تشبیهی از turtle’s shell (لاکِ لاکپشت ها)، تکامل یافته باشد.
تصویر: خروجی شل لینوکس هنگام راهاندازی
تصویر(6)
تفاوت ترمینال و شل در این است که ترمینال برای اشاره به دستگاه فیزیکی بومی باشد اما شل یک رابط نرم افزاری است. در لینوکس، معمولاً از واژه شِل برای اشاره به رابط اصلی خط فرمان (command-line) استفاده میشود که می توان در آن دستورات و برنامهها را اجرا نمود. چند نمونه از شِلهای مختلف bash، csh، ksh و zsh هستند. همچنین از کلمه "شِل" برای اشاره به رابطهای زبانهای برنامهنویسی تفسیر شده (interpreted programming languages) مانند پایتون استفاده میشود.
نتیجه گیری
در این مقاله تلاش شد تا تفاوت ترمینال، شل، TTY و کنسول مورد بررسی قرار گیرد. اصطلاحات کنسول، ترمینال و TTY ارتباط بسیار نزدیکی با هم دارند. این اصطلاحات برای اشاره به دستگاههای فیزیکی یا رابطهای شبیهسازیشدهای استفاده میشوند که ورودیها را برای سیستمهای پردازشی ارسال کرده و خروجیها را نمایش میدهند. از سوی دیگر، شِل یک رابط نرمافزاری است که با تفسیر ورودیهای کاربر، برنامههای دیگر را اجرا میکند، در حالی که خروجی آنها را به دستگاههای نمایشگر بازمیگرداند.