• Aucun résultat trouvé

gaai de i  ee  da hie  e x86 64   i x ai k Cégie

N/A
N/A
Protected

Academic year: 2022

Partager "gaai de i  ee  da hie  e x86 64   i x ai k Cégie"

Copied!
8
0
0

Texte intégral

(1)

d'arhiteture x86-64 sous Linux

Patrik Cégielski

KonstantinVerhinine

Mai 2019

(2)

Copyright

2019 PatrikCégielskiKonstantinVerhinine UniversitéParisEst-CréteilIUT

RouteforestièreHurtault

F-77300Fontainebleau

egielskiu-pe.fr

(3)

Notre but,danse livre,est d'initier leleteuràlaprogrammationdesmiroproesseurs64

bits d'Intelet AMD, d'arhiteture ditex86-64,implémentée surpresquetouslesmiroproes-

seursatuels,maisquidemeureenoresous-employée.

Ilyatroisfaçons d'utiliserlesinstrutions(nes)d'unmiroproesseur:

enprogrammantenlangagemahine, lemoyenleplussûrmaisleplusrustre;

enprogrammantenlangaged'assemblageet enlaissantàl'assembleurlesoindetraduire

leprogrammesoureenunprogrammeenlangagemahine;

eninsérantunepartieenlangaged'assemblagedansunprogrammeenlangageC(outout

autrelangageévolué).

PourquoiutiliserlesinstrutionsdumiroproesseuretnepasseontenterdulangageC,qui

resteependantlelangagederéférene?

pouraugmenterlaperformanedeertainsprogrammes,ommenousleverronsàpropos

du alul du produit salaire de deux veteurs de grande dimension, en partiulier en

éliminant ertaines redondanes par rapport au ode obtenu grâe à un ompilateur à

partird'unlangagedehautniveau;

pourapporterdenouvellesfontionnalités, enpartiulierenaédantàdesregistresnon

prisenompte parlesappelssystème existants,ommenous leverrons àproposde TSC

(TimeStampCounter),leompteurdetopsd'horloge;

pour omprendreertains problèmes de séurité, ommenous le verrons à propos dela

pile(stak overow).

Un inonvénientestque leprogrammen'estplusportabled'unmiroproesseuràunautre,

voired'unsystèmed'exploitationàunautre(sionutilise desappelssystème).

(4)
(5)

Introdution

1.1 Les miroproesseurs 64 bits

1.1.1 Dénition

L'histoiredesmiroproesseursestfortementliéeàIntel,entreprisenéeen1968and'exploiter

unetehnologievenantalorsd'apparaître:lesiruitsintégrés.Elledébuteommefondeur,'est-

à-direfabriantdeiruitsintégréspasnéessairementonçusparelle,delapremièreappliation

des iruitsintégrésà onnaîtreunsuès ertain : les mémoiresàsemi-onduteurs, appelées

àremplaer lesmémoires àtoresde ferriteemployées alors. Elleen devienttrès rapidementle

numéroun.Lemiroproesseurestinventé auseindelasoiétéen1971,dontelledemeurerale

numérounsuremarhédurantquaranteans.

Lepremiermiroproesseur,dénommé4004,estunmiroproesseurdit4bits,danslamesure

oùlesentrées-sortiesainsiquelesopérations(additionetmultipliation)s'eetuentsur4bitsen

uneseuleinstrution.Ilaétéonçuandêtreinorporédansunenouvellegammedealulatries

debureaux,pourlesquelles untelmiroproesseurestbien adapté:4bits permettentdemani-

pulerleshiresde`0'à`9'.Par ontre,untelmiroproesseurnepeutpasservirde÷urd'un

ordinateur,aussipetitsoit-il.Intelsortensuitelemiroproesseur8bits8008, bienttsuivides

8080et8085. Lesmiroproesseurs8bitspermettentl'émergenedesmiro-ordinateursàusage

domestique,maisIntelperdàemoment-làlapremièreplaedumarhéauprotdeonurrents.

Lasoiétés'attellealorsaumiroproesseur16bits8086, quivaonnaîtreunénormesuèsen

permettantledéploiementdesmiro-ordinateursàunetrèsgrandeéhelledanslesentreprises.

Sur sa lanée, Intel

hh

innove

ii

pour une question de prix de revient : elle rée le 8088, permettant desentrées-sortiessur 8bits maisdes aluls sur 16bits (le

hh

÷ur

ii

dunouveau miroproesseurestlemêmequele8086).IBMhoisitemiroproesseurpoursonPC,lemiro-

ordinateur adopté par les entreprises, destiné jusque-là surtout à un publi d'

hh

amateurs

ii

ou pour des tâhes spéialisées. Le nombre de bits n'est plus une aratéristique très préise

de lapuissane dumiroproeseur. Intelreprenantlapremière plae des fondeurs,onçoitdes

miroproesseurs32bits(i386,i486puispentium)qui luipermet dedétenirlapremièreplae

(6)

surlemarhédesmiro-ordinateursetréelemode protégé,destinéàfailiterlaoneptiondes

systèmesd'exploitation.

Iln'estplusalorsfailedesavoirequ'ilfautentendreparmiroproesseur

n

bits:lenombre de brohes des données,le nombre de brohes des adresses,la taille des registres,la taille des

opérandessurlaquelleesteetuéeuneopérationenpeudeylesmahine?

Dénition.-On parle de miroproesseur

n

bitslorsque sesregistres généraux ontune taille de

n

bits.

En 1982, Intel aordeàAMD (Advaned Miro Devies) une lienepourproduire lesmi-

roproesseurs8086et 8088,ande renforerlaposition de sonarhiteturesur lemarhé. À

lasuited'unebataillejuridique,AMDobtienten1995ledroitdeproduiredesmiroproesseurs

fondés sur l'arhiteture IA-32, onçue par Intel. AMD onçoit en 2003 l'arhiteture 64 bits

AMD64, totalement ompatible ave l'IA-32, e qui luipermet d'atteindre une part de près de

25% surlemarhédesmiroproesseursx86.Cettearhitetureest adoptéeparIntelquelques

annéesplustardsouslenomdeEM64T(ExtendedMemory 64bitsTehnology).

Dénition.-Onappellex86-64,aulieudesdénominationsAMD64ouEM64Tpropresauxfondeurs

onernés, l'extension du jeu d'instrutions x86 pour une arhiteture 64 bits. Cette extension

permet la gestion desentierssur64 bits, ave pourorollaire unadressage mémoire allantbien

au-delàde la limitedes4GiO dux86.À ela s'ajoute ledoublement (de8à16) du nombre de

registresgénéralistes.

1.1.2 Utilisation des miroproesseurs 64 bits

L'utilisation prinipale des miroproesseurs64 bits est l'adressage de la mémoire: 32 bits

nepeuventnormalementpasadresserplusde4Gio(

2 32

otets)demémoireentrale,tandisque

lesproesseurs64bitspeuventenadresser16Eio(

2 64

otets).C'estpourquoidèsqu'ilyaplus

de4Giode RAMsurunemahine,lamémoiresituée au-delàde eseuilne sera(diretement)

adressablequ'enmode64bits.

Uneautreappliationseraitd'eetuerlesopérationssur64bitsenpeudeylesmahinede

façonàaméliorerlaperformanedesaluls.Maiselan'estpasleasdel'arhiteturex8664.

Intel a essayéde le faire ave le miroproesseurItanium (arhiteture x64), mais elle-i n'a

jamaisonnu desuèsetaétéabandonnéenjanvier2019.

(7)

1.2 Aide matérielle au temps partagé

1.2.1 L'emploi des ordinateurs en temps partagé (1962)

Maurie Wilkes, le onepteur du premier ordinateur opérationnel, érit un petit livre

[Wil-68℄ dans lequel il fait le point sur l'emploi partagé des ordinateurs, qui a ommené à

êtremisenplae àpartirde1962et estalorsenorepeudéveloppé.

Ilrappelleque,surlespremiersordinateurs,l'utilisateurpassaitletempsqu'ilvoulaitàtester

sonprogramme mais qu'

hh

on ne futpas long àréaliser que 'était là une bien mauvaise façon d'employer une mahine rareet oûteuse.

ii

Onest donpasséautraitement par lots(bath proessing en anglais) :

hh

Les travaux sont hargés par lots sur ruban magnétique, souvent à l'aided'unpetit ordinateurauxiliaire. Chaquelotdetravauxestplaésurl'ordinateurprinipal;

lesrésultatssortentsurunautrerubanmagnétiqueetsontensuiteimprimés.[...℄Cesdéveloppe-

mentsont sansauun doute amélioréle rendement desordinateurs; ilsont euependant l'eet

regrettable d'éloigner l'utilisateur de l'ordinateur et de diminuer, en partiulier dans le as de

programmesendéveloppement,larapiditédutravaildemiseaupoint.

ii

Onestdonpasséensuite

autempspartagé(time-sharingenanglais):

hh

Ilestmaintenantpossibleauxutilisateursd'être

reliésparune paire deâbles àunordinateurpuissant qui peutêtre situéàproximitéouparfois

àdeskilomètresdedistane.Touslesutilisateurs,quelsqu'ilssoient,ontaèsinstantanémentà

l'ordinateuretpeuventobteniruneréponseàleursdemandessouslaréservequel'ordinateurdoit

partager sontempsentretouslesutilisateurs.Ledéveloppement de telssystèmesest,ependant,

enoreenenfane.

ii

1.2.2 Programmation des appliations et programmation système

Maurie Wilkes ontinue en distinguant e que nous appelons maintenant programma-

tion des appliations et programmation système:

hh

En dérivant un système d'emploi

partagé, une distintion doit être faite entre les programmes des utilisateurs et les programmes

qui assurent diverses fontions d'administration oude ommutation. Cesderniers sont plusou

moinsinteronnetéset désignésolletivementsouslenomde superviseur.[...℄Aulieu de pro-

gramme d'utilisateur, il estsouventpréférable d'employer leterme programme-objet;ei inlut

desprogrammesqui,bienquen'appartenantpasàunutilisateurdonné,sonttraitésparlesystème

exatementde la même manière queles programmes d'utilisateurs. L'une des plusimportantes

fontions du superviseur est déviter que les programmes-objets interfèrent entre eux. Dans e

but, le superviseurdoit avoir ertains privilèges qui sontrefusés auxprogrammes-objets. Parmi

eux-i, onpeut iterleontrle desdispositifs d'entréeet de sortie, l'asservissementdes inter-

ruptions, ainsiquel'établissementdeslimites demémoire danslesquelleslesprogrammes-objets

peuvent opérer. Beauoup d'ordinateurs fontionnent suivantdeux modes opératoires, unmode

ordinaire pour le déroulement du programme-objet, un mode privilégié réservé au superviseur;

quelques typesd'instrutions peuventêtreexéutés seulementen mode privilégié.

ii

Les onepts sontlà, même si le voabulaire ahangé : onparle desystème d'exploitation,

programme d'appliation et programme système aulieudesuperviseur, programme-objet et pro-

grammeassurantdiverses fontionsd'administration et deommutation. Un programme d'ap-

pliationest don,paronséquent,unprogrammeonçupourunsystèmed'exploitationdonné,

e dernierétant en plae. La programmation système onernela programmation du système

d'exploitation(yomprislespilotesdepériphériques).

(8)

1.2.3 Aide matérielleau temps partagé

Au momentoù MaurieWilkes érit,en 1968,l'emploi partagé desordinateursreposeen-

tièrement sur du logiiel. Le but de son livre est d'initer àrépartir ette fontionnalité entre

logiieletmatériel.

Mais ilvafalloirunertaintempsavantqu'ilnesoit entendu.

Intelintroduitlemodeprotégédanssesmiroproesseursàpartirdu80286pourmettreen

plaelapartiematériellerélaméeparMaurieWilkes.Nousaborderonsdonlaprogrammation

des appliations dans la première partie, réservant la programmation système à une seonde

partie.

Commele ditMaurieWilkes,lamiseen plaedel'emploi partagédes ordinateursrepose

àlafois sur unepartie matérielle (lemode protégé pourles miroproesseursIntel)maisaussi

sur une partie logiielle,une partie dusystème d'exploitation de nosjours. La programmation

desappliations nepeutdonpasfaireomplètementdusystème d'exploitationutilisé. Tous

nosexemplesonernerontLinux,pourunearhiteturex86-64.

1.3 Bibliographie

[Wil-68℄ Wilkes,MaurieVinent, Time-sharing omputer systems,MaDonald and

Co.,London,1968.Tr.fr.Emploipartagé desordinateurs,Dunod,1971,III+

124p.

Références

Documents relatifs

Nous avons vu, pour l'instant, omment le miroproesseur a aès aux registres et à la mé-..

(pour Integer DIVision), où le dividende de 16 bits (resp. 32 bits) est plaé dans l'aumulateur. AX (resp. AX et DX, e dernier ontenant le mot de poids fort) et le diviseur de 8

Langage mahine.- Uun sous-programme peut se trouver dans le même segment que le programme. qui l'appelle : la valeur du registre IP est alors hangée mais il est inutile de

de la routine de servie de l'interruption se trouve à l'adresse 4 × n pour le type n : les deux otets de IP se trouvent à l'adresse 4 × n et les deux otets de CS à l'adresse 4 × n +

Pour une valeur se trouvant à l'adresse (de mémoire vive) désignée par le ontenu d'uno. registre (de seize bits, puisque 'est la taille du déplaement), on indique le nom de

Cei doit être eetué à partir d'une page pour laquelle les adresses virtuelles sont. égales aux adresses physiques ( hh identity mapped ii

Savoir délarer un objet d'une lasse donnée2. Savoir utiliser les hamps et

Souvent, dénition mathématique valide lorsque algorithme réursif..