Митове, лъжи и истини за Linux ядрото OpenFest 2006 - Преди да премина към митовете и истините, нека разгледаме следните аспекти от развитието на ядрото - Бърз преглед на процеса на разработка - Малко съвременна история - Какво се очаква в бъдеще Бърз преглед на процеса на разработка Стабилни версии на всеки 2 до 3 месеца 2.6.16, 2.6.17, 2.6.18, 2.6.19... 2.6.x.y версии с критични поправки - Всяко ново 2.6.x ядро е главна версия включваща нови функционалности и множество вътрешни промени А 2.7 няма ли да има? Една година съвременна история http://kernelnewbies.org/LinuxChanges - 2.6.14 (27 октомври 2005 след 59 дни разработка) HostAP, DCCP, FUSE, v9fs - 2.6.15 (3 януари 2006 след 68 дни разработка) Hotplug memory support, iSCSI - 2.6.16 (20 март 2006 след 76 дни разработка) HR timers, OCFS2 - 2.6.17 (17 юни 2006 след 88 дни разработка) SPARC Niagara, uswsp, Broadcom 43xx wireless, On-the-fly RAID resizing - 2.6.18 (20 септември 2006 след 95 дни разработка) - Generic IRQ layer, New core time subsystem, Massive SATA updates, NO devfs, Randomize i386 vDSO - 2.6.19 (очаква се да излезе до седмица-две, очаквани дни разработка ~50) - GFS2, Ext4, eCryptfs, Libata PATA, AVR32 arch Малко статистика ... Какво се очаква в бъдеще? - Трудно е да се каже...защото най-малкото няма пет годишен план - Но все пак ще се облегна на нещата, които вероятно ще се случат и които по-запознати хора от мен предвиждат - Виртуализация / Контейнери - xen, uml - Контейнери - vserver, OpenVZ - Файлови системи - ext4, resiserfs4 - Хардуер - повечето хардуер "просто работи" - ...без CD-та с драйвери :-) - С изключение на - видео картите - wireless - Kernel space -> user space - udev, software suspend, security policies - Real Time (-rt tree) - Scalability - 512 CPu работи добре, 1024 е ок, скоро ще се поддържат до 4К процесора - Постоянно се работи по оптимизране на структурите от данни и алгоритмните в ядрото за да е more scalable От тук нататък лекцията ще е без сериозни технически подробности и ще прегледа основните митове свързани с Linux ядрото и няколко истини, които е добре да се знаят. Мит #1 Linux няма толкова драйвери като Windows - Навремето може и да е било истина, но това отдавна не е така. Ето малко факти в подкрепа на твърдението, че горното изказване е мит. Поддръжка на устройства Linux поддържа повече устройства "out of the box" от която и да е друга операционна система. - Да, точно така и не само че поддържа повече, но и в много случаи Linux е била първата OS поддържаща даден хардуер или функционалност. Тук мога да спомена: * USB 2.0 * Bluetooth * PCI Hotplug * CPU Hotplug * Memory Hotplug * Wireless USB * iSCSI * ATAoE * и много други... а обръщайки поглед към вградените устройства, които работят с Linux, то списъкът на поддържания хардуер се увеличава безобразно... Поддръжка на процесори и архитектури Linux поддържа повече процесори и архитектури от която и да е операционна система - Още преди няколко Linux надмина NetBSD в броят на поддържаните процесорни модели. никоя друга OS не стига дори близо до броят на поддържание платформи, които Linux поддържа. Linux е навсякъде, от върха на класацията Top 500 на най-бързите компютри, до вашият ръчен часовник, телефон, телевизор, хладилник и какви ли не странни устройства. - И не само това, но драйверите са споделени и работят на тези процесори и архитектури. - Linux е най-скалируемата и най-поддържана OS, която някога е съществувала. И става все по-добра... Мит #2 Разработчиците на Linux ядрото нямат план за развитие му! - Разработката на Linux не следва класическият софтуерен модел, на писане на спецификации, чакането всеки да се съгласи с тях и изпълнението им. Въпреки че в един такъв голям проект като Linux никой не е директор на другите и не им спуска задачи, нещата явно стават. - Дали пък това не се дължи на силата на модела за разработка на свободният софтуер следващ еволюционният модел на развитие? - ...или както самият Linus го е казал "Linux is evolution, not intelligent design". - Много хора това с еволюцията не го разбират, не искат да го разберат или просто не им харесва. Ядрото се развива първо един процесор, после още един, после кода се преработва така че да е по-общ, това позволява лесното добавяне на още архитектури, увеличава се гъвкавостта и т.н. Ядрото се променя когато има нужда да се промени, а заради лиценза му тези промени рано или късно се озовават при общият код. Всеки път когато код влиза в ядрото, той предизвиква преусмисляне на всички негови вътрешни връзки и от това ядрото еволюира и става по-добро. Разработчиците на ядрото обичат промените и при по-нататъшните слайдове ще видите за промени от какъв мащаб става въпрос при всяка нова версия. - Всъщност заради самият брой на промените и кодът, който влиза в ядрото може би сте чували оплаквания, че ядрото се движи твърде бързо и това пречи на някои, което пък води до мит #3 Мит #3 На Linux му трябва стабилно API, за да могат производителите да пишат драйвери. - За тези, които не знаят какво е API това е описание на начина по които компонентите на ядрото говорят помежду си, за да свършат нещо заедно. - В Linux няма стабилен вътрешен API и според разработчиците, да се иска такъв е не само глупаво но и ненужно ограничаващо. - Причините се за това мнение те са описали във файл наречен Documentation/stable_api_nonsense.txt - Нека, който има въпроси около стабилният вътрешен интерфейс, прочете този документ. - Примери защо стабилното API би било глупаво и ограничаващо - Linux USB stack - Windows USB stack - Security - От стабилно API имат ползва само затворените драйвери, което води и до следващата поредица от слайдове: Истина #1 Closed source драйверите за Linux са неетични и незаконни Никой няма полза от closed source драйверите освен техният производител, всички останали губим от тях Linux in a binary world http://lwn.net/Articles/162686/ Какво е хубаво да запомним от тази презентация - Linux има повече драйвери за повече устройства и процесорни архитектури от всеки друг OS - Затворените драйвери за Linux са незаконни и вредят на всички - Световната доминация е близо ;-) Тази презентация е базирана на The Kernel Report 2005 от Jonathan Corbet / LWN.net и Ottawa Linux Symposium 2006 Keynote от Greg Kroah-Hartman / SuSE labs / Novell