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
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
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.
Test biblioteki graficznej RGL - Raw Graphics Layer :]
@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.
Małe problemy z implementacją przeźroczystości ;)
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
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:
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:
Zatem, działa. Manjaro Linux - VirtualBox 7.0.4 (konfiguracja https://blackdev.org/files/vbox_config.tar.gz)
Nie ma jeszcze co uruchamiać :) Cały czas grzebię pod maską.
Czym różni się Cyjon od Fern-Night?
Śpieszę z rozpiską:
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.
Akasei napisał(a):
Zatem, działa. Manjaro Linux - VirtualBox 7.0.4 (konfiguracja https://blackdev.org/files/vbox_config.tar.gz)
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).
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?
Widzę taki widok, jak teraz otworzyć shella?
Naciskanie backspace nie przynosi żadnych widocznych efektów.
A więc, panie AKASEI-u, przesiadka na C? xD
markowy napisał(a):
A więc, panie AKASEI-u, przesiadka na C? xD
I bardzo dobrze :)
Ok, jest Assembler, jest C, czas na C++... ;P
aktualizacja 0.2139
w trakcie pisania silnika 3D
będzie ciężko...
naprawione, czas na przycinanie i operacje na kamerze
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ł...
Ściany obiektu są teraz wypełniane oraz uporałem się z buforem głębokości (zwiększona wydajność).
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
dobranoc
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 ;)