那些年追过的Linux
Linux的诞生
“使用minix操作系统的各位,大家好!
我正在为386(486)AT clones写一个(自由的)操作系统(只是爱好而已,不会和GNU一样成为广泛且专业的操作系统)。这个计划从4月份开始酝酿,现在已做好准备。我希望得到人们关于minix优缺点的任何反馈意见,因为我的操作系统和它有类似的方面(因为可行性方面的原因,两者的文件系统物理布局相同)。 我刚刚把bash(1.08)和gcc(1.40)移植到了系统上,而且看来运行得很好。这意味着我可以在几个月内我就可以把它变得有实用性了。我想知道大家想要些什么特色。欢迎提任何的建议,但是我不保证我会实现你的建议:-)
Linus (torvalds@kruuna.helsinki.fi)
另:是的,它没有包含任何minix的代码;它的文件系统还是一个多线程的。它没有可移植性(它利用了386的任务调度算法等),而且它很可能永远只会支持AT的硬盘(我只有这种硬盘:-( )”
——— Linus Torvalds
我与Linux
Linux这个让IT人员有爱又恨的东西,我愿称之为计算机发展史上最伟大的创作。鄙人从大二开始接触linux,依稀记得在桌面版的Vware各种安装CentOS的画面,还专门买了《鸟哥的Linux私房菜》这本比砖头还厚的书反复研读~
如果说作为一名计算机专业的学生而言,入门计算机是从C语言开始的话,而我一定是从Linux开始的,因为C语言知识在我看来,只是我知道了一个程序到底是什么,而Linux则让我初窥了计算机世界的一角。
历程
我学习linux的路径大致如下,由上至下:
- 基本命令
- 磁盘存储
- Shell编程
- 计算机网络(Llinux网络的各种玩法)
- 各种开源网关(httpd、nginx、haproxy)
- 虚拟化
- 容器化
可能有遗漏的地方,凭记忆先写这些吧
为什么要重学?
严格意义上讲不算重学,只不过觉得虽然自己工作了几年,但是对于有些东西的认识还是浮于表面。这里引用“耗子叔”—陈皓的一句话:
“打牢基础,以不变应万变,不管世界怎样变化,我都能很快适应它。基础的重要程度对于你能够飞多高是相当有影响的,懂原理的人比不懂原理的人能做出来的事情或是能解决的问题完全是两个层级的”
底层、原理这些是计算机建筑中的基石。新技术层出不穷,作为一名IT行业的社畜,我认为还是要打牢基础,因为我们没有精力去了解每一个新技术、新产品。唯有“以不变应万变”,抓住其本质。
我为自己制定了一个为期两个月的linux内核学习计划,主要从以下方面来分步学习:
- 系统初始化
- 进程管理
- 内存管理
- 文件系统
- 输入输出系统
- 进程间通信
- 网络系统
- 虚拟化
- 容器化
一共9个知识块,也就是大概一周学习一个模块。希望能够坚持下去,共勉~
推荐资料
- 《Linux命令行与Shell脚本编程大全》
- 《Linux内核的设计与实现》
- 《The AWK Programming Language》
- 极客时间《趣谈Linux操作系统》专栏
最后
致敬Linus Torvalds,伟大的先驱者
/