Лична приказна · SmileyOS
SmileyOS една година подоцна: кога хоби проектот почнува да личи на вистински производ
Од едно неуспешно AI ветување и „Hello World“ до оперативен систем со сопствен јазик, App Store, игри и образовни алатки — и план како стар компјутер повторно да стане корисен.
Автор: Nikola Gjorgiev · · 9 мин. читање


Пред речиси една година IT.mk ја раскажа приказната за мојот обид да создадам оперативен систем од нула. Тогаш зборувавме за 100.000 линии код. Денес ми е поважно друго прашање: може ли тој систем да стане нешто што навистина ќе им користи на децата?
Не сакам ова да биде приказна за уште една апликација. SmileyOS е независен оперативен систем, напишан во Rust, со сопствен кернел и графички интерфејс. Не е Linux дистрибуција. И сè уште е во развој — со многу работи што функционираат и со многу што допрва треба да се довршат.
SmileyOS е мој независен личен проект, кој го развивам во слободното време. Тој не е поврзан со моите работни задачи, проектите или производите на Abysalto. Можеби токму затоа ми е толку интересен: преку ден работам со модерни апликациски технологии, а во слободното време се занимавам со кернели, меморија, драјвери и хардвер.
Кој стои зад SmileyOS?
Јас сум Никола Ѓоргиев, софтверски инженер по потекло од Свети Николе, а денес живеам и работам во Скопје. Токму во Свети Николе, уште како дете, почнав сам да учам програмирање и да се прашувам како функционира еден оперативен систем. Низ годините работев на игри, веб, десктоп и мобилни апликации. Денес работам како Senior React/React Native Developer во Abysalto, дел од King ICT групацијата.
Од средношколска идеја до петминутен предизвик
Некаде во 2005–2006 година, како средношколец во Свети Николе, повеќе сакав да чепкам C++ отколку да играм игри. Читав за кернели, драјвери и асемблер, често без целосно да разбирам што читам. Но идејата за сопствен оперативен систем остана.
Дваесет години подоцна, на една жешка дискусија со колеги за AI и програмирањето, самоуверено реков дека со еден prompt може да се добие bare-metal оперативен систем за пет минути. Го пробавме. Код се генерираше — системот не работеше. Па ветив дека за една недела ќе прикаже „Hello World“.
По една недела веќе имав нешто повеќе: терминал, минимален интерфејс, едитор и Snake во виртуелна машина. Тоа беше моментот кога експериментот почна да се претвора во проект.

Виртуелната машина беше лесниот дел
Првото вистинско соочување со реалноста дојде кога решив SmileyOS да го стартувам на стар лаптоп. Она што работеше во емулатор не мораше да работи на вистински контролери, со вистинска меморија и вистински драјвери. Следеа месеци читање, експерименти и дебагирање, сè додека не стигнав до SmileyOS 1.0.

Во еден момент намерно направив пауза. Сакав со свежи очи да одлучам дали ова има смисла или само трошам време на необично хоби. Кога се вратив, сфатив дека најинтересната страна на проектот можеби не е во тоа што е „нов OS“, туку во тоа што може да работи на многу слаб хардвер.
Најнеобичниот debugging workflow
Само USB драјверите ми одзедоа месеци. Бидејќи немав удобен начин да извлечам логови од системот, на моменти ги фотографирав пораките на екранот со телефон, ги анализирав со AI и повторно пробував. По безброј итерации решив прво да направам мрежно логирање преку UDP, за да ги читам логовите во реално време. Тоа ми ја олесни и работата на драјверите.
Тука AI ми помогна многу, но не беше магично копче. Генерираниот код не значи и исправен драјвер. Потребни се архитектонски одлуки, разбирање на хардверот и трпение да се открие зошто нешто не функционира.
Што всушност може SmileyOS денес?
Денес SmileyOS има графичка работна околина, датотеки, терминал, мрежни можности, сопствен App Store и SDK за апликации. Најголемата промена, сепак, е што почнав да го обликувам како образовен систем: од првото кликнување, преку првиот ред код, до првата сопствена игра.
Под хаубата се наоѓаат и сопствениот систем за датотеки SMFS, драјвери за периферни уреди и мрежен стек. Терминалот има десетици команди, а во developer mode може да стане главна работна околина. Во Code Sandbox децата можат да го следат извршувањето на кодот и состојбата на меморијата, со објаснувања за синтаксата и можност за AI помош кога таа е дозволена.

Smilium е програмски јазик што го развив за почетници. Во Code Sandbox децата можат да го следат извршувањето на програмата чекор по чекор, наместо само да добијат резултат и да не знаат што се случило.

Потоа доаѓа Gamely2D — алатка со која може да се создаваат сцени, ликови, правила и игри. Целта не е да го замени професионалниот game-development софтвер, туку да го направи првиот чекор поразбирлив.




Покрај програмирањето, тука се и апликации за документи, цртање, презентации, музика, географија и астрономија. Дури и 3D играта Turbo се исцртува со процесорот, без да се потпира на моќна графичка картичка.
Целата моја кариера, собрана во еден оперативен систем
На некој начин, SmileyOS стана ретроспектива на мојата досегашна кариера, претворена во средина во која едно дете може да ги открие истите работи што мене ме фасцинираа додека растев.
Тука се и Smilium IDE за развој на вистински визуелни апликации и Slidely за презентации. Не сакам децата само да користат готови програми; сакам да разберат како се создаваат, а потоа да направат свои.

Има и една понова апликација што за мене е посебно лична: Beatly. Во младоста експериментирав со правење музика во FL Studio и Cubase. Не очекував дека и тоа искуство ќе ми се врати години подоцна — овојпат како алатка со која децата ќе можат да создаваат свои ритми и мелодии во SmileyOS.
Искуството со развој на игри го пренесов во Gamely2D. Годините со кориснички интерфејси се гледаат во заедничките UI компоненти и во Sketchly, апликацијата за цртање и дизајн. А преку Code Sandbox и Smilium IDE се обидувам на децата да им ги олеснам првите чекори што јас морав да ги откривам сам.
Колку повеќе го развивам SmileyOS, толку повеќе сфаќам дека во него завршува речиси сè што сум учел и работел во последните дваесетина години. Првите обиди со програмирање на дванаесет години, периодот кога правев игри, па веб, мобилни и десктоп апликации — сето тоа сега има свое место во една иста платформа.
Училница без обврска да биде онлајн
Од самиот почеток ми беше важно SmileyOS да биде корисен и без интернет. Со Classroom, компјутери во локална мрежа можат да разменуваат пораки, да учествуваат во анкети и квизови и да споделуваат содржини. Ова отвора можности за училишта што немаат добра интернет инфраструктура.

За најмалите постои поедноставен интерфејс со големи копчиња, а за родителите се предвидени контроли за апликации, интернет и AI. Идејата е компјутерот да биде место за создавање, не бесконечен feed со реклами.

Зошто токму стари компјутери?
Денес за многу деца првиот компјутер е сериозен трошок. Од друга страна, по домовите и училиштата има стари, но исправни машини. SmileyOS е дизајниран да стартува од USB меморија и да работи со само 256 MB RAM, на компатибилен хардвер. Системот зафаќа околу 20 MB — што го прави интересен за повторна употреба на машини што инаку би завршиле како електронски отпад.
Паралелно го тестирам и на Raspberry Pi. Оттука произлезе и идејата за сопствен евтин лаптоп, SBOOK, и мал компјутер SBOX. Тие сè уште се концепти и прототипи, не готови производи. Прво сакам да го довршам и тестирам софтверот, па да видам каков хардвер има најмногу смисла.

Што следува?
Планот за следната фаза е SmileyOS да го пробаат повеќе луѓе надвор од мојата развојна околина. Подготвувам ран пристап, размислувам за USB издание со книга за учење и барам партнери за тестирање и понатамошен развој. На веб-страницата има пријавување за early access, а достапна е и постара верзија што може да се стартува во прелистувач.
Не очекувам SmileyOS да ги замени Windows, macOS или Linux. Би бил задоволен ако едно дете со стар компјутер успее да ја напише својата прва програма, да направи игра и да сфати дека технологијата не е само нешто што го консумираме — туку нешто што можеме да го создадеме.

