本文將介紹一系列與linux系統程式設計有關的概念。
作業系統 system 、核心 kernel
狹義指管理和分配計算機資源(即cpu、ram和裝置)的核心層軟體。
術語「核心「通常是第二種含義,"作業系統」一般也是這層意思。核心為管理計算機的有限資源所提供了軟體層。
核心的職責
核心態和使用者態
現代處理器架構一般允許cpu至少在兩種不同狀態下執行,即:使用者態和核心態(有時也稱之為監管態)
只有當處理器在核心態執行時,才能執行某些特定操作,比如宕機(halt)指令去關閉系統,訪問記憶體管理硬體,以及裝置i/o操作的初始化等。這確保了使用者程序既不能訪問核心指令和資料結構,也無法執行不利於系統執行的操作。以程序及核心視角檢視系統
在完成諸多日常程式設計任務時,程式設計師們習慣於以面向程序(process-oriented)的思維方式來考慮程式設計問題。然而為了更高視角看問題,有必要轉換視角,站在核心的角度上來看問題。對程序來說,許多事件的發生都無法預期。
核心則是執行系統的中樞所在,對於系統的一切無所不知、無所不能,為系統上所有程序的執行提供便利。
shell是一種具有特殊用途的程式,主要用於讀取使用者輸入的命令,並執行相應的程式以響應命令。有時,人們也稱之為命令直譯器。
術語登入shell(login shell)是指使用者剛登入系統時,由系統建立,用以執行shell的程序。對unix系統而言,shell只是乙個使用者程序。縱觀unix歷史,出現過以下幾種重要的shell。
--整理自《linux/unix系統程式設計手冊》
Linux核心同步 基本概念
在linux 核心中,為驅動等核心模組提供了互斥與同步的核心機制。如果執行的系統中自始至終只有乙個執行路徑,那麼無須考慮互斥與同步的問題。現在的系統不僅支援多程序而且自持多處理器。當多個執行路徑併發執行時需要保證對共享資源的安全訪問。一般來講,互斥是對資源的排他性安排,而同步則要對程序執行的先後順序...
hive核心基本概念
基於 hadoop 的乙個資料倉儲工具 hive本身不提供資料儲存功能,使用hdfs做資料儲存,hive也不分布式計算框架,hive的核心工作就是把sql語句翻譯成mr程式 hive也不提供資源排程系統,也是預設由hadoop當中yarn集群來排程 可以將結構化的資料對映為一張資料庫表,並提供 hq...
hive核心基本概念
基於 hadoop 的乙個資料倉儲工具 hive本身不提供資料儲存功能,使用hdfs做資料儲存,hive也不分布式計算框架,hive的核心工作就是把sql語句翻譯成mr程式 hive也不提供資源排程系統,也是預設由hadoop當中yarn集群來排程 可以將結構化的資料對映為一張資料庫表,並提供 hq...