30

Un peu plus haut, j'ai cité GUI-R3 et OSC1 (les deux ensembles peuvent déjà former un véritable OS), mais comme Orion l'a justement remarqué, il faut ensuite dialoguer avec le hard. Pour les ports standarts, un petit passage sur http://www.programmersheaven.com devrait faire l'affaire (port série, parallèle et ps2). Concernant les ports PCI et USB, voici deux liens sympa :

PCI : http://members.datafast.net.au/dft0802/
USB : http://www.wingmanteam.com/usbsnoopy/

Concernant la FAT (disquette et disque-dur), un bon point de départ est http://en.wikipedia.org/wiki/FAT32 ! Pour les périphériques IDE et SCSI, spectras à déjà noté le t13 pour l'IDE. Je rappelle donc les URL :

IDE : http://www.t13.org/
SCSI : http://www.t10.org/
ATAPI : http://www.ata-atapi.com/

Pour l'accès AGP/PCI pour la vidéo, je conseil donc le VESA pour passer par le BIOS, ce qui évite les problèmes d'accès directs aux cartes graphiques. Sinon, on peut toujours écrire son propre driver hardware à partir de VBE :

VESA : http://www.vesa.org/
VBE : http://www.talula.demon.co.uk/freebe/ (sauvegardez le site, on ne sait jamais)

Pour dessiner quelque chose à l'écran, y'a SDL ou ALLEGRO :

SDL : http://www.libsdl.org/
ALLEGRO : http://www.talula.demon.co.uk/allegro/

Pour terminer, quelques OS sympas, avec code source :

SOLAR : http://www.hostileencounter.com/os/os_down_source.htm
ALPACA : http://www.cis.rit.edu/~sdlpci/Software/alpaca/ (Z80, c'est presque pareil qu'Intel - 8080)
DRDOS : http://stud3.tuwien.ac.at/~e0225895/drdos/drdown.htm (le DOS ultime de Digital Research Inc, puis Caldera)
FREEDOS : http://www.freedos.org/
ACEOS : http://aceos.netfirms.com/
KORBIT : http://www.nondot.org/~sabre/
LITTLEOS : http://littleos.free.fr/ (en français)
GAZOS : http://gazos.sourceforge.net/
ALEXEIOS : http://alexfru.narod.ru/
UCOS-II : http://www.ucos-ii.com/contents/products/ucos-ii/ports-intel.html

Mais je crois que le meilleur de tous pour Orion sera sans aucun doute :

NSIS 80386 : http://www.wku.edu/~barceed/

Kochise

PS : Les bonus à étudier attentivement...

OSKIT : http://www.cs.utah.edu/flux/oskit/ (voir aussi la base http://www.cs.utah.edu/flux/ )
BLUEPARROTS : http://www.blueparrots.com/ (blue2.html, blue3.html et blue4.html surtout) ( http://www.newkingstreet.com/ : utile pour récupérer le site de Blue Parrots)

avatar
Si Dieu m'a de nouveau fait homme, cette fois il m'a pas raté : marcher sur l'eau et dupliquer les pains, ça marche p'us :/

31

Pour l'accès AGP/PCI pour la vidéo, je conseil donc le VESA pour passer par le BIOS, ce qui évite les problèmes d'accès directs aux cartes graphiques. Sinon, on peut toujours écrire son propre driver hardware à partir de VBE :
Euh tu sais ce qu'est le vbe ? Parce que là tu fais une opposition entre vbe et VESA+BIOS. Or VBE veut quand même dire Vesa Bios Extensions...
Et dans tous les cas t'en viens toujours à gérer toi-même m'affichage. Le truc n'a pas de primitives genre "afficher une ligne".
Pour dessiner quelque chose à l'écran, y'a SDL ou ALLEGRO :
Euh pour ce point là c'est pas vraiment ce qu'il cherche, parce que sinon faut implémenter les appels systèmes utilisés par le backend.

32

spectras
: sinon faut implémenter les appels systèmes utilisés par le backend.


Pas forcément, vu que SLD et ALLEGRO sont multiplateformes. Pourquoi pas une version compatible 'Orion OS' ?

Kochise
avatar
Si Dieu m'a de nouveau fait homme, cette fois il m'a pas raté : marcher sur l'eau et dupliquer les pains, ça marche p'us :/

33

Ils sont multiplateformes dans le sens où ils ont été portés à de nombreuses plateformes. Une version compatible orionos ? Eh bien vas-y Kochise, j'attends que tu postes ton portage de sdl.

34

-

35

spectras
: Eh bien vas-y Kochise, j'attends que tu postes ton portage de sdl.


Eh, oh, c'est Orion qui veut faire son OS =:/ Moi je lui donne juste des pistes. Evidement, si l'on veut pouvoir récupérer des routines existantes, autant se conformer aussi à des API déjà existantes elles aussi : c'est pourquoi il existe tellement de systèmes compatibles *nix (posix en règle générale) !
spectras
: Le truc n'a pas de primitives genre "afficher une ligne".


Evidement, puisque le VESA c'est le moyen d'acceder à la mémoire vidéo et de choisir sa résolution. Pour écrire dans la mémoire, il faut des routines de ligne, cercle, etc... Y'a ALLEGRO et SDL pour ça (voir SDL_gfx ici http://www.ferzkopp.net/~aschiffler/Software/SDL_gfx-2.0/ ) !

D'ailleur je conseille vivement SDL_gfx comme API de dessin à Orion, puisque ça inclus des primitives en anti-aliasé (comme les wuLine de http://freespace.virgin.net/hugo.elias/graphics/x_wuline.htm ou en Java 'presque-en-C' ici http://www.codebase.nl/index.php/command/viewcode/id/137 )

Kochise

PS : Orion, par exeprience personnelle sur le sujet, commence à développer tes routines de haut niveau sur un système existant, genre l'interface graphique sur Windows en récupérant les messages et en les traitant toi même. Quand ça sera stable, tu pourras t'attaquer à la couche basse niveau hardware, avec boot et tout, et juste à poser ton interface stable par dessus (en modifiant le traitement des messages Windows par ceux issus de tes drivers).

Si tu commence par le bas, tu auras du mal à débugger la couche haute si tu n'es pas sûr de ta couche basse. Et utiliser une couche haute instable sur une couche basse pour débugger les drivers, c'est pas évident, voire carrement démotivant.

C'est en fait presque du cross-developement sur la même machine :]
avatar
Si Dieu m'a de nouveau fait homme, cette fois il m'a pas raté : marcher sur l'eau et dupliquer les pains, ça marche p'us :/

36

Pour ce qui est de l'interface graphique, on peut toujours jeter un oeil sur http://www.ggi-project.org/ !

Kochise
avatar
Si Dieu m'a de nouveau fait homme, cette fois il m'a pas raté : marcher sur l'eau et dupliquer les pains, ça marche p'us :/

37

./35>
1) ...et c'est aussi pour ça que je te dis que s'il veut faire tourner sdl il faut qu'il implémente les appels systèmes utilisés par l'un des backend. Dans le cas contraire, il sera obligé de faire un portage de sdl.
=> bref, il ne cherche pas à faire un truc compliqué, donc ces deux solutions ne sont pas adaptées.

2) on a toujours le même problème de backend avec sdl... (avec allegro il doit être possible de s'en sortir avec seulement quelques modifications de la bibliothèque, mais bon ça reste quand même quelque chose de fastidieux).

38

Developper un OS, ce n'est pas quelque chose de simple...

Kochise
avatar
Si Dieu m'a de nouveau fait homme, cette fois il m'a pas raté : marcher sur l'eau et dupliquer les pains, ça marche p'us :/

39

-

40

Maaah non qu'on se tape pas dessus là, on vérifie juste qui c'est qu'a la plus grosse... connaissance wink Arf, j'l'aime bien le spectras môaaa, t'inquiètes donc pô l'gars :]

Kochise
avatar
Si Dieu m'a de nouveau fait homme, cette fois il m'a pas raté : marcher sur l'eau et dupliquer les pains, ça marche p'us :/

41

Il me semble que je n'en avait pas parlé, Matrix NOS : http://www.programmersheaven.com/d/click.aspx?ID=F28527

Kochise
avatar
Si Dieu m'a de nouveau fait homme, cette fois il m'a pas raté : marcher sur l'eau et dupliquer les pains, ça marche p'us :/

42

Pour les interfaces graphiques, partir d'ici (pas mal de liens morts, hélas) : http://www.geocities.com/SiliconValley/Vista/6552/l5.html

Kochise
avatar
Si Dieu m'a de nouveau fait homme, cette fois il m'a pas raté : marcher sur l'eau et dupliquer les pains, ça marche p'us :/

43

Encore un lien à la con qui alimentera le compilateur en code source : http://my.execpc.com/~geezer/osd/index.htm

Kochise
avatar
Si Dieu m'a de nouveau fait homme, cette fois il m'a pas raté : marcher sur l'eau et dupliquer les pains, ça marche p'us :/

44

-

45

Mouais enfin elle est strange quand même. Genre à première vue y'a déjà ça qui me chiffonne :
"free conventional memory (below 1 meg)" => à part sous msdos, la notion de mémoire conventionnelle n'a jamais existé.
"extended BIOS data area (EBDA)" => jamais entendu parler, et quand j'étais sous dos je logeais des tsr dans ce coin (enfin ceux qui tenaient pas dans les umb), sans jamais de pb. A voir.
"VGA framebuffers" => ouais, ça c'est bon tant que t'utilises les modes EGA/VGA. Quand tu passes aux fonctions plus avancées, je suis pas sûr que le mapping ici reste actif.
"video BIOS (32K is typical size)" => oui, si l'option est activée dans le bios.
"C8000- EFFFF C800:0000-E000:FFFF NOTHING" => faux. Il y a là de la ram tout ce qu'il y a de plus normale.
"FEC00000- FFFFFFFF motherboard BIOS, PnP NVRAM, ACPI, etc." => la taille dépend complètement du bios, donc marquer FEC00000 comme adresse de début c'est un peu débile quand même (du moins, c'est spécifique à un bios particulier).

46

Ouais ouais ouais, c'est vieux, mais en règle générale, ça reste valable. Tu sais spectras, d'ici à ce que des docs et des drivers open sources arrivent sur le domaine publique concernant les dernières interfaces à la mode, il y a toujours un délai de 5 ans environ. Donc l'USB arrive en Open Source, des docs fiables commencent à pointer le bout de leur nez.

Je ne parle év idement pas des docs constructeur ni des docs 'officielles' de http://www.usb.org/ , mais bien de docs parallèles, avec code source d'exemple. Donc pour l'instant, je pense que ça permettra déjà à Orion_ de se faire la main, je ne pense pas qu'il fera un nouveau Linux du premier coup. Il y a déjà tant d'aspects à explorer, même dans un petit OS :/

Sinon il y a toujours les 'majors' (qui ont déjàs étés cités) :

http://www.osdev.org/
http://www.visopsys.org/osdev/
http://www.singlix.org/trdos/specs.html

Kochise
avatar
Si Dieu m'a de nouveau fait homme, cette fois il m'a pas raté : marcher sur l'eau et dupliquer les pains, ça marche p'us :/

47

Bah avant de s'occuper de l'usb, ce serait bien qu'il gère le pci quand même. Ca éviterait justement de se casser la tête avec les mappings par défaut. Une fois que tu gères le pci, c'est toi qui dit à la carte graphique "je veux ta mémoire vidéo à l'adresse 0x10000000 stp, et que ça saute" cheeky

48

Oui chef, bien chef O_o !

Kochise
avatar
Si Dieu m'a de nouveau fait homme, cette fois il m'a pas raté : marcher sur l'eau et dupliquer les pains, ça marche p'us :/

49

avatar
Si Dieu m'a de nouveau fait homme, cette fois il m'a pas raté : marcher sur l'eau et dupliquer les pains, ça marche p'us :/