نرم افزارها و سخت افزار های متن باز چیست؟
متن باز یا Open Source واژه ای است که در طی سالیان اخیر ، به یکی از واژه های رایج در میان کاربران کامپیوتر بدل شده است ، اجازه دهید نگاهی به تاریخچه متن باز بیندازیم ، این مطالب از آدرس زیر کپی برداری شده است :
نرمافزار آزاد - ویکیپدیا، دانشنامهٔ آزاد
در اوایل، نرمافزارها به صورت آزاد منتشر میشدند و برنامهنویسان و شرکتها آنها را به صورت آزادانه در اختیار یکدیگر قرار میداند. در اوایل، تجارت رایانه بیشتر مبتنی بر سختافزار بود و شرکتها درامد خود را بیشتر از راه تولید سختافزار کسب میکردند و هر شرکت، سختافزاری ناسازگار با دیگر شرکتها تولید میکرد. مشتریان، که بیشتر مهندسان و دانشمندان بودند، تشویق میشدند که نرمافزارهای ارائه شده توسط سختافزار را بهبود بخشیده و حتی آن را در اختیار دیگران هم قرار دهند. از آنجا که در آن زمانها سختافزارهای تولید شده توسط شرکتهای مختلف با یکدیگر ناسازگار بود و سختافزار استانداردی وجود نداشت، و همینطور از آنجا که در آن زمان مفسرها و کامپایلرها هنوز جا نیفتاده بودند (که این برنامهها برنامهها را قابل حملتر میکنند)، شانس کمی وجود داشت که نرمافزار مورد نظر بر روی سختافزار شرکت رقیب هم به خوبی اجرا شود.
رفتهرفته که صنعت رایانه پیشرفت کرد و سختافزارها بیشتر استاندارد شدند و همینطور کامپایلرها و مفسرها پیشرفت کردند، زمینه برای رشد نرمافزارهای انحصاری فراهم شد. با چنین پیشرفتهایی، برنامهها راحتتر از سختافزار یک شرکت به سختافزار شرکت رقیب پورت میشدند و راحت میشد یک نرمافزار را بر روی سختافزارهای مختلفی از شرکتهای مختلف اجرا کرد. بدین ترتیب یک نفر میتوانست نرمافزاری بنویسد که مستقل از سختافزار خاصی عمل کند و بر روی طیف وسیعی از آنها اجرا شود. علاوه بر آن، با استاندارد شدن سختافزارها، تفاوتهای ناچیزی که آنها در کارایی داشتند رفته رفته ناپدید شد. تولید کنندگان به این نتیجه رسیده بودند که باید به نرمافزار هم به چشم یک وسیله فروشی نگاه کنند. شرکتها شروع به فروش نرمافزارهای خود کردند و دست کاربران خود را برای تغییر در نرمافزارها و انتشار مجدد آنها بستند. به گونه ای که در سال ۱۹۶۸ شرکتی به نام ایدیآر (به انگلیسی: ADR) اولین نرمافزار دارای مجوز را عرضه کرد. در سال ۱۹۶۹، شرکت آیبیام به خاطر اینکه به همراه سختافزارهای خود، نرمافزارهای آزاد ارائه میکرد، توسط وزارت دادگستری ایالات متحده آمریکا به از بین بردن کسب و کار و ایجاد یک شرایط ضدرقابتی برای دیگر متهم شد. آیبیام دیگر به همراه سختافزارهای خود نرمافزار ارائه نکرد و بدین ترتیب نرمافزارها و سختافزارها از یکدیگر جدا شدند و فاصله گرفتند.
در سال ۱۹۸۳، ریچارد استالمن از آزمایشگاه هوش مصنوعی و علوم رایانه امآیتی، پروژه گنو را بنیان نهاد. او که از تغییر فرهنگ در صنعت رایانه و کاربرانش ناامید شده بود، قصد داشت سیستمعاملی به نام گنو را به صورت یک نرمافزار آزاد توسعه دهد. در ژانویه ۱۹۸۴ توسعه سیستمعامل گنو آغاز گشت و بنیاد نرمافزارهای آزاد در اکتبر ۱۹۸۵ بنیان نهاده شد. در سال ۱۹۸۹، اولین نسخه از اجازهنامه همگانی گنو منشتر شد. البته جیپیال اولین پروانه نرمافزار آزاد نبود و قبل از آن پروانههای نرمافزار آزاد دیگری مانند پروانه بیاسدی در سال ۱۹۸۸ عرضه شده بودند. تا کنون پروانههای نرمافزار آزاد زیادی توسط افراد و شرکتهای مختلف منتشر شده است که آز این میان میتوان به پروانه امآیتی، پروانه آپاچی، پروانه آیاسسی، پروانه همگانی موزیلا و ... اشاره کرد.
در سال ۱۹۹۷، اریک ریموند مقالهای با نام کلیسای جامع و بازار را منتشر کرد و در آن به بررسی اصول نرمافزارهای آزاد و مزایای آنها پرداخت. این مقاله به شدت مورد توجه قرار گرفت و یکی از دلایلی بود که شرکت ارتباطات نتاسکیپ، کد منبع مرورگر اینترنتی خود را به صورت نرمافزار آزاد منتشر کرد. این کار باعث شد تا شرکتهای دیگری هم به نرمافزارهای آزاد توجه نشان دهند. کدهای منبع نتاسکیپ، بعدها اساس توسعه مرورگر فایرفاکس و برنامه تاندربیرد قرار گرفت.
با پیشرفت نرم افزار های متن باز ، مطالعه بر روی سخت افزار های متن باز نیز آغاز شد ، سخت افزار های متن باز نیز همانند نرمافزارهای متنباز از استانداردهای متنباز پیروی کرده و به این گونه طراحی میشوند که تمامی اجزاء آنها باز و به راحتی برای همگان قابل دسترس باشند. سختافزار منبعباز قسمتی از فرهنگ جنبش متن باز محسوب میشود و مفهوم مشابهی دارد. هدف سختافزار منبعباز این است که اطلاعات در مورد سختافزار براحتی در دسترس همه قرار داشته باشد. طراحی سختافزار (مانند طرحهای مکانیکی، نمودار مدار (شماتیک)، مدار چاپی) بعلاوهٔ نرمافزار راهانداز سختافزار همگی مطابق قوانین نرمافزار آزاد و متنباز (FOSS) منتشر میشوند.
با این تفاسیر :
منظور از سخت افزار رایگان ، سخت افزاری است که نقشه های شماتیک و PCB فیبر های مدار چاپی ، سورس میکروکنترلر ها ، دیتاشیت قطعات و هر چیزی که برای تولید دستگاه به آن نیاز باشد ، به صورت رایگان در دسترس کاربران قرار گرفته و کاربر بتواند به سادگی دستگاه را بسازد و بدون پرداخت هزینه از آن استفاده کند .
منظور از سخت افزار متن باز ،سخت افزاری است که ساخت و استفاده از آن رایگان است اما تغییر در سورس ها ، نقشه ها ، داکیومنت ها و سایر موراد مرتبط با آن باید مطابق با قوانین درج شده در مجوز سخت افزار انجام شود . البته ممکن است در مجوز این سخت افزار ها ، تغییر دادن سورس ها و نقشه ها و... مجاز ذکر شده باشد .
در واقع میتوان گفت متن باز و آزاد دو واژه هم معنی هستند .
همچنین منظور از نرم افزار متن باز یا نرم افزار آزاد ، نرمافزاری است که بههمراه سورس ها و منابع مورد نیاز منتشر شده و قوانین استفاده از آن به گونه ای باشد که آزادی استفاده، مطالعه، ویرایش و انتشار مجددِ کاربران را تضمین کند .
در آدرس زیر اطلاعات بیشتری در مورد متن باز و آزاد آورده شده است :
تفاوت نرم افزار Open source، Free software و Freeware چیست؟نیمکت فناوری
NOTE
به طور کلی نرم افزار ها و سخت افزار های متن باز ، از 10 قانون زیر پیروی میکنند :
۱. توزیع مجدد آزاد
نرم افزار یا سخت افزار باید به صورت رایگان در دست افراد قرار گرفته و برای استفاده از خود آن یا سایر لوازم جانبی آن نیازی به پرداخت هزینه نباشد .
۲. کد منبع
تمامی سورس ها ، نقشه ها ، الگوریتم ها ، دیتاشیت قطعات ، کتابخانه های استفاده شده در برنامه ، کاتالوگ ها و... مربوط به سخت افزار یا نرم افزار ، به سادگی در دسترس باشد و کاربران بتوانند بدون هیچ محدودتی به آنها دسترسی داشته باشد .
۳. کار مشتقشده
اعمال تغییرات و کارهای بعدی روی نرمافزار امکانپذیر باشد و این نرمافزار جدید را بتوان تحت همان شرایط نرمافزار اولیه و اصلی تکثیر کرد.
۴. نگهداری تمامیت کد منبع نویسنده اصلی نرمافزار
مجوز نرم افزار ممکن است اجازه تغییر در اصل متن برنامه را به کاربران ندهد و تنها اجازهٔ افزودن وصلههای نرم افزاری و کامپایل مجدد برنامه را بدهد. در این شرایط توسعه دهندگان تنها میتوانند توزیعهایی به کمک وصلههای نرم افزاری خود ایجاد نمایند. مجوز نرم افزاری میباید صراحتاً ایجاد توزیع تازه با تغییر مجدد در کد اصلی را محدود نماید. نرم افزار توزیع شده تحت این مجوز میباید حتمن نام نسخهای تازه را داشته باشد.
۵. بین افراد و گروهها تبعیضی گذاشته نشود
اجازهنامه نباید بین افراد یا گروهها تبعیضی بگذارد.
۶. هیچ تبعیضی در نوع استفاده از نرمافزار وجود نداشته باشد
هیچ گونه تبعیض و تمایزی بین هر فعالیتی که در راستای نرمافزار انجام میگیرد، وجود نداشته باشد. برای مثال نرمافزاری نباید بین استفادهٔ تجاری یا تحقیقاتی تبعیض قائل شود.
۷. توزیع اجازهنامه
مجوز باید به هرکسی که یک کپی از نرمافزار را دریافت میکند نیز اختصاص یابد، بدون اینکه آنها نیاز به توافق و هماهنگی با اجازهنامهٔ دیگری داشته باشند.
۸. اجازهنامه نباید مخصوص یک محصول باشد
حقوق داده شده در مجوز یک نرم افزار نباید وابسته به این باشد که بخشی از بسته بزرگتری است. در صورتی که نرم افزار از محصول دریافت شده نیز جدا شود، باید همان حقوق را در استفاده، توزیع و ویرایش، به دریافت کننده نرم افزار را اعطا کند. تمام کسانی که آن نرم افزار را، که قبلا به عنوان بخشی از محصول بزرگتری بوده است، دریافت و یا توزیع مجدد میکنند باید تمامی حقوق را مانند محصول اصلی داشته باشند.
۹. اجازهنامه نباید نرمافزارهای دیگر را محدود کند
شرایط تعریف شده در مجوز نباید توزیع نرم افزار را درکنار نرم افزارها با مجوزهای دیگر محدود کند. برای نمونه نمیتواند تعیین کند که تمامی نرم افزارهای ارائه شده در لوح فشرده ارائه شده باید متن باز باشند.
۱۰. اجازهنامه باید از نظر تکنولوژی بیطرف باشد
اجازهنامه نباید مختص یک تکنولوژی خاص باشد.
نوشته های بالا برگرفته از نوشته های زیر در سایت بنیاد نرم افزار های متن باز می باشد :
The Open Source Definition | Open Source Initiative
در سطح اینترنت نوشته های زیادی در مورد متن باز وجود دارد و افراد زیادی در زمینه ی توسعه سخت افزار ها و نرم افزار های متن باز فعالیت میکنند :
نرمافزار متنباز - ویکیپدیا، دانشنامهٔ آزاد
TAPR Open Hardware License - Wikipedia, the free encyclopedia
Free and open-source software - Wikipedia, the free encyclopedia
List of open source hardware projects - Wikipedia, the free encyclopedia
Arduino - پرسش های متداول
در جنبش متن باز ، هدف اصلی از ارائه ی هرگونه کالا یا خدمات رایگان ، صرفا کمک به دیگران است . افراد توسعه ی دهنده سخت افزار و نرم افزار های متن باز معمولا در دو گروه زیر جای میگیرند :
1- انسانی های معمولی در جایگاه های همچون معلم ، دانش آموز و دانشجو ، تعمیر کار ، طراح ، مهندس ، برنامه نویس و...که زمان آزاد خود را جهت توسعه ی علم و دانش صرف میکنند .
2- شرکت های خصوصی و بنگاه های تجاری که برای اهدافی همچون تبلیغات و معرفی محصولات ، دریافت نظرات و پیشنهادات کاربران جهت ارتقای کیفیت محصولات تجاری خود و... نرم افزار ها و سخت افزار های متن باز را توسعه می دهند .
در صورتی که شما نیز قصد دارید به دیگران کمک کنید ، یا همکنون با انتشار سخت افزار ها و نرم افزار های رایگان ، این کار را انجام میدهید میتوانید با رعایت موارد زیر فعالیت های خود را هدفمند کنید :
1- کلیه کاربران فعال در زمینه ی تولید نرم افزار ها و سخت افزار های متن باز به یک مجوز ( License ) برای کار های خود نیاز دارند :
معمولا کاربران فعال در جنبش متن باز دارای یک مجوز کلی برای فعالیت آموزشی ( مطالبی که در سایت ها یا انجمن ها منتشر میکنند ) و یک مجوز خاص برای فعالیت های نرم افزاری و سخت افزاری ( نرم افزار ها و سخت افزار های که میسازند ) هستند . مجوز کلی معمولا در صفحه ی وب سایت یا وبلاگ شخصی و مجوز خاص معمولا در یک فایل متنی (فایل License.txt یا License.doc یا License.pdf ) به همراه سخت افزار یا نرم افزار منتشر میشود ، اطلاعات تکمیلی در مورد مجوز در آدرس زیر وجود دارد :
[آموزش] مجوز یا لیسانس چیست ؟ چرا به مجوز نیاز داریم ؟
2- قبل از انتشار سخت افزار ها و نرم افزار های خود موارد زیر را مشخص کنید :
- ورژن یا نسخه ی نرم افزار/سخت افزار : محدودیتی در شماره گذاری وجود ندارد ، مثلا ممکن است فردی برای اولین نسخه ی نرم افزار خود از عدد 25 و برای ورژن بعدی از عدد 26 استفاده کند . در اینجا مهم این است که کاربران استفاده کننده ، با مشاهده ی نسخه ی 25 و 26 میتوانند بفهمند که نسخه ی 26 از نسخه ی 25 جدید تر است .
- نرم افزار / سخت افزار در چه مرحله ای است : در صورت سخت افزار و نرم افزار شما هنوز نهایی نشده است و ممکن است در آینده ای نزدیک با توجه به نظرات و پیشنهادات کاربران دستخوش تغییراتی شود ، میتوانید انتهای نام آن از کلماتی همچون " نسخه ی آزمایشی " یا " beta" استفاده کنید . در صورتی که کلیه تغییرات را اعمال کرده اید و نرم افزار / سخت افزار مراحل تست و بازبینی را با موفقیت پشت سر گذاشته است ، میتوانید در انتهای نام آن از کلماتی همچون " نسخه ی نهایی " یا "final" استفاده کنید .
3- راهنمای استفاده ، آموزش ها و سایر منابع و مقالات مرتبط با سخت افزار یا نرم افزار را در کنار آن قرار دهید .
یک مقاله ی چند صفحه ای در مورد کاربرد سخت افزار یا نرم افزار تهیه کنید . در بخشی از این مقاله میتوانید با ذکر مثال ، نحوه ی استفاده از سخت افزار یا نرم افزار را بیان کنید . معرفی سخت افزار ها و نرم افزار های مشابه نیز میتواند در تکمیل مطالب آموزشی موثر باشد .
4- سخت افزار ها و نرم افزار های خود را در انجمن های معروف معرفی کنید .
بعد از معرفی نرم افزار و سخت افزار ها در سایت های مختلف ، افراد زیادی آنها را دریافت کرده و نظرات خود را در مورد آن ارائه میدهند . دریافت نظرات باعث بهبود سریع تر سخت افزار و نرم افزار میشود . از طرف دیگر با افزایش تعداد کاربران استفاده کننده ، شما به هدف اصلی خود که کمک به دیگران است ، رسیده اید .
Information
در انجمن ایران میکرو ، تالار زیر برای معرفی سخت افزار ها و نرم افزار های متن باز در نظر گرفته شده است :
نرم افزارها و سخت افزار های متن باز
با مطالعه برخی از پروژه های موجود در آدرس بالا میتوانید اطلاعات بیشتری را در مورد نحوه ی انتشار سخت افزار ها و نرم افزار های متن باز بدست آورید .