Est-ce que ces interfaces bien pensées et bien documentées, ce ne devrait pas être POSIX, justement ? Un des problèmes c'est que POSIX semble avancer à un train de sénateur.
Effectivement, cependant rien n'empêche d'organser son code pour que tout ce qui n'est pas fourni par posix puisse être écrit, documenté et stabilisé pour permettre de réimplémenter cette partie sur d'autres OS.
Par ailleurs, dans le cas de systemd, je doute que tu aies une partie métier bien séparée de la partie accès au système : par construction, c'est un logiciel dont 95% de l'activité consiste à interagir avec le système (configuration, démons, sockets, etc.).
Tu as quand même une partie "appel bas niveau" et "appels haut niveau" qui peuvent être séparés. Je n'ai pas le temps de décomposer ici, mais c'est un peu comme lorsqu'une appli doit accéder à une BDD : dans le modèle MVC, tu as le modèle qui est assez uniforme, quel que soit le SGBD utilisé, mais les couches basses elles sont masquées même au modèle qui lui utilise une lib d'abstraction qui masque les spécificités de la BDD. Si tu veux utilise un truc particulier qui n'est pas forcément dans la lib d'astraction tu as deux solutions : soit tu code des trucs spécifiques dans ton modèle, soit tu codes une lib d'abstraction perso (ou tu étends la lib existante) pour que, si tu changes de SGBD, tu n'aies pas à reprendre tous tes modèles.
[^] # Re: Ça fait peur
Posté par totof2000 . En réponse à la dépêche Un entretien avec Lennart Poettering. Évalué à 2.
Est-ce que ces interfaces bien pensées et bien documentées, ce ne devrait pas être POSIX, justement ? Un des problèmes c'est que POSIX semble avancer à un train de sénateur.
Effectivement, cependant rien n'empêche d'organser son code pour que tout ce qui n'est pas fourni par posix puisse être écrit, documenté et stabilisé pour permettre de réimplémenter cette partie sur d'autres OS.
Par ailleurs, dans le cas de systemd, je doute que tu aies une partie métier bien séparée de la partie accès au système : par construction, c'est un logiciel dont 95% de l'activité consiste à interagir avec le système (configuration, démons, sockets, etc.).
Tu as quand même une partie "appel bas niveau" et "appels haut niveau" qui peuvent être séparés. Je n'ai pas le temps de décomposer ici, mais c'est un peu comme lorsqu'une appli doit accéder à une BDD : dans le modèle MVC, tu as le modèle qui est assez uniforme, quel que soit le SGBD utilisé, mais les couches basses elles sont masquées même au modèle qui lui utilise une lib d'abstraction qui masque les spécificités de la BDD. Si tu veux utilise un truc particulier qui n'est pas forcément dans la lib d'astraction tu as deux solutions : soit tu code des trucs spécifiques dans ton modèle, soit tu codes une lib d'abstraction perso (ou tu étends la lib existante) pour que, si tu changes de SGBD, tu n'aies pas à reprendre tous tes modèles.