前言
哈喽,我是子牙,一个很卷的硬核男人。喜欢研究底层,聚焦做那些大家想学没地方学的课程:手写操作系统、手写虚拟机、手写编程语言…
今天我们将站在一个自学者的角度来聊聊如何实现自己的操作系统。并为大家推荐几本能够帮助你巩固知识,修炼内功的书籍,这些书籍涵盖了操作系统的核心概念、设计原理和实践技巧。如果你能够啃得下来,对于你的技术提升绝对是一个质的飞跃。
同时我也为大家整理好了这些电子书的下载地址,以及开发操作系统的环境搭建打包文件,都一同贴在了文章末尾,希望能够帮助到梦想实现自己操作系统的技术人。(声明:分享只为学习交流,请勿用于商业用途)
我的学习心得
在此之前我想先聊下自己的学习经历与心得。当初为什么学底层?因为我深知自己短板,学历不行,所以就必须要在技术上碾压别人,才能在圈子内立足。
但是底层学起来确实难,而且有时候遇到问题,网上根本找不到答案。现在如此,就更别提十年前的互联网环境了,连分享技术的博客都很少。
在自己的不断的自学摸索过程中,走了很多弯路,费时又费力!所以最后还是选择了报班学习,我的老师就是红手指的首席科学家唐老师,前瑞星杀毒的技术专家,虚拟化领域的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”发在评论区
分享地址
以上就是针对自学的小伙伴们如何手写操作系统,整理的书籍资料以及操作系统开发环境。
最后也希望大家都能实现自己的技术梦,我们下期再见