Линукс (ядро)

от Уикипедия, свободната енциклопедия
Направо към: навигация, търсене
Емблема за пояснителна страница Тази статия е за ядрото на операционната система GNU/Linux. За самата операционна система вижте GNU/Linux.

Талисманът на Linux Тъкс
Linux
Екранен кадър от първоначално зареждане на GNU/Linux система

Linux (Линукс) е ядро за свободни операционни системи (ОС), подобни на UNIX. Ядрото е започнато от шведско-говорещия финландец Линус Торвалдс през 1991 г.

Създаването на ядрото Linux е вдъхновено от проекта GNU с основател Ричард Столман и от малката операционна система Minix на холандския професор Андрю Таненбаум.

Цялостна, работеща система се получава, едва когато към ядрото Linux се добавят огромен брой малки и по-големи приложни програми, създадени от проекта GNU и затова наричани „GNU софтуер“. От комбинацията между ядро Linux и програми на GNU идва името GNU/Linux за цялата операционна система, но по-често се нарича просто „Linux“.

Вижте GNU/Linux за допълнителна информация относно операционната система.

Правни аспекти[редактиране | редактиране на кода]

Лицензионни условия[редактиране | редактиране на кода]

Първоначално Торвалдс пуска ядрото Linux под лиценз, който забранява всякаква комерсиална употреба. От версия 0.12 обаче го променя на GNU General Public License (GPL). Този лиценз позволява разпространението и продажбата на модифицирани и немодифицирани версии на ядрото Linux, но същевременно изисква всички копия да бъдат разпространявани под същия лиценз и напълно съответстващия им изходен код.

Торвалдс описва лицензирането на Linux под GPL като „the best thing I ever did“ (в превод: „най-доброто нещо, което съм правил“ или „най-доброто решение, което съм взимал“).[1]

GPL версия 3[редактиране | редактиране на кода]

До момента Linux е лицензиран само под версия 2 на GPL, при това (за разлика от повечето GPL софтуер) без възможност за ползване на по-нова версия, заради което съществува спор върху това колко лесно може да се смени с по-нова версия на GPL като версия 3 (и дали това е желателно).[2] Самият Торвалдс специално отбеляза с излизането на версия 2.4.0, че неговият код е само под версия 2.[3] Все пак, според условията на GPL, ако не е определена точна версия, тогава може да бъде използвана всяка една, а Алън Кокс отбеляза, че много малко от другите разработчици на Linux са уточнили определена версия на GPL.[4] В един блог бе заключено, че около 40% от кодът на Linux е точно „GPL 2 или по-нов“, а друг, че приблизително 10% е „GPL“ (без определена версия), което прави общо около половината ядро. През септември 2006 г. допитване между 29 ключови програмисти на ядрото сочи, че 28 предпочитат версия 2 на GPL пред тогавашната чернова на версия 3 на GPL. Торвалдс коментира: „Мисля, че голям брой външни хора… смятаха, че лично аз съм черната овца, защото публично показвах, че не съм голям фен на версия 3 на GPL.“[5]

Допълнителни модули към ядрото и вграден софтуер[редактиране | редактиране на кода]

Спори се дали допълнителните модули към ядрото (англ. LKMs) трябва да се считат за производна творба според авторско правото, поради което да попада под условията на GPL. Торвалдс смята, че модулите, използващи ограничен, „публичен“ набор от интерфейсите на ядрото, могат понякога да бъдат считани за неавторски продукт, като по този начин се допуска употребата на някои затворени драйвери и други модули, които не са лицензирани под GPL. Не всички разработчици на Linux поддържат това, като дори самият Торвалдс се съгласява, че много допълнителни модули са чист авторски продукт и всъщност „модулите към ядрото 'по принцип' СА авторски“. От друга страна Торвалдс също казва, че „едно сиво петно, в частност, е нещо като драйвер, който първоначално е написан за друга операционна система (например напълно непроизводен на Linux продукт по произхода си). […] ТОВА е сивото петно и това е мястото, където аз лично смятам, че някои модули да не бъдат считани за авторски продукт, просто защото не са предназначени за Linux и не зависят от каквато и да била тенденция на Linux.“[6] По-разпалено се обсъждат драйверите, представляващи собственост. В краен случай, отговорът на тези въпроси може да бъде намерен от съд.

Един от споровете около лиценза на Linux са използваните в него „бинарни частици“ за поддръжката на някои устройства. Ричард Столман казва, че тези частици код правят Linux в частност несвободен софтуер и разпространението му дори може да е в разрез с GPL (който изисква на разположение „напълно съответстващия изходен код“).[7]

Търговска марка[редактиране | редактиране на кода]

Linux е регистрирана търговска марка на Линус Торвалдс в САЩ и някои други държави. Това се дължи на инцидент, в който някой си William Della Croce, Jr., нямащ нищо общо с Linux, регистрирал името, като впоследствие поискал заплащане за употребата му. Няколко Linux инвеститори наемат правна защита и завеждат иск срещу Дела Крос, който през 1998 г. се съгласява да даде марката на Торвалдс.

Технически характеристики[редактиране | редактиране на кода]

Архитектура[редактиране | редактиране на кода]

Ядрото на Linux е монолитно. Драйверите и кернел разширенията работят в системното ядро, с пълен достъп до наличния хардуер. Повечето от графичните среди в Linux не работят в ядрото, за разлика от Microsoft Windows например.

Kernel Panic[редактиране | редактиране на кода]

Kernel panic

В Linux системите 'kernel panic' е невъзстановима грешка в системното ядро, най-често вследствие на хардуерен проблем, като например повреда в микропроцесора, RAM паметта, хард-диска или друг компонент.

Преносимост[редактиране | редактиране на кода]

В началото Linux не е създаден да бъде преносим от една система към друга, но с развитието на технологиите и самата система това се променя, и в момента Linux е приспособен да работи към най-различни устройства като таблети, смартфони и т.н. До ноември 2010 г. Linux е операционната система на 91,8% от суперкомпютрите в света. Някои мобилни операционни системи като Android и Maemo (Nokia) използват модифицирани версии на Linux ядрото.

История на Linux ядрото[редактиране | редактиране на кода]

Версия 1.0 на Linux ядрото е пусната на 14 март 1994 г. Тя поддържа само еднопроцесорна x86 архитектура. Портативността на други системи се превръща в една от целите за бъдещите издания, и версия 1.2 (издадена на 7 март 1995 г.) върви на ALPHA, SPARC и MIPS архитектури.

Версия 2.0 се появява на бял свят на 9 юни 1996 г. и голямата промяна е поддръжката на много процесори в единична система.

Новостите във версия 2.2 (издадена на 26 януари 1999 г.) включват подобрена поддръжка на мултипроцесорни системи и read-only поддръжка на файловата система на Microsoft NTFS.

Версия 2.4.0 е пусната на 4 януари 2001 г. и включва поддръжка на 'Plug and Play' (PnP), USB и PCMCIA карти. В следващите издания от поредицата 2.4.х е добавена и поддръжка на Bluetooth, RAID и ext3 файлова система.

На 18 декември 2003 г. излиза версия 2.6.0. Серията 2.6 е активна и до ден-днешен. Промените спрямо предишни версии включват подобрена поддръжка на различни микропроцесори, интеграция на ALSA (Advanced Linux Sound Architecture) в системното ядро, PAE, 64-битови системи и др. През годините са интегрирани и новите версии на различни файлове системи като FUSE, JFS, XFS и ext4.

По случай 20-годишнината от създаването на Linux ядрото, Линус Торвалдс и разработчиците започват ново номериране на версиите, и така версия 3.0 излиза на 22 юли 2011 г. Текущата стабилна версия на ядрото е 4.3, излязла на 2 ноември 2015 г.

Сигурност[редактиране | редактиране на кода]

Сигурността на Linux ядрото е широко дискутирана тема. През годините са намерени (и в последствие поправени) пролуки, които позволяват DoS и други атаки. Като цяло обаче Linux се счита за много по-сигурна и трудна за хакерски атаки система, от Windows NT например.

Външни препратки[редактиране | редактиране на кода]

Източници[редактиране | редактиране на кода]

  1. Yamagata, Hiroo. The Pragmatist of Free Software. // HotWired, 1997. Посетен на 2007-02-21.
  2. Corbet, Jonathan. GPLv3 and the kernel. // LWN.net, 2006-01-31. Посетен на 2007-02-21.
  3. Torvalds, Linus. Linux-2.4.0-test8. // Linux-kernel mailing list archive. Unix Systems Support Group of Indiana University, 2000-09-08. Посетен на 2007-02-21.
  4. Cox, Alan. Re: GPL V3 and Linux. // Linux-kernel mailing list archive. LWN.net, 2006-01-20. Посетен на 2007-02-21.
  5. Shankland, Stephen. Top Linux programmers pan GPL 3. // News.com, September 25, 2006. Архив на оригинала от 2012-07-18. Посетен на 2007-02-21.
  6. Re: Linux GPL and binary module exception clause?
  7. Stallman, Richard. Linux, GNU, and freedom. // Free Software Foundation, 2006-10-11. Посетен на 2007-02-21.