Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
qrv — Système d'exploitation QRV | Kitploit
Outils/GitHubGitHub/r-tty/qrv
Sécurité des Systèmes EmbarquésSécurité MatérielleArticles et RechercheApprentissage et ÉducationRessources Organisées
GitHubr-tty/qrv

qrv

Système d'exploitation QRV

Voir le dépôt
2414il y a 4 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

QRV — un système d'exploitation basé sur QNX Neutrino, réimaginé pour le RISC-V 64 bits

QRV est une adaptation et une réimplémentation complète du système d'exploitation QNX Neutrino 6.4 pour du matériel 64 bits moderne, avec RISC-V (rv64g) comme architecture principale et x86-64 comme cible secondaire. Le projet a débuté la veille de Noël 2020. Le nom QRV évite délibérément toute association avec la marque QNX.

QRV est un système d'exploitation complet, pas seulement un noyau. Le micro-noyau en est le cœur — mais la plus grande partie du travail a porté sur tout ce qui l'entoure. Le plus notable est taskman, le gestionnaire de processus / mémoire / chemins en mode utilisateur (le procnto de QNX), qui a été profondément retravaillé et sorti du noyau dans l'espace utilisateur ; à côté de cela, la bibliothèque C, les pilotes de périphériques, le système de fichiers, le chargeur dynamique et les serveurs système ont tous été portés, rendus compatibles 64 bits et, à de nombreux endroits, considérablement réécrits. Le micro-noyau est petit par conception ; le système d'exploitation qui l'entoure est là où vit la majeure partie de QRV.

Ce n'est pas un fork qui se contente de compiler du code ancien sur un nouveau compilateur. C'est un portage minutieux, module par module, vers un vrai modèle LP64, avec la frontière propriétaire procnto démantelée, les mécanismes IFS/startup remplacés, et — depuis les versions les plus récentes — le verrou global du noyau supprimé entièrement et le gestionnaire de processus/mémoire/chemins sorti du noyau dans un serveur en mode utilisateur.

Ce README décrit QRV v0.43.

Le blog de développement, avec l'histoire complète du portage, se trouve à https://r-tty.blogspot.com. Un récit de la longueur d'un livre, The QRV Porting Story, se trouve dans l'arborescence source sous doc/tex/PortingStory/.

QRV a été développé en étroite collaboration avec Claude Code, l'outil de codage agentique d'Anthropic — une grande partie du portage, du débogage SMP et de la documentation (y compris ce README) a été réalisée dans le cadre d'un effort de programmation en binôme humain-IA, aux côtés de l'auteur.


Sommaire

  1. Qu'est-ce que QRV
  2. Licences
  3. Obtention des sources : obtain_proj.sh et l'arborescence os/
  4. Architecture du système
  5. Taskman et l'appel système privilégié TM_PRIV
  6. Le verrou global du noyau — et sa suppression
  7. Stockage : devb-nvme et fs-qrv
  8. Espace utilisateur
  9. Construction et exécution
  10. Exécution sur du matériel réel
  11. Remarques finales : pourquoi un clone libre est important

1. Qu'est-ce que QRV

QNX est un système d'exploitation temps réel à micro-noyau dont l'idée fondatrice est le passage de messages synchrone. Dans QNX, le noyau lui-même est minuscule — il sait comment ordonnancer les threads, passer des messages, délivrer des signaux, gérer les temporisateurs et les interruptions, et très peu d'autres choses. Tout ce qu'un système d'exploitation monolithique mettrait à l'intérieur du noyau — le gestionnaire de processus, le gestionnaire de mémoire, le système de fichiers, les pilotes de périphériques, la pile réseau — s'exécute dans des processus utilisateur ordinaires appelés gestionnaires de ressources, et ils communiquent entre eux et avec leurs clients via la même primitive IPC envoyer / recevoir / répondre.

Cette architecture est ce qui rend QNX élégant, et c'est exactement ce que QRV préserve. Un programme qui veut ouvrir un fichier envoie un message ; le serveur de système de fichiers le reçoit, fait le travail et répond. Le noyau ne fait que négocier le rendez-vous. Le résultat est un système où un pilote peut planter et être redémarré sans faire tomber le noyau, où la base de confiance de calcul est mesurée en dizaines de kilo-octets, et où la frontière entre « noyau » et « application » est un message, pas un mur de privilèges rempli d'appels système.

QRV prend les sources communautaires de QNX Neutrino 6.4 de l'ère 2009 et fait évoluer cette conception :

  • Nettoyé 64 bits (LP64). Chaque pointeur et type de taille est sur 64 bits ; le portage traque et corrige les troncatures de int/uint32_t/pid_t-sur-pointeur dont le code 32 bits est truffé.
  • RISC-V d'abord. La cible principale est qemu-system-riscv64 (la machine virt) et la carte de développement SiFive Unmatched (FU740). x86-64 est maintenue en compilation comme vérification de portabilité.
  • Pas de frontières propriétaires. Il n'y a pas d'IFS et pas de mkifs (QRV utilise le format standard CPIO à la place) ; il n'y a pas de séparation startup/noyau (startup est lié directement avec le noyau) ; il n'y a pas de callouts et pas de mini-pilotes.
  • Une construction moderne. Une configuration Kconfig de style Linux, une édition de liens incrémentale du noyau (les modules sont ajoutés et testés un par un, pas jetés au lieur comme un monolithe 32→64), et une chaîne d'outils de compilation croisée (riscv64-linux-gnu-gcc).
  • Un vocabulaire renommé, sans marque déposée. procnto est taskman (le gestionnaire de tâches) partout ; toutes les références à « Neutrino » sont supprimées.

QRV n'implémente pas fork() (les programmes démarrent via posix_spawn()), et il n'y a pas de pagination à la demande et pas de swap — les mêmes choix que QNX a faits dans sa génération 8.0.


2. Licences

QRV est régi par deux licences à la fois, et comprendre laquelle est laquelle est essentiel avant de construire ou de redistribuer quoi que ce soit.

  • Le code propre de QRV est sous licence Apache 2.0. Tout ce qui est écrit à partir de zéro pour ce projet — le portage RISC-V, le nouveau système de construction, la séparation de taskman en espace utilisateur, la refonte du noyau sans verrou, les pilotes et les outils que nous avons créés — est sous Apache 2.0. Le texte complet se trouve dans LICENSE.txt.

  • Le code dérivé de QNX est sous BlackBerry QNX Community License (QCL) 2.0. Les parties de QRV qui descendent des sources communautaires de QNX Neutrino de 2009 restent sous la QCL, qui permet l'utilisation non commerciale et académique des sources dérivées. QRV ne peut pas, et ne peut pas, re-licencier le code de QNX.

Cette réalité de double licence est précisément la raison pour laquelle ce dépôt ne contient pas d'arborescence source prête à construire. Nous n'avons pas la permission de redistribuer les sources dérivées de QNX. Ainsi, au lieu de distribuer le code, ce dépôt fournit une recette (voir la section suivante) : une carte de l'endroit où chaque fichier QNX va, plus les correctifs QRV qui le transforment. Vous obtenez les sources communautaires QNX amont vous-même, depuis leur miroir public, et la recette reconstruit l'arbre QRV sur votre machine. Votre copie est la vôtre ; nous redistribuons uniquement nos propres correctifs et métadonnées sous licence Apache.

QRV intègre également du code sous d'autres licences permissives — par exemple des composants sous licence BSD adoptés depuis FreeBSD (remplaçant des modules QNX vieillissants), un pilote de bloc virtio sous licence MIT d'ascendance xv6, et le shell Korn MirBSD (mksh) comme shell système. WHAT_IS_WHAT.md est la référence composant par composant de ce qui est sous quelle licence et d'où cela vient — consultez-le chaque fois que vous avez un doute sur un fichier ou un sous-système particulier.

Télécharger l’outil