هسته سیستم عامل چیست؟
هسته سیستم عامل (Kernel) یک نرم افزار سطح پایین است که وظیفه کنترل درخواستهای خروجی یا ورودی از طرف نرم افزارهای دیگر (و همچنین سخت افزارها) را دارد.
هسته سیستم عامل (Kernel) چیست؟
هسته سیستم عامل (Kernel) مهمترین قسمت یک سیستم عامل و در اصل مغز آن است و وظیفه آن، مدیریت درخواستهای داده شده از طرف اپلیکیشنهای دیگر به منابع سخت افزاری و بلعکس را دارد. درواقع اگر سیستم عامل را به یک ماشین تشبیه کنیم، هسته سیستم عامل موتور آن خواهد بود که بدون این موتور، ماشین قادر به انجام کاری نخواهد بود.
هسته سیستم عامل تقریباً پایین ترین سطح انتزاعی ممکن برای یک نرم افزار به حساب میآید. به طوری که پس از کرنل، تنها برنامه سطح پایین تر موجود، اسمبلر (Assembler) است که کدها و درخواستهای داده شده را برای پردازش به صورت اپکد (Opcode) تبدیل کند.
کرنل درواقع رابط بین اپلیکیشنها و منابع سخت افزاری (نظیر هارد دیسکها، مموریها و…) است. هر برنامه و اپلیکیشنی که بخواهد از منابع سیستم (System Resources) استفاده کند، درخواست خود را به کرنل میفرستد (برنامه، خود این درخواستها را ارسال نمیکند بلکه با استفاده از منابع و رابطهای سیستم عامل این کار را میکند). این درخواست System Call نام دارد.
هسته سیستم عامل به منابع سخت افزاری دسترسی مستقیم دارد؛ یعنی میتواند برای دادههای اپلیکیشنها در حافظه دسترسی تصادفی (رم یا RAM) آدرس دهی کند، به آنها اجازه دسترسی به حافظههای دیگر را بدهد، دادهها را بر روی حافظههای جانبی (مانند هارد دیسکها) ذخیره کند، دستورات به ترتیب برای پردازش به CPU بفرستد، منابع سخت افزاری را مدیریت کند و … . این موارد فقط تعداد اندکی از دسترسیهایی است که یک هسته سیستم عامل میتواند داشته باشد.
وظیفه هسته سیستم عامل چیست؟
کرنل واسط بین اپلیکیشنها و سخت افزارها است؛ یعنی هر درخواستی که هر یک از اپلیکیشنها (حتی منابع خود سیستم عامل) برای استفاده از منابع سخت افزاری داشته باشد، ابتدا به کرنل فرستاده میشود تا مورد بررسی و تحلیل قرار بگیرد. کرنل همچنین وظایف دیگری نیز بر عهده دارد؛ از جمله مدیریت منابع سیستم، آماده سازی سیستم عامل و برنامهها، مدیریت آدرسها و حافظه RAM و… .
سپس کرنل این دستورات را به اسمبلر میفرستد. واحد اسمبلر نیز کدهای ورودی را به کدهای قابل درک سخت افزارها (Opcodes) تبدیل میکند سپس طبق دستور داده شده، آن را به سخت افزار مورد نظر میفرستد.
همچنین زمانی که دادههای ورودی از طریق سخت افزارها به کرنل فرستاده شوند، این پاکتهای داده را به اپلیکیشن مورد نظر میرساند.
بنابراین هسته سیستم عامل یک وظیفه کلی دارد و آن واسطه گری میان منابع نرم افزاری و منابع سخت افزاری است.
من ترم سه کاردانی هستم. مثل خودت عاشق it خصوصا برنامه نویسی وب ولی هیچی یاد نگرفتم
خب دوست عزیز بزار با یک مثال واستون توضیح بدم:
شما اینترنتی که در اختیار دارین رو نرم افزار فرض کنین، سرویس دهنده اینترنتی (ISP) تونو هم نرم افزار سیستمعامل و منابعش در نظر بگیر. مخابرات رو هم کرنل و سرور اون طرف رو هم سخت افزار فرض کن.
مخابرات درواقع رابط بین نرم افزار و سخت افزار (ISP و سرورهای دیگه) قرار داره و اونارو کنترل میکنه. کرنل هم دقیقا کارش همینه؛ یعنی هر دستوری که میاد و قصد هرگونه استفاده از منابع سخت افزاری رو داشته باشه (که همه دستورات رو شامل میشه)اول باید بره به کرنل (در این مثال یعنی اول میره به مخابرات، یعنی دستوری نمیتونه بدون رد شدن از کرنل از منابع سخت افزاری استفاده کنه) بعد کرنل میتونه طبق دستور منابع رو در اختیار سیستم عامل (یا نرم افزار) قرار بده.
این خلاصه نحوه کار کرنل هستش. اگه مشکلی بود در خدمتم
اول سیستم عامل بوده یا اول اسمبلر؟
اگه منظورتون سطوح انتزاعی هستش، باید بگم اول اسمبلر، بعد سیستم عامل هست. اسمبلر کدهای سطح بالا رو به پایین ترین سطح یعنی زبان ماشین (اُپکد) تبدیل میکنه؛ پس در آخرین سطح، قبل از سطوح سخت افزاری قرار میگیره.
ایول بابا پروفسورااااااااااااااااا
خیلی ساده و شیرین توضیح دادی
ممنون
سلام
بسیار ممنونم
فوق العاده توضیحتون عالی بود و خیلی استفاده بردیم
واقعا متشکر
منظورت اینه که اگه یه بازی یا نرمافزار اجرا نمیشه مثل بازی و نرمافزار های دیتا دار مربوط به کرنل گوشیه؟
نخیر، امکان این که مشکل از کرنل باشه بسیار کمه. باز نشدن برنامه ها و بازی ها دلایل خیلی متنوعی داره که میشه گفت مشکل کرنل تو ته لیسته چون اگه کرنل مشکل داشته باشه، معمولا سیستم عامل اصلا اجازه استفاده کاربر رو نمیده. مشکل میتونه از منابع سیستم عاملی (که سطحش بالاتر از کرنله) باشه یا سازگار بودن برنامه و …. .
سلام
خیلی دمت گرمه حال کردم با توضیحاتت
ممنون دوست عزیز 😉
منون خیلی عالی بود دوست عزیز میتونی بگی که ویندوز با چه زبان هایی نوشته شده مثلا کرنل باچی نوشته شده رابط گرافیکی با چی نوشته شده لطفا جواب دادین لینکشو برا ایمیل کنیی مرسی
سلام. معمولا با زبان C نوشته میشن و در قسمت هایی هم به صورت مستقیم از دستورات اسمبلی استفاده میشه. البته نا گفته نمونه که هر زبانی رو میشه نهایتا به زبان ماشین تبدیل کرد و به عنوان یه زبان برای نوشتن کرنل ازش استفاده کرد
سلام دوست خوبم
انشاالله با یه رتبه خوب روزانه IT قبول میشی
زبان اموزشت عالی ی ی ی
موفق باشی
😀 خیلی ممنونم، ایشالا.
سلام اقا امیر انشاالله ک خوبید بنده چند تا سوال داشتم من یه لپ تاپ خریدم میخوام روش بک ترک رو نصب کنم ارور کرنل میده هم از بوت و هم از ماشین مجازی شما میدونید مشکلش چیه؟ ایا حل میشه ؟ اخه من به بک ترک نیاز دارم
سلام. مشکل میتونه از فایل ایزوی دانلود شده باشه ولی بهتره خطا رو به صورت کامل بنویسید تا راهنماییتون کنم. فروم های backtrack هم میتونه جای خوبی باشه برای پرسیدن چنین سوالاتی.
سلام دوست عزیز لطفا میشه یه توضیحی راجب هسته ویندوز 98 بدین مختصر
سلام. کرنل ویندوز های 95 و 98 و ME یکیه و برای ویندوز های جدیدتر از کرنل های NT استفاده شده. هسته 98 یه کرنل 32 بیتی و 16 بیتی (برای ms-dos) به صورت هیبریدی هست و برخلاف ویندوز 95 از رابط WDM (فرم ورک هسته برای درایورها) برای شناسایی و استفاده از درایور ها استفاده میکنه. نحوه بوت کردن در این کرنل با NT ها فرق میکنه میتونید تو {این لینک} پروسه بوتش رو هم ببینید.
سلام عالی بود.
ویندوز با سی نوشته میشه یا با سی پلاس پلاس ؟
سلام. هسته ویندوز اکثرا با C و بعضی قسمت هاش با اسمبلی نوشته شده. سایر اجزای ویندوز با C و C++ و C#.
متشکر عزیز شما انسان بزرگی هستی
دمتون گرم آقا مهدی 🙂
سلام
پشتیبانی از کابلotg بستگی به سخت افزار گوشی دارد یا نه؟
مثلا به رام گوشی یا کرنل یا چیز دیگه ای؟
چون یه جا خوندم که گفته بود به رام مربوط میشه
سلام. اگه دستگاه پورت USB داشته باشه، به صورت سخت افزاری قاعدتا باید ساپورت کنه چون USB OTG از یه پروتکلی استفاده میکنه که به صورت نرم افزاریه و باید از سمت سیستم عامل گوشی ساپورت شه.
مهندس خسته نباشی.الان گوشی من نوت۴ هست که به آندروید ۵ ،۱،۱ آپدیت کردم.الان این گوشی من با کابل OGT میتونه هارد خارجی رو بشنلسه و ساپورت کنه مثل یک یو اس بی؟راستی منظور تو هارد های خارجی که میگن رابطش با سینه و کابل ی اس بی چی هست؟مگر با استفاده از خود درگاه یو اس بی بهش نمیشه وصل کرد.یا این وصل با سیم نسبت به وصل با استفاده از درگاه چه تفاوتی داره.ممنون میشم راهنماییم کنید.تشگر
سلام. بله فکر کنم بشه با کابل OTG بشه هارد اکسترنال رو وصل کرد. اکسترنال ها معمولا با پورت یو اس بی وصل میشن و برقشونو هم از همون پورت میگیرن. اگه اکسترنالی داشته باشید که منبع تغذیش جدا باشه بهتره چون واسه باتری گوشی مشکل میشه که برقشو تامین کنه.
علیرضا خسته نباشی…….
واقعا لذت میبرم اینقد قشنگ و با حوصله جواب میدی
همه چی رو میتونم از اینجا پیدا کنم
مــــــــــــــــرسی
_____
امیر رضا جان ببخشید اسمتون رو اشتباه گفتم
خیلی ممنونم دوست عزیز 🙂
با عرض سلام و خسته نباشید.من گوشی HTC D 816 داشتم و خواستم اونو به اندروید ۵ ارتقا بدم بعد از اینکه ارتقا دادم گوشیم با ی مشکل خیلی بد مواجه شد.من هرچیزی رو ک بر روی تاچ لمس میکردم نگه داشته میشد حالا نمیدونم ایراد از چیه.ممنون میشم کمکم کنید
سلام. من تخصصی درباره گوشی ها ندارم. بهتره تو انجمن های مربوط به گوشی بپرسید.
سلام
فرق سفت افزار و سخت افزار که داخل یکی از عکسهای بالا هست چیه؟
ممنون
سلام. سخت افزار که قطعات فیزیکیه کامپیوتره مثل رم، هارد دیسک و … . فیرم ویر یا سفت افزار هم برنامه ایه که اون سخت افزار رو کنترل میکنه. مثلا سفت افزار هارد دیسک میگه که چطور اطلاعاتو ذخیره کن، چطور بخون و … .