Cyjon OS

3

Zoptymalizowałem kod obsługujący interfejs (GUI) aplikacji.

Interfejs kalkulatora zmniejszył się o 600 Bajtów
Interfejs konsoli o 32 Bajty.

Zmodyfikowano 33 pliki źródłowe systemu w tym 1291 linii kodu.

Mogę wrócić do programowania kalkulatora :D

2

Przepisałem cały kod związany z bibliotekami... teraz są ogólnie dostępne (programy/usługi nie muszą ich dołączać do swojego kodu).

Dopisałem około 390 linii kodu, dzięki czemu rozmiar systemu operacyjnego zmniejszył się z 64 KiB do 52 KiB :D

Najlepszy efekt widać po programie console z 7,23 KiB zmniejszył się do 1,83 KiB

Jestem w stanie zmniejszyć jeszcze kod całego systemu z 52 KiB do około 24 KiB poprzez kompresję, ale do programu rozruchowego Zero musiałbym dopisać procedury rozpakowujące.

6

Test biblioteki graficznej RGL - Raw Graphics Layer :]

0

@Akasei: Wow, jestem pod wrażeniem, dla mnie pisanie własnego systemu operacyjnego to czarna magia. Tym bardziej w assemblerze. Tylko dlaczego ten temat jest w Offtopic?! Przecież to jest jeden z najbardziej quality content na forum.

2

Małe problemy z implementacją przeźroczystości ;)

4

Uporałem się z przeźroczystością na całego.

Przeniosłem się na program rozruchowy Limine (wraz z protokołem Stivale).

Teraz obraz będzie posiadał tapetę na stałe.

https://blackdev.org/files/cyjon.raw

qemu-system-x86_64 -enable-kvm -drive format=raw,file=cyjon.raw -m 32 -rtc base=localtime

https://blackdev.org/shot/1708.png

0

Czym różni się Cyjon od Fern-Night? Da się uruchomić w miarę aktualną wersję bez kompilacji?

Chciałem sobie potestować Twój system operacyjny pod VirtualBoxem, ściągnąłem ISO Fern-Night (https://blackdev.org/files/fern-night.iso) i oto co osiągnąłem po uruchomieniu:

screenshot-20230104191413.png

0
Alley Cat napisał(a):

Czym różni się Cyjon od Fern-Night? Da się uruchomić w miarę aktualną wersję bez kompilacji?

Chciałem sobie potestować Twój system operacyjny pod VirtualBoxem, ściągnąłem ISO Fern-Night (https://blackdev.org/files/fern-night.iso) i oto co osiągnąłem po uruchomieniu:

screenshot-20230104191413.png

Zatem, działa. Manjaro Linux - VirtualBox 7.0.4 (konfiguracja https://blackdev.org/files/vbox_config.tar.gz)

https://blackdev.org/shot/vbox.png

Nie ma jeszcze co uruchamiać :) Cały czas grzebię pod maską.

Czym różni się Cyjon od Fern-Night?
Śpieszę z rozpiską:

  1. Cyjon powstał jako pierwszy (język Asemblera) i jego rozwój zakończył się pierwszej ery pod tym adresem https://github.com/CorruptedByCPU/Cyjon/tree/old
  2. Lotus-Effect był następcą, a dokładniej to przepisałem całe jądro systemu oraz Window Manager / Console / Shell pod język C.
  3. gdy uznałem, że efekt jest zadowalający to życie tchnąłem w Fern-Night, ale mając już cel tj.
    a. wszystkie programy i usługi w trybie ring3,
    b. obsługa dynamicznego linkowania bibliotek (koniec puchnących aplikacji),
    c. przejście na model Live, system będzie w pełni rezydował w pamięci RAM.
    3.1. gdzieś w tym samym czasie otrzymałem powiadomienie Please don't give up on assembly! #129,
  4. postanowiłem przepisać jądro Cyjon'a aby było w pełni kompatybilne z aplikacjami napisanymi dla Fern-Night (dodatkowo wszystko okomentować na angielski), nic tak nie cieszy jak program uruchomiony niezależnie od języka w którym zostało napisane jądro systemu (ale w dalszym ciągu w języku Asemblera ;)

Cyjon jest na licencji GPL-3.0, natomiast co do Fern-Night jeszcze nie zdecydowałem i pozostaje w związku zamkniętym.

Wszelkie modyfikacje jednego z systemów zostanie odzwierciedlone w drugim.

0
Akasei napisał(a):

Zatem, działa. Manjaro Linux - VirtualBox 7.0.4 (konfiguracja https://blackdev.org/files/vbox_config.tar.gz)

https://blackdev.org/shot/vbox.png

Nie ma jeszcze co uruchamiać :) Cały czas grzebię pod maską.

Już lepiej, bo zamiast jakichś śmieci pojawiła się tapeta :D

Jednak u mnie nie da się korzystać z myszy, kursor "skacze" z chyba dwusekundowym opóźnieniem, ale uruchamiam pod kontrolą VirtualBoxa pod Windows, może z tego wynika jakiś problem (chociaż Windows nie powinien być źródłem tego rodzaju problemów).

0

Odpaliłem sobie Lotus-Effect (https://blackdev.org/files/lotus-effect.iso) i jest lepiej, mysz działa normalnie.

Jak teraz odpalić shella jak na screenie?

screenshot-20230104235742.png

0

Widzę taki widok, jak teraz otworzyć shella?

Naciskanie backspace nie przynosi żadnych widocznych efektów.

screenshot-20230105001107.png

0

A więc, panie AKASEI-u, przesiadka na C? xD

0
markowy napisał(a):

A więc, panie AKASEI-u, przesiadka na C? xD

I bardzo dobrze :)

0

Ok, jest Assembler, jest C, czas na C++... ;P

0

aktualizacja 0.2139

w trakcie pisania silnika 3D

1

będzie ciężko...

image
image

3

naprawione, czas na przycinanie i operacje na kamerze

0

No nie! Jeszcze jajka nie skończył a już za 3D sie chyta! ;P
Na jakim etapie jest obsługa przerwań przętowych?
PIC?
APIC już przestarzały, tera zdajsie MSI króluje?...
Dyski IDE a nawet SATA(APIC) też już przestarzałe..
I co to bedzie?...
A tu jeszcze UEFI ciąży, ACPI się rozrósł...

3

Ściany obiektu są teraz wypełniane oraz uporałem się z buforem głębokości (zwiększona wydajność).

4

ok, przeprogramowałem jądro systemu (na razie tylko w C) i dodałem obsługę HPET (High Precision Event Timer), kontroler RTC (Real Time Controller) pójdzie w odstawkę (w przyszłości zostanie wycięty z procesorów).

dzięki tej operacji został uściślony przedział czasowy do wręcz idealnej sekundy (wcześniej czas obliczał APIC, który tykał ~1024 razy na częstotliwość procesora, bardzo niemiarodajna sekunda była ;)

po 5 minutach ustabilizowało się na wartości 263 FPS.

Qemu uruchomione z 8 procesorami logicznymi (tylko dlatego aby każdy z procesów posiadał własny AP) czyli silnik miał pełny przedział czasowy dla siebie

image

dobranoc

3

Hey!

Jako, że coraz mniej czasu mam by poświecać na system Cyjon/Fern-Night, pozwoliłem sobie udostępnić już w pełni obydwa repozytoria kodu źródłowego.

https://github.com/CorruptedByCPU/Cyjon Assembly Language
https://github.com/CorruptedByCPU/Fern-Night C Language

Nie liczę na jakąkolwiek pomoc w rozwijaniu ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1