پروژه گنو (قسمت اول)(1638 مجموع کلمات موجود در متن) (5012 بار مطالعه شده است) پروژه
گنو (قسمت
اول)
نخستین
جامعه اشتراک نرمافزار
وقتی
در سال ۱۹۷۱ کار در آزمایشگاه هــوش
مصنــوعی MIT
را
آغاز کــردم عضو جامعه اشترک نرمافزاری
شــدم که از سالها پیش وجود داشت.
به
اشتراک گذاشتن نرمافزار فقــط مـحـدود
بــه جـامعه خاص ما نبود؛ این کار به
اندازه رایانهها قدمت دارد همچنان که
به اشتراک گذاشتن دستور غذا به اندازه
آشپزی قدمــت دارد.
ولی
ما بیش از پیش نرم افزارها را به اشتراک
میگذاشتیم.
آزمایشگاه
هوش مصنوعی از یک سیستم عامل اشتراک
زمانــی بــه نام ITS
(سیستم
غیر قابل رقابت اشتراک زمانی)
[۲]
استفاده
میکرد که کارکنان هـکــر آزمایشگاه (۱)
آن
را بــا زبــان اسمــبلی بــرای یــک
Digital
PDP-10 کــه
یـکی از رایانههای بزرگ زمان خود بود
طراحــی و کـدنـویسی کــرده بـودند.
به
عنوان یکی از اعضای این جامعه و یک کارمند
هکر سیستم در آزمایشگاه هوش مصنوعی شغل
من بهتر کردن این سیستم بود.
ما
به نرمافزار خود «نرمافزار
آزاد»
[۳]
نمیگفتیم
چون آن عبــارت وجـود نداشت؛ اما همــانطور
بود.
هر
وقت کسی از یک دانشگاه یا شرکت دیگر
میخواست از برنامه استفاده کند مــا
بــا خوشحالی به او اجازه این کار را
میدادیم.
اگر
شما با کسی برخورد میکردید که از برنامهای
ناآشنا و جالب استفاده میکرد همیشه
میتوانستید از او بخواهید که متن کد را
نشانتان دهد تا بتوانید آن را بخوانید،
تغییرش دهید یا قسمتهایی از آن را برای
خلق یک برنامه تازه جدا کنید.
(۱)
استفاده
از «هکر»
به
معنای «نفوذگر
امنیتی»
اشتـباه
رسانههای گروهی است.
ما
هکرها از پذیرش این مفهوم سر باز میزنیم
و این کلمه را به معنای «کسی
که عاشق برنامهنویسی است و از برنـامهنویسی
هوشمندانه لذت میبرد»
بکار
میبریم.
فرو
ریختن جامعه
اوضاع
در اوایل دهه ۱۹۸۰ زمــانی کــه Digital
سری
PDP-10
را
متوقف کــرد بــه شــدت عـوض شد.
معماری
باسلیقه و قدرتمند آن در دهه ۶۰ بطور طبیعی
نمیتوانست فضاهای بزرگتر نشانهگذاری
را که در دهــه ۸۰ امکانپذیر شده بودند
در بر بگیرد.
این
به معنای آن بود که نزدیک به همه برنامههای
نوشته شده برای ITS
منسوخ
شدند.
جامعه
هکرهای آزمایشگاه هوش مصنوعی نه خیلی قبل
از آن از هــم پــاشـیـده بـود.
در
سال ۱۹۸۱ شرکت Symbolics
نزدیک
به تمام هکرهای آزمایــشگـاه هوش مصنوعی
را استخدام کرد و جامعه کم جمعیت از اداره
خود ناتوان شد.
(کتاب
Hakers
نوشته
استیو لوی [۴]
همراه
ارائه تصویری روشــن از جامعه در دوران
کمالش این وقایع را توضیح میدهد)
وقتی
آزمایشگاه هوش مصنوعی در سال ۱۹۸۲ یک
PDP-10
نو
خــرید مــدیـرانش تصمیم گرفتند بجای
ITS
از
سیستم اشتراک زمانی غیر آزاد Digital
استفاده
کند.
رایانههای
مدرن آن دوره مانند VAX
یا
6820
سیستم
عامل خودشان را داشتند امــا هیــچکدام
از آنها نرمافزار آزاد نبودند:
حتی
برای دریافت یک نسخه قابل اجرا هم باید
موافقت نامه حفظ اسرار را امضا میکردید.
این
به معنای آن بود که اولین قدم برای استفاده
از کامپیوتر قول کمک نکردن به دیـگران
بـود.
همـیاری
اجتـماعی ممنوع بود.
قانون
وضــع شــده توســط صـاحبان نرمافزار
اختصاصی این بود:
«اگر
نرمافزارتان را با دیگران شریک شوید
دزدید.
اگر
خواهان تغییری هستید به ما التماس کنید
تا برایتان انجام دهیم.»
ممکن
است این ایده که نظام اجتماعی نرمافزار
اختصاصی -
نظامی
کــه اظـهـار میدارد شما مجاز به اشتراک
گذاری یا تغییر دادن نرم افزار نیستید -
ضد
اجتماعی، غیراخلاقی و در واقــع غـلـط
اســت بـرای بعضی از خوانندگان عجیب به
نظر بیاید.
اما
درباره نظامی که بر اساس تقسیم جامعــه
و درمــانده نـگـه داشـتـن کـاربران
بـنـا شــده چــه مـیتــوان گفت؟
خوانندگانی که این ایده را عجیب میبینند
مـمکن است ساز و کار نرم افزار اختصاصی
را همانگونه که ارائه شده فهمیده باشند
یا آن را به شیوهای که سوداگران نرمافزار
اختصاصی تعریف میکنند شناخته باشند.
توزیعکنندگان
نرمافزار مدتها و به سختی کار کردهاند
تا مردم را متقاعد کنند که تنها یک نوع
نگاه به این موضوع وجود دارد.
وقتی
توزیعکنندگان نرمافزار از «اعمال
حقوق»
خود
یا «ممانعت
از دزدی»
صحـبت
میکنـند آنـچه میگویند اهمیت ثانوی
دارد.
پیام
واقعی این گفتهها انگارههای ابراز
نشدهای است که آنها به شکل امتیاز
میگیرند:
اجتماع
میبایست آنها را بیهیچ نقدی بپذیرد.
پس
بگذارید آنها را بیازماییم.
یکی
ار انگارهها این است که شرکتهای
نـرمافزاری حق طبیعی غیر قابل پرسشی بر
مالکیت نرمافزار دارند و بدینسان بر
تمام کاربران آن هم مسلطاند.
(اگر
این حقی طبیعی بود هر چقدر هم که برای
اجتماع مضر میبود ما نمیتوانستیم به
آن اعتراضی کنیم.)
جالب
است که قانون اساسی ایالات متحده و رویه
قانونی ایــن نـگاه را رد میکنــد؛
کپیرایت حقی طبیعی نیست بلکه انحصاری
ساختگی است که از طرف دولت تحمــیل میشود
تــا حق طبیعـی کـاربـران بـرای تکثیر
را محدود کند.
انگاره
ابراز نشده دیگر این است که تنها موضوع
مهم درباره نرمافزار کاری است که به شما
اجازه انجامش را میدهد -
و
اینکه ما کاربران رایانه نباید به این
موضوع که اجازه داریم چه نوع جامعهای
داشته باشیم توجه کنیم.
انگاره
سوم این است که اگر ما قدرت کافی احاطه بر
کاربران به شرکت ندهیم نرم افزار کارایی
نخواهیم داشت (یا
هرگز برنامهای نخواهیم داشت که این یا
آن کــار بخصوص را انجام دهد).
ایــن
انگاره مـمـکن بــود درسـت بـاشـد پیش
از اینکه جنبش نرمافزار آزاد اثبات کند
که ما میتوانیم نرم افزارهای مفید بسیاری
را بدون به زنجبر کشیدن آنها خلق کنیم.
اگر
تصمیم بگیریم این انگارهها را کنار
بگذاریم و این موضوعات را بــراسـاس
اخــلاقیات متــداول با ارجعیت دادن به
کاربران داوری کنیم به نتایج بسیار متفاوتی
میرسیم.
کاربران
رایانه باید در تـغـییر برنامهها برای
انطباق آنها با احتیاجاتشان آزاد باشند
و آزاد باشند که نرمافزارها را به اشتراک
بگذارند زیرا که کمک به دیگران از مبانی
جامعه است.
اینجا
جای بحث گسترده درباره دلایل پشت این
نتیجهگیری نیست پس من خوانندگان را به
این صفحه رجوع میدهم:
http://www.gnu.org/philosophy/why-free.html
یک
انتخاب اخلاقی دشوار
وقتی
جامعه از میان رفت ادامه دادن به همان شکل
سابق برای من غیر ممکن بود.
در
عوض با یک انتخاب اخلاقی دشوار مواجه شدم.
گزینه
آسان پیوستن به دنیای نرمافزار اختصاصی،
امــضای مــوافقــت نامه حـفظ اسرار و
قول کمک نکردن به دیگر هکرها بود.
همچنین
میبایست نرم افزاری را که توســعه داده
بـودم با موافقت نامه حفظ اسرار منتشر
میکردم که فشار را به دیگران برای خیانت
به دوستانشان بیشتر میکرد.
بدین
گونه میتوانستم پول دربیاورم و شاید
خودم را با کــدنویسی ســرگــرم کنـم.
امـا
میدانسـتم در پایان راه به عقب خواهم
نگریست و دیوارهایی را که برای جدا کردن
مردم از همدیگر ساختهام، خــواهــم
دیــد و احـسـاس خـواهـم کـــرد زندگیام
را برای ساختن دنیایی بدتر از پیش صرف
کردهام.
من
همان موقع تجربه قرار گرفــتن در سمت
دریافت کنــنده موفقت نامه حفظ اسرار را
داشتم وقـتی که شخصی از ارائه متن کد
برنامه کنترل کننده پرینترمان به من و
آزمایشگاه هــوش مصــنوعی MIT
سر
باز زد.
(فقدان
امکانات بخصوصی در این برنامه استفاده
از پرینتر را بسیار دشوار کرده بود.)
پــس
نمـیتــوانستــم خــودم را متــقاعد
کـنـم کــه مـوافقت نامه حفظ اسرار بیضرر
است.
وقتی
او از به اشتراک گذاشتن کد با مــا ســر
بــاز زد من خیلی عصبانی شدم؛ نمیتوانستم
همان کار را با دیگران بکنم.
گزینه
دیگر سر راســت امــا نــاگـوار، تــرک
میـدان رایانه بود.
به
این ترتیب از مهارتهای من سوء استفاده
نمیشد اما این مهارتها به هدر میرفت.
من
در جدا کردن و محدود ساختن کاربران رایانه
مقصر نبودم اما این اتفاق به هر حال
میافتاد.
پس
بدنبال راهی گشتم که یک برنامهنویس
بتواند کار مفیدی در این مورد بکند.
از
خودم پرسیدم آیا برنامه یا برنامههایی
هست که بتوانم با نوشتن آنها وجود چنان
جامعهای را یکبار دیگر میسر کنم؟
جواب
واضح بود:
آنچه
پیش از همه مورد نیاز بود یک سیستم عــامل
بود.
این
نرمافزاری اجتنابناپذیر برای استفاده
از یک رایانه است.
با
یک سیستم عامل خیلی کارها میشود کــرد؛
بــدون آن بطور کلی نمیشود از رایانه
استفاده کرد.
با
یک سیستم عامل آزاد میتوانستیم جامعهای
از هکرهای همـکار داشته باشیم و هرکسی را
دعوت به همکاری کنیم.
و هر
کسی میتوانست از رایانه استفاده کند
بدون آنکه شروع به توطئهچینی برای محروم
کردن دوستانش نماید.
به
عنوان یک توسعه دهنده سیستم عامل مهارتهای
خـــوبی بــرای انـجـام ایــن کــار
داشـتـم.
پـس
با اینکه میدانستم نمیتوانم به راحتی
به موفقیت برسم تشخیص دادم که برای
انــجــام ایــن کــار انتــخـاب شـدهام.
سیستم
را سازگار با یونیکس انتخاب کردم تا قابل
انتقال باشد و کاربران یونیکس بتــوانـند
بــه آن منتــقل شـونــد.
نــام
GNU
در
پـی یک سنت هکری انتخاب شد و سر نام «GNU's
Not Unix» بود.
یک
سیستم عامل تنها به معنای یــک هسـته نیست
که به ندرت برای اجرای سایر برنامهها
کافی است.
در
اوایل ۱۹۷۰ هر سیستم عاملی که سزاوار این
نام بود شامـل خط فرمان [۵]،
اسمبلرها [۶]،
کامپایلرها [۷]،
انترپرترها [۸]،
دیباگرها [۹]،
ویرایشگرهای متن [۱۰]،
ابزارهای ایمیل [۱۱]
و
خیلی چیزهای دیگر بود.
ITS آنها
را داشت، Multics
آنها
را داشت، VMS
آنها
را داشت و Unix
هم
آنها را داشت.
سیستم
عامل گنو هم باید آنها را میداشت.
بعدها
این کلمات را که به هیلِل (۱)
[۱۲]
نسبت
داده میشود شنیدم:
اگر
از بهر خود نیستم، که مرا خواهد بود؟ اگر
تنها خود را هستم، پس چه هستم؟ اگر
نه حالا، پس کی؟
تصمیم
شروع پروژه گنو بر اساس روحیهای مشابه
بود.
(۱)
به
عنوان یک بیخدا دنبالهرو هیچ رهبر
مذهبی نیستم اما گاهی چیزی پسندیده در
آنچه که یکی از آنها گفته است مییابم.
آزاد
چون آزادی
عبارت
«نرمافزار
آزاد»
گاهی
بد تعبیر میشــود -
این
عبارت هیچ ربطی به قیمت ندارد.
این
عبارت مربوط به آزادی است.
بنابراین
اینجا نرمافزار آزاد را تعریف میکنیم:
یک
برنامه برای شما که کاربری منحصر بفرد
هستید نرمافزار آزاد است اگر:
*
این
آزادی را دارید تا از برنامه با هر هدفی
استفاده کنید. *
این
آزادی را دارید تا برنامه را تغییر دهید
تا مناسب احتــیاجاتتان شود.
(برای
اینکه این آزادی در عمل موثر باشد باید
به متن کد دسترسی داشته باشید چون تغییر
دادن برنامه بدون داشتن متن کد کار بسیار
دشوار است.) *
این
آزادی را دارید که نسخههای برنامه را
به رایگان یا در قبال دریافت وجه بازپخش
کنید. *
این
آزادی را دارید که نسخههای تغییر یافته
برنامه را پخش کنید تا جامعه از بهینهسازیهای
شما منتفع گردد.
از
آنجا که «آزاد»
به
آزادی مربوط می شود نه به قیمت، مغایرتـی
بین فروش نسخههای برنامه و نرمافزار
آزاد وجود ندارد.
در
واقع فروش نسخهها اجتنابناپذیر است:
مجمــوعه
نــرمافزارهای آزادی کــه بر روی CD
فروخته
میشوند برای جامعه اهمیت دارند و فروش
آنها راه مهمی برای کسب درآمد جــهـت
توسعه نرمافزار آزاد است.
بنابراین
برنامهای که مردم آزاد نیستند تا در این
مجموعهها قرار دهند نرمافزار آزاد
نیست.
به
دلیل ابهام کلمه «آزاد»
افراد
مدتهاست که در پی جایگزین هستند اما کسی
جایگزین مناسبی پیدا نکرده است.
زبان
انگلیسی کلمات و دقایق بیشتری از زبانهای
دیگر دارد اما یک کلمه ساده و واضح که معنی
«آزاد»
به
معنی آزادی بدهد ندارد -
«رها
شده از قید»
[۱۳]
کلمهای
است که بسیــار نــزدیک بــه معناست.
جایگزینهـایی
چــون «رها
کردن»
[۱۴]،
«آزادی»
[۱۵]
و
«باز»
[۱۶]
معنای
غلط یا اشکالات دیگری دارند.
نرمافزار
گنو و سیستم گنو
توسعه
تمام یک سیستم پروژه بسیار بزرگی است.
بــرای
اینــکه ایــن پــروژه را قــابــل
انــجـام کنــم تصـمـیم گرفتم تکه
نرمافزارهای آزاد موجود را از هر جا که
ممکن بود اقتباس کرده و استفاده کنم.
به
عنوان مثـال از همان آغاز تصمیم گرفتم از
TeX
به
عنوان شکل دهنده اصلی متن استفاده کنم؛
چــنــد ســال بـعـد تصمیم گرفتم از X
Window System استفاده
کنم بجای اینکه یک سیستم پنجره دیگر برای
گنو بنویسم.
بخاطر
این تصمیمات، سیستم گنو همان مجموعه
تمــام نرم افزارهای گنو نیست.
سیستم
گنو شامل برنامههایی است که نرمافزار
گنو نیستند و بوسیله افراد و پروژههای
دیگر و برای اهداف آنها توسعه داده
شــدهاند ولی ما میتوانیم از آنها
استفاده کنیم چون نرمافزار آزاد هستند.
شروع
پروژه
در
ژانویه ۱۹۸۴ من شغلــم در MIT
را
رهــا کــردم و نوشتن نرمافزار گنو را
آغاز نمودم.
ترک
کردن MIT
ضروری
بود تا MIT
نتواند
در انتشار گنو به عنوان نرمافزار آزاد
دخالت کند.
اگــر
جزء کارکنان میماندم MIT
میتوانست
ادعای مالکیت حاصل کار را بکند و میتوانست
شرایط انتشار خود را تحمیل نماید یا حتی
حاصل کار را تبدیل به بسته نرم افزار
اختصاصی کند.
من
قصد نداشتم آنهمه کار کنم تا ببینم فایدهای
برای هدفی که کار به آن منظور انجام شده
یعنی ایجاد یک جامعه جدید اشترک نرمافزار
ندارد.
هر
چند پروفسور وینستون [۱۷]
که
بعدها مدیر آزمایشگاه هوش مصنوعی MIT
شــد
مهــربــانانه از مـن دعوت کرد که از
امکانات آزمایشگاه استفاده کنم.
نوشته
ریچارد استالمن [۱]
اصل
مقاله از کتاب «Open
Sources»
ترجمه
از بهنام بهجت مرندی blixbox@gmail.com
PDF Version
منبع:
http://www.gnu.org/gnu/thegnuproject.html
پانویسها:
[۱]
Richard Stallman [۲]
Incompatible Timesharing System [۳]
Free Software [۴]
Steve Levy [۵]
Command Processors [۶]
Assemblers [۷]
Compilers [۸]
Interpreters [۹]
Debuggers [۱۰]
Text Editors [۱۱]
Mailers [۱۲]
Hillel [۱۳]
Unfettered [۱۴]
Liberated [۱۵]
Freedom [۱۶]
Open [۱۷]
Professor Winston |