Что конкретно вас интересует? Вот процессор работает, выполняет какие-то команды, опа, прерывание, значит надо обработать, останавливает работу и отдаёт управление обработчику команд, обработчик что-то выполняет и возвращает управление.
Аппаратные от программных отличаются тем, что программные вы вызываете в коде программа, а аппаратные, например, от флешки/внешнего жёсткого диска/что-то ещё.