You are not logged in.

#1 2013-09-26 19:09:11

sinfree
Member
Registered: 2013-09-09
Posts: 10

J'ai l'inux nom de code Canterbury

Le projet "J'ai l'inux" vise à proposer une distribution Linux capable de filter les contenus notamment pornographiques, pour une utilisation à l'école.

Pour filtrer les contenus, il est nécessaire d'intervenir à l'intérieur du système pour intercepter les contenus à filtrer (on ne peut pas intervenir au niveau des trames réseau car à ce niveau les contenus ne sont pas interpétables).

J'ai pensé à utiliser des machines virtuelles pour déléguer à chaque machine virtuelle une portion spécifique du système à assurer.

Cette idée est née d'un poisson d'avril (April's fool joke) qui annonçait le projet Canterbury, visant à réunir le meilleur de 5 distributions Linux dans une nouvelle distribution. En tant que chrétien, je suis très sensible aux poissons d'avril qui ont pour objectif de se moquer des chrétiens. J'ai donc choisi ces 5 distributions et j'ai fait un prototype de test 64 bits:
- Archlinux pour l'interface homme-machine et la virtualisation
- Gentoo pour la compilation
- Grml pour les entrées-sorties
- Open-Suse pour les applications
- Debian pour les applications 32 bits et la modélisation

L'idée sous-jacente à ce projet, c'est un module noyau à développer qui permettra de router les appels système vers chaque distribution en fonction du type d'appel système et du rôle de chaque distribution dans le système.

Le pattern MVCA (Modèle= données, Vue=ihm, Controleur=noyau, Action=application) est utilisé entre Archlinux, Grml et OpenSuse.

Le filtrage de contenu s'effectue entre les applications et les vues grâce au module noyau qui intercepte les données à filtrer et les dirige vers un filtreur hors noyau. Le filtreur applique des outils sur les données pour décider si elles seront autorisées ou non.

Pour développer le filtreur, un nouveau langage, Pmal, est à créer. On a besoin d'un nouveau langage qui doit être capable de faire évoluer ses programmes sans avoir à les interrompre. Ce langage sera basé sur du typage fort, pour assurer la sécurité du système. J'ai imaginé un langage de glue pour faire ça.

Il s'agit d'un langage qui fait un usage important de la réflexivité: il connait ses constituants et peut agir dessus.
Il est basé sur le principe des conteneurs légers: les classes composantes sont assemblées par inversion de controle. Chaque composante ne connait pas avec quel composant il sera relié dans les conteneurs légers.

Exemple: un objet A est relié à un objet de type D sur lequel il invoque une méthode b pour imprimer. A ne sait pas de quelle classe est l'objet de typez D. De D, 2 classes héritent: B et C, pour 2 imprimantes différentes. Chaque classe B et C possède un objet Méthode implémentant la méthode b. Cet objet Méthode porte des attributs "tags" qui le décrivent.
Par exemple B a un tag "600dpi" et C a un tag "300dpi".
Lorsque A demande a exécuter b, b est intercepté par le conteneur léger qui va filter les candidats possibles en fonction des tags. Finalement, le conteneur léger choisira B pour optimiser la qualité d'impression, sans que A se soit jamais douté de rien.
On pourra aussi avoir un objet proxy qui intercepte les requêtes b et les envoie de manière asynchrone.
Ou encore, un compteur d'appels de méthode incrémental pour détecter les boucles infinies et les résoudre en analysant le code invoqué et en proposant une approximation si elles tendent vers une limite.
Par exemple on pourra résoudre le paradoxe de Zénon:
Achille et la tortue font une course : Achille va 2 fois plus vite que la tortue. Chaque fois que Achille parcours la distance qui le sépare de la tortue, celle-ci parcours la moitié de cette distance. Ainsi une nouvelle distance plus petite les sépare...
La récursion est infinie. Si on compte les appels récursifs avec une interruption par exemple au bout de 10 itérations, en analysant le code on peut déduire que la limite tend vers 0 et retourner cette réponse comme approximation et mettre fin à la boucle. Si il n'y a pas de limite on interrompra aussi la boucle pour éviter un engorgement système.

Avec le niveau d'abstraction où une méthode est un objet on pour attacher cette méthode à un seul objet sans l'attacher à tous les objets de sa classe, à des fins de tests. Une fois testée, cette méthode pourra être généralisée à toute la classe. A ce moment, la méthode sera interceptée par un proxy, puis mise en place, puis activée en débloquant le proxy, permettant ainsi une évolution du code et des classes du programme sans interruption.

De plus, bien que fortement typé, ce langage pourra être exécuté par du javascript, du fait de son niveau d'abstraction : les objets, les classes, les attributs et les méthodes sont tous des objets manipulables.

Actuellement, je dispose d'un prototype faisant fonctionner les 5 distributions ensemble. J'ai presque terminé le compilateur pour les méthodes du langage en Java 1.5.

Il faut développer l'ensemble du langage Pmal, le module du noyau pour router les appels système et aussi un gestionnaire de paquets pour l'ensemble du système avec les 5 distributions.

Il s'agit d'un travail énorme, mais le proverbe dit: "La foi déplace des montagnes".

Contactez-moi si vous désirez participer: chris21.roux@free.fr subject "J'ai l'inux".

Offline

#2 2013-09-29 21:22:58

Flaco
Member
From: Liège, Belgium
Registered: 2013-07-02
Posts: 5
Website

Re: J'ai l'inux nom de code Canterbury

Salut,
Alors y'a quelques trucs bizarre avec ce post...
As-tu une réelle base de connaissance dans le développement de système d'exploitations ?
Déjà; Linux est un kernel. Si tu veux créer une distribution; ce sera plutôt une GNU/Linux.

Ensuite; j'ai pas trop compris le rapport avec ton culte; quel qu'il soit; et ce post. (Attention whore?) - Idem pour le proverbe; ça dégage pas une image très "IT" tout ça.

Tu veux "mélanger plusieurs distribution GNU/Linux entre elles" à ce que j'ai cru comprendre.
Tu te rends compte que le résultat doit être (implicitement) ignoble et dégueulasse?
On n'utilise tout simplement pas une distro pour gérer le shell, une autre pour UN de ses outil (utilise l'outil, tout simplement), etc...

Bon voila; après tu fais ce que tu veux mais as-tu pensé à tout simplement développer un navigateur web qui bannirait des mots-clés liés à la pornographie.
Au pire tu te fais une distro grâce à Linux from Scratch et voila.
Sinon; y'a pleins de browser libres. Et si tu veux avoir une meilleur applications sur tout le shell, tu peux coder une application qui tournerait en fond et bloquerais tout contenu pornographique.

Bon après; faut bien tomber sur du porno un jour, mais c'est toi qui vois.

Ah sinon, en tant que Panthéiste, j'aime pas trop les poissons d'Avril sur le Panthéisme (t'as vu l'utilité de l'information ?)

Flaco

Last edited by Flaco (2013-09-29 21:30:52)

Offline

#3 2013-10-04 22:50:47

sinfree
Member
Registered: 2013-09-09
Posts: 10

Re: J'ai l'inux nom de code Canterbury

Pour ce qui est d'utiliser une distribution pour chaque tâche, il ne s'agit pas de n'importe quelle tâche, mais d'un pattern Model View Controller Application:
le modèle est l'acces aux données et aux périphériques
la view est l'interface homme machine
et le controleur est le noyau
l'application est le coeur des applications.
Cette architecture est utilisée depuis des années pour les applications web. L'appliquer au systeme me parait naturel.
Pour ce qui est du Gnu/Linux, le gnu est déjà dans le nom de la distribution: "J'ai l'inux" se prononce G Linux,le G pour Gnu.
Qaund au rapport avec ma foi, il est simple: La pornographie est un fléau à éviter à tout prix et les moteurs de recherche actuels se font un plaisir de nous matraquer de messages publicitaires à caractère pornographique.
Si tu n'es pas d'accord avec l'interdiction de la pronographie sur ta distribution t'as qu'a en acheter une.
Sinon, si j'étais une école je en vois pas pourquoi je devrai tolérer cette contamination pour mes élèves.

Offline

#4 2013-10-05 02:09:00

Xyne
Administrator/PM
Registered: 2008-08-03
Posts: 6,963
Website

Re: J'ai l'inux nom de code Canterbury

Je vous en prie de bien respecter nos règles concernant la discussion des sujets controversés comme la religion et la politique (et bien sur les autres règles aussi). Si ça continue dans cette direction, je serai obligé de fermer le fil. La discussion doit rester strictement sur les points techniques.


My Arch Linux StuffForum EtiquetteCommunity Ethos - Arch is not for everyone

Offline

#5 2013-10-05 09:41:51

Flaco
Member
From: Liège, Belgium
Registered: 2013-07-02
Posts: 5
Website

Re: J'ai l'inux nom de code Canterbury

Bien sûr. smile
Je remettais en question la pertinence de l'information justement. ^^
Désolé pour la rudesse.

Offline

Board footer

Powered by FluxBB