Определение функции сокета? - PullRequest
0 голосов
/ 28 декабря 2011

При чтении исходного кода C я вижу функцию socket, используемую для открытия соединения.Когда я ищу определение socket в исходном коде ядра Linux (версия 3 и выше), используя grep, я могу найти больше вызовов socket, но не определение.

Где socket определено?Это определено в исходном коде карты Ethernet?

Ответы [ 2 ]

2 голосов
/ 30 декабря 2011

Функция socket() - это не функция ядра, а libc.

Если вы хотите изучить socket() внутреннее устройство, получите код glibc (или любую реализациюстандартная библиотека C), а не код ядра.

Если вы планируете пойти еще глубже и изучить, как ядро ​​реализует механизм сокетов, найдите системный вызов sys_socketcall().

0 голосов
/ 29 ноября 2018

Я понимаю, что этот поток - древний, но мне действительно пришлось посмотреть его, потому что я работаю над стеком безопасности, который работает со скоростью 10 Гбит / с, и мне нужно было знать, как это реализовано. Я смог найти источник здесь: https://github.com/torvalds/linux/blob/master/net/socket.c

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...