Thursday, January 04, 2007

Open Source(1)

استاد مارتین فاولر در آن مقاله Is Design Dead? خودشان یک جمله ای دارد که برای من خیلی جالب بود: "In software any term means many things". حتما شما هم خیلی اوقات این قضیه را احساس کرده اید. یک کلمه را که از چهار نفر مختلف سوال کنی، پنج تا برداشت مختلف از آن دارند، و البته شاید هیچ کدام آنها درست نباشد و در عین حال هیچ کدام هم غلط نباشد.

اپن سورس هم از همین دست کلمات است، هر کسی بنابه نیازش یک برداشتی از آن می کند. خیلی ها احساس می کنند نرم افزار اپن سورس یعنی یک نرم افزاری که مجانی است.

از طرفی هر روز بر اهمیت نرم افزارهای اپن سورس افزوده می شود(بعدا در مورد متداول شدن اپن سورس بیشتر می نویسم) و در مملکت ما هم چند سالی هست که به این واژه بیشتر توجه می شود، و البته دلایل متعددی دیگری است که پرداختن به این مسئله را توجیه می کند.

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

تاریخچه اپن سورس:

با وجود اینکه هیچ وقت از تاریخ خوشم نمی آمد، ولی نمی دانم چرا تاریخچه ها را دوست داشتم. تاریخچه اپن سورس هم تاریخچه جالبی است. البته لفظ اپن سورس عمر زیادی ندارد و اولین بار سال 1998 بود که بکار برده شد. ولی پروژه های اپن سورس سابقه اش به پیش از این سال بر می گردد. بیشتر مطالب این قسمت را از کتاب Understanding Open Source Software Development چاپ Addison Wesley با مقدار زیادی تغییر(یا بهتر بگویم با مقدار زیادی تحریف!) آورده ام. سعی کرده ام هر جایی که لازم بوده لینک اضافی هم بگذارم.

در طول تاریخ چند ده ساله نرم افزار چند اتفاق افتاده که روی وضعیت کنونی دنیای اپن سورس خیلی موثر بوده. سعی کرده ام در اینجا چند تا از این اتفاقات را بطور مختصر بررسی کنم، این تاریخ مختصر را بدون هیچ دلیل خاصی به سه دوره کاملا بی ربط تقسیم کرده ام:

از توسعه یونیکس تا انتشار BSD:

يکي از اتفاقات جالب و موثر در اين زمينه، رأي دولت آمريکا بر ضد غول مخابراتي AT&T بود، در سال 1956 دولت آمريکا شرکت AT&T را از ورود به زمينه هاي غير مخابراتي منع کرد، اين رأي باعث شد که سيستم عامل يونيکس که در آزمايشگاه bell بوسيله دنيس ريچي و کن تامپسون توسعه يافته بود نتواند به فروش برسد، داستان از اين قرار بود که تامپسون علاقه مند به اجراي بازي Space Travel بر روي کامپيوتر PDP-7 بود و براي اين کار يک سيستم عامل کامل نوشت(راست و دروغش باشد پای آن هایی که این داستان را تعریف کرده اند ولی در هر حال این پایه همان سیستم عاملی شد که بعدا اسمش را یونیکس گذاشتند)! چون AT&T از فروش محصولات غير مخابراتي منع شده بود، متن يونيکس را در بين دانشگا هها و مؤسسات تحقيقاتي توزيع کرد.

يکي ديگر از حرکتهاي مؤثر در اين زمينه توزيع نرم افزارهاي دانشگاه برکلي بود که در سال 1977 شروع شد، گروه BSD سيستم عامل يونيکس را توسعه داد و ويژگيهاي جديدي را به آن اضافه کرد، اين سيستم عامل بعدها در Arpanet مورد استفاده قرار گرفت. گروه BSD همچنين پروتکل TCP/IP رابر روي سيستم عامل خود پياده سازي کرد، که بعدها باعث توسعه سريع اينترنت شد .

نرم افزارهاي مهمي که توسط اين گروه توسعه يافت BIND(سرور(DNS و Send Mail(mail server) بود، این نرم افزارها هنوز هم بطور گسترده ای مورد استفاده قرار می گیرد.

در سال 1984 با اتمام انحصار، AT&T برعليه BSD شکایت کرد، دعواي اين دو که تا اوايل 1990 نيز ادامه يافت، باعث شد که بسياري از توسعه دهندگان به فکر توسعه سيستم عامل هاي ديگري همانند Linux ، Free BSD و Open BSD بيافتند. تأثير مهمي که داستان BSD بروي جنبش نرم افزارهاي متن باز گذاشت، تغيير در ايدئولوژي ها و نحوۀ نگرش جديد رهبران اين جنبش بود.

از درایور پرینتر تا بزرگترین پروژه تاریخ:

یکی دیگر از حوادث مهمی که در تاریخ نرم افزارهای متن باز اتفاق افتاده تاسیس بنیاد نرم افزارهای آزاد (FSF=Free Software Foundation) توسط ریچارد استالمن است. داستان به آن زمانی مربوط می شود که استالمن در آزمایشگاه هوش مصنوعی دانشگاه MIT کار می کرد و اولین پرینتر لیزر جت شرکت زیراکس را دریافت کرد. گویا درایور این پرینتر مشکل کوچکی داشته که به راحتی قابل حل بوده، به همین خاطر استالمن از شرکت زیراکس می خواهد که سورس برنامه را در اختیار او قرار بدهند تا او بتواند تغییرات مورد نظرش را بر روی آن اعمال کند ولی زیراکس از این کار امتناع می کند. بعد از این اتفاق هست که استالمن به این نتیجه می رسد که نرم افزار باید آزاد باشد و از MIT استعفا می کند و در سال 1985 بنیاد نرم افزارهای آزاد را تاسیس می کند(این که یک نفری به خاطر یک اشکال در درایور پرینتر به این نتیجه برسد که نرم افزار باید آزاد باشد و بعد از آن از جایی مثل MIT استعفا بدهد و برود یک موسسه تاسیس کند، در نگاه اول خیلی احمقانه به نظر می رسد ولی بعدا توضیح می دهم که این نگرش و حرکت استالمن چه تاثیری بزرگی بر دنیای نرم افزار داشته است)

ايدئولوژي FSF براين قرار بود که عبارت copyright – all rights reserved بايد به عبارت copyleft-all rights reversed تغيير يابد. تحت مفهوم copyleft هر کسي اجازه استفاده از نرم افزار، کپي کردن و تغيير آن را دارد، و حتي مي تواند دوباره آن را توزيع کند، ولي نمي تواند ديگران را در استفاده از آن محدود کند. همین ایدئولوژی باعث شکل گیری اصطلاح Free Software و مجوز GPL شد. این اصطلاح به خاطر ابهامی که در کلمه Free در زبان انگلیسی وجود دارد بعدا مورد انتقادات بسیاری قرار گرفت (بر خلاف تمام مواردی که معمولا دوستان کامپیوتری می گویند که در زبان فارسی معنی فلان کلمه وجود ندارد یا چند کلمه انگلیسی تنها یک معنی فارسی دارد، در این مورد فارسی واقعا شاهکار کرده. در فارسی دو کلمه آزاد(همان معنی که مد نظر استالمن بوده) و رایگان(همان معنی که مد نظر استالمن نبوده) وجود دارد که در انگلیسی به هر دوی آنها Free می گویند. همین ابهام بوده که باعث شده برخی این عبارت را به مفت افزار ترجمه کنند(زیاد جدی نگیرید)).

استالمن پس از تاسیس FSF نرم افزار های زیادی از جمله ویرایشگر emacs و مجموعه کامپایلرهای GCC را تولید کرد. ابزارهایی که استالمن و دوستانش تولید کردند بعدها در لینوکس مورد استفاده قرار گرفت و همچنین سیستم عامل لینوکس تحت مجوز GPL (مجوزی که استالمن ارائه داده بود) منتشر شد.

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

تروالدز که یک دانشجوی 21 ساله بود و در دانشگاه هلسینکی درس می خواند در سال 1991 تصمیم گرفت سیستم عامل مینیکس(minix) را طوری تغییر دهد که قابلیت اجرا بر روی IBM PC 386 را داشته باشد. سیستم عامل مینیکس همان سیستم عاملی هست که توسط آندرو تننبام تولید شده و اگر کتاب سیستم عامل تننبام را دیده باشید سورس کد این سیستم عامل تقریبا نیمی از صفحات این کتاب را گرفته است.

نکته جالب این است که تروالدز در اولین اعلام عمومی خود، بیان می کند که برای تفریح این سیستم عامل را نوشته و قرار نیست که یک سیستم عامل حرفه ای تولید کند. ولی در هر حال، دست روزگارش چنان رقم زند که پس از گذشت چند سال به یکی از قدرتمند ترین سیستم عامل های جهان مبدل شد. در حال حاظر برآورد می شود که بیش از چهل هزار نفر در توسعه لینوکس مشارکت داشته باشند، همین مسئله هست که باعث شده تروالدز ادعا کند بزرگترین پروژه تاریخ را به جهانیان عرضه کرده.

از وب سرور آپاچی تا به امروز:

يکي ديگر از سالهاي به يادماندني، سال 1995 بود. سالي که در آن گروهي از توسعه دهندگان تصميم به توسعه وب سرور آپاچي گرفتند. وب سرور آپاچي براساس وب سروري که قبلاً توسط راب مک کول توسعه يافته بود با اضافه کردن تعدادي patch به آن توســعه يافت. به همين دليــــــل است که آنرا Apache Server (کــه خوانده مي شودA Patchy Server) نام نهادند.

بنياد نرم افزاري آپاچي(ASF=Apache Software Foundation) که در آن زمان تشکيل شد، امروز به يکي از بزرگترين گروههاي نرم افزاري تبديل شده است.

تا سال 1998 هنوز اصطلاح اپن سورس مطرح نشده بود و عمدتا از اصطلاح Free Software که توسط استالمن مطرح شده بود استفاده می شد. سال 1998 سالی بود که اصطلاح اپن سورس در جلسه ای که با حظور تعدادی از افراد از جمله اریک ریموند برگزار شد بوجود آمد. در همان سال و بعد از این جلسه بود که Netscape سورس مرورگر معروف خود را با نام Mozilla و تحت یک مجوز اپن سورس ارائه کرد (استاد ویکیپدیا این موضوع را مفصل تر توضیح داده اند)

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

2 comments:

Anonymous said...

zoftware.blogspot.com is very informative. The article is very professionally written. I enjoy reading zoftware.blogspot.com every day.
paydayloans payday

Anonymous said...

Купим электро, радио компоненты и другие комплектующие с хранения

ICQ 177-211-010
tel:+380958561468
Наталья

РРС4-50-7-1-В
Разъем RST20i5 96.053.6053.1 -96.053.6053.1 Запрос WE
Разъем PH-4MC вилка на кабель < 100
ШР32У8ЭГn-К
РШ2Н-1-6В разъем
Соединитель 99.480.9999.9 -99.480.9999.9 Запрос WE
2РМТ22Б4ШnВ(А)1(ЛБ)В
РРС3-32-0-3(4…12)-В
ШР60П45ЭГn-К
ОНЦ-РГ-09-10/22-Р18 (розетка) (пласм) з/у 100шт РАЗЪЕМ НА ПАНЕЛЬ
2рм24кпэ19г1в1 группа Разъемы ---811313
СР50-17ФВ СОЕДИНИТЕЛЬ РАДИОЧАСТОТНЫЙ. 1990-2010 ГОДА.
РП15-10ШВ3КВ
РРС5-7-9-1-В
СШРГ32У10ЭГn
Соединитель GST18I3K1-S 15 20SW
РАЗЪЕМ АВТОМОБИЛЬНЫЙ СО СВДИО
РРС5-10-А-9-2-В
СШР40У3ЭГn
ШР48П26НШ2 розетка каб.с прям.кож. бРО.364.028ТУ 5" Россия"
Соединитель 2 провода 1.0-2.5мм2 < 100
Разъем 2рмд33куэ7г9в1
2РМТ39БПН22ШnВ(А)1(ЛБ)В
HU-4 Разъем питания 4 конт. шаг 2,54 AE023402
Разъем пит. штыревой 2,1х5,5 мм (м) на кабель L=14мм, с аморт. (DJK-11A long)
Разъем SCM-16(2171-16GSB)(IDH-16S2GN)
РАЗЪЕМ XLR-3 роз. блочн. (JD-394) 12 Б/Н
Разъем зарядки SonyErikson K700/300i orig
2рм27куэ24ш1в1 группа Разъемы ---12265
2РМТ39Б45ШnВ(А)1(ЛБ)В
РБМ4-50-Ш1(2,3,6,7)-(5)В
Разъем IEEE-6F/SMT (IEEE-1394 на плату)
2РМДТ45КУЭ50ШnВ(А)1(ЛБ)В
Разъем на плату (м) под Siemens S-55
Разъем RST20i3 96.031.0153.0 -96.031.0153.0 Запрос WE
2РМДТ30БПЭ32ГnВ(А)1(ЛБ)В
ГРПМ1-45-ШУ2В группа Разъемы ---12322
Разъем пит. штыревой 2,5х5,5 мм (м) на кабель (DJK-10B)
ОНП-8-21В-1В рос с/к Коннектор "5"
СНЦ29-41/30В-1(а,б,в,г)В
Клеммный соединитель ЗВИ-150
2РМДТ18Б4Г5В1В 10-11г. вилка блочная разъем ЭЛЕКОН
сшр28п7эг9 вил рос коннектор ос
Разъем рп10-15"3"-п-о вилка (пласт.)
СШР36У15ЭШ5 розетка каб.с угл.кож. бРО.364.028ТУ 5" СССР"
СР75-193ФВ СОЕДИНИТЕЛЬ РАДИОЧАСТОТНЫЙ. 1990-2010 ГОДА.
СНО53-8/28 Вилка 93
KLS15-PC10М разъем вилка РС10ТВ
2РМГ22БПН4ШnЕ1(2)(Б)
ГРПМ1-45-ШУ2В группа Разъемы ---12186


28434