色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

為什么不用Go開發操作系統?

OSC開源社區 ? 來源:OSC開源社區 ? 2023-05-26 15:09 ? 次閱讀

本文整理自 GoLand 官方博客的一篇文章:《OS in Go? Why Not?》,探討了為什么像 C 這樣的編程語言在 OS 開發中占據優勢,以及是否可以使用 Go 編寫 OS。此外還提到了用 Go 開發操作系統的可行性、局限性,以及目前的部分成果。

1d78b518-fb6b-11ed-90ce-dac502259ad0.jpg

操作系統 (OS) 是計算機系統的心臟和靈魂,它管理著計算機的硬件和軟件資源,并為用戶提供與計算機交互的方式。傳統上,C 和 Assembly 等語言因其低開銷和 “接近機器碼” 的特性而被用于開發操作系統。 但諸如 Go 等高級語言的興起引入了一些特性,這些特性或許可以使開發操作系統等復雜軟件變得更加容易。例如,類型安全、錯誤處理和并發性在開發操作系統時應該是有益的。 因此,采用像 Go 這樣的高級語言來開發操作系統理應是自然選擇,但為什么并沒有成功的案例?

操作系統由不同的組件構成,它們負責不同的功能,可以使用不同的編程語言編寫。 操作系統的核心是內核 (Kernel),它負責與硬件交互 —— 幾乎都是采用 C 或匯編語言編寫。至于面向用戶的組件(例如 GUI 應用程序),可以采用任何語言編寫。 例如,Android 采用 Java 編寫用戶層的組件,如 GUI 框架和系統應用程序(相機、電話等)。相對應的,其內核采用 C 和匯編語言編寫;底層系統組件 —— 庫,則是用 C++ 編寫。 C 語言 “統治” 內核的主要原因:

可直接管理內存

缺少抽象

無需依賴運行時

可移植性

Go 作為高級語言提供了許多令人滿意的特性。從這方面來看,它似乎可以成為開發操作系統的絕佳選擇:

某些類型的錯誤在高級語言中出現的可能性要小得多

并發性:在高級語言中處理并發更容易,因為幾乎每種高級語言都內置處理并發所需的機制

類型安全:防止像 C 的寬松類型強制執行

不過盡管 Go 提供了令人滿意的特性,可以讓操作系統開發者的工作更輕松,但它也有一些局限性。 作為一種具有垃圾回收功能的語言,Go 并不真正適合操作系統開發。使用 Go 編寫內核意味著需要小心翼翼地繞過 Go 的垃圾收集。正如 Reddit 論壇中開發者提到的,鼠標滯后可能是因為中斷處理程序分配了觸發垃圾回收的內存。 此外,Go 還需要大量的 runtime 才能執行,這意味著它不能直接在硬件上運行。盡管 TinyGo 可以將 Go 編譯為在裸機上運行,但與 C 相比,它只支持少量的架構,而 C 幾乎可以在任何架構上運行。 總的來說,使用 Go 開發一個不是 “玩具性質” 的操作系統幾乎是不可能。尤其是要求支持在多種架構上運行、支持不同設備(如顯卡或網卡),并符合 POSIX 標準,這更是極具挑戰性。 最后看一下探索用 Go 開發操作系統的案例。 Biscuit 是一個用 Go 開發的操作系統,運行在 64 位 X86 架構上。它使用經過修改的 Go 1.10 運行時實現,其中添加了更多匯編代碼來處理系統調用和中斷處理程序的引導和進入 / 退出。

1d800bd8-fb6b-11ed-90ce-dac502259ad0.png

Biscuit 為用戶進程提供 POSIX 接口,支持 fork、exec 等。它實現了支持核心 POSIX 文件系統調用的文件系統。Biscuit 為用 Go 編寫的 Intel PCI-Express 以太網 NIC 實現了 TCP/IP 堆棧和驅動程序。使用 POSIX 接口,Biscuit 可以在不修改源代碼的情況下運行許多 Linux C 程序。 然而,Biscuit 缺少許多功能,例如調度優先級、換出頁面或磁盤,以及安全功能,例如用戶、訪問控制列表和地址空間隨機化。

審核編輯 :李倩

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 操作系統
    +關注

    關注

    37

    文章

    6806

    瀏覽量

    123285
  • Go
    Go
    +關注

    關注

    0

    文章

    43

    瀏覽量

    12248
  • 編程語言
    +關注

    關注

    10

    文章

    1942

    瀏覽量

    34709

原文標題:為什么不用Go開發操作系統?

文章出處:【微信號:OSC開源社區,微信公眾號:OSC開源社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    實時操作系統和分時操作系統的區別

    操作系統能否滿足實時性要求來區分,可把操作系統分成分時操作系統和實時操作系統,分時操作系統按照相等的時間片調度進程輪流運行,分時操作系統
    發表于 11-14 17:39 ?1.3w次閱讀

    如何選擇嵌入式系統操作系統操作系統特征

    嵌入式系統開發人員目前擁有廣泛的操作系統。當然,最直接的操作系統就是沒有操作系統!但是,當今的許多系統都是復雜的連接
    的頭像 發表于 09-07 11:51 ?1968次閱讀

    開發環境介紹主機操作系統

    開發環境介紹主機操作系統:Ubuntu14.04 64位目標平臺:IMX.6Q ARM Cortex-A9內核交叉工具鏈:arm-poky-linux-gnueabi,gcc4.9.1Go版本
    發表于 07-16 06:54

    請問一下ARM芯片可以不用操作系統而直接開發嗎?

    請問一下ARM芯片可以不用操作系統而直接開發嗎?求大神解答
    發表于 06-06 16:01

    Linux操作系統原理及應用

    Linux操作系統原理及應用 1.1  操作系統的地位 1.2  操作系統的功能 1.3  操作系統的發展過程 1.4 
    發表于 04-28 14:53 ?0次下載

    linux操作系統的安全性

    linux操作系統的安全性 計算機系統安全性的內涵 操作系統的安全性功能 操作系統的安全機制 安全操作系統
    發表于 04-28 15:05 ?0次下載

    什么是VxWorks操作系統

    VxWorksVxWorks操作系統是美國WindRiver公司于1983年設計開發的一種實時操作系統。VxWorks擁有良好的持續發展能力、高性能的內核以及良好的用戶開發環境,在實
    發表于 06-17 00:33 ?4085次閱讀

    iPhone的操作系統詳解

    iPhone的操作系統詳解 iPhone OS 或 OS X iphone是由蘋果公司為iPhone開發操作系統。 iPhone OS包括了操作系統和支持應用程序在iphone和
    發表于 02-03 10:01 ?1952次閱讀

    RTOS操作系統

    RTOS操作系統RTOS操作系統RTOS操作系統RTOS操作系統RTOS操作系統
    發表于 12-28 15:30 ?0次下載

    谷歌開發操作系統Fuchsia

    據消息報道,谷歌正在悄然開發的手機和平板電腦操作系統Fuchsia可能會在5年內取代Android和Chrome OS。
    的頭像 發表于 07-22 09:43 ?3204次閱讀

    谷歌正式推出Android 10 Go操作系統,應用程序啟動速度提高10%

    去年,谷歌推出安卓9 Pie的同時,還推出了Android Go版,今天谷歌詳細介紹了其最新版本的Android 10 Go操作系統,適用于內存不足1.5GB的入門級智能手機。Android 10(
    的頭像 發表于 09-26 14:58 ?2382次閱讀

    嵌入式操作系統

    2.2 實時操作系統的評價指標三、基于Linux的嵌入式操作系統3.1 ARMLinux簡介3.2 uCLinux簡介四、嵌入式操作系統設計方法4.1 嵌入式系統開發特點4.2 嵌入式
    發表于 11-03 18:36 ?46次下載
    嵌入式<b class='flag-5'>操作系統</b>

    裸機開發和帶操作系統開發的區別

    1.概述所謂裸機就是執行單任務的單片機,對應的訪問外設的方式有輪詢、中斷和DMA(看單片機是否支持);這里的操作系統一般是指嵌入式開發操作系統,常見的有UC/OS、FreeRTOS
    發表于 12-09 12:51 ?24次下載
    裸機<b class='flag-5'>開發</b>和帶<b class='flag-5'>操作系統開發</b>的區別

    如何選擇您的嵌入式系統操作系統操作系統特性

    libraries, security, and maintainability also play an essential role. 嵌入式系統開發人員如今可以使用范圍廣泛的操作系統。當然
    的頭像 發表于 07-14 08:17 ?861次閱讀

    聊聊操作系統

    說到操作系統,大家都不會陌生。我們天天都在接觸操作系統——用臺式機或筆記本電腦,使用的是windows和macOS系統;用手機、平板電腦,則是android(安卓)和iOS系統
    的頭像 發表于 05-12 11:13 ?1418次閱讀
    聊聊<b class='flag-5'>操作系統</b>
    主站蜘蛛池模板: 亚洲精品无码葡京AV天堂| 亚洲黄色高清| 人曽交Z00Z0OA片| 亚洲 欧美 日韩 卡通 另类| 亚洲欧美一区二区三区九九九| 中文字幕在线视频观看| c了瑜伽老师嗷嗷叫一节课视频| 国产成久久免费精品AV片天堂| 国产乱国产乱老熟300部视频| FREECHINESE东北群交| 亚洲精品视频在线观看视频| 好姑娘BD高清在线观看免费| 校花爽好大快深点h| 国产小视频在线高清播放| 中文人妻熟妇精品乱又伧| 亚洲国产成人在线| 强行撕开衣服捏胸黄文| 芳草地社区在线视频| 亚洲精品无码不卡| 热久久2018亚洲欧美| 国产啪精品视频网免费| 公交车轮C关老师| 国产成人免费手机在线观看视频| 菠萝蜜国际一区麻豆| 24小时日本高清免费看| 亚洲国产中文字幕在线视频| 日韩欧美 亚洲视频| 欧美18videosex性欧美老师| 老师在讲桌下边h边讲课| 国内精自品线一区91| 韩国和日本免费不卡在线| 国内外成人免费在线视频| 久久se视频精品视频在线| 吉吉影音先锋av资源网| 精品久久伦理中文字幕 | 青青草A在在观免费线观看| 日韩一卡二卡三卡四卡免费观在线 | 午夜国产羞羞视频免费网站| 小草影院免费| 99热.com| 国产亚洲精品久久播放|