نکته: برای حفظ صداقت و امانت در ترجمه از بکار گیری کلمه گنو/لینوکس به جای لینوکس خودداری نموده ایم.
چکیده :
لینوکس در همه جاست. اگر به تلفن های هوشمند نگاه کنید، یا به ستون فقرات مجازی اینترنت، و یا به بزرگ ترین و قدرتمندترین supercomputer ها، لینوکس را می بینید. آنچه این پلتفرم در اختیار ما قرار می دهد تنها یک کارکرد ویژه نیست بلکه گستره ای از امکانات است که می توان از چنین پلتفرمی انتظار داشت. لینوکس و خدمات پشتیبانی آن را می توان در همه جا یافت.
مقدمه :
لینوکس در طی سال ها به تکامل رسیده. در سال 2012 بیست و یک سال داشت، سیستم عامل کاملی که طیفی از مدل های استفاده را پشتیبانی می کرد . اما دشوار است که (گنو/)لینوکس را فقط یک سیستم عامل تصور کنیم زیرا بیشتر شبیه به یک آفتاب پرست است. کرنل قابل انعطاف و ماژولار آن کارکردهای فراوانی به ارمغان آورده است (از بزرگترین ابر کامپیوترها تا کوچکترین ابزارهای تعبیه شده) به نحوی که دشوار است چنین کارکردی را چیزی جز فراهم کردن بستر فن آوری دانست. در حقیقت، لینوکس یک پلتفرم است. این یک تکنولوژی کلیدی است که امکان ایجاد محصولات جدید، که بعضی از آنها قبلا ناشناخته بوده اند را فراهم می کند.
اجازه بدهید که با یک توضیح سریع معماری اصلی آن و بعضی از مهمترین اصول کلیدیش شروع کنیم. سپس نگاهی به چگونگی اعمال این اصول به انواع مدل های استفاده و این که چرا یک پلتفرم است و فقط یک سیستم عامل نیست بیاندازیم.
لینوکس چیست؟
در ابتدا، (گنو/)لینوکس یک سیستم عامل است. همان طور که در شکل ۱ نشان داده شده است، شامل کرنل (کد هسته که منابع سخت افزاری و نرم افزاری را مدیریت می کند) و مجموعه ای از برنامه های کاربردی کاربر (مثل libraries ،window managers و application) است.
این تصویر به شما چشم انداز ساده ای از اصول کلیدی نشان می دهد. در پایین پشته لینوکس، مجموعه ای از کدهای وابسته به معماری وجود دارد که آن را بر روی طیف گسترده از پلتفرم های سخت افزاری (ARM ،PowerPC ،Tilera TILE و غیره) قابل اجرا می سازد. این مکانیزم، البته با کمک Gnu toolchain فراهم گردیده و آن را قابل حمل می کند.
لینوکس، از نظر توانایی «قابل انتقال بودن» استاندارد و کلاس خاص خودش را دارد. زیرسیستم درایور (که دارای توانایی های زیادی می باشد) قادر است بدون کاهش کارآیی سیستم، ماژول ها را به صورت پویا بارگذاری کند، به این ترتیب امکان ماژولار بودن فراهم می شود و پلتفرم پویاتر می گردد. همچنین امنیت در سطح هسته را ارائه می دهد که آن را به یکی از امن ترین پلتفرم ها تبدیل می کند. در موضوع فایل سیستم های خارجی، لینوکس قادر به پشتیبانی از گسترده ترین مجموعه فایل سیستم ها در میان هر سیستم عامل دیگری است. این پلتفرم نمونه ای از رسیدن به انعطاف پذیری از طریق طراحی ماژولار است. لینوکس نه تنها ویژگی زمان بندی استاندارد، بلکه زمان بندی بلادرنگ (real-time) را هم (با تضمین عدم تاخیر در بروز وقفه ها) ارائه می کند.
سرانجام، لینوکس باز است، بدین معنی که کدهای منبع آن را هر کسی می تواند ببیند و بهبود ببخشد. این باز بودن کد می تواند هر فرصتی برای اکسپلویت را کاهش دهد و پلتفرم ایمن تری را بوجود آورد. چندین شرکت با آن همکاری می کنند، به این ترتیب اطمینان حاصل می شود که ضمن تامین مدل های استفاده جدیدتر، خصوصیات بنیادیش هم حفظ شود.
این هفت اصل کلیدی تنها ویژگی هایی که لینوکس ارائه می کند نیستند، بلکه این ها مواردی هستند که آن را پلتفرم جهانی با دامنه ی کاربردی وسیع می سازند. علاوه بر این، در تمامی این مدل های استفاده، ساختار یکسانی دارد، نه تنها از جهت اصول طراحی بلکه حتی در کدها. چنین موضوعی در مورد بقیه سیستم عامل ها (مثل ویندوز سرور و یا نسخه رومیزی ویندوز و یا سیستم عامل تعبیه شده مک و یا اپل ای او اس) قابل بیان نیست، چرا که این ها نسخه ای متفاوت برای پشتیبانی از دیگر مدل های استفاده ارائه می کنند.
لینوکس کجاست؟
ممکن است جواب دادن به این سوال که «لینوکس کجا می تواند باشد؟» سخت تر از جواب دادن به این سوال باشه که «لینوکس کجا نیست؟». به واسطه ی توانایی تغییر چهره (morgh) و مقیاس پذیری (scale) می توان آن را در تمام بخش های کامپیوتری-محاسباتی (و حتی بخش هایی که هنوز به طور کامل تعریف نشده اند) پیدا کرد. در این قسمت به بررسی بعضی از این بخش های بزرگ کامپیوتری می پردازیم، که شامل کامپیوترهای نوت بوک و رومیزی، سرور، کلاستر (یا کامپیوترهای خوشه ای)، کامپیوترهای بزرگ (mainframe)، ابرکامپیوترها (supercomputer)، کامپیوترهای دستی (handheld)، تبلت ها، کامپیوترهای تعبیه شده، مجازی سازی و پلتفرم های آزمایشی می باشد.
کامپیوترهای رومیزی و نوت بوک :
کامپیوترهای رومیزی و نوت بوک ها، جایی است که بسیاری از مردم از لینوکس استفاده می کنند، محدوده ای که در آن با چالش های زیادی رو به روست. داده های مربوط به سهم سیستم عامل ها در بازار کامپیوترهای رومیزی نشان دهنده این است که سهم لینوکس از این بازار چیزی حدود 1.5٪ است ولی سهم آن از کامپیوترهای نوت بوک حدودا 32% است. درست است که شاید این آمار، ارقام پایینی نمایش دهند ولی اکثر برنامه نویس ها این سیستم عامل را ترجیح می دهند.
لینوکس به عنوان یک سیستم عامل آزمایشگاهی شروع به کار کرد. با ابداع XFree86 (اولین مدیر پنجره قابل اجرا بر روی آن) در سال ۱۹۹۴، نوید آمدن سیستم عاملی جدید و نوپا به بازار کامپیوترهای رومیزی به گوش می رسید. امروزه این سیستم عامل دارای چندین مدیر پنجره است (این موضوع مزیت ها و معایب خودش را دارد) که به کاربران اجازه می دهد شخصی سازی را مطابق با نیازهایشان انجام دهند. بعلاوه، لینوکس خود را با قابلیت های پردازشگر هماهنگ می کند و پردازش ها را به صورت کارآمد و با تمرکز بر کارآئی بر روی پردازشگرها تقسیم می کند.
سرور :
در بازار سرور لینوکس حکمرانی می کند. از وب سرورها و ایمیل سرورها گرفته تا کارگزاران دامنه و دیگر ادوات پشتیبانی شبکه در قلمرو آن زندگی می کنند. نتایج تحقیقات اخیر نشان می دهد که بیش از 60% سرورها بر پایه یکی از توزیع های بیشمار آن کار می کنند. به غیر از سرویس دهنده های مرسوم وب، قدرتش را در بسیاری از پدیده های بارز اینترنت (مثل: Facebook ، Ebay ، Twitter و Amazon)، و گستره ای از مدل های استفاده و نیازمندی ها می توان مشاهده کرد. فراتر از انتخاب های مرسوم (مثل وب یا ایمیل) طیف گسترده ای از سرویس های تحت وب (با کیفیت و ساز و کارهای متنوع هر سرویس) با لینوکس ارائه می شوند.
کلاستر و پردازش های توزیع شده :
نه تنها لینوکس یک جز اصلی در کلاسترها و مدل های پردازش توزیع شده است بلکه نیرو محرکه و هسته بسیاری از مدل های استفاده جدید نیز می باشد. دو مدل اصلی که امروزه رشد سریعی دارند پردازش ابری (رایانش ابری) و داده های بزرگ است.
پردازش ابری سرویسی برای انتقال تکنولوژی اطلاعات می باشد که متکی بر کلاسترها و منابع به اشتراک گذارده شده به اندازه ی نیاز می باشد. پردازش های ابری نیز به منظور توانایی مدیریت اتوماتیک گره های شبکه در یک زیرساخت حجیم متکی بر مجازی سازی می باشند. لینوکس در 66 درصد محیط های ابری پلتفرم اصلی می باشد.
لینوکس به تنهایی می تواند به عنوان پلتفرمی برای علم اطلاعات عمل نماید. اینترنت حجم اطلاعات قابل جمع آوری را بالا می برد، اکنون مشکل دیگری خودنمایی می کند؛ پردازش این حجم اطلاعات و شناسایی الگوهای ارزشمند، در یک کلام استخراج علم از این اطلاعات. آنچه در حال حاضر داده های بزرگ ( Big Data) نامیده می شود روش مقیاس پذیر برای اداره کردن داده هاست که بروی لینوکس بیش از روش های مرسوم قبلی توسعه داده شده است . هادوپ (Hadoop) و اکوسیستم ان نتایج اشکاری از لینوکس هستند.
کامپیوترهای بزرگ :
در سال1991 یک نویسنده ی مشهور پیش بینی کرد که آخرین کامپیوتر بزرگ تا اوایل سال 1996 عملا بلا استفاده خواهد شد. اکنون پس از گذشت بیش از 20 سال، کامپیوترهای بزرگ همچنان ساخته شده و به فروش می رسند، و تعداد زیادی از آن ها با این سیستم عامل عرضه می شوند. ای بی ام (IBM) در سال 2000 شروع به پشتیبانی از لینوکس بر روی کامپیوترهای بزرگ خود (از جمله سیستم محبوب ®IBM® System z) کرد و این امکان را فراهم آورد که کاربرانش تجربه ی مشابهی از کار با این کامپیوترها داشته باشند. مقاله اخیر Michael Vizard نشان می دهد که چیزی حدود 25% وظایف سنگین کامپیوترهای بزرگ جدید متکی به لینوکس می باشد.
ابرکامپیوترها :
ابرکامپیوترها برای کسب عنوان «سریع ترین کامپیوتر» دائما در نبردی تنگاتنگ هستند، این عنوان از ابرکامپیوتر موسسه اواک ریج آزمایشگاه مرکزی جگوار در سال ۲۰۰۹ به ابرکامپیوتر تانهی-۱ چین در سال ۲۰۱۰ و پس از آن به ابرکامپیوتر ریکن کی ژاپن رسیده است (سال ۲۰۱۱). به زودی ابر کامپیوتر ای بی ام سکویا منتشر خواهد شد و انتظار می رود که عملکردی بیش از عملکرد ریکن با ضریب دو داشته باشد. عاملی که در تمام این ابر کامپیوترها مشترک است دایر بودن لینوکس بر روی آنهاست چرا که نه تنها کارآمد می باشد بلکه با انواع پلتفرم های سخت افزاری سازگار است و باعث بالا رفتن کارآیی آن ها می شود.
دستگاه های قابل حمل و تبلت ها :
طیف محدودی از دستگاه های قابل حمل مثل تبلت ها رشد قابل توجه ای دارند. این دستگاه ها هسته لینوکس را همراه با رابط کاربر گرافیکی ویژه ای عرضه می کنند. یک مثال شاخص در این زمینه سیستم عامل اندروید گوگل می باشد که هم در تلفن های هوشمند و هم در تبلت ها استفاده می شود. امروزه بیش از 25% تلفن های هوشمند شکلی از لینوکس را استفاده می کنند، و تقریبا 40% تبلت ها از اندروید استفاده می کنند.
این دستگاه ها برای بازدهی بیشتر و مصرف بهینه تر انرژی متکی بر پردازشگرهای مبتنی بر ARM هستند. صرفنظر از نوع پلتفرم، این ماشین ها لینوکس هستند نه انشعابی از هسته و نرم افزارهای آن.
اخیرا مایکروسافت نسخه ای از سیستم عامل ویندوز را برای تبلت هایی با پردازنده ARM ارائه کرده، که در آن تنها برنامه های کاربردی که برای این پلتفرم نوشته شده باشند قابل اجرا هستند. به بیان دیگر شما نمی توانید برنامه های قدیمی را به اجرا در آورید. این مسئله را با لینوکس مقایسه کنید، پشتیبانی از بسیاری از برنامه های قابل حمل در برابر اکوسیستم بسته و انحصاری برنامه ها.
کامپیوتر های تعبیه شده :
در انتهای طیف دستگاه های مصرفی، دستگاه های تعبیه شده با محدودیت های متفاوتی (محدودیت توان پردازنده، محدودیت منابع مثل حافظه و غیره) وجود دارد. در بیشتر موارد لینوکس پلتفرمی ایده آل است. چرا که دارای قابلیت بهینه شدن است و در تمام پردازنده های تعبیه شده موجود در بازار می توان از آن استفاده کرد. قابلیت انعطاف پذیری آن باعث شده که پرکاربردترین پلت فرم در تلویزیون ها، ادوات سرگرمی درون ماشین ها، سیستم های راهبری، و بسیاری دستگاه های دیگر باشد.
لینوکس قابلیت شخصی سازی بالایی دارد و همچنین توجه خاصی به مصرف بهینه انرژی. برای حصول اطمینان از توجه به انرژی، دست به ابتکاری برای کم کردن توان مصرفی کرنل زدند. این پروژه بر روی پلتفرم اینتل متمرکز است اما می تواند برای پردازنده های دیگر هم مفید واقع شود.
لینوکس استانداردهایی را برای دستگاه های تعبیه شده و بررسی توانایی های آن ها ارائه می دهد (برای حمایت سریع و توسعه آن دستگاه ها). یکی از جالب ترین این دستگاه ها Raspberry Pi نامیده می شود، کامپیوتری که به اندازه ی یک کارت اعتباری بوده و بر مبنای پردازنده ARM ساخته شده است. این کامپیوتری است که لینوکس را اجرا می کند و به عنوان یک دستگاه آموزش برنامه نویسی در نظر گرفته شده است. مبلغ این دستگاه ۳۵ دلار امریکا در نظر گرفته شده است، این دستگاه هم اکنون برای خرید موجود نمی باشد.
پلتفرم های مجازی :
یکی از زیباترین قسمت هایی که لینوکس در آن خلاقانه عمل کرده است، حیطه مجازی سازی می باشد. لینوکس به عنوان خانه ای برای هر نوع از مدل های مجازی سازی موجود، چه پلتفرم چه para-virtualization، چه سیستم عامل های مجازی و یا ایده های مجازی سازی مبهمی مثل cooperative، می باشد. لینوکس به عنوان یک سیستم عامل توانائی تبدیل شدن به یکhypervisor (همانند KVM ) و همچنین پذیرش نقش میزبان چند hypervisor تحقیقاتی را دارد. برای افزایش کارائی مجازی سازی، Kernel SamePage Merging را ارائه کرده است تا به طور موثری صفحه های حافظه را از وجود مقادیر تکراری پاک کند.
همچنین لینوکس حالتی از هنرفن را در پیشرفت های جدید مجازی سازی رهبری می کند که مجازی سازی nested نامیده می شود. همان طور که از نامش پیداست، این مکانیزم به یک سرور hypervisor اجازه می دهد که یک hypervisor دیگر را میزبانی کند، که در این جا آن hypervisor خود میزبان چند ماشین مجازی دیگر باشد. با اینکه این به نظر نامتعارف است، مجازی سازی nested پردازش های ابری را متحول خواهد کرد، و تنوع نرم افزارهایی که می توانند نقش میزبان را داشته باشند بیشتر خواهد کرد. امروزه ماشین مجازی مبتنی بر هسته لینوکس (KVM) از مجازی سازی nested پشتیبانی می کند.
پلتفرم های آزمایشی :
آخرین و نه کم اهمیت ترین ویژگی، ساختار خود لینوکس است که پلتفرمی تجربی است. به این ترتیب که ایده های جدید می توانند به راحتی در آن مطرح و بررسی شوند. لینوکس، ۲۰ سال بعد از اولین انتشار یونیکس در سال ۱۹۹۱ به عنوان سیستم عاملی برای سرگرمی منتشر شد. امروز به عنوان سیستم عاملی آزمایشگاهی برای تحقیقات در زمینه های مختلف همچون، فایل سیستم ها، پردازش های ابری و خوشه ای، مباحث پیشرفته مجازی سازی است و به یمن توانایی عملکرد در مدل های استفاده ی مختلف و متفاوت محدودیت هایش را کاهش می دهد. لینوکس به عنوان یک پلتفرم قادر به سرعت بخشیدن تجربیات به واسطه استفاده از آن و طیف گسترده ای از اجزاء کدباز است. نتیجه این گستردگی ساخت فناوری های جذابی مثل HP webOS، Google Chrome OS و Android به واسطه لینوکس می باشد.
یکی از جالب ترین تغییرهای که با لینوکس میسر شد افزایش عدم وابستگی به پلتفرم های سخت افزاری است. صرف نظر از نوع معماری سخت افزاری، همان تجربه ی استفاده را برای کاربران به ارمغان می آورد. بنابراین چه سیستم یک ابر با سروری با معماری AMD x86 باشد چه یک پردازنده یARM نرم افزاری که بر روی لینوکس به اجرا در می آید مجزا از سخت افزار قابل اجراست. این عملکرد مستقل به کاربران اجازه می دهد که بر اساس نیازهایشان تصمیم بگیرند نه براساس معماری پلتفرمشان. این یعنی انتخاب.
لینوکس دارای محیط های IDE، میزبانی وب، مجموعه کامپایلر های گنو، مجموعه ای از ابزارها، همچون دیباگر ها ویرایش گرهای متن، ابزارهایی برای کنترل نسخه های سیستمی، ابزارهایی برای مدیریت فایل ها، پوسته ها و مفسرهایی برای مکانیزه کردن وظایف توسعه می باشد. لینوکس یک محیط ایده آل برای توسعه و تحقیقات نرم افزاری می باشد.
تطبیق پذیری لینوکس :
پشتیبانی از مدل های استفاده مختلفی که در اینجا مطرح شد، به سادگی بسته بندی لینوکس برای آن کاربرد است. توزیع های مختلف بازار کامپیوترهای سرور و رومیزی را هدف قرار می دهند، در حالیکه توزیع های خاص کامپیوترهای تعبیه شده را مورد هدف خود قرار داده اند. هر کسی می تواند کرنل لینوکس و مجوعه ای از بسته های نرم افزاری را برای مدل های استفاده متفاوتی بگیرد و از مزایای مختلف آن بهره ببرد. این یکی از دلایلی است که تلفن های هوشمندی که به سرعت رشد می کنند از آن استفاده می کنند.
و در نهایت :
اگر لینوکس را با یک پل مقایسه کنیم، آن پلی به سوی مهندسی جدید می باشد. مدل توزیع شده لینوکس وضعیت جدید را به چالش می کشد و نتیجه آن تولید نرم افزار هایی با بیشترین قابلیت انعطاف پذیری است. لینوکس در برگیرنده انواع مدل های استفاده، از دستگاه های کوچک تعبیه شده تا ابر رایانه های عظیم است. لینوکس در شکل صنعت و در تحقیقات نوین پردازش خوشه ای، فایل سیستم ها، کلود و مجازی سازی تغییرات مهمی را به وجود آورده و همچنین نقش رهبر و راهنما را بازی می کند. لینوکس را می توان در هر محیط پردازشی ای که بتوان تصور کرد، یافت.
نویسنده مقاله : آقای آرش صادقی زاده
چکیده :
لینوکس در همه جاست. اگر به تلفن های هوشمند نگاه کنید، یا به ستون فقرات مجازی اینترنت، و یا به بزرگ ترین و قدرتمندترین supercomputer ها، لینوکس را می بینید. آنچه این پلتفرم در اختیار ما قرار می دهد تنها یک کارکرد ویژه نیست بلکه گستره ای از امکانات است که می توان از چنین پلتفرمی انتظار داشت. لینوکس و خدمات پشتیبانی آن را می توان در همه جا یافت.
مقدمه :
لینوکس در طی سال ها به تکامل رسیده. در سال 2012 بیست و یک سال داشت، سیستم عامل کاملی که طیفی از مدل های استفاده را پشتیبانی می کرد . اما دشوار است که (گنو/)لینوکس را فقط یک سیستم عامل تصور کنیم زیرا بیشتر شبیه به یک آفتاب پرست است. کرنل قابل انعطاف و ماژولار آن کارکردهای فراوانی به ارمغان آورده است (از بزرگترین ابر کامپیوترها تا کوچکترین ابزارهای تعبیه شده) به نحوی که دشوار است چنین کارکردی را چیزی جز فراهم کردن بستر فن آوری دانست. در حقیقت، لینوکس یک پلتفرم است. این یک تکنولوژی کلیدی است که امکان ایجاد محصولات جدید، که بعضی از آنها قبلا ناشناخته بوده اند را فراهم می کند.
اجازه بدهید که با یک توضیح سریع معماری اصلی آن و بعضی از مهمترین اصول کلیدیش شروع کنیم. سپس نگاهی به چگونگی اعمال این اصول به انواع مدل های استفاده و این که چرا یک پلتفرم است و فقط یک سیستم عامل نیست بیاندازیم.
لینوکس چیست؟
در ابتدا، (گنو/)لینوکس یک سیستم عامل است. همان طور که در شکل ۱ نشان داده شده است، شامل کرنل (کد هسته که منابع سخت افزاری و نرم افزاری را مدیریت می کند) و مجموعه ای از برنامه های کاربردی کاربر (مثل libraries ،window managers و application) است.
این تصویر به شما چشم انداز ساده ای از اصول کلیدی نشان می دهد. در پایین پشته لینوکس، مجموعه ای از کدهای وابسته به معماری وجود دارد که آن را بر روی طیف گسترده از پلتفرم های سخت افزاری (ARM ،PowerPC ،Tilera TILE و غیره) قابل اجرا می سازد. این مکانیزم، البته با کمک Gnu toolchain فراهم گردیده و آن را قابل حمل می کند.
لینوکس، از نظر توانایی «قابل انتقال بودن» استاندارد و کلاس خاص خودش را دارد. زیرسیستم درایور (که دارای توانایی های زیادی می باشد) قادر است بدون کاهش کارآیی سیستم، ماژول ها را به صورت پویا بارگذاری کند، به این ترتیب امکان ماژولار بودن فراهم می شود و پلتفرم پویاتر می گردد. همچنین امنیت در سطح هسته را ارائه می دهد که آن را به یکی از امن ترین پلتفرم ها تبدیل می کند. در موضوع فایل سیستم های خارجی، لینوکس قادر به پشتیبانی از گسترده ترین مجموعه فایل سیستم ها در میان هر سیستم عامل دیگری است. این پلتفرم نمونه ای از رسیدن به انعطاف پذیری از طریق طراحی ماژولار است. لینوکس نه تنها ویژگی زمان بندی استاندارد، بلکه زمان بندی بلادرنگ (real-time) را هم (با تضمین عدم تاخیر در بروز وقفه ها) ارائه می کند.
سرانجام، لینوکس باز است، بدین معنی که کدهای منبع آن را هر کسی می تواند ببیند و بهبود ببخشد. این باز بودن کد می تواند هر فرصتی برای اکسپلویت را کاهش دهد و پلتفرم ایمن تری را بوجود آورد. چندین شرکت با آن همکاری می کنند، به این ترتیب اطمینان حاصل می شود که ضمن تامین مدل های استفاده جدیدتر، خصوصیات بنیادیش هم حفظ شود.
این هفت اصل کلیدی تنها ویژگی هایی که لینوکس ارائه می کند نیستند، بلکه این ها مواردی هستند که آن را پلتفرم جهانی با دامنه ی کاربردی وسیع می سازند. علاوه بر این، در تمامی این مدل های استفاده، ساختار یکسانی دارد، نه تنها از جهت اصول طراحی بلکه حتی در کدها. چنین موضوعی در مورد بقیه سیستم عامل ها (مثل ویندوز سرور و یا نسخه رومیزی ویندوز و یا سیستم عامل تعبیه شده مک و یا اپل ای او اس) قابل بیان نیست، چرا که این ها نسخه ای متفاوت برای پشتیبانی از دیگر مدل های استفاده ارائه می کنند.
لینوکس کجاست؟
ممکن است جواب دادن به این سوال که «لینوکس کجا می تواند باشد؟» سخت تر از جواب دادن به این سوال باشه که «لینوکس کجا نیست؟». به واسطه ی توانایی تغییر چهره (morgh) و مقیاس پذیری (scale) می توان آن را در تمام بخش های کامپیوتری-محاسباتی (و حتی بخش هایی که هنوز به طور کامل تعریف نشده اند) پیدا کرد. در این قسمت به بررسی بعضی از این بخش های بزرگ کامپیوتری می پردازیم، که شامل کامپیوترهای نوت بوک و رومیزی، سرور، کلاستر (یا کامپیوترهای خوشه ای)، کامپیوترهای بزرگ (mainframe)، ابرکامپیوترها (supercomputer)، کامپیوترهای دستی (handheld)، تبلت ها، کامپیوترهای تعبیه شده، مجازی سازی و پلتفرم های آزمایشی می باشد.
کامپیوترهای رومیزی و نوت بوک :
کامپیوترهای رومیزی و نوت بوک ها، جایی است که بسیاری از مردم از لینوکس استفاده می کنند، محدوده ای که در آن با چالش های زیادی رو به روست. داده های مربوط به سهم سیستم عامل ها در بازار کامپیوترهای رومیزی نشان دهنده این است که سهم لینوکس از این بازار چیزی حدود 1.5٪ است ولی سهم آن از کامپیوترهای نوت بوک حدودا 32% است. درست است که شاید این آمار، ارقام پایینی نمایش دهند ولی اکثر برنامه نویس ها این سیستم عامل را ترجیح می دهند.
لینوکس به عنوان یک سیستم عامل آزمایشگاهی شروع به کار کرد. با ابداع XFree86 (اولین مدیر پنجره قابل اجرا بر روی آن) در سال ۱۹۹۴، نوید آمدن سیستم عاملی جدید و نوپا به بازار کامپیوترهای رومیزی به گوش می رسید. امروزه این سیستم عامل دارای چندین مدیر پنجره است (این موضوع مزیت ها و معایب خودش را دارد) که به کاربران اجازه می دهد شخصی سازی را مطابق با نیازهایشان انجام دهند. بعلاوه، لینوکس خود را با قابلیت های پردازشگر هماهنگ می کند و پردازش ها را به صورت کارآمد و با تمرکز بر کارآئی بر روی پردازشگرها تقسیم می کند.
سرور :
در بازار سرور لینوکس حکمرانی می کند. از وب سرورها و ایمیل سرورها گرفته تا کارگزاران دامنه و دیگر ادوات پشتیبانی شبکه در قلمرو آن زندگی می کنند. نتایج تحقیقات اخیر نشان می دهد که بیش از 60% سرورها بر پایه یکی از توزیع های بیشمار آن کار می کنند. به غیر از سرویس دهنده های مرسوم وب، قدرتش را در بسیاری از پدیده های بارز اینترنت (مثل: Facebook ، Ebay ، Twitter و Amazon)، و گستره ای از مدل های استفاده و نیازمندی ها می توان مشاهده کرد. فراتر از انتخاب های مرسوم (مثل وب یا ایمیل) طیف گسترده ای از سرویس های تحت وب (با کیفیت و ساز و کارهای متنوع هر سرویس) با لینوکس ارائه می شوند.
کلاستر و پردازش های توزیع شده :
نه تنها لینوکس یک جز اصلی در کلاسترها و مدل های پردازش توزیع شده است بلکه نیرو محرکه و هسته بسیاری از مدل های استفاده جدید نیز می باشد. دو مدل اصلی که امروزه رشد سریعی دارند پردازش ابری (رایانش ابری) و داده های بزرگ است.
پردازش ابری سرویسی برای انتقال تکنولوژی اطلاعات می باشد که متکی بر کلاسترها و منابع به اشتراک گذارده شده به اندازه ی نیاز می باشد. پردازش های ابری نیز به منظور توانایی مدیریت اتوماتیک گره های شبکه در یک زیرساخت حجیم متکی بر مجازی سازی می باشند. لینوکس در 66 درصد محیط های ابری پلتفرم اصلی می باشد.
لینوکس به تنهایی می تواند به عنوان پلتفرمی برای علم اطلاعات عمل نماید. اینترنت حجم اطلاعات قابل جمع آوری را بالا می برد، اکنون مشکل دیگری خودنمایی می کند؛ پردازش این حجم اطلاعات و شناسایی الگوهای ارزشمند، در یک کلام استخراج علم از این اطلاعات. آنچه در حال حاضر داده های بزرگ ( Big Data) نامیده می شود روش مقیاس پذیر برای اداره کردن داده هاست که بروی لینوکس بیش از روش های مرسوم قبلی توسعه داده شده است . هادوپ (Hadoop) و اکوسیستم ان نتایج اشکاری از لینوکس هستند.
کامپیوترهای بزرگ :
در سال1991 یک نویسنده ی مشهور پیش بینی کرد که آخرین کامپیوتر بزرگ تا اوایل سال 1996 عملا بلا استفاده خواهد شد. اکنون پس از گذشت بیش از 20 سال، کامپیوترهای بزرگ همچنان ساخته شده و به فروش می رسند، و تعداد زیادی از آن ها با این سیستم عامل عرضه می شوند. ای بی ام (IBM) در سال 2000 شروع به پشتیبانی از لینوکس بر روی کامپیوترهای بزرگ خود (از جمله سیستم محبوب ®IBM® System z) کرد و این امکان را فراهم آورد که کاربرانش تجربه ی مشابهی از کار با این کامپیوترها داشته باشند. مقاله اخیر Michael Vizard نشان می دهد که چیزی حدود 25% وظایف سنگین کامپیوترهای بزرگ جدید متکی به لینوکس می باشد.
ابرکامپیوترها :
ابرکامپیوترها برای کسب عنوان «سریع ترین کامپیوتر» دائما در نبردی تنگاتنگ هستند، این عنوان از ابرکامپیوتر موسسه اواک ریج آزمایشگاه مرکزی جگوار در سال ۲۰۰۹ به ابرکامپیوتر تانهی-۱ چین در سال ۲۰۱۰ و پس از آن به ابرکامپیوتر ریکن کی ژاپن رسیده است (سال ۲۰۱۱). به زودی ابر کامپیوتر ای بی ام سکویا منتشر خواهد شد و انتظار می رود که عملکردی بیش از عملکرد ریکن با ضریب دو داشته باشد. عاملی که در تمام این ابر کامپیوترها مشترک است دایر بودن لینوکس بر روی آنهاست چرا که نه تنها کارآمد می باشد بلکه با انواع پلتفرم های سخت افزاری سازگار است و باعث بالا رفتن کارآیی آن ها می شود.
دستگاه های قابل حمل و تبلت ها :
طیف محدودی از دستگاه های قابل حمل مثل تبلت ها رشد قابل توجه ای دارند. این دستگاه ها هسته لینوکس را همراه با رابط کاربر گرافیکی ویژه ای عرضه می کنند. یک مثال شاخص در این زمینه سیستم عامل اندروید گوگل می باشد که هم در تلفن های هوشمند و هم در تبلت ها استفاده می شود. امروزه بیش از 25% تلفن های هوشمند شکلی از لینوکس را استفاده می کنند، و تقریبا 40% تبلت ها از اندروید استفاده می کنند.
این دستگاه ها برای بازدهی بیشتر و مصرف بهینه تر انرژی متکی بر پردازشگرهای مبتنی بر ARM هستند. صرفنظر از نوع پلتفرم، این ماشین ها لینوکس هستند نه انشعابی از هسته و نرم افزارهای آن.
اخیرا مایکروسافت نسخه ای از سیستم عامل ویندوز را برای تبلت هایی با پردازنده ARM ارائه کرده، که در آن تنها برنامه های کاربردی که برای این پلتفرم نوشته شده باشند قابل اجرا هستند. به بیان دیگر شما نمی توانید برنامه های قدیمی را به اجرا در آورید. این مسئله را با لینوکس مقایسه کنید، پشتیبانی از بسیاری از برنامه های قابل حمل در برابر اکوسیستم بسته و انحصاری برنامه ها.
کامپیوتر های تعبیه شده :
در انتهای طیف دستگاه های مصرفی، دستگاه های تعبیه شده با محدودیت های متفاوتی (محدودیت توان پردازنده، محدودیت منابع مثل حافظه و غیره) وجود دارد. در بیشتر موارد لینوکس پلتفرمی ایده آل است. چرا که دارای قابلیت بهینه شدن است و در تمام پردازنده های تعبیه شده موجود در بازار می توان از آن استفاده کرد. قابلیت انعطاف پذیری آن باعث شده که پرکاربردترین پلت فرم در تلویزیون ها، ادوات سرگرمی درون ماشین ها، سیستم های راهبری، و بسیاری دستگاه های دیگر باشد.
لینوکس قابلیت شخصی سازی بالایی دارد و همچنین توجه خاصی به مصرف بهینه انرژی. برای حصول اطمینان از توجه به انرژی، دست به ابتکاری برای کم کردن توان مصرفی کرنل زدند. این پروژه بر روی پلتفرم اینتل متمرکز است اما می تواند برای پردازنده های دیگر هم مفید واقع شود.
لینوکس استانداردهایی را برای دستگاه های تعبیه شده و بررسی توانایی های آن ها ارائه می دهد (برای حمایت سریع و توسعه آن دستگاه ها). یکی از جالب ترین این دستگاه ها Raspberry Pi نامیده می شود، کامپیوتری که به اندازه ی یک کارت اعتباری بوده و بر مبنای پردازنده ARM ساخته شده است. این کامپیوتری است که لینوکس را اجرا می کند و به عنوان یک دستگاه آموزش برنامه نویسی در نظر گرفته شده است. مبلغ این دستگاه ۳۵ دلار امریکا در نظر گرفته شده است، این دستگاه هم اکنون برای خرید موجود نمی باشد.
پلتفرم های مجازی :
یکی از زیباترین قسمت هایی که لینوکس در آن خلاقانه عمل کرده است، حیطه مجازی سازی می باشد. لینوکس به عنوان خانه ای برای هر نوع از مدل های مجازی سازی موجود، چه پلتفرم چه para-virtualization، چه سیستم عامل های مجازی و یا ایده های مجازی سازی مبهمی مثل cooperative، می باشد. لینوکس به عنوان یک سیستم عامل توانائی تبدیل شدن به یکhypervisor (همانند KVM ) و همچنین پذیرش نقش میزبان چند hypervisor تحقیقاتی را دارد. برای افزایش کارائی مجازی سازی، Kernel SamePage Merging را ارائه کرده است تا به طور موثری صفحه های حافظه را از وجود مقادیر تکراری پاک کند.
همچنین لینوکس حالتی از هنرفن را در پیشرفت های جدید مجازی سازی رهبری می کند که مجازی سازی nested نامیده می شود. همان طور که از نامش پیداست، این مکانیزم به یک سرور hypervisor اجازه می دهد که یک hypervisor دیگر را میزبانی کند، که در این جا آن hypervisor خود میزبان چند ماشین مجازی دیگر باشد. با اینکه این به نظر نامتعارف است، مجازی سازی nested پردازش های ابری را متحول خواهد کرد، و تنوع نرم افزارهایی که می توانند نقش میزبان را داشته باشند بیشتر خواهد کرد. امروزه ماشین مجازی مبتنی بر هسته لینوکس (KVM) از مجازی سازی nested پشتیبانی می کند.
پلتفرم های آزمایشی :
آخرین و نه کم اهمیت ترین ویژگی، ساختار خود لینوکس است که پلتفرمی تجربی است. به این ترتیب که ایده های جدید می توانند به راحتی در آن مطرح و بررسی شوند. لینوکس، ۲۰ سال بعد از اولین انتشار یونیکس در سال ۱۹۹۱ به عنوان سیستم عاملی برای سرگرمی منتشر شد. امروز به عنوان سیستم عاملی آزمایشگاهی برای تحقیقات در زمینه های مختلف همچون، فایل سیستم ها، پردازش های ابری و خوشه ای، مباحث پیشرفته مجازی سازی است و به یمن توانایی عملکرد در مدل های استفاده ی مختلف و متفاوت محدودیت هایش را کاهش می دهد. لینوکس به عنوان یک پلتفرم قادر به سرعت بخشیدن تجربیات به واسطه استفاده از آن و طیف گسترده ای از اجزاء کدباز است. نتیجه این گستردگی ساخت فناوری های جذابی مثل HP webOS، Google Chrome OS و Android به واسطه لینوکس می باشد.
یکی از جالب ترین تغییرهای که با لینوکس میسر شد افزایش عدم وابستگی به پلتفرم های سخت افزاری است. صرف نظر از نوع معماری سخت افزاری، همان تجربه ی استفاده را برای کاربران به ارمغان می آورد. بنابراین چه سیستم یک ابر با سروری با معماری AMD x86 باشد چه یک پردازنده یARM نرم افزاری که بر روی لینوکس به اجرا در می آید مجزا از سخت افزار قابل اجراست. این عملکرد مستقل به کاربران اجازه می دهد که بر اساس نیازهایشان تصمیم بگیرند نه براساس معماری پلتفرمشان. این یعنی انتخاب.
لینوکس دارای محیط های IDE، میزبانی وب، مجموعه کامپایلر های گنو، مجموعه ای از ابزارها، همچون دیباگر ها ویرایش گرهای متن، ابزارهایی برای کنترل نسخه های سیستمی، ابزارهایی برای مدیریت فایل ها، پوسته ها و مفسرهایی برای مکانیزه کردن وظایف توسعه می باشد. لینوکس یک محیط ایده آل برای توسعه و تحقیقات نرم افزاری می باشد.
تطبیق پذیری لینوکس :
پشتیبانی از مدل های استفاده مختلفی که در اینجا مطرح شد، به سادگی بسته بندی لینوکس برای آن کاربرد است. توزیع های مختلف بازار کامپیوترهای سرور و رومیزی را هدف قرار می دهند، در حالیکه توزیع های خاص کامپیوترهای تعبیه شده را مورد هدف خود قرار داده اند. هر کسی می تواند کرنل لینوکس و مجوعه ای از بسته های نرم افزاری را برای مدل های استفاده متفاوتی بگیرد و از مزایای مختلف آن بهره ببرد. این یکی از دلایلی است که تلفن های هوشمندی که به سرعت رشد می کنند از آن استفاده می کنند.
و در نهایت :
اگر لینوکس را با یک پل مقایسه کنیم، آن پلی به سوی مهندسی جدید می باشد. مدل توزیع شده لینوکس وضعیت جدید را به چالش می کشد و نتیجه آن تولید نرم افزار هایی با بیشترین قابلیت انعطاف پذیری است. لینوکس در برگیرنده انواع مدل های استفاده، از دستگاه های کوچک تعبیه شده تا ابر رایانه های عظیم است. لینوکس در شکل صنعت و در تحقیقات نوین پردازش خوشه ای، فایل سیستم ها، کلود و مجازی سازی تغییرات مهمی را به وجود آورده و همچنین نقش رهبر و راهنما را بازی می کند. لینوکس را می توان در هر محیط پردازشی ای که بتوان تصور کرد، یافت.
نویسنده مقاله : آقای آرش صادقی زاده