Bonjour
J'ai crée ce sujet pour savoir quel language utilison pour faire un systeme d'exploitation et dooner des exemple de programme
Cordialement
HElios2A
-----
Bonjour
J'ai crée ce sujet pour savoir quel language utilison pour faire un systeme d'exploitation et dooner des exemple de programme
Cordialement
HElios2A
Bonjour,
C'est très souvent écrit en C et pas mal d'assembleur, et ce n'est pas gagné d'avance si tu n'es pas programmeur confirmé.
Bonsoir,
Exactement, le C est le langage le plus souvent utilisé. A savoir que Linux par exemple, a été écrit par " des milliers de bénévoles et salariés communiquant par Internet."
Donc seul c'est déjà impossible on va dire. Puis je te conseil déjà de regarder les premiers pas en C. Y'a pas mal de boulot, rien que pour des petites APPLI
je sais pas trop en c mais Tres bien en C++ et de l'UNIX
Salut.
Doit-on comprendre à la lecture de ton message que tu ne connais pas trop bien le C mais que tu connais parfaitement le C++ ?
Cherchez l'erreur !
D'autre part, Unix n'est pas un langage de programmation. Les scripts pondus avec un shell quelconque deviennent exécutables parce qu'il y a un interpreteur dans l'Unix. On peut s'en servir pour modifier le comportement du système, mais pas pour en écrire un à part entière. Reste encore à savoir ce que tu entends par "système d'exploitation" ?
Si par exemple tu as créé une carte électronique gérée par un µ-processeur et que cette carte possède un écran et un clavier, alors à l'allumage de cette carte, un mini OS de ton cru doit gérer les initialisations, la saisie des caractères et leur affichage éventuellement. C'est déjà un OS et ça peut très bien être le tien.
Bonjour,
A noter que le C a été inventé pour écrire UNIX... http://fr.wikipedia.org/wiki/C_(langage)
@+
Not only is it not right, it's not even wrong!
Réécrire. La première version d'UNIX était écrite en assembleur.A noter que le C a été inventé pour écrire UNIX... http://fr.wikipedia.org/wiki/C_(langage)
Mais les langages parents (B issu de BPCL, issu de PCL, issu de Algol 60, issu de Algol 58, issu de IACL, etc ....) sont antérieurs à UNIX.
Salutations,
Je ne sait pas si ma réponse aidera qui que ce soit à réellement créer un système d'exploitation. Qu'importe, peut être intéressera t-elle quelqu'un.
Un système d'exploitation n'est pas écrit dans "un" langage. Un OS, c'est un ensemble de module qui se parlent, parfois de façon séquentielle, parfois de façon parallèle.
On peu distinguer un premier module, fondamental: Le bootloarder. Souvent écrit en ASM, c'est le code qui permet de charger tout un tas de choses dans la RAM. Il est court, et son but peut varier. Je parle là du bootloader au sens "premiers octets interprétables par un processeur", pas de BIOS, ou d'interface de Multiboot.
A partir de ce moment, la donne change. Les quelques octets du bootloader ont pu charger un paquet de trucs en mémoire. [CEPENDANT] Ce qui suit dépend des architectures sur laquelle repose le système. Je vais généraliser[/CEPENDANT]
Les plus intéressants sont les drivers. Souvent écrit en un mélange de C et d'ASM, il donnent accès au matériel, créant ainsi une "couche d'abstraction". Mais avant de devenir vraiment utile, il faut que le la main soit passée au Noyau.(ex: linux)
Le Noyau va créer, et utiliser la couche d'abstraction pour charger d'autre données. Par exemple, la configuration du système, la liste des périphériques disponibles, le layout matériel.... Tout ceci menant à un but bien précis:
Lancer toutes les applications/Daemons/Services qui font ce qu'on appel à l'exactitude: "Un Système d'Exploitation".
Tout ce qui s'affiche à l'écran, et tout ce qui se passe derrière, c'est un assemblage de dizaines de langages interprétés ou non, qui communiquent entre eux via un savant réseau.
Plus généralement, on utilise certains langages à divers degrés de hauteur:
Bas niveau: Assembleur... C'est le langage qui peut être assemblé pour etre compris par le processeur. Tout ce qui est compilé, devient en fait de l'assembleur avant de devenir du langage machine (à l’exception des bytecodes qui tournent en machine virtuelle)
Haut niveau: C/C++, ADA, Delphi, Fortran... Ces langages sont plus évolués. Il donnent accès à des mots-clef, des structures de donnée, des boucles conditionnelles variées... Ils peuvent être pré-compilés, en fonction de certains paramètres, compilés, ils deviennent alors de l'assembleur, qui peut être assemblé pour donner du langage machine, compréhensible par le processeur.
Interprétés: BASIC, SQL, BASH, javascript... Ces langages sont "lu" par des programmes compilés, qui exécutent chaque commande. Ils sont souvent utilisé pour les scripts.
Les langages comme le JAVA ( ou le segfaultprog) sont eux compilés, mais pas dans un assembleur compréhensible par le processeur. La machine virtuelle met à disposition de la mémoire, pour exécuter le "bytecode" du programme, et répercuter ses actions sur le processeur Hote. La Machine virtuelle, elle est assemblée pour le processeur. On peu dire qu'elle virtualise une architecture, comme le ferait virtualbox, KVM, ou Qemu. Cette technique à l'avantage de créer une barrière entre le matériel et la couche d'abstraction (constante) de la VM, rendant ainsi le programme "portable" (qui peut être exécuté par n'importe quel système, indépendamment de l'OS ou de la configuration matérielle, dans la mesure ou une Machine virtuelle est disponible pour lui)
Bref. A noter que ce qu'on appel un "Système d'Exploitation", c'est l'ensemble de tout ça (à la différence du bootloader qui peut tout à fait ne rien à voir avec le registred dtrademark de l'OS). Le noyau, les drivers, les programmes (interface graphique, fenêtrage, navigation...).
Et tout ceci se code en ... Plein de langages différents.