необходимо понимать устройство операционной системы
Верно только отчасти. Говнокодеру-формошлепу не нужно понимать ничего - у него есть знания, отточенные до навыков, которые он применяет в работе. Ему их хватает, а на развитие он давно положил, потому что... (тут длинный список "почему" в который входит все что угодно от жены и ипотеки до мировой закулисы)
Программисту, который думает о саморазвитии, о том, чтобы расти, чтобы заниматься более крутыми проектами - знание того, как работает ОС - крайне желательно. Потому что существуют моменты, которые не понять без понимания того,
почему так происходит.
Например - в мане расписано, как применять fork(). Но
почему надо применять так и что будет если так не сделать - без некоторого понимания работы оси понимание работы вызова не наступит.