4 dépôts
Integration with the operating system kernel to register a specific binary format for automatic emulator invocation.
Distinct from Kernel Emulation Environments: Distinct from general kernel emulation; it focuses on the registration mechanism that allows direct shell execution.
Explore 4 awesome GitHub repositories matching operating systems & systems programming · Kernel Binary Format Registration. Refine with filters or upvote what's useful.
FEX is an emulator that executes 32-bit and 64-bit x86 binaries on ARM64 hardware. It functions as a binary translation framework that converts guest machine code into host instructions using a JIT compilation engine and a persistent code cache. The project features a Vulkan graphics wrapper that translates OpenGL and Vulkan API calls to native host drivers, enabling cross-architecture graphics rendering. It includes a dedicated root filesystem manager for downloading, mounting, and switching between compressed filesystem images required for guest application environments. The system provide
Integrates with the host kernel binary format registration system to launch emulated binaries directly from the shell.
Ce projet est une collection de documentation technique et de guides conçus comme un explicateur d'architecture informatique. Il fournit des ressources éducatives sur la façon dont les processeurs et les systèmes d'exploitation exécutent les programmes, en se concentrant sur le cycle fetch-execute et la relation fondamentale entre le matériel et le noyau (kernel). La documentation couvre un large éventail d'opérations système de bas niveau, incluant des guides détaillés sur le format binaire exécutable et liable (ELF), la gestion de la mémoire virtuelle et les opérations au niveau du noyau. Elle explore spécifiquement la mécanique de l'ordonnancement CPU, le multitâche préemptif et l'utilisation d'interruptions de minuterie pour gérer l'exécution des processus. Le matériel explique plus en détail les flux de travail de gestion de la mémoire tels que la traduction d'adresses, la pagination à la demande et le partage de pages copy-on-write. Il couvre également la sécurité et le contrôle d'accès via la gestion des privilèges du processeur et l'application des permissions de pages mémoire, ainsi que l'interface d'appels système utilisée par les programmes en espace utilisateur pour demander des opérations privilégiées au noyau. Les guides détaillent également le cycle de vie de l'exécution des programmes, de la séquence de démarrage initiale et du chargement binaire au remplacement de processus et au bootstrapping des processus userland.
Explains how the kernel registers new binary formats by mapping magic bytes to specific interpreters.
Box64 est un runtime inter-architecture et une couche d'émulation en mode utilisateur qui permet aux logiciels Linux et Windows de s'exécuter sur du matériel non natif. Il fonctionne comme un émulateur d'instructions x86-64 et un traducteur binaire, exécutant des binaires 64 bits sur différentes architectures CPU en traduisant le code machine en instructions natives. Le projet utilise la recompilation dynamique pour accélérer l'exécution et mappe les appels système invités vers des bibliothèques hôtes natives pour augmenter la vitesse et la compatibilité matérielle. Il peut simuler un environnement d'exécution 32 bits pour prendre en charge les logiciels hérités et s'intègre au noyau du système d'exploitation pour reconnaître et lancer automatiquement les exécutables étrangers. Le système couvre l'exécution de programmes Linux 64 bits et 32 bits, de binaires Windows et de clients de jeux, incluant la prise en charge des overlays graphiques Vulkan. Il fournit des mécanismes pour le regroupement de bibliothèques, le chargement de paquets AppImage et l'optimisation ciblée par matériel. Le logiciel prend en charge la compilation binaire statique et fournit une chaîne d'outils de compilation croisée pour le déploiement sur différentes architectures CPU.
Integrates with the host operating system kernel to automatically route foreign binary executions through the translation layer.
NuttX est un système d'exploitation temps réel (RTOS) conforme à POSIX, conçu pour les microcontrôleurs allant des architectures 8 bits aux 64 bits. Il fournit un environnement d'exécution déterministe avec un ordonnanceur de tâches temps réel et un noyau embarqué POSIX pour assurer une exécution de code portable sur diverses cibles matérielles. Le projet se distingue par une couche d'abstraction matérielle complète qui fournit des pilotes standardisés pour I2C, SPI, CAN et USB sur divers chipsets de semi-conducteurs. Il dispose également d'une pile réseau embarquée prenant en charge TCP, UDP, IPv4 et IPv6, ainsi que des protocoles industriels tels que Modbus et DroneCAN. Le système couvre un large éventail de capacités, incluant une gestion avancée de la mémoire avec pagination à la demande, des opérations cryptographiques sécurisées et un système de fichiers virtuel pour gérer des types de stockage disparates. Il intègre en outre des interfaces de haut niveau pour les interfaces graphiques, la synthèse audio et l'exécution de plusieurs langages de script et charges de travail WebAssembly. L'environnement est construit en utilisant Make ou CMake pour cibler des configurations de cartes et des chipsets spécifiques.
Provides an interface to register or remove support for specific binary file formats at runtime to determine how objects are loaded.