لکه دودویی

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو

یک لکه دودویی (به انگلیسی: binary blobدرایور متن بسته‌ای است که کد منبع آن در اختیار عموم قرار نگرفته است. این واژه بیشتر برای اشاره به درایورها و ماژول‌های متن بسته‌ای که در هسته سیستم‌عاملهای آزاد و بازمتن بارگذاری می‌شوند مورد استفاده قرار می‌گیرد. این واژه برای اشاره به کدهایی که در خارج از هسته سیستم‌عامل اجرا می‌شوند، مانند کدهای بایوس، برنامه‌های کاربر، سفت‌افزار و... مورد استفاده قرار نمی‌گیرد. واژه بلاب (شی بزرگ دودویی) اولین بار در سیستم مدیریت پایگاه داده برای اشاره به مجموعه‌ای از اطلاعات دودویی که تحت یک موجودیت واحد ذخیره شده‌اند، مورد استفاده قرار گرفت.

اگر تولیدکنندگان سخت‌افزارها برای محصولات خود مستندات فنی لازم را فراهم کنند، توسعه دهندگان سیستم‌های عامل قادر خواهد بود تا درایورهای سخت‌افزاری را خودشان نوشته و آنها را در هسته سیستم‌عامل خود قرار دهند. با این حال برخی از تولیدکنندگان قطعات سخت‌افزاری مانند انویدیا، مستندات و اطلاعات لازم از نحوه کارکرد قطعات سخت‌افزاری خود را برای عموم منتشر نمی‌کنند و در عوض تنها یک درایور دودویی منتشر می‌کنند که دست توسعه‌دهندگان سیستم‌عامل را در بسیاری از موارد می‌بندد. این کار برای درایورهای شتاب‌دهنده گرافیکی، کارت شبکه، کنترلرهای آرایه چندگانه دیسک‌های مستقل و... بسیار متداول است.[۱]

پذیرش[ویرایش]

برخی از سیستم‌عامل‌ها مانند فری‌بی‌اس‌دی، نت‌بی‌اس‌دی، دراگون‌فلی‌بی‌اس‌دی و همچنین برخی از توزیع‌های گنو/لینوکس که سعی در توسعه و ساخت یک سیستم‌عامل آزاد را دارند، در صورتی که مستندات مناسب برای سخت‌افزارها یا کدهای منبع درایورها را دریافت نکنند، بلاب‌های باینری را قبول نمی‌کنند و از آنها استفاده نمی‌کنند.[۲]

پروژه اپن‌بی‌اس‌دی یک سیاست جالب توجه برای قبول نکردن بلاب‌های باینری و قرار ندادن آنها در کدهای منبع دارند. آنها معتقدند که بلاب‌های باینری نه تنها می‌توانند باعث بوجود آمدن مشکلات امنیتی غیر قابل کشف و جبران ناپذیر شوند، بلکه پذیرش آنها باعث زیر سوال رفتن آزادی نرم‌افزار آنها می‌شود.[۳]

بنیاد نرم‌افزارهای آزاد به طور فعالانه‌ای با بلاب‌های دودویی مبارزه می‌کند.[۴] این بنیاد همچنین سیاست اوپن‌بی‌اس‌دی را هم ناقص می‌داند، چرا که در جامعه بی‌اس‌دی «بلاب» تنها به درایورهای غیر آزاد اطلاق می‌شود، نه به firmwareهای غیر آزاد.[۵]

یکی از توسعه‌دهندگان هسته لینوکس به نام گرگ هارتمن مدعی است که منتشر کردن ماژول‌های متن‌بسته به همراه هسته لینوکس (که تحت پروانه جی‌پی‌ال منتشر می‌شود) کاری غیر قانونی است.[۶]

در اجتماع توسعه هسته لینوکس، لینوس توروالدز اظهارات صریحی در خصوص مشکل درایورهای باینری داشته است و اظهار داشته که «من حتی از فکر کردن در مورد این‌که دستم رو به برخی از ماژول‌های باینری بزنم خودداری می‌کنم» و ادامه داد که «من می‌خوام به مردم بگم که اگه از درایورهای باینری استفاده می‌کنند، این مشکل خودشونه».[۷] در سال ۲۰۰۸، ۱۷۶ تن از توسعه‌دهندگان هسته لینوکس بیانیه‌ای در رابطه با ماژول‌های هسته لینوکس امضا کردند و در آن اظهار داشتند که «ما، توسعه‌دهندگان هسته لینوکس که این بیانیه را امضا کرده‌ایم، هر نوع درایور یا ماژول متن‌بسته در هسته لینوکس را مضر و ناخوش‌آیند می‌دانیم... ما بارها به این نکته پی برده‌ایم که آنها برای کاربران، شرکت‌ها و اکوسیستم لینوکس مضر هستند».[۸]

در هر صورت، هسته لینوکس حاوی لکه‌های دودویی زیادی است که عمدتاً firmware متن‌بسته‌ای هستند که مورد نیاز درایورهای انحصاری هستند.[۹][۱۰] الکساندر اولیوا (به انگلیسی: Alexandre Oliva) که مسئول نگهداری از هسته لینوکس-لیبره است (نسخه‌ای از لینوکس که عاری از لکه‌های دودویی است)، در سال ۲۰۱۱ گفت «لینوکس از سال ۱۹۹۶ دیگر یک نرم‌افزار آزاد نبوده، وقتی که آقای توروالدز قبول کرد که اولین جز غیر آزاد وارد هسته‌ای که سال ۱۹۹۱ منتشر می‌کرد، شود، در طی سال‌ها، همان‌طور که این هسته با ضریبی از ۱۴ رشد می‌کرد، مقدار firmware غیر آزادی که مورد نیاز درایورهای انحصاری بودند، با ضریب ۸۳ رشد می‌کردند. ما کاربران نرم‌افزار آزاد، باید متحد شویم تا این روند را برعکس کنیم، و لینوکس-لیبره می‌تواند به عنوان بخشی از راه حل باشد که ویرایش 2.6.33-libre آن اخیراً توسط FSFLA منتشر شده است که همراه با آن آزادی، بهینه‌سازی‌های عمده و برنامه‌هایی برای آینده آورده شده است.[۱۱]

مشکلات[ویرایش]

برخی از مشکلات لکه‌های دودویی عبارت‌اند از:[۱۲]

  • شرکت سازنده می‌تواند هر وقتی که خواست، پشتیبانی از درایور و قطعات سخت‌افزاری را قطع کند و دیگر آن قطعه را پشتیبانی نکند.
  • توسعه دهندگان سیستم‌عامل‌ها نمی‌توانند از آن قطعه و درایور پشتیبانی کنند. چرا که آنها از نحوه کارکرد آن قطعه با خبر نیستند.
  • توسعه دهندگان سیستم‌عامل‌ها نمی‌توانند مشکلات درایور را برطرف کنند. چرا که کدهای منبع درایور در دسترس نیست.
  • بلاب‌های دودویی را نمی‌توان بهبود داد و ارتقا بخشید.
  • بلاب‌های دودویی ممکن است مشکلات امنیتی برای کاربر ایجاد کنند. چرا که هیچ‌کس نمی‌داند دقیقاً آنها چکار می‌کنند و چه کدهایی را اجرا می‌کنند.
  • بلاب‌های دودویی تنها بر روی یک معماری خاص اجرا می‌شوند. بنابراین آنها پرتابل نیستند.

جستارهای وابسته[ویرایش]

منابع[ویرایش]

  1. «Debian packages built from the source package 'firmware-nonfree' - Binary firmware for various drivers in the Linux kernel». 2010. 
  2. Matzan، Jem. «BSD cognoscenti on Linux». NewsForge، 15 June 2005.  See Christos Zoulas's response to "Is sharing between Free/Open/NetBSD and the Linux kernel a common occurrence? And if so, does it go both ways?"
  3. Andrews, Jeremy (2006-05-02), Interview: Theo de Raadt, KernelTrap (Jeremy Andrews), archived from the original on 2006-06-03 
  4. «Protest against ATI nearly led to the arrest of RMS». Free Software Foundation، 27 April 2006. 
  5. “Explaining Why We Don't Endorse Other Systems”. GNU Project, July 13, 2011. 
  6. Greg Kroah-Hartman. «Myths, Lies, and Truths about the Linux kernel». Linux Symposium، 2006. «So, here's the simple answer to this issue: Closed source Linux kernel modules are illegal. That's it, it is very simple. I've had the misfortune of talking to a lot of different IP lawyers over the years about this topic, and every one that I've talked to all agree that there is no way that anyone can create a Linux kernel module, today, that can be closed source. It just violates the GPL due to fun things like derivative works and linking and other stuff. Again, it's very simple. Now no lawyer will ever come out in public and say this, as lawyer really aren't allowed to make public statements like this at all. But if you hire one, and talk to them in the client/lawyer setting, they will advise you of this issue.» 
  7. Linus Torvalds, kernel mailing list, Feb 7, 1999.
  8. Greg Kroah-Hartman. «A position statement on Linux Kernel Modules». بنیاد لینوکس. 
  9. . http://www.gnu.org/distros/free-system-distribution-guidelines.html#nonfree-firmware. 
  10. . http://www.gnu.org/distros/common-distros.html. 
  11. . http://www.fsfla.org/ikiwiki/anuncio/2010-03-Linux-2.6.33-libre.en. 
  12. «Blob!». The OpenBSD Project. بازبینی‌شده در ۲۲ مه ۲۰۱۴.