PDA

View Full Version : سورس باز - Open Source



Best Programmer
دوشنبه 07 خرداد 1386, 02:15 صبح
-= اپن سورس =-

البته اولین بار شرکت نت اسکیپ باعث نیاز برای بوجود آوردن چنین اصطلاحی شد.
این شرکت اعلام کرد که نسخه جدید مرورگر خودش رو (بنام Navigator) بصورت سورس کد بزودی در دسترس عموم قرار میده و اون رو با نام Mozilla مشخص کرد.
در واکنش به این اقدام بی سابقه نت اسکیپ، در سال ۱۹۹۸ نشست فنی با حضور صاحبنظران تشکیل شد و اصطلاح اپن سورس برای تفکیک این سیستم از چیزی بنام نرم افزارهای مجانی که خیلی قبل از اون هم وجود داشت بوجود آمد. بله در حقیقت اپن سورس و نرم افزار مجانی باهم تفاوت دارن. یک نرم افزار میتونه هر دوی اینها باشه یا فقط یکی از اینها. ولی ارتباط نزدیک و پیوندهای عمیقی بین این مفاهیم هست و بنظر میرسه که عملا آمارشون با هم همیشه در ارتباط بوده و هست.
وقتی اپن سورس بود نرم افزار مجانی هم فراوان خواهد بود.

اپن سورس میتونه مجانی نباشه؛ بنابراین مکانیزمهایی رو برای تامین تجارت هم میشه درش گنجاند! ظاهرا یک هدف از تفکیک واضح این اصطلاح همین بوده که کسانی که نرم افزارهای مجانی رو ضد تجارت میدونستن متوجه امکان وجود تفاوت بین این دو مسئله بشن.
فکر میکنم بهرحال طرفداران انحصار و تجارت پیشگان منفعت طلب و خودخواه (نه هرکسی که تاجره!!) تحمل چنین فلسفه و منشهای بازی رو نداشته باشن. درباره این مطالب بحثهای زیادی مطرح شده.
اینگونه بحثها هیچوقت پایان نیافته و هر دسته استدلال خودشون رو دارن و ایراداتی رو به طرف مقابل وارد میکنن و مزایایی رو برای سیستم خودشون قایلند که ظاهرا هرچقدر هم با هم بحث کنن هیچکدوم قانع نمیشن!

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

توسعه دهندگان نرم افزار عبارت Free Open-Source Software را برای توصیف بدون ابهام نرم افزار اپن سورسی که آزاد هم هست بکار میبرن
با بررسی دقیق و کارشناسانه روی فلسفه اپن سورس و نرم افزار مجانی دیده میشه که منشاء نرم افزار آزاد بیشتر برگرفته از سیاست و فلسفه های مجرد میتونه باشه، درحالیکه اپن سورس فلسفه ای کاربست پذیرتر و مشتمل بر دیدهای عملگرایانه و حساب شده ای هست که چشم به برتریهای تکنیکی و تکامل جمعی داره.
اپن سورس و نرم افزار آزاد از درون جامعه هکرها منشاء گرفته اند. هکر اینجا فکر میکنم به اون معنایی که امروز ما در وهله اول برداشت میکنیم نیست. اگر کمی فکر کنید متوجه میشید! هکرها در تعریف تاریخی و دقیق خودش چیزی کاملا متفاوت از تصور افراد کم اطلاع و دارای اطلاعات سطحی هستن.
یادمه قبلا مطالب زیادی درباره تعریف هکرهای اصیل اینور و اونور خوندم!
یکجا گفته بود کسی که به دانش رایانه علاقه و سیستمهای اطلاعاتی و پردازشی مشابه علاقه شخصی داره و از پی بردن به ارتباطات و اجزای اونها و نفوذ به درونشون لذت میبره.
مشخصه که چنین شخصی از وسیله ساخته شده مورد نظر خیلی زیاد استفاده میکنه برای پی بردن به ساختارش و در سطح بالا درک عمیق از اجزا و طرز کار و ارتباطات مختلفه سیستمها تا کاربردی که اون وسیله برای کاربران عادی داره و براشون ساخته شده.
در سطوح بالا اینها معمولا تبدیل به دانشمندانی خودساخته، مستقل (از سیستمهای رسمی!) و در همکاری غیررسمی و دوستانه در گروههای افرادی مثل خودشون میشن.
بطور مشخص پیدایش اینترنت ارتباطات بین چنین افراد علاقمندی رو براحتی و سرعت و قدرت ممکن کرد و تمدن یا جامعه هکرها شکل گرفت و روز به روز قویتر شد.
در این میان همه نوع افراد با توانایی ها و تخصصهای مختلف وجود دارن و عبارت خودساخته ای که بکار بردم معنیش این نیست که هکرها از راه تحصیلات عالیه و روندهای رسمی اجتماع عبور نکردن و در اینگونه فعالیتها هیچ مشارکتی ندارن. شاید هکر بودن یک خو و سیرت باشه. بازم میرسیم به فلسفه و جهانبینی و روح به اسارت در نیامدنی یک هکر که حاضر نیست به قراردادهایی که برای سود و منفعت صرف و با پایه سیاستهای اقتصادی شکل میگیرن و تمرکز قدرت علمی و دانش و اطلاعات خام رو تابع برتری جویی اقتصادی و سیاست میخوان، تن دربدن. خب صحبت در اینباره رو بیشتر ادامه نمیدم چون بیش از این ارتباط مستقیم با موضوع بحث نداره و بعنوان ذکر تاریخچه و خواستگاه حرکتهای اولیه که امروز بسیار منظم و منسجم و اصولی و علمی شدن و قسمت موثری از تمدن جهانی رو شکل میدن، مطرح شد.

-= GNU =-

نکته: GNU را در نوشتار گنو مینویسم!
گنو پروژه ای هست که پایه اون در سال ۱۹۸۳ توسط آقای Richard Stallman پیشنهاد شد.
هدف آقای استالمن از ایجاد چنین حرکتی بوجود آوردن یک سیستم عامل بهمراه تمام ابزارهای لازمش بود و چیزی که برمیاد اینه که میخواست یک مجموعه کامل آزاد و غیروابسته به پروانه های نرم افزاری محدود کننده رو تولید تولید کنه (منظور از واژه هکر رو در پست قبلی توضیح دادم!) و جلوی انحصاری شدن چیزهایی رو که نباید انحصاری باشن و تحمیل محدودیتهایی رو که غیراخلاقی و ضد اجتماعی میدونست بگیره. هکرها تا اون موقع از سیستم عامل یونیکس استفاده میکردن. این افراد تا اون موقع اقدام به فعالیتهای پراکنده و بدون سازماندهی کرده بودن. خیلیهاشون برنامه نویسهای سیستمی قوی بودن و خیلیها تخصصهای مختلف دیگه رو داشتن.

(دوستان این مطالب رو قبلا جاهایی خوندم و چیزهایی یادم مونده. ولی مطمئن نیستم که در جزییات اشتباهی نکنم و صرفا برای برداشت کلی میگم تا قضیه براتون خوب جا بیفته. اگر علاقمند به داشتن اطلاعات کاملتر و مفصلتر و دقیقتری هستید حتما به منابع معتبر مراجعه کنید. اگر هم اشتباهی داشتم لطفا گوشزد کنید.)

ریچارد استالمن اولین کسی بود که خواستار عزم هکرها برای حرکت در جهت استقلال و نوآوریهای اساسی مختص به خودشون شد.
پروژه گنو توسط استالمن در ۲۷ سپتامبر ۱۹۸۳ در دو گروه خبری net.unix-wizards و net.usoft اعلام شد.
استالمن در اون زمان در MIT (انستیتو تکنولوژی ماساچوست) شغلی داشت و بعدا با شروع کار جدی رو پروژه گنو شغلش رو در MIT رها کرد.
پروژه بطور جدی از ۵ ژانویه ۱۹۸۴ فعال شد.
در سال ۱۹۸۵ هم استالمن مقاله ای رو بنام GNU Manifesto (بیانیه گنو) در ژورنال معتبری که مربوط به ابزارهای نرم افزاری بود منتشر کرد که اهداف پروژه گنو رو بخوبی تعریف و تفسیر کرد.
این مقاله مهم توسط بسیاری در جنبش نرم افزار آزاد بعنوان یک منبع فلسفی بنیادین تلقی میشه.
متن کامل این بیانیه رو میتونید همراه نرم افزارهای گنو مثل Emacs (یک نرم افزار ادیتور متن) پیدا کنید، و همچنین در وب. آخرین تاریخی که این سند بروز شده سال ۱۹۹۳ هست.
مونطور که اشاره شد پروژه گنو زمانی پیشنهاد شد که سیستم عامل یونیکس متداول و در سطح وسیع مورد استفاده بخش بزرگی از کاربران بود.
این سیستم عامل در طول زمان و تحت استفاده کاربران زیاد کارایی و قدرت و ثبات و امنیت خودش رو ثابت کرده بود و بهمین خاطر پروژه گنو که قدمهای اول خودش رو میخواست با طراحی مجموعه نرم افزارهای گنو و اجزای جانبی سیستم عامل شروع کنه سازگاری با یونیکس رو پیشفرض خودش قرار داد و معماری و استانداردهای کلی و خصیصه های یونیکس، یک سیستم عامل منعطف تمام عیار (یونیکس رو با داس مقایسه کنید که حتی ویژگی مالتی تسکینگ رو هم نداشت و بهمین خاطر اونرو بعنوان یک محیط عامل میشناسن تا سیستم عامل)، بعنوان معماری سیستم عامل رایگان که هدف بزرگی برای گنو بود، درنظر گرفته شد.
در کل این سازگاری مزایای زیاد و مهم دیگری هم مثل امکان به اشتراک گذاری نرم افزارهای رایگان و آسانسازی نقل و انتقالات و ارتباط میان سیستم عاملها و راحتی فوق العاده کاربران کهنه کار و تازه کار در انتقال از یکی به دیگری و غیره و غیره را تضمین میکرد.
برنامه نویسان پروژه گنو بدینصورت پایه ای مطمئن برای نوشتن و تست و تکمیل برنامه های خودشون داشتن قبل از اینکه کار پیچیده و سنگین طراحی هسته یک سیستم عامل رو شروع بکنن. بدینصورت تلاش برای تکمیل اجزای مختلف پازل بزرگ گنو بکمک یونیکس شروع شد.

در سال ۱۹۸۵ استالمن بنیاد نرم افزار آزاد (Free Software Foundation (FSF)) را بصورت یک موسسه غیرمالی و معاف از مالیات برای حمایت از پروژه گنو تاسیس کرد. این بنیاد برای ایفای نقش محوری در پشتیبانی تدارکات، مسایل قانونی و تامین مالی پروژه گنو شروع بکار کرد.
FSF همچنین برنامه نویسانی را هم جهت شرکت در پروژه گنو به استخدام خود درآورد، با این وجود بخش اساسی و قابل توجهی از کار بردوش برنامه نویسان داوطلبی بود (و همچنان هست!) که در این پروژه فعالیت میکردند.
هنگامیکه گنو رشد کرد و برتری بدست آورد، نظر دنیای تجارت را هم بخود جلب کرد و فعالیتهای تجاری علاقمند شروع به همکاری در توسعه یا فروش پشتیبانی نرم افزاری و فنی از گنو، نمودند.
برجسته ترین و موفقترین این فعالیتها Cygnus Solutions بود که اکنون جزیی از Red Hat شده است. موسسان این شرکت که ابتدا Cygnus Support نام داشت، در سال ۱۹۸۹ اونرو برای ارایه پشتیبانی تجاری از نرم افزار آزاد تاسیس کردند.
این شرکت نقش مهمی در حمایت و گسترش و توزیع برخی از نرم افزارهای گنو داشته.


پروژه گنو برای تضمین اینکه نرم افزارهای گنو آزاد باقی بمونن در سال ۱۹۸۹ لایسنس یا پروانه ای رو تدوین کرد که بنام GNU General Public License شناخته میشه (به اختصار GNU GPL یا بصورت خیلی ساده و اختصاری GPL).
این پروانه نرم افزاری اکنون یکی از متداولترین پروانه های نرم افزاری موجود در دنیای نرم افزارهای آزاد و اپن سورس هست که به گستردگی استفاده میشه.
اکثر برنامه های گنو با این لایسنس ارایه میشن و همچنین تعداد زیادی از نرم افزارهای آزاد دیگه ای که جزو پروژه گنو نیستن از این لایسنس استفاده میکنن.
بطور کلی این پروانه به تمام دریافت کنندگان یک محصول نرم افزاری اجازه اجرا، کپی برداری، تغییر و توزیع محصول نرم افزاری را میدهد، با این شرط که هیچ محدودیت دیگری را بر نسخه هایی که بدین ترتیب انتشار میدهند اضافه نکنند. این ایده و روش کار بعنوان کپی لفت (copyleft) شناخته میشود (در مقابل کپی رایت - copyright).
تا سال ۱۹۹۰ سیستم گنو یک ادیتور متن گسترش پذیر (Emacs)، یک کامپایلر بهینه بسیار موفق (GCC) و همچنین بیشتر کتابخانه های هسته و یوتیلیتی های (نرم افزارهای سیستمی مورد استفاده عمومی) یک توزیع استاندارد یونیکس را تولید کرده بود و دراختیار داشت.
جزء مهمی که هنوز وجود نداشت هسته اصلی (kernel - کرنل) سیستم عامل بود.
استالمن در بیانیه گنو ذکر کرده بود که یک هسته ابتدایی وجود دارد ولی بسیاری ویژگیها لازم است بدان اضافه شود تا بتواند یونیکس را شبیه سازی کند. اشاره او به TRIX بود که در MIT توسعه یافته بود و با یونیکس ورژن ۷ سازگار بود، طراحان آن تصمیم داشتند تا آنرا بصورت آزاد توزیع کنند. در سال ۱۹۸۶ کار روی این کرنل آغاز شد. اما گسترش دهندگان عاقبت آن را بعنوان یک نقطه شروع غیرقابل استفاده دانستند، عمدتا بخاطر اینکه این هسته فقط روی یک سیستم نامطلوب و گران قیمت ۶۸۰۰۰ اجرا میشد و بنابراین باید آنرا به معماری سیستم دیگری انتقال میدادند قبل از اینکه بتوانند از آن استفاده کنند.
در سال ۱۹۸۸ میکرو کرنل Mach که در دانشگاه خصوصی کارنگی ملون (Carnegie Mellon University (CMU)) گسترش میافت بعوض مورد نظر قرار گرفته بود، گرچه این پروژه تا زمانیکه گسترش دهندگان آن کد اختصاصی متعلق به شرکت AT&T را بردارند به تاخیر افتاده بود. نخست کرنل بنام Alix شناخته میشد اما گسترش دهنده آن Michael Bushnell بعدا نام Hurd را برگزید و نام قبلی به قسمت دیگری منتقل شد و عاقبت بکلی برداشته شد. سرانجام، گسترش Hurd بعلت ناسازگاریهای تکنیکی و شخصیتی متوقف شد.
(م: بر اساس مقاله دیگری Hurd از سال ۱۹۹۰ تحت گسترش توسط پروژه گنو قرار گرفت و بعنوان کرنل پروژه گنو درنظر گرفته شد).
در سال ۱۹۹۱، Linus Torvalds کرنلی سازگار با یونیکس بنام Linux را نوشت و این کرنل در اینترنت منتشر شد؛ گرچه این کرنل از ابتدا یک نرم افزار آزاد (رایگان) نبود، خالق آن Torvalds در سال ۱۹۹۲ پروانه آنرا به پروانه GNU GPL تغییر داد. لینوکس تا آن زمان توسط برنامه نویسان مختلف در اینترنت مورد گسترش بیشتری قرار گرفته بود.
در این سال لینوکس با سیستم گنو ترکیب شد و نتیجه یک سیستم عامل تمام عیار و رایگان بود که اینک بعنوان گنو/لینوکس یا توزیع لینوکس (Linux distribution) میشناسیم.
گرچه بعضی به سادگی کل این مجموعه را لینوکس خطاب میکنند اما استالمن از مردم میخواهد هنگامیکه به سیستم عاملی اشاره میکنند که از ترکیب سیستم گنو و کرنل لینوکس ساخته شده است از عبارت گنو/لینوکس استفاده کنند چراکه هنگامیکه مردم این ترکیب را لینوکس مینامند ارتباط میان نرم افزارهای گنو و فلسفه آن شکسته شده است.
از سال ۲۰۰۵ کرنل Hurd تحت توسعه فعال قرار دارد.
همچنین پروژه ای وجود دارد که روی انتقال سیستم گنو به کرنل های FreeBSD و NetBSD کار میکند.
در بیستمین سالگرد پروژه گنو (۵ ژانویه ۲۰۰۴)، سازمان ایرلندی نرم افزار آزاد برای ترویج نرم افزار آزاد در ایرلند تاسیس شد.

م: براساس تئوری سیستم عاملی که با Hurd ساخته شود قویتر از یونیکس خواهد بود و امنیت، ثبات و کارایی بالاتری خواهد داشت، آزمایشات پایه توسط برخی محققان این مطلب را نشان داده اند.
این کرنل تشکیل شده است از یک میکروکرنل Mach و برنامه Hurd که مجموعه ای از سرورهاست (در اصطلاح یونیکس: daemons) که بر روی این میکروکرنل کار میکنند.
کوچک بودن این هسته درونی و انتقال بسیاری از توابع و سرویسها به لایه های نرم افزاری بالاتر باعث کاهش حجم میکروکرنل شده و در نهایت کارایی بالاتری را برای کرنل دربر خواهد داشت.

م: Gnu نام گوزن یالدار آفریقایی است که سر و شاخهایی شبیه گاو دارد.

منبع : دوستم حمیدرضا (ان شاا.. که هر جا هست موفق باشه)