linux关于界面的API,linux系统基础知识(ABI和API)
對于linux而言,我們首先要明確一個核心觀念,linux從嚴格意義上來講,就是一個內核(Kernel)這個內核就是位于計算機硬件之上,對于用戶來說,我們要和計算機打交道,必須要通過CPU來分配指令,那么作為用戶,怎么直接和CPU對話?
任何程序都是二進制格式的,運行程序一般有兩種格式,一個是自行開機啟動,另一個是用戶自己啟動,那用戶要想運行程序,必須要通過程序來和CPU打交道,對于內核而言,這叫做用戶接口,也就是我們常說的UI界面,也就是前端,用戶接口分為兩個模式,一種是我們非常熟悉的Windows圖形化界面接口,我們稱之為(GUI)另一種是linux中非常常見的命令行界面,我們稱之為(CLI)
就拿一個鼠標舉例,我們啟動程序,可能是只用鼠標雙擊就可以打開這個程序,或者鼠標右鍵會彈出來一系列操作,但是實際上并不是內核(Kernel)完成的,而是(GUI)來完成的,因此在計算機眾多的應用程序中,有一類特殊的應用程序,我們稱之為用戶接口程序,作為用戶,我們是通過這個用戶接口程序來和內核打交道,從而去調用其它的應用程序。
不知道大家有沒有試過,在windows上的操作程序,可以不以在linux上運行起來?
要回答這個問題,我們首先要明確一個概念,作為程序開發者,有些程序員是直接面向庫來編程的,有些程序員是直接面向操作系統來編程的,假設說,在Windows上的庫,和在linux上的庫,這兩個庫基本上都是一樣的,可能有些細微之處略有不同,那么面向庫寫的應用程序,能不能在兩個平臺上跑?
首先,Windows所支持的應用程序格式是exe格式,而linux則是完全不同的程序格式,兩個程序格式不一樣,那是肯定不能兼容運行的,因為這兩個系統的接口都不一樣,這個接口我們通常稱之為運行程序接口,也就是用戶所直接面向的,英文是(ABI)
在這里又要插入一段概念,計算機只識別二進制數字,人類的語言計算機是看不懂的,因此一段程序代碼由人走向計算機,應該是源程序-匯編語言-編譯二進制-計算機運行,因此只要linux和Windows的庫一樣,源程序是可以跨平臺運行的,一定不要編譯,假設說你在Windows上編譯成二進制代碼,那么只能夠在Windows這一個平臺來跑,反之,只能在linux上跑,兩個主機都能跑的前提是源程序,并不是編譯完成的二進制代碼。
下面再來解釋一下Windows和linux的庫,庫是位于操作系統的上層,兩個不同系統的庫,就相當于一個大眾轎車,另一個是福特的猛禽,這兩個都是小轎車,你只要有駕駛證,你就可以兩個都開上走,這就是庫一樣的時候,你Windows的源代碼,也能夠在linux上跑,但是反過來,一個是半掛車,一個是小轎車,你一個c1的駕照,肯定是開不走半掛車的,這就是庫的問題,但是一定要注意是源程序,編程接口,這個接口我們稱之為(API)
總結一下就是,Windows和linux上運行的程序格式是不一樣的,但是只要應用編程接口(API)一樣或者兼容,那么源程序是可以兼容Windows和linux的,
你現在的努力,沒有回報,皆是還債,債還完,才是回報到來的時候。
總結
以上是生活随笔為你收集整理的linux关于界面的API,linux系统基础知识(ABI和API)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 海尔全自动洗衣机怎么用啊?
- 下一篇: 办公室不大,求推荐小巧一点的、适合办公场