一、单项选择题
1、计算机硬件系统和软件系统组成,哪个描述正?( C)
A、软件系统由 CPU, 内存, IO 设备组成;硬件件系统由系统软件和应用软件组成。
B、软件系统由 CPU,应用软件组成;硬件件系统由系统软件和内存, IO 设备组成。
C、硬件系统由 CPU, 内存, IO 设备组成;软件系统由系统软件和应用软件组成。
2、哪个属于三种报文流向之一?( )
A、流入本机:PREROUTING--> INPUT-->用户空间进程
B、转发:用户空间进程-->OUTPUT--> POSTROUTING
C、流出主机:PREROUTING--> FORWARD -->POSTROUTING
3、mysql 索引的缺?( B)
A、索引可以降低服务需要扫描的数据量,减少了 IO 次数
B、占用额外空间,影响插入速度
4、swappiness 内核参数说明正的是(B )
A、当内存使用率达到 swappiness 时,会启用交换分区
B、当内存使用率达到 100-swappiness 时,会启用交换分区
二、多项选择题
1、服务器 3 大系统?( ABD)
A、Windows
B、Linux
C、`unix
D、Bsd
2、shell 命令的类型( AB)
A、内部
B、外部
3、Linux 常用文件类型?( ABCDE)
A、文件
B、目录
C、符号
D、块
E、字符设备, 管道,套接字
4、RAID10 特性描述正确的是?(BCD )
A、无安全性
B、综合 RAID01 优点,理论速度快
C、适用于大型数据库,服务器
D、最少 4 个硬盘
5、程序 ABI 二进制接口有?( AB)
A、ELF
B、PE
6、内核功用?( ABCD)
A、进程管理
B、内存管理
C、文件系统管理
D、网络功能,驱动,安全功能
7、进程分类?( AB)
A、守护进程
B、前台进程
8、非对称加密算法介绍正确的是?( AB)
A、密钥成对出现
B、公钥加密数据,只能配对的私钥解密。
C、加密解密相同密钥
三、判断题
1、一个完整的计算机系统由硬件(Hardware)系统和软件(Software)系统两大部分组成(√ )
2、十进制数是 2 的 n 次方,转换的二进制是 1 个 1,和 n-1 个 0 组成?( ×)
3、Linux 安全上下文中,运行程序的身份始终是 root?(× )
4、字符集决定字符与二进制映射关系。编码解定存储空间大小。(√ )
5、操作系统中负责管理和存储文件信息的软件结构称为文件管理系统,简称文件系统(√ )
6、静态链接就是生成 so 模块,运行时动态加载( ×)
7、内存不足指程序中用 malloc 或 new 申请了一块内存,但是没有用 free 或 delete 将内存
释放,导致这块内存一直处于占用状态( ×)
8、关系型数据库的关系是 表中的每一行,又称为一条记录 record(√ )
四、问答题
1、完整的类 UNIX 操作系统组成?
- 内核(Kernel):
- 内核是操作系统的核心部分,负责管理系统资源(如CPU、内存、设备等)和提供基本的操作系统服务。它直接与硬件交互,并为用户空间的应用程序提供了一个抽象层。
- Shell:
- Shell是一种命令行解释器,允许用户通过命令与操作系统进行交互。它接收用户的命令并执行相应的操作。常见的Shell包括Bash、Zsh、Ksh等。
- 文件系统:
- 文件系统定义了如何存储、检索和管理数据。类UNIX系统支持多种文件系统类型,如ext4、XFS、ZFS等。每个文件在文件系统中都有一个唯一的路径标识符。
- 实用工具和应用程序:
- 这些包括各种命令行工具(如ls, cp, mv, grep, awk等),以及更复杂的应用程序和服务(如文本编辑器、编译器、Web服务器等)。它们提供了完成特定任务所需的功能。
- 库(Libraries):
- 库是一系列预编译的代码集合,供其他程序调用以实现某些功能。动态链接库(如.so文件)可以在运行时加载,而静态库则在编译时被链接到可执行文件中。
- 守护进程(Daemons):
- 守护进程是在后台运行的服务程序,用于执行各种系统级任务,例如打印服务、网络服务等。典型的例子包括httpd(Apache Web Server)、sshd(SSH Daemon)等。
- 启动脚本和初始化系统:
- 初始化系统负责在操作系统启动时加载必要的驱动和服务。传统的类UNIX系统使用一系列启动脚本来完成这一过程,而在现代系统中,这可能由systemd或init及其变种来管理。
- 安全机制:
- 包括权限控制、用户认证、加密服务等。类UNIX系统通过UID/GID(用户ID/组ID)、文件权限位以及其他安全策略来保护系统资源不被未授权访问。
- 开发工具和环境:
- 提供给开发者的一套工具,包括编译器(如GCC)、调试器(如GDB)、版本控制系统(如Git)等,用于开发和维护软件。
这些组成部分共同构成了一个完整的类UNIX操作系统,提供了从底层硬件控制到高层应用开发的全方位支持。
2、什么是绝对和相对路径?
- 绝对路径:指的是从根目录(/)开始一直到目标文件或目录的完整路径。
- 相对路径:是指相对于当前工作目录的路径。
3、简述 TCP/IP 三次握手和四次挥手的工作原理?
-
三次握手(建立连接):
- 客户端发送一个SYN(同步序列编号)包给服务器,表示希望建立连接。
- 服务器收到SYN后,向客户端发送一个SYN-ACK(确认字符)包作为响应,表明同意建立连接。
- 客户端接收到SYN-ACK后,再向服务器发送一个ACK包,确认连接已建立。此时,双方都进入ESTABLISHED状态,可以开始数据传输。
-
四次挥手(断开连接):
- 主动关闭方发送FIN包给被动关闭方,请求关闭连接。
- 被动关闭方接收到FIN后,发送一个ACK包进行确认,并通知应用程序连接正在关闭。
- 当被动关闭方准备好完全关闭连接时,会发送一个FIN包给主动关闭方。
- 主动关闭方收到FIN后,发送最后一个ACK包确认收到FIN,之后等待一段时间以确保对方收到了ACK包,然后正式关闭连接。
4、简述操作系统启用流程
操作系统启动流程通常包括以下几个阶段:
- BIOS/UEFI初始化:计算机上电后首先执行的是BIOS或UEFI固件程序,它会对硬件进行基本检查(POST),并寻找可引导设备。
- 加载引导装载程序(Bootloader):找到合适的启动设备后,BIOS/UEFI将控制权交给位于该设备上的引导装载程序(如GRUB),负责加载操作系统内核。
- 加载操作系统内核:引导装载程序根据配置加载操作系统内核到内存中,并可能加载初始RAM磁盘(initrd或initramfs)。
- 初始化内核:内核初始化自身,并挂载根文件系统,随后启动第一个用户空间进程(通常是
init
或其变种,如systemd)。 - 启动服务和守护进程:
init
或其等效进程根据配置文件启动各种系统服务和守护进程,准备就绪供用户登录使用。
5、简述 CDN 原理
CDN(内容分发网络)通过在全球多个地理位置部署节点服务器来加速互联网内容的访问速度。其主要工作原理如下:
- 缓存内容:源站的内容被复制并存储在地理分布广泛的边缘服务器上。
- 智能路由:当用户请求某个资源时,CDN会根据用户的地理位置、网络状况等因素,选择最近或最优的边缘服务器提供服务。
- 负载均衡:通过智能分配流量,避免单点过载,提高整体可用性和响应速度。
- 减少延迟:由于内容可以从离用户最近的服务器获取,减少了数据传输的距离,从而降低了延迟。
- 增强可靠性:即使某些节点出现故障,其他节点仍能继续提供服务,增加了系统的冗余性和稳定性。
这些机制共同作用,使得CDN能够有效提升网站的性能、安全性和用户体验。
五、编程题
1、查看当前终端?
tty
这个命令会输出当前终端的设备文件名。
2、如何让用户登陆系统后拥有别名,cdnet,可以一键进入/etc/sysconfig/network-scripts 目
录?
echo "alias cdnet='cd /etc/sysconfig/network-scripts'" >> ~/.bashrc
source ~/.bashrc
为了让用户登录系统后自动拥有别名cdnet,你可以编辑用户的shell配置文件(如.bashrc或.bash_profile),添加以上内容。这样,每当用户登录时,就会加载这个别名定义。用户可以通过输入 cdnet一键进入/etc/sysconfig/network-scripts 目录。
3、升级 centos 内核版本为最新版本的内核 rpm 包完成?
升级CentOS的内核到最新版本通常需要从ELRepo等第三方源获取最新的内核包。以下是基本步骤:
1.导入GPG密钥并启用ELRepo仓库:
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
2.安装最新的主线稳定内核:
yum --enablerepo=elrepo-kernel install kernel-ml
3.更新GRUB引导加载程序:
确保新内核是默认启动项。
grub2-set-default 0
grub2-mkconfig -o /boot/grub2/grub.cfg
4.重启系统以应用新内核:
reboot
重启后,可以使用uname -r
来检查是否成功加载了新的内核版本。
4、分别 以 iptables/firewalld 实现 192.168.1.0/24 网段允许访问 5000-6000 端口
使用iptables:
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 5000:6000 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -d 192.168.1.0/24 -p tcp --sport 5000:6000 -m state --state ESTABLISHED -j ACCEPT
使用firewalld:
- 首先,确认firewalld服务正在运行:
systemctl start firewalld systemctl enable firewalld
- 然后,添加相应的规则:
# 添加富规则允许特定网段访问指定端口范围 firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port=5000-6000 protocol=tcp accept' # 重新加载防火墙配置使更改生效 firewall-cmd --reload
通过上述步骤,我们就可以分别使用iptables和firewalld来实现对192.168.1.0/24
网段访问5000-6000
端口的控制。