Принаймні, в Linux механізм системного виклику працює в більшості архітектур, розміщуючи деякі спеціально відформатовані дані (як правило, якусь структуру c) в будь-яких регістрах або заздалегідь заданими адресами пам'яті.
Проблема, однак, полягає в тому, що фактично змушує процесор робити перемикання в простір ядра, щоб він міг запускати привілейований код ядра для обслуговування виклику. Це робиться шляхом примушування якоїсь помилки (помилка - ділення на 0, невизначений перелив або segfault тощо), це змушує ядро взяти на себе виконання для усунення несправності.
Зазвичай ядро обробляє помилки, або вбиваючи викликаючий процес, або запускаючи наданий користувачем обробник. Однак у випадку syscall він замість цього перевірить попередньо визначені регістри та місця пам'яті, і якщо вони містять запит syscall, він запустить, використовуючи дані, що надаються користувальницьким процесом у структурі пам'яті. Зазвичай це доводиться робити за допомогою спеціально виготовленої вручну складання і для полегшення використання систематичного виклику для користувача, для якого бібліотека С системи повинна містити функцію. Інтерфейс нижчого рівня див. На веб-сторінці http://man7.org/linux/man-pages/man2/syscall.2.html для отримання інформації про те, як працюють системні дзвінки та як можна зателефонувати тоді без обгортки C.
Це дається надмірне спрощення, це неправда у всіх архітектурах (mips має спеціальну інструкцію syscall) і не обов'язково працювати однаково на всіх ОС. Але якщо у вас є коментарі чи запитання, будь ласка, запитайте.
Додано: Зауважте, щодо Вашого коментаря щодо речей у / dev / це насправді інтерфейс більш високого рівня до ядра, а не нижчий. Ці пристрої фактично використовують (близько) 4-х системних дзвінків під ними. Запис до них - це те саме, що систематичне виклик запису, читання системного виклику читання, відкриття / закриття їх рівносильним до відкритих і закритих системних викликів. Запуск йоктл спричиняє спеціальний іоктовий системний виклик, який сам по собі є інтерфейсом для доступу до однієї з багатьох йоктль системи дзвінки (спеціальні, як правило, конкретні дзвінки для пристрою із занадто вузьким використанням, щоб написати цілий системний виклик для них).