linux是用面向過程的C語言,以面向對象的方式編寫實現的


題主的問法可能有些歧義。下面試著回答一下,可能會有所幫助。

很多時候大家討論的面向對象和面向過程的概念通常是針對編程語言的,如果從編程語言的角度理解,因為內核是通過C語言開發的,因此肯定是面向過程的語言。

從另外一個角度,面向對象和面向過程的概念還包括在軟體設計領域。軟體設計本身可以是可以面向對象設計的,此時也就是將軟體中的邏輯單元設計為對象。比如Linux內核中的文件、設備和線程等其實都是對象。因此,從這個角度來說,Linux內核肯定是面向對象

可能有人會問,那怎麼通過面向過程的語言實現面向過程的設計呢?其實這個本身不矛盾。雖然C語言中沒有類、對象等概念。但面向對象的核心概念其實是封裝,抽象。因此,通常可以通過C語言中的結構體(struct)來實現數據的封裝。這樣一個結構體類型就是一個對象。

因此,總的來說,設計和實現本身是沒有太大關係的,設計可以是面向對象的,具體實現的時候是用面向對象語言,還是面向過程語言都無所謂。


面向中斷 (逃


內核是面向cpu編程。


Linux如同之前的Unix和Unix-like,都是面向文件的操作系統


實際上,雖然linux內核使用c來編寫,但其設計遵循高度面向對象思想實現,並且結合了很多良好的設計模式,我們平常提到的結構行模式,行為模式,策略模式等等都有非常好的體現。


linux用c語言實現的面向對象,用c語言的結構體實現的(結構體里不僅有變數,還有函數指針)


面向深淵


推薦閱讀:
相关文章