La raison pour laquelle vous n'êtes pas à trouver un nom pour ce qu'il n'est pas un système d'exploitation -- c'est l'absence d'un système d'exploitation. Souvent, cela est appelé quelque chose comme "bare-metal" de la programmation.
L'idée générale de "bare-metal" de la programmation est qu'il y a un petit peu de code, un "bootloader" -- qui met en place le contrôleur de mémoire et autres périphériques de choses sur le forum, et puis qui transfère le contrôle à votre programme. (Les systèmes d'exploitation ont également des chargeurs, dans ce sens, votre programme est de remplacer le système d'exploitation.) Uboot est assez open-source bootloader, donc cela pourrait être un bon endroit pour commencer à chercher de l'information.
L'un des passages techniques à propos de "bare-metal" de la programmation, c'est que, puisqu'il n'y a pas un système d'exploitation en place pour traiter de tout matériel de communication, vous devez penser "que fait un printf réellement dire aussi loin que ce que les données de ce périphérique?" et "comment puis-je le faire aller là-bas?" Encore une fois, certains chargeurs d'amorçage fournissent un support pour ce genre de chose, si ce n'est pas toujours trivial de le connecter à tout. Encore une fois, Uboot est un bon exemple.
Pendant ce temps, la bibliothèque C de lui-même, en réalité, va être fournis par votre compilateur, plutôt que le chargeur de démarrage.
(Je dois aussi ajouter, comme un nom de note: L'entreprise pour laquelle je travaille fait une série de nu-métal et Linux compilateurs, connu comme Sourcery CodeBench. Pour CodeBench, le nu-métal versions sont généralement nommé d'après ABI spécifications qu'ils utilisent pour la liaison des programmes, de sorte que le "ELFE" ou "EABI" les versions sont toutes en métal nu compilateurs, et je pense que c'est une jolie commune de la façon de se référer à ce genre de chose, de sorte que vous voyez ce genre de nom qui l'entourent.)