Histori personale · SmileyOS
SmileyOS një vit më vonë: kur një projekt hobi fillon të duket si produkt i vërtetë
Nga një premtim i dështuar me AI dhe një “Hello World” te një sistem operativ me gjuhën e vet, App Store, lojëra dhe mjete mësimore — dhe një plan që kompjuterët e vjetër të bëhen sërish të dobishëm.
Nga Nikola Gjorgiev · · 9 min lexim


Pothuajse një vit më parë, IT.mk tregoi historinë e përpjekjes sime për të krijuar një sistem operativ nga zero. Atëherë flisnim për 100.000 rreshta kodi. Sot për mua ka më shumë rëndësi një pyetje tjetër: a mund të bëhet ky sistem diçka vërtet e dobishme për fëmijët?
Nuk dua që kjo të jetë histori për edhe një aplikacion tjetër. SmileyOS është një sistem operativ i pavarur, i shkruar në Rust, me kernel dhe ndërfaqe grafike të veta. Nuk është shpërndarje e Linux-it. Dhe ende është në zhvillim — me shumë gjëra që funksionojnë dhe shumë të tjera që duhen përfunduar.
SmileyOS është projekti im personal dhe i pavarur, që e zhvilloj në kohën e lirë. Nuk lidhet me detyrat e mia të punës, as me projektet apo produktet e Abysalto. Ndoshta pikërisht për këtë më intereson kaq shumë: gjatë ditës punoj me teknologji moderne aplikacionesh, ndërsa në kohën e lirë merrem me kernele, memorie, drajverë dhe harduer.
Kush qëndron pas SmileyOS?
Unë jam Nikola Gjorgiev, inxhinier softueri me origjinë nga Shën Nikolla, ndërsa sot jetoj dhe punoj në Shkup. Pikërisht në Shën Nikollë, që fëmijë, fillova të mësoj vetë programimin dhe të pyes veten si funksionon një sistem operativ. Ndër vite kam punuar në lojëra, web, aplikacione desktop dhe mobile. Sot punoj si Senior React/React Native Developer në Abysalto, pjesë e grupit King ICT.
Nga një ide e shkollës së mesme te një sfidë pesëminutëshe
Diku në vitet 2005–2006, si nxënës i shkollës së mesme në Shën Nikollë, më pëlqente më shumë të gërmoja në C++ sesa të luaja lojëra. Lexoja për kernele, drajverë dhe asembler, shpesh pa e kuptuar plotësisht atë që lexoja. Por ideja për një sistem operativ timin mbeti.
Njëzet vjet më vonë, në një diskutim të nxehtë me kolegët për AI dhe programimin, thashë me vetëbesim se me një prompt të vetëm mund të fitohet një sistem operativ bare-metal për pesë minuta. E provuam. Kodi u gjenerua — sistemi nuk funksionoi. Kështu premtova se brenda një jave do të shfaqte “Hello World”.
Pas një jave kisha diçka më shumë: terminal, ndërfaqe minimale, editor dhe Snake në një makinë virtuale. Ai ishte momenti kur eksperimenti filloi të shndërrohej në projekt.

Makina virtuale ishte pjesa e lehtë
Përballja e parë e vërtetë me realitetin erdhi kur vendosa ta nis SmileyOS në një laptop të vjetër. Ajo që funksiononte në emulator nuk do të thoshte se do të funksiononte me kontrollues të vërtetë, me memorie të vërtetë dhe drajverë të vërtetë. Pasuan muaj leximi, eksperimentesh dhe debugging-u, derisa arrita te SmileyOS 1.0.

Në një moment bëra qëllimisht një pauzë. Doja të vendosja me sy të freskët nëse kjo kishte kuptim apo thjesht po harxhoja kohë me një hobi të pazakontë. Kur u ktheva, kuptova se ana më interesante e projektit ndoshta nuk është se është një “OS i ri”, por se mund të punojë në harduer shumë të dobët.
Mënyra më e çuditshme e debugging-ut
Vetëm drajverët USB më morën muaj. Meqë nuk kisha një mënyrë të rehatshme për të nxjerrë log-et nga sistemi, herë pas here i fotografoja mesazhet në ekran me telefon, i analizoja me AI dhe provoja sërish. Pas iteracionesh të panumërta vendosa që fillimisht të ndërtoja logim në rrjet përmes UDP, për t’i lexuar log-et në kohë reale. Kjo ma lehtësoi edhe punën me drajverët.
Këtu AI më ndihmoi shumë, por nuk ishte buton magjik. Kodi i gjeneruar nuk do të thotë drajver i saktë. Duhen vendime arkitekturore, kuptim i harduerit dhe durim për të zbuluar pse diçka nuk funksionon.
Çfarë mund të bëjë në të vërtetë SmileyOS sot?
Sot SmileyOS ka mjedis grafik pune, skedarë, terminal, mundësi rrjeti, App Store të vetin dhe SDK për aplikacione. Ndryshimi më i madh, megjithatë, është se fillova ta formësoj si sistem edukativ: nga klikimi i parë, përmes rreshtit të parë të kodit, deri te loja e parë e krijuar vetë.
Nën kapak gjenden edhe sistemi im i skedarëve SMFS, drajverë për pajisje periferike dhe një stack rrjeti. Terminali ka dhjetëra komanda, dhe në developer mode mund të bëhet mjedisi kryesor i punës. Në Code Sandbox fëmijët mund të ndjekin ekzekutimin e kodit dhe gjendjen e memories, me shpjegime për sintaksën dhe mundësi ndihme nga AI kur ajo lejohet.

Smilium është gjuhë programimi që e zhvillova për fillestarë. Në Code Sandbox fëmijët mund ta ndjekin programin hap pas hapi, në vend që thjesht të marrin një rezultat pa ditur çfarë ndodhi.

Pastaj vjen Gamely2D — një mjet me të cilin mund të krijohen skena, personazhe, rregulla dhe lojëra. Qëllimi nuk është të zëvendësojë softuerin profesional për zhvillim lojërash, por ta bëjë hapin e parë më të kuptueshëm.




Përveç programimit, ka edhe aplikacione për dokumente, vizatim, prezantime, muzikë, gjeografi dhe astronomi. Edhe loja 3D Turbo vizatohet nga procesori, pa u mbështetur te një kartë grafike e fuqishme.
E gjithë karriera ime, e mbledhur në një sistem operativ
Në një farë mënyre, SmileyOS u bë një retrospektivë e karrierës sime deri tani, e shndërruar në një mjedis ku një fëmijë mund të zbulojë të njëjtat gjëra që më magjepsnin mua kur rritesha.
Këtu janë edhe Smilium IDE për zhvillimin e aplikacioneve të vërteta vizuale dhe Slidely për prezantime. Nuk dua që fëmijët vetëm të përdorin programe të gatshme; dua të kuptojnë si krijohen, e pastaj të bëjnë të tyret.

Ka edhe një aplikacion më të ri që për mua është veçanërisht personal: Beatly. Në rini eksperimentoja duke bërë muzikë në FL Studio dhe Cubase. Nuk e prisja që edhe kjo përvojë të më kthehej vite më vonë — këtë herë si mjet me të cilin fëmijët do të mund të krijojnë ritmet dhe melodinë e tyre në SmileyOS.
Përvojën me zhvillimin e lojërave e solla në Gamely2D. Vitet me ndërfaqe përdoruesi duken te komponentët e përbashkët të UI-së dhe te Sketchly, aplikacioni për vizatim dhe dizajn. Ndërsa përmes Code Sandbox dhe Smilium IDE përpiqem t’ua lehtësoj fëmijëve hapat e parë që unë duhej t’i zbuloja vetë.
Sa më shumë e zhvilloj SmileyOS, aq më shumë kuptoj se në të përfundon pothuajse gjithçka që kam mësuar dhe punuar në rreth njëzet vitet e fundit. Përpjekjet e para me programim në moshën dymbëdhjetë vjeç, periudha kur bëja lojëra, pastaj aplikacione web, mobile dhe desktop — të gjitha tani kanë vendin e tyre në një platformë të vetme.
Klasë që nuk ka nevojë të jetë online
Që në fillim ishte e rëndësishme për mua që SmileyOS të jetë i dobishëm edhe pa internet. Me Classroom, kompjuterët në një rrjet lokal mund të shkëmbejnë mesazhe, të marrin pjesë në sondazhe dhe kuize dhe të ndajnë përmbajtje. Kjo hap mundësi për shkollat që nuk kanë infrastrukturë të mirë interneti.

Për më të vegjlit ka një ndërfaqe më të thjeshtë me butona të mëdhenj, ndërsa për prindërit janë parashikuar kontrolle për aplikacionet, internetin dhe AI-në. Ideja është që kompjuteri të jetë vend për krijim, jo një feed i pafund me reklama.

Pse pikërisht kompjuterë të vjetër?
Sot, për shumë fëmijë kompjuteri i parë është shpenzim serioz. Nga ana tjetër, nëpër shtëpi dhe shkolla ka makina të vjetra, por funksionale. SmileyOS është projektuar të niset nga një USB dhe të punojë me vetëm 256 MB RAM, në harduer të përputhshëm. Sistemi zë rreth 20 MB — gjë që e bën interesant për ripërdorimin e makinave që përndryshe do të përfundonin si mbetje elektronike.
Paralelisht e testoj edhe në Raspberry Pi. Prej këtu lindi edhe ideja për një laptop tonin me kosto të ulët, SBOOK, dhe një kompjuter të vogël, SBOX. Ato janë ende koncepte dhe prototipe, jo produkte të gatshme. Së pari dua ta përfundoj dhe ta testoj softuerin, e pastaj të shoh cili harduer ka më shumë kuptim.

Çfarë vijon?
Plani për fazën e ardhshme është që SmileyOS ta provojnë më shumë njerëz jashtë mjedisit tim të zhvillimit. Po përgatis qasje të hershme, po mendoj për një botim në USB me një libër mësimi dhe po kërkoj partnerë për testim dhe zhvillim të mëtejshëm. Në faqen e internetit mund të regjistroheni për early access, dhe është në dispozicion edhe një version më i vjetër që niset në shfletues.
Nuk pres që SmileyOS të zëvendësojë Windows, macOS apo Linux. Do të isha i kënaqur nëse një fëmijë me një kompjuter të vjetër arrin të shkruajë programin e tij të parë, të bëjë një lojë dhe të kuptojë se teknologjia nuk është vetëm diçka që e konsumojmë — por diçka që mund ta krijojmë.

