Un
systeme d’exploitation
de
type Unix
(en
anglais
:
Unix-like
) est un systeme d’exploitation qui se comporte d’une facon semblable a un
systeme Unix
, bien que n’etant pas necessairement conforme ou certifie par une quelconque version de la
Single UNIX specification
. Le terme peut regrouper les systemes d’exploitations libres ou
open source
inspires par Unix des
laboratoires Bell
ou concu pour imiter ses fonctionnalites.
Le systeme UNIX est
multi-utilisateur
et
multitache
, il a ete construit pour etre sur, vis-a-vis des manipulations illicites des utilisateurs pour acceder a des donnees d'un autre utilisateur ou vis-a-vis des erreurs lors de l'execution d'un programme. Il permet donc a un ordinateur mono ou multi-processeurs d'executer apparemment simultanement plusieurs programmes dans des zones protegees appartenant chacune a un utilisateur en minimisant tout risque de fraude ou d'incident. Contrairement aux systemes anterieurs sur mainframes, l'utilisateur de ce systeme ne doit savoir manipuler que deux concepts de base, celui des
fichiers
et celui des
processus
, autrement dit les donnees et les traitements. Chacun de ceux-ci se complexifie cependant par exemple avec respectivement la gestion des
droits d'acces
ou les
IPC
(communications inter-processus).
Le fichier est l'unite elementaire de stockage de l'information, ou plus exactement la ressource elementaire sous UNIX, il est accessible via l'≪
espace de nommage
≫, une arborescence de fichier. Il existe des fichiers speciaux et des fichiers normaux. Les fichiers speciaux permettent d'acceder aux informations lues ou ecrites dans des
peripheriques
, par exemple les imprimantes, la memoire, l'ecran.
Un fichier sous UNIX n'est intrinsequement pas type, ce qui veut dire que le systeme ne connait pas le format des donnees qu'il contient, et peut representer differentes ressources telles qu'une suite de caracteres stockee sur un support physique, un peripherique, tel que:
disque dur
,
imprimante
, derouleur a bandes, memoire,
interface reseau
. Le systeme d'exploitation gere toutes les informations necessaires au traitement de ce fichier : proprietaire, groupe (chaque fichier etant detenu par un proprietaire faisant partie d'un ou plusieurs groupes, le proprietaire et chaque groupe possedent des droits particuliers),
droits d'acces
des differentes categories d'utilisateurs, taille, date de derniere modification, date du dernier acces, references des blocs de donnees sur le disque s'il represente une suite de caracteres.
Unix est par definition multi-utilisateur et multi-tache. Le processus est l'unite elementaire de gestion des traitements sous UNIX et initialement la seule. Il s'agit d'une abstraction comprenant un espace d'adressage et supportant un ou plusieurs flots d'execution de programme, les
threads
noyaux apparus plus tard, chacun possedant une pile et son propre
contexte d'execution
. UNIX etant un systeme
multitache
, il permet de partager les ressources de calcul entre les threads. D'autre part il est
preemptif
, ce qui implique que ce partage est effectue de maniere transparente pour les threads. Ce partage transparent est realise grace a un
ordonnanceur
adapte a l'usage auquel est destine le systeme. Dans un systeme a temps partage, l'ordonnanceur tente de repartir les ressources de calcul de maniere equitable entre les threads tout en privilegiant le temps de reponse des
entrees/sorties
. Dans un systeme temps-reel, les threads sont ordonnances selon des contraintes temporelles qui doivent etre garanties strictement (temps-reel dur) ou bien avec un certain taux d'echec (temps-reel souple).
Au niveau
logiciel
, la
politique de securite
du systeme UNIX est fondee sur le principe que chaque ressource admet un
identificateur
, un proprietaire et un ensemble de
droits d'acces
(en lecture, en ecriture, en execution) repartis en trois groupes :
- les droits du proprietaire ;
- les droits du groupe auquel appartient le proprietaire ;
- les droits des autres utilisateurs.
La plupart des systemes UNIX actuels proposent un modele plus fin, celui des
listes de controle d'acces
(ACL - Access Control List). Un utilisateur special appele
root
possede tous les droits sur toutes les ressources. Il est en general utilise uniquement pour des taches d'administration. Par souci d'une meilleure securite, certains systemes UNIX permettent de mieux nuancer l'acquisition de droits supplementaires par les utilisateurs. Ainsi Linux propose-t-il les ≪ capacites ≫ (capabilities) et
Mac OS X
permet d'installer des applications et d'intervenir sur la configuration du systeme au moyen d'un compte
administrateur
distinct de
root
(qui est d'ailleurs desactive par defaut), en ce qu'il ne peut modifier les fichiers fondamentaux du systeme.
Au niveau materiel, le controle d'acces aux ressources se base d'une part sur des mecanismes inherents aux principes de fonctionnement de la memoire virtuelle, et d'autre part sur un modele de protection a 2 niveaux : le mode superviseur (le plus privilegie, reserve au fonctionnement du noyau) et le mode utilisateur (le moins privilegie). Ce type de controle d'acces est possible sur la plupart des processeurs modernes supportant un UNIX. Certains processeurs fournissent des possibilites de protection plus etendues. Ainsi les processeurs de la famille Intel
x86
comportent 4 niveaux (ou anneaux) de protection. Des systemes d'exploitation (peu nombreux a l'heure actuelle), tels que
OS/2
, exploitent cette possibilite.