Accueil technologie Appel système

Appel système



Présentation des appels système

Courte introduction

Afin d'atteindre cet objectif, le noyau fournit une série de fonctions multi-noyaux avec des fonctions prédéterminées, qui sont présentées aux utilisateurs via un ensemble d'interfaces appelées appels système.

Modernoperatingsystemsusuallyhavemultitaskingfunctions, whichareusuallyimplementedbyprocesses.Sincetheoperatingsystemquicklyswitchesbetweeneachprocess, everythingwilllooklikeithappensatthesametime.Atthesametime, thisalsobringsalotofsecurityproblems.Forexample, aprocesscaneasilymodifythedataintheprocess'smemoryspacetomakeanotherprocessabnormalorachievesomegoals.Therefore, theoperatingsystemmustensurethateachprocesscanbeexecutedsafely.Thesolutiontothisproblemistoaddabaseaddressregisterandalimitregistertotheprocessor.Thecontentsofthesetworegistersusehardwaretolimittheaddressofthememoryaccessedbythememoryaccessinstruction.Inthisway, thecontentsofthesetworegisterscanbewrittentotheaddressrangeallocatedbytheprocesswhenthesystemswitchesprocesses, therebyavoidingmalware.

Afin d'empêcher le programme utilisateur de modifier le contenu du registre d'adresses de base et du registre de limites pour accéder à d'autres espaces mémoire, ces deux registres doivent être accessibles via des instructions spéciales.

De même, pour des raisons de sécurité, certaines instructions d'opération d'E/S sont limitées au seul mode noyau pouvant être exécutées, de sorte que le système d'exploitation doit fournir une interface pour fournir des applications telles que la lecture de données à partir d'un certain emplacement sur le disque.

Lorsque le système d'exploitation reçoit la demande d'appel système, il laisse le processeur entrer en mode noyau pour exécuter des instructions telles que les opérations d'E/S et modifier le contenu du registre d'adresses de base.

PrincipesdesAppelsSystème

Typesetétatsdesprogrammesdanslesystème

Les états du système d'exploitation sont divisés en état de gestion (état principal) et en état cible (état utilisateur).

Le programme utilisateur s'exécute uniquement en mode utilisateur et doit parfois accéder aux fonctions principales du système. À ce stade, l'appel système est utilisé via l'interface d'appel système.

Appel de fonction système

Appel de fonction système : l'utilisateur utilise la « commande de gestion des accès » dans le programme pour appeler l'ensemble de sous-fonctions fourni par le système d'exploitation. Chaque sous-fonction système est appelée une commande d'appel système, également appelée commande généralisée.

Interface d'appel système

L'appel de la fonction système est un service fourni par le système d'exploitation aux programmeurs.

Finalité : faciliter l'utilisation des utilisateurs.

La différence entre l'appel système et l'appel ordinaire

Les appels système sont essentiellement un type d'appel de procédure, mais il s'agit d'un type particulier d'appel de procédure, qui est différent de l'appel de procédure dans le programme utilisateur général.

Statut d'exécution différent

Étatsd'exécutiondifférents.

Les méthodes d'appel sont différentes

Laméthoded'appelestdifférente.L'appelsystèmedoitd'abordentrerdanslecœurdusystèmevialemécanismesoftd'interruption,puispeutêtretransféréauprogrammedetraitementdescommandescorrespondant.

Retour à la question

Revenez à la question.

Exemple : interface d'appel système dans le système d'exploitation Linux

Contrôle de processus

Forkpourcréerunnouveauprocessus

Le cloneestcrééselondesconditionsspécifiéesProcessus enfant

execverunexecutablefile

quitterterminerleprocessus

_quitterimmédiatementterminerleprocessusencours

getdtablesizeTaillemaximalequeleprocessuspeutouvrirNombredefichiers

getpgidpourobtenirlenumérod'identificationdugroupedeprocessusspécifié

définirpgidpourdéfinirlenumérod'identificationdugroupedeprocessusspécifié

getpgrppourobtenirlenumérod'identificationdugroupedeprocessusactuel

setpgrpsdéfinitlenumérodulogodugroupedeprocessusactuel

getpidsobtientlenumérod'identificationduprocessus

getppidsobtientlenumérod'identificationduprocessusparent

getpriorityobtientlaprioritédeplanification

setprioritydéfinitlaprioritédeplanification

modifier_ldlitetécritlatablededescriptionlocaleduprocessus

nanosleependortleprocessuspendantuneduréespécifiée

nicemodifielaprioritéduprocessusdepartagedutempsNiveau

pausepoursuspendreleprocessusetattendrelesignal

personnalitépourdéfinirledomained'exécutionduprocessus

prctlpoureffectuerdesopérationsspécifiquessurleprocessus

ptraceprocessussuivi

sched_get_priority_max pour obtenir la limite supérieure de la priorité statique

sched_get_priority_minpourobtenirlalimiteinférieuredelaprioritéstatique

sched_getparampourobtenirlesparamètresdeplanificationduprocessus

sched_getschedulerpourobtenirlastratégiedeplanificationduprocessusspécifié

sched_rr_get_intervalObtenir la durée de tranche de temps du processus en temps réel planifié par l'algorithme RR

sched_setparamDéfinirlesparamètresdeplanificationduprocessus

sched_setschedulerDéfinirlastratégieetlesparamètresdeplanificationduprocessusspécifié

Le processus sched_yield prend l'initiative d'abandonner le processeur et attend la fin de la file d'attente de planification.

vfork crée un processus enfant pour l'exécution de nouveaux programmes, souvent avec execve, etc.

attendrela finduprocessusfils

attendre3voirattendre

waitpidpourattendrequeleprocessusenfantspécifiésetermine

wait4seewaitpid

capgetgetsprocesspermissions

capsetsprocesspermissions

obtientidobtientlenumérod'identificationdelaréunion

définit les identifiants définit le numéro d'identification de la réunion

opérations de lecture et d'écriture de fichiers

fcntlFilecontrol

ouvrirouvrirfichier

créercréerunnouveaufichier

fermerfermerfichierdescriptionmot

lirefichier

écrireécrirefichier

readvreaddatafromfiletobufferarray

writevwritedatainbufferarraytofile

preadrandomfileLire

pwriterécriture aléatoire dans un fichier

lseekmovefilepointer

_llseekmovefilepointerin64-bitaddressspace

dupcopyDescriptiondufichierouvert

dup2Copiezladescriptiondufichierselonlesconditionsspécifiées

flockfichierajouter/déverrouiller

pollI/Omultipleconversion

tronquertronquelefichier

tronquervoirtronquer

umaskdéfinitlemasqued'autorisationdefichier

fsync écrit la partie du fichier en mémoire sur le disque

p>

Fonctionnement du système de fichiers

Accessdeterminesfileaccessibility

chdirchangerépertoiredetravailactuel

fchdirseechdir

chmodchangefilemode

fchmodseechmod

chownchange de propriétaire de fichier ou de groupe d'utilisateurs

fchownseechown

lchownSeechown

chrootchangerépertoireracine

statfetchfilestatusinformation

lstatseestat

fstatseestat

statfsgetfilesysteminformation

fstatfsseestatfs

readdirreaddirectoryentries

getdentsreaddirectoryentries

mkdircreateDirectory

mknodcreateinode

rmdirdeletedirectory

renommerfichierrenommer

liencréerlien

lien symboliqueCréerun lien symbolique

dissociersupprimerlien

lirelienlirelavaleurduliensymbolique

monter le système de fichiers d'installation

umountremovefilesystem

ustatgetfilesysteminformation

utimechangefileaccessmodificationtime

utimesSeeutime

quotactlcontroldiskquota

controle du système

ioctlI/Ofonctiondecommandegénérale

_sysctlread/writesystemparameters

acctenableordisableprocessaccounting

getrlimit pour obtenir la limite supérieure des ressources système

définirrlimitpourdéfinirlalimitedupérieuredesressourcessystème

obtenir l'utilisation pour obtenir l'utilisation des ressources système

uselib sélectionne la bibliothèque de fonctions binaires à utiliser

iopermsetportI/Opermission

ioplchangeprocessI/Operationlevel

opération de port de niveau de soufflage

redémarrer

swaponopenswapfileanddevice

swapofffermelefichier d'échangeetl'appareil

bdflushcontrolbdflushdaemon

sysfs prend en charge le type de système de fichiers pris en charge par le noyau

sysinfoobtient des informations système

adjtimex règle l'horloge du système

alarmeréglageprocessusAlarmclock

gettimertogetthetimervalue

régler la minuterie pour régler la valeur de la minuterie

obtenir l'heure du jour pour obtenir l'heure et le fuseau horaire

définir l'heure de la journée pour définir l'heure et le fuseau horaire

stimesetthesystemdateandtime

timegetthesystemtime

foisobtenirletempsd'exécutionduprocessus

unname obtenir le nom du système UNIX actuel, la version et les informations sur l'hôte

vraccrocherraccrocheleterminalactuel

nfsservctlcontrôleledémonNFS

vm86entre en mode simulation8086

create_modulecréeunélémentmodulechargeable

delete_moduledeletesaloadablemoduleitem

init_moduleinitializemodule

query_modulequerymoduleinformation

*get_kernel_symsrécupèrelessymbolesdecorequiontétéremplacésparquery_module

Gestion de la mémoire

brkChangedatasegmentspace

sbrkseebrk

mlockmemorypagelock

munlockmemorypageunlock

mlockallappelleleprocessuspourajoutertouteslespagesmémoireVerrouiller

Déverrouillertouteslespagesmémoireduprocessusd'appelendéverrouillertous

mmapmappingpage de mémoire virtuelle

munmapremovmemorypagemapping

mremappremapvirtualmemorypageMemoryaddress

msync réécrit les données de la mémoire mappée sur le disque

mprotectsetsmemoryimageprotection

getpagesizegetspagesize

syncWritememorybufferdatabacktoharddisk

cacheflushÉcritlecontenudutamponspécifiésurledisque

Réseau

getdomainnameGetdomainname

setdomainnamesetdomainname

gethostidgethostidentificationnumber

sethostidsethostidentificationnumber

obtenir le nom d'hôte obtenir ce nom d'hôte

sethostnamesethostName

Prise de courant

socketcallsocketsystemcall

priseétablirprise

bindbindsockettoport

se connecterconnecter à l'hôte distant

accepterrépondreàlademandedeconnexionsocket

envoyerenvoyerinformationsviasocket

sendtosendUDPinformation

envoyermsgvoirenvoyer

recevoir des informations via le socket

recvfromreceiveUDPinformation

recvmsgseerecv

écouterécoutesocketport

selecttopollmultiplesimultaneousI/Os

shutdownpourfermerlaconnexionsurlaprise

obtientlenomdusocketpourobtenirlenomdusocketlocal

getpeernamepourobtenirlenomdusocketdupartenairedecommunication

getockopttogetportsettings

définit les paramètres de port pour définir les paramètres de port

envoyerfichierpourtransférerdesdonnéesentrefichiersouports

pairedepriseàcréerpourlaprisesansnomconnectée

Gestion des utilisateurs

getuidtoobtainuseridentificationnumber

setuidtosetuseridentificationnumber

getgidtoobtaingroupidentificationnumber

setgidsetgroupidentificationnumber

getegidgeteffectivegroupidentificationnumber

setegidseteffectivegroupidentificationnumber

geteuidgeteffectiveuseridentificationnumber

seteuidsdéfinitlenumérod'identificationutilisateurefficace

setregidsetlenumérod'identificationdegrouperéeleteffectifrespectivement

setreuiddéfinitrespectivementlenumérod'identificationutilisateurréeleteffectif

s'engagerpourobtenirrespectivementlesnumérosd'identificationdegrouperéels,efficacesetsauvegardés

définissezungidpourdéfinirrespectivementlesnumérosd'identificationdegrouperéels,efficacesetenregistrés

obtenez un resuid pour obtenir respectivement les numéros d'identification de groupe réels, les numéros d'identification d'utilisateur valides et enregistrés

setresuiddéfinitrespectivementlesnumérosd'identificationutilisateurréels,validesetenregistrés

setfsgiddéfinitlenumérod'identificationdegroupeutilisélorsdelavérificationdusystèmedefichiers

setfsuiddéfinitlenumérod'identificationutilisateurutilisélorsdelavérificationdusystèmedefichiers

getgroupsobtientlalistedesindicateursdegroupesupplémentaires

setgroupsdéfinitlalistedesindicateursdegroupesupplémentaires

Communication interprocessus

ipcInter-processuscommunicationtotalcontrolcall

sigactiondéfinitlaméthodedetraitementpourlesignalspécifié

sigprocmaskexécutelesignaldansl'ensembledesignauxselonlesparamètresBlocage/déblocageetautresopérations

sigpendingsetupaqueuepourlesignalbloquéspécifié

sigsuspend suspend le processus pour attendre un signal spécifique

signalvoirsignal

killenvoieunsignalàungroupedeprocessusprocesseur

*sigblockajouteunsignalaumasquesignalbloqué,quiaétéremplacéparsigprocmask

*siggetmaskgobtientlemasquedesignalbloquéexistant,aétéremplacéparsigprocmask

*sigsetmaskremplacelemasquedesignalbloquantexistantparlemasquedesignaldonné,aétéremplacéparsigprocmask

*sigmaskconvertitlesignaldonnéenmasque,aétéremplacéparsigprocmask

*sigpausealamêmefonctionquesigsuspendetaétéremplacéparsigsuspend

sigveciestunefonctiondetraitementdusignalconçuepourlacompatibilitéavecBSD,quiestsimilaireàsigaction

ssetmaskANSICsignalprocessingfunction,similartosigaction

message

msgctlmessagecontroloperation

msggetgetmessagequeue

msgsndenvoimessage

msgrcvgetmessage

tuyau

tuyaucréer un tuyau

sémaphore

semctlsémaphorecontrôle

semgetgetasetofsemaphores

opération sémopsémaphore

la memoire partagée

shmctlcontrolsharingMémoire

shmgetgetsharedmemory

shmatconnectmémoirepartagée

shmdtremovessharedmemory

Cet article provient du réseau, ne représente pas la position de cette station. Veuillez indiquer l'origine de la réimpression
HAUT