暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

第三章 Linux 基础

NetHunterPark 2018-11-17
156

# 第三章 LINUX 基础


在开始掌握 Kali Linux 之前,你必须对通用 Linux 比较熟悉。熟练的 Linux 知识会对你帮助很大,因为大部分的 web、email 以及其他互联网服务都运行在 Linux 服务器上。


在本章,我们将尽力覆盖 Linux 的基本知识,但是我们也假设你已经对电脑系统有一定的了解,包括电脑的组成,比如 CPU 、RAM 、主板、硬盘、设备控制器以及关联接口等。


章节内容:

  • Linux 是什么?做什么用?

  • 命令行

  • 文件系统

  • 实用命令

  • 本章总结

  • 本章练习

  • KLCP 知识点 #3


## 3.1 Linux 是什么?能干什么?


“Linux” 这个词经常被用来指整个操作系统,实际上,Linux 仅仅是操作系统的内核( kernel ),它是在系统启动的时候由启动加载器( boot loader )加载的,而启动加载器又是由预启动系统 BIOS/UEFI (注:BIOS基本输入输出系统 / UEFI 统一可扩展固件接口 )启动的。内核就好比是管弦乐队的指挥,它负责整个硬件系统和软件系统的协调一致和统一。主要职能包括管理硬件资源、进程、用户、权限和文件系统。内核对运行在其之上的所有程序提供了一种通用的基础定义,同时它自身运行在 ring 0 级别,也就是常说的内核空间。


用户空间

---------------------------------------

我们将运行在内核空间之外的所有一切空间称之为用户空间。

运行在用户空间中的许多程序都是来自于 GUN 项目的核心工程,他们大多数需要从命令行运行。你可以用这些工具创建自动化的脚本去完成许多任务。这些重要命令的更详细信息参见 3.4 小节 “有用的命令”。


让我们快速过一下 Linux 内核所处理的各式各样的任务吧。


### 3.1.1 驱动硬件


内核的首要任务就是控制电脑的硬件系统。当电脑加电的时候,它要对硬件进行监测和配置,也包括启动后的硬件设备插拔(比如,USB 设备)。它还会通过一个精简的编程接口让底层硬件对上层软件(托尔斯泰)可用,这意味着应用程序不用关心像主板的扩展槽是否有板卡插入这样的事情,而可以直接使用硬件资源。这个精简的编程接口还提供一个硬件抽象层,它允许像视频电话这类软件可以直接使用网络摄像机,而不用管它是什么型号,在哪里制造的。视频软件可以使用 Video for Linux (V4L) 接口实现对硬件的调用,内核会把接口发出的功能调用转换成网络摄像机硬件实际使用的硬件指令。


内核会将监测到的硬件信息导出到虚拟文件系统的 /proc/ 和 /sys/ 目录中。应用程序一般是通过在 /dev/ 目录下创建设备文件的方式来实现对硬件访问的。特定的文件代表了特定的设备,比如,硬盘( /dev/sda )、分区( /dev/sda1 )、鼠标( /dev/input/mouse0 )、键盘( /dev/input/event0 )、声卡( /dev/snd/* )、串口( /dev/ttyS* ),以及其他各种硬件。


Linux 的设备文件有两种类型:区块设备和字符设备。前者是典型的区块数据:它大小有限,你可以访问区块中任何位置的数据。后者大小不固定,表现出字符流的特性,你可以顺序读写字符,但是不能直接修改指定位置的数据。想要知道指定设备文件的类型,只需要查看 ls -l 命令输出结果行的第一个字母。b 代表区块型设备,c 代表字符型设备。


Black13eard$ ls -l /dev/vda /dev/ttyS0

crw--w---- 1 root tty    4, 64 Mar 12 11:28 /dev/ttyS0

brw-rw---- 1 root disk 253,  0 Mar 12 11:28 /dev/vda


和预期一致,硬盘设备和磁盘分区使用区块类型,而鼠标、键盘和串口设备使用字符类型。在这两种情况下,编程接口包含了可以被 ioctl 系统调用的相应设备命令。


### 3.1.2 统一文件系统


构建文件系统是内核的另一个重要职能。类 Unix 系统将所有的文件合并成一个单一的系统分层结构,这种方式可以让用户和应用程序通过层级地址来访问数据。


这种分层结构树的起点称之为“根”节点,用 “/ ” 字符表示。这个目录可以包含命名的子目录。比如,home 子目录表示为 /home/ 。这个子目录可以依次包含其他子目录,如此继续。每个目录都可包含保存数据的文件。因此,/home/Black13eard/Desktop/hello.txt  代表一个在根目录 “/ ” 下的 “home” 子目录的 “Black13eard” 子目录的 “Desktop” 子目录下的 “hello.txt” 文件。内核会将这个分层命名系统和磁盘存储位置对应映射起来。


和其他系统不同,Linux 只拥有一种类似的分层结构,并且可以将多个磁盘的数据集成在一起。其中一个磁盘作为根节点,其他磁盘则挂载( mount )在这个分层系统的其他目录下。磁盘挂载后,就可以通过挂载点进行访问了。这就允许将用户目录存储在一个单独的磁盘上,通常这个目录是 /home/ ,它包含了除 root 外的其他用户目录。一旦你将磁盘挂载到了 /home/ 下,磁盘上的文件就可以像往常一样访问了,像 /home/Black13ear/Desktop/hello.txt 这样的路径就是生效且可用的。


依据在物理磁盘上数据存储的方式,文件系统又分了很多格式。最常见的是 ext2 、ext3 和 ext4 ,当然还有其他的。比如,VFAT 就是 DOS 和 Windows 系统曾经使用的文件系统格式。Linux 也支持 VFAT 格式,这样硬盘就可以既在 Kali 下使用,也可以在 Windows 下使用。无论如何,你都需要先将硬盘处理成一种文件格式后才能进行挂载,这种处理过程就是常说的“格式化”。像 mkfs.ext3 ( mkfs 是 MaKeFileSystem 的简写)这样的命令就是专门处理格式化问题的。这类命令需要一个设备文件名作为格式化的参数,比如,/dev/sda1 ,表示需要格式化第一个磁盘的第一个分区。格式化操作是“破坏性”的,除非你想擦除系统、清空磁盘,否则一般只会运行一次。


还有一类叫做网络文件系统的,比如 NFS ,它不会将数据存储在本地磁盘上。相反,数据通过网络传输到服务器上存储起来,然后在需要的时候读取。多亏了文件系统对此过程的抽象处理,让我们不用担心磁盘是怎么连接上的,却依然可以用原有的方式对文件进行访问。


### 3.1.3 管理进程


一个进程是一个程序的运行实例,它需要内存来存储程序自身和应用数据。内核负责创建和跟踪进程。当一个程序运行时,内核首先会分配一些内存用来加载从文件系统中读取的可执行代码,然后启动代码的运行。内核同时还保存了关于此进程的信息,最常见的就是被称为“进程号”的 PID 。


和大多数现代操作一样,包括 Linux 在内的使用类 Unix 内核的操作系统都是支持多任务的。换句话说,这个特性允许操作系统同时运行多个进程。实际上同一时刻只有一个进程在运行(占用 CPU ),但内核会将 CPU 时间切片,然后以时间片为单位依次运行这些进程。由于这些切片时间非常短(都在毫秒级别),尽管它们只在自己的时间片处于活跃状态,其他时候都是空闲的,但看起来这些进程都是并行执行的。内核的工作就是调整整个时间分配策略来保持这种“并行”状态,同时又使整个系统性能最大化。如果时间片过长,程序可能不会像预想的那样反应迅速。如果时间片过短,则系统会因为过于频繁的切换进程而浪费时间。这个调度可以通过设置进程优先级来完成,高优先级进程可以比低优先级进程一次多运行几个时间片。


多处理器系统(及其衍生)

---------------------------------------

上面的描述也存在一些隐形的限制,对于一次只运行一个进程的情况并不总是这样,实际的限制是:每一个处理器核心( processor core )每次只能运行一个进程。对于多处理器、多核以及超线程系统就允许多个进程同时运行。同时间片系统( The same time-slicing system )被用来处理激活进程数大于可用处理器核心数的情况。实际上,一个基本的系统,即使是最空闲的系统,也总是有数十个处于运行状态的进程,这种情况很常见。


内核允许同一个程序运行多个独立实例,但是每一个实例都只能使用自己的时间片和内存空间,因此它们的数据也都是独立的。


### 3.1.4 权限管理


类 Unix 系统支持多用户、用户组以及相应的权限控制。大多数时候,一个进程使用启动它的用户来进行标记。这个进程只执行它的启动者发出的命令。比如,打开一个文件就需要内核去检查进程的权限情况(关于此例子的更多细节参见 3.4.4 小节 “管理权限” )。



为了能够让大家边学习边实践,达到一起读书的目的,公众号将尽量保持一周两到三篇的速度更新,欢迎大家持续关注。


另外,部分图片来自网络,如有侵权请联系作者删除。



破阵子

醉里挑灯看剑

梦回吹角连营

八百里分麾下炙

五十弦翻塞外声











猎客

·

公元




公众号:NetHunterPark

关注移动安全及渗透测试

文章转载自NetHunterPark,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论