操作系统学习之路——开篇
前言
之前更新了两次设计模式相关博客,后续的一系列设计模式博客决定缓一缓,因为实在是对操作系统太感兴趣了,每每勾起我挑战的欲望。以后在学习操作系统之余,穿插着更新一些设计模式方面的内容。
因为是非科班出身,我本身对操作系统等底层知识也是小白级别,写这个目的就是为了记录一下,另外将自己所学及时输出,梳理自身的薄弱点加以增强(卷起来)。
1.架构与平台的选择
目前初期我决定先学习传统x86结构的相关知识,ARM架构等我熟悉了以后再学习,操作系统选择win+虚拟机,本身有一台Mac但是M1芯片,底层会有点操蛋,还是传统X86架构的CPU兼容性好。
2.前置知识
操作系统底层毕竟是基础层,一般采用C语言编写,部分汇编代码,所以如果有这方面的基础最好,梳理下,我们要掌握的东西:
1.熟悉计算机组成原理,计算机的硬件构成,了解这些硬件的基本原理。
2.了解X86保护模式下的一些名词和概念,至少熟悉老掉牙的Intel8086.
3.熟悉Linux的常用命令,能在Linux下进行基本的系统程序编写
4.掌握简单的X86汇编语言,能读懂和编写简单的汇编程序(至少能看懂个大概)
5.熟练掌握C语言的程序编写,对C语言各种语法特性有一定的理解。
6.理解掌握C语言的编译过程,了解基本的链接原理。
以上这些知识点,我也有些没有掌握,比如熟练的C程序编写,对我来说就是个难点,毕竟笔者半路出家只学过Java与python(快忘干净了)接下来可能更新的内容就会设计C语言的知识,作为自己学习的记录整理。毕竟以后Java深入到JVM层面,我感觉最好还是需要一定的C语言与系统基础的。
3.切忌浮躁,坚持不懈
当今社会,物欲横流,肯静下心来钻研一项技术的人真的没有太多,一切向钱看齐,笔者很反感这样的现状,但也无力改变什么,只能在内心告诫自己,
这里推荐几本前置知识的书籍,有的我看过,有的是极客大佬们推荐的,我还未学习到:
《编码——隐匿在软硬件背后的语言》、《汇编语言》王爽、《x86从实模式到保护模式》、《深入理解计算机操作系统》、《现代操作系统》、《C语言程序设计现代方法》等等,感觉对操作系统很感兴趣的人,都是很有眼光、有目标的人,不需要再推书方面多做赘述。
不过,有些水平跟我差不多的小白读者,可能看到这就被吓退了,无需如此,咱们一点点来,干就完了,发挥一点愚公移山的精神。
骐骥一跃,不能十步,驽马十驾,功在不舍!
------------------------------------------未完待续