В программировании есть такое понятие как модульность - большие системы делятся на модули, каждые из которых отвечают за свою часть работы - ядро linux, графическая подсистема, драйвера. Если взять ядро линукс, то там есть много модулей - драйвера на оборудование - видеокаты, звуковые карты и т.д. на самом нижнем уровне, подсистема для мултиплексирования ввода-вывода (select/poll/epoll) и т.д. Каждый разработчик занимается своей задачей, своим модулем в ядре Linux. Например, если ты пишешь на Node.js можно начать интерисоваться, что же внутри. И найти цепочку, которая ведет в ядро Linux (упрощенно): Node.js -> libuv -> epoll и далее разбираться, как этот системный вызов работает на уровне ядра и начать изучать исходный код ядра Linux для этого системного вызова.