萬物能夠劃分爲兩類:編程
前者是稱爲神造事物或者天然存在的事物,後者稱爲人造事物。計算機學科是一我的造學科。編程語言
人造學科的4大特色:spa
對於絕大多數人編寫程序的人來講,使用編程語言稱爲高級程序設計語言,如C、C++、Java等。但因爲計算機並不認識高級語言編寫的程序,編好的程序須要進行編譯變成計算機可以識別的機器語言程序,而這須要編譯器和彙編器的幫助。其次,機器語言程序須要加載到內存,造成一個運動中的程序,即進程,而這須要操做系統的幫助。進程須要在計算機芯片CPU上執行的機器語言指令須要變成可以一個個時鐘脈衝裏執行的基本操做,這須要指令集結構和計算機硬件的支持,而整個程序的執行過程還須要操做系統提供服務和程序語言提供的執行環境(runtime environment)。這樣,一個從程序到微指令執行的過程就完成了。操作系統
因此,從上面的描述中咱們能夠看出:程序的運行至少須要以下4個因素:翻譯
須要注意的是,程序執行過程是從高級語言編寫的程序開始的。而實際並不是這樣。事實上,程序可能直接使用機器語言或彙編語言進行編寫。用這種稱爲"低級"的語言編寫出來的機器語言無需通過編譯器的翻譯就能夠在計算機指令集上執行。若是在彙編語言上編寫的彙編程序,則只須要通過彙編器的翻譯便可加載執行。設計
總的來講操做是掌控計算機局勢的一個系統。具體來講操做系統是介於計算機和應用軟件之間的一個軟件系統,位於操做系統的下面是硬件平臺,上面則是應用軟件。進程
所以,當咱們理解了操做系統表明的是掌控事情的系統,可是究竟掌控什麼事情呢?固然是計算機上或計算機裏發生的一切事情。最原始的計算機並無操做系統,而是直接由人來掌握事情,即所謂的單一控制終端、單一操做員模式。可是隨着計算機複雜性的增加,人已經不能勝任直接掌控計算機了。因而咱們編寫出操做系統這個「軟件」來掌控計算機,將人類從日益複雜的掌控任務中解脫出來。這個掌握有着多層深遠的意義。內存
首先,因爲計算機的功能和複雜性不斷的發生變化(趨向更加複雜),操做系統所掌控的事情也就愈來愈多,愈來愈複雜。同時,操做系統自己可以使用的資源也不斷增長(如內存容量)。這就是早期操做系統不斷改善的根本緣由。資源
其次,既然操做系統是專門掌控計算機的,那麼計算機上發生的全部事情天然須要操做系統的知曉和許可,未經操做系統贊成的任何事情都可視爲非法的,也就是病毒和入侵攻擊所試圖動做的事情。做爲操做系統的設計人員,咱們固然須要確保計算機不發生任何咱們不知情或不一樣意的事情。可是人的能力是有限的,人的思惟也是有缺陷的,咱們設計出的系統天然不會十全十美,也會有缺陷,這就給了攻擊者可乘神之機。操做系統設計人員和攻擊者之間的博弈是當前驅動操做系統改善的一個重要動力。 編譯器