لکه دودویی
یک لکه دودویی (به انگلیسی: binary blob)، درایور متن بستهای است که کد منبع آن در اختیار عموم قرار نگرفتهاست. این واژه بیشتر برای اشاره به درایورها و ماژولهای متن بستهای که در هسته سیستمعاملهای آزاد و بازمتن بارگذاری میشوند مورد استفاده قرار میگیرد. این واژه برای اشاره به کدهایی که در خارج از هسته سیستمعامل اجرا میشوند، مانند کدهای بایوس، برنامههای کاربر، سفتافزار و... مورد استفاده قرار نمیگیرد. واژه بلاب (شی بزرگ دودویی) اولین بار در سیستم مدیریت پایگاه داده برای اشاره به مجموعهای از اطلاعات دودویی که تحت یک موجودیت واحد ذخیره شدهاند، مورد استفاده قرار گرفت.
اگر تولیدکنندگان سختافزارها برای محصولات خود مستندات فنی لازم را فراهم کنند، توسعه دهندگان سیستمهای عامل قادر خواهد بود تا درایورهای سختافزاری را خودشان نوشته و آنها را در هسته سیستمعامل خود قرار دهند. با این حال برخی از تولیدکنندگان قطعات سختافزاری مانند انویدیا، مستندات و اطلاعات لازم از نحوه کارکرد قطعات سختافزاری خود را برای عموم منتشر نمیکنند و در عوض تنها یک درایور دودویی منتشر میکنند که دست توسعهدهندگان سیستمعامل را در بسیاری از موارد میبندد. این کار برای درایورهای شتابدهنده گرافیکی، کارت شبکه، کنترلرهای آرایه چندگانه دیسکهای مستقل و... بسیار متداول است.
پذیرش
برخی از سیستمعاملها مانند فریبیاسدی، نتبیاسدی، دراگونفلیبیاسدی و همچنین برخی از توزیعهای گنو/لینوکس که سعی در توسعه و ساخت یک سیستمعامل آزاد را دارند، در صورتی که مستندات مناسب برای سختافزارها یا کدهای منبع درایورها را دریافت نکنند، بلابهای باینری را قبول نمیکنند و از آنها استفاده نمیکنند.
پروژه اپنبیاسدی یک سیاست جالب توجه برای قبول نکردن بلابهای باینری و قرار ندادن آنها در کدهای منبع دارند. آنها معتقدند که بلابهای باینری نه تنها میتوانند باعث به وجود آمدن مشکلات امنیتی غیرقابل کشف و جبرانناپذیر شوند، بلکه پذیرش آنها باعث زیر سؤال رفتن آزادی نرمافزار آنها میشود.
بنیاد نرمافزارهای آزاد بهطور فعالانهای با بلابهای دودویی مبارزه میکند. این بنیاد همچنین سیاست اوپنبیاسدی را هم ناقص میداند، چرا که در جامعه بیاسدی «بلاب» تنها به درایورهای غیر آزاد اطلاق میشود، نه به firmwareهای غیر آزاد.
یکی از توسعهدهندگان هسته لینوکس به نام گرگ هارتمن مدعی است که منتشر کردن ماژولهای متنبسته به همراه هسته لینوکس (که تحت پروانه جیپیال منتشر میشود) کاری غیرقانونی است.
در اجتماع توسعه هسته لینوکس، لینوس توروالدز اظهارات صریحی در خصوص مشکل درایورهای باینری داشتهاست و اظهار داشته که «من حتی از فکر کردن در مورد اینکه دستم رو به برخی از ماژولهای باینری بزنم خودداری میکنم» و ادامه داد که «من میخوام به مردم بگم که اگه از درایورهای باینری استفاده میکنند، این مشکل خودشونه». در سال ۲۰۰۸، ۱۷۶ تن از توسعهدهندگان هسته لینوکس بیانیهای در رابطه با ماژولهای هسته لینوکس امضا کردند و در آن گفتند که «ما، توسعهدهندگان هسته لینوکس که این بیانیه را امضا کردهایم، هر نوع درایور یا ماژول متنبسته در هسته لینوکس را مضر و ناخوشآیند میدانیم... ما بارها به این نکته پی بردهایم که آنها برای کاربران، شرکتها و اکوسیستم لینوکس مضر هستند».
در هر صورت، هسته لینوکس حاوی لکههای دودویی زیادی است که عمدتاً firmware متنبستهای هستند که مورد نیاز درایورهای انحصاری هستند. الکساندر اولیوا (به انگلیسی: Alexandre Oliva) که مسئول نگهداری از هسته لینوکس-لیبره است (نسخهای از لینوکس که عاری از لکههای دودویی است)، در سال ۲۰۱۱ گفت «لینوکس از سال ۱۹۹۶ دیگر یک نرمافزار آزاد نبوده، وقتی که آقای توروالدز قبول کرد که اولین جز غیر آزاد وارد هستهای که سال ۱۹۹۱ منتشر میکرد، شود، در طی سالها، همانطور که این هسته با ضریبی از ۱۴ رشد میکرد، مقدار firmware غیر آزادی که مورد نیاز درایورهای انحصاری بودند، با ضریب ۸۳ رشد میکردند. ما کاربران نرمافزار آزاد، باید متحد شویم تا این روند را برعکس کنیم، و لینوکس-لیبره میتواند به عنوان بخشی از راه حل باشد که ویرایش linux-libre-4.2-gnu آن اخیراً توسط FSFLA منتشر شدهاست.
مشکلات
برخی از مشکلات لکههای دودویی عبارتاند از:
- شرکت سازنده میتواند هر وقتی که خواست، پشتیبانی از درایور و قطعات سختافزاری را قطع کند و دیگر آن قطعه را پشتیبانی نکند.
- توسعه دهندگان سیستمعاملها نمیتوانند از آن قطعه و درایور پشتیبانی کنند. چرا که آنها از نحوه کارکرد آن قطعه با خبر نیستند.
- توسعه دهندگان سیستمعاملها نمیتوانند مشکلات درایور را برطرف کنند. چرا که کدهای منبع درایور در دسترس نیست.
- بلابهای دودویی را نمیتوان بهبود داد و ارتقا بخشید.
- بلابهای دودویی ممکن است مشکلات امنیتی برای کاربر ایجاد کنند. چرا که هیچکس نمیداند دقیقاً آنها چکار میکنند و چه کدهایی را اجرا میکنند.
- بلابهای دودویی تنها بر روی یک معماری خاص اجرا میشوند. بنابراین آنها پرتابل نیستند.
جستارهای وابسته
منابع
- ↑ «Debian packages built from the source package 'firmware-nonfree' - Binary firmware for various drivers in the Linux kernel». ۲۰۱۰. دریافتشده در ۲۰۱۰-۰۳-۲۵.
- ↑ Matzan، Jem (۱۵ ژوئن ۲۰۰۵). «BSD cognoscenti on Linux». NewsForge. بایگانیشده از اصلی در ۲۳ مارس ۲۰۰۶. دریافتشده در ۳۰ سپتامبر ۲۰۱۳. 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?"
- ↑ Andrews, Jeremy (2006-05-02), "Interview: Theo de Raadt", KernelTrap, Jeremy Andrews, archived from the original on 3 June 2006, retrieved 30 September 2013
- ↑ «Protest against ATI nearly led to the arrest of RMS». Free Software Foundation. ۲۷ آوریل ۲۰۰۶. دریافتشده در ۲۰۰۶-۱۰-۱۰.
- ↑ "Explaining Why We Don't Endorse Other Systems" (به انگلیسی). GNU Project. July 13, 2011. Retrieved 2011-09-10.
- ↑ Greg Kroah-Hartman (۲۰۰۶). «Myths, Lies, and Truths about the Linux kernel». Linux Symposium.
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.
- ↑ Linus Torvalds, kernel mailing list, Feb 7, 1999.
- ↑ Greg Kroah-Hartman (ژوئن ۲۰۰۸). «A position statement on Linux Kernel Modules». Linux Foundation.
- ↑ http://www.gnu.org/distros/free-system-distribution-guidelines.html#nonfree-firmware.
- ↑ http://www.gnu.org/distros/common-distros.html.
- ↑ http://www.fsfla.org/ikiwiki/anuncio/2010-03-Linux-2.6.33-libre.en.
- ↑ «Blob!». The OpenBSD Project. دریافتشده در ۲۲ مه ۲۰۱۴.