Esta é uma questão enorme, fora do escopo de uma postagem no fórum.
Eu recomendaria a leitura dos livros de Andrew Tanenbaum, Sistemas Operacionais Modernos , e Sistemas Operacionais: Design e Implementação ou algum livro similar sobre o assunto. Há mais alguns, mas ele é o que eu li, Sistemas Operacionais Modernos e é excelente. Eu ainda não li o segundo, mas estou trabalhando nisso:)
Além disso, para USB, as especificações estão disponíveis on-line: link