Se connecter
Se connecter

ou
Créer un compte

ou

Sujet Kezako un OS?

  • 41 réponses
  • 9 participants
  • 1 155 vues
  • 1 follower
Sujet de la discussion Kezako un OS?
Salut,

Comment ça marche dans le fond un OS? Qu'est-ce qui le compose (noyau, etc..)?
Qu'est-ce qui fait qu'un est meilleur qu'un autre?
Pourquoi en fait on peut pas utiliser un programme sur un OS et pas un autre?

Si vous avez de la doc, même en anglais, précis à ce sujet, ça m'intéresse...
Merci d'avance... ;)
2
En vla une question vaste.
un OS c'est (arrête moi si jme trompe) une interface qui te permet d'exploiter les ressources d'une machine.
les machines étant de plus en plus compliquées, faire un OS stable qui englobe toutes les possibilités offertes est un dur dur et long labeur. Donc , les développeurs avancent petit à petit , à coup de mises à jour pour les utilisateurs.
ai-je été clair ?
3
Eh bien, pour faire simple simple, un OS, c'est la partie dure de ton corps, sur lequel repose ta CHAIR, et ta PEAU.















C'est bon...j'attache la corde et je me pends.
4
Oui, oui, c'est on ne peut plus clair. :)
Je m'attendais à une réponse plus précise en fait, comme ceci. Désolé à ceux que l'informatik donne des boutons, mais je sais qu'il ya 2/3 personnes sur AF qui sauront m'informer sur ce sujet.
Merci quand même les autres, c'est gentil tout plein. :clin:
5
Je vais essayer !

1 ) un os , ceux sont pleins de petits programmes pour utiliser les composants du pc .

par ex -> programme lire disquette , formater dd, etc .....

ces programmes sont standart pour du matos standart.


2 ) pourquoi un programme marche sur un os et pas sur un autre ?

ex sur pc l'adresse pour envoyer les infos pour l' affichage est 1254000 , sur mac par exemple , l'adresse pour trouver l'adresse d'affichage est 215400 !

3 ) pourquoi un os et mieux qu'un autre ?

porquoi faire !

:lol:
6
Salut,

Citation : Comment ça marche dans le fond un OS? Qu'est-ce qui le compose (noyau, etc..) ?



Le noyau, c'est la partie centrale de l'OS, qui va communiquer directement avec le materiel. En général, le noyau est écrit en assembleur, et les couches supèrieures dans un langage de plus haut niveau.

Citation : Qu'est-ce qui fait qu'un est meilleur qu'un autre?



la stabilité, la vitesse, la gourmandise en ressources, beaucoup de choses !!
par exemple tu peux faire tenir une Debian sur une disquette, même pas besoin de disque dur, et la stabilité est assurée. Par contre tu n'as évidemment pas d'environnement graphique.

Citation : Pourquoi en fait on peut pas utiliser un programme sur un OS et pas un autre ?



tout simplement parce que chaque programme est écrit spécifiquement pour un OS. Ca tend à être de moins en moins vrai (Java, bibliotheques portables, ...) pour des raisons de rapidité de portabilité. Mais dans la pratique, c'est ca.

Citation : Si vous avez de la doc, même en anglais, précis à ce sujet, ça m'intéresse...
Merci d'avance...



BOF je vois pas ce que tu veux apprendre là dessus... m'enfin...
7

Citation :
un OS c'est (arrête moi si jme trompe) une interface qui te permet d'exploiter les ressources d'une machine.



Elle est bien, cette definition :bravo: En fait, la question de savoir ce qu'est un OS est tres, tres ideologique. Par exemple, envoie sur la liste des developpeurs du kernel linux un truc du style "ouais, pourquoi il y a pas de graphique dans le noyau linux", et les debats pour ou contre la star ac' utilisant du behringer sur des virtual analog paraitront bien fades et gentillets a cote...

Basiquement, je dirais que le role du noyau d'un OS est de lancer des "processus", les gerer ( ordonanceur ou scheduler si multi tache : decoupe chaque processus en morceaux, et dit quel ;orceau s'execute quand, en gros ), de gerer la ram ( systeme de memoire virtuelle, un gros morceau ), assurer un certain niveau d'abstraction materiel par rapport au materiel ( role du HAL dans NT, par exemple ).

Un OS parfait n'existe pas, un OS stable ne veut pas dire grand chose, etc... Par exemple, si linux est relativement stable en tant que seveur, il le sera moins qu'un open BSD ( la reference ), et tu risques pas de voir ca dans les systemes critiques d'un bagnole ou d'un avion, a moins que tu aies des tendances suicidaires. Bref, tu l'auras compris, ca depend du contexte, du type de machine. Un OS pour assurer des millions de connections par jour n'a pas les memes contraines qu'un OS embarque sur telephone portable, et l'OS gerant l'ABS d'une bagnole n'a pas les memes que celui d'un virus ou un waldorf.

Certaines contraintes sont relativement antagonistes ( securite vs rapidite, multi plateforme vs efficacite, securite vs temps reel, etc... ). T'as les OS de base multi tache : linux, les unix, WinNT. Au niveau structure du noyau , il y a en gros WinNT vs les autres, au niveau du noyau. Apres, il a les OS un peu plus exotiques, le plus interessant etant pour moi QNX, oriente temps reel tout en etant compatible 100% POSIX, qui bien qu'etant pas libre, est tres ouvert, et a une doc interessante sur son fonctionnement.

http://www.qnx.com/developer/docs/momentics621_docs/neutrino/index.html

Pour comprendre comment marche linux, la reference, en bouquin, c'est le O'reilly sur le kernel, qui couvre l'actuelle version du noyau, la 2.4

http://www.oreilly.com/catalog/linuxkernel/

Tu peux aussi trouver pas mal d'infos en cherchant sur les sites how-to.

Enfin, si t'as compris ce que j'ai dit, le fait qu'un programme sous linux ne se lance pas sous mac ou windows depend de pleins de choses : l'OS, bien sur ( parce que c'est lui qui dit ce qu'est un processus, comment est allouee la memoire, etc ... ), mais l'architecture ( un truc linux compile pour x86, ie binaire pour x86, ie comme un .exe sous windows ne se lancera pas sous linux pour mac, par exemple ), ainsi que du format binaire : il y a des versions de binaires totalement incompatibles sous linux, en gros les "a.out" et les "ELF"; c'est a mon avis un des tours de force de microsoft sous estime que de pouvoir faire encore tourner pas mas de trucs qui ont 15 ans sur windows XP sans aucun pb.

Citation :
Le noyau, c'est la partie centrale de l'OS, qui va communiquer directement avec le materiel. En général, le noyau est écrit en assembleur, et les couches supèrieures dans un langage de plus haut niveau.



C'est heuresement faux aujourd'hui : le minimum est ecrit en assembleur, pour des raisons evidentes. Si tu veux ecrire un stseme de memoire virtuelle en assembleur, bon courage :bravo: Le langage de base pour ecrire un OS, c'est le C, qui a ete invente pour ca, a la base, et le C++ ( BeOS, par exemple, ou pas mal de windows, je pense ), voire l'objective C pour Mac OS X. IL y a bien sur des exceptions.

Pour info, les sources du dernier kernel 2.4.21 stable linux, c'est 130 Mo de sources ( 130 Mo de fichiers texte, pour vous rendre compte de la quantite d'informations que ca represente : ca doit etre un des plus gros projets open source avec mozilla ou KDE, voire un des plus gros projets informatiques tout court ), avec les drivers, bien sur. Je pense que le noyau lui meme doit pas depasser qqs Mo de sources, et sur ces qqs Mo, qqs dizaines de ko en ASM, grand max. Sur http::/www.kernel.org, tu peux trouver la version 0.01 de linux, assez basique, completement comprehensible par qqn qui a une bonne connaissance du BIOS, du C et de l'ASM x386. C'est qq ko de sources. La, c'est 25% d'ASM, je crois, mais c'est normal, car ca ne fait que basiquement le bootage, le passage en mode protege, plus qqs trucs de base, qui necessitent l'asm pour des raisons evidentes.

Voila pour ce que fait en gros un noyau, mais evidemment, c'est pas mal plus cmplet que c, un OS, souvent. Meme si j'y connais pas grand chose, je peux te faire un topo sur comment marche basiquement la memoire virtuelle, l'ordonancement, le lancement de processus, la gestion des processus legers ( threads ), le mode kernel vs mode user, bref les trucs de base d'un OS multi tache classique pour PC.
8

Citation : 130 Mo de fichiers texte, pour vous rendre compte de la quantite d'informations que ca represente




Très instructif gabou mais là :
9
Rigole pas j'ai fait
-du pascal
-du C
-du cobol
A l'iut....
-du logo (en cp)
Ettonament j'ai arrêté rapidement... :oops:
10
Ben 130 Mo de sources, ca veut dire que pour "fabriquer ton OS", t'as 130 millions ( en gros ) de caracteres pour coder les instructions.

Ca doit bien faire plusieurs dizaines de millions de ligne de code

Ce qui doit bien faire qqs centaines de milliers de pages. Bref, prend l'universalis, remplis la de trucs aussi comprehemsible que des

mov eax,ebx ( ca, c'est l'asm )

ou des

for ( *p++ = *q++ ) ( ca, c'est le C )

ou des

bouga::bouga ( int x = 0 ) : b(x)
{}

( le C++ )

et t'as un ordre d'idee de la maniere dont ca peut etre passionant pour un neophyte
:mdr: ( je sens que tu vas te lancer dans la programmation, demain, non ? )