Твърди се, че бившите алкохолици и наркомани са най-усърдните трениращи в спортната зала – там те работят с всички сили. И това е наблюдение не само от сферата на спорта, но и от други области на живота. Ако хората са склонни към пристрастяване, то може да се прояви и в различни хобита, в които тези хора се потапят изцяло и напълно: работохолизъм, жени, хобита, гурме, колекциониране и т.н. Сякаш се отдават изцяло на всяко начинание.
Да вземем за пример шведския програмист Андреас Клинг. През 2018 г. той излиза от държавна клиника за рехабилитация на наркозависими след тримесечен курс – и като хоби започва да разработва операционната система SerenityOS. Имал нужда от нещо, с което да ангажира свободното си време и да се отърве от чуждите мисли. Създаването на нова операционна система е доста подходящо за такава задача.
Само за няколко години SerenityOS се превърна в един от най-големите проекти с отворен код в света с хиляди участници. Хубав интерфейс в стил 90-те години, ядро, подобно на Unix, и най-добрите идеи от други ОС – това е рецептата за успех.

Преди да създаде SerenityOS, Андреас Клинг има нормална кариера на разработчик, програмира на C++ за компании от различен мащаб, като работи за Nokia и Apple по енджина на браузъра WebKit. Отдалечената работа за Apple от Швеция води до нездравословни пристрастявания, а преместването в Калифорния и графикът от 10 до 22 часа влошават нещата. Понякога той употребявал алкохол и наркотици направо в офиса по време на обяда.
След завръщането си в Швеция и тримесечно лечение в клиника Андреас остава без работа.
„Без наркотици или други пороци, които да убиват времето, дните се разтягаха невероятно дълго“, пише той. – В крайна сметка се насочих към програмирането, тъй като то винаги е било основният ми интерес в живота“.
Дядо му имал в къщата си древен компютър от 2006 г., на който вентилаторът съсипвал дънната платка, но ако наклониш системния блок под определен ъгъл, той все пак можел да се стартира. В трезвия му живот програмирането станало различно, чувствал се като в детството си:
„Винаги съм се интересувал от неща от ниско ниво, затова започнах да си играя с някои от тях. Написах малък парсер на изпълними ELF файлове. След това браузъра на файловата система Ext2… И малък GUI фреймуърк с цикъл от събития… От тези проекти започна да се оформя операционната система“.
Всичко това се оказа изключително терапевтично. Андреас избира името Serenity („спокойствие“), за да си спомня винаги за едноименната молитва:

Основната идея е била да се създаде операционна система мечта за ежедневна употреба. Тя трябва да съчетава две компютърни парадигми: графичния потребителски интерфейс от 90-те години и идеалната Unix конзола от края на 2000-те години.
„Когато работех в Apple, много ми харесваше фактът, че по-голямата част от софтуера се създаваше вътре в компанията. Това не само позволяваше много тясна интеграция, но и правеше системата изключително удобна за разработчиците. Винаги можеше да намериш експерти някъде наблизо. Помислих си, че ще се опитам да пренеса същото нещо в света на отворения код, и реших, че SerenityOS няма да бъде мозайка от пакети на трети страни – не, ние ще напишем всичко сами! От ядрото до уеб браузъра и всичко между тях“.
След като Андреас си намира работа, той продължава да работи по проекта в свободното си време. До 2021 г., когато се появява възможността да напусне работа и да се посвети изцяло на любимата си кауза:
„Това стана възможно благодарение на изключително щедрата подкрепа, която получавам от вас чрез Patreon, спонсорите на GitHub и PayPal! Чувствам се много щастлив, че имам доверието и подкрепата на толкова много хора. Много ви благодаря!!!“
Към момента на прекратяването на договора му през 2021 г. Андреас е получавал малко над 2000 долара под формата на дарения на месец, както и хонорари от YouTube (150 долара на месец) и от продажби на мърчове на SerenityOS (100 долара). След това доходите постепенно се увеличават, достигайки 4200 долара през октомври 2022 г. и т.н. Главното е да правите това, което обичате да правите, като запазите психическото и физическото си здраве, и парите ще дойдат.

В Twitter той се изказва положително за Copilot като помощник за програмиране на C и C++. Като се има предвид огромният обем работа, когато на практика сам е създавал операционна система и браузър, при това от нулата, никоя помощ не би била излишна. Вероятно сега той използва други асистенти с изкуствен интелект за писане на по-опростения код, където не се изисква специален талант. Това може би отчасти обяснява невероятното му представяне.
В YouTube канала си Андреас обсъжда не само SerenityOS, но и други теми, свързани с програмирането, включително забавни истории от предишните си работни места, въпреки че през последните години традицията на „разговорите зад волана“ е прекратена. В тези издания той дава съвети как да останете фокусирани и да се концентрирате върху текущите задачи, така че да не изпадате в прокрастинация. Подобно на Линус Торвалдс, той предпочита да не използва дебъгер при разработката.
В едно интервю Андреас казва, че SerenityOS е просто начин той и всички, участващи в този проект, да се наслаждават на програмирането.
SerenityOS
През първите шест месеца Клинг работи сам, а след това пуска разработките онлайн и кани всички желаещи да участват. Първото предаване е от 18-ти октомври 2018 г. По това време хранилището е включвало четири компонента:
- Библиотеката за услуги AK;
- ELF програма за зареждане на изпълними файлове;
- парсер на файловата система ext2;
- прост инструментариум за графичен потребителски интерфейс върху SDL.
Това са били четири малки отделни проекта, с които Андреас се е занимавал на C++, просто за да запълни времето си и да намери отново себе си. Опитва се да напише и x86 ядро на C, но не се получава.
Първият скрийншот на това, което по-късно се превръща в SerenityOS:

Тестване на графичен потребителски интерфейс върху SDL в Linux:

Първо зареждане на GUI на собственото ядро, януари 2019 г:

Разработката върви с бързи темпове. През февруари авторът написва FontEditor и Clock и портва GNU bc:

След няколко дни добавя поддръжката на тапета и програмата Top:

… след това се появяват файловият мениджър и мениджърът на процеси, мрежовият стек, IRC клиентът, инструментът VisualBuilder за GUI програмиране, първият опит за пренасяне на GCC (частично успешен), графичният редактор PaintBrush, първата версия на браузъра и т.н. Разработката на всяка от горните програми отнема няколко дни или седмици. Всеки месец авторът публикува видеоотчет за извършената работа. Така протича първата година, след това втората, третата и т.н.

След анонса в Reddit новата екзотична операционна система придоби известност и популярност. Както беше споменато по-горе, Андреас напуска работата си през май 2021 г., за да посвети цялото си свободно време на разработката.
Един от скрийншотите от 2021 г:

След три години съществуване SerenityOS се превръща в проекта на живота му. Голяма общност от ентусиасти се включва в разработката.
Днес операционната система поддържа набора от инструкции x86-64, собствено ядро и много сложни приложения в пакета, включително собствения уеб браузър Ladybird и интегрирана среда за разработка (IDE).
SerenityOS има за цел да бъде модерна операционна система, подобна на Unix, с външен вид и усещане, напомнящи операционните системи от 90-те години на миналия век, като Windows и Mac OS от онова време. Включването на код на трети страни в системата не се насърчава; общоприето е всичко да се пише самостоятелно.
Така например уеб браузърът не използва съществуващ енджин като WebKit, а собствен LibWeb. Въпреки това има колекция от пренесен софтуер, включително GCC, Git и Doom, с различни нива на функционалност.

Разработката не се подчинява на график; няма версии като такива. Освен това не се разпространяват бинарни дистрибуции: от всички потребители се очаква да създадат системата от сорс кода.
Системата е написана на език, който авторът нарича Serenity C++ – вариант на C++, в който няма изключения и се използва собствена стандартна библиотека.
Като се има предвид значението на проекта за Андреас Клинг, беше изненадващо да научим, че през юни 2024 г. той обявява оставката си като „щедър пожизнен диктатор“ (BDFL).
Ladybird
Благодарение на помощта на ентусиасти през последните две години той успява да се съсредоточи почти изцяло върху разработването на браузъра Ladybird. От обикновен HTML браузър той се превърна в истински междуплатформен браузър (Linux, macOS и Windows под WSL). Сега Андреас се фокусира върху версията за Linux. Той е толкова погълнат от нея, че не може да си спомни кога е писал код за SerenityOS, който да не е свързан с Ladybird.
Както споменахме, Андреас е работил по енджина WebKit в Apple. В биографичния раздел на личния си уебсайт той пише: ако сега използвате някой браузър, „има голяма вероятност той да работи малко по-бързо благодарение на мен„. Тоест той има опит.
На теория Ladybird е напълно независим браузър със собствен нов енджин, който се базира на уеб стандартите. Но в момента той е в състояние на pre-alpha и е подходящ за използване само от разработчиците.

Така че сега общността на SerenityOS е разделена на две групи: тези, които работят по операционната система, и тези, които работят по браузъра. Ladybird вече се счита за пълноправен независим проект в ново хранилище с фокус върху Linux и macOS, а самата SerenityOS е изцяло под контрола на ентусиастите.
Разработването на съвременен браузър със собствен енджин е не по-малко предизвикателство от написването на собствена операционна система. Така например размерът на кодовата база на Chromium е по-голям от този на FreeBSD, включително LLVM. В света има десетки, ако не и стотици любителски ОС, които са написани от нулата за забавление, някои буквално за месец. Но има много по-малко междуплатформени браузъри. Някои казват, че в днешно време е почти невъзможно да се напише нов браузър от нулата. Андреас иска да докаже обратното. Въпреки че отнема много време, все пак е възможно, ако вършите работата стъпка по стъпка, като се движите неотклонно към целта. Както и преди, той публикува видеоклипове за изграждането на различни компоненти на браузъра, като например JIT компилатора за JavaScript.
Изглежда, че Андреас Клинг е загубил интерес към SerenityOS и се е концентрирал върху браузъра. Е, това е предимството на опенсорса, където можете сами да избирате какво да работите. Главното е, че хобито изпълнява терапевтичната си цел.
Всичко важно от света на технологиите, директно в пощата ти.
С абонирането приемате нашите Условия и Политика за поверителност. Може да се отпишете с един клик по всяко време.
Коментирайте статията в нашите Форуми. За да научите първи най-важното, харесайте страницата ни във Facebook, и ни последвайте в Google Новини, TikTok, Telegram и Viber или изтеглете приложението на Kaldata.com за Android, iPhone, Huawei, Google Chrome, Microsoft Edge и Opera!