01 解开Linux操作系统的面纱
什么是操作系统?
- 操作系统是用户和计算机的接口,同时也是计算机硬件和其他软件的接口;
- 用户程序是运行在操作系统之上的
- 操作系统的功能包括管理计算机系统的硬件、软件及数据资源,控制程序运行,改善人机界面,为其他应该软件提供支持等,使计算机系统所有资源最大限度地发挥作用,提供了各种形式的用户界面,使用户有一个好的工作环境,为其他软件的开发提供必要的服务和相应的接口
常说的Linux和Linux内核关系
1.os是一种管理计算机软硬件资源的系统软件,而kernel是os最基本的部分,也就是说,两者是包含关系。os是接口,内核是一个操作系统的核心
2.内核用于管理系统资源,例如提供对软件层面的抽象(例如对进程、文件系统、同步、内存、网络协议等对象的操作和权限控制),和对硬件访问的抽象(例如磁盘,显示,网络接口卡(NIC));操作系统,在内核的基础上有延伸,包括了提供基础服务的系统组件。
3.一个内核不是一套完整的操作系统,现在默认linux为linux内核,这是由于历史源因造成的,实际上一般来讲,一个Linux发行版本出来包括Linux内核之外,还包含大量的软件(套件),比如软件开发工具,数据库,Web服务器(例如Apache),X Window,桌面环境(比如GNOME和KDE),办公套件(比如OpenOffice、org)等等。
对于每一个进程,最上面标注出来的部分都是固定的,也就是说,确保了每一个进程都能调用os内核程序来完成自己的操作。
参见:内核和操作系统的区别https://zhuanlan.zhihu.com/p/54665833
详细的架构图如下:
注意用户可以直接调用系统也可以通过函数库,一般来讲会有个缓冲区的问题,如不了解内核,就使用函数库就好了。
LINUX的历史
操作系统发展杰出贡献者
计算机与数字电路发展史
Linux发展简图
Linux常见分支
用户系统占比
服务器操作系统占比
为什么要学LInux
- 大厂必须,但学校未必学,被大众忽视
- 走进Linux的世界,你才能成为合格的软件工程师
- 研究Linux内核代码,将学到的数据结构和设计模式落地实践
- 了解Linux生态,能让你事半功倍的学习
进阶路线
书籍推荐
《鸟哥的Linux私房菜》
《Unix高级编程》
微软和苹果发展史