title: how does linux execute a file
body: <p>First I <code>chmod +x</code> to these following files forcibly, and when I tried to execute a PNG file in linux, I got the error like this:</p>
  
  <pre><code>: command not found.png: line 1: ‰PNG
  ./default_1920x1200.png: line 2: : command not found
  IHDR€0Wö: command not foundne 3:
  ./default_1920x1200.png: line 4: OiCCPPhotoshop: command not found
  ./default_1920x1200.png: line 4: *!: command not found
  ./default_1920x1200.png: line 5: Øä!¢Žƒ£ˆŠÊûá{£kÖ¼÷æÍþµ×: command not found
  ./default_1920x1200.png: line 5364: warning: here-document at line 9 delimited by end-of-file (wanted `+À¾xÓ
                                                                                                             ÀM›À0‡ÿêB™\€„Àt‘8€@zŽB¦@F€&amp;S `ËcbãP-`æÓ€WW.(ÎI+6aaš@.Ây™24àóÌ ‘àƒóýxÎ®ÎÎ6Ž¶_-ê¿ÿbbãþåÏ«p@át~Ñþ,/³€;€mþ¢%îh^
  </code></pre>
  
  <p>But when I try to execute a JPG or a BMP file, I can get a normal error like</p>
  
  <pre><code>-bash: ./s_x-r.bmp: cannot execute binary file
  </code></pre>
  
  <p>So I wonder how does the linux kernel execute a file?</p>