title: Differences among various interrupts: SCI, SMI, NMI, and normal Interrupt
body: <p>I am learning the Intel Architecture. So far I have encountered several types of interrupts:</p>
  
  <ul>
  <li>SCI: System Control Interrupt, A system interrupt used by hardware to notify the OS of ACPI events. The SCI is an active, low, shareable, level interrupt.</li>
  <li>SMI: System Management Interrupt, An OS-transparent interrupt generated by interrupt events on legacy systems. </li>
  <li>NMI: Non-maskable Interrupt</li>
  <li>Normal Interrupt: handled through IDT with vector 0~255.</li>
  </ul>
  
  <p>Anyone can help compare their essential difference in plain words from the below aspects?</p>
  
  <ul>
  <li>How are they meant to be used?</li>
  <li>How are they generated?</li>
  <li>Can we generate them with software?</li>
  <li>How are they processed?</li>
  </ul>
  
  <h2>ADD 1</h2>
  
  <ul>
  <li>What's the priority between all these interrupt types?</li>
  </ul>
  
  <h2>ADD 2</h2>
  
  <p>Some related threads:</p>
  
  <p><a href="https://stackoverflow.com/questions/45206171/how-sci-system-cotnrol-interrupt-vector-is-defined">How SCI - System Cotnrol Interrupt vector is defined?</a></p>
  
  <p><a href="https://stackoverflow.com/questions/44511643/different-ways-to-to-trigger-a-smi-for-a-processor">Different ways to to trigger a SMI for a processor</a></p>