انتخاب یک سیستم عامل

دبیان یکی از توزیع های محبوب لینوکس !سیستم عامل چیست ؟ یک سیستم عامل فراهم کننده ی تمام امکانات اساسی برای استفاده از یک کامپیوتر است .کاربر ها به وسیله سیستم عامل میتوانند استاندارد های رابط کاربری را تعریف کنن , برنامه ها را روی کامپیوتر اجرا کنن و از دیوایس های سخت افزاری استفاده کنن. این پست توضیح میده که چگونه اجزای مختلف کامپیوتر کنار یکدیگر کار میکنن تا شما بتونید از کامپیوتر استفاده کنید.کرنل چیست؟ کرنل یک نرم افزار است که وظیفه ی مدیریت منابع مختلف و سطح پایین را بر عهده داره. رابط بین سیستم عامل و سخت افزار اختصاص دادن حافظه به برنامه هااختصاص دادن زمان برای پردازش دستورات رابط بین برنامه های مختلف با یکدیگر به طور مثال زمانی که شما میخواهید از یک موتور جستجو استفاده کنین اجرای بسیاری از دستورات پایه به کرنل وابسته است .یک موتور جستجو زمانی میتونه با دنیای خارج ارتباط برقرار کنه که کرنل از طریق سیستم عامل درخواست تخیص کارت شبکه به موتور جستجو را دریافت کرده باشد . زمانی که روی یک برنامه کلیک میکنین سیستم عامل درخواست شما را به کرنل میده و کرنل هم در صورت امکان اجرای دستور مقداری از حافظه را در اختیاره برنامه قرار میده. تمام برنامه هایی که روی کامپیوتر اجرا میشن از راه هایی مشابه به کرنل وابسته هستند. با این وجود جزئیات در سیستم عامل های مختلف متفاوت است .کرنل لینوکس با مک ( کرنل مورد استفاده ی کامپیوتر ها و لپ تاپ های اپل ) و کرنل ویندوز متفاوت است . کرنل نرم افزاری است که کامپیوتر را پایدار نگه میداره . کرنل ها قابل تعویض نیستن. هر کدام از این کرنل ها از طراحی متفاوتی استفاده و رابط های نرم افزاری متفاوتی را ارائه میدن. بعضی از برنامه ها روی کرنل های مختلفی اجرا میشن اما بیشتر آن ها به اصلاحات سیستم عامل نیاز دارن.برنامه نویس ها فایل های باینری را برای نوع خاصی از پردازنده ها و کرنل ها ایجاد میکنن. برای اجرای یک نرم افزار شما به فایل های باینری که برای آن سیستم عامل نوشته شده است نیاز خواهید داشت.لینوکس از کرنلی به نام لینوکس استفاده میکنه , در حقیقت کلمه ی لینوکس تنها اشاره به کرنل داره. ویژگی های دیگری که ممکنه شما در مواجه با لینوکس به آن ها بر بخورین برنامه های non-kernel یا برنامه هایی هستند که در فضای کاربری اجرا میشن . یه سوال جالب : به نظرتون کرنل شبیه به چه ارگان دولتی عمل میکنه ؟ در سال 1991 یک دانش آموز فنلاندی به نام لینوکس توروالدز سیستم عامل لینوکس را نوشت . امروزه لینوکس روی انواع پردازنده ها و سخت افزار ها قابل اجرا است . راحت ترین راه برای یادگیری لینوکس استفاده از آن روی یک کامپیوتر دسکتاپ یا یک لپ تاپه . کرنل لینوکس روی هر سخت افزاری از گوشی های هوشمند گرفته تا سوپر کامپیوتر ها قابل اجرا است . مشخصه های دیگر یک سیستم عامل در مرکز هر سیستم عامل کرنل قرار داره. اما کاربران نمیتونن به طور مستقیم به آن دسترسی داشته باشن . اکثر کاربران با نرم افزار های دیگر در ارتباط هستن .نرم افزار هایی که از نزدیک با سیستم عامل در ارتباطن مانند : خط-فرمان شل یا command-line shell : سال ها پیش کاربران به وسیله یک برنامه ی متنی به نام شل با کامپیوتر " کرنل " تعامل میکردن .آن ها با تایپ دستور های متنی در محیط شل میتونستن نام فایل ها رو تغییر بدن , برنامه هارو اجرا کنن و کارهایی از این قبیل انجام بدن .این دستور ها هنوز برای کاربران حرفه ای لینوکس بسیار مهم هستن.شل ها بسته به نوع سیستم عامل متفاوتن .سه نوع شل اصلی به نام های ksh , sh و bash وجود دارد که محبوب ترین آنها bash است.رابط کاربری گرافیکی یا GUI : یک رابط کاربری گرافیکی , یک حالت متنی توسعه یافته است . GUI برای تعامل بر آیکون ها , منو ها و ترجیحا به جای تایپ دستور تکیه بر موس داره . ویندوز و مک رابط های کاربری اختصاصی خودشون رو دارن . لینوکس از رابط گرافیکی به نام پنجره ی ایکس استفاده میکنه . پنجره ایکس یه رابط کاربری پایه ایه . لینوکس همچنین از برنامه های دسکتاپ مثل Gnome و kde استفاده میکنه که رابط های کاربری کامل تری نسبت به پنجره ی ایکس هستن.یوتیلیتی ها یا utilities : سیستم عامل های مدرن همیشه به همراه تعدادی یوتیلیتی یا نرم افزار سودمند ارائه میشن .نرم افزار هایی مانند ماشین حساب , تقویم , ویرایشگر متن , ابزار های مدیریت دیسک و ..... این برنامه ها در سیستم عامل های مختلف متفاوتن , حتی نوع اجرای آن ها متفاوته .خوشبختانه این برنامه ها روی دسکتاپ سیستم شما به راحتی قابل دسترسیه . کتابخانه ها یا libraries : اگر شما یه برنامه نویس هستی کاملا از اهمیت کتابخانه ها آگاهی و به صورت مستقیم با آن ها سر و کار داری. پس این لیست شامل کتابخانه ها هم میشه چرا که سرویس های حیاتی و مورد نیاز برنامه ها رو ارائه میکنن. کتابخانه ها مجموعه ای از تابع ها هستن که میتونیم ازشون در برنامه های مختلف استفاده کنیم . به طور مثال در لینوکس اکثر برنامه ها به کتابخانه ای به نام libc وابسته ان یا اینکه بعضی از کتابخانه ها امکاناتی دارند که به رابط گرافیکی مرتبط است. کتابخانه های زیادی برای لینوکس وجود داره که لینوکس را از این نظر بسیار غنی میکنه.نرم افزار های تولید اطلاعات یا Productivity software : برنامه های بزرگ مانند موتور های جستجو , پردازشگر های متن , ویرایشگر های گرافیکی و .... . معمول ترین دلیل استفاده از کامپیوتر ها هستن . با اینکه این برنامه ها اغلب به طور تکنیکی از سیستم عامل جدا هستن در بعضی از موارد میتونن وابسته به یه سیستم عامل خاص باشن . حتی زمانی که یه نرم افزار روی سیستم عامل های مختلفی قابلیت اجرا داره . ممکنه به خاطر ویژگی های خاص اون سیستم عامل عملکرد متفاوتی روی هر کدوم از این سیستم عامل ها داشته باشه. علاوه بر نرم افزار هایی که روی سیستم عامل اجرا میشن . ویژگی های دیگه ای میتونه بین سیستم عامل ها متفاوت باشه مانند جزئیات حساب کاربری , نوع نام دهی فایل ها یا شروع به کار کردن سیستم. تمام این ويژگی ها توسط نرم افزاری کنترل میشه که بخشی از سیستم عامل است . گاهی به وسیله ی کرنل و گاهی به وسیله ی نرم افزار های non-kernel .امیدوارم مطلب مورد استفاده قرار گرفته باشه اگه دلت میخواد نرم افزار های تجاری که مک و ویندوز عرضه میکنن رو روی لینوکس خودت داشته باشی اینجا کلیک کن.