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, wczoraj, 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

2015-04-10 23:06
0

No ładnie to wygląda :)

Piszę od stycznia 2013r, z szerokimi odstępami - nie poświęcam tyle czasu ile bym mógł. - akasei 2015-04-10 23:40

Pozostało 580 znaków

2015-04-10 23:49
Złoty Terrorysta
0

Super sprawa, na pewno musiałeś poświęcić sporo czasu.
Na czym to odpalasz? Masz jakąś maszynkę wirtualną czy pod jakimś sprzętem?

Pozostało 580 znaków

2015-04-11 19:03
KijWMrowisku
0

@akasei - z jakich materiałów korzystałeś pisząc projekt? Pisałeś w czystym asemblerze czy również w C? Uruchomiłem system na wirtualce, wszystko bangla jak trzeba :] Graty za włożony wysiłek.

Najważniejsze informacje zostały mi łopatologicznie przedstawione na serwerach IRC, kanał #osdev.pl Tu muszę podziękować mangado http://mosesek.sourceforge.net/polski.html, za niezliczone próby wciśnięcia mi do głowy stronicowania i przełączania kontekstu. Pozostała część to własne boje z dokumentacjami. - akasei 2015-04-11 19:11
Pisałem, piszę i pisać będę w czystym języku asemblera. - akasei 2015-04-11 19:12
Ja też (będę) - Xix 2015-07-06 15:23

Pozostało 580 znaków

2015-04-11 19:15
0

przykładowe zadania:

  • obsługa myszki (naprościej będzie PS/2)
  • grafika (podstawowe tryby VGA/VESA na początek)
  • możliwość ładowania binarek skompilowanych w C

:)

edytowany 1x, ostatnio: Azarien, 2015-04-11 19:16

Pozostało 580 znaków

2015-04-11 19:26
KijWMrowisku
0

Nie wygodniej i szybciej byłoby to pisać w C?

Pozostało 580 znaków

2015-04-11 20:13
0
Azarien napisał(a):

przykładowe zadania:

  • obsługa myszki (naprościej będzie PS/2)
  • grafika (podstawowe tryby VGA/VESA na początek)
  • możliwość ładowania binarek skompilowanych w C

:)

Mam taki zarys w głowie:

  1. wersja x <= 1.0 tylko tryb tekstowy
  2. wersja 1.0 > x <= 2.0 dodana zostanie obsługa sieci
  3. wersja 2.0 > x <= 3.0 dodana zostanie obsługa trybu graficznego (najważniejszy będzie framebuffer, by uzyskać większe możliowości dla konsoli)

    KijWMrowisku napisał(a):

    Nie wygodniej i szybciej byłoby to pisać w C?

Nie :) Straciłbym pare lat na nauke języka w stopniu zadowalającym.

PS: 16.04.2015
Jeśli są osoby zaznajomione z językiem asemblera, proszę: https://github.com/Akasei/Cyjon
Przepisuję kod jądra systemu... powoli.

PS: 17.04.2015
Na serwerze GitHub jest już wystarczająca ilość kodu przeznaczona do kompilacji i uruchomienia jądra systemu w warunkach testowych.

PS: 17.04.2015 12:57
Sprawdziłem czy działa na prawdziwym sprzęcie, płyta główna D510MO + PENDRIVE
user image

Oczywiście to nic nie znaczy :) Bootloader nie posiada obsługi portów USB, tym zajął się BIOS.
Dodatkowo na prawdziwej maszynie po paru/kilku minutach wyskakuje informacja "Unhandled Hardware Interrupt!", co nie występuje na emulatorze. Zdawało mi się, że wyłączyłem pozostałe przerwania sprzętowe...


edytowany 5x, ostatnio: akasei, 2015-04-17 13:01
Jesteś niezłym pasjonatem jeżeli piszesz coś takiego ;) - Trebuh 2015-04-11 20:23
@Trebuh: Poprostu znalazłem hobby :] - akasei 2015-04-11 20:30
Nauka języka C w stopniu zadowalającym to jakiś tydzień nauki jak się uprzesz ;) Chyba najlepszy tutek w Internecie po polsku https://pl.wikibooks.org/wiki/C Oczywiście ja popieram pisanie systemu w ASM :) - jpacanowski 2017-02-25 16:31

Pozostało 580 znaków

2015-04-24 09:16
0
akasei napisał(a):
KijWMrowisku napisał(a):

Nie wygodniej i szybciej byłoby to pisać w C?

Nie :) Straciłbym pare lat na nauke języka w stopniu zadowalającym.

Wątpię. C to bardzo prosty język, tylko trzeba się trzymać pewnych reguł.

Przeczytaj tę książkę i będziesz wiedział właściwie wszystko co potrzeba na początek:
"Język ANSI C. Programowanie.", Brian W. Kernighan, Dennis M. Ritchie

Tworzenie programowania to:

  • napisanie/dodanie kodu
  • kompilacja
  • uruchomienie
  • debugowanie (może być zastąpione przez wyświetlanie)

Dzięki C możesz ten cykl znacząco przyspieszyć. O ile chcesz zrobić coś użytecznego.

Jeśli chcesz zrobić sam wszystko od A do Z (bo np. nie pasuje Ci GNU) to możesz użyć Small C: http://en.wikipedia.org/wiki/Small-C

Musiałbyś go pewnie tylko dostosować do budowania execów x64 zgodnie z Twoimi założeniami.

Jeśli GNU to nie przeszkoda: Tiny C (LGPL): http://bellard.org/tcc/

Więcej kompilatorów: http://en.wikipedia.org/wiki/List_of_compilers#C_compilers

ASM jest dobry do wszelkich interfejsów z hardwarem, do pisania programów (czy nie daj Boże aplikacji) jest strasznym spowalniaczem (chyba że masz już bibliotekę standardową - łańcuchy, pliki, wątki, strumienie, sterta itd).

Edit: jak zrobić własny kompilator: http://www.stack.nl/~marcov/compiler.pdf

edytowany 3x, ostatnio: vpiotr, 2015-04-24 11:05
Pokaż pozostałe 2 komentarze
@vpiotr: mimo wszystko kiedyś na tym właśnie się zaciąłem, i pisałem dalej uparcie w asemblerze, aż mi się odechciało i projekt zamarł. (a już był nawet task scheduler z wywłaszczaniem) - Azarien 2015-04-24 12:45
Czasem przydaje się ktoś kto da kopa, nie przeczę. Albo chociaż zapyta jak idzie. - vpiotr 2015-04-24 13:27
@vpiotr: Jak idzie? :) - akasei 2015-08-19 09:47
@akasei: w jakim sensie? - vpiotr 2015-08-19 11:11
Echo do 4 komentarza ;) - akasei 2015-08-19 11:15

Pozostało 580 znaków

2015-04-25 23:35
0
vpiotr napisał(a):

Edit: jak zrobić własny kompilator: http://www.stack.nl/~marcov/compiler.pdf

Dziękuje za dokument. Na pewno wyciągnę z niego interesujące informacje przy tworzeniu własnego kompilatora w języku asemblera.

Raczej podziękuję za propozycje wykorzystania języków wysokiego poziomu. Lubię porozmawiać z procesorem i sprzętem po swojemu ;) Projekt zapewne nie będzie znany w świecie. Piszę dla własnej przyjemności.

PS: Z chęcią przygarnę dokumentacje na potrzeby tworzenia kompilatora dla języka asemblera.


To jest na tyle proste że nie wymaga jakiegoś skomplikowanego designu. Raczej potrzebujesz solidnej literatury do procesora (aby dobrze/efektywnie zakodować ASM->maszyna). Taka literatura (o ile jej nie masz) dostępna jest na stronach Intel i AMD. - vpiotr 2015-04-26 09:09

Pozostało 580 znaków

2015-04-26 03:03
Czarny Pomidor
0

Jest parę w miarę działających systemów napisanych w ASM jak kolibriOS.
http://www.dobreprogramy.pl/MikeOS-1.1.1,News,7426.html
http://www.dobreprogramy.pl/R[...]3.12-dostepny,News,21092.html
http://www.dobreprogramy.pl/M[...]nej-dyskietce,News,49361.html

ReactOS nie jest pisany w ASM :P - jpacanowski 2017-02-25 16:28

Pozostało 580 znaków

2015-06-09 21:27
5

Teraz mój edytor tekstowy potrafi zapisywać pliki 8)

Otrzymał(a) nazwę: Moko

Pobierz ostatnią wersje (alfa) 0.392 Uruchamiaj za pomocą Bochs!
Login jest zbędny (hasło też, wciąż nad tym pracuje).

user image


edytowany 1x, ostatnio: akasei, 2015-06-09 21:27

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