• De afgelopen dagen zijn er meerdere fora waarop bestaande accounts worden overgenomen door spammers. De gebruikersnamen en wachtwoorden zijn via een hack of een lek via andere sites buitgemaakt. Via have i been pwned? kan je controleren of jouw gegeven ook zijn buitgemaakt. Wijzig bij twijfel jouw wachtwoord of schakel de twee-staps-verificatie in.

BirdOs Vireo-II kernel v0.1 en CP

  • Onderwerp starter Verwijderd lid 166773
  • Startdatum
Status
Niet open voor verdere reacties.
V

Verwijderd lid 166773

Gast
Hallo allemaal! Lang niet geschreven op deze plek van het forum, en ik moet zeggen nu ik mijn vorige berichten terug lees, zijn deze niet zo soepel geschreven.

Maar! Daar zijn we hier niet voor. Een paar dagen terug heb ik namelijk v0.1 van de kernel afgerond, wat betekent dat de kernel zo goed als af is. Tenslotte kan het doen wat je ermee zou willen doen, namelijk het uitvoeren van programma's.

Dit is te zien in deze video (zie hieronder voor embedded versie). De kernel voert hier een heeeeeeeeeleee vroege versie van de command processor (CP) uit. Dit gebeurt als volgt:
  1. Wanneer de kernel opstart zal het het bestand 'config' lezen op de opstartschijf (voor inhoud config-bestand, zie hieronder).
  2. De kernel zoekt voor de eerste regel in het config-bestand waar het woord 'run' staat, en voert het programma in het pad na dit woord uit. Dit is CP.ELF, ofwel de binary van de command processor.
  3. De command processor start op en leest hetzelfde config bestand. Het zal zoeken voor elke regel waar het woord 'load' staat en zal de binaries in de paden registreren als drivers aan de kernel (in dit geval alleen de toetsenbord driver genaamd 'ps2keyb.drv').
  4. De command processor laadt de keymap die in het config bestand staat. De keymap wordt gebruikt om toetsen op het toetsenbord om te zetten naar de juiste karakters ('a' t/m 'z', '0' t/m '9' en speciale karakters zoals '/', '[', etc.).
  5. De command processor zal zich aankondigen aan de toetsenbord driver als een 'subscriber' (een programma dat graag geüpdatet wil worden wanneer een nieuwe toets wordt ingedrukt).
  6. De command processor wacht totdat de gebruiker de [ENTER] toets heeft ingedrukt en gaat vervolgens proberen het getypte commando uit te voeren.

Config file
Code:
# keywords and -symbols:
#   * `run` (load a binary)
#   * `load` (load a driver)
#   * `#` (comment)
#
# Not case sensitive.
# Anything else is ignored (i.e. the symbols/lines '[kernel]' and '[drivers]' have no real function).

[kernel]
run /bin/cp.elf test

[drivers]
load /sys/ps2keyb.drv

[settings for cp]
keymap /sys/usint.kl
keyb_drv_name PS2KEYB.DRV

Keymap
Een keymap (zoals 'usint.kl' in het config bestand) is gedefinieerd als een array van de volgende C-struct:
C:
typedef struct keymap_entry_t
{
    char lc; // lowercase karakter (bijv. 'a')
    char uc; // uppercase karakter (bijv. 'A')
    uint16_t scancode; // scancode van de driver (bijv. 0x0302 - de 'A'-toets op een
                       // QWERTY-toetsenbord).
} __attribute__((packed)) keymap_entry_t;

Opmerking
De echte uitgave van v0.1 van de kernel, kan het woord 'run' in een config bestand niet herkennen. De echte v0.1 zal de eerste regel dat geen comment is direct proberen uit te voeren als programma. In het config-bestand zou dan dus /bin/cp.elf test moeten staan in plaats van run /bin/cp.elf test om het programma CP.ELF uit te voeren.

Waar ik tot nu toe over gepraat heb is eigenlijk een tussenversie van de kernel die ergens tussen v0.1 en v0.2 ligt. De versie waarover gepraat wordt is hier te vinden.

Volgende keer
Zoals aangegeven gaat dit om een tussenversie gebaseerd op kernel v0.1 met een tussenversie van CP. Hierna zal echter nog kernel v0.2 komen, die met enkele verbeteringen komt (er zijn er al een aantal gedaan). Wanneer v0.2 en CP afgerond zijn, zal het gezamenlijk als Vireo/1 uitgegeven worden. Vireo/1 ('Vireo Release 1') is dan een bruikbare versie van het systeem. Daarna zullen er voorlopig geen nieuwe versies komen.
 
tsja, zware kost voor heel veel forum bezoekers denk ik
 
Het doel van Vireo was dat ik er wat van zou leren. Dat is ook gebeurd.

Verder is het lastig Vireo aan te raden. Het is qua functionaliteit vergelijkbaar met een DOS, maar het kan geen DOS programma's draaien. De enige programma's die erop kunnen draaien, zijn de programma's die specifiek voor Vireo gemaakt zijn. In tegenstelling tot een echte DOS is het ook 32-bits. Het systeem kan alleen op oudere PC's (lees 1998-2008) draaien. Het heeft geen audio functionaliteit en video is voor nu alleen 80x25 VGA tekst modus.

Zelf vind ik het relatief makkelijk om er programma's voor te maken, maar dan hebben we het over relatief simpele programma's (geen idee hoe dit zit als je complexe dingen wilt doen). Documentatie hierover mist nog wel.

Ik zou zeggen: het is een systeem waar je gemakkelijk mee kan experimenteren, mocht je meer over besturingssystemen willen leren. Het is relatief klein, en geen log monster zoals Linux. Toch heeft het de functionaliteit die je op z'n minst verwacht van een bruikbaar systeem.
 
Toch leuk om eens met zo'n project bezig te zijn. Inderdaad zal je kennis hierdoor snel ontwikkelen.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan