Vous êtes ici : Logram

Logram - communauté de passionnés et mini système d'exploitation

Bienvenue sur le site de la communauté Logram, un site sur lequel s'entraident les développeurs adeptes de la programmation avancée en C, C++, Assembleur ou autre. Logram est aussi un site d'échange d'informations entre passionnés de mini systèmes d'exploitations.

Vous trouverez sur ce site toute l'aide que vous pourriez avoir besoin. Un forum est à votre disposition pour vos question. Des tutoriels vous permettent d'apprendre plus facilement, et pas-à-pas.

En étant inscrit, vous pourrez même mettre en ligne vos propres tutos ou documentations, traitant de la programmation, ou de la construction de systèmes d'exploitation

Logram est aussi une communauté formée autour d'un projet : le système d'exploitation Logram. Ce système d'exploitation est libre, sous GNU GPL, et est disponible en téléchargement.

Si vous c'est votre première visite sur le site, vous avez un tutoriel qui vous explique comment vous servir du site.

Ensemble, nous pouvons faire évoluer ce site et cette communauté de manière productive, et contribuer à la bonne ambiance qui règne ici.

Dernières news
Auteur Titre Date
steckdenis La distrib Logram est lancée, le développement commence le 01/11/2008 à 10:24
steckdenis Panache dans le SVN le 22/10/2008 à 16:02
steckdenis Des choix difficiles le 11/10/2008 à 15:04
steckdenis Les Llibs lancées ... presque le 09/10/2008 à 18:07
steckdenis L'histoire de Logram le 08/10/2008 à 19:06
steckdenis Logram se prend en main le 04/10/2008 à 08:45
steckdenis Logram : OS, Distrib, bureau ? le 27/09/2008 à 09:41
Hadware Mise en route du LHC le 25/09/2008 à 17:35
steckdenis Des tutos à jour le 14/09/2008 à 19:41
steckdenis Encore une grande avancée pour Logram le 06/09/2008 à 15:38
Derniers tutoriels
Auteur Titre Date
steckdenis Programmer (pour) Logram le 11/10/2008 à 11:18
Mc Giver Les Fonctions à paramètres indéterminés le 11/10/2008 à 11:17
steckdenis Créer des pilotes le 14/09/2008 à 19:31
steckdenis Comprendre Stage 2 le 14/09/2008 à 19:31
steckdenis Tester Logram le 14/09/2008 à 19:31
À lire :
Programmer (pour) Logram
Derniers messages
Auteur Dans Date
animalmuppet Video Promotionelle il y a 3 minutes
animalmuppet L'OS parfait. il y a 7 minutes
BonG Passagé à la ligne il y a 16 minutes
Twiners 13 Video Promotionelle il y a 17 minutes
vins84 L'OS parfait. il y a 17 minutes

La distrib Logram est lancée, le développement commence

# par steckdenis, le 01/11/2008 à 10:24, 45 commentaires

Bonjour,

Enfin un peu d'organisation, et un peu d'avancées :D .

Cela fait 3 jours que j'essaye de vous conconcter une distribution de base pour Logram, contenant un minimum de paquets, et correctement configurée. Je voulais me baser sur LFS, mais c'est trop difficile à gérer.

Logram est donc basé sur Debian, pour le moment. La seule chose qu'il utilisera au final de Debian est le gestionnaire de paquets APT, qui est remarquablement bien fait. Pour le moment, tous les paquets de Logram sont des paquets de Debian, mais au fur et à mesure qu'on développera nos propres paquets, ils s'ajouterons aux paquets Debian, ce qui fait que Logram sera de plus en plus Logrammien, tout en bénéficiant du travail de l'équipe de Debian, c'est à dire les correctifs de sécurité, et surtout de stabilité :) .

Passons aux choses sérieuses, téléchargeons Logram. Le fichier logram.tar.bz2 (232,7 Mio) est diponible ici :

Télécharger Logram Debian-Based


Installation de Logram


Je n'ai pas pu vous faire un LiveCD, pour la simple et bonne raison qu'un LiveCD est tout de suite beaucoup plus lourd. Le fichier que vous téléchargez est une image disque de Logram.

Pour installer Logram, voici la marche à suivre :

Attention ! Cette manipulation est dangereuse, comme toute installation. Vous devez vous y connaitre en Linux, et pas seulement savoir utiliser Ubuntu. Vous allez modifier les fichiers de configuration de grub. Une erreur de manipulation peut rendre Logram inutilisable, voire même tout votre disque.


  • Téléchargez le fichier
  • Partitionnez votre disque pour créer une partition réservée à Logram, de minimum 1Gio (Logram est amené à grossir)
  • Formatez cette partition en ext3, ext2, ou ReiserFS
  • Montez cette partition
  • Décompactez l'archive en root !, par un simple tar -xf logram.tar.bz2.
  • Copiez ce que vous avez décompressé sur la partition avec la commande cp -ar, c'est très important, car il faut absolument garder les liens symboliques
  • Les fichiers décompressés ne doivent presque pas être retouchés.
  • Fusionnez le contenu du dossier logram_debianbased/boot (pas les sous-dossiers) avec votre dossier boot habituel.
  • Editez votre menu.lst pour ajouter une ligne qui permet de démarrer le noyau Logram placé dans votre dossier boot (Logram fourni un petit fichier menu.lst, qui comprend les enregistrements nécessaires à ajouter dans le vôtre. Changez la ligne root (xxx) en dessous de title Debian... pour qu'elle soit comme celle de vos autres entrées, et changez l'argument root du noyau pour qu'il pointe vers la partition sur laquelle vous avez installé Logram)
  • Redémarrez, tout devrait normalement marcher

Si vous avez des problèmes, faites-en part sur les commentaires ;) .

Si jamais je vois un seul message qui se termine par "expliquez bien, je suis nouveau sous Linux", je bannis le membre pour 10 jours :pirate: ! Je vous ai dit plus haut qu'il fallait avoir de solides connaissances, essayez de ne pas poser de questions de noob svp.

Utiliser Logram


Si jamais vous redémarrez, et que vous tombez sur "localhost login :", c'est que vous avez tout réussi. L'utilisateur root n'a pas de mot de passe, c'est à vous de lui en donner un. Un utilisateur normal, nommé logram a le mot de passe azertyuiop. Utilisez-le si vous ne voulez pas toucher au système.

Dans le dossier /home/logram se trouve un fichier README.txt, qui explique comment se servir de Logram. Vous avez deux sous-dossiers : svn_anonyme qui contient les versions SVN de quelques applications Logram (juste Panache pour le moment), et zNavigo qui contient le navigateur web des zéros (léger, rapide, et codé avec Qt).

Gérer le système


Vous êtes sur un système Debian de base, mais correctement configuré. Vous disposez d'un serveur X11 complet, avec la majorité des pilotes vidéo, ainsi que de tout ce qu'il faut pour développer avec Qt : build-essentials et libqt4-dev ;) . Vous pouvez directement commencer à coder.

Remarquez simplement que Debian, comme Ubuntu Ubuntu, comme Debian, fourni le programme apt-get qui vous permet de très facilement ajouter de nouveaux paquets à votre système.

Abandonner la console, passer en mode graphique


Logram est bien sûr déjà utilisable en mode graphique :D . Pour cela, suivez les étapes suivantes. après chaque commande se terminant par #, remplacez le # par &. C'est un bug du lCode.

Code : console
  1. localhost login : logram
  2. password : azertyuiop
  3.  
  4. cd svn*/panache
  5. qmake
  6. make clean
  7. make
  8. cd ..
  9. cd zNavigo
  10. qmake
  11. make clean
  12. make
  13. cd ..
  14. X#
  15. <Appuyez sur Ctrl+F1 pour revenir à la console>
  16. znavigo/zNavigo#
  17. xterm#
  18. svn*/panache/panache#
  19. <Appuez sur Ctrl+F7 pour découvrir Panache>

Voilà, vous vous retrouvez avec un Panache lancé, avec deux onglets dedans : zNavigo (ouvert sur la page du SdZ :-° ) et une console xTerm, pour vous permettre de gérer le système avec zNavigo ouvert à côté ;) .

Bon dév ;) .

Panache dans le SVN

# par steckdenis, le 22/10/2008 à 16:02, 14 commentaires

Bonjour :) ,

J'ai une bonne nouvelle à vous annoncer : Panache, le décorateur de fenêtres, a fait son apparition dans les dépôts SVN. Il a en fait atteint une certaine maturité (on peut l'utiliser maintenant), et je laisse donc tous les intéressés lire son code source et le modifier.

Si vous modifiez Panache, le mieux est de me faire parvenir par MP une nouvelle archive panache.tar.bz2, pour que je puisse juger de vos modifications, et les intégrer dans le SVN. Si vraiment vous avez bien travaillé, je pourrais envisager de vous donner un accès en écriture au SVN de Logram :) .

Ce qu'il reste à faire dans Panache


Panache est utilisable : bonne nouvelle. Cela veut dire que vous pouvez dors et déjà commencer à coder vos propres petites applications pour Logram, avec Qt.

Voici la liste des choses qu'il faudrait encore intégrer dans Panache :

  • La correction de quelques petits bugs, et l'amélioration générale des sources (je les ai tappée un peu vite, il reste encore quelques messages de débogage, des commentaires mal formés, etc).
  • La gestion d'un fichier de configuration pour un peu de tout, comme l'organisation des onglets (en haut, en bas, une taille maximale pour le titre, etc), ou les couleurs/transparence utilisées par les décorations de boîte de dialogue (une liste de TODO: dans Tab.cpp ;) )
  • Le menu général, qui permettera de lancer de nouvelles applications, car pour le moment, GNOME doit encore être lancé pour avoir l'onglet x-nautilus-desktop (icônes du bureau) et les Panel supérieur et inférieur de l'écran GNOME.
  • L'application annexe qui s'occupe d'afficher le premier onglet au démarrage, Bureau, et qui affichera le papier peint ainsi que les icônes.
  • La gestion du cliquer-glisser pour les onglets, pour pouvoir créer un nouveau groupe d'onglet. Tout est déjà en place : la collection Workspaces dans FenPrincipale, le QGridLayout pour positionner les Workspaces, etc
  • Une amélioration de la gestion des fenêtres en général, en particulier une meilleure détection des boîtes de dialogue, etc

En clair, il reste encore beaucoup de choses :) .

A plus.

Des choix difficiles

# par steckdenis, le 11/10/2008 à 15:04, 55 commentaires

Bonjour,

Je vous rassure, pas de mauvaises nouvelles ici :) .

Ca fait quelques jours que je travaille aux Llibs (avec l'aide de Malgon :) ), et je me pose une question fondamentale, difficile, ou plutôt des questions : Qt or not ? X11 or not ?

L'idée de départ est de créer les Llibs, et je vous rassure, on créera toujours les Llibs, aussi complètes que possible :) .

Il y a seulement un problème, et pas des moindres : l'interface graphique, et surtout la compatibilité. L'idée principale était d'utiliser le framebuffer, mais je me suis rendu compte de quelque chose : si on utilise le framebuffer, aucune application, Windows ou Linux ne sera compatible pour la simple et bonne raison que les applis Linux utilisent X11, ainsi que Wine.

Il semblerait donc qu'il faille utiliser X11, mais alors, vas-t-on recréer une lib graphique qui utilise les Xlibs (librairies de X11), ou allons-nous utiliser Qt qui est très puissant et très complet, ou GTK qui est léger et performant ?

Je résume les avantages et inconvénients à utiliser X11 avec une librairie :

X11 avec Qt ou GTK


Le choix le plus simple, mais où on travaille le moins, quoiqu'il faut encore faire beaucoup de choses, comme l'intégration de Qt/GTK dans les Llibs, et le reste des Llibs (pour qu'on n'aie pas à utiliser des librairies annexes pour créer de bonnes applications, les Llibs ne seront jamais abandonnées).

Avantages


  • On installe X11 et Qt, et on peut commencer à développer. Mieux encore : vous pourrez développer confortablement sous votre Linux, directement dans Code::Blocks, en utilisant Qt ou GTK (je vous laisse le choix de la lib). Même les Llibs pourront êtres développées dans ce cadre magnifique :)
  • La puissance est au rendez-vous : on a la vitesse de X11 (qui utilise l'accélération matérielle, même si X11 est assez lourd) avec la puissance de Qt (on peut facilement faire de très belles et puissantes applications)

Inconvénients


  • On pourrait nous prendre pour des flemmards, car une bonne partie des choses est déjà faite, mais marche.

Conclusion


Une bonne solution à priori, car on pourra développer des applications OpenGL, utiliser tout Qt, développer confortablement sur son Linux, etc.

De plus, le plus intéressant reste à faire : les Llibs, qui se concentreraient justement sur le défaut de Linux : l'éclatement des librairies. Par exemple, une partie des Llibs déjà faite est la gestion des fichiers .conf, chose inexistante autre part sans le coder soi-même dans une librairie statique, ou directement dans l'application.

Qt/GTK avec notre propre interface graphique


Ici, c'est entre les deux, et je vous dis tout de suite que cette solution ne me plaît pas, vous allez voir pourquoi ;) .

Avantages


  • On a la puissance de Qt accessible, et on est compatibles avec les applications Qt existantes, nécessitant une simple recompilation
  • Ceux qui aiment voir les gens travailler ( :-° ) vont être content, car on doit tout refaire également. De plus, on pourrait plus facilement intégrer les bonnes choses de Logram, comme les onglets, etc, quoique c'est aussi possible avec X11

Inconvénients


  • On utilise Qt, donc on ne refait pas tout (quoique ça peut être un avantage)
  • On n'est compatible avec rien, comme avec le noyau Logram : une application GTK ne trouvera pas X et plantera, une Qt normal aussi, une wxWidget aussi, une Java aussi, et Wine ne marchera pas, car X11 est une brique très importante

Conclusion


Je vous propose tout de même la solution, même si je la trouve très mauvaise.

Les Llibs pures


Solution intermédiaire, elle a son charme, même si on risque de ne jamais pouvoir utiliser Logram, ou en tous cas, on aura un gros problèmes de compatibilité et de manque de performances.

Avantages


  • On crée tout nous-même, on obtient alors un système léger et "Logrammien", entièrement fait par l'équipe :)

Inconvénients


  • Comme plus haut, sans serveur X, on est compatibles avec rien
  • On risque de se retrouver avec quelque chose qui marche, et on voudra porter les applications qui nous tiennent à coeur. A ce moment là, on va se frotter à un gros problème : le manque de fonctionnalités, car on n'aura pas réussi à implémenter tout ce qu'on veut, et on n'aura peut-être même pas imaginé qu'une certaine fonctionnalité existe.

Le mot de la fin


Je vous laisse choisir et débattre (intelligemment) sur les commentaires de news. Si une idée ne plaît pas à quelqu'un, inutile de menacer de quitter l'équipe ;) . Discutez-en simplement calmement, car pensez à une chose : «Les absents ont tors», autrement dit, si vous êtes contre une idée, et que vous quittez Logram, c'est une voie en moins contre cette idée. Je dis ça juste comme ça, pour que vous ayez toutes les cartes en main :) .

Bon débat, à nouveau (on débat souvent pour le moment).

Les Llibs lancées ... presque

# par steckdenis, le 09/10/2008 à 18:07, 10 commentaires

Bonjour :) ,

J'ai une grande nouvelle, ou plutôt deux grandes nouvelles à vous annoncer.

Logram est enfin plus ou moins organisé


Jettez un oeil au tuto coup de coeur : il a changé !

Le tuto coup de coeur du moment est le tuto qui explique comment programmer pour Logram, ou comment programmer Logram tout court. C'est un tuto que j'ai commencé à rédiger il y a quelques jours, et qui est normalement acceptable. Si vous constatez qu'il y a des erreurs ou des imperfections, créez un topic qui les rescence dans le forum rapport de bugs. Une fois que quelqu'un a créé son topic, n'en créez pas de nouveau, postez dans le sien, en résumant au début de votre post les autres imperfections trouvées, mais pas corrigée.

Ainsi, si vous voyez une faute, une idée mal exprimée, etc, je pourrai tout corriger en une seule fois :) .

Les Llibs sont disponibles dans le SVN


Cliquez maintenant sur le lien "version SVN" : vous tombez sur la racine du SVN de Logram. Le dossier du dessus contient les sources des Llibs, celui d'en dessous celles du noyau Logram.

Compiler et tester les Llibs


Bonne nouvelle, vous n'avez, et n'aurez, pas besoin de construire un LFS pour tester les Llibs. Je les teste moi-même sous Ubuntu, et ça marche très bien.

Pour compiler les Llibs, placez-vous dans le dossier des sources, et faite "make" suivi de "sudo make install". Les Llibs se trouvent alors dans /usr/lib/. LibLDraw n'existe pas encore, le makefile échoue donc. Copiez manuellement le contenu du dossier include dans le dossier /usr/include/llibs/. Vous avez un environnement complet :) .

Pour tester les Llibs, un simple "make check" suffit. Vous pouvez aller jetter un oeil dans le dossier tests, pour voir comment on utilise les Llibs, c'est très simple. Pour créer votre propre application, n'importe où (donc pas dans les sources des Llibs), il vous suffit de la lier avec l'option -llcore (pour LCore), et d'inclure les fichier llibs/conf.h (pour tester la gestion des fichiers de configuration).

Pour pouvoir compiler et utiliser les Llibs, vous avez besoin, pour Ubuntu, de libc6-dev, ou de glibc-dev. En fait, vous devez simplement avoir les fichiers d'en-tête de la LibC.

Tu parles de Framebuffer, mais comment je le teste sous Ubuntu, Fedora, et autre, qui utilisent X ?

Bonne question ;) .

En fait, les Llibs feront plus qu'utiliser le framebuffer, et c'est d'ailleur pour ça que je commence par coder la gestion des fichiers de configuration : les Llibs géreront des pilotes graphiques, dont le fameux pilote de framebuffer, mais aussi le pilote ... SDL :) .

Ainsi, les applications Logram pourront être testées dans une fenêtre SDL d'une certaine résolution. Le problème, c'est que chaque application aura sa propre fenêtre SDL, bien qu'elles se partageront le framebuffer. Pas de soucis donc :) .

Le mot de la fin


Pour le moment, il n'y a que moi qui ai l'accès au Llibs (pour committer, vous pouvez les lire ;) ). Dès que les bases seront jettées (donc justement la gestion des fenêtres, des images, le pilote SDL, et d'autres détails), le codage à plusieurs pourra commencer :) .

A plus.

L'histoire de Logram

# par steckdenis, le 08/10/2008 à 19:06, 14 commentaires

Bonjour,

Il y a quelques mois, je vous avais fait une news qui rassemblait toute l'histoire du site. C'était intéressant, mais moins que ce qui va suivre : l'Histoire de Logram, quand il était caché chez moi, depuis plus de 6 ans et demi !

C'est un peu du racontage de vie, mais ça pourrait toujours vous intéresser de savoir pourquoi je dis de temps en temps "On fera ça comme ça et pas autrement", d'où je tire mes réflexions, et surtout ce qui fait que Logram est unique :) .

2002 : Progrâame


Quand je dis 6 ans, c'est vraiment 6 ans. C'est en fait facile à dater : j'ai acheté Visual Studio 2003, qui venait de sortir, et Visual Studio sort toujours un an avant la date marquée dessus :p !

A ce moment, Logram n'est qu'un embryon : j'ai vâgement une idée d'à quoi ressemblera l'interface graphique, encore très ressemblante à Windows. Je l'ai même entièrement codée en Visual Basic, ce qui m'a pris des mois, mais m'a permis de découvrir la programmation. Je n'ai malheureusement pas de screenshots, mais vous savez l'imaginer : un arrière-plan, une barre des tâches, avec le logo Logram dessus, et quelques utilitaires (pas mal en fait : un programme de dessin comme Paint, un visionneur de diaporamas, un panneau de configuration, un gestionnaire de base de donnée en XML, un programme de montage vidéo, un éditeur de texte (Texte-Up :p ), et d'autres petites chose).

Ce "Logram" (qui s'appelait encore Progrâame, j'étais spécial) nécessitait le .NET Framework 1.1.4322, un comble pour un OS !

2003 : Progrâame 2


Fini le .NET, je me documente, et me décide enfin à coder un vrai OS, en C, et un peu d'assembleur. Tout ce que je sais maintenant, je le tiens de cette période. Je signale aussi que je n'avais pas Internet, c'est pour ça que vous ne trouverez aucune trace de moi avant Février 2008, date à laquelle j'ai enfin eu Internet.

Maintenant, place au screenshots, ou plutôt aux vues d'artistes. Vous remarquerez que c'est devenu très différent de Windows :) :

image utilisateur


Vous remarquerez que je n'était pas un excellent graphiste, et surtout que Logram n'avait pas encore de logo (oui, c'est bien Logram marqué dessus, et pas Progrâame. J'ai changé de nom parce que Progrâame ne rentrait pas sur le bouton :rouge: ).

2004 : Logram grandi


Pas beaucoup de codage cette année, j'en avais marre :p ! Par contre, pas mal d'idée, de design, d'images, de mise en place. Autant j'ai tout appris en 2003, toute l'architecture de Logram a été entièrement pensée en 2004. Les rares fois où j'ai accès à Internet, je reste scotché à Wikipédia : je veux savoir comment marche un disque dur.

Nous avons quelques petites améliorations du côté du graphisme : Logram se trouve un logo, certes moche, mais logo quand-même :

image utilisateur


Ici, quelques remarques, en particulier pour la ligne en dessous : je parle mal anglais, et je suis encore toujours tordu dans le choix de mes noms :p !

Vous ne voyez rien :o ? Et oui ! Evêr Fvision est l'ancien nom de Tébéas ! Quand je vous dis que tout a été pensé cette année !

Du côté de l'interface, nous avons ceci :

image utilisateur


Ah, là maintenant, Logram devient unique. Vous remarquerez que je suis seul à connaître l'existance de Logram, ce qui fait qu'il n'évolue pas très vite, et surtout que mes idées (bonnes ou mauvaises) restent très longtemps en place (vous pensez quoi des couleurs :p ?).

2005 : Codage en assembleur


Alors maintenant, ça se complique fortement. Mon Logram en C ayant été un échec (j'avais fait tout le code, mais vraiment tout (fichiers, applications, threads, synchronisation, timers, file de messages, gestion des exceptions). Je compile ... ça marche pas :'( . J'avais codé dans un C tellement .. douteux, avec plein d'inline assembly, sans pointeurs, sans structures, etc, que le compilateur m'a signalé plus de 2300 erreurs !

Une fois toutes les erreurs éliminées, il ne bootait pas : tous mes for() étaient faux.

Bref, je commence le Logram en assembleur, et c'est difficile. Entre deux codages, j'ai le temps de bâtir un empire, malheureusement détruit maintenant, à cause d'un plantage de Windows, et pas de sauvegardes. J'avais codé un jeu de passerelle (avec éditeur de niveau, etc), un casse brique, trois ou quatres sites webs, qui sont restés en local (et fait avec FrontPage :-° ), etc. Logram évolue encore, toujours dans le même type d'idées (et de couleurs :p ) :

image utilisateur


Il y a du changement. Pour l'anecdote, c'est à ce moment que je trouve moi-même (pas encore Internet) la formule de transparence : couleur = ((Pp-Ap)*Op)+Ap, où Pp est la couleur de premier plan, Ap celle d'arrière-plan, et Op l'opacité (0.3, 0.223, etc).

Bonne nouvelle : Logram en assembleur boot ! Mauvaise nouvelle : je ne connais pas encore Qemu, je l'installe sur un DD, et je dois rebooter mon ordi à chaque modification, et même deux fois : Windows >> Dos pour l'installation >> Logram pour tester >> Windows pour modifier. Logram affiche un magnifique écran jaune clair au démarrage. J'ai codé un petit chargeur d'images, voici :

image utilisateur


L'année 2006 est la même que 2005, je fais toujours la même chose.

2007 : Linux


Logram en assemleur ayant été abandonné (mauvais à la base, et j'ai de nouveau fait l'erreur de tout coder avant de tester), je décide de le refaire en C. Pour cela, il me faut un compilateur qui sort du binaire, chose inexistante sous Windows.

Je dois donc passer à Linux, et je peux dire que ça n'a pas été facile : j'ai le malheur de tester Mandriva One 2007 Spring. C'est le genre de distrib qui met 6 minutes à booter, pour rien. J'avais juste FireFox en fait, et je devais démarre en console pour rebooter X, car ma carte graphique était mal détectée. De plus, aucune trace de GCC dessus ! N'ayant pas internet, je n'ai pas pu installer le paquet. J'ai donc fait une vaingtaine d'allé-retours au Cyber Café pour aller télécharger les sources, et je me suis frotté aux ... dépendances en boucles : comment compiler GCC sans avoir GCC ?

Pas de panique, je télécharge un GCC tout compilé, qui me réclame GAS ! Pas de GAS compilé malheureusement. Je télécharge les binutils, mais je ne peux pas les compiler :'( . Je retourne sous Windows :'( :'( .

A la fin de l'année, j'essaye Ubuntu 7.10. Je dois à nouveau m'y reprendre plusieurs fois avant d'être séduit, car autant Windows est utilisable sans Internet (il y a des CD), autant Linux n'est rien sans le web. Je retourne sous Windows :'( .

2008 : l'envol


Début 2008, j'obtiens internet, mais seulement les week-ends, et en wifi, ce qui est déjà pas mal du tout. Je me met confortablement à Linux, et je découvre l'univers du web : wikipédia, les recherches Google et ... le Site du Zéro !

Je suis tombé dessus au hasard d'une recherche sur la programmation de sites web, et j'ai bien aimé. Je suis encore retombé dessus en cherchant un truc sur le C, et je me souviendrai toujours de ce que je me suis dit : «M@téo21 a fait deux tutos sur deux sujets différents, il doit se faire aimer sur le site». J'avais raison :-° .

Pour Logram, je code DeSte IDE : un IDE qui utilise le langage de programmation DeSte. Je le met comme source sur Codes Sources, et je recois un 10 :) . Je trouve ça chouette, c'est mon premier contact avec le "libre" (parce que Codes Sources est tout de même sponsorisé par MS, c'est la seule raison que j'ai trouvé pour qu'ils utilisent ASP .NET :-° :-° ). Je décide de partager Logram, et si vous faites une recherche, vous pouvez encore tomber sur la présentation de Logram, qui date un peu (version 0.0.0.3, c'est vous dire !).

Là, c'est de l'histoire connue pour les anciens membres : je recrute, beaucoup de monde arrive, on crée 4 versions différentes du site, etc.

Voilà, j'ai bien raconté ma vie, mais ça peut vous intéresser. J'ai fait ça car je suis tombé sur une vieille sauvegarde de mes documents. Je me suis dit «Pourquoi pas leur montrer tout ça ?».

A plus.

Logram se prend en main

# par steckdenis, le 04/10/2008 à 08:45, 34 commentaires

Bonjour,

Vu l'effervescence provoquée par la dernière news, vous devez être au courant des dernières informations. Je rappelle brièvement les faits :

Ca fait des années que je code Logram, et presque 6 mois (déjà :O ) que je le code avec le reste de l'équipe. Tout se passait très bien, et tout se passe encore très bien. Le problème, c'est que dans l'équipe, il y avait (royalbru est parti :'( ) deux codeurs systèmes : moi et royalbru. Les autres suivaient le projet de près ou de loin, mais sans vraiment participer.

J'ai donc pris les choses en main : on va utiliser le noyau Linux (donc un noyau tout fait et qui a fait ses preuves) comme coeur de Logram. Le problème, c'est que le noyau Linux ne vient pas tout seul, il faut aussi lui ajouter quelques outils, comme Bash, GCC, les binutils, uDev, SysVinit, etc pour qu'il soit bootable. Cet ensemble d'utilitaire s'appelle le un LFS (pour Linux From Scratch). C'est très instructif, il vous apprend dès le départ à créer votre propre système, mais là n'est pas la question :-° .

Un LFS n'est pas suffisant pour avoir un système correct, et surtout graphique. Je me suis donc posé la question, et j'ai posé cette même question au reste de l'équipe, de savoir à quel point il fallait intégrer des outils GNU dans ce LFS pour avoir Logram. Je m'exprime plus clairement : un LFS, c'est le shell Bash, et rien d'autre. Vous ne pouvez rien faire, ni même pinger votre routeur, ou aller sur internet. La seule chose qu'il permet, c'est de compiler d'autres applications.

L'architecture de Logram


Trêve de bavardages, passons aux choses sérieuses :pirate: !

Le choix qui a plus ou moins été retenu (pas beaucoup de personnes se sont prononcées) a été de prendre le noyau Linux, ainsi que quelques outils GNU (GCC, mais aussi les net-tools, Lynx, et d'autres petites applications sympa), et de tout construire autour. Il restait un choix à faire : X11 ou pas X11, pour le mode graphique.

J'ai donc installé X11 sur mon LFS, et j'ai vu que c'est très lourd pour pas grand chose (bon, on a quand-même la gestion des polices, la gestion des événements, etc), mais ça reste limité à du "connu".

Voici donc ce que je propose : utiliser le framebuffer. Rien de plus simple, rien de plus rapide, rien de plus amusant instructif. Ca va plaire aux développeurs avancés, et surtout, ça va permettre de faire ce qu'on veut (onglets, IA, compatibilité Windows (bon, ça c'est pas graphique), etc) !

Le principe est simple (attention, ce qui suit est relativement technique) : le framebuffer est un fichier (/dev/fb0 en l'occurance) dans lequel on écrit. La différence entre ce fichier et un autre, c'est que tout ce qu'on écrit dedans est affiché à l'écran :) . Par exemple, pour afficher un pixel vert à la position 10x10, on place la valeur 0x0000FF00 dans le dword situé à (10*largeur_écran)+10. On a un pixel vert de dessiné.

Bien évidemment, les applications ne vont pas s'amuser à écrire dans ce fichier, loin de là. Elles vont utiliser la signature de Logram, son cachet si vous préférez, ce qui va le rendre unique : les Logram's libs.

Les Logram's Libs seront un ensemble de bibliothèques que pourront utiliser les applications, un peu comme une API : elle feront tout, absolument tout. Le but des Llibs, c'est de proposer aux applications un environnement normalisé, et puissant, un peu comme Qt. Le gros avantage, c'est comme KDE et ses kdelibs, c'est qu'on charge au démarrage les Llibs, et qu'on n'y touche plus. Les applications démarreront donc à la vitesse de l'éclair :D !

Les Llibs, en plus de gérer l'aspect graphique, géreront aussi tout le système. A nouveau, je me base sur KDE qui m'a beaucoup impressionné de ce côté : toutes les applications KDE peuvent utiliser les Kio-Slaves, et d'autres mécanismes vraiment puissants. Les Llibs permetteront également ceci, par exemple, une application pourra très facilement accéder à un fichier sur un FTP avec cette simple ligne de commande :

Code : cpp
  1. File = new LFile("ftp://ftp.perso.free.fr/~machin/fichier.ext");

Les Llibs se chargeront d'afficher si nécessaire une boîte de login, de gérer la connexion, et de retourner le résultat.

Ouch, je plains les codeurs, ils vont vraiment devoir beaucoup à coder.

Pas tellement. Les Llibs seront une interface, et contiendront toute la logique, mais elles relègeront à d'autres librairies le sâle boulot (libftp, libxml, libpng, etc). Ainsi, les Llibs seront puissantes, sans trop de travail, et donc sans trop de bugs :) !

Autour des Llibs, l'environnement de bureau Logram, et tout ce qui va avec. Avec ça, on aura, sur un système Logram de base, 80% de code Logram, et 20% de code GNU (sachant que par exemple, pour le noyau Linux, ce ne sont que des pilotes).

Participer au codage de Logram


Vous voulez participer au codage de Logram, c'est simple, ça se fait en étapes :

  • Il vous faut une base. Le LFS (adresse plus haut) est une très bonne base, et pas trop difficile à mettre en place (j'avertis juste d'une chose : Logram basé sur Linux sera portable. Il faut donc savoir le construire. Le LFS en 32-bit marche impec. en 64-bit, il faut quelques manipulations : construire les binutils dans leur dossier (pas dans un autre, il y a un fichier qui manque), ajouter à ./configure de GCC --diable-multilib, et copier/coller GRUB de votre distrib vers le LFS. Il faut également, au tout début, créer les dossier /lib et /usr/lib, et créer un lien symbolique de /lib64 et /usr/lib64 vers ces dossiers. Le but est de faire en sorte que /lib=/lib64 et que /usr/lib=/usr/lib64).
  • Une fois le LFS fait, il faut le configurer. Je vous conseille fortmenent d'être connecté en Ethernet, quoique le wifi, avec les bons pilotes, marche aussi. Là, il faut aussi quelques conseils : pas de dhcp (il plante), et surtout, une fois que tout est bien configurer, ajouter la route par défaut : "route add default gw 192.168.0.1 netmask 255.255.255.0". Sans ça, impossible de sortir du réseau.
  • Se connecter au dépôt SVN de Logram, et télécharger les fichiers sources.

Je crois avoir tout dit, bon dév. ;) .

L'organisation de Logram


Logram s'organise aussi. Soyons clair, ce chapitre sera moins fourni que le précédant, car qui dit organisation, dit discussion, et ça prend déjà plus de temps. Voici donc simplement les bases de l'organisation de Logram.

Au lieu d'être linéaire (tout le monde donne des ordres à tout le monde, et en recoit), ce qui menait à rien, on va organiser tout ça hiérarchiquement.

En haut de la pyramise, les chefs de projets (moi et un autre, si jamais le wifi me joue des tours je suis indisponible pour un moment, ou très occupé, comme maintenant avec le LFS). Ils seront au courant de tout, les informations leur seront présentée correctement et clairement par les autres membres. Ainsi, ils auront une vue générale de Logram, et pourront donc gérer le projet en entier, sans l'éclater, et en pouvant toujours synchroniser les différentes tâches, et tout coordonner.

À l'étage du millieu, nous trouverons les directeurs de projet (si vous avez un meilleur nom, dites-le moi :p ). Ils seront au nombre de 3-4 ou un peu plus, et seront les directeurs de sous équipes. Leur boulot : coordonner les membres de leur équipe, et informer les chefs de projet de ce qui se passe (de manière synthétisée, etc).

En "bas" (mais en réalité, ce seront les personnes les plus importantes) se trouveront les éxécuteurs. Ils feront le travail. Rassurez-vous, ce ne sera pas une tyranie. Les directeurs de projets pourront être également éxécuteurs, etc. C'est comme maintenant : un modo est un membre, et un modo peut locker le topic d'un autre modo (voir le ban :-° ).

Bref, tout ceci commence à prendre forme, mais c'est encore un petit peu flou.

Conclusion


Je crois que c'est tout. Je précise que vous pouvez à nouveau poster des commentaires de news, j'ai désactivé l'envoi automatique de MPs (je me demande comment ça se fait qu'un truc pareil a été codé :-° ).

Je précise que rien n'est fait, ce n'est qu'une synthèse du topic "Discussion IRC" (dans On se détend), qui résume quelques idées données, et mes propres réflexions. Si vous voulez vous opposer à quelque chose, ou en débattre, ou poser des questions, ne vous privez pas (mais s'il vous plaît, évitez de parler sans vous renseigner, comme pour la news précédante : «C'est pas nous qui le faisons ça puxx»).

Bon débat ;) .

Logram : OS, Distrib, bureau ?

# par steckdenis, le 27/09/2008 à 09:41, 32 commentaires

Bonjour,

Avant tout, je vous signale que nous allons parler de choses très sérieuses, ce n'est pas un poisson d'avril (nous sommes loin du 1er d'avril).

C'est quelque chose de grave ?

Pas de panique, tout va bien, je ne fais que vous annoncer de "bonnes" nouvelles.

Qu'est-ce que Logram, qu'est-ce qu'il doit être


Entrons dans le vif du sujet : Logram stagne (désolé de le dire comme ça). Ce n'est pas une question de manque de développement, mais plutôt d'avoir trop de choses à faire. Je ne suis pas défaitistes, justement, j'évite un mur.

Quatre solutions s'offrent à nous pour créer un OS performant, libre, etc :

  • Le coder de A à Z, et 5-6 ans plus tard, obtenir un truc qui marche plus ou moins, peu performant, et plein de failles
  • Utiliser quelque chose de tout fait : le noyau Linux, et construire autour (GNU/Linux => Logram/Linux)
  • Créer une distrib, avec les outils GNU : GNU/Linux Logram
  • Créer un environnement de bureau avec gestion des onglets

Il va de soi que si on prend une puce, il faut aussi réaliser les suivantes. Par exemple, si on décide de faire Logram/Linux, une fois les outils faits, il faudra créer la distrib autour.

Bref, pour obtenir ce qu'on veut, on ne peut pas réinventer la roue sans se planter.

L'honneur ou la raison


Je sais ce que vous pensez : il y a déjà beaucoup de distros, et le noyau Linux est déjà fini. Pesons le pour et le contre :

Contre


  • On n'aura pas la satisfaction d'avoir absolument tout fait
  • On ne maîtrisera pas à 100% les outils mis en place

Pour


  • On ne se plantera pas, car le noyau Linux marche, les outils GNU aussi, on va construire sur des bases sûres, et accessoirement, c'est du travail en moins :-°
  • C'est plus developper-friendly, au lieu d'être moi, royalbru, tr1691 et quelques rares autres, on va pouvoir être des centaines à coder, car utiliser une bibliothèque graphique est vraiment plus agréable que d'avoir à la coder ^^ .
  • Ce sera plus performant, on aura d'office la maturité de Linux, la puissance des outils GNU (Bash & co, les binutils, GCC, des libs, etc)
  • Le lancement sera plus simple : au lieu de devoir tout recoder, les applis marcheront directement. De plus, au lieu de présenter dans la PdZ un truc qui boot plus ou moins, on présentera un environnement prometteur et utilisable.
  • Il y a moyen de se différencier : ce n'est pas parce qu'on fait notre propre distrib qu'on se fond dans la masse, si on la fait bien (nos propres outils, notre propre environnement de bureau, etc), il y a moyen qu'en apparence, Linux Logram soit comme Logram tout court, de même pour les fonctionnalités

Bref, malgré les apparences, il y a de fameux avantages par rapport aux quelques inconvénients.

À coder, à pas coder, ...


Maintenant se pose la question : on code quoi ?

De toutes façons, on ne va pas recoder le noyau Linux, et tout ce qu'il implique (pilotes, système de fichier, architecture, etc). Maintenant, voici la liste de ce qu'on pourrait recoder :

  • Les outils GNU de base (démarrage, Bash, etc). Je n'ai pas vraiment envie de refaire ça :-°
  • Les outils GNU&co de surface : gestionnaire de fenêtre, décorateur, serveur x11, etc : c'est malheureusement à refaire si on veut bien faire, mais vraiment très difficilement (et puis, ça marche quand-même)
  • Les outils visible : environnement de bureau, assistants, bref, transformer Linux en un OS attraillant pour les utilisateurs, et le faire connaître (j'aime bien ce point de vue :) )
  • Une bête distrib : assembler des outils+GNOME+APT et faire un Ubuntu-like, mais avec nos outils de conf, je n'aime pas du tout.

Il apparaît que le plus intéressant à faire serait de créer les outils de surface : l'environnement de bureau (c'est assez suicidaire pour que ça vous plaise :p ), les assistants de configuration, etc, pour obtenir un système unique et qui marche.

Si on fait plus (recoder les outils), c'est dangereux, car on n'arrivera que très difficilement à la perfection des outils actuels, et en beaucoup trop de temps : plus un projet dure avant d'être utilisable, au plus il a des chances de sombrer dans l'oubli.

Si on fait moins (juste une distrib), on n'aura pour ainsi dire rien fait, à part DL des sources, les compiler, éditer des fichiers de conf, et créer un .deb (j'aime vraiment bien APT :) ).

Conslusion


Je vous laisse choisisr, je sais que le débat sera annimé, qu'il y a peux de chances qu'on soit tout de suite d'accord, mais il faut se rendre à l'évidence, en 6 ans, Logram ne boot même pas encore tout à fait. Ce n'est pas sa mort, loin de là : c'est comme opérer d'une tumeur au cerveau. Soit on vie difficilement avec des facultés mentales réduites (bugs au niveau informatique) soit on opère, on aura plus le mérite de «survivre à la tumeur», mais on vivera pleinement et plus longtemps.

Bonne discussion ;) .

Mise en route du LHC

# par Hadware, le 25/09/2008 à 17:35, 10 commentaires

Ça Y Est!


En effet, il a démarré!
Le plus grand collisionneur de particules au monde a été mis en route mercredi 10 septembre 2008, a 7h30. Le premier jet de particules, un jet de proton accélérés a la vitesse de la lumière, a fait un tour complet dans l'anneau de 27 km enfoui à 100 mètres sous terre sous la frontière entre la France et la Suisse 1h après le démarrage.
Celui-ci s'est fait sans accros, sous les applaudissements des physiciens et techniciens qui ont participé a la réalisation de ce qui est la plus grande expérience jamais réalisée!
Les protons rentreront en collision avec un second faisceau injecté plus tard (dans quelques semaines), produisant des chocs de 450G electronvolts (un demi de la puissance de collision du collisionneur du Fermilab de Chicago

image utilisateur
Un dessin bien clair pour situer notre LHC

Son But


Il s'agira avant tout de trouver et d'identifier le fameux Boson de Higgs, le saint Graal des physiciens. C'est en fait la particule de gravité (rien que ça). Pour résumer, cette particule serait sensée donner un poids à chacune des plus grosses particules.
Il pourra tout aussi bien trouver et servir a trouver d'autre choses. Notamment la "disparition" des antiparticules.
Il produira des quantités faramineuses d'informations, qui seront traitées grâce a un projet de mise en réseau d'ordinateur, utilisant BOINC. Vous pouvez donc
aussi aider la science. :D
image utilisateur

Caractéristiques


Il faut déjà mentionner que le LHC est incroyablement puissant! Il pourra accélérer des particules à des vitesses proches de celle de la lumière, les entrainant dans une collision qui dégagera 5 fois plus d'énergie que le Fermilab. C'est énorme.
Le LHC est composé de 4 détecteurs, qui sont eux aussi immenses. Touts les records ont été pulvérisés avec ce projet de 4,6 milliards de francs suisses, financé par l'Europe.
Il dans un vide quasi-interstellaire, et a une température proche du zéro absolu.
Ce sont 27 Kilomètres de circuit situe a 100 mètres sous terres qui feront se rencontrer les deux faisceaux de particules.
Leur rencontre entrainera des chaleurs 100 000 plus fortes que celles du cœur de soleil!

Des autres caractéristiques assez impressionnantes: il faut utiliser un vélo pour circuler dans son tunnel (on a d'ailleurs l'impression qu'il est droit quand on est dedans), et l'on pourrait descendre une cathédrale par les puits de descente!

image utilisateur
Un aperçu de l'immensité du tunnel

Craintes


Des sceptiques, et notamment au états-unis, on cru que le LHC et les collisions qu'il engendrera pourraient créer un trou noir qui déclenchera la fin de notre terre.
Même si cela pourrait arriver, les physiciens affirment que cela tellement éphémère (les conditions ne sont pas assez extrêmes pour un trou noir) qu'il n'y a aucun risque.
Ce ne sont que des rumeurs, cependant des pétitions ont circulé contre la mise en route du LHC.

Sources:
Wikipedia, France Info, Orange rubrique science

Des tutos à jour

# par steckdenis, le 14/09/2008 à 19:41, 4 commentaires

Bonjour,

Comme vous avez pu le remarquer, la liste des derniers tutos validés à beaucoup changé. En fait, Mc Giver ayant fini son travail, j'ai remis tous les tutos à mon nom (en tous cas ceux que j'ai fait, il a gardé les siens, et tr1691 un des siens aussi).

Mise à jour des tutos


Bref, j'ai beaucoup travaillé sur mes tutos, non pas du point de vue de l'information qu'ils contiennent (Mc Giver s'en est chargé), mais bien de la présentation.

Mes tutos sont donc bien jolis, avec du beau lCode, et correctement présenté et expliqués. Si vous les avez trouvé moches, je vous invite à les relire.

J'en profite aussi pour dire que j'ai jeté un oeil à la base de donnée, et j'ai constaté avec suprise qu'une très grande quantité de membre a essayé de créer un tuto, c'est à dire qu'il y a plus de 50 tutos vides dans la BDD. Je me demande donc si je les laisse là, pour que vous puissiez les remplir, ou si je les supprime.

Sinon, comme toujours, je vous invite à créer vos propres tutos.

Balises en plus pour le lCode


La rédaction de vos tutos sera entre outre beaucoup plus agréable grâce à une nouvelle balise lCode, et une largement améliorée.

Code : xml
  1. <barre>votre texte</barre>

Donne : votre texte (videz votre cache, c'est dans le CSS que ça se passe ;) ).

Code : console
  1. Je suis un code dans la console, une simple question de CSS aussi. Je suis en blanc sur fond noir, comme sur le SdZ (c'est très joli).

Quelques améliorations aussi sur les templates des tutos : les bigs-tutos sont plus jolis à regarder, et les informations sur les minis-tutos sont aussi affichées en bas de page :) .

A plus.

Encore une grande avancée pour Logram

# par steckdenis, le 06/09/2008 à 15:38, 5 commentaires

Bonjour,

La dernière modification de Logram date d'il y a bien longtemps, en fait de la sortie de Logram 0.0.8.0. J'avais tellement codé (2 semaines non stop) que je n'en pouvais plus, je me suis donc occupé à autre chose (le site par exemple) pendant ces quelques semaines.

Pendant que je m'occupais, je mettais en place un algorithme qui permet de gérer la mémoire privée, c'est à dire la mémoire propre à chaque processus, beaucoup plus grande, beaucoup plus évoluée, beaucoup plus sécurisée, mais aussi extrêmement complexe !

C'est chose faite, après 3 semaines de dure réflexion, je me suis mis à coder le système. Ce n'est pas beaucoup de lignes (codé en 2 heures seulement), mais ce n'est pas du "petit" codage :D .

Ce que ça change


Maintenant que cette gestion est mise en place, le plus dur (et loin de là) est mis en place pour la gestion des processus. Il ne reste plus qu'à utiliser tout ce qui a été codé depuis le mois dernier (gestion des threads, du système de fichier, et de la mémoire privée) pour enfin créer le module de gestion des processus. Une fois ce module mis en place, vous pourrez vous-même créer vos propres applications pour Logram, et les tester directement sous Logram !

Rien n'a changé graphiquement, à part un «réussi» affiché en vert, je ne vous met donc pas de lien vers l'image disk.img. Si vous voulez les sources, la version SVN est à votre disposition (extensions/kernel.ext/mem.c a été modifié, dans la fonction VirtualAlloc). Bon courage tout de même, car le code en lui-même n'est pas simple, mais en plus, je l'ai assez mal commenté (pour préserver la clarté, j'ai un petit écran, et j'aime voir tout ma fonction sans scroller :-° ).

La suite


Avant de lancer Logram 0.0.9.0 (donc avec la gestion des processus), j'essayerai de rédiger une documentation complète sur l'API vue des applications (la documentation sur l'API vue du système des déjà en cours de rédaction par un membre), et je mettrai en place une bibliothèque, dont le boulot sera d'importer elle-même les fonctions du noyau, pour les proposer tout à fait normalement aux applications.

Ensuite, codage du pilote VESA, puis enfin mise en place de draw.ext, codée par Malgon (que je remercie au passage). Il ne doit pas s'inquéter, il a tout le temps ;) .

Conclusion


La mauvaise nouvelle est que j'ai un poignard dans la tête, et que je ne sais pas s'il sera parti demain :lol: . Il n'y aura plus 3 semaines avant la prochaines modification, mais peut-être quelques jours.

A plus, et prudence pour la lecture. Je vous met d'ailleur un extrait de la partie "hard" du code ;) :

Code : c
  1. for (npde = 0; npde < 512; npde++)
  2. {
  3.         ptef = pde[npde];
  4.         if (!ptef)
  5.         {
  6.                 pte = (int64 *) VirtualAlloc((int64) &amp;ptef, 1, MEM_PUBLIC | MEM_OUTPHYSICAL, 1);    //Créer une nouvelle pdpe
  7.                 zerofill((char *) pte, 4096);
  8.                 pde[npde] = (int64) ptef;
  9.         }
  10.         else
  11.         {
  12.                 pte = (int64 *) VirtualAlloc(ptef, 1, MEM_PHYSICALADDR | MEM_PUBLIC, 1);
  13.         }
  14.                
  15.         for (npte = 0; npte < 512; npte++)
  16.         {
  17.                 if (!pte[npte])
  18.                 {
  19.                         //La page est libre, on incrémente le nombre de pages contiguës
  20.                         totpages++;
  21.                         if (totpages == 1)
  22.                         {
  23.                                 logaddr = ((nplm4e << 27) | (npdpe << 18) | (npde << 9) | npte); //logaddr n'est pas la vraie adresse, il faut encore faire un << 12
  24.                         }
  25.                         if (totpages == pagesNb) goto pages_ok;
  26.                 }
  27.                 else
  28.                 {
  29.                         totpages = 0;
  30.                 }
  31.         }
  32.         //On n'a plus besoin de la PTE
  33.         VirtualFree((int64) pte, 1, MEM_DONTFREEPHYSICAL);
  34. }
Précédant 1 2 Suivant