title: Why are segfaults called faults (and not aborts) if they are not recoverable?
body: <p>My following understanding of the terminology is this</p>
  
  <blockquote>
    <p><strong>1) An interrupt</strong><br>
    is "a notification" that is initiated by the hardware to call the OS to run its handlers</p>
    
    <p><strong>2) A trap</strong><br>
    is "a notification" that is initiated by the software to call the OS to run its handlers</p>
    
    <p><strong>3) A fault</strong><br>
    is an exception that is raised by the processor if an error has occurred but it is recoverable</p>
    
    <p><strong>4) An abort</strong><br>
    is an exception that is raised by the processor if an error has occurred but it is non-recoverable</p>
  </blockquote>
  
  <p>Why do we call it a <code>segmentation fault</code> and not a <code>segmentation abort</code> then?</p>
  
  <blockquote>
    <p><strong>A segmentation fault</strong><br>
    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.</p>
  </blockquote>
  
  <p>My experience (primarily while testing <code>C</code> code) is that anytime a program throws a <code>segmentation fault</code> 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?</p>