linux学习
Linux shell
Linux四个部分
- Linux内核
- GUN工具
- 图形化桌面环境
- 应用软件
Linux系统的核心是内核,内核控制着计算机上的所有的硬件和软件。在必要时分配硬件,并根据需要执行软件。
内核的功能 - 内存管理功能
- 软件程序管理
- 硬件设备管理
- 文件系统管理
系统内存管理:
操作系统的主要功能之一就是内存管理,内核不仅管理服务器上的可用物理内存,还可以创建和管理虚拟内存。
内核上通过硬盘上的内存空间来实现虚拟内存,这块区域称为交换空间。内核不断的在交换空间和实际的物理内存之间反复交换虚拟内存中的内容。这使得系统以为它拥有比物理内存更多的可用内存。
内存存储空间按组划分了许多块,这些块儿称作页面,内核将每个内存页面放在物理内存或交换空间。然后,内核会维护一个内存页面表,指名那些页面位于物理内存,哪些页面被换到了磁盘上。
内核会记录哪些内存正在使用中,并把一段时间未访问的页面复制到交换空间区域,即使还有可用内存,当程序要访问一个已被换出的内存页面时,内核必须从物理内存换出另外一个内存页面给它让出空间,然后从交换空间换入请求的内存页面。只要linux正在进行,为内存中的内存页面的过程就不会停止
软件程序管理:
Linux操作系统将运行中的程序称为进城。进程可以在前台运行,将输出显示在屏幕上,也可以在后台运行,隐藏到幕后。内核控制着linux系统如何运行在系统上的所有进城。
内核创建了第一个进城init来启动所有其他进程。内核启动,将init加载到虚拟内存中,内核再启动其他进程时都会在虚拟内存中新分配一块专有的区域来储存到该进程用到的数据和代码。
一些Linux发行版用一个表管理在系统开机时要自动启动的进城。在linux系统上,这个表通常位于/etc/inittab/中。
另外一些系统则采用/etc/init.d目录,将开机时启动或停止某个应用脚本放在这个目录下,这些脚本通过/etc/rcX.d目录下的入口启动,这里X代表运行级。
Linux操作系统的init系统采用了运行级。运行级决定了init进程运行/etc/inittab/文件或/etc/rcX.d定义好的某些特定类型。Linux系统有5个启动运行级。
运行级为1时,只启动基本的系统进程以及一个控制台终端进程,我们称之为单用户模式。这种模式只有在系统有问题时进行紧急的文件系统维护,并且只有管理员才能进入。
运行级为3时候大多数进程都会启动。运行级为5时允许一通总图形化登录窗口。
Linux通过启动运行级来控制整个系统的功能。
用ps命令可以查看在系统上的进程
硬件设备管理:
任何与linux系统通信的设备,都需要在内核代码中加入其驱动代码。驱动代码程序相当于应用程序和硬件设备的中间人。
Linux内核中有两种方法插入设备驱动代码: - 编译进内核的设备驱动代码。
- 可插入内核的驱动代码。
开发人员提出了内核模块的概念。他允许将驱动代码插入到运行中的内核中而无需重新编译代码,还允许将不用的设备从内核模块中取走。
Linux系统将硬件设备当成特殊文件,称为设备文件设备文件分为三类: - 字符型设备文件
- 块设备文件
- 网络设备文件
字符型设备文件是指数据每次处理一个字符设备,大多数类型的调制调解器和终端都是作为字符型设备文件创建的。块设备文件是指大块处理数据时的设备,比如硬盘。网络设备是指数据包发送接受数据。包括网卡和一个特殊的回环设备,这个回环设备允许系统使用常见的网络编程协议同自身通信。
Linux系统为每个设备提供了一个称为设备节点的特殊文件,与设备所有的通信都通过设备节点的完成。每个设备节点都有唯一的数值对让内核识别,数值包括一个主设备号一个次设备号。类似的设备划分到主设备号下次设备号用于标识主设备组下的某个特定数组。
文件系统管理:
不同于一些其他操作系统,内核支持不同类型的文件系统从硬盘中读写数据。除了自有的诸多文件系统外,linux还支持其他的操作系统采用的文件系统中读写数据。内核必须在编译时就加入对所有可能用到的文件系统的支持。Linux服务器中所访问的所有的硬盘都必须格式化文件系统中的一种
Linux内核采用虚拟文件系统作为和每个文件系统交互的接口。这为linux内核同任何类型的文件系统通信提供了一个标准接口,当每个文件系统都被挂载和使用时,虚拟文件系统将信息都换缓存在内存中。