Сите објави

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

SmileyOS 1.0 – offline едукативен оперативен систем за учење програмирање и „враќање во живот“ на старите компјутери

Како од љубопитност за AI алатките, за еден месец и околу 50.000 линии Rust код, настана SmileyOS 1.0 — offline оперативен систем за учење програмирање и првата верзија што проработи на вистински лаптоп.

Автор: Nikola Gjorgiev · · 6 мин. читање · 1 прегледување

SmileyOS 1.0 на Dell Inspiron 910
SmileyOS 1.0 на Dell Inspiron 910, првиот вистински уред · Од видеото на YouTube
Никола Ѓоргиев, авторот на SmileyOS
Никола Ѓоргиев · автор на SmileyOS

Овој текст првпат го објавив на LinkedIn на 2 декември 2025. SmileyOS 1.0 е првата верзија што проработи на вистински хардвер — на еден стар Dell Inspiron 910.

Последните месец дена, паралелно со работата и останатите обврски, тивко во заднина започнав да работам на еден проект што беше зачнат од чиста љубопитност и едно прашање:

„Дали AI алатките за програмирање се толку моќни што можат да помогнат да се направи еден цел bare-metal оперативен систем за една недела?“

Одговорот, еден месец подоцна и околу 50.000 линии Rust код, се вика SmileyOS v1.0. 😊

SmileyOS 1.0 — првиот тест на вистински уред, Dell Inspiron 910
SmileyOS 1.0 — првиот тест на вистински уред, Dell Inspiron 910 · Гледај на YouTube ↗

Што е SmileyOS?

SmileyOS 1.0 е 🖥️ offline едукативен оперативен систем, дизајниран за деца, почетници и љубопитни тинејџери, наменет да работи на стари лаптопи и десктопи кои обично собираат прашина некаде во домот.

Наместо тој стар компјутер да заврши во отпад, идејата е да стане 👉 безбедна, фокусирана околина за учење програмирање — без интернет, без реклами и без нотификации.

Како настана идејата?

Одамна сакав да видам:

  • до каде може да се „истера“ еден проект ако главен copilot ти е AI,
  • и колку далеку може да се оди со vibe coding пристап: идеја → опис → AI → код → итерации.

Почнав со мали чекори: bootloader, текстуален терминал, Snake игра… и постепено проектот прерасна во цел bare-metal OS во Rust, со сопствен графички систем, сопствен фајл систем и цел мини екосистем околу него.

Првично, воопшто не го замислив како оперативен систем за деца. Почнав како чист технички експеримент – „да видиме до каде може да се стигне со Rust + AI алатки и bare-metal OS“.

Додека стигнав до верзија 0.8, веќе имав kernel, графика, неколку игри и системски алатки – и токму тогаш ми „кликна“ дека од ова може да излезе офлајн едукативен оперативен систем за деца и тинејџери, наместо само уште еден side-project за девелопери. Од тој момент целиот фокус ми се смени: да биде разбирлив, безбеден, детски пријатен и реално да може да се користи за учење програмирање на стар хардвер кој инаку би собирал прашина.

Што има во SmileyOS 1.0?

Во верзија 1.0 SmileyOS веќе не е само „инженерски експеримент“, туку нешто што реално може да се користи за учење. Неколку работи однатре:

🧠 Smilium – јазик за програмирање за деца

Направив сопствен едноставен јазик, Smilium, дизајниран да изгледа разбирливо за почетник, а истовремено да воведува реални концепти: променливи, услови, циклуси, функции, па дури и едноставни игри.

@core
@shell
@system

number target;
number guess;
number attempts;
boolean won;

outLine("=====================");
outLine(" NUMBER GUESS GAME  ");
outLine("=====================");

rand(target, 1, 50);
attempts = 0;
won = false;

outLine("Guess 1-50");
outLine("You have 7 tries!");
outLine("");

while(won == false){
    if(attempts >= 7){
        outLine("Game Over!");
        out("Number was: ");
        outLine(target);
        won = true;
    }
    else{
        outLine("Your guess:");
        in(guess);
        attempts = attempts + 1;

        if(guess == target){
            outLine("");
            outLine("CORRECT!");
            won = true;
        }
        else if(guess < target){
            outLine("Higher!");
        }
        else{
            outLine("Lower!");
        }
    }
}

Smilium има два режима:

  • Shell Mode – текстуални програмчиња (квизови, калкулатори, игри со погодување број…)
  • Game Mode – едноставен 2D свет со 160×120 пиксели, 16 бои, спрајтови и контроли.
@core
@game
@system

number px = 65;
number py = 100;
number pw = 30;

number bx = 80;
number by = 20;
number bsize = 8;
number bdy = 2;
number score = 0;
number lives = 3;
boolean gameOver = false;

func update() {
    if (gameOver) {
        clearScreen(2);
        drawText("GAME OVER!", 40, 40, 1, 1);
        drawText("Score:", 48, 58, 1, 1);
        drawText(toStr(score, 0), 98, 58, 5, 1);
        return;
    }

    clearScreen(4);

    if (keyDown("left")) {
        px = px - 6;
    }
    if (keyDown("right")) {
        px = px + 6;
    }

    if (px < 0) {
        px = 0;
    }
    if (px > screenWidth - pw) {
        px = screenWidth - pw;
    }

    by = by + bdy;

    if (by > screenHeight) {
        lives = lives - 1;
        by = 20;
        rand(bx, 10, 142);
        if (lives <= 0) {
            gameOver = true;
        }
    }

    if (by > py - bsize) {
        if (bx > px - bsize) {
            if (bx < px + pw) {
                score = score + 1;
                by = 20;
                rand(bx, 10, 142);
            }
        }
    }

    fillRect(0, 0, screenWidth, 14, 14);
    drawText("Score:", 5, 3, 1, 1);
    drawText(toStr(score, 0), 53, 3, 5, 1);
    drawText("Lives:", 85, 3, 1, 1);
    drawText(toStr(lives, 0), 135, 3, 2, 1);

    fillRect(px, py, pw, 6, 2);
    fillRect(bx, by, bsize, bsize, 5);
}

✏️ Вграден IDE со лекции

SmileyOS доаѓа со вграден Smilium IDE, каде децата можат:

  • да пишуваат код со syntax highlighting,
  • да ја гледаат програмата во живо,
  • и да следат структурирани лекции – чекор по чекор, од „Hello World“ до целосна мини-игра.

🎮 Игри и креативни алатки

За да не биде само „суво“ програмирање, внатре има и:

  • класични игри (Snake, Breakout, Type Attack за тастатура и сл.),
  • едноставна Paint апликација,
  • Text editor и мал file manager,
  • и, нормално, вистински терминал со основни команди.

Сето ова работи целосно офлајн.

Зошто офлајн и зошто стар хардвер?

Искрено верувам дека:

  • децата имаат потреба од фокусирано дигитално опкружување – без алгоритми што влечат внимание,
  • стариот хардвер може да стане најдобар училник за програмирање, наместо да заврши на депонија.

SmileyOS е обид стар лаптоп да се претвори во „coding playground“ за деца и да се создаде простор каде компјутерот е алатка, а не само машина за бесконечно скролање.

Технички детали за љубопитните

За оние што ги интересира „под хауба“:

  • SmileyOS е bare-metal OS, не е Linux дистро, нема underlying Windows/Ubuntu.
  • Напишан е целосно во Rust, со сопствен kernel, графички слој и фајл систем.
  • Поддржува multitasking (повеќе апликации во исто време).
  • Моментално таргетира x86_64, а во план ми е и Raspberry Pi / RISC-V поддршка.

Ова е мој мал обид да покажам што може да се направи кога ќе споиш љубопитност, ентузијазам, AI алатки и еден стар лаптоп што никој не го користи. 🙂

Едно искрено прашање

Ако ја продолжам оваа приказна, дали би ви вредело да вложите 2–3000 денари во иднината на вашите деца – а за возврат да добиете комплет физички едукативен пакет кој би вклучувал:

  • 🟡 SmileyOS на USB, подготвен за стар лаптоп или десктоп
  • 📚 вистински печатени книги, не PDF – прирачници за Terminal/Shell
  • 🧩 печатена книга за вовед во програмирање, чекор по чекор
  • 🎮 и уште една книга за напредно програмирање на игри во истото тоа опкружување

Искрено ме интересира – дали ваков пакет би го купиле за вашите деца, внуци или ученици?