Изучая программирование столкнулся с таким вопросом: "Как код, который я пишу обращается к системе, её ресурсам, подключается в интернет и тд?" Я понимаю, что в каждом языке программирования есть свои библиотеки функции и тд, которые обращаются к системе(незаметно от нас). Ведь именно в этом весь смысл абстракции. Но я хочу понять такие базовые вещи. Как программы вообще могут друг другу что-то сообщать? Они ведь просто загружены в адресное пространство оперативки. Пожалуйста, разложите для меня всё по полочкам.
На уровне ассемблера вы вызываете команду по определенному соглашению, в регистры или память записываете какое то значение, по тому же соглашению ждете какого то результата.
Все что выше просто обертка.
Наверное стоит начать отсюда https://en.wikipedia.org/wiki/X86_calling_conventions