初始化父類中的靜態成員變量和靜態代碼塊 ;
初始化子類中的靜態成員變量和靜態代碼塊 ;
3.初始化父類的普通成員變量和代碼塊,再履行父類的構造方法;
4.初始化子類的普通成員變量和代碼塊,再履行子類的構造方法;
/sbin/init在核心完全的加載后,開始運行系統的第1支程序,主要的功能就是準備軟件運行的環境,包括系統的主機名稱、網絡配置、語系處理、文件系統格式及其他服務的啟動等。
/bin/sh解釋腳本的shell命令,開機后運行
/etc/sysvinit就是 system V 風格的 init 系統,顧名思義,它源于 System V 系列 UNIX。sysvinit 中運行模式描寫了系統各種預訂的運行模式。
/etc/inittab定義了系統引導時的運行級別, 進入或切換到1個運行級別時做甚么。
1,啟動init進程的配置文件是/etc/inittab
2,/etc/sysvinit是系統初始化用的
在linux命令中reboot是重新啟動,shutdown -r now是立即停止然后重新啟動,都說他們兩個是1樣的,實際上是有1定的區分的。
shutdown命令可以安全地關閉或重啟Linux系統,它在系統關閉之前給系統上的所有登錄用戶提示1條正告信息。該命令還允許用戶指定1個時間參數,可以是1個精確的時間,也能夠是從現在開始的1個時間段。
精確時間的格式是hh:mm,表示小時和分鐘,時間段由+ 和分鐘數表示。系統履行該命令后會自動進行數據同步的工作。
該命令的1般格式: shutdown [選項] [時間] [正告信息]
命令中各選項的含義為:
- k 其實不真正關機而只是發出正告信息給所有用戶
- r 關機后立即重新啟動
- h 關機后不重新啟動
- f 快速關機重啟動時跳過fsck
- n 快速關機不經過init 程序
- c 取消1個已運行的shutdown
需要特別說明的是該命令只能由超級用戶使用。
例1,系統在10分鐘后關機并且馬上重新啟動: # shutdown –r +10
例2,系統馬上關機并且不重新啟動:# shutdown –h now
halt是最簡單的關機命令,其實際上是調用shutdown -h命令。halt履行時,殺死利用進程,文件系統寫操作完成后就會停止內核。
halt命令的部份參數以下:
[-f] 沒有調用shutdown而強迫關機或重啟
[-i] 關機或重新啟動之前,關掉所有的網絡接口
[-p] 關機時調用poweroff,此選項為缺省選項
reboot的工作進程與halt類似,其作用是重新啟動,而halt是關機。其參數也與halt類似。reboot命令重啟動系統時是刪除所有的進程,而不是安穩地終止它們。因此,使用reboot命令可以快速地關閉系統,但如果還有其它用戶在該系統上工作時,就會引發數據的丟失。所以使用reboot命令的場合主要是在單用戶模式。
init是所有進程的先人,其進程號始終為1。init用于切換系統的運行級別,切換的工作是立即完成的。init 0命令用于立行將系統運行級別切換為0,即關機;init 6命令用于將系統運行級別切換為6,即重新啟動
進程是指1個具有1定獨立功能的程序關于某個數據集合的1次運動活動。簡單地說進程是可以并發履行的程序的履行進程,它是控制程序管理下的基本的多道程序單位。
進程控制塊(PCB )是由系統為每一個進程分別建立的,用以記錄對應進程的程序和數據的存儲情況,記錄進程的動態信息。
PCB是1個進程存在的標志。系統根據PCB而感知進程的存在,根據PCB中的信息對進程實行控制管理,當進程結束時,系統回收對應的PCB,進程隨之滅亡。
進程控制塊中包括1系列信息,其中進程名即進程標識符唯1標識對應進程,系統根據該標識符來辨認1個進程。
1個進程只有唯1的進程控制塊,不可和其他進程共用1個進程控制塊。
編譯:進行語法檢查、函數分配空間,將各個函數編譯成2進制碼,依照特定目標文件格式生成目標文件。
連接:把程序中各個文件編譯生成的目標文件連接起來,同時還要同系統提供的資源(如函數庫)連接成為1個整體,得到可履行文件。
運行:履行連接好的程序。
重定位:把程序的邏輯地址空間變換成內存中的實際物理地址空間的進程,也就是說在裝入時對目標程序中指令和數據的修改進程。
1.靜態鏈接
2.動態鏈接(裝入時)
3.動態鏈接(運行時)
<0 出錯
=0 連接關閉
0 接收到數據大小
在HTTP1.0和HTTP1.1協議中都有對KeepAlive的支持。其中HTTP1.0需要在request中增加“Connection: keep-alive” header才能夠支持,而HTTP1.1默許支持
當使用Keep-Alive模式時,Keep-Alive功能使客戶端到服 務器真個連接延續有效,當出現對服務器的后繼要求時,Keep-Alive功能避免了建立或重新建立連接
可以在服務器端設置是不是支持keep-alive
server為多為靜態內容時,開啟keep-alive,增加傳輸效力。動態要求,已占用的資源得不到釋放,效力低下。
LINUX的硬鏈接不能鏈接到目錄是由于引入了對目錄的硬連接就有可能在目錄中引入循環,在目錄遍歷的時候系統就會墮入無窮循環當中,這樣致使沒法定位到訪問目錄。
硬鏈接:為原文件創建1個新的文件名,但本質中只增加了1個目錄項,并使用與原來相等的inode,指向
原文件的區域。數據區為兩個名字同享。
使用限制:源文件和鏈接文件必須在同1個文件系統內,且目錄文件不能創建硬鏈接。
命令:ln a b // 給a創建鏈接文件b
可使用ls -i查看兩個inode是完全1樣的。
同時注意連接計數count。count的意義對文件來講是硬鏈接的個數,對目錄,1般(count⑵)為目錄包括的子文件個數。
注意:二者的權限也是完全1樣的。對其中1個進行讀寫操作,另外1個也會更新。但刪除其中1個,只會刪除目錄項,不會刪除存儲區數據。另外1個文件的使用和操作完全不受影響。除非count⑴結果0,才將數據區刪除。作用:節省空間,兩個文件能同步更新,避免重要文件被“誤刪”。
軟鏈接:也叫符號鏈接。本質是創建1個新的文件,保存源文件的路徑名。因此inode和源文件的inode是不1樣的。使用沒有文件系統的限制,也沒有文件和目錄的限制。 命令:ln -s a b 注意:產生的文件權限和源文件是不1樣的。由于軟鏈接使用比較靈活,可能斷鏈,也能夠自循環,常常需要屢次查找增加文件操作的步驟而下降效力。盡可能少用,并避免出現循環。
上一篇 Xcode 8 適配(踩坑)