1, What exactly is endpoints and what is its purpose? Let me explain a bit: From what I understood, endpoint is source or destination of data. But, WTF? I dont want to be rude, but my head hurts becouse I cannot really understand why. I mean, USB is serial bus, so it should only care about delivering data to proper destination. Destination is device. Why to more include multiple destinations in device in form of endpoints?
Sim, o "ponto final" é apenas um conceito USB, ou seja, o ponto final de uma ligação a um dispositivo.
O motivo pelo qual um dispositivo pode ter vários pontos de extremidade é que pode haver vários tipos de comunicação acontecendo por vez, por exemplo, dados de controle e dados reais do dispositivo. Para separá-los, vários pontos de extremidade são necessários (um pouco como o canal de dados + controle que o FTP usa).
"USB em poucas palavras" explica isso muito bem: link
2, In USB host on PC, there is that USB host loads apropriate drivers to device. So, lets say I plug in some USB custom class device. USB host driver will than get its IDs and so, and after knowing the device it should load its drivers. But I thought that device drivers are present in kernel, so how can be additionally loaded?
Normalmente, apenas os drivers USB de baixo nível são integrados ao kernel. Drivers de alto nível, especialmente drivers específicos de fornecedores, são carregados sob demanda. Como isso funciona depende do sistema operacional, mas o sistema operacional mais moderno pode carregar drivers no kernel em tempo de execução, por exemplo, Linux usando módulos, ou Windows usando o Modelo de Driver do Windows.
Furthermore, lets say my USB host is connected to Pc via PCI. So my USB host device will generate some PCI interrupt to get attention of OS, and than OS first must load USB host driver. Isn´t this too slow process? I mean, yes even USB 3.0 is MUCH slower than CPU can handle, but still...
Essa pergunta não está bem clara. Sim, o sistema operacional deve carregar os drivers e, sim, isso pode levar alguns segundos, mas isso é feito apenas uma vez. E o PCI não será um problema, porque o PCI é muito mais rápido que o USB 3.0.