Направо към съдържанието

Linux-libre

от Уикипедия, свободната енциклопедия
Linux-libre
Информация
Видядро
Начална версия20 февруари 2008 г.;
преди 17 години
 (2008-02-20)
Последна версия6.18-gnu
1 декември 2025 г.;
преди 28 дни
 (2025-12-01)
Лиценз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]

  1. а б в Byfield, Bruce. The Linux-libre Project. Freeing the Linux Kernel // Linux Magazine. Посетен на 7 декември 2025.
  2. linux/drivers/net/wireless/atmel/at76c50x-usb.c at master · torvalds/linux // GitHub. Посетен на 7 декември 2025.
  3. Larabel, Michael. GNU Linux-Libre 4.2 Takes Aim At AMDGPU & Intel's DRM Drivers // Phoronix. 30 август 2015. Посетен на 7 декември 2025.