Cyjon OS

Odpowiedz Nowy wątek
2015-04-10 20:41
47

Programowanie może być ciekawe.

W pełni 64 bitowe jądro systemu jak i oprogramowanie oraz system plików.
W języku asemblera.

Wszystkie programy pisane własnoręcznie, nie są przenoszone z systemów GNU/Linux (tylko na nich wzorowane - wizualnie :)).

user image

Edytor tekstu "nano":

user image

Aby daleko nie szukać, poniżej paczka z obrazem systemu.

Aktualizacja 21.12.2015:

user image

Aktualizacja 3.1.2016:

user image
user image

Aktualizacja 5.1.2016:
Wykonałem trochę modyfikacji i teraz działa znacznie lepiej (znalazłem parę błędów) jak i się prezentuje.

user image

Aktualizacja 27.05.2016:
Obsługa protokołu ARP, IP i ICMP !

user image

Aktualizacja 11.06.2016:

Udało mi się nawiązać połączenie przez przeglądarkę, "stos" tcp/ip przyjmuje tylko jedno połączenie ;)
Teraz muszę wysłać dane do serwera httpd wraz z identyfikatorem połączenia.
Serwer wyśle odpowiedź do klienta(przeglądarka) i demon_tcp zakończy połączenie, oczekując na następne xD
user image

Aktualizacja 30.06.2016:

Udało się, mam serwer WWW, stos TCP/IP i system operacyjny... a wszystko w asemberze :D
user image

Aktualizacja 28.12.2016:

Niewiele zmieniło się z zew. punktu widzenia, ale pod maską jest już pełna obsługa wirtualnych konsol!
Powłoka otrzymała możliwość buszowania po systemie plików (w tym i każdy inny proces).
title

Aktualizacja 15.01.2017:

title
title
title

Aktualizacja 20.02.2017:

title

Aktualizacja 22.02.2017:

Aktualizacja 21.03.2017:

title

Aktualizacja 23.03.2017:


edytowany 15x, ostatnio: akasei, 2017-03-23 14:22
Unikałbym stosowania istniejących nazw własnych programów. Tak tylko piszę. Ogólnie bardzo fajnie. :) - Tacet 2015-04-11 00:24
Tak, zgadzam się... dopóki się z tym nie panoszę na lewo i prawo, mogę je stosować. Nazwy te zastosowałem by osoby postronne szybko się odnalazły. - akasei 2015-04-11 00:34
Powoli przepisuję "uproszczony" kod jądra systemu do GitHub, dodając masę komentarzy. - akasei 2015-04-11 18:00
Plik system.zip powyżej, nieaktualny. Najnowszą wersję zawsze można pobrać z GitHub. - akasei 2015-12-21 07:15

Pozostało 580 znaków

2017-03-13 21:26
0

Dobra, znalazłem winowajce... Linux ;) (joke)

A dokładnie to Windows > VirtualBox > Linux > Qemu > Cyjon OS taka incepcja źle wpływa na stabilność systemu :)
Qemu się gubi z obsługą myszki co daje Triple-Fault.
Bochs to nie robi różnicy, bo symuluje wszystko.
VirtualBox ma profesjonalne zarządzanie sprzętem + GuestAddons w pierwszej wirtualce, więc to go nie rusza.

Cyjon OS uruchomiony bezpośrednio na Windows + wirtualka, działa stabilnie.

Aktualizacja 16/03/2017
, cofam moje słowa, Qemu zwariował.

Jeśli ktoś ma możliwość sprawdzenia dlaczego wirtualka uruchomiła się ponownie:
http://wataha.net/files/kernel
http://wataha.net/files/disk.raw
http://wataha.net/files/disk.vdi
Poproszę zawartość rejestru RIP przed restartem lub zawartość stosu (z 256 Bajtów).


edytowany 8x, ostatnio: akasei, 2017-03-16 12:35

Pozostało 580 znaków

2017-03-21 13:44
2

Niewiele, dekodowanie pliku BMP.
Błąd restartu Qemu zlikwidowany.

title

Do pobrania:

Horizon Zero Dawn mam już za sobą, mogę się skupić na Cyjonie.


edytowany 2x, ostatnio: akasei, 2017-03-22 22:30
NADAL NIE DZIAŁA wataha.net. - Azarien 2017-03-22 11:22
Dajcie mi trochę czasu - i tak będę podpinał domenę na inny serwer (jeszcze konfiguruje), dodatkowo bedzie generator obrazów RAW i VDI jak i samego pliku jądra Cyjon. - akasei 2017-03-22 11:39
Nie mam pojęcia jak wykonać przeźroczystość na bazie kanału alfa, więc pomijam jego obsługę - akasei 2017-03-22 22:29
"www" przeniesione zostało na prywatny serwer, z wydzielonym łączem 50/50 Mbps/s - akasei 2017-03-22 22:33

Pozostało 580 znaków

2017-03-23 00:01
2
akasei napisał(a):

Nie mam pojęcia jak wykonać przeźroczystość na bazie kanału alfa, więc pomijam jego obsługę

Załóżmy że na piksel nieprzezroczystego tła R1,G1,B1 chcesz nałożyć piksel bitmapy R2,G2,B2,A2 z zachowaniem jego przezroczystości.
Załóżmy też, że wszystkie wartości są 8-bitowe, czyli 0..255.

Kolor wynikowego piksela wynosi (dla każdego kanału RGB tak samo):
·

G = G_2*A_2/255 + G_1*(255-A_2)/255

·
Jeżeli ta sama bitmapa będzie wielokrotnie nakładana, opłaca się pierwszą część operacji wykonać już podczas ładowania bitmapy do pamięci:
·

AG_2 = G_2*A_2/255

·
I tak przetworzoną bitmapę (AR2,AG2,AB2,A2) przechowywać. Nazywa się to PRGBA (P od “premultiplied”). Operacja nakładania jest wtedy trochę szybsza:
·

G = AG_2 + G_1*(255-A_2)/255

·

Wszystkie wartości oczywiście konwertujemy z 8 bitów na floating-point i odwrotnie. Czy to da się zrobić w całości na typach całkowitych to już zostawiam jako zadanie dla czytelnika ;-)

edytowany 1x, ostatnio: Azarien, 2017-03-23 00:03
@Azarien: o! ten wzór wczoraj znalazłem w dokumencie z uczelni na illinois, mam go już zaimplementowanego, ale pojawiają się artefakty, podjadę do jakiegoś kompa i wyśle screenshota. - akasei 2017-03-23 06:10
btw, zrobiłem na liczbach całkowitych, koprocesor na razie omijam jak wody święconej - akasei 2017-03-23 16:57

Pozostało 580 znaków

2017-03-23 10:36
0

@Azarien: jest OK :) po prostu do pamięci odłożyłem kolory w kolejności BigEndian, czli kod dobrze napisałem :D

Za to nie wpadłem na początku na pomysł PRGBA, zostosuję. Dzięki.


Pokaż pozostałe 3 komentarze
Czy na prawdę chcesz zaokrąglenia na oknach? Przemyśl to jeszcze... Tak jest ładniej http://wataha.net/shot/833a.png - jpacanowski 2017-03-23 16:49
@jpacanowski: staram się dobrze imitować Qt 4+ z motywem Oxygen - akasei 2017-03-23 16:51
mogę też zamiast krawędzi nałożyć teksturę na górną belkę "z efektem" zaokrąglenia w głąb ekranu, coś ala papirus - akasei 2017-03-23 17:07
@akasei: zrób efekt zwoju z rolkami po bokach ;-) http://i.imgur.com/RaULfFC.jpg kliknięcie rolki będzie zwijać okno. - Azarien 2017-03-23 20:39
@Azarien: chcesz smażyć bekon na procku ;> ? - akasei 2017-03-23 20:47

Pozostało 580 znaków

2017-03-23 12:40
1

Nie wytrzymałem do piątku ;) przeźroczystość w pełnej krasie.

title


słabo widać :P - babubabu 2017-03-23 13:21
@babubabu: wklej do GIMPa i powiększ 3200% :P - akasei 2017-03-23 13:31
Śliczny kursor - mogę dostać taki? - furious programming 2017-03-23 18:30

Pozostało 580 znaków

2017-03-23 14:19
2

@babubabu: proszę :P


Szacun. Wracam do mojego arkanoida :S - babubabu 2017-03-23 15:04
I ode mnie szacunek. Wracam do pisania mojej gry ;) http://jpacanowski.pl/phaser/part1.html - jpacanowski 2017-03-23 16:48

Pozostało 580 znaków

2017-03-23 20:55
0

@akasei: zauważyłem na powyższym filmiku, że nie można przesunąć okienka poza obszar pulpitu (tzn. fragmentu okna, nie całego, bo to by sensu nie miało). Uważasz, że to dobry pomysł, czy jeszcze czegoś w kodzie brakuje (co masz zamiar dopisać), że nie jest to obsługiwane?


edytowany 2x, ostatnio: furious programming, 2017-03-23 20:56

Pozostało 580 znaków

2017-03-23 21:06
0

@furious programming: Właśnie złapałeś mnie na dopisywaniu tego kodu w tym momencie ;)
Nie był priorytetem.


edytowany 1x, ostatnio: akasei, 2017-03-23 21:06
mam już przenoszenie okien nawet za ekran, jeszcze muszę dodać blokade na 1 piksel (aktualnie da się schować całe i już nie złapiesz za nie :D ) - akasei 2017-03-23 23:00
Właśnie miałem o tym napisać :P - furious programming 2017-03-23 23:19

Pozostało 580 znaków

2017-03-23 23:11
2

Proszę bardzo jest poza ekran:


Pozostało 580 znaków

wczoraj, 20:18
1

Zmiany na lepsze:

  • przeciąganie okien poza ekran, aż do widoczności tylko 1 piksela,
  • zlikwidowano błąd "puszczania" okna gdy za szybko poruszano kursorem
  • zlikwidowano błąd innych rozdzielczości niż 800x600 w GRUBie, zarazem nie będzie tapety (czarne tło) bark skalowania obrazów (jeszcze).

PS: teraz szukam algotrymu skalowania obrazów :)


edytowany 1x, ostatnio: akasei, wczoraj, 20:47
Czekam na kolejne wrzutki na YouTube. - furious programming wczoraj, 20:58
@furious programming: jeśli będzie coś wartego okazania, nie omieszkam - akasei wczoraj, 21:03

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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