Question: what is the difference between classic badi and kernel badi?
Answer: Apart from Classic BADI's which are been called by Proxy class cl_exithandler, Kernel BADI's are called directly with the reference to the BADI definition via GET BADI and CALL BADI statements. That is one of the reasons why Kernel BADI is faster than classic BADI.