"La foi déplace des montagnes".
En tant que chrétien, je suis très sensible aux poissons d'avril qui
ont pour
objectif de se moquer des chrétiens.
car les sites "pornos" ne doivent pas être leur tasse de thé.
C'est faire "une pierre, deux coups" : proposer GNU/Linux dans les
établissements
scolaires avec l'option d'éviter des sites peu recommandables aux
enfants.
C'est une manière de bien placer Linux pour l'avenir car on sait que
les enfants,
une fois devenus adultes, seront ensuite réceptifs à ce système
d'exploitation,
qu'ils risquent d'adopter.
Oui, il faudrait étendre le filtrage à d'autres contenus, tel fesse de
bouc ...
Les réseaux sociaux n'ont pas toujours en ôdeur de sainteté :-)
Le filtrage, c'est pas la liberté, mais si il est limité aux enfants,
c'est concevable.
"Nouveau langage Pmal, nouveau noyau, codes Java", le programme semble
ambitieux et conséquent ! (y verras tu le bout un jour ?)
Ils existent des serveurs Proxy assez efficaces capables de faire des
filtrages
pour enfants, pourquoi alors "réinventer la roue" ?
Bref, si l'objectif est de promouvoir GNU/Linux, pourquoi pas ?
Bonne construction à "j'ai l'inux" mais pourquoi le nom de code
"Canterbury",
parce qu'il y a un archevêque épiscopal ?
andré
On Thursday 26 September 2013 21:09:12 chris21.r...@free.fr wrote:
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.r...@free.fr subject
"J'ai l'inux".