Cyjon OS

CorruptedByCPU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 210
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

CorruptedByCPU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 210
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.

CorruptedByCPU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 210
6

Test biblioteki graficznej RGL - Raw Graphics Layer :]

maszrum
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 219
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.

CorruptedByCPU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 210
2

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

CorruptedByCPU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 210
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

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

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

Alley Cat
  • Rejestracja: dni
  • Ostatnio: dni
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

CorruptedByCPU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 210
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.

Alley Cat
  • Rejestracja: dni
  • Ostatnio: dni
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).

Alley Cat
  • Rejestracja: dni
  • Ostatnio: dni
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

Alley Cat
  • Rejestracja: dni
  • Ostatnio: dni
0

Widzę taki widok, jak teraz otworzyć shella?

Naciskanie backspace nie przynosi żadnych widocznych efektów.

screenshot-20230105001107.png

MA
  • Rejestracja: dni
  • Ostatnio: dni
0

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

Alley Cat
  • Rejestracja: dni
  • Ostatnio: dni
0
markowy napisał(a):

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

I bardzo dobrze :)

MA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
0

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

CorruptedByCPU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 210
0

aktualizacja 0.2139

w trakcie pisania silnika 3D

CorruptedByCPU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 210
1

będzie ciężko...

image
image

CorruptedByCPU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 210
3

naprawione, czas na przycinanie i operacje na kamerze

MA
  • Rejestracja: dni
  • Ostatnio: dni
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ł...

CorruptedByCPU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 210
3

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

CorruptedByCPU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 210
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

CorruptedByCPU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 210
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 ;)

CorruptedByCPU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 210
0

Mały update.

Pełna obsługa środowiska graficznego bez użycia myszki jest dostępna :)

  • TAB[SHIFT] - wybór elementu okna,
  • SPACE - zatwierdzenie wybranego elementu,
  • Menu/Windows Key - wyświetlenie menu systemu,
  • ESC - standardowa akcja -> koniec wykonywania programu (w oknie).
  • ALT+TAB - zmiana aktywnego okna.

Aktualnie walczę z elementem typu INPUT, później bedzie TABLE/LIST (niezbędne dla File Manager).

image

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.