14.705882352941178% Complete

لینوکس: داستان یک موفقیت

در تابستان سال ۱۹۹۱ لینوس توروالدز ۲۱ ساله دانشجوی علوم کامپیوتر در دانشگاه فنی هلسینکی فنلاند بود. در آن زمان او یک کامپیوتر ۳۸۶ جدید داشت که می‏خواست با نوشتن یک تقلیدگر ترمینال روی آن، هم آن را آزمایش کند و هم خودش را بh آن سرگرم کند که بدون هیچ سیستم عاملی روی سخت‏ افزار اجرا می‏ شد و به او اجازه می‏داد وارد سیستم یونیکس دانشگاه شود. این برنامه تکامل پیدا کرد و به اولین کرنل سیستم ‏عامل لینوکس تبدیل شد.

در آن زمان ۲۰ سال از عمر یونیکس می ‏گذشت، اما سیستم‏ عاملی بود که انتخاب اول دانشگاه‏ها و مکان ‏هایی بود که در آن‏ها توسعه و پژوهش انجام می ‏شد- «ایستگاه‏های کاری» علمی آن زمان تقریبا به طور انحصاری با نسخه‏ های مختلف یونیکس کار می ‏کردند. خود یونیکس (تقریبأ مانند لینوکس) به عنوان پروژه ‏ای که برای سرگرمی بود توسط کن تامپسون و دنیس ریچی در آزمایشگاه‏های بل، بازوی پژوهشی غول ارتباطات و مخابرات یعنی AT&T، شروع شد. این پروژه خیلی زود به یک سیستم کارآمد تبدیل شد و چون به طور عمده در یک زبان سطح بالا نوشته شده بود (C)، می‏توانست به طور مناسبی به پلتفرم‏ های رایانشی دیگری غیر از PDP-۱۱ منتقل شود. به علاوه، در طول دهه‏ی ۱۹۷۰ AT&T به خاطر توافق‏نامه ‏ای مجبور به خودداری از فروش نرم‏ افزار شده بود؛ بنابراین یونیکس به قیمت تمام شده و بدون پشتیبانی «بخشیده می‏شد»- و چون کوچک و ساده بود، موضوع مورد مطالعه در سمینار‏های مربوط به سیستم ‏عامل در اکثر دانشگاه‏ها شد.

در اواخر دهه ‏ی ۱۹۷۰ دانشجویان «دانشگاه کالیفرنیا در برکلی» یونیکس را به VAX، جانشین PDP-۱۱، منتقل کردند و بهبود‏های متنوعی برای آن ارائه دادند که شروع به منتشر شدن با عنوان «BSD» کرد (مخفف «Berkeley Software Distribution»). مشتقات مختلف BSD هنوز هم رواج دارند. برای توسعه ‏ی اولین نسخه‏ های لینوکس، لینوس از «Minix» بهره برد؛ یک سیستم ‏عامل شبه لینوکس که برای مقاصد آموزشی توسط اندرو اس. تننباوم از دانشگاه «VU University Amsterdam» نوشته شده بود. Minix عمداً ساده نگه داشته شده بود و آزادانه در دسترس نبود، بنابراین یک سیستم ‏عامل جدی محسوب نمی‏شد- نیاز به کمک به طور واضح احساس می ‏شد!

در ۲۵ آگوست ۱۹۹۱، لینوس پروژه ‏ی خودش را به عموم اعلام کرد و کل دنیا را برای همکاری در آن دعوت کرد. در این زمان سیستم به عنوان کرنل جایگزین برای سیستم‏ عامل Minix ایفای نقش می‏ کرد.

در این زمان سیستم هنوز یک نام مناسب نداشت. لینوس خودش به آن "Freax" می‏گفت (ترکیبی از دو کلمه ‏ی "freak" ، به معنای چیز عجیب و غریب، و "Unix")؛ او برای مدت کوتاهی به "Linux" فکر می‏کرد اما آن را به دلیل این که فکر می‏کرد خودپرستانه است کنار گذاشت. زمانی که سیستم لینوس روی سرور FTP دانشگاه بارگذاری شد، همکار لینوس آری لمک، که نام "Freax" را دوست نداشت، خودسرانه نام آن را به "Linux" عوض کرد. لینوس بعدا با این تغییر موافقت کرد. لینوکس توجه زیادی به خود جلب کرد و داوطلبان زیادی تصمیم به همکاری در این پروژه گرفتند. Linux ۰.۹۹، اولین نسخه‏ی تحت مجوز GPL (بخش ۲.۲.۳) ، در دسامبر سال ۱۹۹۲ عرضه شد و یک سیستم‏ عامل کاملا بالغ را معرفی کرد که اگر ساده هم بود، کاملا کارایی‏ یونیکس را داشت.

لینوکس ۲.۰ در اوایل سال ۱۹۹۶ عرضه شد و ویژگی‏ های جدیدی از قبیل پشتیبانی از پردازنده ‏های مرکب و توانایی بارگذاری ماژول‏ های کرنل در زمان اجرا را ارائه داد- یک نوآوری برای هموار شدن مسیرِ عرضه ‏ی توزیع ‏های «کاربرپسند» لینوکس. ویژگی جدید دیگر در Linux ۲.۰ معرفی «تاکس» پنگوئن به عنوان نماد رسمی لینوکس بود. لینوس توروالدز توسط یک پنگوئن در استرالیا مورد حمله واقع شده بود که این مساله باعث شده بود بسیار تحت تاثیر قرار بگیرد. نماد پنگوئن نشسته با پاها و منقار زرد توسط لری اونیگ کشیده ‏شد و به طور گسترده در اختیار جامعه قرار گرفت.

شکل‏۲.۱: تکامل لینوکس، که به وسیله ی سایز فایل‏های Linux-*tar.bz2 لینوکس اندازه ‎گیری می شود. هر علامت متناظر با یک نسخه از لینوکس است. در طول ۱۵ سال از لینوکس ۲.۰ تا ۳.۲ اندازه کد منبع فشرده لینوکس تقریباً ۱۶ برابر افزایش یافته است.

لینوکس ۲.۶ دستخوش سازماندهی مجدد فرایند توسعه شد. در حالی که پیش از آن شماره نسخه‏ های با یک مؤلفه دوم فرد (مثل ۲.۳) به عنوان نسخه‏ های توسعه دهندگان در نظر گرفته شده بود، و نسخه‏های با مؤلفه دوم زوج (مثل۲.۰) نسخه‏ های پایدارمناسب برای کاربران نهایی، توسعه دهندگان تصمیم گرفتند که از‎هم‎ گسیختگی نسخه‏ های توسعه دهندگان و نسخه‏ های پایدار که قبلاً در حد زیادی دیده می ‎شد را از بین ببرند. از لینوکس ۲.۶ به بعد، یک مسیر جداگانه از هسته ‎های درحال توسعه وجود ندارد اما بهبود‏ها در نسخه‏ های بعدی معرفی می ‎شوند و به طور گسترده آزمایش می‏شدند قبل از این که نسخه به طور رسمی منتشر شود.

این کار تقریباً به شرح زیر است: بعد از اینکه لینوکس ۲.۶.۳۷ منتشر شد، لینوس تغییرات پیشنهاد شده را جمع ‏آوری می‏کند و برای هسته ی لینوکس بعدی بهبود می ‏بخشد، آنها را به نسخه رسمی خود اضافه می‏ کند و با عنوان لینوکس ۲.۶.۳۸-rc۱ منتشر می ‏نماید ( به عنوان اولین کاندیدای انتشار) این نسخه توسط افراد مختلف تست می‏ شود و هر تغییر یا اصلاحی در لینوکس ۲.۶.۳۸-rc۲ جمع ‏آوری می‏ شود. در نهایت کدی که به اندازه کافی پایدار به نظر می ‎رسد به طور رسمی با عنوان لینوکس ۲.۶.۳۸ منتشر می‏ شود و این روند پس از آن با نسخه ۲.۶.۳۹ تکرار می ‏شود.

علاوه بر نسخه رسمی لینوس، نسخه‏ هایی از لینوکس وجود دارد که به وسیله توسعه ‏دهندگان دیگر مدیریت می‏شود.به عنوان مثال نسخه‏ ای با عنوان "staging tree" که در آن درایورهای جدید می ‏توانند (پس از چند دور پیشرفت) تکامل پیدا کنند تا زمانی که آن‏ها برای ارائه به لینوس به منظور اضافه کردن آن‏ها به نسخه‏ ی جدیدش به اندازه کافی خوب به نظر برسند. هنگامی که نسخه‏ های جدید هسته‏ ها‏ی لینوکس منتشر می ‏شوند، بسیاری از آن‏ها برای مدت زمان معینی اصلاحات را دریافت می‏کنند، بنابراین ممکن است نسخه‏ هایی مثل ۲.۶.۳۸.۱ و ۲.۶.۳۸.۲ وجود داشته باشند.

در جولای ۲۰۱۱ لینوس به طور مختصر نسخه‏ ی ۲.۶.۴۰ که در حال آماده سازی بود را به عنوان "Linux ۳.۰" معرفی کرد. این کار تعمّداً برای راحتی در شماره ‏گذاری بود، چون بهبود قابل توجهی انجام نشده بود.

امروزه نسخه‏ هایی که کاندید انتشار ‏اند به شکل ۳.۲-rc۱ نام‏گذاری می‏شوند و نسخه‏های بهینه سازی شده ۳.۱.۱ و ۳.۱.۲ و ... نامیده می‏شوند.

امروزه پروژه‏ ی «لینوکس» به هیچ وجه پایان نیافته است. لینوکس دائما در حال توسعه و بهبود یافتن توسط صدها برنامه نویس در سرتاسر دنیاست، که به میلیون‏ها کاربر خصوصی و تجاری رضایتمند خدمت رسانی می‏کنند. همچنین نمی‏توان گفت که این سیستم «تنها» توسط دانشجویان و مبتدیان دیگر توسعه داده می‏شود- بسیاری از کسانی که روی کرنل لینوکس کار می‏کنند جایگاه مهمی در صنعت کامپیوتر دارند و جزء مشهور‏ترین توسعه دهندگان حرفه‏ای به حساب می‏ آیند. با کمی مقایسه می‏توان ادعا کرد که لینوکس سیستم ‏عاملی است که تطبیق ‏پذیر‏ترین پشتیبانی سخت ‏افزاری را دارد؛ نه تنها با قضاوت بر اساس تنوع پلتفورم‏هایی که روی آن‏ها اجرا می‏شود (شامل گوشی ‏های هوشمند و مینفرم‏های غول ‏پیکر) ، بلکه بر اساس در دسترس بودن درایور‏های سخت‏ افزاری، برای مثال پلتفورم کامپیوتر اینتل، نیز می‏توان به این نتیجه نائل شد. لینوکس همچنین به عنوان ابزاری به منظور پژوهش و توسعه برای ایده ‏های جدید در مبحث سیستم‏ عامل در صنعت و محیط‏ های دانشگاهی به کار گرفته می ‏شود؛ بدون شک این سیستم ‏عامل یکی از مبتکرانه ترین سیستم‏ عامل‏های موجود است.

تطبیق ‏پذیر‏ی لینوکس همچنین آن را به سیستم ‏عامل منتخب برای کاربرد‏هایی از قبیل مجازی سازی و "رایانش ابری" تبدیل کرده است. مجازی سازی این امکان را فراهم می‏کند که روی یک سیستم واقعی (فیزیکی)، چندین کامپیوتر «مجازی» را شبیه ‏سازی کنیم که هر کدام از سیستم ‏عامل‏های خود استفاده می‏کنند و به زعم برنامه ‏هایی که روی آن‏ها اجرا می‏شوند کامپیوتر‏های واقعی هستند. این منجر به استفاده‏ ی کارآمد‏تر از منابع و انعطاف ‏پذیری بیشتر می ‏شود: زیر‏ساخت‏های معمول مجازی ‏سازی امکان «انتقال» سریع ماشین‏های مجازی از یک ماشین فیزیکی به دیگری را فراهم می‏ کنند، و این به شما به عنوان متصدّیِ چنین زیرساختی اجازه می‏دهد که در شرایط پر فشار و بد عمل کردن سیستم ‏ها، از خود عکس ‏العمل بسیار مناسبتری نشان دهید. بر این اساس، رایانش ابری ایده ‏ی فراهم ‏سازی قدرت رایانشی، «بنا به تقاضا»، می‏باشد به منظور اینکه شرکت‏ ها را قادر سازد تا از اداره ‏ی مراکز رایانشی بزرگی جلوگیری کنند که فقط در طی دوره ‏های کوتاه «زمان اوج تقاضا»، در بیشترین حد و توان استفاده می ‏شوند و بقیه‏ ی اوقات عمدتا فقط هزینه‏ ها را هدر می‏دهند. ارائه دهندگان رایانش ابری به مشتریان خود اجازه می‏دهند تا از ماشین ‏های مجازی از طریق اینترنت استفاده کنند و از آن‏ها بر اساس استفاده‏ ی واقعی بها مطالبه می‏ کنند؛ این مساله می‏تواند منجر به صرفه‏ جویی‏ های قابل ملاحظه ‏ای در مقایسه با اداره ‏ی یک مرکز رایانشی «واقعی» شود، مخصوصا زمانی که این واقعیت در نظر گرفته شود که در غیر اینصورت شما به عنوان یک مشتری باید نه تنها متحمل هزینه‏ های اولیه ‏ی ساختمانی بلکه پرسنل، مواد و هزینه‏ های انرژی مربوط به اداره‏ی یک مرکز رایانشی به صورت شبانه‌روزی، ‏شوید.

منبع: Linux Essentials, The LPI Introductory Programme

14.705882352941178% Complete

کامپیوترها، نرم افزارها و سیستم عامل ها کامپیوتر چیست؟ بخش‌های مختلف یک کامپیوتر نرم افزار سیستم عامل‌های مهم لینوکس و نرم افزار آزاد

لینوکس: داستان یک موفقیت

آزاد یا متن باز نرم افزارهای آزاد مهم توزیع های لینوکس مهم نصب یک توزیع معماری سیستم استخراج و پیکربندی تنظیمات سخت افزار روند بوت سیستم مدیریت Runlevelها و shutdown و reboot نصب لینوکس و مدیریت بسته ها طراحی ساختار دیسک نصب یک مدیر بوت مدیریت Share library ها مدیریت بسته‌های نرم افزاری در دبیان استفاده از RPM و YUM دستورات گنو و یونیکس کار با خط فرمان پردازش جریان‌های داده باکمک فیلتر ها مدیریت فایل‌ها - مقدماتی استفاده از stream‌ها, pipe‌ها و redirect ایجاد، رصد و حذف یک فرایند ویرایش اولویت اجرای فرایندها جستجوی فایل‌های متنی توسط regular expressionها ویرایش فایل با کمک vi تجهیزات، فایل سیستم های لینوکسی و فایل سیستم سلسله مراتبی ساخت پارتیشن و فایل سیستم نگهداری از یکپارچگی فایل سیستم کنترل mount و unmount شدن فایل سیستم سهمیه بندی فضای دیسک یا quota مدیریت مجوزهاو مالکیت‌ فایل ساخت و تغییر hard و symbolic link جستجوی فایل سیستم و محل درست فایل‌ها راهنمای استفاده از Docpad نصب و راه اندازی اولیه نحوه تهیه مستندات