A2A!
Tout d'abord, un ordinateur est parfaitement heureux sans clavier. Votre voiture en possède facilement quelques dizaines - sans clavier. Mais vous avez raison sur la nécessité de communiquer - bien que, comme vous pouvez le voir dans votre voiture, un faisceau de capteurs pour l'entrée et quelques actionneurs comme sortie est tout à fait OK.
Pour ce qui est de la plus basique de toutes les nécessités, c'est normalement déjà à bord de presque tout système et appelé un "moniteur" pour la version la plus primitive ou "bios" pour quelque chose d'un peu plus élaboré.
Si vous avez un système complètement nouveau et vide, la première étape serait de créer un assembleur. vous pourriez bien sûr le faire comme les tout premiers programmeurs avec le manuel du Prozessor et construire votre instruction à la main, les écrire sur un morceau de papier (ou deux ou quelques piles) et ensuite les entrer dans un fichier que vous pouvez ensuite transférer à votre machine. La plupart des puces Prozessor embarquées ont une interface appelée JTAG qui vous permet de programmer la mémoire flash interne directement sans avoir besoin d'un programme moniteur.
Mais aujourd'hui, le processus appelé bootstrapping (construire un nouvel ensemble d'outils pour votre machine) est beaucoup plus facile, car vous pouvez écrire un assembleur croisé principalement dans une sorte de système de blocs de construction et les compilateurs C sont écrits en C et un compilateur croisé est presque fait si vous avez l'assembleur croisé.
Aujourd'hui, tout cela est normalement fait par le fabricant de la puce. Donc vous achetez les puces et une carte prototype et vous obtenez les outils pour développer le logiciel. Un compilateur C sera presque toujours disponible, mais il n'aura par exemple PAS le stdio.h ou d'autres en-têtes qui nécessiteraient un système d'exploitation.
Pour un système un peu plus sophistiqué, des systèmes d'exploitation (en temps réel) sont parfois disponibles. Cela facilite votre travail si vous avez besoin de plusieurs threads par exemple.
Tous les outils ne sont pas forcément gratuits, mais que vaut 1000 dollars pour un compilateur si vous construisez un million de cartes par la suite ?
Un bon exemple pour ce genre de professeurs : PIC microcontrôleur - Wikipedia
L'étape suivante vers le haut est par exemple Arduino - Wikipedia où vous n'achetez pas seulement le Prozessor et la construction de votre propre matériel autour de lui ; ici vous achetez des cartes prêtes à l'emploi. Le logiciel ici fournit un noyau absolument minimal pour vos programmes à exécuter sur. C'est à vous de décider si vous l'appelez un système d'exploitation ou non.
Plus loin : Raspberry Pi - Wikipédia un ensemble de cartes basées sur un "système sur une puce" qui ressemble plus à un PC. Par conséquent, la plupart des logiciels fonctionnent sur un système d'exploitation présent sur la carte. Vous pouvez connecter un clavier si vous le souhaitez (connecteur USB multiple sur presque toutes les cartes), mais vous n'y êtes pas obligé. Les produits finaux typiques n'en ont pas. (Pensez par exemple aux Router-Boxes etc.)
J'espère que cela aidera à élever votre confusion.