Can you summarize the following document?
        
  在UNIX裡,除了程序0(即PID=0的交換程序,"Swapper Process")以外的所有程序都是由其他程序使用系統呼叫fork建立的,這裡呼叫fork建立新程序的程序即為父程序,而相對應的為其建立出的程序則為子程序,因而除了程序0以外的程序都只有一個父程序,但一個程序可以有多個子程序。  作業系統核心以程序識別符號("Process Identifier",即PID)來識別程序。程序0是系統引導時建立的一個特殊程序,在其呼叫fork建立出一個子程序(即PID=1的程序1,又稱init)後,程序0就轉為交換程序(有時也被稱為),而程序1(init程序)就是系統裡其他所有程序的祖先。

  當一個子程序結束執行(一般是呼叫、執行時發生致命錯誤或收到終止訊號所導致)時,子程序的退出狀態(返回值)會回報給作業系統,系統則以SIGCHLD訊號將子程序被結束的事件告知父程序,此時子程序的程序控制塊(PCB)仍駐留在記憶體中。一般來說,收到SIGCHLD後,父程序會使用wait系統呼叫以取得子程序的退出狀態,然後核心就可以從記憶體中釋放已結束的子程序的PCB;而如若父程序沒有這麼做的話,子程序的PCB就會一直駐留在記憶體中,也即成為殭屍程序。  孤兒程序則是指父程序結束後仍在執行的子程序。在類UNIX系統中,孤兒程序一般會被init程序所“收養”,成為init的子程序。  為避免產生殭屍程序,實際應用中一般採取的方式是:

  在Linux核心中,程序和POSIX執行緒有著相當微小的區別,父程序的定義也與UNIX不盡相同。Linux有兩種父程序,分別稱為(形式)父程序與實際父程序,對於一個子程序來說,其父程序是在子程序結束時收取SIGCHLD訊號的程序,而實際父程序則是在多執行緒環境裡實際建立該子程序的程序。對於普通程序來說,父程序與實際父程序是同一個程序,但對於一個以程序形式存在的POSIX執行緒,父程序和實際父程序可能是不一樣的。
在計算機領域,父程序(英語:Parent Process)指已建立一個或多個子程序的程序。