当前位置: 首页 > news >正文

想自学写个操作系统,有哪些推荐看的书籍?

前言

哈喽,我是子牙,一个很卷的硬核男人。喜欢研究底层,聚焦做那些大家想学没地方学的课程:手写操作系统、手写虚拟机、手写编程语言…

今天我们将站在一个自学者的角度来聊聊如何实现自己的操作系统。并为大家推荐几本能够帮助你巩固知识,修炼内功的书籍,这些书籍涵盖了操作系统的核心概念、设计原理和实践技巧。如果你能够啃得下来,对于你的技术提升绝对是一个质的飞跃。

同时我也为大家整理好了这些电子书的下载地址,以及开发操作系统的环境搭建打包文件,都一同贴在了文章末尾,希望能够帮助到梦想实现自己操作系统的技术人。(声明:分享只为学习交流,请勿用于商业用途)

我的学习心得

在此之前我想先聊下自己的学习经历与心得。当初为什么学底层?因为我深知自己短板,学历不行,所以就必须要在技术上碾压别人,才能在圈子内立足。

但是底层学起来确实难,而且有时候遇到问题,网上根本找不到答案。现在如此,就更别提十年前的互联网环境了,连分享技术的博客都很少。

在自己的不断的自学摸索过程中,走了很多弯路,费时又费力!所以最后还是选择了报班学习,我的老师就是红手指的首席科学家唐老师,前瑞星杀毒的技术专家,虚拟化领域的TOP级人物。感兴趣的话也可以在网上搜一下。

我想要告诉大家的是:自学是一条孤独的勇者之路!注定长满了荆棘,如果你选择了这条路,就请不要放弃!不然中途而废,最后可能也只能在和朋友聊天的时候吹吹牛逼:当初我有想自己写个操作系统,这个想法是不是很大胆?

现如今我在行业技术圈内也算稍有成就,也走上了我的老师分享技术的道路,如果你也有和当初我一样的困境,也欢迎找我来学习。闲话就聊到这里,下面放干货,如果对你有帮助,也请记得多多点赞支持下

推荐书籍

《操作系统真象还原》(郑钢著)

这本书通过使用高级别硬件设计语言,深入讲解了操作系统的实现原理和内部机制。它涵盖了操作系统的各个组成部分,包括进程管理、内存管理和文件系统等。它将帮助您更好地理解操作系统的底层工作原理。

《操作系统概念》(Abraham Silberschatz, Peter Baer Galvin, Greg Gagne著)

这本书是操作系统学习的经典教材。它介绍了操作系统的基本概念、进程管理、内存管理、文件系统和网络等核心主题。它为初学者提供了全面的操作系统知识基础。

《深入理解计算机系统》(Randal E. Bryant, David R. O'Hallaron著)

-这本书关注计算机系统的各个层次,包括硬件、汇编语言和操作系统。它以清晰的语言和丰富的示例讲解了计算机系统的工作原理,对于理解和实践手写操作系统非常有帮助。

《操作系统:精髓与设计原理》(Remzi H. Arpaci-Dusseau, Andrea C. Arpaci-Dusseau著)

这本书深入探讨了操作系统的核心概念和设计原理。它以清晰的语言和丰富的案例说明,帮助读者理解操作系统的核心思想,并应用这些原理来设计和实现自己的操作系统。

《深入理解Linux内核》(DANIEL P BOVET & MARCO CESATI 著)

这本书详细解析了Linux内核的设计和实现。它探讨了内核的各个关键组成部分,如进程管理、内存管理、文件系统和设备驱动等。通过深入剖析Linux内核的源代码和内部机制,读者将对操作系统设计和实现有更深入的了解,并能够应用这些知识来手写操作系统。

操作系统搭建环境及使用手册

说下我的环境,也是我推荐的环境

  • 开发环境操作系统:Ubuntu16
  • 开发环境虚拟机:VMware最新版
  • 开发工具:clion(汇编、C语言,这一款足矣)
  • 运行虚拟机1:bochs2.7(用来单步调试汇编)
  • 运行虚拟机2:qemu(用来单步调试C语言)
  • 运行虚拟机3:VMware、vbox(打包成对应虚拟机的镜像即可运行)

如果你是Windows,推荐用这个环境。如果你是Mac,还是推荐你用这个环境。开发操作系统,用这个环境就对了

知道很多小伙伴,比较心急,就想直接上手写内核;还有的小伙伴,Linux玩得不熟,但也有一颗写操作系统的心……

综上,我把我的环境打包成了镜像,你下载过去,解压后就能直接运行起来,实现操作系统开发自由,小伙伴可以把“666”发在评论区

分享地址

以上就是针对自学的小伙伴们如何手写操作系统,整理的书籍资料以及操作系统开发环境。

最后也希望大家都能实现自己的技术梦,我们下期再见

 


 

http://www.lryc.cn/news/69554.html

相关文章:

  • 深入理解Java虚拟机:JVM高级特性与最佳实践-总结-7
  • ES6中flat与flatMap使用
  • 苹果手机、电脑如何进行屏幕录制?苹果录屏功能在哪?
  • 什么是研发 Lead Time?我悟了!
  • android 窗口焦点介绍
  • 研发工程师玩转Kubernetes——构建、推送自定义镜像
  • [网络安全]DVWA之XSS(Stored)攻击姿势及解题详析合集
  • VP记录:Codeforces Round 873 (Div. 2) A~D1
  • 【C++】函数提高
  • 【可持续能源:让我们迈向绿色、可持续未来的道路】
  • ES6中数组新增了哪些扩展?
  • 【算法】动态规划
  • HNOI2014 世界树
  • 在MyBatis XML文件中处理特殊符号的方法,如“>”、“<”、“>=”、“<=”这些符号XML会报错如何处理
  • 第三章--第一篇:什么是对话系统?
  • 项目基础搭建
  • PFCdocumentation_FISH Rules and Usage
  • 如何完美卸载VS2015(2023年5月份实测有效)
  • JavaScript如何声明和定义函数
  • 微信小程序 WebSocket 通信 —— 在线聊天
  • VMware快照:简化虚拟化环境管理与数据保护
  • 图的最短路径
  • RHCE----Shell变量和引用
  • 【Redis】聊一下缓存雪崩、击穿、穿透、预热
  • 全景描绘云原生技术图谱,首个《云原生应用引擎技术发展白皮书》发布
  • 【Python共享文件】——Python快速搭建HTTP web服务实现文件共享并公网远程访问
  • Mysql数据库分库分表
  • SpringBoot热部署插件原理分析及实战演练
  • 【C++ 入坑指南】(10)函数
  • P2233 [HNOI2002]公交车路线