لینوکس (Linux) چیست؟
لینوکس (به انگلیسی: Linux) نام یک سیستم عامل رایانهای است که معروفترین مثال نرمافزار آزاد و توسعه به روش اُپنسورس (متنباز) شناخته میشود. اگر بخواهیم دقیق باشیم فقط باید هستهٔ لینوکس را لینوکس بنامیم اما به طور معمول این کلمه به سیستمعاملهای یونیکسمانندی (یا گنو/لینوکسی) اطلاق میشود که بر مبنای هستهٔ لینوکس و کتابخانهها و ابزارهای پروژه گنو ساخته شدهاند. به مجموعهای از نرمافزارهای بنا شده بر اجزای گفته شده توزیع لینوکس (linux distribution) میگویند که به طور معمول شامل ابزارهای توسعه نرمافزار، پایگاههای داده، سرویس دهندههای وب مثل آپاچی، محیطهای رومیزی مثل گنوم و کیدیای و مجموعههای اداری مثل اُپن آفیس هستند.
لینوکس برای استفادهٔ ریزپردازندهها با معماری 80386 اینتل طراحی شده بود اما امروزه انواع مختلف معماریها را پشتیبانی میکند و در انواع و اقسام وسایل از کامپیوترهای شخصی گرفته تا ابر رایانهها و تلفنهای همراه به کار میرود. این سیستم عامل که در ابتدا بیشتر توسط افراد مشتاق توسعه پیدا میکرد و به کار گرفته میشد توانستهاست پشتیبانی شرکتهای سرشناسی چون آی بی ام و هیولت-پاکارد را به دست آورد و با بسیاری از نسخههای خصوصی یونیکس رقابت کند. طرفداران لینوکس و بسیاری از تحلیلگران این موفقیت را ناشی از استقلال از فروشنده، کم هزینه بودن پیادهسازی، سرعت بالا, امنیت و قابلیت اطمینان آن میدانند.
تاریخچه:
در سال 1984 میلادی ریچارد استالمن که رئیس بنیاد نرمافزارهای آزاد بود پروژه گنو (GNU) را آغاز کرد. در این پروژه که یک جنبش نرمافزاری محسوب میشد برنامهنویسان با یکدیگر همکاری میکردند (این همکاری تا به حال نیز ادامه دارد).
آن زمان بیشتر ابزارهای پروژه گنو که با زبان برنامهنویسی سی و اسمبلی نوشته شده بود آماده کار بود اما تنها چیزی که کم بود وجود یک هستهٔ مناسب و آزاد بود. حتی سیستمعامل مینیکس نیز (با وجود در دسترس بودن متن کد آن) آزاد نبود و حق نشر مخصوص به خودش را داشت. کار در پروژه گنو به سمت طراحی یک هسته مناسب متمرکز میشد اما به نظر میرسید که برای ایجاد این هسته حداقل چند سال دیگر زمان احتیاج است.
این تاخیر برای لینوس تُروالدز قابل تحمل نبود. بنابراین خودش دست به کار شد و با الهام از کد مینیکس کار را آغاز کرد. سرانجام در 25 اوت سال 1991 ساعت 20و57 دقیقه شب به وقت گرینویچ پیامی تاریخی به گروه خبری comp.os.minix ارسال شد. ارسال کننده این پیام کسی نبود جز «لینوس بندیک تُروالدز». او یک دانشجوی فنلاندی بود که آن زمان در دانشگاه هلسینکی درس میخواند.
متن پیام او چنین بود:
"سلام به هر کس که آن بیرون از مینیکس استفاده میکند.
من در حال حاضر روی سیستم عاملی آزاد برای رایانههای (486)386 AT کار میکنم (فقط برای سرگرمی؛ مانند پروژهٔ گنو بزرگ و حرفهای نیست). از ماه آوریل کار را آغاز کردهام و هماکنون این سیستمعامل آمادهاست و کار میکند. دوست دارم از عقیدهٔ دیگران در مورد سیستمعاملم با خبر شوم. چه آنهایی که مینیکس را دوست دارند و چه آنهایی که دوست ندارند. چرا که سیستم من تا حدی شبیه به مینیکس است.
در حال حاضر (1٫08)bash و (1٫40) gcc را بر روی آن دارم و چیزهای دیگری که به نظر میرسد همه درست کار میکنند. این بدان معناست که طی چند ماه آینده چیز بهدردبخوری فراهم خواهم کرد، و دوست دارم بدانم مردم بیشتر چه امکاناتی لازم دارند. به هر پیشنهاد و نظری خوش آمد میگویم اما قول نمیدهم که آن را انجام دهم"
لینوکس مانند مینیکس (یک سیستم عامل ساده نوشته شده توسط پروفسور آندرو تاننبام که برای آموزش طراحی سیستم عامل به کار میرفت) طراحی شده بود. اولین نسخهٔ لینوکس در سپتامبر 1991 در اینترنت منتشر شد. دومین نسخهٔ آن به فاصلهٔ کمی در اکتبر همان سال منتشر شد. از آن پس هزاران برنامهنویس (هکر) در سراسر دنیا در این پروژه شرکت کردند. مقالهٔ «کلیسای جامع و بازار» مدل توسعه هسته لینوکس و نرم افزارهای مشابه را تشریح میکند.
پنگوئن تاکس نشانه و مایه خوش شانسی هستهٔ لینوکس است. لینوس تُروالدز مالک علامت تجاری لینوکس است که به عنوان «نرم افزار سیستم عامل رایانه برای تسهیل در استفاده و عملیات رایانه» به ثبت رسیدهاست.
مجوز:
هستهٔ لینوکس و اغلب بخشهای گنو تحت اجازهنامه عمومی همگانی گنو (جیپیاِل) منتشر میشوند. جیپیال لازم میداند که تغییرات کد منبع و کارهای مشتق شده نیز تحت مجوز جیپیال منتشر شوند.
گنو/لینوکس:
از آنجایی که ابزارهای گنو که بخش عمدهٔ توزیعهای لینوکس را تشکیل میدهند از پروژه سیستم عامل آزاد گنو (که بسیار سابقهدارتر از هستهٔ لینوکس است) ریشه گرفتهاند، ریچارد استالمن و بنیاد نرمافزار آزاد درخواست کردهاند که سیستم ترکیب شده (از هستهٔ لینوکس و ابزارهای گنو) بدون توجه به نام توزیعاش، گنو/لینوکس خوانده شود.
علیرغم این که بعضی از توزیعها، گنو/لینوکس در بیان به طور خاص، از این نام استفاده میکنند بسیاری تنها به گفتن لینوکس اکتفا میکنند. تفاوت بین هستهٔ تروالدز و سیستمی که شامل این هستهاست، همیشه باعث سردرگمی ست و نامگذاری همچنان بحثانگیز باقی ماندهاست.
توزیعهای لینوکس:
لینوکس تقریبا همیشه یکی از اجزاء یک توزیع لینوکس (Distro) است. توزیعهای لینوکس توسط افراد، گروههای نه چندان متشکل و سازمانهای حرفهای گوناگون ایجاد میشوند. این توزیعها شامل تعدادی نرم افزار سیستم و برنامههای کاربردی به همراه روالی مشخص برای نصب آنها بر رایانه هستند. توزیعها معمولا برای منظورهای مختلفی از جمله محلی سازی، پشتیبانی از یک معماری خاص، کاربردهای بلادرنگ (real-time applications) و سامانههای توکار (embedded systems) به وجود میآیند و بعضی از آنها آگاهانه تنها از نرم افزارهای آزاد استفاده میکنند.
یک توزیع همه-منظورهٔ معمولی شامل هسته لینوکس، کتابخانهها و ابزارهای گنو، پوستههای خط فرمان و انبوه بی شماری از نرم افزارهای کاربردی از مجموعههای اداری و سیستم پنجرهای اِکس گرفته تا مفسرها، ویرایشگرهای متن و ابزارهای علمی است.
گستره:
در بیش از یک میلیارد دلار: برآورد اندازه گنو/لینوکس که مقاله تحقیقی است بر روی توزیع رِدهت 7٫1، تعداد خطوط کد منبع (source lines of code – SLOC) را 30 میلیون عنوان شدهاست. در این تحقیق با استفاده از روش (Constructive Cost Model – COCOMO) برآورد شدهاست که بر روی این توزیع حدود هشت میلیون نفر-سال کار توسعه انجام گرفتهاست. چنان که این نرمافزار توسط روشهای متعارف خصوصی توسعه مییافت، هزینه توسعهاش در ایالات متحده با روشهای توسعه متعارف خصوصی بالغ بر 1/08 میلیارد دلار (با قیمت دلار سال 2000) میشد.
بخش اعظم کد (71%) توسط زبان برنامهنویسی C نوشته شدهاست اما از بسیاری از زبانهای دیگر همچون ++C، لیسپ، اسمبلی، پرل، فرترن، پایتون و زبانهای اسکریپتنویسی مختلف استفاده شدهاست. اندکی بیش از نیمی از خطوط کد تحت مجوز عمومی گنو (جی پی اِل) هستند. هسته لینوکس 2٫4 میلیون خط برنامهاست و 8٪ کل کد را تشکیل میدهد.
در پژوهشی که پس از آن انجام شد، به نام شمردن سیب زمینیها: اندازه دِبیین2٫2 همان تحلیل بر روی لینوکس دِبیین 2٫2 انجام گرفت. این توزیع دارای بیش از پنجاه و پنج میلیون خط کد بود که هزینه توسعهاش با روشهای توسعه متعارف خصوصی بالغ بر 1٫9 میلیارد دلار (با قیمت دلار سال 2000) میشد.
کاربردهای سیستم عاملهای شکل گرفته بر پایه لینوکس:
در گذشته یک کاربر لینوکس برای پیکربندی و نصب سیستم خود، نیازمند دانش بالایی از رایانه بود. این دلیل به علاوه جذاب بودن دسترسی به درون سیستم، باعث شده بود که به طور سنتی کاربران لینوکس را (بر خلاف کاربران ویندوز یا مَکاواِس) کسانی شکل بدهند که با تکنولوژی بیشتر دمخور هستند. افرادی که معمولا با القاب «هَکِر» و «گیک» شناخته میشوند. این نگرش در سالهای اخیر با افزایش راحتی کار در لینوکس و گسترده شدن استفاده از بسیاری از توزیعها، اعتبار خود را از دست دادهاست. لینوکس در بازار سرورها و کاربردهای-ویژه (مانند پردازش تصویر و سرویسهای وِب) پیشرفت قابل ملاحظهای کرده و در حال ورود به بازار بزرگ رایانههای رومیزی است.
لینوکس اساس مجموعه نرمافزار سرور موسوم به لامپ (لینوکس), آپاچی, MySQL , پرل, پیاچپی ,پایتون را تشکیل میدهد که میان توسعهدهندگان وب محبوبیت گستردهای کسب کردهاست.
از لینوکس همچنین اغلب در سیستمهای کار گذاشته استفاده میشود. قیمت اندک آن باعث میشود انتخابی ایدهآل برای ابزارهایی مانند سیمپیوتر (رایانهای که برای جمعیت کم درآمد کشورهای در حال توسعه طراحی شده) باشد.
لینوکس با داشتن محیطهای رومیزی مانند گنوم و کی دی ای، رابط کاربری همچون اپل مکینتاش و مایکروسافت ویندوز را در کنار دیگر محیطهای گرافیکی و رابط خط فرمان یونیکس-مانند سنتیاش، عرضه میکند. هرچند نرمافزارهای گرافیکی لینوکس برای بسیاری از مصارف وجود دارند، در بسیاری زمینهها نرمافزارهای خصوصی هنوز از گستره و میزان محبوبیت بیشتری برخوردارند.
نصب:
در ابتدا، مشکل بودن نصب سیستمهای بر پایه لینوکس مانعی برای پذیرش آن بود، اما در سالهای اخیر نصب لینوکس بسیار آسان شدهاست. بسیاری از توزیعها دارای نصبی آسان و قابل مقایسه با نسخههای ویندوز میباشند. علاوه بر این، رایانههای شخصی که با توزیعهای لینوکس وارد بازار شدهاند و به آسانی از بسیاری از فروشندههای اصلی، همچون هیولت- پاکارد و وال- مارت قابل تهیه میباشد.
بیشتر شیوههای عمومی نصب لینوکس، توسط همه توزیعهای مهم پشتیبانی میشود، که شامل اجرا از طریق لوح فشرده، حاوی برنامههای نصب و راهاندازی نرم افزارها میباشد. این لوح فشرده میتواند از طریق تصویر استاندارد (ISO image) بارگذاری شده باشد، به تنهایی و به قیمت بسیار پائین خریداری شود، یا میتواند در مجموعه نرم افزارهای تجاری اضافی ارائه شود.
بعضی توزیعها، همچون دبیان (Debian)، از طریق دستگاههای کوچکی مثل فلاپی دیسک، نیز قابل نصب هستند. پس از نصب ابتدایی بیشتر نرم افزارها از طریق اینترنت و لوح فشرده قابل بار گذاری و نصب میباشند.
بعضی توزیعها، همچون [ناپیکس] (Knoppix)، میتوانند به صورت بی درنگ از طریق دیسکهای زنده بسیار سریع تر از نصب بر روی دیسک سخت اجرا شوند. به این صورت که، یکبار از لوح فشرده راه اندازی میشود و میتوان از لینوکس بدون هیچگونه تغییری در محتویات دیسک سخت استفاده کرد. به همین نحو بعضی توزیعهای حداقل، همچون تامزروتبوت (Tomsrtbt)، بدون نیاز به تغییر محتویات دیسک سخت از طریق فلاپی دیسک، به صورت بی درنگ قابل اجرا میباشد.
همچنین بسیاری توزیعها از راه اندازی بر روی شبکه پشتیبانی میکنند، پس همه مراحل نصب و پیکربندی دستگاه میتواند بر روی شبکه انجام شود.
پیکربندی:
بیشتر پیکربندیها در پوشهای با نام etc/ ذخیره شدهاست، در صورتیکه کاربر- مخصوص باشد، فایلهای پنهان در پوشه خانه کاربر قرار دارد. تعدادی از برنامهها از پایگاه داده پیکربندی به عوض فایل استفاده میکنند. خوب است بدانید که فولدر یا پوشهٔ etc/ مربوط به فایلهای کانفیگ هستند که تمامی تنظیمات زمان اجرای آن سیستم عامل و وظایف آن را پیکر بندی میکند. بعضی از این تغییرات نیاز به یک سوئیچ reconfigure برای اعمال و بروز شدن پیکر بندیهای جدید دارد و نیازی به ریستارت کل سرور نمیباشد و بعضی دیگر به اندازه رستارت شدن یک سرویس که با دستور کوتاه service servicename restart نیز به سرعت و دقت امکان پذیر است.
راههای بسیاری برای ایجاد تغییرات وجود دارد. آسانترین راه، استفاده از ابزارهای آماده توزیعهایی همچون یاست (YaST) در [(رایانه)] (SuSE) یا مرکز کنترل در مندریک (Mandrake) استفاده کرد. انواع دیگر آن، مانند لینوکسکانف (Linuxconf)، ابزارهای سیستم گنوم، و وبمین (Webmin) برای توزیعهای ویژه نیستند. آنها شامل بسیاری از امکانات پیکربندی توسط خط فرمان میباشند.از آنجایی که به طور متداول اکثر تنظیمات در فایلهای متنی ذخیره شدهاند، آنها را میتوان با هر ویرایشگر متنی پیکر بندی نمود.
سرورهای لینوکس:
سرویس Server یا دایمون (Daemon) به وظیفهای از یک وب سرور اطلاق میشود که در توپولوژی یک شبکه برای وظیفهای خاص، نقشی را بر عهده میگیرد و بهتر بگوییم :«برای وظیفهای خاص ددیکیت Dedicated Server میشود. مثلا وقتی شما یک سرور HP خریداری میکنید و آن را اختصاص به وب سرور میدهید و میگوئید:"سروری برای سایتهای وب راه اندازی کردم."
لیست نمونههای سرویسها و پکیجهای مختلف با اهداف مختلف به شرح زیر است:
اسکوئید = پروکسی-کش Proxy-Cache سرور لینوکس میباشد SQUID
بایند = دی.ان.اس DNS سرور لینوکس میباشد BIND
آپاچی = وب سرور Web لینوکس میباشد APACHE
و بسیاری از سرویسهای دیگر مورد نیاز شما به عنوان «مدیر اجرایی شبکه و امنیت» که میتوانید از این پکیجها استفاده کنید. در ضمن بدانید بر پایهٔ سیستم عامل لینوکس میتوان از دیگر ابزار فایروال به نام Smoothwall Firewall نیز نام برد که براحتی نصب شده و پیکربندی میشود این سیستم عامل به صورت خودکار برای این سرویس نصب شده و نیازی به نصب پکیج مجزا ندارد و شبکهٔ شما را از لحاظ دیوارهٔ آتش به بقیهٔ محصولات بی نیاز میکند.
سرویسهای دیگری نظیر vpn ftp apache php MySql sftp vsftp mail هم وجود دارند که در لینوکس سرورها نصب میشوند.
پشتیبانی:
به طور معمول پشتیبانی فنی توسط فروشندگان تجاری و دیگر کاربران لینوکس در اجتماعات آنلاین، گروههای خبری و فهرستهای پستی ارائه میشود. گروه کاربران لینوکس (LUGs) در همه جهان به کاربران بسیاری یاری میرساند.
به طور کلی، مدل کسب و کار فروشندگان تجاری وابسته به پرداخت جهت پشتیبانی میباشد، مخصوصا برای کاربران تجاری.
توزیعهای لینوکس:
توزیعهای گنو/لینوکس بسیار زیادند. هر توزیعی برای کاربردی خاص ایجاد شده در زیر به برخی از آنها اشاره شدهاست:
* فدورا کُر
* لینوکس تجاری رِدهَت
* ناپیکس
* دبیان
* اِسلَکوِر
* جِنتو
* لینسپایر (لیندوز قدیم)
* مندریوا (ماندریک قدیم)
* توربو لینوکس
* سوزه
* کانِکتیوا
* لیبرانت
* اوبونتو
* کوبونتو
* لینوکس شریف
* پارسیکس گنو/لینوکس
* مینت
* شبدیکس
* فارلیکس
قابل ذکر است که توزیعهای لینوکس شریف، پارسیکس، شبدیکس، فارلیکس، کارآمد و سرآمد از توزیعهایی هستند که در کشور ایران و توسط برنامه نویسان ایرانی ایجاد و در حال توسعه هستند.