Naja CallGates haben schon ein paar Vorteile: 1. Deutlich flexibler als sysenter, da sie a) auch auf älteren Systemen und bei flexibeler GDT sowie bei AMD und Intel gleichermaßen laufen. Dadurch kann man sie als Standard-Api verwenden. b) man sich nicht um die Sicherung der Rücksprungadresse kümmern muss (was insbesondere wertvolle Prozessorregister dann spart, wenn man sie nicht auf dem Stack sichern kann.), c) man kann mehre davon haben. d) Man kann Einträge vom User auf den KernelStack kopieren lassen. e) Sie geraten sicherlich in keinen Konflikt mit irgendeiner anderen Api. f) wenn man ganz geschickt ist, kann man im nicht verwendeten Call-Bereich des Aufrufs noch Informationen verpacken, die auch vom Kernel angesteuert werden können.
Gegenüber Interupts, ist der Vorteil, dass sie alles können, was SoftwareInterrupts können, nur schneller. Callgates poppen keine Flags, ob das gut oder schlecht ist sei mal dahingestellt. Der einzige Nachteil ist, das der Opcode halt bei Interrupts immer 2 byte lang ist und bei CallGates im 32 Bit Modus 7 Byte lang ist. (Wobei man hierbei wie gesagt, da auch irgendetwas reinschreiben kann.)