لکه دودویی

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

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

## پذیرش
برخی از سیستم‌عامل‌ها مانند فری‌بی‌اس‌دی، نت‌بی‌اس‌دی، دراگون‌فلی‌بی‌اس‌دی و همچنین برخی از توزیع‌های گنو/لینوکس که سعی در توسعه و ساخت یک سیستم‌عامل آزاد را دارند، در صورتی که مستندات مناسب برای سخت‌افزارها یا کدهای منبع درایورها را دریافت نکنند، بلاب‌های باینری را قبول نمی‌کنند و از آن‌ها استفاده نمی‌کنند.

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

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

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

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

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

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

## جستارهای وابسته

* نرم‌افزار مالکیتی

## منابع

رده:اوپن‌بی‌اس‌دی
رده:فرهنگ و مستندات نرم‌افزار آزاد
رده:ناسزاها
رده:ناسزاهای مرتبط با فناوری
رده:بوت‌کردن
رده:درایورهای دستگاه
رده:سفت‌افزار