Skip to content
KitploitKITPLOIT
HerramientasBlog
Log in
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
qrv — Sistema Operativo QRV | Kitploit
Herramientas/GitHubGitHub/r-tty/qrv
Seguridad de Sistemas EmbebidosSeguridad de HardwarePapers e InvestigaciónAprendizaje y EducaciónRecursos Curados
GitHubr-tty/qrv

qrv

Sistema Operativo QRV

Ver Repositorio
2414hace 4 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

QRV — un sistema operativo basado en QNX Neutrino, reinventado para RISC-V de 64 bits

QRV es una adaptación y reimplementación desde cero del sistema operativo QNX Neutrino 6.4 para hardware moderno de 64 bits, con RISC-V (rv64g) como arquitectura principal y x86-64 como objetivo secundario. El proyecto comenzó la Nochebuena de 2020. El nombre QRV evita deliberadamente cualquier asociación con la marca registrada QNX.

QRV es un sistema operativo completo, no solo un núcleo. El micronúcleo es su corazón, pero la mayor parte del trabajo se ha invertido en todo lo que lo rodea. Lo más notable es taskman, el gestor de procesos/memoria/rutas en modo de usuario (el procnto de QNX), que ha sido profundamente rediseñado y extraído del núcleo al espacio de usuario; junto con él, la biblioteca C, los controladores de dispositivo, el sistema de archivos, el cargador dinámico y los servidores del sistema han sido todos portados, limpiados para 64 bits y, en muchos lugares, reescritos sustancialmente. El micronúcleo es pequeño por diseño; el sistema operativo que lo rodea es donde reside la mayor parte de QRV.

Esto no es un fork que simplemente compila código antiguo con un nuevo compilador. Es un puerto cuidadoso, módulo por módulo, a un modelo LP64 real, con el límite propietario de procnto desmantelado, la maquinaria IFS/startup reemplazada y — a partir de las versiones más recientes — el Gran Candado del Kernel del núcleo eliminado por completo y el gestor de procesos/memoria/rutas movido fuera del núcleo a un servidor en modo de usuario.

Este README describe QRV v0.43.

El blog de desarrollo, con la historia completa del puerto, está en https://r-tty.blogspot.com. Una narrativa del tamaño de un libro, La Historia del Puerto QRV, reside en el árbol fuente bajo doc/tex/PortingStory/.

QRV se ha desarrollado en estrecha colaboración con Claude Code, la herramienta de codificación agente de Anthropic — gran parte del puerto, la depuración SMP y la documentación (incluyendo este README) se llevó a cabo como un esfuerzo de programación en pareja humano-IA, trabajando junto al autor.


Contenido

  1. ¿Qué es QRV?
  2. Licencias
  3. Obtención de las fuentes: obtain_proj.sh y el árbol os/
  4. Arquitectura del sistema
  5. Taskman y la llamada al sistema privilegiada TM_PRIV
  6. El Gran Candado del Kernel — y su eliminación
  7. Almacenamiento: devb-nvme y fs-qrv
  8. Espacio de usuario
  9. Construcción y ejecución
  10. Ejecución en hardware real
  11. Comentarios finales: por qué es importante un clon libre

1. ¿Qué es QRV?

QNX es un sistema operativo de tiempo real basado en micronúcleo cuya idea definitoria es el paso de mensajes síncrono. En QNX, el núcleo en sí es minúsculo — sabe programar hilos, pasar mensajes, entregar señales, manejar temporizadores e interrupciones, y muy poco más. Todo lo que un sistema operativo monolítico pondría dentro del núcleo — el gestor de procesos, el gestor de memoria, el sistema de archivos, los controladores de dispositivo, la pila de red — se ejecuta en procesos de usuario ordinarios llamados gestores de recursos, y se comunican entre sí y con sus clientes a través de la misma primitiva IPC de enviar / recibir / responder.

Esta arquitectura es lo que hace elegante a QNX, y es exactamente lo que QRV preserva. Un programa que quiere abrir un archivo envía un mensaje; el servidor del sistema de archivos lo recibe, hace el trabajo y responde. El núcleo solo gestiona la cita. El resultado es un sistema donde un controlador puede fallar y reiniciarse sin derribar el núcleo, donde la base de computación de confianza se mide en decenas de kilobytes, y donde el límite entre "núcleo" y "aplicación" es un mensaje, no un muro de privilegios lleno de llamadas al sistema.

QRV toma las fuentes comunitarias de QNX Neutrino 6.4 de 2009 y trae ese diseño hacia adelante:

  • Limpio para 64 bits (LP64). Cada puntero y tipo de tamaño es de 64 bits; el puerto busca y corrige las truncaciones de int/uint32_t/pid_t sobre punteros con las que el código de 32 bits está plagado.
  • RISC-V primero. El objetivo principal es qemu-system-riscv64 (la máquina virt) y la placa de desarrollo SiFive Unmatched (FU740). x86-64 se mantiene compilable como verificación de portabilidad.
  • Sin límites propietarios. No hay IFS ni mkifs (QRV usa el formato estándar CPIO); no hay una división separada startup/núcleo (startup está enlazado directamente con el núcleo); no hay callouts ni mini-controladores.
  • Una construcción moderna. Una configuración Kconfig al estilo Linux, un enlace incremental del núcleo (los módulos se añaden y prueban uno a uno, no se lanzan al enlazador como un monolito de 32→64), y una cadena de herramientas de compilación cruzada (riscv64-linux-gnu-gcc).
  • Un vocabulario renombrado y sin marcas registradas. procnto es taskman (el Gestor de Tareas) en todas partes; todas las referencias a "Neutrino" se eliminan.

QRV no implementa fork() (los programas se inician mediante posix_spawn()), y no tiene paginación bajo demanda ni intercambio — las mismas decisiones que QNX tomó en su generación 8.0.


2. Licencias

QRV se rige por dos licencias a la vez, y entender cuál es cuál es esencial antes de construir o redistribuir cualquier cosa.

  • El código propio de QRV tiene licencia Apache 2.0. Todo lo escrito desde cero para este proyecto — el puerto a RISC-V, el nuevo sistema de construcción, la división de taskman en modo de usuario, la reelaboración del núcleo sin candados, los controladores y herramientas que hemos creado — es Apache 2.0. El texto completo está en LICENSE.txt.

  • El código derivado de QNX tiene la Licencia Comunitaria BlackBerry QNX (QCL) 2.0. Las partes de QRV que descienden de las fuentes comunitarias de QNX Neutrino de 2009 permanecen bajo la QCL, que permite el uso no comercial y académico de las fuentes derivadas. QRV no puede, y no tiene la intención de, relicenciar el código de QNX.

Esta realidad de doble licencia es precisamente la razón por la que este repositorio no contiene un árbol de fuentes listo para compilar. No tenemos permiso para redistribuir las fuentes derivadas de QNX. Por lo tanto, en lugar de enviar el código, este repositorio envía una receta (vea la siguiente sección): un mapa de dónde va cada archivo de QNX, más los parches de QRV que lo transforman. Usted obtiene las fuentes comunitarias de QNX ascendentes por su cuenta, desde su espejo público, y la receta reconstruye el árbol de QRV en su máquina. Su copia es suya; nosotros redistribuimos solo nuestros propios parches y metadatos con licencia Apache.

QRV también incorpora código bajo otras licencias permisivas — por ejemplo, componentes con licencia BSD adoptados de FreeBSD (reemplazando módulos obsoletos de QNX), un controlador de bloque virtio con licencia MIT de ascendencia xv6, y el shell Korn de MirBSD (mksh) como shell del sistema. WHAT_IS_WHAT.md es el desglose autoritativo, componente por componente, de qué está bajo qué licencia y de dónde proviene — consúltelo siempre que no esté seguro sobre un archivo o subsistema en particular.

Descargar herramienta