Linux-libre е модифицирана версия на ядрото Linux, изчистена от всички несвободни софтуерни компоненти.
История Според Алешандре Олива, водещо лице в проекта Linux-libre, активен член на проекта GNU и съосновател на Фондацията за свободен софтуер – Латинска Америка, към 1996 г., пет години след началото на Linux, в него започва да се появява несвободен код, най-вече в модулите за безжичен интернет и периферни устройства. „Проектът Linux не споделя ценностите на свободния софтуер“ – заявява той и отбелязва също, че много популярни GNU/Linux дистрибуции подвеждат потребителите, че са свободни, а всъщност не са.
Поддръжката на Linux-libre изисква внимателно проучване на всяка версия на Linux, премахване на двоичните блокове и създаване на напълно безплатна версия на ядрото.
Това е своеобразен манифест за изцяло свободен софтуер, който оспорва идеята, че удобството трябва да е за сметка на подчинението на частен софтуер.
Двоични данни, вмъкнати в проект с отворен код Някои драйвери за ядрото на Linux включват блокове с двоични данни. Това е софтуер, който е включен без изходния си код, под лицензи за несвободен софтуер, които не позволяват неговата промяна.
Двоичните данни могат да бъдат предоставени като отделни файлове или да бъдат добавени в изходния код на самия драйвер като голям масив от числа.
Общ пример. unsigned char binary_data[] = { 0x12, 0x34, 0x56 ...
Пример от ядрото Linux. Файловете, съдържащи двоични данни, са с разширение *.bin. Те са фърмуер, който драйверът зарежда по време на изпълнение. static uint at76_debug = DBG_DEFAULTS;
static DEFINE_MUTEX(fw_mutex);
static struct fwentry firmwares[] = { = { "" }, [BOARD_503_ISL3861] = { "atmel_at76c503-i3861.bin" }, [BOARD_503_ISL3863] = { "atmel_at76c503-i3863.bin" }, [BOARD_503] = { "atmel_at76c503-rfmd.bin" }, [BOARD_503_ACC] = { "atmel_at76c503-rfmd-acc.bin" }, [BOARD_505] = { "atmel_at76c505-rfmd.bin" }, [BOARD_505_2958] = { "atmel_at76c505-rfmd2958.bin" }, [BOARD_505A] = { "atmel_at76c505a-rfmd2958.bin" }, [BOARD_505AMX] = { "atmel_at76c505amx-rfmd.bin" }, }; MODULE_FIRMWARE("atmel_at76c503-i3861.bin"); MODULE_FIRMWARE("atmel_at76c503-i3863.bin"); MODULE_FIRMWARE("atmel_at76c503-rfmd.bin"); MODULE_FIRMWARE("atmel_at76c503-rfmd-acc.bin"); MODULE_FIRMWARE("atmel_at76c505-rfmd.bin"); MODULE_FIRMWARE("atmel_at76c505-rfmd2958.bin"); MODULE_FIRMWARE("atmel_at76c505a-rfmd2958.bin"); MODULE_FIRMWARE("atmel_at76c505amx-rfmd.bin");
Недостатъци Радикалното премахване на компоненти със затворен код понякога води до ограничена хардуерна съвместимост, тъй като устройствата разчитат на затворени, несвободни или патентовани модули, особено при мрежови карти, видеокарти и Bluetooth, за да работят. Допълнително предизвикателство е необходимостта от ръчно конфигуриране, което не е практичен избор за масовия потребител.
Източници
Категория:Ядра на операционни системи