後端程式員就靠它吃飯了,推薦一份夯實基礎的操作系統書單!

来源:https://www.cnblogs.com/AntCoder/archive/2020/05/16/12898598.html
-Advertisement-
Play Games

​ 學習編程,操作系統是你必須要掌握的基礎知識,那麼操作系統到底是什麼呢? 這還用說麽,操作系統不就是Windows、Linux、Mac、IOS、Android、IOS這類我們天天都在用的東西麽? 此話不假,但是操作系統作為電腦科學里的一門基礎學科,肯定不能這麼接地氣對不對,總的來點高大上的概念, ...


學習編程,操作系統是你必須要掌握的基礎知識,那麼操作系統到底是什麼呢?

這還用說麽,操作系統不就是Windows、Linux、Mac、IOS、Android、IOS這類我們天天都在用的東西麽?

此話不假,但是操作系統作為電腦科學里的一門基礎學科,肯定不能這麼接地氣對不對,總的來點高大上的概念,震懾一下你們吧。

根據百度百科的介紹,操作系統是管理電腦硬體與軟體資源的電腦程式,同時也是電腦系統的內核與基石。操作系統需要處理如管理與配置記憶體、決定系統資源供需的優先次序、控制輸入設備與輸出設備、操作網路與管理文件系統等基本事務。操作系統也提供一個讓用戶與系統交互的操作界面。

這個介紹足夠高大上了吧,那麼到底啥是操作系統呢,簡單來說,操作系統就是管理電腦硬體和軟體資源的一種軟體,電腦里的硬碟、滑鼠鍵盤、顯示器等設備,都要由它來管理,你打開游戲、打開瀏覽器或者是看電影,也都要通過操作系統來執行。

沒有了操作系統,電腦就失去了靈魂,只是一堆硬體而已。

瞭解了操作系統的基本概念之後,接下來我們再來看看,為什麼我們要學習操作系統呢?

首先,當然是因為面試要考啦。

其次,無論你學習什麼編程語言,和都避免不了和操作系統打交道,比如你學習Java,用到多線程技術,實際上操作系統才是負責管理進程和線程的,所以Java里的線程常常要和操作系統的線程或者進程一一對應。

此外,你會學習到記憶體分配的知識,比如c++里可以直接分配一段記憶體,此時實際上是調用操作系統提供的API進行記憶體分配。

操作系統不僅負責管理進程和線程的調度、記憶體的分配和管理,以及設備和IO的處理,還要負責管理文件系統和網路。

最重要的是,操作系統要負責把代碼從硬碟載入到記憶體,再告訴cpu去讀取記憶體代碼,這是一切電腦運行的基礎。

如果不懂操作系統,你在未來學習編程語言的高級特效,涉及到線程進程調度,記憶體分配,或者是學習Linux相關的知識時,都會一頭霧水,所以,只有學會了操作系統,我麽才能夠更好地學習其他語言和技術。

今天我們就來推薦一份關於操作系統的優質書單!請查收!

操作系統書單

深入理解電腦系統

深入理解電腦系統(第2版) 這本書的全名是:Computer Systems:A Programmer’s Perspective,所以它又被稱為 CSAPP。如果想打下扎實的電腦基礎又不想把操作系統電腦結構編譯原理這些書統統讀一遍,閱讀深入理解電腦系統是最有效率的方式。

Randal E. Bryant,1981年於麻省理工學院獲得電腦博士學位,1984年至今一直任教於卡內基-梅隆大學。

David R. O’Hallaron卡內基梅隆大學電子和電腦工程系教授。

操作系統導論

這是一本關於現代操作系統的書。全書圍繞虛擬化、併發和持久性這3個主要概念展開,介紹了所有現代系統的主要組件(包括調度、虛擬記憶體管理、磁碟和I/O子系統、文件系統 )。

本書共50章,分為3個部分,分別講述虛擬化、併發和持久性的相關內容。本書大部分章節均先提出特定的問題,然後通過書中介紹的技術、演算法和思想來解決這些問題。筆者以對話形式引入所介紹的主題概念,行文詼諧幽默卻又鞭辟入裡,力求幫助讀者理解操作系統中虛擬化、併發和持久性的原理。

本書內容全面,並給出了真實可運行的代碼(而非偽代碼),還提供了相應的練習,適合高等院校相關專業教師教學和高校學生自學。

作者簡介

雷姆茲·H.阿帕希杜塞爾(Remzi H.Arpaci-Dusseau)和安德莉亞·C.阿帕希杜塞爾
(Andrea C.Arpaci-Dusseau)夫婦是美國威斯康星大學電腦科學教授。二人都從事電腦操作系統方面的教學和研究。

30天自製操作系統

《30天自製操作系統》是一本兼具趣味性、實用性與學習性的操作系統圖書。作者從電腦的構造、彙編語言、C語言開始解說,讓讀者在實踐中掌握演算法。在這本書的指導下,從零編寫所有代碼,30天後就可以製作出一個具有視窗系統的32位多任務操作系。

《30天自製操作系統》適合操作系統愛好者和程式設計人員閱讀。

作者簡介

川合秀實(Hidemi Kawai),生於1975年,是一位以“輕量化”編程思想見長的“非主流”開發者。2000年因自行開發的OSASK項目而名聲大噪。OSASK是一個開源的32位微型操作系統,它並非以Linux等內核為基礎,而是完全從零開始開發,在一張軟盤的容量下實現了GUI、多任務、多語言等高級特性,啟動時間只需1秒。本書的內容可以看成是作者以OSASK為藍本,教會讀者從零開始開發一個操作系統,同時可以讓初學者在編寫操作系統的過程中,瞭解操作系統背後更多的知識。

更多優質書單推薦!

搞定JVM基本原理和麵試題,看看這幾本書妥妥夠了!

還搞不定Java多線程和併發編程面試題?你可能需要這一份書單!

這份Java Web必讀書單,值得所有Java工程師一看!

【程式員書單】一個為程式員推薦好書的公眾號。每天為你pick精品書單,優質學習資源和軟體工具。關註前沿技術與行業資訊,更關註你的自我提升。作者黃小斜是阿裡巴巴 Java 工程師,希望陪你一起一年讀50本書!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1、Web開發分類與區別 人們通常將Web分為前端和後端,前端相關的職位有前端設計師(UI/UE),前端開發工程師,後端相關的有後端開發工程師。 2、技術棧區別 在各大招聘網站上,公司對前端開發工程師的要求莫過於精通HTML,CSS,JS,有良好的交互設計能力等。再看公司對後端開發工程師的要求: 比 ...
  • # jQuery工具方法 - 1.$.type() 判斷數據類型 $.isArray() $.isFunction() $.isWindow() ```js console.log($.type(undefined));//undefined console.log($.type('abc'));/ ...
  • 前端開發框架從最開始的jquery時代,到後來backbone,angular1,再到現在vue和react兩分天下,也才用了不到十年的光景。 最開始jquery是為瞭解決瀏覽器相容性的問題而火起來的,準確的說它只是一個庫,而不能成為框架。但隨著前端頁面的複雜度的增加,漸漸數據驅動和mv*的思想開始 ...
  • 【目錄】 一、分支結構 二、迴圈結構 三、JavaScript 對象 一、分支結構 二、迴圈結構 三、JavaScript 對象 ...
  • 【目錄】 一、變數的定義 二、變數的命名規範 三、基本數據類型 1、值類型 2、引用類型 四、運算符 1、算數運算符 2、賦值運算符 3、比較運算符 4、邏輯運算符 5、三目運算符 一、變數的定義 # 在js中 首次定義一個變數名的時候需要用關鍵字聲明 1.es5 :關鍵字var 定義變數,沒有常量 ...
  • 單例模式是保證一個類的實例有且只有一個,在需要控制資源(如資料庫連接池),或資源共用(如有狀態的工具類)的場景中比較適用。如果讓我們寫一個單例實現,估計絕大部分人都覺得自己沒問題,但如果需要實現一個比較完美的單例,可能並沒有你想象中簡單。本文以主人公小雨的一次面試為背景,循序漸進地討論如何實現一個較 ...
  • ​ _文/黃小斜_ _轉載請註明出處_ 新手學習電腦並非易事,作為一個自學編程的過來人,深知打好電腦基礎的重要性,缺少了堅實的電腦的基礎,往往你也難以往上走,即使學了再多高大上的技術,也都是在沙臺上築高樓,缺少根基,搖搖欲墜。 學好電腦基礎,方法方式很多,有的同學可以選擇聽課,有的同學可以到 ...
  • ​ 如果想看更多技術好書,可以關註微信公眾號【程式員書單】作者黃小斜,目前是阿裡Java工程師,業餘時間廣泛讀書,在公眾號里除了分享程式員必讀的技術書籍之外,也會推薦很多關於個人成長、投資理財等方面的書籍。你煩惱的每個問題,書中都有答案。 在這裡,我們將為你推薦幫助程式員以及互聯網從業者自我提升的各 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...