Linux-libre
| Linux-libre | |
| Информация | |
|---|---|
| Вид | ядро |
| Начална версия | 20 февруари 2008 г. |
| Последна версия | 6.18-gnu 1 декември 2025 г. |
| Лиценз | GPL-2.0 |
| Linux-libre в Общомедия | |
Linux-libre е модифицирана версия на ядрото Linux, изчистена от всички несвободни софтуерни компоненти.[1]
История
[редактиране | редактиране на кода]Според Алешандре Олива, водещо лице в проекта Linux-libre, активен член на проекта GNU и съосновател на Фондацията за свободен софтуер – Латинска Америка, към 1996 г., пет години след началото на Linux, в него започва да се появява несвободен код, най-вече в модулите за безжичен интернет и периферни устройства. „Проектът Linux не споделя ценностите на свободния софтуер“ – заявява той и отбелязва също, че много популярни GNU/Linux дистрибуции подвеждат потребителите, че са свободни, а всъщност не са.[1]
Поддръжката на Linux-libre изисква внимателно проучване на всяка версия на Linux, премахване на двоичните блокове и създаване на напълно безплатна версия на ядрото.[1]
Това е своеобразен манифест за изцяло свободен софтуер, който оспорва идеята, че удобството трябва да е за сметка на подчинението на частен софтуер.
Двоични данни, вмъкнати в проект с отворен код
[редактиране | редактиране на кода]Някои драйвери за ядрото на Linux включват блокове с двоични данни. Това е софтуер, който е включен без изходния си код, под лицензи за несвободен софтуер, които не позволяват неговата промяна.
Двоичните данни могат да бъдат предоставени като отделни файлове или да бъдат добавени в изходния код на самия драйвер като голям масив от числа.
Общ пример.
unsigned char binary_data[] = {
0x12, 0x34, 0x56 ...
};
Пример от ядрото Linux.[2] Файловете, съдържащи двоични данни, са с разширение *.bin. Те са фърмуер, който драйверът зарежда по време на изпълнение.
static uint at76_debug = DBG_DEFAULTS;
static DEFINE_MUTEX(fw_mutex);
static struct fwentry firmwares[] = {
[0] = { "" },
[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, за да работят. Допълнително предизвикателство е необходимостта от ръчно конфигуриране, което не е практичен избор за масовия потребител.[3]
Източници
[редактиране | редактиране на кода]- ↑ а б в Byfield, Bruce. The Linux-libre Project. Freeing the Linux Kernel // Linux Magazine. Посетен на 7 декември 2025.
- ↑ linux/drivers/net/wireless/atmel/at76c50x-usb.c at master · torvalds/linux // GitHub. Посетен на 7 декември 2025.
- ↑ Larabel, Michael. GNU Linux-Libre 4.2 Takes Aim At AMDGPU & Intel's DRM Drivers // Phoronix. 30 август 2015. Посетен на 7 декември 2025.