محمد نصیری
بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

تفاوت Kernel و Shell در چیست؟ به زبان ساده

قبلا در خصوص تفاوت بین Kernel و Operating System صحبت کرده ایم اما بد نیست کمی در خصوص تفاوت بین Shell و Kernel نیز صحبت کنیم که برخی اوقات با هم اشتباه گرفته می شوند. Kernel یا هسته در واقع مرکز مدیریت یک سیستم عامل است که تمامی فرامین برای اجرا شدن از طریق این مرکز مدیریت صادر می شوند.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

تمامی اجزای سیستم عامل وابسته به این Kernel است. Kernel بصورت لایه بندی شده کار می کند و هر چقدر به درون این لایه بیشتر وارد شویم به منابع و دسترسی های بیشتری دسترسی پیدا خواهیم کرد اما نکته اینجاست که این لایه ها یا پوسته ها را ما به عنوان Shell یا پوسته می شناسیم.

Shell ها در واقع رابط کاربری ما برای دستور دادن به Kernel سیستم عامل هستند و شما از طریق این رابط ها می توانید با سیستم عامل ارتباط برقرار کنید. واژه های Kernel و Shell را ممکن است بیشتر در سیستم عامل های لینوکس و UNIX شنیده باشید اما توجه کنید که حتی سیستم عامل ویندوز هم برای خودش یک یا حتی چند نوع Shell دارد که می تواند از این طریق دسترسی ما به Kernel را فراهم کند.

در واقع می توان از Shell به عنوان یک مترجم نام برد که دستورات کاربر را دریافت می کند و آنها را به زبان Kernel ترجمه می کند تا Kernel آنها را اجرا کند. Shell یک نوع برنامه است که در حالت Unprivileged یا دسترسی محدود اجرا می شود و دستوراتی که از جانب کاربر دریافت می کند را به حالت Privileged یا دسترسی بالا منتقل می کند که Kernel در اینجا قرار دارد و دستورات شما در این قسمت اجرا می شوند.

تفاوت Shell و Kernel تفاوت شل و کرنل

اما چه اتفاقی می افتد اگر شما یک سیستم عامل داشته باشید که دارای Kernel باشد اما Shell نداشته باشد ؟ پاسخ ساده است ، در چنین حالتی شما یک سیستم عامل دارید که فقط و فقط می تواند کارهایی که از پیش برایش تعریف شده اند را انجام دهد و به هیچ عنوان نمی تواند درخواست های کاربران را پاسخ دهد زیرا رابط کاربری یا Shell ای وجود ندارد که بتواند با Kernel ارتباط برقرار کند.

این دقیقا مثل این است که بگوییم شما ویندوز را نصب کرده اید اما هیچ محیطی برای ارتباط با Kernel از لحاظ گرافیکی و خط فرمانی ندارید. حالا فکر کنید آیا ممکن است شما فقط Shell داشته باشید اما Kernel نداشته باشید ؟ پاسخ این سئوال مشخص است ... چنین چیزی امکان ندارد ، در واقع Shell محیطی است که خود Kernel برای برقراری ارتباط با ما در اختیارمان قرار می دهد و نبود Kernel به معنی نبود Shell نیز هست


محمد نصیری
محمد نصیری

بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

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

نظرات