Fonctionnement d'un logiciel

jemd1 -  
mamiemando Messages postés 34228 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

voilà le résumé de mes maigres connaissances (provenant le plus souvent de ce forum ... cqfd)et des questions que je me pose sur le sujet concernant le fonctionnement des logiciels, n'hésitez pas à me dire si je me trompe ou à répondre aux multiples questions qui accompagnent la suite (plus de questions que de réponses d'ailleurs comme vous pourrez le constater).

Fonctionnement d'un logiciel ou programme :

d'abord il y a le SE avec une interface, le bureau par exemple, avec des icônes représentant divers fichiers se trouvant sur le disque dur et en particulier des .EXE permettant l'execution d'un programme.
Un e mode d'entrée parmi d'autres est le poste de travail, programm files puis les dossiers relatifs à chaque logiciels.

Chaque dossier contient plusieurs fichiers dont le fichier .exe qui permet le démarrage, le fichier d'installation, celui de désinstallation d'un logiciel.

-1°question : comment fonctionne le fichier d'installation, et comment se passe l'installation d'un logiciel ? Comment le SE gère t-il les différents fichiers d'un logiciel

-2° question : à quoi correspondent les autres fichiers; les fichiers documents textes les fichiers html, le dossier plugins avec des .dll, un fichier .cnt, le fichier "lisez-moi",etc.


-3° question : comment l'interface du logiciel est-elle adaptée à un SE particulier ? Chaque langage de programmation a t-il ce qu'on appelle des API adaptées à chaque SE pour créer des interfaces intégrées ?


Pour démarrer un logiciel il y a donc le .EXE (qui doit être une ligne de programme dans un langage quelconque et compilé), une fois cliqué le SE va chercher le fichier qui contient le .EXE, puis exécuter celui-ci,lancer le programme c'est à dire demander au pilote du moniteur d'afficher l'interface et au microprocesseur d'exécuter les commandes ( les fonctions du programme) qui vont être lancées à partir de l'interface du logiciel c'est à dire mobiliser l'ensemble du matèriel nécessaire au logiciel.

2 réponses

mamiemando Messages postés 34228 Date d'inscription   Statut Modérateur Dernière intervention   7 897
 
d'abord il y a le SE avec une interface, le bureau par exemple, avec des icônes représentant divers fichiers se trouvant sur le disque dur et en particulier des .EXE permettant l'execution d'un programme.

Non au début il y a un bios, puis un noyau/ Le noyau est la couche logicielle qui sert d'intermédiaire entre le matériel et l'OS (windows, linux...). L'OS peut ensuite être chargé, et seulement nsuite on peut (mais pas on n'est pas obligé) charger un environnement graphique (window manager). Sur les serveurs par exemple il n'y a pas souvent un environnement graphique.

Pour le .exe c'est une notation windowsienne. On parle plutôt d'exécutables de binaires.

Un e mode d'entrée parmi d'autres est le poste de travail, programm files puis les dossiers relatifs à chaque logiciel
s.

Sous windows en effet... Mais il n'y a pas que windows, même si tu retrouves des programmes comparables sous les autres os (konqueror, nautilus...)

Chaque dossier contient plusieurs fichiers dont le fichier .exe qui permet le démarrage, le fichier d'installation, celui de désinstallation d'un logiciel.

-1°question : comment fonctionne le fichier d'installation, et comment se passe l'installation d'un logiciel ? Comment le SE gère t-il les différents fichiers d'un logiciel


Alors sous windows c'est un peu plus subtil. Quand tu installes un logiciel, celui-ci crée un certains nombre de clé dans la base de registres, qui permettent à windows de facilement retrouver certaines informations (répertoire d'installation, ...). Une série de fichiers sont ensuite décompréssés dans le répertoire d'installation.

Rq : Lorsqu'on te demande de passer proprement par les menus pour desinstaller un programme, c'est surtout pour maintenir une base de registre cohérente avec ce qui se trouve sur ton disque. Car sinon un simple suppr suffirait ;)

Pour la désinstallation, une fois que windows a trouvé la bonne clé, celle-ci lui permet de retrouver l'executable approprié qui lui supprime les fichiers installés (sauf tes sauvegardes et fichiers persos si c'est bien fait). Par ailleurs il n'y a pas de désinstalleur dans tout les dossiers, mais en général il y en a un par application.


-2° question : à quoi correspondent les autres fichiers; les fichiers documents textes les fichiers html, le dossier plugins avec des .dll, un fichier .cnt, le fichier "lisez-moi",etc.

- html : page html visible dans un navigateur web (genre firefox). Contient en général de la doc ou de la pub.
- dll : fichier de librairies, utilisé par l'éxecutable.
.cnt je ne sais pas ça doit être propre à otn programme. Ouvre le avec un wordpad tu verras bien ce qui s'y cache ;)
- lisezmoi : fichier texte d'aide. Ouvrable avec un bloc notes par exemple.

-3° question : comment l'interface du logiciel est-elle adaptée à un SE particulier ? Chaque langage de programmation a t-il ce qu'on appelle des API adaptées à chaque SE pour créer des interfaces intégrées ?


Ouais en gros c'est ça. C'est pour ça qu'un executable windows ne marche pas sous linux et reciproquement. Ils ne se compilent pas pareil, même si le code source est le même. Note qu'un programme n'est pas forcément compilé (scripts, html, ...) même si c'est souvent le cas (java, c++...)

Pour démarrer un logiciel il y a donc le .EXE (qui doit être une ligne de programme dans un langage quelconque et compilé), une fois cliqué le SE va chercher le fichier qui contient le .EXE, puis exécuter celui-ci,lancer le programme c'est à dire demander au pilote du moniteur d'afficher l'interface et au microprocesseur d'exécuter les commandes ( les fonctions du programme) qui vont être lancées à partir de l'interface du logiciel c'est à dire mobiliser l'ensemble du matèriel nécessaire au logiciel.

Pas forcément .exe... Sous windows oui ... Et pas forcément compilé ;) Pour lancer le programme il y a beaucoup plus qu'afficher une interface graphique, car il faut aussi gérer toutes les interactions entre l'homme et la machine ;) C'est la face immergé de l'iceberg, et souvent la plus compliquée ;).

Et quand tu lances un programmes ca ne mobilise pas l'ensemble du matériel nécessaire au logiciel !! Encore heureux d'ailleurs, car si un logiciel réseau utilisait en permanence ta carte réseau, ce serait un peu dommage ;) En général un programme ne mobilise une ressource que quand il en a besoin et si l'OS l'y autorise (scheduling).
0
jemd1
 
Bonjour,

Pour continuer la réflexion sur le fonctionnement d'un logiciel, j'essayais d'appliquer l'approche ci-dessus avec un navigateur et bien je dois avouer que j'ai du mal à matérialiser le concept.

En effet un logiciel n'étant qu'une suite de 0 et de 1 comment par exemple une page html peut-elle être lue ?
Ou pour poser la question autrement, quel est le cheminement de l'entrée de la page par le port par exemple 8080 jusqu'a l'affichage de celle-ci par le navigateur au niveau matériel ??

allez je me lance ...vous m'arrétez si je dis des conneries.

Donc un "groupe" de 0 et de 1 se présentent devant le port 8080, celui-ci étant configuré pour réceptionner les document internet, un pilote (là encore un pilote n'est qu'une suite de 0 et de 1) va acheminer ces données en mémoire ram pour les garder au chaud en attendant que le système d'exploitation (qui n'est lui aussi d'ailleurs qu'une suite de 0 et de 1)car les données sont au format html alerte le navigateur (suite de 0 et de 1 placée sur le disque dur), ce dernier a été préalablement chargé en mémoire ram et est exécuté par le microprocesseur (exécuté veut dire que son interface apparait à l'écran et que l'ensemble de ses fonctionnalités est prête à interpréter les données arrivant.
Tout est donc en place pour l'affichage des données !

Mais comment tout cela s'organise t-il pour que des données (le navigateur)gèrent d'autres données ??
En fait la question c'est plutôt : comment le microprocesseur gère t-il ca ,mais comment fait-il ??
0
choubaka Messages postés 39986 Date d'inscription   Statut Modérateur Dernière intervention   2 105
 
salut

pour bien comprendre ça, il est indispensable de comprendre le modèle OSI

http://www.commentcamarche.net/internet/tcpip.php3

l'encapsulation est l'élément clé du système
0
mamiemando Messages postés 34228 Date d'inscription   Statut Modérateur Dernière intervention   7 897
 
Le microprocesseur ne sait faire que des opérations super basiques, mais les opérations plus complexes ne sont en fait qu'une suite d'opération simple. La transition entre ce que tu vois passe par de multiples couches logicielles qui ont nécessité des années de travail par des milliers de gens, il n'y a qu'à voir les pcs d'il y a 20 ans :)

Car avant le processeur, il y a tout le reste du matériel qui fait des traitement, traitement assuré par le noyau. Et le noyau traite les ordres donnés par l'OS (operating system), comme par exemple linux. Et l'OS effectue les opérations données par son contenu et les ordres de l'utilisateur.

De manière voisine, le principe d'une connexion entre deux machine est décomposé en plusieurs couches (le fameux modèle OSI), qui part des couches les plus orientées matériel pour aller vers des couches de plus en plus logicielles.

De manière générale, en informatique, on ne s'attaque pas brutalement à un problème, on le décompose en pleins de petits problème. On part toujours d'un truc très basiques pour aller vers des choses de plus en plus complexes.
0

Discussions similaires