به منظور تسهیل فرایند آموزشی، در این سری از آموزشها باکسهایی به صورت زیر استفاده خواهند شد تا مخاطبین دوره بهتر بتوانند برخی از نکات مهم این دوره آموزشی را به خاطر بسپارند.
نکته |
نکاتی که منجر به درک بهتر موارد مطرح شده میشوند، در قالب باکسهای سبز رنگی به این شکل در اختیار دانشجویان قرار خواهند گرفت. |
هشدار |
برنامهنویسان مبتدی در برخی موارد باید دقت بیشتری به خرج دهند تا در آینده با سردرگمی کمتری مواجه شوند و به همین منظور هم هشدارهای این دوره آموزشی در قالب باکسهای قرمز رنگی به این شکل در معرض دید دانشجویان قرار خواهند گرفت. |
به خاطر داشته باشید |
برخی نکات هستند که مخاطبین این دوره آموزشی باید به خاطر بسپارند. چرا که در آموزشهای آتی به آنها نیاز خواهند داشت. کلیه این نکات در قالب باکسهای آبی رنگی به این شکل عرضه خواهند شد. |
اکثر ما جزو کاربران لینوکس هستیم خواه در جریان این موضوع باشیم خواه نباشیم؛ برای مثال در سال ۲۰۲۳ بیش از یک میلیارد گوشی اندرویدی در دنیا به فروش رفته است و در پایان این سال بیش از ۳ میلیارد نفر کاربر سیستم عامل اندروید هستند.
۵۰۰ ابرکامپیوتر برتر دنیا بر پایهی لینوکس هستند. اکثر سرورهای گوگل، توییتر، فیسبوک، آمازون و بسیاری از دیگر شرکتهای تراز اول نیز مبتنی بر لینوکس هستند.
حال این سؤال پیش میآید که چرا لینوکس اینقدر محبوب شده است؟ بر خلاف سایر سیستم عامل ها، لینوکس یک پروژهی گروهی است که توسعه دهندگان آن از گروههای نرم افزاری، شرکت ها و تیم های مختلف تشکیل یافته به طوری که لینوکس را به بزرگترین پروژه ی تاریخ کامپیوتر تبدیل کرده اند.
به طور کلی، لینوکس در حوزه های موبایل، وب، دیتاسنترها، ابرکامپیوترها و بسیاری حوزه های دیگر فرمانروایی میکند و این حضور گستردهی سیستم عامل لینوکس نوید بخش بازار کاری خوبی هم برای کسانی است که به دانش استفاده از و مهمتر از آن، توانایی توسعهی لینوکس تجهیز هستند.
سیستم عامل گنو/لینوکس چیست؟
گنو/لینوکس هم همچون سیستم عامل هایی مثل ویندوز ۱۰، ویندوز ایکس پی و غیره، یک سیستم عامل است و سیستم عامل هم به نرم افزاری گفته می شود که ارتباط مابین سخت افزار سیستم شما و نرم افزارهایی که مورد استفاده قرار می دهید را برقرار می سازد (مثلا پخش کردن موسیقی از طریق نرم افزار VLC از اسپیکرهای لپ تاپ را امکان پذیر می سازد). بدون استفاده از سیستم عامل که به صورت خلاصه OS نامیده می شود، نه از سخت افزار -سیستم- و نه از نرم افزارهای خود نمیتوانید استفاده کنید.
گنو/لینوکس یک سیستم عامل رایگان و اپن سورس است که ابتدا برای کامپیوترهای x86 طراحی شد اما به مرور زمان سایر سخت افزارها را نیز تحت پوشش خود قرار داد. لینوس توروالدز زمانی که این پروژه را شروع کرد، در سال ۱۹۹۱ در دانشگاه هلسینکی فنلاند دانشجو بود؛ در واقع او میخواست تا Kernel (کرنل یا هسته) سیستم عامل شخصی خودش را داشته باشد.
در سال ۱۹۹۲ لینوکس تحت مجوز General Public License یا GPL از مؤسسه ی Free Software Foundation یا «موسسه ی نرم افزارهای آزاد» که به صورت خلاصه FSF خوانده میشود با بهره جستن از برخی کامپوننت های پروژه ی GNU منتشر شد و همین مسأله منجر گردید تا توجه توسعه دهندگان بسیاری از سراسر دنیا را به خود جلب کند.
پس از ادغام کردن کرنل با کامپوننت های پروژه ی گنو (به همین دلیل است که نام درست تر برای سیستم عامل لینوکس، گنو/لینوکس است)، در اواسط دهه ی ۹۰ میلادی توسعه دهندگان بسیاری اقدام به ساخت سیستم عامل های متفاوتی از روی این پروژه کردند که تحت عنوان Linux Distributions یا «توزیع های لینوکس» شناخته میشوند که در آموزشهای بعدی بیشتر با این مفهوم آشنا خواهید شد.
به خاطر داشته باشید |
در سال ۱۹۸۳ ریچارد استالمن، بنیانگذار بنیاد نرمافزارهای آزاد، طرح ساخت سیستم عامل GNU را ریخت و توسعهی آن از ژانویه سال ۱۹۸۴ آغاز شد. گنو قرار بود سیستم عاملی شبه-یونیکس باشد که تمام قسمتهای آن نرمافزار آزاد باشد. GNU مخفف بازگشتی GNU Is Not Unix به معنی «گنو، یونیکس نیست» می باشد. |
در همین راستا، شرکت های مطرح حوزهی فناوری همچون IBM و Oracle در سال ۱۹۹۸ پشتیبانی از پلتفرم لینوکس را در دستور کار خود قرار دادند و توسعهی این سیستم عامل را به صورت جدی دنبال کردند. در سال ۱۹۹۹، سهام شرکت Red Hat پس از آنکه به عنوان اولین شرکت لینوکسی شناخته شد ۳ برابر شد؛ در همان سال هم شرکت IBM هم یک میلیون دلار برای بهبود و تبلیغ لینوکس سرمایهگذاری کرد.
فلسفه ی لینوکس
در ماه آگوست سال ۱۹۹۱، یک دانشجوی ۲۰ ساله در دانشگاه شهر هلسینکی فنلاند تصمیم گرفت سیستم عاملی رایگان ابداع کرده و آن را با سایر علاقمندان به این حوزه به اشتراک بگذارد. به گفته ی لینوس، "این سیستم عامل صرفاً یک سرگرمی بوده و اصلاً کار عجیب و غریبی نیست و هرگز به حرفهای بودن گنو نخواهد بود!"
ظاهراً لینوس پس از اتفاق خاصی که برایش در باغ وحش افتاده، از عکس یک پنگوئن برای نشان تجاری سیستم عامل اش استفاده کرده است. در ادامه ی راه، وی تصمیم مهمی گرفت و لایسنس GPL که توسط آقای ریچارد استالمن ابداع شده بود را برای کرنل لینوکس در نظر گرفت (جهت آشنایی بیشتر با لایسنس های نرم افزاری، به آموزش آشنایی با انواع لایسنس های نرم افزارهای متن باز مراجعه نمایید.) کرنل لینوکس با لایسنس جی پی ال و همچنین یکسری از کامپوننت های گنو، صنعت کامپیوتر را با یکسری از آزادیهایی که به ارمغان آورد منقلب کرد:
- آزادی استفاده از نرم افزاری برای هر نوع مقاصدی،
- آزادی تغییر نرمافزار برای برآورده ساختن نیازهای شخصی،
- آزادی به اشتراک گذاری نرمافزار با دوستان خود و
- آزادی به اشتراک گذاری تغییراتی که روی نرم افزارهای خود اعمال کرده اید.
هر سازمان یا پروژهای دارای یک فلسفهی وجودی است و لینوکس هم از این قاعده مستثنی نیست. لینوکس دائماً در حال توسعه و پیشرفت است و توسعه دهندگان بسیاری از سراسر دنیا با رهبری لینوس توروالدز در این مسیر گام بر می دارند. حرفهای بودن از یک سو و همچنین علاقه به مشارکت در پروژه ی لینوکس تنها عواملی هستند که یک نفر نیاز دارد تا در ارتقاء این پروژه سهیم گردد.
در واقع، لینوکس حرکتی بود تا نسخهای اپن سورس و آزاد از سیستم عامل UNIX ایجاد گردد و در همین راستا، بسیاری از ویژگیهای خود را از یونیکس به ارث برده است. لینوکس سیستم عاملی است که Multitasking (مالتی تسک یا انجام چند کار به صورت هم زمان) و Multiuser (مالتی یوزر یا پشتیبانی از چندین کاربر در آن واحد) جزو خصیصه های اصلی آن است؛ علاوه بر این، پشتیبانی از شبکه و سرویس های مختلف که اصطلاحاً تحت عنوان Daemons شناخته میشوند نیز جزو بخش لایفنک سیستم عامل لینوکس هستند.
به خاطر داشته باشید |
UNIX یک سیستم عامل مالتی تسک و مالتی یورز است که در سال ۱۹۶۹ به دست گروهی از کارمندان آزمایشگاههای بل متعلق به شرکت AT&T شروع به توسعه شد. این گروه را کن تامسون، دنیس ریچی، برایان کرنیگان، داگلاس مکیلروی مایکل لسک و جو اوسانا تشکیل میدادند. یونیکس در آغاز به زبان اسمبلی نوشته شد اما در سال ۱۹۷۳ به طور کلی به زبان سی بازنویسی شد. سیستم عامل هایی هم که ساختار آن ها از یونیکس الهام گرفته شده، اصطلاحا شبه-یونیکس نامیده می شوند که گنو/لینوکس هم یکی از آن ها است. |
به روز رسانی کرنل لینوکس
هر ۲ الی ۳ ماه یک بار، نسخهی جدید از کرنل لینوکس به دنیا عرضه می شود. توسعه دهندگان کرنل لینوکس تغییراتی که باید صورت گیرند را اصطلاحاً Patch مینامند. یک پچ حاوی خطوطی از کد است که باید تغییر یابند، اضافه شوند یا از سورس کد حذف شوند. هر پچ میتواند قابلیت جدیدی را به کرنل بیافزاید، دیوایس جدیدی را ساپورت کند، مشکلی را مرتفع سازد، بخشی را ریفکتور کند یا عملکرد کلی سیستم را بهبود بخشد. در هر ریلیس جدید، چیزی در حدود ۱۰ هزار پچ اعمال میگردد که میتوان گفت در هر ساعت، ۶ پچ در کرنل بعدی اعمال می گردد.
توسعه دهندگان مختلف، پچ هایی که توسعه دادهاند را به Mailing List هایی میفرستند که از آن طریق میتوانند از سایر توسعه دهندگان بازخورد بگیرند. زمانی که یک پچ به نوعی خوب از آب درآید، پچ مربوطه توسط یک توسعهدهنده ارشد کرنل که وظیفه دارد چندین بخش از لینوکس را مدیریت کند، مورد تأیید واقع میگردد اما این هرگز بدان معنا نیست که پچ مربوطه در سورس کد اصلی کرنل اضافه خواهد شد اما به هر حال این تاییدهی اولیه یک نقطه امید است!
زمانی که توسعهدهندهی ارشد کرنل مهر تایید بر پچی میزند، پچ مربوطه در اختیار خالق لینوکس یعنی آقای توروالدز قرار میگیرد؛ کسی که ساکن پورتلند ایالات متحده و تصمیم گیرندهی اصلی چگونگی نسخهی بعدی کرنل است.