BirdOs Het besturingssysteem genaamd BirdOS

m44rtn

Gevestigd lid
Hallo allemaal!

Een aantal van jullie waren genteresseerd in mijn besturingssysteem, wat dat nou eigenlijk inhield... Ik heb nu informatie genoeg dat ik het aandurf om er dingen over te zeggen! :D

Het plan is om een 32-bits protected mode besturingssysteem te maken met GUI (Graphical User Inteface) en al. En die GUI is best ambitieus, maar niet geprobeerd is niet geprobeerd natuurlijk. Dus ja. Ik werk zelf aan het systeem en heb een 'team' achter me (met mij meegeteld zijn we met z'n 4en) staan voor concept art en alles met video's en afbeeldingen. Ik ben niet op een punt waarvan je zegt 'goh, wat be je ver!'. Toch kom ik in de buurt.

De designers (de rest van het team dus) schieten aardig op, en dat kan je zien in de nieuwsbrieven.

Alle links:
Wesbite: http://birdos2015.wix.com/feathercode
Twitter: 'BirdOSdev'
We hebben net de nieuwe nieuwsbrief eruit gegooid (nieuwsbrieven zijn in het stonecolen-english): December newsletter

We hebben nog eerdere:
November newsletter
October newsletter
 
Laatst bewerkt door een moderator:

Rubensky

Moderator
Team lid
Vind het een interessant project! In hoeverre hebben jullie het al werkend?
 

m44rtn

Gevestigd lid
Kort antwoord: Hardware/software signalen op een goede manier handlen.

Lang antwoord:
Ik ben nu met de IDT bezig (interrupt descriptor table). Om het simpel te zeggen: een interrupt is een signaal afgegeven door software of hardware. Op het moment dat dat gebeurd gaat de cpu alles opslaan waar het mee bezig is en het gooit een pointer op de stack waarin staat waar hij bezig was. Het zal dan gaan kijken of er iets staat wat zegt wat hij moet doen. Zo ja: voer uit wat er staat. Zo nee: negeer het en ga door.

Het systeem regelt deze interrupts (althans, wat ermee gedaan wordt), maar de cpu weet natuurlijk niet waar dat is. Daar komt de descriptor table, het is vergelijkbaar met een soort tabel waarin staat wat hij moet doen en wanneer. De locatie daarvan speel je door aan de CPU. Dat is wat de descriptor table doet en is in het simpel.
Een verschil tussen real mode (MS-DOS/FreeDOS) en protected mode (Windows, Linux) is dat je bij real mode de IDT niet hoeft op te zetten, day heeft de BIOS al voor je gedaan. Maar op het moment dat je naar protected mode gaat wordt daar overheen geschreven (dat laatste is een educated guess). Dus moet je hem er zelf bij gooien.

Nu is het zo dat QEMU (virtuele machine) een error geeft. Een error die ik eerder ben tegen gekomen maar die niks te maken heeft met code maar ik geloof met QEMU zelf. Ik moet nu dus ergen anders testen (Virtualbox) maar dat is ernstig vervelend, niet de software zelf maar het proces om te testen. Anyway QEMU zegt dat het geen 4GiB kan vrijmaken. Maar die 4GIB heeft hij helemaal niet nodig. Virtualbox werkt met 32mb RAM gewoon prima met dezelfde code.

Dus ik moet me even verdiepen in hoe we dat gaan oplossen.
 

Rubensky

Moderator
Team lid
Een leuk verhaal. Ik hoop dat je ons op deze manier op de hoogte houd van jullie voortgang vind het een erg interessant project.

En misschien kan je de error hier plaatsen en is er iemand hier met de gouden tip.
 

m44rtn

Gevestigd lid
Dank je!
Ik zal kijken of het nodig is om de vraag te stellen. Waarschijnlijk is het inderdaad wel handig. :)
 

Rubensky

Moderator
Team lid
Ja, waarom zou je niet. Misschien is er wel iemand die de fout een keer bij de hand heeft gehad of er kennis aan heeft. Nu, dan wil die je denk ik wel verder helpen.
 

Rubensky

Moderator
Team lid
Verkeerde link oid? Dat overkomt iedereen denk ik wel eens. ik vergeet in PHP ook wel eens een ;
 

m44rtn

Gevestigd lid
Ja dit was iets anders:

Ik had voor debugging de 'kernel' compiled naar kernel2.sys. Daardoor had ik dus kernel.sys (oud) en kernel2.sys (nieuw), ik compilde altijd kernel2.sys maar ik teste kernel.sys (die werd nooit meer geupdatet). Kernel.sys had dus die error.

Dus ja dat was 't...
 
Laatst bewerkt door een moderator:

Rubensky

Moderator
Team lid
Het nare van dat soort dingen is dat je jezelf helemaal blind zoekt naar dat soort dingen. Je blijft er maar mee bezig maar kan hem echt niet vinden. Dan ineens zie je hem en denk je o ja, logisch.

kan best wel een beetje frustrerend zijn.
 

m44rtn

Gevestigd lid
Update BirdOS e.d.:

Sinds de laatste keer heb we een aantal dingen toegevoegd aan BirdOS:
- CMOS tijd, BirdOS kan nu 'wachten' tot maximaal 9 seconden
- Het toetsenbord is nu werkend en de komende weken gaan we het toetsenbord en de muis uitbreiden in
functionaliteit

De volgende dingen zijn 'known issues' in het systeem zoals 'ie nu is:
- CMOS tijd kan niet werken met 2-cijferige nummers/cijfers (soms telt hij 4 seconden als 1 seconde)
- Backspace werkt maar voor een regel, kom je met de cursor op een regel eerder dan kan hij geen karakters meer
weghalen

De volgende dingen hebben we met FeatherCode (het 'bedrijf' van BirdOS) gedaan:
- We hebben nu een ticket/support systeem voor support in de toekomst
- Op de website is nu een manier om je op te geven voor email nieuwsbrieven (bijna maandelijks wordt er een uitgegeven)
- Twitter bestaat nu ook voor ons

De volgende overige dingen zijn gedaan, gebeurd en besloten:
- Van nu af aan komen er twee versies van BirdOS: Bird DOS en BirdOS
- Een van de designers had een computer die niet meer wilde opstarten, na een clean install van Windows hebben we opnieuw moeten beginnen met concept art (het is nu veel mooier aan het worden)

Misschien zijn de volgende dingen interessant:
- Het systeem is op dit moment in totaal 15kb groot
- Het systeem heeft nu meer dan 750 regels code, en het kan nu pas alleen maar een basis US-toetsenbord een soort van interperteren.
- Je zou nodig hebben (om op dit moment BirdOS te gebruiken) een toetsenbord, scherm, 60kb RAM, x86 CPU en een video card met minstens 1mb VRAM

Groet,
Maarten
 

m44rtn

Gevestigd lid
- Backspace werkt maar voor een regel, kom je met de cursor op een regel eerder dan kan hij geen karakters meer
weghalen
Dit is inmiddels opgelost. De volgende dagen zal ook een nieuwe nieuwsbrief uitgegeven worden. We gaan waarschijnlijk ook een versie uitgeven voor de fun, maar hier zal je nog meer over horen als we er eenmaal klaar voor zijn.

Je kan de meer technical dingen, de soort van 'devblog' hier bekijken. Dit is ook gelijk meer up to date.

Ik zal jullie zoveel mogelijk op de hoogte te houden, zolang mogelijk.
 

Rubensky

Moderator
Team lid
Komt de nieuwsbrief alleen in het Engels uit?
 

m44rtn

Gevestigd lid
Ja, tot op heden wel. Maar als je wilt kan ik er ook een in het Nederlands doen. Ik kan nieuwsbrieven toch opsturen naar bepaalde groepen/mensen en ook kan ik ze per link delen.

Dus mocht je Nederlandstalige nieuwsbrieven willen, het is mogelijk. Zou je in het Nederlands willen?
 

Rubensky

Moderator
Team lid
Engels is voor mij op zich prima. Maar omdat je er hoer over vertelt is het misschien wel leuk daarom ook een Nederlandse te maken.
 

m44rtn

Gevestigd lid
Je was eigenlijk precies op tijd: De Englse versie wilde ik vandaag uitgeven, dus dan kan ik NL'se gelijk maken en dan zet ik ze beide hier neer.

Je hebt wel gelijk.

En men kan zich trouwens ook via de website 'aanmelden' en dat is alleen even je email adres invullen in een vakje. Dan krijg je ze via de mail, mochten mensen dat fijner vinden om een of andere rede. Als je in het Nederlands wil via de mail zou je even een berichtje moeten sturen via 'Contact' dan komen er geen misverstanden.
 
Laatst bewerkt door een moderator:

Rubensky

Moderator
Team lid
Goed idee. Ik ben benieuwd wanneer de eerste versie te testen.
 

Rubensky

Moderator
Team lid
Heb je enig zicht op wanneer we de eerste testversie mogen verwachten?
 

m44rtn

Gevestigd lid
Als alles goed gaat tussen volgende maand en de maand erop. Maar het zal wel een heel erg simpele test versie zijn: een terminal en wat commands.
 
Bovenaan Onderaan