Я читал «Драйверы для устройств Linux, 3-е издание» и столкнулся с некоторыми пунктами ядра, которые я не совсем понимаю. Надеюсь, что гуру на этом форуме помогут мне.
1) Внутренне ядро Linux работает с виртуальными или физическими адресами? Что меня особенно смущает, так это то, что существует несколько типов адресов (логических, виртуальных, шинных и физических), и все они действительны и работают в ядре.
2) Верно ли, что инструкции процессора не могут напрямую обращаться к данным, хранящимся на периферийных устройствах, и, следовательно, для этих целей используется адресуемая память, то есть буферы?
4) Может ли процесс спать при запросе семафора (который имеет значение 0) и должен ждать его?
4) Атомарные операции - гарантируются ли они конкретными инструкциями ЦП?