Системные вызовы и библиотечные функции
Системные вызовы - это запросы программы к ядру операционной системы на выполнение некоторых действий. Библиотечные функции - это заранее запрограммированные модули, которые используются для поддержки некоторых возможностей языка программирования.
Внешне обращения к системным вызовам и библиотечным функциям ничем не отличаются и выглядят как вызовы обычных функций языка. Однако некоторые отличия все же имеются:
- Во время редактирования связей команды, реализующие библиотечные функции, копируются в объектный файл Вашей программы, а коды, реализующие системные вызовы, находятся в ядре ОС.
- Библиотечные функции выполняются точно так же, как и Ваши собственные функции. А при выполнении системных вызовов происходит переключение из адресного пространства вызывающего процесса к пространству ядра.
Это означает, что несмотря на то, что библиотечные функции увеличивают размер выполняемого файла, накладные расходы на переключение при их выполнении меньше, чем при выполнении системных вызовов.