لینوکس چیست؟ برای افراد مختلف این سوال جوابهای گوناگونی دارد. شخصی آن را هسته سیستم عامل میداند و طرفداران GNU از آن به عنوان بخشی از GNU/Linux یاد میکنند و شاید شبیه به کاربران جدید فکر کنید لینوکس در واقع نام دیگری برای اوبونتو است! با ISG همراه باشید تا لینوکس را مفصل برای شما توضیح دهیم.
راستش را بخواهید دیدگاه بسیاری از کاربران درباره لینوکس درست است. به صورت واضحتر کلمه “Linux” زمانی که تنها به کار برده شود تنها به هسته سیستم عامل اطلاق میشود، در حالی که GNU/Linux در واقع کل سیستم عامل است که شامل هسته لینوکس و ابزار گنو میشود.
اگر شما مجموعهای از نرمافزارها را در کنار برخی از ابزارها قرار دهید که بتوان همه آنها را با یکدیگر مدیریت کرد، اکنون شما یک توزیع مانند اوبونتو دارید.
تعداد زیادی اجزاهای نرمافزاری مخصوص وجود دارند که میتوانند در کنار یکدیگر سیستم عاملی مانند لینوکس را بسازند. البته که این اجزاهای نرمافزاری مخصوص باید در کنار یکدیگر سازگاری داشته باشند تا نتیجه صحیح و کارآمد بدست آید.
سیستم عامل چیست؟ توزیع چیست؟
سیستم عامل را میتوان به عنوان نرمافزاری که میتواند امکان اجرای اپلیکیشنها بر روی سخت افزار را فعال کند تعریف کرد. سیستم عامل از چندین لایه مختلف تشکیل شده است. در مرکز این لایهها هسته قرار دارد که با درایورهای خود میتواند در ارتباط مستقیم با سخت افزار قرار گیرد و به دیگر نرمافزارها نیز اجازه استفاده از سختافزار را بدهد.
در لایههای بالایی هسته بخشی وجود دارد که مدیریت دستگاههای ورودی (مانند فلش، هارد درایو و…)، شبکهها، صدا و ویدیوها را انجام میدهد. احتمالا بسیاری از ما دوست داریم بدانیم که در آن هسته چه اتفاقهایی در حال رخ دادن است. اگر کمی به ترکیب دو کلمه «توزیع + لینوکس» توجه کنیم، مشخص است که این نام را در کنار هم به یک نسخه از سیستم عامل برپایه لینوکس با نرمافزاریهای مخصوص به خود اشاره میکند.
در ابتدا، فقط فایلها و راهی برای نصب و استفاده از آنها روی کامپیوتر نیاز بود. پس از آن توزیعهای مختلف لینوکس به مدیریت پکیجها، ابزارهای بروزرسانی و تنظیمات رابط کاربری گرافیکی مجهز شدند. در لایه زیری پوسته هر توزیع همچنان همگی از هسته لینوکس استفاده میکنند.
هسته لینوکس چیست؟
لینوکس هسته یا همان قلب سیستم شما است، اما از چه چیزهایی تشکیل شده است؟ هسته رابط نرمافزاری برای سختافزار کامپیوتر است. هسته با پردازشگر مرکزی (CPU)، حافظه و دیگر اجزای پشتی نرمافزارهای در حال اجرای کامپیوتر ارتباط برقرار میکند. در واقع هسته پایینترین مرحله از اجزای نرمافزای سیستم است که البته از اهمیت بسیار بالایی نیز برخوردار است. اهمیت کرنل به قدری بالاست که اگر مشکلی برای آن پیش آید، هر قطعه نرمافزاری در حال اجرای روی کامپیوتر نیز دچار مشکل خواهد شد.
هسته لینوکس، یک هستهی یک پارچه است که همه سرویسهای اصلی سیستم عامل را درون خود اجرا میکند. مدل جایگزین این هسته، میکروکرنل است که بسیاری از کارها را فرآیندهای خارجی انجام میدهند و هسته تنها کمی بیشتر از هماهنگیها را انجام میدهد.
در حالی که هستههای یکپارچه در روزهای ابتدایی که کاربران برای سختافزار خود هسته را کامپایل میکردند، بسیار خوب عمل میکردند اما این روزها ترکیبهای زیادی از سختافزارها وجود دارد که ساخت آنها به درون یک هسته نتیجهای جز ساخت یک فایل عظیم ندارد.
ماژول های کرنل، برتری لینوکس
کرنل لینوکس ماژولار است، به این صورت که عملکردهای اصلی در فایل کرنل هستند، در حالی که درایورهای اختصاری به صورت ماژولهای جداگانه در مسیر /lib/modules ساخته میشوند.
برای مثال، کرنل اوبونتو نسخه ۶۴ بیتی تنها ۵ مگابایت اندازه دارد، در حالی که ۳۷۰۰ ماژول دیگر هستند که میتوانند بیشتر از ۱۰۰ مگابایت حجم داشته باشند. با توجه به این که تنها بخشی از این ماژولها برای هر دستگاه مورد نیاز است، بنابراین استفاده از همه آنها در کنار کرنل اصلی اشتباه محض است.
به جای اینکه کرنل بخواهد از همه ماژولهای خود استفاده کند، با شناسایی سختافزار میتواند در استفاده یا لود کردن ماژولهای مرتبط تنها بخشهای مورد نیاز را به درون حافظه کرنل وارد کند. در این شرایط کرنل همچنان میتواند با دسترسی به هزاران فایل دیگر از طریق ماژولها یکپارچه باقی بماند. این ویژگی زمانی اهمیت زیادی پیدا میکند که سیستم میتواند وابسته به تغییرات سختافزاری عکس العمل مناسب و صحیح را نشان دهد.
برای مثال حافظه USB خود را به سیستم متصل کنید تا ماژول Usb-Storage در کنار فایل سیستم مورد نیاز برای مونت کردن آن لود شود. به همین شکل، دانگل 3G را به دستگاه وصل کنید تا درایورهای مودم لود شوند. به همین خاطر است که به ندرت نصب درایورهای جدید در زمان اضافه شدن سختافزار نیاز میشود. در واقع همه ماژولها منتظر شما هستند تا سختافزار یا لوازم جانبی دیگری را خریداری کنید تا زمینه را برای استفاده از آن فراهم کنند.
کامپیوترهایی مانند سرورها که با سختافزارهایی مخصوص و تغییر ناپذیر کار میکنند، معمولا از هستهای با تمام درایورهای مورد نیاز برخوردارند و لود کردن ماژولهای مختلف در آنها غیرفعال است. این مورد باعث میشود که مقدار کمی به امنیت دستگاه اضافه شود.
اگر میخواهید کرنل خود را کامپایل کنید، یک نکته لازم و خوب، استفاده از درایورهایی است که سختافزار دائما قرار است از آن استفاده کند. برای مثال میتوان به رابط شبکه و فایل سیستم دیسک سخت و ماژولهایی برای موارد دیگر اشاره کرد که در صورت همراه با کرنل و استفاده همیشگی میتوانند به امنیت دستگاه نیز کمک کنند.
بسیاری از ماژولها در واقع درایورهای سختافزاری هستند و به عنوان یکی از نقاط قوت لینوکس در سالهای اخیر شناخته میشود. با این ماژولهای کرنل که بسیار زیاد هم هستند، نیازی به دانلود و نصب درایورها از جاهای مختلف نخواهید داشت. البته هنوز سختافزارهایی هستند که با ماژولهای کرنل لینوکس پشتیبانی نمیشوند که دلیل آن کدهای جدید یا مجوزهای لازم است تا اینکه بتواند به عنوان بخشی از کرنل قرار گیرد. بهترین مثال برای سختافزارهایی که هنوز به عنوان ماژول کرنل کار خود را شروع نکرده میتوان به کارتهای گرافیکی انویدیا اشاره کرد. کارتهای گرافیکی که به عنوان ماژولهای طرف سوم شناخته میشوند همچنین در اوبونتو به عنوان «درایورهای محدود شده» شناخته میشوند. ماژولهای طرف سوم از طریق مدیریت پکیجها در صورتی که توزیع از آن پشتیبانی کند، قابل نصب هستند.
در غیر این صورت، فایلها باید از طریق منابع کامپایل شوند و به دلیل اینکه با کاربر ارتباط نزدیکی پیدا میکنند، باید هر بار پس از بروزرسانی کرنل دوباره کامپایل شوند. خوشبختانه ابزارهایی مانند DKMS یا «پشتیبانی پویا ماژولهای کرنل» به صورت خودکار تمام ماژولهای طرف سوم را پس از نصب کرنل جدید دوباره کامپایل میکند تا فرآیند ارتقای هسته شبیه به ارتقای یک اپلیکیشن ساده باشد.
شاید دو عبارت «فضای کرنل» و «فضای کاربر» را شنیده باشید. فضای کرنل در واقع حافظهای است که تنها کرنل به آن دسترسی دارد و هیچ برنامهای از کاربر نمیتواند در اینجا نوشته شود. به همین دلیل است که برنامههای کاربران نمیتواند عملیات کرنل را دچار مشکل کند.
فضای کاربر توسط بسیاری از برنامهها دسترسپذیر است. یکی از برتریها یا نقاط متمایز لینوکس نیز به دلیل همین پایداری و امنیتی است که توانسته کرنل را دور از دسترس برنامههای مختلف و حتی برنامههایی که میتوانند به ریشه دسترسی داشته باشند، نگه دارد.
اگر کرنل را به عنوان پایینترین مرحله از سیستم در نظر بگیریم، بالاترین مرحله آن را رابط کاربری تشکیل میدهد. هر چیز دیگری، از کرنل تا رابطهای ظاهر سختافزار و درایورها تا قبل از اینکه از کامپیوتر خود استفاده کنید، قابلیت استفاده ندارند.
رابط کاربری میتواند تعامل با تک تک اجزای مختلف سیستم را امکان پذیر کند و این کار با مدیریت پنجرهها در لینوکس انجام میشود. در گذشته مدیریت پنجرهها، سیستمهایی مستقل بودند که البته هنوز تعدادی از آنها مانند OpenBox یا Enlightenment وجود دارند، اما مدیر پنجرهها حالا به عنوان بخشی از یک محیط دسکتاپ بزرگتر شناخته میشوند. مدیر پنجره مسئول مدیریت پنجرههای روی دسکتاپ است. وظایف مدیر پنجره شامل باز کردن، بستن، محل قرارگیری و دیگر مواردی که میتوان روی پنجرهها انجام داد.
در گذر زمان رابطهای کاربری رشد کردهاند و علاوه بر مدیریت پنجره، ویژگیهای دیگری مانند نوار وظیفه یا منوی لانچر برنامهها توانستهاند محیط دسکتاپ را بسازند.
مجموعههای نرمافزاری
محیط دسکتاپ در واقع مجموعهای از ابزارهایی است که میتوانند ویژگیهای لازم برای اجرای یک دسکتاپ کامل را دربرگیرند. اجرای برنامهها، دستکاری پنجرهها، ارتباط با هر برنامه و فعال یا غیرفعال کردن آنها از جمله مواردی است که یک دسکتاپ را تشکیل میدهند. قلب تمام ابزارهایی که محیط دسکتاپ را میسازند، مدیر پنجره قلب تمام تمام ابزارهایی است که محیط دسکتاپ را میسازند. برای مثال میتوان به مدیر پنجره KWin برای KDE و Metacity برای گنوم اشاره کرد.
چیزی که میتواند محیط دسکتاپ را از مدیر پنجرهها جدا کند مرحله ادغام و هماهنگی آنها است. مدیر پنجره محیط KDE بسیار مشهور است، جایی که هر چیزی حول محور یک هسته حرکت میکند و برنامهها نه تنها میتوانند با یکدگیر ارتباط برقرار کنند، بلکه یک برنامه میتواند درون یک پنجره دیگر نیز قرار گیرد.
آیا اینترنت بدون لینوکس زنده میماند؟
برای بسیاری از مردم، اینترنت به معنای دسترسی مستقیم به اطلاعات است. اما نکتهای که باید به آن توجه داشته باشیم به لایههای درونی اینترنت باز میگردد. همانگونه که از تیتر مقاله ممکن است حدس زده باشید، سؤال ما این است، اگر لینوکس از اینترنت حذف شود آیا اینترنت باز هم میتواند به حیات خود ادامه دهد؟ جواب مثبت است، اینترنت بدون لینوکس نیز میتواند به حیات خود ادامه خواهد داد، اما دیگر اینترنت را به همان شکلی که امروزه با آن کار میکنید در اختیار نخواهید داشت.
بنیاد لینوکس به تازگی ویدیو جالبی را منتشر کرده است که در آن زندگی را بدون جستجوی وب به تصویر کشیده است. این ویدیویی با این عبارت آغاز میشود: “تصور دنیای بدون لینوکس بسیار مشکل است” و در ادامه آماده میگوید، دنیای بدون لینوکس به معنای دنیای بدون اینترنت است. اما واقعیت این است که آرپانت در سپتامبر سال 1969 میلادی اینترنت را طراحی کرد. لینوس توروالدز در دسامبر 1969 میلادی تازه به دنیا آمد. کارتون ساخته شده در حقیقت در ارتباط با جستجو در وب بوده و ارتباطی به خود اینترنت ندارد.
وب از سال 1991 میلادی کار خود را آغاز کرد و برای اولین بار روی NeXTStations اجرا شد. این ایستگاههای کاری یونیکسی اولین بار توسط استیو جابز طراحی شدند. اپل در سال 1997 میلادی شرکت نکست (NeXT) را به ارزش 429 میلیون دلار خریداری کرد. با این خرید استیو جابز که مالک شرکت نکست بود یکبار دیگر به اپل بازگشت. NexXTStationsها را میتوان جد بزرگ کامپیوترهای مک امروزی دانست. همچنین، تیم برنرز لی در سال 1989 پروپوزال خود را نوشت و در سال 1990 آنرا منتشر ساخت. پروپوزال او توسط مدیریش، مایک سندال پذیرفته شد و در نهایت برنرز لی موفق شد اولین وب سرور جهان را در مرکز تحقیقات CERN HTTPd تولید کند. لینوس توروالدز در سال 1991 میلادی اعلام کرد ما در حال کار روی سیستمعاملی هستیم که آنرا لینوکس نامگذاری کردهایم. با این توصیف کوتاه تاریخی این سؤال به ذهن ما خطور کرده است که چگونه بنیاد لینوکس تصور میکند، اینترنت بدون وجود لینوکس خاموش خواهد شد؟
البته این حرف تا حدودی میتواند درست باشد و اگر از زوایای دیگری به این ویدیو نگاه کنیم تا حدودی این حرف صحت دارد. اینترنتی که امروزه همه ما با آن آشنایی داریم، نه تنها اینترنتی نیست که در سال 1970 مورد استفاده قرار میگرفت، بلکه هیچ شباهتی به اینترنت دهه 90 میلادی که گوفر (Gopher) بر پایه BSD Unix یک راهکار جامع برای دسترسی به اطلاعات ارائه میکرد، شباهتی ندارد. اما سری به سایت الکسا بزنید و بیست و پنج سایت برتر آلکسا را مشاهده کنید، به غیر از دو مورد؛ مابقی سایتها از لینوکس استفاده میکنند. این دو استنثاء عبارتند از live.com و bing.com که هر دو این سایتها به مایکروسافت تعلق دارند. اما مابقی سایتها همچون یاهو، eBay، توییتر و… همگی از لینوکس استفاده میکنند. اگر در لینوکس دقیقتر شویم، مشاهده میکنیم که تأثیر لینوکس بر وب فراتر از آن چیزی که تصور میشود است. تحلیلی که توسط W3Cook روی دادههای آلکسا انجام گرفته است آمارهای جالبی در اختیار ما قرار میدهد. این آمارها نشان میدهند از میان یک میلیون سرور برتری که امروزه مورد استفاده قرار میگیرند 96.3 درصد آنها از لینوکس، 1.9 درصد از ویندوز و 1.8 درصد از FreeBSD استفاده میکنند.
در حالی که بسیاری از زیر ساختهای شبکه اینترنت از سیستمعامل مسیریاب سیسکو (Cisco iOS) استفاده میکنند، اما تعداد دیگری از آنها از لینوکس استفاده میکنند، Cumulus Linux، Big Switch’s Light و VyOS منبع بازی که از Vyatta منشعب شده است، همگی لینوکسی هستند. اما تمرکز اصلی کارتون منتشر شده از سوی بنیاد لینوکس روی جستجوی وب قرار دارد و همه میدانیم گوگل از لینوکس استفاده میکند و محصول آندروید و سیستمعامل کروم گوگل لینوکسی هستند. اما، موتورهای جستجوی دیگر چگونه کار میکنند؟ خوب بینگ دومین موتور جستجوی پربازدید جهانوب شناخته میشود. این موتور جستجو از ویندوز سرور 2012 استفاده میکند. یاهو سومین موتور برتر جستجو از FreeBSD استفاده میکند، اما یاهو در حال مهاجرت به لینوکس است. YLinux سیستمعامل ویژه طراحیشده یاهو بر پایه لینوکس کار میکند. موتورهای جستجوی انگلیسیزبان دیگری همچون Ask و AOL هر دو از لینوکس استفاده میکنند.
البته این روزها مردم بهجای آنکه صفحات وب را با استفاده از موتورهای جستجو پیدا کنند آنها را با استفاده از شبکههای اجتماعی کشف میکنند. در پایان سال 2014 میلادی Shareaholic گزارش داد که 8 شبکه اجتماعی برتر نزدیک به 31.24 درصد ترافیک سراچهها را به خود اختصاص داده بودند. شماره یک این فهرست همانگونه که همه میدانیم فیسبوک است. یک شبکه اجتماعی لینوکس محور. در ادامه این فهرست نامهایی همچون Pinterest، توییتر، StumbleUpon، Reddit، Goolge+، LinkedIn و یوتیوب قرار دارند. همانگونه که بازهم ممکن است حدس زده باشید بهغیراز دو مورد اول همگی از لینوکس استفاده میکنند. بهطور خلاصه اینترنتی که ما امروزه از آن استفاده میکنیم درمجموع بدون لینوکس وجود نخواهد داشت. اما سؤال این است که چرا لینوکس نسبت به دیگر سیستمعاملها این موفقیت را به دست آورده است؟ به دلیل اینکه لینوکس توانسته است چند فاکتور کلیدی را با یکدیگر ترکیب کند. فاکتورهایی همچون ثبات، استاندارد بودن، پایداری بالا و امنیت و هزینه کم از جمله خصایصی هستند که نه تنها شرکتهای تجاری بزرگ بلکه کاربران عادی نیز به آن توجه میکنند. لینوکس را باید سیستمعامل کاملی دانست که اینترنت را از سوی مهندسان در اختیار همه کاربران قرار میدهد.
درنهایت هر پستی که در فیسبوک ایجاد میکنید، هر ویدئویی که در یوتیوب مشاهده میکنید و هر جستجویی که با گوگل انجام میدهید، همگی این فرآیندها توسط لینوکس پردازش میشوند.