Системни разговори

Какво е системно обаждане в Linux и как работи с примери

Какво е системно обаждане в Linux и как работи с примери

Системното повикване е функция, която позволява на процеса да комуникира с ядрото на Linux. Това е просто програмен начин за компютърна програма да поръча съоръжение от ядрото на операционната система. Системните повиквания излагат ресурсите на операционната система на потребителски програми чрез API (интерфейс за програмиране на приложения). Системните повиквания могат да имат достъп само до рамката на ядрото. Системните повиквания са необходими за всички услуги, които се нуждаят от ресурси.

Ядрото на Linux е собствен софтуер, който се зарежда и работи на устройството на най-малко потенциалния етап. Неговата работа е да организира всичко, което се случва на машината, от клавиатурата, дисковото устройство и мрежовите събития до осигуряването на срезове от време за едновременно изпълнение на различни програми. Разделянето на софтуера и хардуера създава сигурен балон, който подобрява защитата и надеждността. Непривилегированите приложения не могат да достигнат до хранилището на друга програма и ако една не успее, ядрото спира процеса, така че да не повреди цялата система.

Тънка обвивка за вафли:

Системните повиквания на Linux не се представят изрично към ядрото в определени програми. Почти всички програми използват основната библиотека C и предлагат лека, но съществена обвивка за системните повиквания на Linux. Тогава хранилището осигурява придружаващото машинно извикване на Linux, след като гарантира, че параметрите на функцията се преобразуват в правилните регистри на процесора. Винаги, когато обвивката получава данни от системното повикване, тя ги анализира и я внася ясно в програмата. Всяка операция на машинно взаимодействие в програма в крайна сметка се преобразува в системно повикване. Така че, нека да разгледаме някои от тях. Има дълъг списък от системни повиквания на Linux, които можем да използваме в нашата Linux система. Ето списъка с някои често срещани и най-често използвани системни обаждания на Linux.

Нека обсъдим някои от системните обаждания на Linux, използващи езика C в нашата статия, за да се запознаем с него.

Отворено системно обаждане:

Можем да използваме системното повикване „Open“ в нашата дистрибуция на Linux, за да отворим бързо документа, който ще посочим в нашия код на езика C. Стартирайте първо командния терминал. Можете да използвате пряк път „Ctrl + Alt + T“. Да предположим, че имате текстов файл „тест.txt ”в домашната директория и съдържа малко съдържание в нея. И така, в началото трябва да създадете ново име на файл от тип „нов.c ”в терминала чрез нано редактор. Затова изпробвайте простата инструкция по-долу нано.

$ nano ново.° С

Сега стартира редакторът Nano. Въведете показания по-долу код в него. В кода има два файлови дескриптора. И двата файла могат да бъдат отворени с помощта на отворено системно повикване. Първият дескриптор съдържа повикване за четене, а вторият съдържа функцията за запис. Първото отворено повикване е отваряне на текстовия файл „test.txt “и запазване на съдържанието му във файловия дескриптор„ fd “. Второто отворено системно повикване създава файл с име „target“. Документът „target“ е възстановен на дескриптор на файл „fd1“. Инструкцията за запис се използва за транскрибиране на байтовете данни в буфера. Докоснете „Ctrl + S“, за да запазите кода и натиснете клавишната комбинация „Ctrl + X“, за да излезете от файла.

Изпълнете инструкцията за компилиране на gcc, за да компилирате този C код.

$ gcc ново.° С

Нека изпълним кода, като използваме простото „a.заявка в черупката, както следва:

$ ./ а.навън

Изходните данни са предадени във файла „target“. Нека проверим файла „target“, като използваме заявката „cat“. Изходният екран показва данните от 20 знака във „целевия“ файл.

$ котка цел

Exec System Call:

Системното повикване на exec се изхвърля, за да стартира файл, който в момента се обработва. Бившият изпълним файл се замества и текущият файл се експлоатира при всяко извикване на exec. Като използваме системно повикване exec, можем да предположим, че това ще замени стария документ или приложение в цикъла със свеж. Нов софтуер се използва, за да замени целия материал на процеса. Документът, чието заглавие е дадено в извлечението при всяко извикване на exec (), се заменя с раздела за информация за потребителя, който изпълнява системното повикване exec (). Така че отворете командния терминал и с помощта на nano редактора създайте нов файл от тип C, както следва:

$ nano опит.° С

Редакторът е отворен сега. Изпишете целия код под езика C в него. В него са включени три основни библиотеки. След това основната функция е инстанцирана. Изявлението за печат показва данните за низа и идентификатора на процеса на файла „exp.° С". За тази цел е използвана функцията getpid (). Тогава имаме масив от тип символи с някои стойности в него. Системното повикване exec е използвано, за да вземе името на файла и едноредовия масив по-горе като аргумент. Сега файлът „здравей.в ”ще бъдат обработени. След това идва още едно изявление за печат, но никога няма да бъде изпълнено. Натиснете “Ctrl + S”, за да запазите този файл. Натиснете „Ctrl + X“, за да излезете.

Сега е време да създадете друг c файл, „здравей.c ”с помощта на nano редактора. Използвайте заявката по-долу в черупката, за да го направите.

$ nano здравей.° С

Напишете кода по-долу в него. Този код съдържа две инструкции за печат в основната функция. Първият отпечатва само низ, даден в него, а вторият отпечатва низ, докато извлича идентификатора на процеса на използвания в момента файл, който е „здравей.° С".

Нека да компилираме двата файла един след друг с помощта на gcc.

$ gcc -o exp exp.° С

$ gcc -o здравей здравей.° С

Когато изпълним exp.c файл, той ще изведе първия оператор за печат от exp.c файл и двете линии за печат от здравей.c файл.

$ ./ опит

Заключение:

Ние разработихме цялата концепция на системните разговори на Linux и как те могат да бъдат използвани във вашата Linux система. Използвали сме Ubuntu 20.04, докато прилага тази концепция.

Топ 5 продукти за ергономична компютърна мишка за Linux
Продължителната употреба на компютър причинява ли болка в китката или пръстите? Страдате ли от схванати стави и постоянно ли ви се налага да си ръкува...
Как да променяте настройките на мишката и тъчпада с помощта на Xinput в Linux
Повечето дистрибуции на Linux се доставят с библиотека “libinput” по подразбиране за обработка на входни събития в системата. Той може да обработва вх...
Пренастройте бутоните на мишката си по различен начин за различен софтуер с X-Mouse Button Control
Може би се нуждаете от инструмент, който може да промени контрола на мишката с всяко приложение, което използвате. Ако случаят е такъв, можете да изпр...