Ключевое отличие - системный вызов против вызова библиотеки
Системный вызов и вызов библиотеки связаны с операционной системой компьютера. Компьютер может работать в двух режимах; а именно пользовательский режим и режим ядра. Ключевое различие между системным вызовом и вызовом библиотеки заключается в том, что системный вызов - это функция, предоставляемая ядром для входа в режим ядра для доступа к аппаратным ресурсам, тогда как вызов библиотеки - это функция, предоставляемая библиотеками программирования. Например, open () - это системный вызов, а fopen () - это вызов библиотеки. Когда fopen () в программе C, использует библиотеку заголовков stdio.h. Затем системный вызов open () используется из ядра для выполнения задачи открытия файла.
СОДЕРЖАНИЕ
1. Обзор и основные различия
2. Что такое системный вызов
3. Что такое вызов библиотеки
4. Сходства между системным вызовом и вызовом библиотеки
5. Параллельное сравнение - системный вызов и вызов библиотеки в табличной форме
6. Резюме
Что такое системный вызов?
Компьютер работает в двух режимах. Это пользовательский режим и режим ядра. Некоторые процессы выполняются в компьютерной системе. Процесс - это выполняемая программа. Когда прикладные программы запущены, компьютер находится в пользовательском режиме. Если требуется аппаратный ресурс, процесс отправляет запрос ядру, и компьютер переходит в режим ядра. Эти запросы отправляются с помощью системных вызовов. Компьютер часто переключается между этими двумя режимами. Когда задача завершена, компьютер возвращается в пользовательский режим из режима ядра. Этот переход в режим известен как «переключение контекста». Системные вызовы - это интерфейс между операционной системой и пользовательскими программами.
Рисунок 01: Системные вызовы
Существуют различные типы системных вызовов. Создание, завершение процесса, выполнение процесса, выделение и освобождение памяти могут быть выполнены с помощью «системных вызовов управления процессом». «Вызовы системы управления файлами» могут использоваться для создания, удаления, чтения, записи, открытия и закрытия файлов. Для завершения процесса требуются ресурсы. Запросы и освобождение устройств выполняются через «Системные вызовы управления устройствами». «Системные вызовы управления информацией» могут использоваться для получения системных данных, процессов и атрибутов устройств. Процессы взаимодействуют друг с другом. Эта связь осуществляется с помощью «системных вызовов связи». Отправка информации о статусе, создание и удаление коммуникационных соединений, а также отправка и получение сообщений могут выполняться с помощью системных вызовов связи.
Что такое вызов библиотеки?
Вызов библиотеки - это функция, предоставляемая библиотеками программирования. Перед вызовом библиотеки ее необходимо импортировать. Вызов библиотеки может зависеть от системного вызова.
В языке C эти функции можно использовать в программе, включая файлы заголовков. Заголовочные файлы включаются с помощью директивы предварительной обработки #include. Препроцессор сканирует указанный файл, прежде чем продолжить работу с остальной частью исходного файла. Вот некоторые общие библиотечные функции: библиотека «math.h» включает функции, связанные с математическими операциями. Библиотека «stdio.h» предоставляет функции для выполнения ввода и вывода. «Fopen ()» открывает файл с указанным именем. «Fclose ()» закрывает файл. «Printf () используется для отправки форматированного вывода на стандартный вывод. «Fprintf ()» используется для отправки форматированного вывода в поток. «Scanf ()» используется для чтения форматированного ввода из стандартного ввода. «Stdlib.h» предоставляет функции для управления памятью, а «time.h» предоставляет функции для управления временем и датой.
В чем сходство между системным вызовом и вызовом библиотеки?
Оба связаны с операционной системой
В чем разница между системным вызовом и вызовом библиотеки?
Различать статью в середине перед таблицей
Системный вызов против библиотечного вызова |
|
Системный вызов - это функция, предоставляемая ядром для входа в режим ядра для доступа к аппаратным ресурсам. | Вызов библиотеки - это функция, предоставляемая библиотекой программирования. |
Способ исполнения | |
Системный вызов выполняется в режиме ядра. | Вызов библиотеки выполняется в пользовательском режиме. |
Переключение режима | |
Переключение системного вызова из пользовательского режима в режим ядра. | При вызове библиотеки нет переключения из пользовательского режима в режим ядра. |
Портативность | |
Системный вызов не переносится. | Вызов библиотеки переносится. |
Резюме - системный вызов против библиотечного вызова
Системный вызов реализован в ядре, а вызов библиотеки реализован в пользовательском пространстве. Разница между системным вызовом и вызовом библиотеки заключается в том, что системный вызов - это функция, предоставляемая ядром для входа в режим ядра для доступа к аппаратным ресурсам, а вызов библиотеки - это функция, предоставляемая библиотеками программирования. Вызовы библиотеки могут зависеть от системных вызовов для выполнения задачи. open (), fork (), cd () - некоторые примеры системных вызовов. fopen (), fprintf () - примеры библиотечных вызовов.
Загрузите PDF-версию System Call vs Library Call
Вы можете загрузить PDF-версию этой статьи и использовать ее в автономных целях в соответствии с примечанием к цитированию. Пожалуйста, скачайте PDF-версию здесь. Разница между системным вызовом и вызовом библиотеки.