> Непосредственно загнать 4 байта в регистры вон той железяки - это примерно
> 0 целых хрен десятых % от трудоемкости общего кода ядра. Угу, а код драйверов вы смотреть не пробовали? Там такого кода - хоть отбавляй, и драйвера - весьма существенный кусок ядра, собссно :)
> Решается минимальным тоненьким врапером над непосредственным доступом
> к физической памяти/регистрам/etc хоть на ассемблере. Который вылизывается
> до блеска специальным стадом котов. Все остальное - это самый обычный код.
Этот обычный код в основном занимается как раз довольно необычными низкоуровневыми задачами. Может я что-то и не понимаю в этой жизни, но общематематические и прикладные задачи (ака "обычный код") не являются целью ради которой делают ядра ОС. Ядра как раз по задумке именно прослойка между железом и прикладным софтом, не привязанным к железу и желательно особенностям низкоуровневой реализации конкретной ОС. Предлагаете делать врапперы в врапперах? А в тех врапперах не надо врапперов? :)
> В котором собственно и делают те самые неприятные ошибки самые обычные люди.
> И уже на этом уровне 'широкие возможности C' - это скорее геморрой нежели благо.
Ну так пишите программы работающие с юсб через юзермод на чемнить высокоуровневом, правда мне почему-то кажется что это будет не самым безгеморройным начинанием :)
> Никому в трезвом умен и здравом сознании не приходит в голову браться
> писать на C действительно сложный ответственный код в 21м веке.
Именно сложный - да, только странная какая-то цель: "написать сложный код". Код должен быть простым и прозрачным.
> Как минимум - выбор за C++. А зачастую и что-то куда более высокоуровневое
> - жаба, эрланг, те или иные скриптовые решения -
Ну так напишите на этом кернель, а я посмотрю на параметры и подумаю - надо оно мне, или в сад. На кой хрен мне враппер между моей программой и оборудованием писаный на жабе, а? Тем более что ява - затевалась для независимости от оборудования, по поводу чего она сама нуждается в враппере, ибо там "немного забыли" реализовать свои дрова для тех же юсб-звуковух и прочая :)
> зависит от конкретной ситуации. Но никак не ассемблер или C.
Ха, вы будете учить системщиков как им надо писать кернелы? Не, хренушки, так не катит. Давайте вы сделаете ваше крутое, правильное, и на чем вам там надо? И вот когда оно всех зарулит - тогда ваш тезис "никак не ассемблер или C" и будет доказан, имхо :). Только вот высокоуровневые сложные конструкции ИМХО не очень просто и быстро трансформируются в простые наборы байтов и даже битов с которыми работает железо, если что. А приколитесь, бывают железки которые хотят, допустим не 8 и не 16 битов. А 12 битов, например. Ничему не противоречит послать по сериальной шине именно 12 битов, а вовсе не 8 или 16. Интересно было бы посмотреть как вы 12-битные слова, нативные для железки будете в высокоуровневые абстракции упаковывать и какая будет скорость враппинга всего этого :).Особенно если чипмейкер не искал легких путей и сделал так что первые 9 битов - одно поле, а еще три - другое. Во вы там наврапаетесь то :)