Süsteemikõned

Mis on Linuxi süsteemikõne ja kuidas see koos näidetega töötab

Mis on Linuxi süsteemikõne ja kuidas see koos näidetega töötab

Süsteemikõne on funktsioon, mis võimaldab protsessil suhelda Linuxi kerneliga. See on lihtsalt programmiline viis, kuidas arvutiprogramm tellib operatsioonisüsteemi tuumalt rajatise. Süsteemikõned paljastavad operatsioonisüsteemi ressursid kasutajaprogrammidele API kaudu (Application Programming Interface). Süsteemikõned pääsevad juurde ainult kerneli raamistikule. Kõigi ressursse vajavate teenuste jaoks on vaja süsteemikõnesid.

Linuxi kernel on patenteeritud tarkvara, mis laadib ja töötab seadet kõige vähem potentsiaalses etapis. Selle ülesanne on korraldada kõik, mis masinas toimub, alates klaviatuurist, kettaseadmest ja võrgusündmustest kuni ajaviilude pakkumiseni erinevate programmide samaaegseks käivitamiseks. Tarkvara ja riistvara eraldamine loob turvalise mulli, mis parandab kaitset ja töökindlust. Priviligeerimata rakendused ei pääse teise programmi salvestusruumi ja kui üks neist ebaõnnestub, peatab tuum protsessi, nii et see ei kahjusta kogu süsteemi.

Vahvli õhuke ümbris:

Teatud programmides ei edastata Linuxi süsteemi kõnesid otse kernelile. Peaaegu kõik programmid kasutavad põhilist C-teeki ja pakuvad kerget, kuid hädavajalikku ümbrist Linuxi süsteemi kõnedele. Seejärel pakub hoidla kaasnevat Linuxi masinakõnet pärast seda, kui on veendunud, et funktsiooni parameetrid on tõlgitud õigetesse protsessorite registritesse. Alati, kui ümbris saab süsteemikõnelt andmeid, analüüsib ta neid ja panustab programmi selgelt. Kõik masinas interaktiivsed toimingud programmis muudetakse lõpuks süsteemikõneks. Nii et vaatame mõnda neist. Linuxi süsteemikõnede kohta on pikk nimekiri, mida saame oma Linuxi süsteemis kasutada. Siin on loetelu mõnest levinumast ja enamasti kasutatavast Linuxi süsteemikõnest.

Arutleme mõnede Linuxi süsteemikõnede üle, kasutades meie artiklis C-keelt, et sellega kursis olla.

Avage süsteemikõne:

Dokumendi kiireks avamiseks saame kasutada Linuxi distributsioonis süsteemi "Open" kõnet, mille täpsustame oma C-keele koodis. Esiteks käivitage käsuterminal. Võite kasutada otseteed "Ctrl + Alt + T". Oletame, et teil on tekstifaili test.txt ”kodukataloogis ja see sisaldab selles veidi sisu. Niisiis peate alguses looma uue C-tüüpi failinime “new.c ”terminalis nano-redaktori kaudu. Seetõttu proovige allpool olevat lihtsat nano-juhist.

$ nano uus.c

Nüüd on Nano toimetaja käivitatud. Sisestage sellesse allpool näidatud kood. Meil on koodis kaks failikirjeldajat. Mõlemat faili saab avada avatud süsteemikõne abil. Esimene kirjeldaja sisaldab loetud kõnet ja teine ​​kirjutamisfunktsiooni. Esimene avatud kõne avab tekstifaili “test.txt ”ja selle sisu salvestamine failikirjeldusse“ fd ”. Teine avatud süsteemikõne loob faili nimega “target”. Dokumendi „sihtmärk“ eest on hüvitatud failikirjeldus „fd1“. Kirjutusjuhist kasutatakse puhvris olevate andmete baitide transkribeerimiseks. Puudutage koodi salvestamiseks klahvi "Ctrl + S" ja failist väljumiseks vajutage otseteeklahvi "Ctrl + X".

Selle C-koodi kompileerimiseks käivitage käsk gcc compile.

$ gcc uus.c

Käivitame koodi lihtsa “a.välja ”päring kestas järgmiselt:

$ ./ a.välja

Väljundandmed on edastatud faili „target”. Kontrollime faili „target”, kasutades päringut „cat”. Väljundiekraanil kuvatakse sihtmärkide failis olevad 20 tähemärgi andmed.

$ kassi sihtmärk

Execi süsteemi kõne:

Exec-süsteemi kõne on praegu töödeldava faili käivitamiseks katkestatud. Endine käivitatav fail asendatakse ja praegust faili kasutatakse alati, kui käivitatakse exec. Exec-süsteemi kõnet kasutades võime eeldada, et nii tehes kirjutatakse tsüklis olev vana dokument või rakendus uuega üle. Uut tarkvara kasutatakse kogu protsessi materjali tühistamiseks. Dokumendi nimetus, mis on avalduses antud alati, kui käivitatakse exec (), asendatakse kasutajainfo jaotisega, mis käivitab exec () süsteemikõne (). Nii avage käsuterminal ja looge nano-redaktori abil uus C-tüüpi fail järgmiselt:

$ nano exp.c

Toimetaja on nüüd avatud. Kirjutage selles välja kogu C-kood allpool. Selles on kolm peamist raamatukogu. Pärast seda on põhifunktsioon instantsitud. Prindilauses on näidatud stringi andmed ja faili protsessi ID “exp.c ”. Selleks on kasutatud funktsiooni getpid (). Siis on meil märgitüübi massiiv, milles on mõned väärtused. Exec-süsteemi kõnet on kasutatud failinime ja massiivi kohal oleva ühe rea lisamiseks argumendiks. Nüüd on fail „tere.c ”töödeldakse. Pärast seda tuleb veel üks trükiväljaanne, kuid seda ei täideta kunagi. Selle faili salvestamiseks vajutage klahvikombinatsiooni Ctrl + S. Väljumiseks vajutage klahvikombinatsiooni „Ctrl + X”.

Nüüd on aeg luua veel üks c-fail “tere.c ”nano-redaktori abil. Selleks kasutage kestas allolevat päringut.

$ nano tere.c

Kirjutage sellesse allolev kood. See kood sisaldab põhifunktsioonis kahte väljatrükilauset. Esimene neist printib ainult selles antud stringi ja teine ​​trükib stringi, samal ajal tõmmates parajasti kasutatava faili protsessi ID, mis on „tere.c ”.

Koostame mõlemad failid üksteise järel gcc abil.

$ gcc -o exp exp.c

$ gcc -o tere tere.c

Kui täidame eksp.c faili, väljastab see esimese printimisavalduse exp-ist.c-fail ja mõlemad tere prindiread.c fail.

$ ./ exp

Järeldus:

Oleme välja töötanud kogu Linuxi süsteemikõnede kontseptsiooni ja selle, kuidas neid saab teie Linuxi süsteemis kasutada. Oleme kasutanud Ubuntu 20.04 selle kontseptsiooni rakendamisel.

OpenTTD vs Simutrans
Oma transpordisimulatsiooni loomine võib olla lõbus, lõõgastav ja äärmiselt köitev. Sellepärast peate endale meelepärase leidmiseks kindlasti proovima...
OpenTTD õpetus
OpenTTD on seal üks populaarsemaid ärisimulatsioonimänge. Selles mängus peate looma suurepärase transpordiettevõtte. Alustate siiski alguses umbes 190...
SuperTuxKart Linuxile
SuperTuxKart on suurepärane pealkiri, mis on loodud selleks, et tuua teie Linuxi süsteemis tasuta Mario Karti kogemus. See on päris keeruline ja lõbus...