UNIVERSITE TECHNOLOGIQUE M’SIRI 1er DE
BUNKEYA
FACULTE D’INFORMATIQUE
COURS DE PROGRAMMATION SYSTÈME ET RESEAU
BAC 2 INFORMATIQUE
PAR ASS ERIC MINGA SHANGA
Concepteur des systèmes d’information
ANNEE ACADEMIQUE 2022-2023
DESCRIPTION DU COURS
INTITULE COURS: PROGRAMMATION SYSTÈME ET RESEAU
VOLUME HORAIRE: 60h (30+30h)
PREREQUIS: Bonne connaissance des systèmes d’exploitation, de l’algorithmique
METHODES D’ENSEIGNEMENT: Méthode expositive et démonstrative
STYLE D’EVALUATION: Travaux dirigés, Travaux pratiques, Interrogation, Exposés,
Présence et participation au cours.
SUPPORT DU COURS: Quelques diapos et tutoriels vidéos
OBJECTIF GENERAL DU COURS
Doter aux étudiants de bac 2 Informatique des connaissances théoriques et
pratiques sur la programmation système et réseau afin de leur permettre d’être
en mesure de faire des programmes intégrés aux systèmes d’exploitation et de
manipuler certains systèmes via des commandes
OBJECTIFS SPECIFIQUES
A la fin de ce cours, tout étudiant qui l’aura suivi avec attention et application sera en mesure de :
:
De manipuler le système Windows et linux via des commandes
Faire des petits programmes intégrés aux systèmes d’exploitation et les
exécuter
Automatiser les tâches courantes et celles de l’administration système
avec Windows et linux
Planifier l’exécution des scripts dans l’environnement Linux tout comme
dans l’environnement Windows
Apprendre la programmation système combiné ou lié au langage de
programmation C.
PLAN DETAILLE DU COURS
CHAPITRE I : GENERALITES SUR LES SYSTEMES D’EXPLOITATION
II.1 : Introduction
II.2 : L’interface utilisateur
II.3 : Les types de systèmes d’exploitation
II.4 : Composition d’un système d’exploitation
II.5 : Rôles d’un système d’exploitation
II.6 : Utilisation de Windows via des commandes
II.7 : Utilisation du linux (Ubuntu) via des commandes
CHAPITRE II : INTRODUCTION AUX NOS (NETWORK OPERATING
SYSTEM)
II.1 Introduction
II.2 Définition et rôle du serveur
II.3 Notions de ports et protocoles
II.4 Le Contrôleur de domaine sous Microsoft
CHAPITRE III: PROGRAMMATION SHELL SOUS WINDOWS
III.1 Introduction et démarrage de powershell
III.2 Programmation et exercices
CHAPITRE IV: PROGRAMMATION SHELL SOUS LINUX
III.1 Environnement d’utilisation
III.2 Programmation et exercices
CHAPITRE IV : INTRODUCTION AU LANGAGE C
CHAPITRE I : GENERALITES SUR LES SYSTEMES D’EXPLOITATION
II.1 : Introduction
Comme nous venons de le voir, un ordinateur est constitué de matériel (hardware) et
de logiciel (software). Cet ensemble est à la disposition d’un ou plusieurs utilisateurs.
Il est donc nécessaire que quelque chose dans l’ordinateur permette la
communication entre l’homme et la machine.
Cette entité doit assurer une grande souplesse dans l’interface et doit permettre
d’accéder à toutes les fonctionnalités de la machine. Cette entité douée d’une
certaine intelligence de communication se dénomme " la machine virtuelle ". Elle est
la réunion du matériel et du système d’exploitation (que nous noterons OS par la suite
pour Operating System).
Le système d’exploitation d’un ordinateur est chargé d’assurer les fonctionnalités de
communication et d’interface avec l’utilisateur. Un OS est un groupe de logiciels dont
le grand domaine d’intervention est la gestion de toutes les ressources de l’ordinateur :
mémoires,
fichiers,
périphériques,
entrée-sortie,
interruptions, synchronisation...
Un système d’exploitation n’est pas un logiciel unique mais plutôt une famille de logiciels.
Une partie de ces logiciels réside en mémoire centrale (nommée résident ou
superviseur), le reste est stocké en mémoire de masse (disques durs par exemple).
Afin d’assurer une bonne liaison entre les divers logiciels de cette famille, la cohérence de
l’OS est généralement organisée à travers des tables d’interfaces architecturées en
couches de programmation (niveaux abstraits de liaison). La principale tâche du
superviseur est de gérer le contrôle des échanges d’informations entre les diverses
couches de l’OS.
Le système d'exploitation (SE, Operating System) est un ensemble de
programmes responsables de la liaison entre les ressources matérielles d'un
ordinateur et les applications de l'utilisateur (traitement de texte, jeu vidéo,
etc.). Il assure le démarrage de l'ordinateur, et fournit aux Programmes applicatifs des
interfaces standardisées pour les périphériques.
En parlant de système d’exploitation, il s’agit d’un système d'exploitation automatique
des ressources de l’ordinateur. On le représente généralement comme une couche
logicielle placée au-dessus du hardware.
L’étude des systèmes d’exploitation classiques peut se faire sur base de (du):
Les processus, qui correspondent à l’exécution des programmes. Ces processus
pouvant s’exécuter simultanément dans un système multitâche. Le système a
pour fonction de les créer, de les gérer, de les synchroniser, ainsi que de leur
permettre de communiquer entre eux;
La gestion de la mémoire, qui permet de transférer les programmes et les
données nécessaires à la création des processus, d’un support secondaire, par
exemple un disque, vers un support central, où a lieu l’exécution des processus. Le
système devra garder la trace des parties utilisées et libres de la mémoire ainsi que
gérer les transferts entre les mémoires principale et secondaire;
Le système de fichiers, qui offre à l’utilisateur une vision homogène et structurée
des données et des ressources : disques, mémoires, périphériques. Le système gère
la création des fichiers, leur destruction, leur correspondance avec les dispositifs
physiques, ainsi qu’un certain nombre d’autres caractéristiques, telles que la
protection. Il les organise enfin, en général, en une structure arborescente;
Les entrées-sorties, qui correspondent aux mécanismes qu’utilisent les processus
pour communiquer avec l’extérieur. Ces entrées-sorties font largement appel aux
couches les plus proches du matériel, et dont le système tente de masquer les
particularités aux utilisateurs.
Les systèmes d’exploitation modernes intègrent par ailleurs d’autres caractéristiques.
Ces dernières concernent notamment deux évolutions majeures des systèmes
informatiques. La première est l’interconnexion des différentes machines et des
différents systèmes par des réseaux locaux ou étendus. La seconde est la disparition
des écrans de textes et leur remplacement par des dispositifs à fenêtres multiples
disposant de propriétés graphiques. Ces deux techniques sont, de plus, étroitement
imbriquées. Les systèmes d’exploitation fonctionnent donc, ou vont fonctionner, en
réseau et ils consacreront une part importante de leurs tâches à gérer le fenêtrage, le
graphisme, et les interactions entre les différentes machines. Ce cours complète les 4
parties précédentes par des études sur :
Les réseaux d’ordinateurs, avec les protocoles de communication, d’interconnexion et
d’application. Les réseaux permettent de mettre en œuvre une nouvelle architecture
informatique fondée sur des clients et des serveurs;
Les systèmes répartis avec les protocoles d’appels de procédures à distance qui leur
sont associés. Les systèmes répartis actuels trouvent des applications à des architectures
client-serveur de fichiers ou d'applications, tels que des bases de données.
Les systèmes de fenêtrage graphique, ainsi que le modèle de serveur d’écran. Le
système d’exploitation correspond à l’interface entre les applications et le matériel. Le
programmeur d’applications n’aborde que rarement – sinon jamais – son code interne. Il
l’utilise par l’intermédiaire d’« appels système ». Les appels systèmes sont souvent
accessibles à partir d’un langage de programmation, notamment en C avec le système
Unix. Ces appels permettent d’effectuer la plupart des opérations sur les entités du
système d’exploitation et, par exemple, de créer et détruire des processus, des fichiers,
de réaliser des entrées-sorties, etc. Une terminologie tend à s’imposer pour dénommer
l’ensemble des appels système, qu’ils concernent un système d’exploitation ou n’importe
quelle d’application informatique : les API (Application Programming Interface).
Un utilisateur peut lui aussi – dans une certaine mesure – manipuler un système
d’exploitation, sans pour autant avoir à créer un programme. Il le fait par l’intermédiaire d’un
interprète de commandes (un « shell » en anglais) muni d’une syntaxe et éventuellement
programmable. Cet interprète peut accepter les lignes de commandes comme sous MS-DOS
ou sous Unix.
I.2 INTERFACE UTILISATEUR
Au système d'exploitation est associée une interface utilisateur (texte ou graphique)
capable d'interpréter une série de commandes de base. Cette interface ne fait
(théoriquement) pas partie du système d'exploitation mais l'étude des commandes donne
un bon aperçu des fonctions qu'il procure.
La convivialité du système dépend de la richesse et de la simplicité de l'interface
homme/machine.
Le système d'exploitation constitue une machine virtuelle qui, pour les applications,
substitue des composants logiciels aux composants matériels.
Il est la plateforme pour laquelle sont construites les applications.
Pour ce qui est du développement des applications : l'OS propose une interface de
programmation appelée API(Application Program Interface), une sorte de boîte à outils à
laquelle les développeurs recourent pour construire leurs applications. Ces API
procurent une vue uniforme et simplifiée des ressources de la machine. Cela
permet aux applications de faire abstraction des particularités du matériel en dissimulant
la diversité et la complexité du hardware.
Le S.E. reçoit des demandes des programmes d'application et des utilisateurs. Il y donne suite en leur
allouant les ressources du système :
1° le CPU
2° la mémoire
3° les périphériques
4° le système de fichier (y compris parfois, le réseau)
II.3 : LES TYPES DE SYSTÈMES D’EXPLOITATION
Systèmes multitâches
Le multitâche est la capacité pour un système d’exploitation à gérer plusieurs programmes
simultanément en leur attribuant tour à tour un pourcentage de temps processeur pour que ces
programmes puissent s’exécuter. Cela suppose que les périphériques et la mémoire puissent être
partagés pour être utilisés par les programmes. On distingue deux implémentations du multitâche : le
multitâche coopératif et le multitâche préemptif
Avec le multitâche coopératif, chaque application qui s’exécute sur le système d’exploitation dispose du
processeur (et les ressources associées) puis le libère, permettant ainsi à l’application suivante dans la
file d’attente d’exécution de disposer à son tour du processeur. Chaque tâche dépend des autres. La
conséquence est que, si une application ou tâche boucle sur elle – même ou se bloque, toutes les
applications restent en attente allant jusqu’à figer le système d’exploitation.
Avec le multitâche préemptif, chaque application dispose du processeur pendant un laps de temps
détermine à l’avance. L’ordonnancement, l’attribution du temps processeur pour les applications en
cours, est fait par le système d’exploitation sans consultation des applications exécutées. En
conséquence, si une application se bloque, elle perd l’allocation de processeur initialement prévue et est
mise de coté, sans bloquer ni le système, ni les autres applications. le partage du processeur et des
ressources entre les applications est géré par le système d’exploitation.
Systèmes multiprocesseurs
Le multiprocessing est une technique consistant à faire fonctionner plusieurs processeurs en
parallèle afin d'obtenir une puissance de calcul plus importante que celle obtenue avec un
processeur haut de gamme ou bien afin d'augmenter la disponibilité du système (en cas de panne
d'un processeur
On appelle SMP (SymmetricMultiprocessing ou SymmetricMultiprocessor) une architecture dans
laquelle tous les processeurs accèdent à un espace mémoire partagé.
Un système multiprocesseur doit donc être capable de gérer le partage de la mémoire entre
plusieurs processeurs mais également de distribuer la charge de travail.
Systèmes embarqués
Les systèmes embarqués sont des systèmes d'exploitation prévus pour fonctionner sur des
machines de petite taille, telles que des PDA (personal digital assistants ou en français assistants
numériques personnels) ou des appareils électroniques autonomes (sondes spatiales, robot,
ordinateur de bord de véhicule, etc.), possédant une autonomie réduite. Ainsi, une caractéristique
essentielle des systèmes embarqués est leur gestion avancée de l'énergie et leur capacité à
fonctionner avec des ressources limitées.
Les principaux systèmes embarqués «grand public» pour assistants numériques personnels sont :
PalmOS
Windows CE / Windows Mobile / Window Smartphone
Systèmes temps réel
Les systèmes temps réel (real time systems), essentiellement utilisés dans
l'industrie, sont des systèmes dont l'objectif est de fonctionner dans un
environnement contraint temporellement. Un système temps réel doit ainsi
fonctionner de manière fiable selon des contraintes temporelles spécifiques,
c'est-à-dire qu'il doit être capable de délivrer un traitement correct des
informations reçues à des intervalles de temps bien définis (réguliers ou non).
I.4 COMPOSITION DU SYSTÈME D’EXPLOITATION
Le système d'exploitation est composé d'un ensemble de logiciels permettant de gérer les
interactions avec le matériel. Parmi cet ensemble de logiciels on distingue généralement les
éléments suivants :
Le noyau (en anglais kernel) représentant les fonctions fondamentales du système
d'exploitation telles que la gestion de la mémoire, des processus, des fichiers, des entrées-
sorties principales, et des fonctionnalités de communication.
L'interpréteur de commande (en anglais shell, traduisez «coquille» par opposition au
noyau) permettant la communication avec le système d'exploitation par l'intermédiaire d'un
langage de commandes, afin de permettre à l'utilisateur de piloter les périphériques en
ignorant tout des caractéristiques du matériel qu'il utilise, de la gestion des adresses
physiques, etc.
Le système de fichiers (en anglais «file system», noté FS), permettant d'enregistrer les
fichiers dans une arborescence.
Autres composantes d’un système d’exploitation
Les bibliothèques dynamiques
Elles regroupent les opérations les plus utilisées dans les programmes informatiques dans le
but de :
éviter la redondance de ces opérations dans tous les programmes
Les outils système
Ces outils permettent de :
configurer le système
passer le relais aux applications proposant des services à un ou plusieurs utilisateurs ou à d’autres
ordinateurs
Les programmes applicatifs de base
Ils offrent des services à l’utilisateur (calculatrice, éditeur de texte, navigateur web, etc.)
Un système de fichiers est une méthode d’organisation des données persistantes sur un médium
durable
I.5 ROLE DU SYSTÈME D’EXPLOITATION
L'activité principale du système d'exploitation est de gérer les ressources matérielles en
permettant leur allocation et leur partage. Ce dernier point augmente les
performances du système en autorisant à plusieurs programmes d'applications d'utiliser
simultanément différentes parties de la machine. Il est ainsi pour beaucoup l'interface,
construisant pour l'utilisateur, une machine virtuelle plus facile à programmer que la
machine réelle.
Le système d'exploitation transforme donc, par sa gestion des ressources matérielles, la
machine physique en une machine virtuelle aux capacités infiniment plus grandes que
la machine réelle et certainement beaucoup plus souples et plus faciles à exploiter :
C'est ainsi que la gestion de l'unité centrale assurée par un système temps-partagé va
permettre à chacun des utilisateurs de ce système d'avoir l'illusion de posséder chacun
un processeur (virtuel) qui travaille exclusivement pour exécuter ses programmes.
De même, la gestion appropriée de la mémoire centrale permettra :
Le chargement de plusieurs programmes à la fois dans cette même mémoire centrale.
L'exécution de programmes bien plus grands que la taille de la mémoire centrale
I.6 UTILISATION DE WINDOWS VIA DES COMMANDES II.6 : Utilisation de Windows
via des commandes
COMMANDES DOS SOUS WONDOWS
Date : Affiche la date
Time : Affiche l’heure
Mkdir : créer un dossier exp : mkdir D:\SARAHMPOYO
Rmdir : Supprime un dossier exp : rmdir D:\SARAHMPOYO
Color : Changer la couleur de l’invite exp : color 04 1=arrière 2=écrits
Systeminfo : afficher toutes les informations système
Ver : affiche la version de Windows
Ren : renommer un dossier exp : REN D:\PELENGE ARSENE
Del : supprime un fichier exp : del D:\NAOMIE\[Link]
Move : permet de déplacer exp : move D:\NAOMIE\[Link] D:\ARSENE
Help : Affiche toutes les commandes windows
Xcopy : copier les fichiers exp : xcopy D:\ARSENE\[Link] D:\NAOMIE
Taskmgr : affiche gestionnaire des tâches
COMMANDES AU NIVEAU EXECUTER
WIN+R= Executer
Exécuter/ cmd : Affiche l’invite de commande
Exécuter/calc : Affiche la calculatrice
Exécuter/osk : affiche le clavier visuel
Exécuter/msconfig : affiche la configuration système
Exécuter/control : ouvre le panneau de configuration
Exécuter/regedit : ouvre éditeur des registres
Exécuter/control color : affiche les paramètres d’apparence (arrière plan…)
Exécuter/control keyboard : affiche les paramètres du clavier
Exécuter/control folders : ouvre les options des dossiers
Exécuter/control mouse : ouvre les options de la souris
Exécuter/control admintools : affiche outils administration
Exécuter/dxdiag : affiche l’outil de diagnostic direct
Exécuter/[Link] : affiche la stratégie de groupe local
Exécuter/cleanmgr : affiche l’option de nettoyage de disque
II.7 : UTILISATION DU LINUX (UBUNTU) VIA DES COMMANDES
touch et mkdir : créer des dossiers et des fichiers (touch nom du fichier, mkdir nom
dossier)
cp et mv : copier et déplacer un fichier (cp source destination)
rm : supprimer des fichiers et des dossiers
ln : créer des liens entre fichiers (exemple : ln fichierorigine fichierlié)
pwd : afficher le dossier actuel
which : connaître l’emplacement d’une commande. Il est à noter que les
programmes n’ont pas d’extension contrairement à ceux de windows avec .exe
et sont tous situés à un même emplacement.
ls –a : afficher tous les dossiers et fichiers cachés
ls –F : affiche et indique le type d’éléments. Il rajoute à la fin des éléments un
symbole pour qu'on puisse faire la distinction entre les dossiers, fichiers,
raccourcis...
ls –l : affiche tous les détails possibles. Il y a un élément par ligne. Chaque colonne
a sa propre signification. De gauche à droite :