chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

解析C語(yǔ)言與操作系統(tǒng)

jf_78858299 ? 來(lái)源:碼農(nóng)的荒島求生 ? 作者:碼農(nóng)的荒島求生 ? 2023-02-15 11:38 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

大家有沒(méi)有想過(guò),為什么大部分操作系統(tǒng)都使用C語(yǔ)言來(lái)編寫(xiě)而不是其它語(yǔ)言呢?這篇文章給你答案。

C語(yǔ)言在處理器界很受歡迎

首先不得不說(shuō)的是C語(yǔ)言真的非常簡(jiǎn)單,看看K&R經(jīng)典的"The C Programming Language",薄薄的一本書(shū)就把C語(yǔ)言講完了。

再去看看JavaC#等,要是介紹這些語(yǔ)言的書(shū)不能厚到去墊顯示器你都不好意思去讀。

由于C語(yǔ)言很簡(jiǎn)單,被移植到了許多CPU架構(gòu)上,甚至許多CPU設(shè)計(jì)者第一件事就是把C語(yǔ)言移植過(guò)來(lái)。

假設(shè)你自己打造了一款CPU,有自己獨(dú)特的機(jī)器指令,現(xiàn)在CPU有了,接下來(lái)的問(wèn)題是你該怎么編寫(xiě)程序讓你的CPU開(kāi)始工作呢?

我們知道,CPU只能執(zhí)行機(jī)器指令,程序員都使用高級(jí)語(yǔ)言來(lái)編寫(xiě)程序,因此必須將高級(jí)語(yǔ)言翻譯成機(jī)器指令,接下來(lái)的問(wèn)題是選擇什么語(yǔ)言呢?使用極為復(fù)雜的Java/C#還是簡(jiǎn)單的C呢?答案不言而喻。

因此你接下來(lái)需要的就是為你設(shè)計(jì)的CPU打造一款C編譯器,之前都是通過(guò)魔改gcc來(lái)完成,現(xiàn)在你也可以使用LLVM(注意,這絕不是一件想象中那么簡(jiǎn)單的事情)。

看到了吧,處理器設(shè)計(jì)者想到的第一個(gè)用來(lái)驅(qū)動(dòng)CPU的高級(jí)語(yǔ)言就是C,那么針對(duì)該CPU編寫(xiě)的操作系統(tǒng)該用什么語(yǔ)言還用得著說(shuō)嗎?

C語(yǔ)言最獨(dú)立

為什么說(shuō)C語(yǔ)言最獨(dú)立呢?

想一想Java、Python、C#等是不是需要一大坨運(yùn)行時(shí)系統(tǒng)(runtime system),包括解釋器、線程模型、垃圾回收等等。

圖片

而C語(yǔ)言就簡(jiǎn)單太多了,C語(yǔ)言不需要依賴(lài)任何運(yùn)行時(shí)系統(tǒng) (不考慮標(biāo)準(zhǔn)庫(kù)),它不需要內(nèi)存管理系統(tǒng)、不需要解釋器、不需要線程模式等等,這就意味著你編寫(xiě)的C語(yǔ)言程序可以直接在硬件上跑起來(lái)。

直接操作硬件的能力

讓我們來(lái)看一下在整個(gè)計(jì)算機(jī)系統(tǒng)中操作系統(tǒng)位于哪里:

圖片

可以看到操作系統(tǒng)位于應(yīng)用程序與硬件中間,這就意味著操作系統(tǒng)必須對(duì)上層屏蔽硬件,這同時(shí)也意味著編寫(xiě)操作系統(tǒng)時(shí)必須能直接控制硬件,尤其是內(nèi)存管理,而C語(yǔ)言就是為此而生的。

C語(yǔ)言本身不像Java等自帶內(nèi)存管理系統(tǒng),在C語(yǔ)言中這一工作完全由程序員控制,這種控制權(quán)在開(kāi)發(fā)操作系統(tǒng)時(shí)是極為重要的,再加上指針這一大殺器,程序員可以方便地直接操作內(nèi)存,像創(chuàng)建頁(yè)表(page table)、DMA控制器、Memory mapped IO等等。

有的同學(xué)可能對(duì)指針(pointer)心生畏懼,的確,對(duì)于大部分工作在應(yīng)用層的程序員來(lái)說(shuō),沒(méi)有指針我們一樣可以編寫(xiě)出有用的程序,像Java程序、Python程序等等,這些語(yǔ)言中沒(méi)有指針,我們也不需要直接面對(duì)硬件,而這恰恰是因?yàn)椴僮飨到y(tǒng)幫我們屏蔽掉了,而在操作系統(tǒng)這一層我們無(wú)可逃避,C語(yǔ)言可以干凈利落地解決問(wèn)題。

最接近底層的高級(jí)語(yǔ)言

C語(yǔ)言中沒(méi)有復(fù)雜的數(shù)據(jù)結(jié)構(gòu),像各種容器、hash表、樹(shù)等,程序員必須自己來(lái)實(shí)現(xiàn)這些,這也是很多人覺(jué)得不方便的地方,然而 這樣設(shè)計(jì)的初衷是為了讓程序員能確切地知道C代碼是怎樣影響硬件的,C語(yǔ)言也是最接近機(jī)器指令的高級(jí)語(yǔ)言 ,C語(yǔ)言是非常透明的,而這一點(diǎn)在其它高級(jí)語(yǔ)言中幾乎不可能,因?yàn)镃語(yǔ)言的設(shè)計(jì)哲學(xué)之一就是:

Trust the programmer.

使用C語(yǔ)言的程序員應(yīng)該清楚地知道自己在干啥,這非常適合編寫(xiě)操作系統(tǒng)這種貼近硬件涉及大量底層細(xì)節(jié)需要精密微調(diào)的程序,當(dāng)然缺點(diǎn)就是剛才所說(shuō)的沒(méi)有內(nèi)置的一些常用數(shù)據(jù)結(jié)構(gòu)。

總結(jié)

本文介紹了為什么大部分操作系統(tǒng)都使用C語(yǔ)言來(lái)編寫(xiě),也介紹了C語(yǔ)言的許多優(yōu)點(diǎn),但值得注意的是每種語(yǔ)言都有自己的使用場(chǎng)景,C語(yǔ)言也不例外,C語(yǔ)言非常適合系統(tǒng)編程等偏向底層的方向,但在應(yīng)用層你的選擇則有很多。

希望這篇文章對(duì)大家理解C語(yǔ)言與操作系統(tǒng)有所幫助。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 顯示器
    +關(guān)注

    關(guān)注

    22

    文章

    5071

    瀏覽量

    141738
  • JAVA
    +關(guān)注

    關(guān)注

    20

    文章

    2988

    瀏覽量

    109245
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    180

    文章

    7632

    瀏覽量

    141435
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Linux操作系統(tǒng)C語(yǔ)言編程入門(mén)

    Linux操作系統(tǒng)C語(yǔ)言編程入門(mén)
    發(fā)表于 08-26 20:43

    書(shū)籍教程:linux操作系統(tǒng)c語(yǔ)言編程入門(mén)

    本資料是linux操作系統(tǒng)c語(yǔ)言編程入門(mén)教材。目 錄第一章 基礎(chǔ)知識(shí) ……………………………………………………………………………4第二章 進(jìn)程介紹
    發(fā)表于 07-26 22:34

    深入解析WINDOWS操作系統(tǒng)(第4版)

    本帖最后由 lee_st 于 2018-3-4 01:08 編輯 深入解析WINDOWS操作系統(tǒng)(第4版)
    發(fā)表于 03-02 23:45

    沒(méi)有操作系統(tǒng)真的不能使用LwIP套接字和域名解析嗎?

    裸機(jī)移植了LwIP協(xié)議棧,整體感覺(jué)不錯(cuò)但是在使用套接字(Socket)功能和域名解析(lwip_gethostbyname)時(shí)發(fā)現(xiàn)編譯通不過(guò),說(shuō)是要啟用操作系統(tǒng)。如果不用操作系統(tǒng)就只能用RAW
    發(fā)表于 08-22 22:25

    C語(yǔ)言實(shí)時(shí)操作系統(tǒng)源代碼

    C語(yǔ)言實(shí)時(shí)操作系統(tǒng)源代碼
    發(fā)表于 06-05 12:36 ?63次下載

    Linux操作系統(tǒng)-C語(yǔ)言編程入門(mén)-pdf

    Linux操作系統(tǒng)-C語(yǔ)言編程入門(mén)介紹在LINUX 下進(jìn)行C 語(yǔ)言編程所需要的基礎(chǔ)知識(shí).在這篇文章當(dāng)中,我們將會(huì)學(xué)到以下內(nèi)容:⣷
    發(fā)表于 12-08 09:55 ?193次下載
    Linux<b class='flag-5'>操作系統(tǒng)</b>-<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>編程入門(mén)-pdf

    RTOS操作系統(tǒng)

    RTOS操作系統(tǒng)RTOS操作系統(tǒng)RTOS操作系統(tǒng)RTOS操作系統(tǒng)RTOS操作系統(tǒng)
    發(fā)表于 12-28 15:30 ?0次下載

    基于Linux操作系統(tǒng)C語(yǔ)言編程入門(mén)

    基于Linux操作系統(tǒng)C語(yǔ)言編程入門(mén)
    發(fā)表于 10-27 15:36 ?11次下載
    基于Linux<b class='flag-5'>操作系統(tǒng)</b>下<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>編程入門(mén)

    Linux操作系統(tǒng)C語(yǔ)言編程入門(mén).pdf

    Linux操作系統(tǒng)C語(yǔ)言編程入門(mén)
    發(fā)表于 05-17 10:08 ?98次下載

    解析操作系統(tǒng)的概念、結(jié)構(gòu)和機(jī)制

    全面。解析操作系統(tǒng)的概念、結(jié)構(gòu)和機(jī)制。
    發(fā)表于 03-26 14:19 ?8次下載

    STM32操作系統(tǒng)系列使用C語(yǔ)言的教程

    C語(yǔ)言,相對(duì)于匯編有更好的可讀性,便于維護(hù)等優(yōu)點(diǎn)。下面實(shí)驗(yàn)將使用C語(yǔ)言實(shí)現(xiàn)點(diǎn)亮LED燈。C語(yǔ)言
    的頭像 發(fā)表于 08-10 23:26 ?3735次閱讀

    課堂筆記之嵌入式Linux操作系統(tǒng)

    :嵌入式操作系統(tǒng)、開(kāi)發(fā)工具、系統(tǒng)應(yīng)用開(kāi)發(fā)(&GUI)、系統(tǒng)移植、驅(qū)動(dòng)、內(nèi)核。4、所具備的知識(shí)體系:C語(yǔ)言、單片機(jī)、嵌入式
    發(fā)表于 11-02 09:51 ?15次下載
    課堂筆記之嵌入式Linux<b class='flag-5'>操作系統(tǒng)</b>

    基于STM32從零寫(xiě)操作系統(tǒng)系列---使用C語(yǔ)言

    如有不詳細(xì)的描述、錯(cuò)誤或疑問(wèn),歡迎留言!??!基于STM32從零寫(xiě)操作系統(tǒng)系列---前言與目錄目的??C語(yǔ)言,相對(duì)于匯編有更好的可讀性,便于維護(hù)等優(yōu)點(diǎn)。下面實(shí)驗(yàn)將使用C
    發(fā)表于 01-13 14:05 ?31次下載
    基于STM32從零寫(xiě)<b class='flag-5'>操作系統(tǒng)</b>系列---使用<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>

    為什么不用Go開(kāi)發(fā)操作系統(tǒng)

    操作系統(tǒng) (OS) 是計(jì)算機(jī)系統(tǒng)的心臟和靈魂,它管理著計(jì)算機(jī)的硬件和軟件資源,并為用戶(hù)提供與計(jì)算機(jī)交互的方式。傳統(tǒng)上,C 和 Assembly 等語(yǔ)言因其低開(kāi)銷(xiāo)和 “接近機(jī)器碼” 的特
    的頭像 發(fā)表于 05-26 15:09 ?774次閱讀
    為什么不用Go開(kāi)發(fā)<b class='flag-5'>操作系統(tǒng)</b>?

    深度解析全球操作系統(tǒng)格局

    操作系統(tǒng)是負(fù)責(zé)協(xié)調(diào)、管理和控制計(jì)算機(jī)硬件與軟件資源的程序,是整個(gè)計(jì)算機(jī)的核心系統(tǒng)軟件。 按照操作系統(tǒng)面向的設(shè)備類(lèi)型,通用操作系統(tǒng)主要包括桌面操作系統(tǒng)
    的頭像 發(fā)表于 01-18 15:00 ?1831次閱讀
    深度<b class='flag-5'>解析</b>全球<b class='flag-5'>操作系統(tǒng)</b>格局