Gå til innhold

Anbefalte innlegg

Go GeirGrusom (if Grusom is the case)! :)

Jeg kan garantert ikke bidra med noe i begynnelsen, men støtter prosjektet fullt ut.

 

 

Jeg har kun en idé, noe som kan bli vanskelig å gjennomføre med tanke på copyright, men jeg synes at feilmeldinger skal etterfølges av et random sitat fra signaturen til GG... :D

Lenke til kommentar
Videoannonse
Annonse
Har en liten begynnelse på et oversiktsdokument (PDF)

spec.pdf

 

Hadde satt pris på om noen skumleste litt igjennom den og sagt hva som må endres, eller legges til.

Noen ting kan være litt dårlig forklart også.

 

...

8138913[/snapback]

 

Jeg fant et par punkter. Håper de hjelper :)

 

Punkt1-3

Side 3

under TextStream

 

Punkt1

Hva er denne god for?

int readLine()

 

Punkt2

Hva med å legge til disse?

int readLine(character *dst, qword numchars)

int writeLine(character *src, qword numchars)

 

Punkt3

Hvordan skal man få charen?

int readChar()

 

Burde den ikke se slik ut?

int readChar(character *dst)

 

Punkt4

Jeg er vet jo ikke helt hvordan eventsystemet ditt vil fungere, men hadde det vært en ide å legge til muligheten til å sende litt data med eventene. (slik som jeg leser det så finnes ikke denne muligheten)

Endret av Giddion
Lenke til kommentar
Har en liten begynnelse på et oversiktsdokument (PDF)

spec.pdf

 

Hadde satt pris på om noen skumleste litt igjennom den og sagt hva som må endres, eller legges til.

Noen ting kan være litt dårlig forklart også.

 

...

8138913[/snapback]

 

Jeg fant et par punkter. Håper de hjelper :)

 

Punkt1-3

Side 3

under TextStream

 

Punkt1

Hva er denne god for?

int readLine()

 

Punkt2

Hva med å legge til disse?

int readLine(character *dst, qword numchars)

int writeLine(character *src, qword numchars)

 

Punkt3

Hvordan skal man få charen?

int readChar()

 

Burde den ikke se slik ut?

int readChar(character *dst)

 

Punkt4

Jeg er vet jo ikke helt hvordan eventsystemet ditt vil fungere, men hadde det vært en ide å legge til muligheten til å sende litt data med eventene. (slik som jeg leser det så finnes ikke denne muligheten)

8146192[/snapback]

 

Takk :)

 

Jeg har tenkt litt på event, greiene, og har kommet frem til at man kanskje kan sende med en peker, og en størrelse, deretter blir det opp til programmet å lese dataene.

Så en event blir noe slikt:

typedef struct _EventParameters
{
 dword dataLength;
 dword highparam;
 dword lowparam;
} ParameterInfo;
typedef int (*EventPtr) (processhandle process, ParameterInfo *param);

 

edit: jeg ombestemte meg litt med parameterne, det blir en slags "inheritence" sak her

ParameterInfo blir istedet passed by reference, og ParameterInfo vil bare være grunntypen.

Dermed kan man lage egne strukturer som blir gitt som parameter, pluss at det sparer noen klokkesykluser.

eksempel:

typedef struct MouseOverArgs
{
 ParameterInfo base;
 dword x;
 dword y;
 dword buttons;
}

int OnMouseOver(processhandle process, ParameterInfo *param)
{
 MouseOverArgs *e = (MouseOverArgs)param;
 if(e->x == 100)
   printf("Hello world!");
}

bindEvent(current_process, (EventPtr)&OnMouseOver);

Endret av GeirGrusom
Lenke til kommentar

Jeg følger med i spenning på denne tråden :D

 

Men det kan da ikke være så utrolig vanskelig så folk vil ha det til, greit nok det er kanskje jævlig mye arbeid, men ikke "direkte-vanskelig".

Mener nå å ha lest en "linux-from-scratch" programmeringsbok.

 

Link....

 

Du burde vel kanskje implementere det som et linux basert system, hvis ikke må vel skrive dine egne device-drivere?

(Eller er jeg helt på jordet? Isåfall beklager jeg. )

 

Du finner jo ikke opp hjulet på nytt, du tar jo "bare" eksisterende løsninger å gir de en ny vri.

 

Det er et stykke å gå, men seriøst.

Hvis du ikke gir opp kommer du i mål en gang, toldmodighet <3

 

Blir iallefall knall og se hva dette kan ende med :D

Lenke til kommentar
Du burde vel kanskje implementere det som et linux basert system, hvis ikke må vel skrive dine egne device-drivere?

8157512[/snapback]

 

Jeg tror litt av det GeirGrusom ønsker forsvinner da. Han vil vel skrive sitt eget OS fra scratch -- ikke basere det på en Linux.

Lenke til kommentar

Ja, jeg har tenkt at vi bruker om igjen ting vi ikke kan forbedre, eller som det ikke er nødvendig å endre.

I dette tilfellet, må nok driverarkitekturen endres.

 

Det skal ikke baseres på noenting, planen er å se hvordan andre har gjort det, og se om vi kan lage en bedre løsning på det.

 

- Vi har bestemt å ikke skrive en egen bootloader.

- Vi begynner med FAT32 i første omgang, siden det er såpass simpelt, og jeg har Microsoft sin dokuementasjon.

- Jeg skriver nå en linker i C#, kommer ikke langt uten programmer å starte.

Lenke til kommentar

> Man kan skrive både compiler og linker i hvilket språk man ønsker.

Å den linkeren, ja! Den linkeren hører jo mer eller mindre til programmeringsspråket/kompilatoren.

Ettersom denne tråden handler om å skrive et nytt OS og ikke et nytt programmeringsspråk eller en ny kompilator trodde jeg du mente den dynamiske linkeren som er i OSet. (Den som f. eks. leser eksport-tabellen i et program og laster inn de nødvendige DLL-filene på Windows).

 

Edit: Jeg tror nok du bør bruke en eksisterende kompilator med tilhørende linker hvis du noen gang skal komme i gang med selve OSet.

Endret av tsg1zzn
Lenke til kommentar
> Man kan skrive både compiler og linker i hvilket språk man ønsker.

Å den linkeren, ja! Den linkeren hører jo mer eller mindre til programmeringsspråket/kompilatoren.

Ettersom denne tråden handler om å skrive et nytt OS og ikke et nytt programmeringsspråk eller en ny kompilator trodde jeg du mente den dynamiske linkeren som er i OSet. (Den som f. eks. leser eksport-tabellen i et program og laster inn de nødvendige DLL-filene på Windows).

 

Edit: Jeg tror nok du bør bruke en eksisterende kompilator med tilhørende linker hvis du noen gang skal komme i gang med selve OSet.

8161656[/snapback]

 

Men nå har det seg jo slik at han vil bruke et eget binærfilformat. Det fins jo selvsagt ingen linkere som tar hånd om hans format?

Lenke til kommentar

Vi er bare i en planlegginsfase enda, og det er greit å ha testdata, siden det å starte, og holde styr på programmer er målet med et operativsystem, Tilogmed hele målet med en datamaskin.

 

Linker er ikke så fryktelig komplisert å lage,

det blir verre med C biblioteker og slikt.

 

TODO:

- Minnehåndtering

- Filsystem

- Program lasting (mye greier her)

- Driver arkitektur

 

Jeg kan se for meg at lasting av programmer, og tildeling av minne kan føre til mye rot, Har ikke helt forstått dette med pages enda.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...