Jump to content

Legacy system call / Fast system calls


micaver

Recommended Posts

Доброе время суток.

Пытаюсь разобраться как работают системные вызовы.

Вижу что существует два способа системных вызовов Legacy system call / Fast system calls

Нашел документы 
https://blog.packagecloud.io/eng/201...y-system-calls и https://blog.packagecloud.io/eng/201...t-system-calls

Меня интересует как работает обработка системного вызова в обоих случаях - Legacy system call / Fast system calls.

 И в чём точно разница между ними?

Например как я понял, в Legacy system call, возьмем для примера команду "write", когда OS доходит до этой команды, происходит системный вызов. 

Кака я понял процесс такой:

1. Код бежал  в User space Пока не дошел до system call "write".


2. Затем этот процес получил системный код, например 10 и OS занесла его в register.

3. Через Trap to Kernel мы идем в System call handler в ячейку с номером 10. В этой ячейке записан номер памяти (например FF00) команды "write" которая должна обработаться ядром.

Таким образом мы общается с ядром. Когда мы переходим в адрес FF00 перед выполнением команды "write" OS проверяет есть ли у меня нужные полномочие для этой операции.

Это вроде процесс Legacy system call.

А вот в Fast system calls я не могу разобраться. Почему и засчет чего он быстрее Legacy system call?
Как работает этот процесс например для того же (как пример) system call "write"? 

Буду признателен за помощь в этом вопросе.

 

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...