Gnu/Linux
گنو/لینوکس یا بطور مختصر لینوکس یک سیستم عامل است. شما هماکنون سیستم عاملی روی رایانه خود دارید و میدانید که سیستم عامل، مهمترین برنامهی رایانه است که وظیفهی مدیریت سایر برنامهها، مدیریت سختافزار و ارتباط میان نرمافزار با سختافزار را بر عهده دارد. سیستم عامل شما ممکن است مایکروسافت ویندوز، نسخهای از داس، اپل مکینتاش، یا نسخهای از یونیکس باشد (سیستم عاملهای دیگری نیز وجود دارند). گنو/لینوکس یک سیستم عامل شبیه یونیکس است که هستهی آن توسط فردی با نام “لینوس توروالدس” که در اوایل دههی نود، دانشجوی دانشگاه هلسینکی فنلاند بود نوشته شد؛ و اولین نسخهی آن در سال ۱۹۹۱ انتشار یافت. سپس نرمافزارهایی که پروژهی “گنو” تهیه و تولید کرده بود، در کنار این هسته قرار گرفت، و سیستم عامل گنو/لینوکس را تشکیل داد. از آن جایی که بسیاری از نرمافزارهای مهم درون این سیستم، از محصولات پروژهی گنو میباشد نام صحیح این سیستم عامل “گنو/لینوکس” است.
گنو/لینوکس مزیتهای بسیاری نسبت به سایر سیستم عاملها دارد. به طور خلاصه میتوان نقاط قوت گنو/لینوکس را در امنیت بسیار بالا به دلیل وجود دیوارهی آتش در هستهی سیستم عامل و همچنین وجود لایههای امنیتی مختلف در آن، تعداد انگشت شمار ویروسهای رایانهای شناخته شده برای آن، پایداری بسیار بالا به دلیل طراحی درست هسته، بدین صورت که اشکال در یک نرمافزار باعث ناپایداری کل سیستم نمیگردد، سرعت بالای سیستم عامل، به دلیل در دسترس بودن کد متن برنامه، و در نتیجه امکان کامپایل برنامه برای یک سختافزار خاص، قیمت بسیار پایین آن، از آنجایی که خود سیستم عامل و اکثر نرمافزارهای آن به رایگان در دسترس میباشند؛ خلاصه کرد. لینوکس همچنین یک هستهی کاملا چند وظیفهای میباشد، و از سالها قبل از آنکه ویندوز به وجود آمده باشد و در زمانی که داس یک سیستم عامل تک وظیفهای بود؛ این سیستم توانایی اجرای چند وظیفه به صورت همزمان را داشت. لینوکس سیستمی چند کاربری است، و این مفهوم را به حد اعلای خود رسانده، زیرا چند کاربر، میتوانند از یک سیستم به طور همزمان و بدون دخالت در وظایف یکدیگر استفاده کنند. نسخهی فعلی هستهی لینوکس که نسخهی ۴/۲ است، توانایی بهرهوری از ۸ پردازنده را به صورت همزمان دارد، و این قابلیت در نسخهی بعدی آن به ۱۶ پردازنده خواهد رسید.
مهمترین برتری گنو/لینوکس، نسبت به سیستمعاملهای انحصاری آن است که این سیستم نرمافزار آزاد است. هیچ شرکت، دولت یا گروهی صاحب گنو/لینوکس نیست. شرکتها و گروههای بسیاری اقدام به تولید مجموعه نرمافزارهای خود، که “پخش” نام دارد کردهاند. تعداد دقیق پخشهای گنو/لینوکس مشخص نیست، اما آنچه که مسلم است آن است که بیش از ۲۰۰ پخش ثبت شدهی گنو/لینوکس وجود دارد. هر شخصی، با کمی دانش فنی و کمی وقت میتواند سیستم عامل گنو/لینوکس خودش را درست کند. با این وجود اکثرا افراد ترجیح میدهند که از پخشهای از پیش ساخته شده استفاده کنند. از معروفترین پخشهای گنو/لینوکس میتوان به دبیان (Debian)، رد هت (RedHat) ، مندریک (Mandrake) ، سوزه (SuSE) و جنتو (Gentoo) اشاره کرد.
گنو/لینوکس هم همانند مایکروسافت ویندوز، و در حقیقت همانند تمام سیستمعاملهای دیگر بر روی دیسک سخت نصب میشود. در حقیقت، گنو/لینوکس تقریبا روی هر نوع سازهی رایانهای قابل نصب است. از سازهی IA32 که اکثر ما از آن استفاده میکنیم، و شامل پردازندههای Intel و AMD میشود، تا سازهی PowerPC (پردازندههای IBM و Motorola)، سازهی Sparc (پردازندههای Sun)، سازهی Alpha (پردازندههای HP)، و سازههای دیگری که ذکر آنها در اینجا ضرورتی ندارد. گنو/لینوکس همچنین میتواند به آسانی در کنار سایر سیستمعاملها از جمله مایکروسافت ویندوز، بر روی یک رایانه قرار گیرد. در این حالت شما یک رایانهی به اصطلاح Multi Boot خواهید داشت، و هنگام روشن نمودن رایانه، سیستمعامل مورد نظرتان را انتخاب کرده و وارد آن میشوید.
آغاز داستان
در سال ۱۹۹۱ در حالی که جنگ سرد رو به پایان میرفت و صلح در افقها هویدا میشد، در دنیای کامپیوتر، آینده بسیار روشنی دیده میشد. با وجود قدرت سخت افزارهای جدید، محدودیت های کامپیوترها رو به پایان میرفت. ولی هنوز چیزی کم بود…
و این چیزی نبود جز فقدانی عمیق در حیطه سیستم های عامل.
داس، امپراطوری کامپیوترهای شخصی را در دست داشت. سیستم عامل بی استخوانی که با قیمت ۵۰۰۰۰ دلار از یک هکر سیاتلی توسط بیل گیتز (Bill Gates) خریداری شده بود و با یک استراتژی تجاری هوشمند، به تمام گوشه های جهان رخنه کرده بود. کاربران PC انتخاب دیگری نداشتند. کامپیوترهای اپل مکینتاش بهتر بودند. ولی قیمتهای نجومی، آنها را از دسترس اکثر افراد خارج می ساخت.
خیمه گاه دیگر دنیای کامپیوترها، دنیای یونیکس بود. ولی یونیکس به خودی خود بسیار گرانقیمت بود. آنقدر گرانقیمت که کاربران کامپیوترهای شخصی جرات نزدیک شدن به آنرا نداشتند. کد منبع یونیکس که توسط آزمایشگاههای بل بین دانشگاهها توزیع شده بود، محتاطانه محافظت میشد تا برای عموم فاش نشود. برای حل شدن این مسئله، هیچیک از تولید کنندگان نرم افزار راه حلی ارائه ندادند.
بنظر میرسید این راه حل به صورت سیستم عامل MINIX ارائه شد. این سیستم عامل، که از ابتدا توسط اندرو اس. تاننباوم (Andrew S. Tanenbaum) پروفسور هلندی، نوشته شده بود به منظور تدری
س عملیات داخلی یک سیستم عامل واقعی بود. این سیستم عامل برای اجرا روی پردازنده های ۸۰۸۶ اینتل طراحی شده بود و بزودی بازار را اشباع کرد.
بعنوان یک سیستم عامل، MINIX خیلی خوب نبود. ولی مزیت اصلی آن، در دسترس بودن کد منبع آن بود. هرکس که کتاب سیستم عامل تاننباوم را تهیه میکرد، به ۱۲۰۰۰ خط کد نوشته شده به زبان C و اسمبلی نیز دسترسی پیدا میکرد. برای نخستین بار، یک برنامه نویس یا هکر مشتاق میتوانست کد منبع سیستم عامل را مطالعه کند. چیزی که سازندگان نرم افزارها آنرا محدود کرده بودند. یک نویسنده بسیار خوب، یعنی تاننباوم، باعث فعالیت مغزهای متفکر علوم کامپیوتری در زمینه بحث و گفتگو برای ایجاد سیستم عامل شد. دانشجویان کامپیوتر در سرتاسر دنیا با خواندن کتاب و کدهای منبع، سیستمی را که در کامپیوترشان در حال اجرا بود، درک کردند.
و یکی از آنها لینوس توروالدز (Linus Torvalds) نام داشت.
کودک جدید در افق
در سال ۱۹۹۱، لینوس بندیکت توروالدز (Linus Benedict Torvalds) دانشجوی سال دوم علوم کامپیوتر دانشگاه هلسینکی فنلاند و یک هکر خود آموخته بود. این فنلاندی ۲۱ ساله، عاشق وصله پینه کردن محدودیت هایی بود که سیستم را تحت فشار قرار میدادند. ولی مهمترین چیزی که وجود نداشت یک سیستم عامل بود که بتواند نیازهای حرفه ای ها را براورده نماید. MINIX خوب بود ولی فقط یک سیستم عامل مخصوص دانش آموزان بود و بیشتر به عنوان یک ابزار آموزشی بود تا ابزاری قدرتمند برای بکار گیری در امور جدی.
در این زمان برنامه نویسان سرتاسر دنیا توسط پروژه گنو (GNU) که توسط ریچارد استالمن (Richard Stallman) آغاز شده بود، تحریک شده بودند. هدف این پروزه ایجاد حرکتی برای فراهم نمودن نرم افزارهای رایگان و در عین حال با کیفیت بود. استالمن خط مشی خود را از آزمایشگاه معروف هوش مصنوعی دانشگاه MIT با ایجاد برنامه ویرایشگر emacs در اواسط و اواخر دهه ۷۰ آغاز نمود. تا اوایل دهه ۸۰، بیشتر برنامه نویسان نخبه آزمایشگاههای هوش مصنوعی MIT جذب شرکتهای نرم افزاری تجاری شده بودند و با آنها قرارداد های حفظ اسرار امضا شده بود. ولی استالمن دیدگاه متفاوتی داشت. وی عقیده داشت برخلاف سایر تولیدات، نرم افزار باید از محدودیت های کپی و ایجاد تغییرات در آن آزاد باشد تا بتوان روز به روز نرم افزارهای بهتر و کارآمد تری تولید نمود.
با اعلامیه معروف خود در سال ۱۹۸۳، پروژه GNU را آغاز کرد. وی حرکتی را آغاز کرد تا با فلسفه خودش به تولید و ارائه نرم افزار بپردازد. نام GNU مخفف GNU is Not Unix است. ولی برای رسیدن به رویای خود برای ایجاد یک سیستم عامل رایگان، وی ابتدا نیاز داشت تا ابزارهای لازم برای این کار را ایجاد نماید. بنابراین در سال ۱۹۸۴ وی شروع به نوشتن و ایجاد کامپایلر زبان C گنو موسوم به GCC نمود. ابزاری مبهوت کننده برای برنامه نویسان مستقل. وی با جادوگری افسانه ای خود به تنهایی ابزاری را ایجاد نمود که برتر از تمام ابزارهایی که تمام گروههای برنامه نویسان تجاری ایجاد کرده بودند قرار گرفت. GCC یکی از کارآمد ترین و قویترین کامپایلرهایی است که تا کنون ایجاد شده اند.
تا سال ۱۹۹۱ پروزه GNU تعداد زیادی ابزار ایجاد کرده بود ولی هنوز سیستم عامل رایگانی وجود نداشت. حتی MINIX هم لایسنس شده بود. کار بر روی هسته سیستم عامل گنو موسوم به HURD ادامه داشت ولی به نظر نمی رسید که تا چند سال آینده قابل استفاده باشد.
این زمان برای توروالدز بیش از حد طولانی بود…
در ۲۵ آگوست ۱۹۹۱، این نامه تاریخی به گروه خبری MINIX از طرف توروالدز ارسال شد:
از : لینوس بندیکت توروالدز
به: گروه خبری MINIX
موضوع: بیشتر چه چیزی را میخواهید در MINIX ببینید؟
خلاصه: نظرخواهی کوچک در مورد سیستم عامل جدید من
با سلام به تمام استفاده کنندگان از MINIX
من در حال تهیه یک سیستم عامل رایگان فقط به عنوان سرگرمی و نه به بزرگی و حرفه ای GNU برای دستگاههای ۳۸۶ و ۴۸۶ هستم. این کار از آوریل شروع شده و درحال آماده شدن است. من مایلم تا نظرات کاربران را در مورد چیزهایی که در MINIX دوست دارند یا ندارند، جمع آوری کنم. زیرا سیستم عامل من حدودا شبیه آن است. مانند ساختار سیستم فایل مشابه و چیزهای دیگر… من اکنون bash نسخه ۱,۰۸ و GCC نسخه ۱,۴۰ را به آن منتقل کرده ام و به نظر میرسد که کار میکند. من در عرض چند ماه چیزی آزمایشی درست کرده ام و مایلم بدانم که کاربران بیشتر به چه قابلیتهایی نیاز دارند؟ من از هر پیشنهادی استقبال میکنم. ولی قول نمی دهم همه آنها را اجرا کنم. لینوس
همانطور که در این نامه پیداست، خود توروالدز هم باور نمی کرد که مخلوقش آنقدر بزرگ شود که چنین تحولی در دنیا ایجاد کند. لینوکس نسخه ۰,۰۱ در اواسط سپتامبر ۱۹۹۱ منتشر شد و روی اینترنت قرار گرفت. شور و اشتیاقی فراوان حول مخلوق توروالدز شکل گرفت. کدها دانلود شده، آزمایش شدند و پس از بهینه سازی به توروالدز بازگردانده شدند. لینوکس نسخه ۰,۰۲ در پنجم اکتبر به همراه اعلامیه معروف توروالدز آماده شد:
از : لینوس بندیکت توروالدز
به: گروه خبری MINIX
موضوع: کدهای منبع رایگان هسته مشابه MINIX
آیا شما از روزهای زیبای MINIX 1.1 محروم شده اید؟ هنگامی که مردها مرد بودند و راه اندازهای دستگاه خود را خودشان مینوشتند؟ آیا شما فاقد یک پروزه زیبا هستید و می میرید تا سیستم عاملی داشته باشید تا بتوانید آنرا مطابق با نیازهای خود در آورید؟ اگر اینگونه است، این نامه برای شما نوشته شده است.
همانطور که ماه پیش گفتم من در حال کار بر بروی یک سیستم عامل رایگان مشابه MINIX