深入理解linux系统

别人要求“深入理解linux系统,熟悉apache、Nginx、tomcat、keepalive、hadoop等常用工具”,我就来边学边写,深入理解。

深入理解linux系统

linux是一种操作系统,操作系统作用是管理计算机硬件资源,提供系统调用便于用户使用计算机资源。计算机硬件资源包括cpu、内存、磁盘、网络、输入输出。操作系统要控制cpu,包括使用cpu进行运算和切换cpu运算内容。操作系统控制存储器,存储器包括寄存器、cpu缓存、内存、磁盘及其他外部设备。操作系统为存储器存储空间编号,cpu内部的寄存器有固定的编号,数量少;cpu缓存和内存需要编号才能被cpu指令读写。每一个地址编码位数由系统总线宽度控制,总线宽度表示cpu一次能读取二进制位的个数。不同位数总线决定了cpu内存寻址空间即可用最大内存数,8位能识别2^8(256bit),16位内存上限64kbit,32位内存上限4Gbit(2^30*4),64位内存上限2^14P。cpu的寻址空间需要保留一部分给硬件(显存地址)。操作系统格式化磁盘,用于保存文件系统在磁盘中。不同的文件系统有不同的地址编码方式和读写模式,fat32链式寻址,ext2采用门牌号方式通过inode标注存储块。
计算机的硬件按照处理器指令集不同分为精简指令和复杂指令计算机。intel、AMD采用精简指令,ARM采用另一套。不管cpu指令集类型,所有计算机都是冯诺依曼计算机,即面向存储器编程的计算机特点是共享数据,串行执行。其他还有量子计算机、并行计算机等,非主流。

linux系统是由内核-系统调用-用户界面三层组成,像半径不同的三个同心球,内核在最里面。中间层是系统调用,将内核整理的计算资源(cup、内存、磁盘、IO)封装成方便的调用的方式。最外层是用户空间,用户通过系统调用使用计算资源。常用linux发行版本有redhat、centos、debain、ubuntu、suse、fadra,都是基于相同的内核进行剪裁再加上软件管理软件(apt、yum)发行一个开箱即用的系统。
linux内核分为5个子系统,进程管理、内存管理、虚拟文件系统(将硬盘、输入输出设备、显示设备抽象为文件操作接口)、网络子系统、IPC进程见通信。

apache

apache是一个软件基金会,最著名的软件就是Apache HTTP Server.
[源码安装过程]

参考链接

信息源https://www.lagou.com/jobs/3278242.html
linux架构:http://www.codesec.net/view/352057.html