به عنوان یک علاقهمند به نرمافزار، باید عبارات «منبع باز» و «اختصاصی» مورد استفاده در اینترنت را خوانده باشید. آیا تفاوتی بین این دو وجود دارد؟
هر چیزی که روی صفحه نمایش خود می بینید از زبان تشکیل شده است. شخصی، در جایی، کلماتی را که برای درک رایانه شما در نظر گرفته شده است، یادداشت کرده است. این کلمات، این زبان، به عنوان کد شناخته می شود.
برای اینکه کامپیوتر ما بداند چه کاری باید انجام دهد، باید آن کد را درک کند. اگر این کار را کرد، می تواند عمل کند. اما برای اینکه بفهمیم رایانه ما واقعاً چه کاری انجام می دهد، باید کد را نیز بخوانیم.
نرم افزار منبع باز به شما امکان می دهد آن کد را ببینید. نرم افزار منبع بسته این کار را نمی کند. بنابراین، این دو نوع نرم افزار چیست و چرا هر دو رویکرد وجود دارند؟
نرم افزار منبع باز چیست؟
نرم افزار رایگان و منبع باز نرم افزاری است که در آن نه تنها به استفاده آزادانه از یک برنامه دسترسی دارید، بلکه می توانید کد منبع آن را نیز مشاهده، ویرایش و به اشتراک بگذارید.
کد منبع به کدی اطلاق می شود که شخص (یا در برخی مواقع، کامپیوتر) هنگام ایجاد یک برنامه تایپ کرده است. این با کد باینری، که زبان واقعی کامپیوتر با آن صحبت می کند، متمایز است. هنگامی که برنامه نویسی نوشتن یک برنامه را تمام می کند، کد منبع را در یک برنامه باینری کامپایل می کند.
یک انسان می داند که چگونه کد منبع را بخواند. یک کامپیوتر می داند که چگونه کد باینری را بخواند.
وقتی شخصی برنامه ای را توزیع می کند، معمولاً یک فایل باینری در اختیار شما قرار می دهد که می توانید آن را روی رایانه خود اجرا کنید. آن برنامه رایگان و منبع باز نیست مگر اینکه کد منبع و آزادی انجام هر دو تا حد زیادی آنچه می خواهید را در اختیار شما قرار دهد.
نرم افزار منبع بسته چیست؟
نرم افزار منبع بسته نرم افزاری است که استفاده از آن با محدودیت هایی همراه است، در درجه اول ناتوانی در دیدن کد منبع. شما فقط به فایل باینری دسترسی دارید.
نرم افزارهای منبع بسته به عنوان نرم افزارهای اختصاصی نیز شناخته می شوند. این به این دلیل است که توسعه دهندگان نرم افزار کد منبع را به عنوان اطلاعات خصوصی و اختصاصی در نظر می گیرند. از نظر آنها، فراهم کردن دسترسی به این کد برای هر کسی، به دیگران یک مزیت رقابتی می دهد: توانایی کپی و ویرایش آزادانه یک برنامه بدون نیاز به استخدام یک توسعه دهنده یا تیمی از توسعه دهندگان برای انجام همان کار.
مگر اینکه با استفاده از لینوکس بزرگ شده باشید، به احتمال زیاد اکثر نرم افزارهایی که با آن آشنا هستید منبع بسته هستند. کسب درآمد از این نوع نرم افزار آسان تر است و برای توسعه دهندگان برنامه های کوچک و شرکت های بزرگ جذاب است.
یکی دیگر از نشانه های حکایت کننده این است که آیا هنگام استفاده از یک برنامه برای اولین بار، باید با توافقنامه مجوز کاربر نهایی یا EULA موافقت کنید.
EULA و مجوزهای نرم افزار آزاد
کامپیوتر مانند اکثر ابزارها نیست. اینکه بتوانید ماوس را حرکت دهید یا صفحه لمسی را لمس کنید خیلی مهم نیست. اینکه میتوانید دکمههای روی صفحهکلید را فشار دهید یا به صفحهنمایش نگاه کنید ضروری است، اما نکته مهم نیست.
این کد است که مهم است. کد قابل تغییر است. کد را می توان کپی کرد. هیچ محدودیت ذاتی برای توانایی کسی برای سرهم بندی کردن و کپی کردن کد وجود ندارد. یک سازنده کامپیوتر مجبور نیست از شما بخواهد که از لپ تاپ خود کپی نکنید، زیرا این کاری نیست که اکثر مردم قادر به انجام آن نیستند. اما کپی کردن و توزیع مجدد نرمافزاری که روی رایانه قرار میگیرد کار سختی نیست، بنابراین در اینجاست که EULAهای محدودکننده وارد میشوند.
EULAها معمولاً دیوارهای متنی غولپیکری هستند که به زبان قانونی، آنچه را که میتوانید با نرمافزاری که میخواهید استفاده کنید انجام دهید و نمیتوانید انجام دهید، توصیف میکنند. آنها عموماً از دیدن کد جلوگیری میکنند، کپیبرداری را غیرقانونی میدانند، از شما میخواهند مجوز یا کلید فعالسازی بخرید، و اغلب روشهای استفاده از نرمافزار در نظر گرفته شده بر خلاف شرایط خدمات را شرح میدهند.
مجوزهای نرم افزار رایگان نیازی به رضایت قراردادی شما ندارند و در عوض به شما می گویند که در بیشتر موارد، می توانید هر کاری که می خواهید با برنامه و کد آن انجام دهید. برخی از مجوزهای رایگان، مانند مجوز عمومی عمومی گنو، مجوزهای کپی لفت در نظر گرفته می شوند. محدودیت اصلی آنها در رفتار شما این است که هر برنامه ای که با استفاده از کد موجود تحت GPL ایجاد می کنید، تحت مجوز GPL نیز در دسترس باشد.
مجوزهای دیگر، مانند مجوز MIT، مجوزهای مجاز در نظر گرفته می شوند و این الزام را ندارند. در صورت تمایل می توانید کدهای دارای مجوز MIT را بگیرید و از آن برای ایجاد یک برنامه اختصاصی استفاده کنید.
چگونه این شما را تحت تاثیر قرار می دهد
مجوز نرم افزار نرم افزاری که استفاده می کنید تعیین می کند که چه کاری می توانید در رایانه خود انجام دهید.
اگر یک برنامه انحصاری دارای یک باگ است یا آرزو می کنید که ای کاش ویژگی خاصی داشت، تنها راه حل شما این است که به توسعه دهنده نرم افزار اطلاع دهید و امیدوار باشید که کاری در مورد آن انجام دهد. با نرم افزار رایگان، اگر دانش فنی دارید، آزاد هستید که خودتان تغییر را ایجاد کنید. اغلب اوقات، حتی اگر درک درستی از کد نداشته باشید، احتمال زیادی وجود دارد که شخصی آنلاین بخواهد همین کار را انجام دهد، یا متوجه همان مشکل شده باشد، و دستورالعملهایی در مورد نحوه تنظیم برنامه ارائه کرده باشد.
اما اکثریت قریب به اتفاق مردم تمایلی به خواندن کد یا تغییر برنامه ها ندارند. بنابراین آیا این بدان معناست که این موضوع بر اکثر مردم تأثیر نمی گذارد؟ به ندرت. چند زمینه اصلی نگرانی رو به رشد وجود دارد که در آنها نرم افزار منبع بسته و نرم افزار منبع باز با شما بسیار متفاوت رفتار می کنند:
دسته بندی
نرم افزار متن باز
نرم افزار متن بسته
هزینه
تقریباً همیشه برای شما رایگان است که می توانید بدون پرداخت پول از آن استفاده کنید.
احتمال اینکه هزینه بیشتری داشته باشد. هنگامی که نرم افزار اختصاصی به صورت رایگان ارائه می شود، اغلب خطر وجود دارد. توسعهدهندگان و ناشران معمولاً از این برنامه به روشی متفاوت درآمد کسب میکنند، چه از طریق نمایش تبلیغات، ردیابی رفتار شما، پنهان کردن نرمافزارهای ناخواسته (گاهی مخرب) روی رایانه شما یا ترکیبی از این سه.
حریم خصوصی
معمولاً بیشترین نرم افزاری است که می توانید از حریم خصوصی استفاده کنید. اگر شخصی سعی کند یک برنامه منبع باز را به اشتراک بگذارد که حریم خصوصی شما را نقض می کند، شخص دیگری متوجه می شود و یک نسخه را با حذف تمام ردیابی ها به اشتراک می گذارد. خطر بحث و جدل و آسیب به شهرت اغلب برای جلوگیری از جمعآوری دادههای اولیه تشخیصی که در بین نرمافزارهای اختصاصی رایج است، از سوی توسعهدهندگان نیز کافی است.
اغلب نحوه استفاده شما از برنامه را ردیابی می کند. در دستگاههای تلفن همراه، این امری عادی است که برنامهها مکان شما و برنامههای دیگری را که روی تلفن خود نصب کردهاید، نگه دارند. برخی به لیست مخاطبین شما نگاه می کنند یا فایل های شما را اسکن می کنند.
امنیت
مزایای این واقعیت است که بسیاری از چشم ها می توانند کد را ببینند. در حالی که این تضمین نمی کند که بسیاری از چشمان واقعاً کد را در هنگام برخورد یک اکسپلویت مشاهده می کنند، هر کسی که مجموعه مهارت را داشته باشد می تواند در رفع مشکل کمک کند و شما می توانید تأیید کنید که مشکل برطرف شده است.
نرم افزارهای منبع بسته اغلب به مدل امنیتی به نام امنیت از طریق مبهم متکی هستند. این کار بازیگران بد را از یافتن آسیبپذیریها و ایجاد اکسپلویت باز نمیدارد. و اگر توسعهدهنده نرمافزار شما را از این اکسپلویتها آگاه کند، چون نمیتوانید کد برنامه را ببینید، نمیتوانید تأیید کنید که آیا مشکل برطرف شده است. باید به اعتماد ادامه داد.
به روز رسانی ها
بهروزرسانیها ممکن است بیشتر طول بکشد، زیرا توسعه نرمافزار اغلب به داوطلبان وابسته است. از طرف دیگر، برنامهها و توزیعها تمایل دارند تا سالها، اگر نه دههها، از سختافزار پشتیبانی کنند.
گاهی اوقات سریعتر می رسد زیرا اغلب تیمی از کارمندان برای کار تمام وقت روی یک پروژه دستمزد می گیرند. با این حال، زمانی که یک شرکت از کار خارج میشود یا تصمیم میگیرد که یک نرمافزار دیگر سودی ندارد، پشتیبانی نرمافزاری میتواند ناگهان پایان یابد. احتمال اجرای نسخه های جدید روی سخت افزارهای قدیمی بسیار کمتر است.
از چه نوع نرم افزاری باید استفاده کرد؟
بیشتر رایانه هایی که در فروشگاه های بزرگ پیدا می کنید با نرم افزارهای منبع بسته عرضه می شوند و همین امر در مورد تلفن ها نیز صادق است. افرادی که از نظر فنی بیشتر تمایل دارند می توانند سیستم عامل قفل شده خود را با یک جایگزین باز جایگزین کنند. برای دیگران، خرید آنلاین لپتاپ مبتنی بر لینوکس یا دانلود برنامههای منبع باز برای هر سیستم عاملی هنوز نسبتاً آسان است.
اما نرم افزارهای رایگان و متن باز با همان میزان بودجه ارائه نمی شوند و به طور کلی «همانطور که هست» ارائه می شوند. در حالی که این قابلیت برای بسیاری از موارد (اگر نه بیشتر) کاربرد دارد، موارد دیگری نیز وجود دارند که بهترین ابزار برای این کار فقط به شکل اختصاصی در دسترس هستند.