[#1] Nowy mikrokernel na ARM
Od dluzszego czasu pracuje nad mikrokernelem dla ARMa, w ktorym wykorzystuje niektore rozwiazania z Amigi. Oryginalnie chcialem stworzyc mirokernel dla mikrokontrolerow ARM, ktory bylby elastyczny i daloby sie pod nim wygodnie i przyjemnie programowac, co wyeliminowalo wiekszosc innych systemow :)

Czym moj mikrokernel rozni sie od execa?
- brak dostepu do wewnetrznych struktur systemu, struktur bibliotek, przerwan itp
- dostep do sprzetu poprzez biblioteki .resource
- podstawowa ochrona pamieci
- mutexy, spinlocki
- smp
- 64 bity (w planie)
- wsparcie dla ARMv6, ARMv7, ARMv8 (w planie)
- Socs: Broadcom (dziala), AllWinner (w planie), inne: jak dostane specyfikacje :)
- platformy: Raspberry Pi, w planie: Orange Pi, NanoPi

Jakie sa podobienstwa:
- system portow, wiadomosci, sygnalow dzialajacy na podobnej zasadzie
- system bibliotek, urzadzen i zasobow dzialajacy na podobnej zasadzie
- flat memory model

Jesli chcecie podyskutowac na ten temat lub macie jakies sugestie co do dodania/usuniecia jakis elementow, zapraszam do merytorycznej dyskusji :)

Ostatnia aktualizacja: 17.02.2019 20:51:56 przez docent
[#2] Re: Nowy mikrokernel na ARM

@docent, post #1

czyli brak ochrony pamięci..., nie myslaleś żeby zaorać porty,wiadomosci i zrobić to nie w oparciu o wskaźniki?
[#3] Re: Nowy mikrokernel na ARM

@michal_zukowski, post #2

Ochrona pamieci jest - podstawowa ale wystarczajaca: kod jest read only, dostep do wolnej pamieci wywoluje wyjatek. To daje ochrone przed przypadkowym uszkodzeniem kodu oraz wylapuje podstawowe bledy typu null pointer, nielegalny adres itp.
Z zalozenia kernel ma tez dzialac na Cortex-M a one nie maja MMU tylko MPU. MPU pozwala na max 16 obszarow chronionych, wiec nie daloby sie ochrony pamieci w pelni zaimplementowac. Na Cortex-M tylko kernel i pamiec przez niego wykorzystywana moze byc zabezpieczona w ten sposob.

Ostatnia aktualizacja: 17.02.2019 22:14:36 przez docent
[#4] Re: Nowy mikrokernel na ARM

@docent, post #1

Zapowiada się ciekawie, będę patrzył co dalej z tym zrobisz
Dwa pytania
1. Zamierzasz dac kompatybilność z posix
2. Zamierzasz dodać kompatybilność z jakimś systemem np Amigaos czy atari mint a może jakiś unix?
[#5] Re: Nowy mikrokernel na ARM

@docent, post #1

może głupie pytanie - ale czemu to ma służyć ?
Kernel jak kernel. ARM .. procek jakich wiele.

- co to ma wspólnego z amigaos (szeroko rozumianym) ?
- kernel.. i co dalej ?

Ps.
Co by nie było - mam serwerek na procu AllWinnerTech A20.
[#6] Re: Nowy mikrokernel na ARM

@Pico121, post #4

ad 1
Posix to bardziej dodatkowe biblioteki niz sam mikrokernel. Clib, ktory wykorzystuje jest zgodny z posix, poza tym jest biblioteka posix, ktora bedzie mozna zaadaptowac.
Kernel ma wlasne api np. do semaforow czy threadow ale latwo mozna zbudowac bazujaca na nich biblioteke, zapewniajaca kompatybilnosc np. z pthreads typu pthreads.library.
ad 2
unixopodobnych systemow jest duzo... Tak jak wyzej napisalem, posix bedzie mozna w duzej czesci miec wspierany. Mysle raczej o dodaniu warstwy kompatybilnosci z amiga - byloby to dosc proste ale kompatybilnosc bylaby tylko na poziomie kodu zrodlowego i taki kod zapewne wymagalby przerobek. Np. uruchomienie tasku wymaga utworzenia TaskHandle przez CreateTask o prototypie
TaskHandle CreateTask(char* taskName, int16_t taskPriority, uint32_t stackSize, TaskHandle parentTask, TaskStates initialTaskState)
a pozniej uruchomienie przez np AddTask - prototyp
TaskHandle AddTask(TaskHandle task, aptr startPC, aptr exitPC)
Itp - nie ma mozliwosci bezposredniego manipulowania polami obiektami mikrokernela - taskow, sygnalow, bibliotek i innych parametrow obiektow typu xxHandle
[#7] Re: Nowy mikrokernel na ARM

@MaaG^dA, post #5

może głupie pytanie - ale czemu to ma służyć ?
Ech, miala byc merytoryczna dyskusja a nie filozoficzne dywagacje...
- co to ma wspólnego z amigaos (szeroko rozumianym) ?

Wystarczy przeczytac dalej niz pierwsze 3 linie mojej wiadomosci
Co by nie było - mam serwerek na procu AllWinnerTech A20

Good for you :)
ale ten watek to nie watek o serwerkach na AllWinnerze, masz jakies bardziej merytoryczne uwagi lub pomysly? Dla przypomnienia, to dzial "programowanie"...
[#8] Re: Nowy mikrokernel na ARM

@docent, post #7

A czego konkretnie brakuje np. distortos? Rozumiem, że w tym momencie nie chodzi nawet o konkretną funkcjonalność, a bardziej o "amigowy dotyk" ?
[#9] Re: Nowy mikrokernel na ARM

@abcdef, post #8

A czego konkretnie brakuje np. distortos?
Bo wspiera tylko armv6-M, armv7-M? Bo nie ma wsparcia dla obslugi bibliotek, zewnetrznych modulow? Nie mozna w prosty sposob podpiac wlasnej obslugi przerwania? Bo jest w c++11 a ja nie jestem jego wielkim fanem ? :)
[#10] Re: Nowy mikrokernel na ARM

@docent, post #9

Zasadniczo Twoją platformą docelową są mikrokontrolery ARM, a innych rdzeni nie masz. Albo stare ARM7TDMI co raczej nie jest Twoim targetem, albo właśnie ARMv7E-M jako najnowsze produkowane. ARMv8-M dopiero wyjdą, a pozostałe układy z innymi rdzeniami to bardziej SoC niż mikroprocesory.
[#11] Re: Nowy mikrokernel na ARM

@abcdef, post #10

Nie - jak napisalem, taki byl poczatkowy plan. Potem zdecydowalem sie uwzgledniac wszystkie army, nie tylko M ale takze A i R wraz z najpopularniejszymi socami. Napisalem to przeciez na samym poczatku...
[#12] Re: Nowy mikrokernel na ARM

@docent, post #1

Jak tam postępy prac nad twoim systemem? Może też jakieś screeny? Czy potrzebujesz kogoś do pomocy? Znam bardzo dobrze język C.
[#13] Re: Nowy mikrokernel na ARM

@jpacanowski, post #12

Powoli ale do celu :) teraz pracuje nad pluginem do Visual Studio by mozna bylo pisac, kompilowac i debugowac bezposrednio w Visual Studio. Jak to skoncze, upublicznie sdk wraz z pluginem i testowa wersja bootstrapu z mikrokernelem do testow.
Screeny na razie beda raczej malo ciekawe - troche tekstu w teminalu efektu nie robi:)
Co do pomocy, to kazda pomoc sie przyda!
Do developmentu potrzeba:
- pc z windows
- Visual Studio 2015 lub wyzej
- klient Perforce
- Raspberry pi
- kabel usb-uart
- SDK
- checi, umiejetnosci, wiedza :)

Za jakies 2 miesiace (jak dobrze pojdzie) bedzie dostepny SDK box, skladajacy sie z raspberry, obudowy, kabla usb-serial i zasilajacego - wszystko podlaczone, skonfigurowane i gotowe do pracy. Wtedy wystarczy tylko Visual Studio i Perforce.

Ponizej jest lista rzeczy, ktore sa potrzebne w poszczegolnych etapach rozwoju systemu:

  • System stage 1 (Minimal Real-time System Profile IEEE Std 1003.13 PSE51)
    - shared libs: exec
    - libs: libc (strings)
    - resources: cpu, irq, uart, gpio, timer
    - devices: timer, serial
  • System stage 2 (Real-time Controller Profile IEEE Std 1003.13 PSE52)
    - shared libs: dos (basic functionality)
    - libs: libc
    - resources: sdcard, dma
    - devices: sdcard
    - filehandlers: exFAT
  • System stage 3 (Dedicated Real-time Profile IEEE Std 1003.13 PSE53)
    - shared libs: graphics (basic functionality), layers, ui (intuition basic functionality), utility
    - libs: posix
    - resources:
    - devices: input, console
Praktycznie stage 1 ogarniam, pomoc najbardziej by sie przydala na etapie 2 i 3 - w szczegolnosci dos, exFAT i sdcard device, clib, graphics itp
Napisz, czym chcialbys sie zajac, co moglbys zrobic, w czym masz doswadczenie np. z Amigi czy z innych systemow.

Ostatnia aktualizacja: 15.03.2019 19:33:11 przez docent
[#14] Re: Nowy mikrokernel na ARM

@docent, post #13

- klient Perforce

a czemuż akurat perforce?
[#15] Re: Nowy mikrokernel na ARM

@michal_zukowski, post #14

Bo uzywam Perforce server jako repozytorium.
[#16] Re: Nowy mikrokernel na ARM

@docent, post #13

Jak idą prace i w czym robisz ten kernel?
[#17] Re: Nowy mikrokernel na ARM

@Pico121, post #16

Wolno, bo mam jeszcze inny projekt, ktory ma w tej chwili wyzszy priorytet.
Pracowalem ostatnio nad sdk - mam zrobiony plugin do Visual Studio z templatami projektow, zintegrowanym z kompilatorem gcc na arm. Do kompletu brakuje tylko debugowania/integracji z gdb.
System jest glownie w c, z niewielka iloscia asm w kluczowych miejscach.
[#18] Re: Nowy mikrokernel na ARM

@docent, post #17

Jest jakis poradnik jak zacząć pisać kernele czy nie ma bo po interpreterze wlasnego dialektu basica kernel wydaje sie byc ciekawym wyzwaniem
[#19] Re: Nowy mikrokernel na ARM

@Pico121, post #18

nie wiem - poszukaj w google, moze cos znajdziesz.
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem