.--. .----------------------------------------------------------------/ /--. | / / | | QNX, realtime OS for virtual life / / 03 | | / / | '------------------------------------------------------------/ /------' '--' Part #1 : System Architecture ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Lorsqu'on qualifie un OS de realtime, c'est au niveau du kernel qu'on regarde le tout. S'il est assé rapide pour que les applications qui s'exécutent pensent qu'ils sont pratiquement seul avec la machine, le "realtime" est réussi. Pour ce faire, l'utilisation d'un microkernel est nécessaire. Un microkernel c'est en faite un kernel qui est le plus "bare bone" possible. QNX l'est. D'un autre coté si on regarde d'autres OS qui font le contraire, Linux est un excellant exemple, on a le choix entre loader les patentes en modules ou dans le kernel. QNX load tout en modules, sauf les fonctions essentielles d'un _vrai_ kernel : le "message passing" (IPC, un process qui veut communiquer avec un autre) et le "scheduling" (permet de dealer avec les status des processus, ce qui veut dire carrément répartir le temps cpu entre les process). Justement, le microkernel lui même ne passe pas par le sheduler, il communique directement sans se soucier d'attendre son tour avec le hardware et les process. Le kernel est donc divisé en 4 mottons, 2 petits : Network interface et Interrupt director. 2 gros : IPC et Scheduler. Ces derniers sont les plus complexes et intéressent regardon comment ça marche. (alors ici vous allé voir des concepts généraux d'un IPC et d'un sheduler, donc intéressent si vous en avez rien a foutre de QNX) IPC : what is tha? ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Interprocess communication; Les processus qui communique entre eux. QNX comprend 3 sorte de IPC : "Messages", "Proxies" et "Signals". Les signals sont ce que vous avez déjà surement vue à qqpart ou caller avec kill : SIGKILL, SIGHUP, etc. C'est une méthode (asynchrome) POSIX qui a été implanté dans QNX. Les processus ne font que généralement "mourrir" suite à la réception d'un signal, mais ils peuvent aussi l'ignorer. Bien sure ils peuvent gèrer le signal de la manière qu'ils veulent. Par exemple, si j'envoie SIGHUP a mon application, elle peut rehasher sa config. Les messages sont des paquets de data qui voyagent synchros. On utilise des paquets car comme ça les IPC peuvent se faire autant au niveau local de la machine que sur le réseau, et oui QNX supporte nativement l'échange de messages entre les process de différentes machines. Au fait, dans chaque process QNX, un "virtual circuit" (VC) lui est attribué. Ni plus ni moins, un pid virtuel est attribué à notre process lorsqu'il se spread sur le réseau. fun. Revenons aux messages, il y a 3 fonctions pour gèrer les messages : Send(), Receive() et Reply(). Lorsque notre process veut envoyer dla data , il l'envoit à l'autre process et se bloque les send jusqu'à temps que l'autre process recoive le message. Ensuite, il attend (il se bloque) le reply de l'autre process (ici se fait la syncronisation). Pendant ce temps l'autre est en mode receive-blocked et recoit le message et Reply. Le premier process qui a envoyer la data redevient donc ready. Pour vulgariser ça, on peut le voir comme un genre de "ping". A ping B. B recoit le ping. B reply a A. A recoit le reply et la transmission est terminée. La syncro est donc faite à l'aide des "blocked". Un process ne vas pas renvoyer un autre paquet s'il n'a pas eu la réponse de l'autre, et l'autre ne vas pas recevoir dautre paquet s'il est en train d'envoyer ou de recevoir. La data qui attends se trouve ou? Même pas dans le microkernel, il store rien il fait juste scheduler, donc tout simplement il fait attendre l'autre process avant d'envoyer le Send(). Pour ceux qui aime voir comment un kernel pète en lui sendant dla shit, passer votre tour sur QNX il ne vas pas se bourrer il va juste faire attendre votre application sans faire plus chier les autres que ça (cé ça le "realtime"). Les proxies sont une sorte de message qui font faite spécialement pour ne pas avoir à attendre après l'autre process, donc ça ne bloque pas rien. C'est utilisé lorsqu'on veut pas avoir de Reply() et/ou qu'on veut aviser un process de quelque chose sans nécessairement lui envoyer un message. Vu que justement il n'y a pas de blockage qui se fait, le proxie doit se faire une queue de message, avec un maximum de 65,535 (bon la on vienne de trouver un moyen de bourrer un proxie, mais hey un proxy cé juste une forme de message passer entre 2 process donc y fait juste bifurquer par le kernel, DONC le kernel se bourre pas, heh.) Process sheduling : qui fait quoi quand ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Le sheduler s'occupe de décider quand un process débloque, quand il s'active et quand son temps d'exécution est terminé. Tout les process ont une pritorité qui varie de 0 à 31. Lorsque le OS se demande quoi faire, il regarde le prochain process Ready avec la prioriété la plus haute et va le faire spinner. Il existe 3 méthodes différentes pour faire ça. FIFO: le process continue de s'exécuter jusqu'à temps qu'il laisse lui meme sa place ou qu'il est tassé de sa place par un process de plus haute priorité. Round-robin : Meme chose que FIFO, en plus qu'il laisse sa place lorsque son temps d'exécution accordé est terminé ( 50 milisecondes ). Adaptive : lorsque le temps d'exécution du process est terminé, il baisse sa priorité de 1 et reste de même jusqu'à temps qu'il bloque, et la il revient à sa prioriété de base. Bon alors c'est a peu près tout ce que le microkernel fait.. maintenant alons voir les différents modules s'il sont tout aussi intéressent. Le process manager ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Il faut bien être capable de lancer des applications si le kernel peut pas faire la job. Donc on lance ce process qui lance les autres process Il existe 3 méthodes pour ce faire : fork(), exec() et spawn(). Les 2 premiers sont POSIX et le dernier est caractéristique a QNX. Le fork() cré un nouveau process qui est exactement la même chose que le process qui fait le fork : une sorte de copy du process au complet avec toute les datas. Le exec() remplace le processus en cours avec un nouveau processus. Généralement pour créer un nouveau process on fork() le process en cours et on exec() qqchose dedans. Le spawn() cré un nouveau process qui est l'enfant de celui qui le cré. Donc on est pas obliger de faire un fork() suivit d'un exec pour créer un sous processus. C'est donc plus rapide, et en plus le spawn() peut se faire sur nimporte quel node du réseau (kossé ça une node? attendez d'être rendu au Network Manager pour savoir). Le process manager est le dieu des process et gère leurs vie, qui est composée de 4 phases : - La création donne un process ID au process créé et le fou dans son environnement qui est généralement hérité de son process parent. - Le loading charge le début du process et est faiute par un "loader thread". Ce bidule est en faite du code du process manager qui s'exécute dans le pid du process qui est en train de naitre. - L'exécution du process est l'exécution du programme (me semble c'est clair?). Juste comme ça, si un parent crève pendant que son enfant est en vie, l'enfant ne vas pas mourrir. - Le terminage (termination?) du process se fait lorsque se fait killer ou bien lorsquil exit() ou retourne du main() (donc qu'il a fini son excécution et n'a pu rien d'autre à faire que de mourrir.) Un process a aussi plusieurs "state", comme on a vu tantot lors du IPC. READY(il peut utiliser le cpu), BLOCKED(sync du IPC), HELD(un genre de break qu'on peut donner à un process avec SIGSTOP, il va arrêter d'utiliser le cpu et on peut le contiuer avec un SIGCONT), WAIT-blocked (le process est en train de faire un wait(), yattend) et DEAD (le process est mourru, mais sont parent est meme pas en train d'attendre qu'il rendent complètement l'ame, donc ce process "zombie" n'existe plus en mémoire mais seulement en temps que pid avec un state). La dernière partie a été difficile du coté émotionnel je l'avoue (vie, mort.. pkoi tout ça? hehe), on va donc prendre un break de ces émotions et reviser des concepts d'OS plus normaux avec d'autres modules. Le Filesystem Manager ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Tout les os se doivent se gèrer l'ouverture, la fermeture, la lecture et l'écriture des fichiers. Fsys (de son petit nom) s'occupe de 5 types de fichiers : - Les fichiers régulier où QNX ne reconnait pas les types et laisse les applications s'en charger. - Les dossiers qui agisse comme des fichiers standards sauf que tu peux pas linker dessus et que tu peux pas écrire dessus. - Les liens symbolique, sont comme différent alias qu'on peut donné a un fichier. Un fichier peut avoir donc plusieurs nom différent. Les "." et ".." que l'on retrouve dans chaque répertoire, sont en fait des liens respectivement sur le répertoire courrant et le répertoire parent. Il existe 2 types de liens : le liens symbolique et le hard link. La plupart du temps le symbolique est utilisé, car le hard peut corrompe les fichiers : si tu efface un hard link, tu efface le fichier, tandis que dans le cas du symbolique tu efface seulement les informations permettant de pointer dessus. Si un fichier a plusieurs liens, ou s'il a plus que 16 caractères de long, le lien est conservé dans le fichier /.inodes - Les Pipes et les FIFO : une pipe c'est un genre de fichier qui peut être lu et écrit mais qui n'existe pas, le Fsys s'occupe de faire un buffer pour le contenir. C'est utilisé pour que des applications puisse se communiquer entre elles, par exemple : "ls | more" prend le output de ls et le mettre dans le pipe "|" et more prend son input du pipe. Les FIFO c'est la même chose que les pipes, sauf que les informations sont gardé dans un vrai fichier. - Les fichier bloque spéciaux sont des fichiers qui désigne des périphériques. (Voir plus loin pour plus d'explications) Fsys maintient différentes dates pour chaque fichier (dernière lecture, dernière écriture, dernière modification et date de création) ainsi que des droits pour les utilisateurs, groupes et autres.. tout ce qui a de plus standard! (ceux qui sont perdu un peu, faite un ls -l et regarder. Vous allez voir des rwx, mais je suppose que si vous êtes rendu à lire ici dans l'article vous savez déjà c'est quoi.. sion bien : Read Write eXecute, 3 fois pour user/groupe/others). Aussi, Fsys comporte différents bidules pour augementer ses performances de la manière suivante : Quand il lit différent fichier un après l'autre il s'arrange pour les prendre dans l'ordre qu'il seek sur le disque (comme un vényle). Il se sert aussi du buffer permit par le hardware pour accèder aux fichiers les plus utilisés. Il peut aussi gèrer plusieurs disques à la fois et plusieurs fichiers, ce qui veut dire qu'il est multi-tread (en gros le multi-tread c comme si il se clonait pour pouvoir faire plusieurs choses en même temps). Il devine lorsque les fichiers temporaires ne seront pas utilisés longtemps et il ne les écrit pas sur le disque mais plutôt dans la cache. Et finalement il peut créer un ramdisk pouvant allé jusqua 8 Meg. Tout ça est compris dans le module. QNX se gosse aussi sa propre partition et peut mounter facilement une partition dos a l'aide de Dosfsys qui load tout ça en guest dans /dos. Sur la partition elle même de QNX, les informations suivantes sont inscrites (dans lordre): - Loader : Premier bloque de la partition, contien du code qui dit au BIOS de loader le OS. - Root block : Perçu comme un répertoire normal, il contient le répertoire root (/) le fichier /.inodes, /.boot et /.altboot. Ces deux derniers contienne l'image du OS QNX qui est loader. - Bitmap : QNX se sert de se fichier pour répartir l'espace sur le disque. Il contient une image des bloques libre et occupés qui sont représenter en bit : 1 pour occuper, 0 sinon. - Root directory : Ce répertoire contient les vrais fichier normalement comme nimporte kel autre vrai répertoire, sauf pour le cas de . et .. qui pointe les deux sur / et les fichiers du root block qui sont présent. Le Device Manager ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Ce module s'occupe de faire l'interface entre les processus et les périphériques terminaux. Par exemple /dev/con1 est une console. Il n'a pas grand chose d'intéressent a dire dessus, si ce n'est qu'il soccupe du input/output des terminaux et qu'il buffer toute avec 3 queues. Ces 3 queues sont entre le Device Manager et les driver de périphérique. Les 3 peuvent faire un maximum de 64K et sont divisées de la manière suivante : 2 pour le input et 1 pour le output raw. Le output permet donc d'envoyer la data au driver sans le bourrer. Les 2 inputs fonctionnent en in et cannon pour recevoir de l'information. Le cannon contient la grosseur maximum de la queue que peut recevoir l'application qui l'utilise. Je pourrais faire un schéma, mais je fais exprès pour rendre ça le plus théorique possible ;-) Ces 3 queues sont appliqué 3 fois aussi sur 3 types de drivers. - Console (l'écran), qui peut être virtuelle, donc on peut avoir plusieurs consoles sur un seul écran. On peut lire, écrire, changer des bidules à l'écran, changer la grosseur et évidamment switcher à celle qu'on veut. - Serial, s'occupe du hardware série en input/output. - Parallel, ... ~~~~~~~~~~~~~~~~~~ Intermede ~~~~~~~~~~~~~~~~~~~~~ haha yes! jai trouver une erreur dans le livre moueheheh Dans le livre ya un schéma, (celui que je voulais pas vous dessiner tantot) qui montre les queues OUT/IN/CANON pour chaque driver, dont le parralle et dans le texte c'est spécifier clairement "Dev.par is an output-only driver, so it has no input or canonical input queues." Donc, c'est comme pas supposer être dessiner CANON pour le parralle! Quand même, cé une seconde édition rewriter 5 ans après la premiere... Vive la lecture attentive :-) ~~~~~~~~~~~~~ tachon de revenir au txt normal ~~~~~~~~~~~~~~~ bon heu revenon a notre sérieux la, le Parallel driver marche juste en output et process la data dans une sorte de busy-wait low priority (un ptit while). Bon maintenant le dernier "module"... Le Network Manager ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Net de son petit nom, s'occupe de toute ce qui est réseau QNX. Il fait donc le lien entre les Send() Receive() et Reply(). Il permet de tout balancer le load du réseau, de faire des connections redondante pour de quoi de plus fiable et de faire le pont entre différents networks. Les liens qu'il fait sont en faite des IPC par dessus le réseau. En quelques mots : Net permet au processus de communiquer entre eux entre différentes nodes. Une node c'est carrément un autre ordinateur avec QNX sur le même réseau. Le kernel lui fourni donc une queue de tout ce qui se passe avec les processus virtuels. Ces processus sont des vrais processus qui roule sur une machine, mais qui sont nommés globalements pour tout le réseau. Le Network Manager ne contient pas les drivers pour les cartes réseau, il se link dessus pour envoyer la data. Une node est identifiée de 2 manières : - Le ID physique de la carte réseau (MAC adress) et une combinaison d'un ID de node logique et d'un ID de réseau. La node logique peut être simplement "2", qui est relié à la MAC adress de la carte réseau. - Le ID du réseau permet à plusieurs réseaux logiques d'être interconnecté dans une machine. Affaire freak qu'on peut faire avec le Network Manager : Supposons qu'on a 2 ordis un a coté de lautre connecter en 10BASE-T. La vitesse maximum est donc de 1100kb par seconde. Si on branche une seconde carte réseau dans chaque ordi, et qu'on les relit aussi en 10BASE-T, le Network Manager va s'occuper de passer par les 2 pour les mêmes opérations, donc la vitesse va être de 2200kb par seconde. Le tout se fait automatiquement selon la charge du réseau. Aussi lorsqu'il arrive un problème avec un des liens du réseau, Net va encore d'une manière automatique passer par un autre chemin. TCP/IP et socket : QNX supporte évidamment le TCP/IP, d'une manière dérivé de BSD 4.3. Avec tout ces modules de chargés, on peut se prommèner dans un système QNX d'une manière particulière. Si "ls /" nous donne le listing du répertoire "/", et bien "ls //1/" va nous donner le listing du répertoire "/" sur la node #1. La node #0 est réservé pour faire le tout localement. Aussi, faire "//1 ls /" va faire un ls / sur ta machine, MAIS le ls va être exécuter sur la node 1. Même chose pour tout répertoire/node/programme que vous voulez :-) et finalement nous allons vers la lumière... Photon : Le microkernel graphique ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Le GUI disponible pour QNX s'apelle Photon. C'est un microkernel graphique, un peu dans le même genre que le microkernel lui-même : c'est aussi un tout petit process qui prends à peine 45ko de code et qui charge les différentes composantes en modules externes. Il fonctionne un peu comme X Window, c'est à dire qu'il possède la dualité client/serveur. Il possède aussi un paquet de Widgets prédéfinis : Des scrollbars, progress bar, listes, boutons, arbre, html viewer, etc. Il fite donc bien dans QNX, car il est complet et de type "microkernel". Conclusion of part 1 ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ouffe, J'avoue que tout cela en fait du stock à assimiler. Surtout si vous n'aviez pas de base en théorie de système d'exploitation. Mais maintenant vous pouvez vous dire que vous en savez pas mal sur QNX _et_ sur le fonctionnement général d'un OS. Évidamment il reste encore plusieurs choses intéressentes a explorer genre la mémoire virtuel/ paginé/protégé.. QNX apporte beaucoup de choses de nouveau dans le domaine des OS, ses fonctionalités réseau avec les IPC m'ont vraiment émerveillés, et j'espère que ça la faite autant de votre coté. En passant QNX n'est pas un genre de 0day OS.. ça fait plusieurs année qu'il existe, mais bon c'est moins vieux que IRIX ou HP-UX.. 8-) Bon pour ceux qui veulent bouffer du QNX jvous invite a lire la partie 2 de cet article.. qui sera complétement le contraire de la partie 1.. c'est à dire : de la pure pratique au lieu de la pure théorie. Si vous avez passer des bouts de la premiere partie ou pire, si vous l'avez pas lu, c'pas grave, la deuxième partie s'adresse vraiment à un publique plus large. Sur ce, n'arrêter par de réfléchir, la théorie est quand même une chose pratique dans la vie. < prennez le temps d'allé pisser - Scott Towel > Part #2 : Try it for fun ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ heh Alors me voici live de mon cégep dans un local désert rempli de P2 266. Vla 2 semaine jai installé QNX sur une machine, c'est donc à partir d'ici que je vais écrire la partie "pratique" de cet article! bon pour l'installation vous allez trouver ça facile c'est sure. C'est aussi facile que d'installer n'importe quel shit avec un installer tout fait Vraiment je crois pas que vous avez besoin d'aide la. fak http://get.qnx.com/ ~27 meg, thats all. Vous allez trouver la une version "windows 9x installer". Si vous êtes pas dans Windows 9x, ou bien que vous voulez QNX sur cdrom ben y vous reste qua downloader le ISO de ~260 Megs pis de le burner. Dans ce cas vous pouvez quand meme la foutre dans votre partition FAT32 ou le mettre dans sa propre partition. Pkoi le installer fait 27Megs pis le ISO 260? Paske le iso contient beaucoup plus de "packages" (exemple : quake 2 (et oui QUAKE 2!!!!!!!)) Donc au lieu de toute downloader au fur et à mesure de sur le net, vous n'avez qu'a le "downloader" du CDROM (fun.) Note : rebooter votre machine plus tard.. sinon comment vous allez me lire? Bon, advenant comme moi que vous avez installé ça avec le installer et pas sur votre ordi et que vous vous préoccupez des choses dans le genre que vous voulez pas que personne vienne bretter dessus, et bien faite vous en pas QNX se load à partir d'un seul fichier qui contient son filesys dans votre partition FAT(32) (comme BeOs.). Et puis non ça scrappera pas votre MBR, ça fait des modifications dans le config.sys pour un beau petit menu (encore la vous pouvez vous arranger pour cacher le tout, mais heu tant qua loader du unix sur une bécanne que vous êtes pas supposer, allé pogner Trinux (allo kevo) ou bien il existe une verison de QNX faite pour une seule disquette http://www.qnx.com/demodisk/index.html ) boot up! Hum, on dirait que Windows 95 se load.. ah non c'est vrai ça l'affiche le screen laid (logo.sys) avant le menu. bon beau menu : Menu de démarrage de Microsoft Windows 95 ========================================= 1. Appuyer sur enter pour continuer 2. Poursuite du chargement de Windows... 3. ALL YOUR BASE ARE BELONG TO US Entrez un choix: _ Évidament, j'ai changé le timeout pour 1 seconde et un peu le texte en vérité les choix sont : 1. Windows 2. QNX Realtime Platform 3. QNX Realtime Platform (DMA Disabled) Fak ma prendre 1. ALL YOUR BASE ARE BELONG TO US y ma lair le fun :-) FYI, voici le code du config.sys qui fait ça : [menu] menuitem=WIN, Windows menudefault=WIN,1 menuitem=QNXDMA, QNX Realtime Platform menuitem=QNX, QNX Realtime Platform (DMA Disabled) menucolor=7,0 bon la ya le boot leet (qui est moins long/plein de bébelle que linux) wow déja hehe oui c'est fast en titi meme sur un P2 266 a booter c'est vraiment fou même pas 30 secondes (pis ya le login graphik la.) bon alors la ya un beau petit login screen ben normal User Name: root Password: ****** bon premièrement oui j'ai déjà booté avec et javais toute fucker les settings de la carte video. hehe menfin Si c'est votre premier boot dans QNX vous devriez voir Voyager (web broswer de QNX) avec les help files. Comme vous êtes trop vedge pour les lires et que mon article est super (hehe) on peut laisser faire ça. Bon ok, si vous aimez pas comment j'écris ET SURTOUT si vous voulez savoir les différences entre votre Neutrino et le "QNX" que j'ai décris dans ma partie théorique de cet article allé la : http://support.qnx.com/support/docs/index.html C'est _toute_ la doc officiel disponible. (après lecture sommaire, on dirait que cte doc la est "new school" et que le livre que j'ai lu avant de faire ma partie théorique est plutot "oldshool" (ou ben c'est l'effet qu'un livre me donne comparer a une page web???). -- bon maintenant retennez ça par coeur : -- A droite cliquer sur Terminal (wow méchan quick lunch qui prend toute mon screen de drette... pkoi? C'est simple, avec un gros quick lunch large de même la place pour les fenêtre a dlair plus rectangle comme une feuille (remarquer ça cé mon hyprothèse personnelle) donc plus user-friendlay (ta été chercher ça loin last!!) bon alors on se retrouve avec le prompt # _ la comme c'est pas meiveilleux votre partition DOS est déjà mounté elle est dans le répertoire /fs/hd0-dos dans mon cas donc allé voir dans /fs # ls /fs C'est fun la vous devrier voir un ou plusieurs reps, donc lets go dans celui qui vous plait # cd /fs/hd0-dos tadam welcome to C: La je vienne de comprendre que si vous avez plusieurs partitions elle devrait se nommer hd0-dos hd1-dos etc etc donc allé retrouver ce gentil petit txt dans le bon rep. pour ouvrir le file allé zy avec "ped" # ped Mindkind01.txt weps!! "An error has been detected on this file." bon heu affollez-vous pas c'est surement que Windows save ça en ANSI alors que lui s'attend a avoir du UTF truckin machin standard. Ça se peut aussi que ça vous fasse rien de spécial, mais nyways si sa vous sort ce msg d'erreur, allé zy avec "US Latin" et cliquer sur le bouton pour décoder -- Bon maintenant que vous savez tout ce bout la part coeur, vous pouvez rebooter dans QNX -- (re)Bienvenue dans QNX. Petit dernier "fast trouble shooting" : Vu que je veux pas que vous devenez aussi myope que moi, on va arranger les settings de la carte video, oui bon c'était facile au début de choisir de quoi comme résolution mais la avouer que le refresh rate est trop slow, que la résolution est mauvaise ou que c'est le contraire (dans mon cas le refresh rate était TROP haut.. bad.) Donc la aller dans le menu Lunch (hum on dirait Start ou ben "Patte de gnome" ou ben big K.. entk) en bas à gauche, dans Configure et "Video Display". La vous avez toute vos settings y compris le settings courant Alors la toute est hyper facile remarquer cependant qui va avoir des choix qui marcherons pas. Donc selon vos settings que vous êtes habitué allé zy avec ce que vous voulez. Si vous n'avez aucune idée, allé zy avec 800x600, 32bit et un Refresh Rate de 70 c'est ça que j'ai et mon écran a pas sauté encore. (si votre écran stune 21 po metter ça a plus que 800x600, genre 1280x1024) Bon la vous cliquer sur "Apply" et comme dans Windows ça l'attend 15 secondes donc dépèchez-vous de cliquer sur Accept ! Maintenant, Vous êtes prêts. A la découverte de QNX ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Finalement, ce que je vais faire ici c'est comme vendre le OS. Je suis conscient que c'est pas tout le monde qui vont vouloir l'installer dès le départ; surtout s'il y ne savent pas à quoi s'attendre. Attendez vous pas à quelque chose de "linux", à mon avis c'est plus quelque chose comme FreeBSD mélanger avec BeOS : Les applications en GUI sont toute faite et prête et on peut rien crisser en console à moins de déjà tout savoir les commandes par coeur. Par contre si vous voulez gosser de quoi qui nécessite un OS "unix" rapidement, QNX est une bonne solution à peu près comme BeOS toute en étant différente (wow vive la diversité c'est comme pas pareil avec les système plus commercial dans le domaine des workstations.) Bon alors regardons les features "hots" de QNX et les applications fourni avec. Microkernel ¯¯¯¯¯¯¯¯¯¯¯ Si vous avez lu la premiere partie de cette article vous savez déjà de fond en comble ce qu'est le microkernel de QNX. Ils ont nommé le microkernel "Neutrino" (un neutrino est en faite une des particules les plus petites dans un atome). GUI ¯¯¯ "Photon" de son nom, le GUI est assé jolie à mon avis. Il me fait penser a du beau X-Window et ressemble un peu à BeOS. Photon a aussi un petit frère qui s'apelle XPhoton. Ce dernier permet de charger des applications X-Window dans Photon, cool. Cependant il faut l'installer à part, car ça ne vient pas dans l'installation de base. Les menus sont compréensibles et affichent les shortcuts clavier. La présentation de base ressemble à un Start Menu. Genre ya un "Launch" en bas à gauche avec plusieurs shortcuts vers des applications. Une task bar nous montre les applications en cours et des shortcuts et moniteurs de CPU/ RAM/modem et controle de son. fun. L'application qui sert de shell et qui affiche tout ça sapelle Shelf. Évidament, on peut toute configurer ça comme on veut avec "Shelves" dans Lunch/Configure. Applications ¯¯¯¯¯¯¯¯¯¯¯¯ Dans le quick lunch de droite on retrouve une multitude d'applications qui font que QNX est déjà pas mal complet comme OS dès sa première installation. - Helpviewer : Browser de help ben lfun qui ressemble a ce quon peut retrouver dans windows avec les .chm; assé pratique car il contient toute la documentation sur le OS et les manpages. - Terminal : terminal qui prompt un sh. ben simple avec des bonnes options de paste en popup. - Editor (ped) : Ceci est l'éditeur texte par défault, il est fonctionnel et il fait du texte en genre de RTF (dla couleur, du bold, underline, italic, align.. etc) ~~~~~~~~~~~~~~~~~ Intermede ~~~~~~~~~~~~~~~~~~~~ et merde chu arriver pour continuer mon article, je me dis "bon ma allé checker mes emails", je click sur le log de hotmail.com Voyager ne répond plus. J'assaye de le fermer. Rien. Je start un terminal tant bien que mal.. je check mon ps je trouve le pid de Voyager. kill -9 pid_voyager PAFF system lock-up. number/shift qui répond pu, la mouse qui bouge pu. Conclusion : bien que ça la dlair stable, QNX a planté devant ma face en mode "normal" (donc DMA a ON). Les autres fois jétais en mode DMA disabled et ça la jamais planter. entk faite ce que vous voulez avec cette conclusion, mais si jai jamais planter en DMA disabled et que jai planter la premiere fois que jai gosser en DMA à ON .. ben le monde régulier plante. heh bon la je suis encore en mode régulier.. ~~~~~~~~~~~ de retour à notre programme principal ~~~~~~~~~~~~~~~~ - File Manager : Windows users bonsoir, cet application nous permet de voyager dans les répertoires du système tout comme Windows Explorer mais en plus laid. - Image Viewer : Viewer un peu laid qui a ouvert seulement 1 des 3 BMP qui y avait dans la partition dos sur la machine. Au moins les 5-6 jpg/gif que jai pogner dans le help de QNX se sont ouvert comme faut. - Desktop Config : Configuration de base pour les fenêtres et les backgrounds. Normal. - Screen Saver : 12 screensavers qui ressemblent aux plus laids dans Linux/X-Win. Moyen. - Calculator : Calculatrice, rien de super, même pas scientifique. - Dialer : espèce de shortcut qui nous ammène dans les dialup settings dla config du network.. surement pour montrer au puriste en dial-up comment allé sur le net "facilement". Remarquer ici pour le net jai pas eu trop de trouble, car avec le réseau ya toute trouvé les settings tout seul (sauf le proxy bien sur). - Voyager : Cool, un broswer. C'est pas encore Mozzila (Netscape) ou Internet Explorer, mais je dirais que cé comparable à la derniere version de Opera, mais qui ressemble tout de même au 2 bigs browsers. Chu pas capable de me logger dans hotmail (voir note plus haut dans l'intermede), mais slashdot, pis doyoulookgood marche bien... oh! Error : Out Of Image Cache Space. D'accord.. ya une limite de cache d'images (je suis sur dylg, et j'ai 3 fenêtres de broswers de ouvert dont une sur la page de Véro Poulin qui a une webcam ça dlair. haha Bon jai été dans les Prefs pis y me demande de restarter Voyager pour que ça fasse effet. J'ai mis 8 Mo au lieu du 4, et je peux maintenant voir la pic de l'amie à vero poulin. assé cute. bon je suppose que vous voulez le url pour faire des TESTS BIEN SURE. http://www.multimania.com/veropoulin/46.html Remarquer que le BG prend de la place en crime et si vous enlever le 46.html vous avez une page full de pics.. donc c'est bon pour tester la cache, aussi vous pouvez ouvrir une fenêtre comme dans IE avec Shift click sur le lien.. Bon, je viens de remarquer aussi que le tag blink fonctionne.. Aussi que véro poulin est célibataire, mais son amie je sais pas. Idée : je vais tester si Voyager envoie bien les formulaires et je vais lui demander en comment. (je signe la mailling list de mindkind pour les intéresser à la suite de cette histoire folle.) Successfull. heh. Trève de plaisanterie Voyager est un bon broswer qui fait bien sa job À mon avis cé l'apps la plus cool qui vient avec le OS la. - Vmail : hum on dirait ben un clone de Outlook, j'peux pas vraiment le tester mais y ma d'lair nice. - Bon ensuite de t'ça ya MediaPlayer, Mixer, NetWork CFG, Spool Mgr, Localisation.. self explainning. - Package Mgr : Wow. ça jai trippé ben raide.. dite que ca ressemble à RPM manager ou Windows Updater je men fou, je l'aime. Le server est fast et ya tout plein de progs à downloader pour installer dans QNX, et toute ça d'un seul click... toute s'installe tout seul! On y retrouve des patchs pour QNX, et plein de softs. Le cdrom QNX (le iso de 200 qq meg la) contient la plupart des affaires.. mais ya surement du nouveau stock ou des extras sur le www repository. On retrouve vraiment de toute : Perl, Python, Tin (news reader), Phirc, MCFTP, Vim, Sendmail, pine, Quake 3, Doom, RealPlayer... ouff yen a trop :-) Menfin yen a en masse pour en assayer pendant qq jours sans se tanner Autre affaire de fun, dès que vous installer un package, ya un lien qui va s'ajouter dans le menu "Lunch". Vraiment pratique. (bon ok dans mon cas ça me tantait pas de tapponner avec le driver video fak Quake3 marche pas mais doom marche dans une petite fenêtre!) Si tout ça vous enchante pas, dites-vous que n'importe kel application console POSIX est supposée se compiler (si elle supporte QNX bien sûr ou si elle est _standard_) et qu'on peut runner des applications X-Windows à l'aide de Xphoton; un serveur X qui run dans photon. blah blah ¯¯¯¯¯¯¯¯¯ Et bien, je vois vraiment pas quoi rajouter de plus, si ce n'est que c'est un OS qui est à assayer (surement au même point que BeOS). La version que vous downloader et installer sur votre machine n'est pas exactement la même "distribution" que les gros serveurs ont, mais c'est quand même le même microkernel et la même interface graphique Ce logiciel est made-in-canada ; le HQ d'la co est à Kanata en Ontario. Aussi QNX est pas "hyper ressent". En 1980 la co. a été fonder, et QNX a été le premier OS à offrir différents concepts : Le microkernel en 81, le processing transparent en 84, microkernel POSIX realtime en 90, web browser(Voyager) embeded dans le OS en 97, OS avec un GUI/browser/dialer/TCPIP/etc qui rentre dans un floppy 1.44, etc.. Décidement QNX est vraiment _cool_, heh. Bon heu m'en vas me faire tatouter QNX juste la. The end. (mon premier article, wouhou! Le titre est par Wyze et jle remerci de mavoir donné le gout d'écrire, j'aime ça.) - LastCall_ ----------------------------------------------------------------------- Liens référencés : http://get.qnx.com/ http://www.qnx.com/demodisk/index.html http://support.qnx.com/support/docs/index.html http://www.hotmail.com http://www.slashdot.org http://www.doyoulookgood.com http://www.multimania.com/veropoulin/ Pour une lecture plus détaillé sur la partie théorique référer vous au livre suivant : -> QNX Operating System, System Architecture Gentil petit guide de 175 pages écrit par QNX Software System Ldt. Première édition publiée en Janvier 1992, deuxième en Octobre 1997. Donne une aperçu détailler de la structure et des fonctions de QNX: Le Microkernel, les System Managers et le IPC.