7378Fermer7380
Lionel DebrouxLe 14/10/2018 à 09:05
"PipeWire" pour remplacer PA, voyez-vous ça...
En effet, PA n'est ni conçu pour le temps réel, ni - avec son architecture orientée daemon user-space plutôt que kernel-space comme ALSA - fait pour permettre une utilisation efficace quand plusieurs snaps ou flatpaks sont impliqués. Le premier use case existait pourtant quand PA a été conçu, et il était déjà rempli par JACK, même si je sais qu'avec certains drivers (buggés ?), l'utilisation de PA avait tendance à fluidifier l'audio et le rapprocher du temps réel.
En tout cas, mauvais point pour le langage d'implémentation: fournir une API externe en C reste bien sûr nécessaire pour des raisons d'interopérabilité, mais pour de nouvelles bases de code, continuer à tout écrire en C est de plus en plus inacceptable. Une partie de l'insécurité de GStreamer vient de là...

C'est triste que pour Linux, le mode principal d'introduction de sandboxing soit une approche de type containerisation avec un packaging à un format comme Docker, Snap ou Flatpak, autrement dit un gros paquet de nouilles, plutôt qu'une inclusion dans le code des programmes cibles.
Certes, le sandboxing sous Linux se résume habituellement à seccomp() mode 2 qui, même s'il est beaucoup plus flexible que le pledge() d'OpenBSD, fortement décrié par spender pour une simplification excessive qui lui enlève une bonne partie de son intérêt, est difficile à mettre en place et surtout à maintenir sur le long terme, particulièrement quand on l'utilise en whitelist... L'évolution des dépendances, qui se mettent à utiliser des syscalls qu'elles n'utilisaient pas auparavant, et qui se retrouvent donc bloquées par un filtre seccomp écrit à un moment où la liste des syscalls utilisés était plus restreinte, peut occasionner de gros casse-têtes de debug.
Au boulot, j'ai mis une politique seccomp mode 2 sur un ensemble d'applis, mais seulement en blacklist parce que la whitelist était trop difficile... et j'ai fini par le désactiver sur deux applis où je rencontrais des problèmes que je n'avais pas le temps de debugger.