Cześć wszystkim!
Nie znam się zbytnio na Amidze (mam za mało lat), ale lubię to forum, bo pozwala uzupełniać wiedzę i klimat tego komputera. Jest tu dużo kreatywnych ludzi, których podziwiam.
Akurat na X86 najłatwiej napisać OS aby działał na prawie dowolnym komputerze.
Potrzebujemy obsługę[...]
Zobacz dokumentację UEFI (następcy BIOS). Masz tam API do obsługi wielu rdzeni procesora, tworzenia połączeń sieciowych, grafiki (od robienia bitmap i bitblit, poprzez rysowania kształtów po obsługę okien) i prawie wszystkiego co jest potrzebne prostemu systemowi operacyjnemu do funkcjonowania.
Zabawa jest jeszcze łatwiejsza niż w tradycyjnym BIOS. Masz partycję EFI którą tak na serio jest FAT32 lub NTFS ze zmienionym ID. Wrzucasz tam pliki w formacie PE (Windowsowe EXE), UEFI je wczytuje do pamięci i startuje przy uruchomieniu komputera jako bootloadery. Nawet masz od razu przygotowany tryb procesora 32 lub 64 bitowy.
Powstała mała scena w której ludzie tworzą porty oprogramowania tak, by uruchamiały się na UEFI zamiast w systemie operacyjnym, bo to fajne wyzwanie.
---
W wątku pojawia się problem wiecznego braku sterowników i trudności w obsłudze różnorodnej konfiguracji. Zwykle robi się to za pomocą HAL (warstwa abstrakcji urządzeń). Jest to mechanizm programowy, który sprawia, ze różnorodne rodzaje urządzeń, system operacyjny obsługuje w jeden sposób.
Chcę zaproponować by takim mechanizmem w waszych rozważaniach został kernel Linux.
Jego zalety to:
- Obsługuje dużo sprzętu i różnorodnych architektur x86, ARM, PPC;
- obsługuje wiele rdzeni i ma ochronę pamięci;
- ma stabilne API w warstwie komunikacji z nim od strony użytkownika (stabilne syscalle i namespace);
- uruchamia się około 2s na współczesnym sprzęcie (u mnie: 2.166s (kernel));
- ma bardzo wydajne mechanizmy zarządzania komputerem (wydajniejsze od Windows);
- karty graficzne oprócz Nvidii mają jednolite API z akceleracją (nie trzeba używać X, by używać 3d);
- dużo narzędzi dla programistów;
- obsługuje wiele systemów plików, nawet te z Amigi i Atari;
- jest wciąż dynamicznie rozwijany przez wiele osób i firm.
Żeby ktoś mnie źle nie zrozumiał. Chodzi o samo jądro Linux bez systemu GNU i X.
Można je wykorzystać jako jednolitą warstwę do komunikacji z różnorodnym sprzętem, zarządzaniem procesami, pamięcią, klawiaturą, myszą, dyskami, grafiką, dźwiękiem i siecią. Jest nawet mechanizm który umożliwia wczytywanie dowolnych formatów programów, więc nie musicie rezygnować ze swoich przyzwyczajeń.
Fajnie gdyby system amigowy powstał na czymś takim (jak ChromeOS lub Android) i się upowszechnił. Mógłby wtedy działać i na PPC i na Raspberry Pi i na prawie dowolnym PC. Zniknęłyby problemy, które ma zespół twórców NG, a przeglądarki wymagałyby już tylko dopasowania podsystemu wyświetlania i pobierania zdarzeń z systemu.
Gdybyście dodali do tego standardowy terminal z narzędziami GNU (jak MacOS z narzędziami BSD), system stałby się jeszcze bardziej atrakcyjny dla potencjalnych użytkowników.
Mam za mało lat, żeby rozumieć czy takie podejście wywoła u was antagonistyczne reakcje. Ale takie są obecnie realia, żeby zaistnieć. Wystarczy zobaczyć ile jest małych systemów operacyjnych tworzonych przez entuzjastów (np. RedoxOS) i jak mozolnie to idzie, nawet z dużym budżetem (ReactOS). Mały zespół już nie może stworzyć całego systemu operacyjnego bo to jest skomplikowane zadanie. To było możliwe 30 lat temu, pod warunkiem, że się mocno ograniczyło ambicję.
Jeśli ktoś się jednak czuje na siłach to jest w sieci dużo poradników o tym jak stworzyć system operacyjny na Raspberry PI np. https://jsandler18.github.io/
Ponadto na uczelniach w USA jednym z zadań na zaliczenie, jest często stworzenie prostego systemu na tę platformę i są o tym nagrania wykładów. Wiele osób próbuje też programować tę płytkę bez systemu operacyjnego i nie mają z tym kłopotów dzięki dostępnej dokumentacji. Jednak gdyby powstanie rozbudowanego systemu operacyjnego od podstaw było łatwe, to już by takich systemów powstało wiele.