The answer to your question depends on the underlying hardware (and sometimes the operating system). I will come back to this a bit.
The purpose of the interrupt handler and system call (and error handler) is basically the same: switch the processor to kernel mode, providing protection against inadvertent or malicious access to kernel structures.
An interrupt is triggered by an asynchronous external event. A system call (or an error or a trap) is launched synchronously, executing the code.
Then the answer to your first question.
The answer to the question in your section is that system calls are not interrupts because they are not triggered asynchronously by the hardware. A process continues to execute its code stream in a system call, but not in an interrupt.
However, Intel documentation often links interrupts, system calls, traps, and errors like interrupts.
Some processors handle system calls for traps, crashes, and interrupts in much the same way. Others (especially Intel) provide various methods for making system calls.
In processors that process all of the above in the same way, each type of interrupt, trap, and error has a unique number. The processor expects the operating system to configure a vector (array) of pointers to the handlers. In addition, there is one or more handlers available for the operating system to make system calls.
Depending on the number of available handlers, the OS may have a separate handler for each system call or use the value of the register to determine the specific function of the system.
In such a system, an interrupt handler can be executed synchronously in the same way as one calls a system call.
For example, on VAX
CHMK # 4
calls the 4th kernel mode handler. In the world of intellectual property, this
INT
which does roughly the same thing.
Intel processors support the SYSCALL mechanism, which provides another way to implement system calls.