日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

一步步编写操作系统 66 浅析c库函数与系统调用1

發布時間:2023/12/10 windows 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一步步编写操作系统 66 浅析c库函数与系统调用1 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本來說好的接下來的工作是要去“豐滿”我們的內核,可咱們這種一步一回頭的學習方式還得繼續啊。其實我了解大家急切寫內核的心情,但本書《操作系統真象還原》(請大家支持正版)的目的不是寫一個操作系統就完事了,而是讓大家明白一個至少能運行的操作系統為什么要這樣寫,所以咱們的學習方式必然是邊學習理論知識邊實踐。如果不給大家交待清楚必要的理論知識,我也對不起自己的良心,我不能為了自己的懶惰而假裝大家都明白了。另外,既然咱們都渴望學習,能了解到更多的混合編程方式不是更好嗎,好啦,不煽情了,開始學習go! go! go!。

開門見山,匯編語言和c語言混合編程可分為兩大類:

  • 單獨的匯編代碼文件與單獨的c語言文件分別編譯成目標文件后,一起鏈接成可執行程序。
  • 在c語言中嵌入匯編代碼,直接編譯生成可執行程序。
  • 本節所說的“匯編語言和c語言混合編程”屬于第1種,第2種的內嵌匯編又稱為內聯匯編,以后咱們會有專門的章節來說的。在內核文件中,有些比較長的匯編代碼真不適合用內聯匯編完成,還是需要專門寫個匯編代碼文件專項專用。

    簡單起見,咱們先學習下linux系統調用,利用系統調用能夠幫助簡化演示的模型。

    系統調用是linux內核提供的一套子程序,它和windows的動態鏈接庫dll文件的功能一樣,用來實現一系列在用戶態不能或不易實現的功能,比如最常見的讀寫硬盤文件,只有操作系統有權限去訪問硬件,用戶程序是沒有權限的,用戶程序只能向操作系統尋求幫助,故系統調用是供用戶程序來使用的,操作系統權利至高無上,不需要使用自己對外發布的功能接口,即系統調用。

    由于是用戶程序想使用操作系統提供的功能,所以系統調用又稱為操作系統功能調用。

    系統調用很像bios中斷調用(在很久很久以前咱們有說過bios中斷、dos中斷等內容),只不過系統調用的入口只有一個,是第0x80號中斷,它不像bios中斷那樣,幾乎是一個功能就有一個入口,所以您在bios中斷手冊中會見到那么多的中斷調用啦,比如中斷號 0~0x20都是bios的中斷調用。

    為什么系統調用只有一個入口呢?以后咱們學習中斷機制的時候就會明白,中斷的實現是要用到中斷描述符表的,表中很多中斷項(號)是被預留的,不能強占,所以linux就選了一個可用的中斷號做個所有系統調用的統一入口,具體的子功能在寄存器eax中單獨指定。

    總之,bios中斷走的是中斷向量表,所以有很多中斷號給它用,而系統調用走的是中斷描述符表中的一項而已,所以只用了第0x80項中斷。

    總結

    以上是生活随笔為你收集整理的一步步编写操作系统 66 浅析c库函数与系统调用1的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。