Срещнахме се със Steven Rostedt – един от основните разработчици на Linux Kernel. Той е в Technical Advisory Board на Linux Foundation. Стивън отговори на няколко въпроса след лекцията си в Софийския университет за ftrace и основите на обработването на kernel.
Какви качества трябва да притежава всеки разработчик, за да създава успешни pull requests?
Основните неща са, първо, добри change logs. Какво означава това? Първото нещо трябва да бъде основно еднолинейно описание на това, което правите, а след това външният change log е за това защо го правите, а протоколът за всеки change log трябва да бъде самостоятелен. Винаги казвам на хората, дори и преди няколко дни го казах на един човек, ако погледнете преди 5 години даден код, и ако получите обвинения в това, трябва да можете да погледнете този ангажимент, да четете промените и да знаете точно какво мислите, когато кодът е бил написан. Така че това са много важните неща за pull requests, да гледате change logs дневници, да обяснявате какво правите и защо сте го направили. По този начин някои хора ще видят кода и да кажат “Добре, просто това не съществува вече и мога да изтрия този код” или “Това зависи от това, това все още е зависимост”. Няма други основни неща, ако ме попитате.
Какви познания са необходими, за да работим по Linux Kernel като програмист?
Забавната част е, че въпросът е много странен, защото Linux kernel е доста огромен. Никой не знае всичко. Така че, зависи от това, в което си добър. Някои хора, като driver writers, може би знаят този драйвър, така че трябва да се познава това устройство. Не е нужно да знаете ядрото на kernel. Трябва да знаете за page tables и нещата, които споменах в лекцията ми в Софийски университет. Но освен това основно като дивелъпър на устройства трябва да знаете как работят те, да погледнете API, да погледнете другите устройства, които се смятат за добре написани и да ги моделирате след това. По принцип, знаейки вашите инструменти, на какво работите или какъв вид устройство ще се използва. Когато работите върху файлова система като основен разработчик, трябва да знаете много повече. Аз работя като основен разработчик в реално време на ftrace и трябва да знам за графика и всичко друго, така че знанията ми, трябва да са фокусирани върху всичко останало на операционната система, структурата на данните, оптимизациите, как работи компилаторът. Това е доста често в моята работа, но не всички разработчици трябва да го правят. Когато сте разработчик на kernel и не работите по машинен код, не е необходимо.
Може ли да дадеш някакъв съвет за начинаещите, които имат амбицията да работят на твоята позиция или нещо подобно?
За начинаещ програмист най-основното е да е отворен, да учи, да мисли извън кутията. Това е всичко, което всички казват. Ftrace е код, които се изпълнява постоянно и в момента. Хората казват “не можете да променяте изпълняващия се код”, но аз бях в състояние да го направя. Винаги се опитвайте да намерите това, в което сте любопитни. Погледнете как работят нещата. Разберете как работи, как го разширявате. Задавайте въпроси, прочетете форуми, участвайте и говорете с хора, намерете потребителски групи, говорете с други програмисти със същия интерес. Когато се върнах към първата си работа, започнах професионално, работех за Lockheed Martin като разработчик на бази данни по това време и започнах да се ровя с ядрото, започнах да разговарям с други разработчици на kernel и аз научих повече неща, докато просто си говоря с тях .Опитайте да намерите точните хора и започнете да говорите с тях и това е истинското учение. Разширете кръгозора си, не бъдете отшелници!
Можеш ли да опишеш работната си станция?
Всъщност е в YouTube. В канала на Linux Foundation направиха за Линус, за Грег и мен, както и за куп други хора. Всъщност може би е второто най-гледано. Иначе е голяма бъркотия, много глупости.
Какви са промените в общността на Linux след почивката и връщането на Lunus Torvalds?
Това е рано да се знае. Точно сега, Linus се е променил, едно нещо, което забелязах беше, че той се дръпна. Той никога не го е правил. Като промяна в общността не съм видял. Едно нещо, което е стресиращо, когато преглеждам общността на Linux, вече не е така. Наистина не можете да намерите нищо, което наистина е смятано за пример за лошо поведение и това беше проблемът преди. Какво се е променило? По принцип хората са малко по-предпазливи и малко по-осведомени, и това е хубаво нещо. Когато разберете, че сте в аквариум. Самата общност, ние, не трябва да се променяме, защото всъщност сме достигнали точка на доброта. А и Linus, казват хората, че той трябва да се промени. Много други хора са се променили преди него.
Как би коментирал закупуването на Red Hat от IBM?
Работил съм в Red Hat 10 години. След това се присъединих към VMWare. Твърде е рано да се каже. Това ще бъде много интересно независимо от решението, което Red Hat ще вземе. Sussie все още е Sussie, тя е придобита няколко пъти. Проектът почти се провали, но след това се купи от някой друг. IBM прави ли това или IBM се опитва да си завира носа твърде много. Всъщност зависи от това колко IBM се опитва да контролира Red Hat или какво бих казал, за IBM, за да успее трябва да финансира проектите с отворен код, които разработва Red Hat. Повече финансиране, повече възможности да наемат хора, за да привлекат повече хора зад проекта и ако го направят, това ще бъде много положително. Red Hat ще стане огромен претендент. IBM трябва да субсидира Red Hat, а не да се опитва да поеме контрола върху него. Ако се опитат да поемат контрола, могат да го унищожат. Така че точно сега не знам какво ще стане, но това са начините.