Sistēmas zvani

Kas ir sistēmas izsaukums Linux un kā tas darbojas ar piemēriem

Kas ir sistēmas izsaukums Linux un kā tas darbojas ar piemēriem

Sistēmas izsaukums ir funkcija, kas ļauj procesam sazināties ar Linux kodolu. Tas ir tikai programmatisks veids, kā datorprogramma pasūta objektu no operētājsistēmas kodola. Sistēmas zvani atklāj operētājsistēmas resursus lietotāju programmām, izmantojot API (lietojumprogrammu saskarni). Sistēmas zvani var piekļūt tikai kodola ietvaram. Sistēmas zvani ir nepieciešami visiem pakalpojumiem, kuriem nepieciešami resursi.

Linux kodols ir patentēta programmatūra, kas ierīci ielādē un darbojas vismazāk potenciālajā stadijā. Tās uzdevums ir organizēt visu, kas notiek mašīnā, sākot no tastatūras, diska diska un tīkla notikumiem, līdz laika sadalījuma nodrošināšanai dažādu programmu vienlaicīgai izpildei. Programmatūras un aparatūras atdalīšana rada drošu burbuli, kas uzlabo aizsardzību un uzticamību. Nepamatotas lietojumprogrammas nespēj sasniegt citas programmas krātuvi, un, ja viena neizdodas, kodols aptur procesu, lai tas nesabojātu visu sistēmu.

Plāns vafeļu iesaiņotājs:

Atsevišķās programmās Linux sistēmas izsaukumi nav tieši nodoti kodolam. Gandrīz visas programmas izmanto pamata C bibliotēku un piedāvā vieglu, bet būtisku iesaiņojumu pār Linux sistēmas zvaniem. Pēc tam repozitorijs nodrošina pievienoto Linux mašīnas izsaukumu pēc tam, kad ir nodrošināts, ka objekta parametri tiek pārveidoti pareizajos procesoru reģistros. Ikreiz, kad iesaiņotājs saņem datus no sistēmas izsaukuma, tas tos analizē un skaidri iegulda programmā. Jebkura mašīnā interaktīva darbība programmā tiek galu galā pārveidota par sistēmas izsaukumu. Tātad, apskatīsim dažus no tiem. Ir garš saraksts ar Linux sistēmas zvaniem, kurus mēs varam izmantot mūsu Linux sistēmā. Šeit ir saraksts ar dažiem izplatītākajiem un visbiežāk izmantotajiem Linux sistēmas zvaniem.

Apspriedīsim dažus Linux sistēmas zvanus, izmantojot mūsu rakstā esošo C valodu, lai ar to praktiski rīkotos.

Atvērt sistēmas zvanu:

Mēs varam izmantot “Open” sistēmas izsaukumu mūsu Linux izplatīšanā, lai ātri atvērtu dokumentu, kuru mēs norādīsim savā C valodas kodā. Vispirms palaidiet komandu terminālu. Varat izmantot saīsni “Ctrl + Alt + T”. Pieņemsim, ka jums ir teksta faila “tests.txt ”mājas direktorijā, un tajā ir kāds saturs. Tātad sākumā ir jāizveido jauns C tipa faila nosaukums “new.c ”terminālā, izmantojot nano redaktoru. Tāpēc izmēģiniet vienkāršo zemāk norādīto nano instrukciju.

$ nano jauns.c

Tagad ir palaists Nano redaktors. Tajā ierakstiet zemāk parādīto kodu. Mums kodā ir divi failu deskriptori. Abus failus var atvērt, izmantojot atvērtās sistēmas zvanu. Pirmajā aprakstā ir lasīšanas zvans, bet otrajā - rakstīšanas funkcija. Pirmais atvērtais zvans atver teksta faila “tests.txt ”un saglabājot tā saturu faila aprakstā“ fd ”. Otrajā atvērtās sistēmas izsaukumā tiek izveidots fails ar nosaukumu “target”. Dokuments “target” ir atmaksāts faila aprakstam “fd1”. Rakstīšanas instrukcija tiek izmantota, lai transkribētu datu baitus buferī. Pieskarieties “Ctrl + S”, lai saglabātu kodu, un nospiediet īsinājumtaustiņu “Ctrl + X”, lai izietu no faila.

Palaidiet gcc compile instrukciju, lai apkopotu šo C kodu.

$ gcc jauns.c

Izpildīsim kodu, izmantojot vienkāršo “a.out ”vaicājums čaulā ir šāds:

$ ./ a.ārā

Izejas dati ir pārsūtīti uz failu “target”. Pārbaudīsim failu “target”, izmantojot vaicājumu “cat”. Izvades ekrānā tiek parādīti 20 rakstzīmju dati “mērķa” failā.

$ kaķu mērķis

Exec sistēmas izsaukums:

Exec sistēmas zvans tiek atcelts, lai palaistu failu, kas pašlaik tiek apstrādāts. Bijušais izpildāmais fails tiek aizstāts, un pašreizējais fails tiek darbināts ikreiz, kad tiek izsaukts exec. Izmantojot exec sistēmas izsaukumu, mēs varam pieņemt, ka, šādi rīkojoties, cilnē esošais vecais dokuments vai lietojumprogramma tiks pārrakstīta ar jaunu. Lai ignorētu visa procesa materiālu, tiek izmantota jauna programmatūra. Dokuments, kura nosaukums ir norādīts paziņojumā ikreiz, kad tiek izsaukta exec (), tiek aizstāts ar lietotāja informācijas sadaļu, kas izpilda exec () sistēmas izsaukumu (). Tātad atveriet komandu termināli un, izmantojot nano redaktoru, izveidojiet jaunu C tipa failu šādi:

$ nano exp.c

Redaktors tagad ir atvērts. Tajā ierakstiet visu zemāk esošo C valodas kodu. Tajā ir trīs galvenās bibliotēkas. Pēc tam galvenā funkcija ir saīsināta. Drukātajā paziņojumā ir parādīti virknes dati un faila “Exp.c ”. Šim nolūkam ir izmantota funkcija getpid (). Tad mums ir rakstzīmju tipa masīvs ar dažām vērtībām. Exec sistēmas izsaukums tika izmantots, lai par argumentu uzskatītu faila nosaukumu un vienas rindas virs masīva. Tagad fails “labdien.c ”tiks apstrādāts. Pēc tam vēl viens izdrukas paziņojums nāk tik tālu, bet tas nekad netiks izpildīts. Nospiediet “Ctrl + S”, lai saglabātu šo failu. Nospiediet “Ctrl + X”, lai izietu.

Tagad ir pienācis laiks izveidot vēl vienu c failu “sveiki.c ”, izmantojot nano redaktoru. Lai to izdarītu, izmantojiet zemāk esošo čaulas vaicājumu.

$ nano sveiki.c

Uzrakstiet tajā zemāk esošo kodu. Šajā kodā galvenajā funkcijā ir divi drukas paziņojumi. Pirmais drukā tikai tajā norādīto virkni, bet otrais - virkni, vienlaikus ielādējot pašlaik izmantotā faila procesa ID, kas ir “sveiki.c ”.

Apkoposim abus failus viens pēc otra, izmantojot gcc.

$ gcc -o exp exp.c

$ gcc -o sveiki sveiki.c

Kad mēs izpildām exp.c failu, tas izdos pirmo izdruku no exp.c failu un abas izdruku līnijas no sveiciena.c fails.

$ ./ exp

Secinājums:

Mēs esam izstrādājuši visu Linux sistēmas izsaukumu koncepciju un to, kā tos var izmantot jūsu Linux sistēmā. Mēs izmantojām Ubuntu 20.04, īstenojot šo koncepciju.

Izmantojot X-Mouse Button Control, atšķirīgi mainiet peles pogas atšķirīgai programmatūrai
Varbūt jums ir nepieciešams rīks, kas varētu mainīt peles vadību ar katru lietoto lietojumprogrammu. Ja tas tā ir, varat izmēģināt lietojumprogrammu a...
Microsoft Sculpt Touch bezvadu peles apskats
Es nesen lasīju par Microsoft Sculpt Touch bezvadu pele un nolēma to nopirkt. Pēc kāda laika izmantošanas es nolēmu dalīties savā pieredzē ar to. Šo b...
AppyMouse ekrāna skārienpaliktnis un peles rādītājs Windows planšetdatoriem
Planšetdatoru lietotājiem bieži pietrūkst peles rādītāja, it īpaši, ja viņi parasti lieto klēpjdatorus. Skārienekrāna viedtālruņiem un planšetdatoriem...