Sistemski klici

Kaj je sistemski klic v Linuxu in kako deluje s primeri

Kaj je sistemski klic v Linuxu in kako deluje s primeri

Sistemski klic je funkcija, ki omogoča procesu, da komunicira z jedrom Linuxa. To je le programski način, kako računalniški program lahko naroči objekt iz jedra operacijskega sistema. Sistemski klici izpostavijo vire operacijskega sistema uporabniškim programom prek API-ja (Application Programming Interface). Sistemski klici lahko dostopajo samo do ogrodja jedra. Sistemski klici so potrebni za vse storitve, ki potrebujejo sredstva.

Jedro Linuxa je lastniška programska oprema, ki se v napravi naloži in deluje v najmanjši možni fazi. Njegova naloga je organizirati vse, kar se dogaja na napravi, od tipkovnice, diskovnega pogona in omrežnih dogodkov do zagotavljanja časovnih rezin za sočasno izvajanje različnih programov. Ločitev programske in strojne opreme ustvarja varen mehurček, ki izboljša zaščito in zanesljivost. Neprivilegirane aplikacije ne morejo doseči prostora za shranjevanje drugih programov in če eden ne uspe, jedro ustavi postopek, tako da ne poškoduje celotnega sistema.

Tanek ovitek za rezine:

Sistemski klici sistema Linux v nekaterih programih niso izrecno upodobljeni jedru. Skoraj vsi programi uporabljajo osnovno knjižnico C in ponujajo lahek, a nujen ovitek nad sistemskimi klici Linuxa. Repozitorij nato zagotovi spremljevalni strojni klic Linuxa, potem ko zagotovi, da so parametri funkcije prevedeni v prave registre procesorja. Vsakič, ko ovitek prejme podatke iz sistemskega klica, jih analizira in jasno prispeva k programu. Vsaka interakcija stroja v programu se na koncu pretvori v sistemski klic. Torej, poglejmo si nekatere od njih. Obstaja dolg seznam sistemskih klicev Linux, ki jih lahko uporabimo v našem sistemu Linux. Tu je seznam nekaterih pogostih in najpogosteje uporabljenih sistemskih klicev Linux.

Pogovorimo se o nekaterih sistemskih klicih Linuxa v jeziku C v našem članku, da se z njim seznanimo.

Odprti sistemski klic:

Sistemski klic »Odpri« v naši distribuciji Linuxa lahko uporabimo za hitro odpiranje dokumenta, ki ga bomo določili v naši kodi jezika C. Najprej zaženite ukazni terminal. Uporabite lahko bližnjico “Ctrl + Alt + T”. Recimo, da imate besedilno datoteko »test.txt «v domačem imeniku in vsebuje nekaj vsebine. Torej, na začetku morate ustvariti novo ime datoteke tipa C »novo.c ”v terminalu prek urejevalnika nano. Zato preizkusite preprosta spodnja navodila za nano.

$ nano novo.c

Zdaj je bil predstavljen urejevalnik Nano. Vanj vnesite spodnjo prikazano kodo. V kodi imamo dva deskriptorja datotek. Dve datoteki je mogoče odpreti z odprtim sistemskim klicem. Prvi deskriptor vsebuje klic branja, drugi pa funkcijo zapisovanja. Prvi odprti klic je odpiranje besedilne datoteke “test.txt "in shranjevanje njegove vsebine v deskriptor datoteke" fd ". Drugi odprti sistemski klic ustvarja datoteko z imenom "target". "Cilj" dokumenta je bil povrnjen v deskriptor datoteke "fd1". Navodilo za zapis se uporablja za prepisovanje bajtov podatkov v medpomnilnik. Dotaknite se »Ctrl + S«, da shranite kodo, in pritisnite bližnjično tipko »Ctrl + X«, da zaprete datoteko.

Za prevajanje te kode C zaženite navodila za prevajanje gcc.

$ gcc novo.c

Izvedimo kodo s preprostim »a.poizvedba v lupini, kot sledi:

$ ./ a.ven

Izhodni podatki so bili poslani v datoteko “target”. Preverimo datoteko "target" z uporabo poizvedbe "cat". Izhodni zaslon prikazuje podatke o 20 znakih v "ciljni" datoteki.

$ mačka tarča

Exec sistemski klic:

Sistemski klic exec se zavrže, da zažene datoteko, ki je trenutno v obdelavi. Nadomešča se prejšnja izvršljiva datoteka, trenutna pa se upravlja, kadar koli je poklican exec. Z uporabo sistemskega klica exec lahko domnevamo, da bomo s tem stari dokument ali aplikacijo v zanki prepisali z novim. Nova programska oprema se uporablja za preglasitev celotnega gradiva postopka. Dokument, katerega naslov je podan v stavku, kadar koli je klic exec (), je nadomeščen z odsekom z informacijami o uporabniku, ki izvaja sistemski klic exec () (). Torej odprite ukazni terminal in z urejevalnikom nano ustvarite novo datoteko tipa C, kot sledi:

$ nano exp.c

Urejevalnik je bil zdaj odprt. Vanjo zapišite celotno spodnjo kodo jezika C. V njem so tri glavne knjižnice. Po tem je bila ustvarjena glavna funkcija. Izpis za tiskanje prikazuje niz podatkov in ID procesa datoteke „exp.c ". V ta namen je bila uporabljena funkcija getpid (). Potem imamo matriko znakovnih vrst z nekaj vrednostmi. Sistemski klic exec je bil uporabljen, da je kot argument vzel ime datoteke in eno vrstico nad matriko. Zdaj datoteka »zdravo.c ”bo obdelana. Po tem prihaja še ena izjava za tiskanje, ki pa je ne bo nikoli izvedla. Pritisnite “Ctrl + S”, da shranite to datoteko. Za izhod pritisnite »Ctrl + X«.

Zdaj je čas, da ustvarite še eno datoteko c, “zdravo.c ”z uporabo urejevalnika nano. Za to uporabite spodnjo poizvedbo v lupini.

$ nano zdravo.c

Vanjo zapišite spodnjo kodo. Ta koda vsebuje dve izjavi za tiskanje v glavni funkciji. Prva je samo tiskanje niza, ki je v njej, druga pa tiskanje niza med pridobivanjem ID-ja postopka trenutno uporabljene datoteke, ki je »zdravo.c ".

Zložimo obe datoteki eno za drugo z uporabo gcc.

$ gcc -o exp exp.c

$ gcc -o zdravo živjo.c

Ko izvedemo exp.c, bo izpisala prvi stavek za tiskanje iz exp.c datoteko in obe vrstici za tiskanje iz hello.c datoteko.

$ ./ exp

Zaključek:

Obdelali smo celoten koncept sistemskih klicev Linux in kako jih je mogoče uporabiti v vašem sistemu Linux. Uporabili smo Ubuntu 20.04 med izvajanjem tega koncepta.

Odprtokodna vrata komercialnih igralnih sistemov
Brezplačne, odprtokodne in medplatformacijske igre, ki jih lahko uporabite za igranje starih, pa tudi nekaterih dokaj nedavnih naslovov iger. V tem čl...
Najboljše igre ukazne vrstice za Linux
Ukazna vrstica ni le vaš največji zaveznik pri uporabi Linuxa - lahko je tudi vir zabave, saj jo lahko uporabljate za igranje številnih zabavnih iger,...
Najboljše aplikacije za preslikavo gamepadov za Linux
Če želite igre na Linuxu igrati z igralno ploščico namesto s tipičnim sistemom za vnos tipkovnice in miške, je za vas na voljo nekaj uporabnih aplikac...