اگر تا به حال نرمافزاری را دانلود یا نصب کرده باشید، احتمالاً فقط نسخهای آماده اجرا از آن را دریافت کردهاید. اما پشت هر نرمافزار، مجموعهای از دستورها و کدها قرار دارد که به آن کد منبع (Source Code) گفته میشود. این کدها توسط برنامهنویسان نوشته میشوند و سپس با استفاده از ابزارهایی به نام کامپایلر (Compiler) به شکلی ترجمه میشوند که کامپیوتر بتواند آنها را اجرا کند.
در بیشتر نرمافزارهای تجاری، کاربران فقط نسخه ترجمهشده و اجرایی برنامه را در اختیار دارند و به کد منبع دسترسی ندارند. همین موضوع باعث میشود تغییر دادن یا شخصیسازی آنها تقریباً غیرممکن باشد. شرکتهای نرمافزاری نیز برای محافظت از مالکیت فکری خود، معمولاً کد منبع را منتشر نمیکنند.
اما نرمافزارهای Open Source یا متنباز رویکردی متفاوت دارند.
نرمافزار متنباز (Open Source) چیست؟
در نرمافزارهای متنباز، علاوه بر نسخه قابل اجرا، کد منبع برنامه نیز در اختیار کاربران قرار میگیرد. این یعنی هر کسی میتواند:
- کد برنامه را مشاهده کند
- آن را تغییر دهد
- نسخههای بهبود یافته ایجاد کند
- و حتی آن را دوباره منتشر کند
طرفداران جنبش متنباز معتقدند وقتی افراد بیشتری بتوانند کد یک نرمافزار را بررسی و اصلاح کنند، کیفیت نرمافزار بالاتر میرود و خطاها سریعتر پیدا و برطرف میشوند.
ویژگیهای اصلی نرمافزارهای Open Source
نرمافزارهای متنباز معمولاً چند ویژگی مهم دارند:
- امکان توزیع آزاد: نرمافزار میتواند به صورت رایگان یا همراه با یک بسته نرمافزاری دیگر منتشر شود.
- دسترسی به کد منبع: کد منبع باید همراه نرمافزار ارائه شود.
- امکان تغییر و توسعه: کاربران اجازه دارند کد برنامه را تغییر دهند.
- قابلیت انتشار نسخههای اصلاحشده: نسخههای بهبود یافته میتوانند دوباره منتشر شوند.
- عدم وابستگی به مجوز نرمافزارهای دیگر: استفاده از آن محدود به مجوز خاص نرمافزارهای دیگر نیست.
نمونه موفق از دنیای Open Source: لینوکس
یکی از مشهورترین نمونههای نرمافزار متنباز، سیستمعامل لینوکس (Linux) است.
در سال 1991، دانشجویی به نام Linus Torvalds از دانشگاه هلسینکی فنلاند، سیستمعاملی مبتنی بر Minix (الهام گرفته از Unix) ایجاد کرد و آن را لینوکس نامید.
او نسخههای اولیه لینوکس را تحت مجوز GNU General Public License (GPL) منتشر کرد؛ مجوزی که اجازه میدهد کاربران نرمافزار را مطالعه، تغییر و بازنشر کنند.
با انتشار کد منبع لینوکس، برنامهنویسان زیادی از سراسر جهان آن را دانلود کردند و به توسعه آن کمک کردند. نتیجه این همکاری جهانی این بود که در سال 1994 نسخه 1.0 لینوکس منتشر شد.
امروزه لینوکس یکی از مهمترین سیستمعاملهای جهان است و در سرورها، موبایلها (اندروید)، سوپرکامپیوترها و بسیاری از زیرساختهای اینترنت استفاده میشود.
چالش پشتیبانی در نرمافزارهای متنباز
یکی از نگرانیهایی که درباره نرمافزارهای متنباز مطرح میشود، پشتیبانی فنی است. از آنجا که هر کسی میتواند کد را تغییر دهد، ارائه پشتیبانی رسمی گاهی دشوار میشود.
به همین دلیل برخی شرکتها مدل تجاری متفاوتی ایجاد کردهاند:
آنها نرمافزار متنباز را ارائه میکنند اما پشتیبانی و خدمات فنی را به صورت پولی عرضه میکنند.
یکی از نمونههای معروف این مدل Red Hat Linux است که در سال 1994 عرضه شد. کاربران برای دریافت پشتیبانی حرفهای، بهروزرسانیها و خدمات سازمانی هزینه پرداخت میکنند.
نمونههای مشهور دیگر از پروژههای Open Source
جنبش متنباز فقط به لینوکس محدود نمیشود. بسیاری از فناوریهای مهم اینترنت نیز متنباز هستند، از جمله:
- Apache – یکی از محبوبترین وبسرورها
- Mozilla – هسته مرورگرهایی مانند Firefox
- Perl – زبان برنامهنویسی و اسکریپتنویسی
- PNG – فرمت تصویری رایج در وب
جمعبندی
نرمافزارهای Open Source یا متنباز رویکردی متفاوت نسبت به نرمافزارهای سنتی دارند. در این مدل، علاوه بر نسخه اجرایی برنامه، کد منبع نیز در اختیار کاربران قرار میگیرد. همین موضوع باعث میشود افراد و توسعهدهندگان بتوانند نرمافزار را بررسی کنند، آن را بهبود دهند، مشکلات احتمالی را برطرف کنند و نسخههای جدیدی از آن منتشر کنند.
این رویکرد باعث شکلگیری یک همکاری گسترده در سطح جهانی شده است؛ جایی که برنامهنویسان و شرکتها به صورت مشترک روی توسعه نرمافزارها کار میکنند. نتیجه چنین همکاریهایی، تولید پروژههای قدرتمندی مانند Linux، Apache، Mozilla و بسیاری از ابزارهای مهم دنیای فناوری بوده است.
البته نرمافزارهای متنباز همیشه کاملاً رایگان نیستند. بسیاری از شرکتها با ارائه خدمات پشتیبانی، بهروزرسانیهای سازمانی و خدمات حرفهای از این نرمافزارها کسب درآمد میکنند؛ نمونه معروف آن Red Hat است.
در نهایت، فلسفه اصلی Open Source بر پایه شفافیت، همکاری و آزادی در توسعه نرمافزار بنا شده است؛ مدلی که نقش بسیار مهمی در رشد فناوری و اینترنت در جهان امروز ایفا کرده است.