Сите објави

Лична приказна · SmileyOS

SmileyOS една година подоцна: кога хоби проектот почнува да личи на вистински производ

Од едно неуспешно AI ветување и „Hello World“ до оперативен систем со сопствен јазик, App Store, игри и образовни алатки — и план како стар компјутер повторно да стане корисен.

Автор: Nikola Gjorgiev · · 9 мин. читање

Денешниот изглед на SmileyOS
Денешниот изглед на SmileyOS · Вистински screenshot од SmileyOS
Никола Ѓоргиев, авторот на SmileyOS
Никола Ѓоргиев · автор на SmileyOS

Пред речиси една година 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 — видеодневник на развојот · Гледај на YouTube ↗

Виртуелната машина беше лесниот дел

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

SmileyOS 1.0 — пресвртницата со вистински хардвер
SmileyOS 1.0 — пресвртницата со вистински хардвер · Гледај на YouTube ↗

Во еден момент намерно направив пауза. Сакав со свежи очи да одлучам дали ова има смисла или само трошам време на необично хоби. Кога се вратив, сфатив дека најинтересната страна на проектот можеби не е во тоа што е „нов OS“, туку во тоа што може да работи на многу слаб хардвер.

Најнеобичниот debugging workflow

Само USB драјверите ми одзедоа месеци. Бидејќи немав удобен начин да извлечам логови од системот, на моменти ги фотографирав пораките на екранот со телефон, ги анализирав со AI и повторно пробував. По безброј итерации решив прво да направам мрежно логирање преку UDP, за да ги читам логовите во реално време. Тоа ми ја олесни и работата на драјверите.

Тука AI ми помогна многу, но не беше магично копче. Генерираниот код не значи и исправен драјвер. Потребни се архитектонски одлуки, разбирање на хардверот и трпение да се открие зошто нешто не функционира.

Што всушност може SmileyOS денес?

Денес SmileyOS има графичка работна околина, датотеки, терминал, мрежни можности, сопствен App Store и SDK за апликации. Најголемата промена, сепак, е што почнав да го обликувам како образовен систем: од првото кликнување, преку првиот ред код, до првата сопствена игра.

Под хаубата се наоѓаат и сопствениот систем за датотеки SMFS, драјвери за периферни уреди и мрежен стек. Терминалот има десетици команди, а во developer mode може да стане главна работна околина. Во Code Sandbox децата можат да го следат извршувањето на кодот и состојбата на меморијата, со објаснувања за синтаксата и можност за AI помош кога таа е дозволена.

Code Sandbox: Smilium код и приказ на извршувањето чекор по чекор
Code Sandbox: Smilium код и приказ на извршувањето чекор по чекор · Вистински screenshot од SmileyOS

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

Gamely2D: сцени, објекти и развој на 2D игри
Gamely2D: сцени, објекти и развој на 2D игри · Вистински screenshot од SmileyOS

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

Покрај програмирањето, тука се и апликации за документи, цртање, презентации, музика, географија и астрономија. Дури и 3D играта Turbo се исцртува со процесорот, без да се потпира на моќна графичка картичка.

Целата моја кариера, собрана во еден оперативен систем

На некој начин, SmileyOS стана ретроспектива на мојата досегашна кариера, претворена во средина во која едно дете може да ги открие истите работи што мене ме фасцинираа додека растев.

Тука се и Smilium IDE за развој на вистински визуелни апликации и Slidely за презентации. Не сакам децата само да користат готови програми; сакам да разберат како се создаваат, а потоа да направат свои.

Beatly — апликација за создавање музика во SmileyOS
Beatly — креирање ритми и мелодии. И музиката од моите тинејџерски години најде место во SmileyOS.

Има и една понова апликација што за мене е посебно лична: Beatly. Во младоста експериментирав со правење музика во FL Studio и Cubase. Не очекував дека и тоа искуство ќе ми се врати години подоцна — овојпат како алатка со која децата ќе можат да создаваат свои ритми и мелодии во SmileyOS.

Искуството со развој на игри го пренесов во Gamely2D. Годините со кориснички интерфејси се гледаат во заедничките UI компоненти и во Sketchly, апликацијата за цртање и дизајн. А преку Code Sandbox и Smilium IDE се обидувам на децата да им ги олеснам првите чекори што јас морав да ги откривам сам.

Колку повеќе го развивам SmileyOS, толку повеќе сфаќам дека во него завршува речиси сè што сум учел и работел во последните дваесетина години. Првите обиди со програмирање на дванаесет години, периодот кога правев игри, па веб, мобилни и десктоп апликации — сето тоа сега има свое место во една иста платформа.

Училница без обврска да биде онлајн

Од самиот почеток ми беше важно SmileyOS да биде корисен и без интернет. Со Classroom, компјутери во локална мрежа можат да разменуваат пораки, да учествуваат во анкети и квизови и да споделуваат содржини. Ова отвора можности за училишта што немаат добра интернет инфраструктура.

Classroom: комуникација, квизови и активности во училница
Classroom: комуникација, квизови и активности во училница · Вистински screenshot од SmileyOS

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

Вградениот App Store за дополнителни апликации
Вградениот App Store за дополнителни апликации · Вистински screenshot од SmileyOS

Зошто токму стари компјутери?

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

Паралелно го тестирам и на Raspberry Pi. Оттука произлезе и идејата за сопствен евтин лаптоп, SBOOK, и мал компјутер SBOX. Тие сè уште се концепти и прототипи, не готови производи. Прво сакам да го довршам и тестирам софтверот, па да видам каков хардвер има најмногу смисла.

Концепт на SBOOK лаптоп
SBOOK — концепт за компјутер развиван околу SmileyOS, не финален производ

Што следува?

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

Не очекувам SmileyOS да ги замени Windows, macOS или Linux. Би бил задоволен ако едно дете со стар компјутер успее да ја напише својата прва програма, да направи игра и да сфати дека технологијата не е само нешто што го консумираме — туку нешто што можеме да го создадеме.