【实验目的】
1、学会Linux网络的基本配置;
2、掌握Linux基本的网络应用;
3、Linux启动过程
4、Linux下C语言编程
【实验步骤】
(1)说明/etc/sysconfig/network-scripts/ifcfg-ens33, /etc/resolv.conf, /etc/hosts, /etc/services四个文件的作用。
1、/etc/sysconfig/network-scripts/ifcfg-ens33
在Linux系统中,系统网络设备的配置文件保存在/etc/sysconfig/network-scripts目录下,其中文件ifcfg-eno16777736包含一块网卡的配置信息,文件ifcfg-lo包含回路IP地址信息。
2、/etc/resolv.conf
/etc/resolv.conf文件是由域名解析器(resolver,一个根据主机名解析IP地址的库)使用的配置文件。
3、/etc/hosts
当计算器启动时,在可以查询DNS以前,计算机需要查询一些主机名到IP地址的匹配,这些匹配信息存放在/etc/hosts文件中。在没有域名服务器的情况下,系统上的所有网络程序都通过查询该文件来解析对应于某个主机名的IP地址。
4、/etc/services
/etc/services文件定义了Linux系统中所有服务的名称、协议类型、服务的端口等信息。/etc/services文件是一个服务名和服务端口对应的数据库文件。
(2)举例说明traceroute、ping、ifconfig、netstat、tcpdump命令的作用。
1、traceroute
使用traceroute命令可以显示数据包到目标主机之间的路径。traceroute命令使用户可以追踪网络数据包的路由途径,预设IPv4数据包大小是60字节,用户可以另外设置。
2、ping
3、ifconfig
4、netstat
5、tcpdump
(3)举例说明systemctl命令的用法。
启动sshd;
查看sshd服务当前的状态;
停止sshd服务;
重新启动sshd;
设置sshd服务开机自动启动;
查看所有加载的服务;
(4)Linux下C编程
说gcc编译器的作用。举例说明Linux环境下如何进行C语言编程。
(5)什么是进程? 进程有哪些特征? Linux进程有哪些分类?
举例说明ps命令的用法、top命令的用法。
Linux系统上所有运行的内容都可以称为进程。每个用户任务、每个系统管理守护进程都可以称为进程。
进程具有以下特征:
动态性:进程的实质是程序在多道程序系统中的一次执行过程,进程是动态产生、动态消亡的。
并发性:任何进程都可以同其他进程一起并发执行。
独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位。
异步性:由于进程间的相互制约,使得进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进。
结构特征:进程由程序、数据和进程控制块三部分组成。
多个不同的进程可以包含相同的程序:一个程序在不同的数据集里就构成不同的进程,能得到不同的结果;但是执行过程中,程序不能发生改变。
在Linux系统中有以下3种进程。
交互式进程:一个由Shell启动并控制的进程,交互式进程既可在前台运行,也可在后台运行。
批处理进程:与终端无关,安排在指定时刻完成的一系列进程。
守护进程:在引导系统时启动,以执行即时的操作系统任务,比如crond、rsyslogd、named等。
ps命令的用法举例:
top命令的用法举例:
(6)说明Linux系统的启动过程。(说明分为几个步骤,每个步骤都做了些什么工作)
Linux系统的启动是从计算机开机通电自检开始,一直到登录系统需要经过的多个过程。
1.BIOS自检
计算机在接通电源之后首先由BIOS进行POST自检,然后依据BIOS内设置的引导顺序从硬盘、软盘或光盘中读人引导块。BIOS的第一个步骤是加电POST自检,POST 的工作是对硬件进行检测。BIOS的第二个步骤是进行本地设备的枚举和初始化。BIOS由两部分组成:POST 代码和运行时的服务。当POST完成之后,它被从内存中清理出来,但是BIOS运行时服务依然保留在内存中,目标操作系统可以使用这些服务。
Linux系统通常都是从硬盘上引导的,其中主引导记录(MBR)中包含主引导加载程序。MBR是一个512字节大小的扇区,位于磁盘上的第一个扇区中(0道0柱面1扇区)。当MBR被加载到RAM中之后,BIOS就会将控制权交给MBR.
2.启动GRUB2
GRUB2是Linux系统中默认使用的引导加载程序,引导加载程序用于引导操作系统启动。当计算机引导操作系统时,BIOS会读取引导介质上最前面的512字节(主引导记录)。
3.加载内核
接下来的步骤就是加载内核映像到内存中,内核映像并不是一个可执行的内核,而是一个压缩过的内核映像。在这个内核映像前面是一个例程,它实现少量硬件设置,并对内核映像中包含的内核进行解压,然后将其放入高端内存中。如果有初始RAM磁盘映像,系统就会将它移动到内存中,并标明以后使用。然后该例程会调用内核,并开始启动内核引导的过程。
4.执行systemd进程
systemd进程是Linux系统所有进程的起点,在完成内核引导以后,即在本进程空间内加载systemd程序。systemd进程是所有进程的发起者和控制者。因为在任何Linux系统中,它都是第一个运行的进程,所以systemd进程的进程号(PID)永远是1。
5.初始化系统环境
Linux系统使systemd作为引导管理程序,之后的引导过程将由systemd完成。systemd 使用目标(target)来处理引导和服务管理过程。这些systemd里的目标文件被用于分组不同的引导单元以及启动同步进程。
(1)systemd执行的第一个目标是 default.target,但实际上 default.target目标是指向 graphical.target目标的软连接。graphical.target目标单元文件的实际位置是/usr/lib/systemd/graphical.target。
(2)在执行graphical.target目标阶段,会启动multi-user.target目标,而这个目标将自己的子单元存放在/etc/systemd/system/multi-user.target.wants目录中。这个目标为多用户支持设定系统环境。非root用户会在这个阶段的引导过程中启用,防火墙相关的服务也会在这个阶段启动。
(3)multi-user.target目标会将控制权交给basic.target目标。basic.target目标用于启动普通服务特别是图形管理服务。它通过/etc/systemd/system/basic.target.wants目录来决定哪些服务会被启动,basic.target目标之后将控制权交给sysinit.target目标。
(4)sysinit.target目标会启动重要的系统服务,比如系统挂载、内存交换空间和设备、内核补充选项等。sysinit.target目标在启动过程中会传递给local-fs.target和swap.target目标。
(5) local-fs.target和swap.target目标不会启动用户相关的服务,它只处理底层核心服务。这两个目标会根据/etc/fstab和/etc/inittab文件来执行相关操作。
6.执行/bin/login程序
login程序会提示使用者输入账号及密码,接着编码并确认密码的正确性,如果账号与密码相符,则为使用者初始化环境,并将控制权交给shell,即等待用户登录。
login会接收mingetty传来的用户名并将其作为用户名参数,然后login会对用户名进行分析。如果用户名不是root,且存在/etcc/nologin文件,login将输出nologin文件的内容,然后退出。这通常用来在系统维护时防止非root用户登录。只有在/etc/securetty中登记了的终端才允许root用户登录,如果不存在这个文件,则root可以在任何终端上登录。/etc/usertty文件用于对用户做出附加访问限制,如果不存在这个文件,则没有其他限制。
在分析完用户名后,login将搜索/etc/passwd以及/etc/shadow来验证密码以及设置账户的其他信息,比如主目录是什么?使用何种shell?如果没有指定主目录,则将主目录默认设置为根目录;如果没有指定shell,则将 Shell类型默认设置为/bin/bash。
login程序成功后,会向对应的终端再输出最近一次登录的信息(在/var/log/lastlog文件中有记录),并检查用户是否有新邮件(在/var/spool/mail/的对应用户名目录下),然后开始设置各种环境变量。对于bash来说,系统首先寻找/etc/profile脚本文件并执行它;然后,如果用户的主目录中存在.bash_profile文件,就执行它,在这些文件中又可能调用了其他配置文件,所有的配置文件执行后,各种环境变量也设好了,这时会出现大家熟悉的命令行提示符,到此整个启动过程就结束了。(7)什么是GRUB?
当计算机要引导操作系统时,BIOS会读取引导介质上最前面的主引导记录(MBR记录)。主引导记录本身要包含两类内容:引导加载程序和分区表。
GRUB是Linux系统默认的引导加载程序。在Linux加载一个系统前,它必须由一个引导加载程序中的特定指令去引导系统。这个程序一般是位于系统的主硬盘驱动器或其他介质驱动器上。
Linux安装程序允许用户快速、方便地配置引导加载程序,将其存放在主硬盘驱动的主引导记录中来引导操作系统。
GNU GRU是一个将引导加载程序安装到主引导记录的程序,主引导记录是位于一个硬盘开始的扇区。它允许位于主引导记录区中特定的指令来加载一个GRUB菜单或是GRUB的命令环境。这使得用户能够开始操作系统的选择,在内核引导时传递特定指令给内核,或是在内核引导前确定一些系统参数(如可用的RAM大小)。
GRUB支持直接和链式加载的引导方法。GRUB能用于几乎所有操作系统、绝大多数流行的文件系统以及几乎所有的系统BIOS所能识别的硬盘。
【实验总结】
通过本次实验,我对Linux中的进程与网络配置更加了解。进程是在自身的虚拟地址空间运行的一个单独的程序。要查看Linux系统中的进程信息,用户可以使用ps和top命令。用户可以在Linux系统中编辑相应的网络配置文件来完成配置工作,这些文件主要有/etc/sysconfig/network-scripts/ifcfg-eno1677773、/etc/resolv.conf、/etc/hosts与/etc/services。实践令我发现自身的不足,课下我会多加练习、勤查资料。