Все операционные системы имеют низкоуровневый функционал для работы с файлами и сетью. Причём для разных платформ этот функционал разный. Языки программирования высокого уровня, что называется, инкапсулируют (скрывают) его, позволяя пользователю открывать файл не последовательным вызовом десятка функций, но через передачу имени файла в конструктор объекта. С сетью функционал хотя синтаксически единый (назвается он «cокеты»), но и там для доступа к ресурсам требуется вызов десятков функций, а уже инкапсуляция работает на уровне самой операционной системы, особенно если мы не хотим (а мы действительно не хотим) программировать ещё поддержку сетевого протокола.