Программы пользовательского пространства, которые «взаимодействуют с Интернетом» во всех современных системах, делают это путем выполнения системных вызовов для базовой операционной системы, которая предоставляет API для стека TCP / IP.
Рассматриваемые системные вызовы (такие как socket
, listen
, accept
и т. Д.) Обычно документируются на уровне C, но в каждой конкретной реализации ОС они, конечно, преобразуются в машинный код. , Но то, идут ли значения в определенных регистрах или места в памяти, на которые указывают конкретные регистры и т. Д., Довольно незначительно и полностью зависит от системы.
Если вам интересно, как машинный код (возможно, также скомпилированный из C) в ядре и драйверах устройств «взаимодействует с Интернетом» (в ответ на системные вызовы), он делает это как путем создания, так и обслуживания в памяти. структуры данных для отслеживания состояния различных вещей и взаимодействия с нижележащим оборудованием (например, через прерывания, порты ввода-вывода, области устройств с отображенной памятью или все, что использует конкретная архитектура) - точно так же, как оно взаимодействует (скажем) с видео дисплей или дисковое устройство.