تبلیغات

درباره ما

بایگانی

آمار سایت

  • افراد آنلاین 1
  • بازدید امروز 3
  • بازدید دیروز 4
  • ورودی امروز از گوگل 0
  • ورودی دیروز از گوگل 0
  • بازدید این هفته 3
  • بازدید این ماه 25
  • بازدید این سال 244
  • بازدید کل 327
  • تعداد مطالب سایت 12
  • تعداد نظرات 0

شبکه های اجتماعی


گنو/لینوکس چیست؟

گنو/لینوکس سیستم عاملی است که توسط هزاران برنامه نویس از اقصی نقاط دنیا توسعه داده می‌شود، گنو/لینوکس اغلب به دلیل هسته‌ی خود یعنی لینوکس به شهرت رسیده است. این سیستم‌عامل از سال‌ها قبل به عنوان تهدیدی برای ویندوز مایکروسافت مطرح شد و با توجه به امکانات خاصی که در اختیار کاربران قرار می‌داد، توانست در برخی از زمینه‌ها سیستم عامل ویندوز مایکروسافت را بطور کامل از گردانه رقابت خارج کند. گنو/لینوکس به دلیل سرعت، امنیت، رایگان بودن و از همه مهم‌تر متن-باز و آزاد بودن به سرعت مورد توجه کاربران مختلف قرار گرفت. برای اینکه بدانید گنو/لینوکس چیست، ابتدا باید بدانید که سیستم عامل چیست، سیستم عامل در واقع نرم افزاری است که ارتباط بین سخت افزار و کاربر را برقرار می‌کند. در واقع بسیاری از کاربران حتی ارتباط زیادی با خود سیستم عامل‌ها ندارند و بیشتر استفاده آن‌ها با نرم افزارهایی است که بر روی سیستم عامل اجرا می‌شوند. پس سیستم عامل بستری را فراهم می‌کند تا برنامه‌ها به راحتی اجرا شوند و سرویس‌ها مورد نظر خود را به کاربران ارائه کنند. لینوکس سیستم‌عاملی است که قادر است بر روی پردازنده‌های مختلف مبتنی بر معماری ARM یا x86 اجرا شود. این بدین معناست که هسته‌ی لینوکس بعنوان زیرساخت سیستم‌عامل (اندروید، گنو/لینوکس و...) می‌تواند نه تنها روی کامپیوترهای مختلف اجرا شود بلکه امکان نصب و استفاده از آن بر روی انواع مختلف ابزارهای الکترونیکی از ساعت هوشمند گرفته تا تلفن، تبلت، دستگاه‌های غول پیکر صنعتی و... وجود دارد. در حقیقت «لینوکس» کرنل یا هسته‌ای است که سیستم‌عامل‌های مختلفی نظیر گنو/لینوکس و اندروید را نیرو می‌بخشد. در هر حال برای سادگی بیشتر، معمولا در بسیاری از مجامع از گنو/لینوکس نیز با همان نام «لینوکس» یاد می‌شود.
اما لینوکس چطور شکل گرفت؟

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

ریچارد استالمن در دانشگاه MITریچارد استالمن در MIT

استالمن در سال ۱۹۷۱ وارد آزمایشگاه هوش مصنوعی MIT می‌شود. او این آزمایشگاه را اجتماع شکوفای هکرها می‌نامد، افرادی که عاشق برنامه نویسی بودند و علاقه شدیدی به کشف روش‌های جدید برای کار با کامپیوتر داشتند. آن‌ها یک سیستم عامل کامل به نام گنو را درست کرده بودند، که تمام آن در همان آزمایشگاه نوشته بود. استالمن عضو همان تیم شد تا به ارتقای سیستم عامل کمک نموده و قابلیت‌های تازه‌ای را به آن اضافه کند. آزمایشگاه MIT و آن تیم دقیقا همان جایی بود که استالمن عاشق کار کردن در آن بود. آن‌ها عنوان سیستم عامل خود را Incompatible Timesharing System یا سیستم اشتراک زمانی ناسازگار نامیدند.

اولین مشکلی که در آزمایشگاه MIT برای آن‌ها به وجود آمد فشارهای خارجی برای استفاده از کلمه رمز عبور در دانشگاه بود. در آن زمان روی هیچ کدام از کامپیوترهای گروه رمز عبور وجود نداشت. استالمن می‌گوید که همگی آن‌ها هکرهای برجسته‌ای بودند که اعتقاد داشتند، رمز عبور (منظور حساب کاربری) راهی است که مدیران برای کنترل کاربران استفاده می‌کنند. به همین دلیل آن‌ها دوست نداشتند تا وارد این بازی شوند و توسط ادمین‌ها تحت کنترل قرار گیرند. فلسفه آن‌ها این بود که اگر کسی پشت هر کامپیوتری بنشیند باید بتواند هر کاری که دلش می‌خواهد را انجام بدهد و کسی که امروز پشت کامپیوتر نشسته نباید بتواند آمار کارهایی که شخص قبلی دیروز بر روی کامپیوتر انجام داده را کنترل کند.

ریچارد استالمن

وقتی مدیران شبکه بر روی یکی از کامپیوترهای MIT رمز عبور گذاشتند، استالمن و دوستانش از این موضوع اصلا خوششان نیامد و تصمیم گرفتند تا همه چیز را هک کنند. اینجا بود که آنها توانستند رمزگذاری پایگاه داده محل ذخیره رمزهای عبور را هک کنند. سپس آن‌ها به تمام افرادی که در کامپیوترهای خود رمز عبور وارد می‌کردند چنین پیغامی را ارسال کردند: «می‌بینم که شما فلان رمز عبور را انتخاب کرده‌اید! نظرتون چیه اگر به جای وارد کردن رمز عبور فقط Enter را فشار دهید؟ این کار هم ساده‌تره و هم آسان‌تر!» در واقع استالمن و دوستانش تنها می‌خواستند تلویحا به این موضوع اشاره کنند که امنیت سیستمی که ادمین‌های MIT پیاده کردند در حد شوخی است. استالمن با این روش توانست یک پنجم کاربران آزمایشگاه را به گروه خود ملحق کند و همه آن‌ها به جای رمز عبور فقط از کلید Enter استفاده می‌کردند.

در اواخر دهه ۷۰و اوایل دهه ۸۰ میلادی با افزایش تعداد کاربران کامپیوتر و استفاده آن در مکان‌های مختلف، تولیدکنندگان نرم افزار نیز تصمیم گرفتند تا نرم افزارهای خود را بصورت بسته ارائه کنند و اجازه مشاهده کد محصولات خود را به دیگران ندهند. دیگر نمی‌شد بر روی نرم افزار تغییرات دلخواه را اعمال کرد. مایکروسافت در این زمینه از همه شرکت‌ها هم بزرگ‌تر بود و هم بیشتر دست به این کار می‌زد.

gnulaptopدر اوایل دهه‌ی ۸۰ سیستم عامل‌ها خصوصی شدند و کاربر در زمان خرید متعهد می‌شدند تا سیستم عامل خریداری شده را در اختیار دیگران قرار ندهد. استالمن این موضوع را مانع پیشرفت می‌دانست و بطور کامل با قوانین حقوق معنوی به آن شکل مخالف بود و آن‌ها را مانع پیشرفت و مشارکت در امور می‌دانست. اینجا بود که استالمن بنیاد نرم افزارهای آزاد (Free Software Foundation) را شکل داد که یکی از اهداف آن ساخت یک سیستم عامل جدید بود. تفکر اون به این شکل بود که سیستم عاملی بسازد که بصورت آزاد در اختیار دیگران قرار بگیرد و افرادی که از آن استفاده می‌کنند را تشویق کند تا آن را در اختیار اطرافیان خود قرار دهند. به این ترتیب کاربران می‌توانستند از سیستم عاملی استفاده کنند که آزاد است و توزیع آن به دیگران نیز آزادانه انجام می‌شود و در عین حال سطوح دیگری از آزادی را نیز بر این بستر فراهم می‌کرد.

پروژه در ژانویه ۱۹۸۴ کلید می‌خورد، درست همان زمانی استالمن از شغل خود در دانشگاه MIT استعفا می‌دهد و مقطع دکترا را رها می‌کند. او در همین زمان پروژه GNU (بخوانید گنو) را تعریف می‌کند. استالمن حتی نام گنو را نیز نوعی هک یا نام برگشتی می‌داند. GNU مخفف GNU's Not Unix است به معنی: گنو یونیکس نیست! در واقع حرف G در این نام گذاری، خود GNU است که به شکل نامتعارفی استفاده شده است. هدف استالمن آن بود که سیستم عاملی را درست کند که شبیه به یونیکس باشد، اما خود یونیکس نباشد! برخی بر این باورند که GNU یا بعدها گنو/لینوکس در واقع برپایه یونیکس ساخته شده‌ و هسته آن یونیکس است. اما این موضوع به هیچ وجه درست نیست و تیم GNU از صفر یک سیستم عامل را نوشته‌اند. در واقع آن‌ها اصلا به کدهای یونیکس دسترسی نداشته‌اند. آن‌ها بدنبال ساخت یک سیستم عامل شبیه به یونیکس ولی کاملا آزاد بوده‌اند. در آن زمان یونیکس یک محصول خصوصی بود و اجازه استفاده از آن به صورت اشتراکی وجود نداشت، یعنی اگر آن را می‌خریدید اجازه اشتراک گذاشتن سیستم عامل با دیگران را نداشتید.

درست زمانی که استالمن در حال ساخت سیستم عامل گنو بود، دانشمندان دانشگاه کالیفرنیا در برکلی در حال ساخت یک سیستم عامل آزاد دیگر با نام Unix Berkely یا BSD بودند. این سیستم عامل بر خلاف گنو بر پایه هسته‌ی یونیکس شرکت AT&T در حال توسعه بود. اما کمی بعد AT&T از دانشگاه برکلی شکایت کرد و آن‌ها برای ادامه کار BSD به مشکل بر خوردند. همین جا بود که گروهی از تیم توسعه دهنده BSD نسبت به ساخت سیستم عامل جدید و مستقل از یونیکس با نام Free BSD اقدام کردند که البته شبیه به یونیکس بود و حتی قادر به اجرای اپلیکیشن‌های یونیکس نیز بود. جالب اینجاست که دانشگاه برکلی در این زمان نمی‌دانست که گروه گنو نیز در حال توسعه و ساخت سیستم عامل مشابهی است. FreeBSD بصورت کاملا آزاد است و هر کسی می‌تواند از آن در نرم افزار خود استفاده کند. این سیستم توسط اپل در سیستم عامل OS X و iOS و بسیاری از کمپانی‌های دیگر مانند سیسکو، VMWare و غیره مورد استفاده قرار گرفته است، اما چرا اسم BSD کمتر به گوش می‌خورد و در عوض لینوکس را تقریبا همه می‌شناسند یا حداقل نام آن را شنیده‌اند؟ این در حالی است که سیستم‌عامل‌های اپل و شرکت‌های نام‌برده‌ شده که بر پایه‌ی BSD ساخته‌اند بسیار معروف و مشهور هستند. پاسخ در فلسفه‌ی عمیق استالمن نهفته است. (لیست کامل توزیع‌های FreeBSD)
اگر مایل هستید تا در باره‌ی ریچارد استالمن بیشتر بدانید، مصاحبه‌ی خواندنی مسعود آموزگار با استالمن را در لینوکس ریویو از دست ندهید.

یونیکس علاوه بر هسته اصلی، شامل چند برنامه مجزا بود که با یکدیگر به خوبی ارتباط داشتند. به این ترتیب تیم گنو نیز به دو دسته تقسیم شد: یک دسته بر روی هسته اصلی سیستم عامل کار کردند و گروه دیگر نیز تک تک برنامه‌های موجود در یونیکس را برای این سیستم‌عامل طراحی و از نو تولید نمودند. این کار تا سال ۱۹۹۱ طول کشید و در آن زمان تقریبا تمام برنامه‌های موجود برای یونیکس در گنو نیز ساخته شدند.

برای اینکه یک سیستم عامل به خوبی کار کند، ما نیاز به یک هسته (Kernel) اصلی داریم که ارتباط بین سخت افزار و نرم افزارها را برقرار می‌کند، سپس یک کامپایلر زبان C نیز برای اجرای کدها، نیاز است تا بستری فراهم شود که دیگران نیز نرم افزارهای جدیدی برای سیستم عامل تولید کنند و در نهایت به یک مجموعه از نرم افزارهای حیاتی مانند دیباگر، ویراشگر متن، کلاینت ایمیل و غیره نیاز است تا نیازهای کاربران را پاسخ گو باشد. تمام این برنامه‌ها توسط گروه گنو به بهترین شکل ممکن طراحی و تولید شدند.

گنو

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

ولی بخشی از گروه گنو که بر روی هسته سیستم عامل کار می‌کردند روش پیچیده‌ای را (میکروکرنل) برای تولید سیستم عامل در نظر گرفتند که در نهایت پروژه آن‌ها انقدر خوب پیشرفت نکرد و نتوانست مورد قبول توسعه دهندگان قرار گیرد. این روش توسعه که تصور می‌شد آینده‌ی سیستم‌عامل‌ها باشد چنان توسعه‌ی دشواری داشت که هنوز هم به نتیجه‌ی نهایی نرسیده است.

در همین حول و حوش شخص دیگری با نام لینوس توروالدس از هلسینکی، پایتخت فلاند، بصورت مستقل و از همه مهمتر به تنهایی در حال توسعه یک هسته سیستم عامل بود که بعدها لینوکس نامیده شد. جالب است بدانید که او کد سیستم عامل را با کامپایلر C گروه گنو و در سیستم عامل MINIX توسعه داده بود. او هسته سیستم عامل خود را ترکیبی از نام خود بعلاوه x از یونیکس انتخاب کرد و LINUX نامید. او در کتاب خود با نام Just for Fun نوشته است که ناگهان متوجه شدم که هسته یک سیستم عامل را نوشته‌ام:

درود به هر کس که آن بیرون از مینیکس استفاده می‌کند. من هم‌اکنون روی سیستم‌عاملی (رایگان) برای رایانه‌های (AT ۳۸۶(۴۸۶ کار می‌کنم (فقط برای سرگرمی؛ مانند پروژهٔ گنو بزرگ و حرفه‌ای نیست). از ماه آوریل کار را آغاز کرده‌ام و هم‌اکنون این سیستم‌عامل آماده‌است و کار می‌کند. دوست دارم از دیدگاه دیگران در مورد سیستم‌عاملم با خبر شوم. چه آنان که مینیکس را دوست دارند و چه آنان که دوست ندارند. چرا که سیستم‌عامل من تا حدی شبیه به مینیکس است.
در حال حاضر (۱٫۰۸)bash و(۱٫۴۰) gcc را بر روی آن دارم و چیزهای دیگری که به نظر می‌رسد همه درست کار می‌کنند. این بدان معناست که طی چند ماه آینده چیز به‌دردبخوری فراهم خواهم کرد و دوست دارم بدانم مردم بیشتر چه امکاناتی لازم دارند. به هر پیشنهاد و نظری خوش‌آمد می‌گویم اما قول نمی‌دهم که آن را انجام دهم!

لینوکس تورالدزلینوس توروالدس

لینوس توروالدس ابتدا سیستم عامل خود را براساس گواهی اختصاصی خود عرضه کرد که طی آن امکان استفاده از لینوکس در هیچ فعالیت تجاری داده نمی‌شد. اما توروالدس می‌دانست که سیستم عاملِ خالی، به درد کمتر کسی می‌خورد و از این رو بسته‌های نرم افزاری گروه گنو که دارای گواهی GPL بودند را به آن اضافه کرد و در قالب یک سیستم عامل عرضه کرد. او در سال ۱۹۹۲ تصمیم گرفت که خود هسته سیستم عامل را نیز براساس گواهی GPL عرضه کند. نام‌های مختلفی برای محصول نهایی ترکیبی گنو + لینوکس در نظر گرفته شده است که در ویکی‌پدیا می‌توانید شرح آن را بخوانید، اما در نهایت نام انتخابی برای این مجموعه‌ی ارزشمند «گنو/لینوکس» بود.

توروالدس همواره به عنوان یکی از نخبه‌های دنیای کامپیوتر شناخته می‌شود، چرا که او به تنهایی هسته‌‌ی سیستم عاملی را نوشته و پشتیبانی می‌کند که کمتر گروه بزرگی از برنامه نویسان قادر به تولید آن هستند. حتی برخی از کمپانی‌هایی که از میانه راه تصمیم به توسعه مستقل لینوکس گرفتند کمی بعد متوجه شدند که نمی‌توانند به خوبی توروالدس این کار را انجام دهند و تا به امروز خود لینوس است که بهترین بروز رسانی و ارتقاء هسته لینوکس را انجام داده است. اما مهم‌ترین دلیل موفقیت و محبوبیت و بقای لینوکس، گواهی GPL و فلسفه‌ای است که استالمن آن را بنا نهاد، پس بهتر است به تعریف GPL بپردازیم:

[ امتیاز : ]
برچسب ها