My following understanding of the terminology is this
1) An interrupt
is "a notification" that is initiated by the hardware to call the OS to run its handlers2) A trap
is "a notification" that is initiated by the software to call the OS to run its handlers3) A fault
is an exception that is raised by the processor if an error has occurred but it is recoverable4) An abort
is an exception that is raised by the processor if an error has occurred but it is non-recoverable
Why do we call it a segmentation fault
and not a segmentation abort
then?
A segmentation fault
is when your program attempts to access memory it has either not been assigned by the operating system, or is otherwise not allowed to access.
My experience (primarily while testing C
code) is that anytime a program throws a segmentation fault
it is back to the drawing board - is there a scenario where the programmer can actually "catch" the exception and do something useful with it?