1. 使用while read line和/etc/passwd,计算用户id总和。
2. 总结索引数组和关联数组,字符串处理,高级变量使用及示例。
3. 求10个随机数的最大值与最小值。
4. 使用递归调用,完成阶乘算法实现。
3. 解析进程和线程的区别?
1)进程是操作系统分配资源的最小单位
2)线程是程序执行的CPU调度的最小单位
3)一个进程由一个或多个线程组成,线程是一个进程中代码的不同执行线路
4. 解析进程的结构。
进程一般由程序,数据集合和进程控制块三部分组成
1)程序用于描述进程要完成的功能,是控制执行的指令集
2)数据集合是程序执行时所需要的数据和工作区域
3)程序控制块包含进程的描述信息和控制信息,是进程存在的唯一标志
5. 解析磁盘中的代码如何在算机上运行的?
将磁盘上的代码文件加载到计算机的内存中,并通过执行相应的程序或脚本启动运行
6. 总结OOM原理,及处理方法。
Out Of Memory 内存用完了,没有足够的内存来为对象分配空间并且垃圾回收器也没有空间可回收,给应用分配内存太少了,或者应用用的太多,并且用完没有释放,此时就会造成内存泄漏或者内存溢出。
解决办法:
限制java进程的max heap,并且降低java程序的worker数量,从而降低内存使用
给系统增加swap空间
7. 结合进程管理命令,说明进程各种状态。
运行状态:running 正常运行中的状态
就绪状态:ready 准备进入运行的状态
睡眠状态:分为两种,可中断:interruptable,不可中断:uninterruptable
停止态:stopped 暂停,但不会被调度,除非手动启动
僵尸态:zombie 僵死态,父进程结束前,子进程不关闭,杀死父进程可关闭僵死态的子进程
8. 说明IPC通信和RPC通信实现的方式。
9. 通过mkfifo, cat, 来解释秒杀的并发问题,如何通过队列解决的?最好结合图形。说明消息队列的作用?
10. 总结Linux,前台和后台作业的区别,并说明如何在前台和后台中进行状态转换。
前台作业:通过终端启动,且启动后一直占据终端
后台作业:可通过终端启动,但启动后即转入后台运行(释放终端)
在命令后加 & 可以将作业运行于后台,可在新开终端窗口中ps aux查看进程ID号,使用fg PID命令将后台作业调往前台运行,使用bg PID 可以将前台作业送往后台执行
11. 总结内核设计流派及特点。
12. 总结rocky 启动流程,grub工作流程
BIOS/UEFI阶段:计算机启动时,首先执行BIOS或UEFI程序,进行硬件自检和初始化,检测系统内存和外设等。
Bootloader阶段:BIOS/UEFI加载引导程序,如GRUB或Syslinux,引导程序显示引导菜单,让用户选择启动哪个操作系统或内核。
内核引导阶段:选择了Rocky Linux后,Bootloader加载Linux内核和初始内存盘(initrd)到内存中,并启动Linux内核。
用户空间初始化阶段:Linux内核启动后,执行用户空间初始化程序systemd或SysVinit,进行系统初始化和各种服务的启动,同时加载硬件驱动程序。
登录界面阶段:显示登录界面(如登录管理器或控制台),用户输入用户名和密码登录系统。
grup启动分为三个阶段
1阶段:位于0-446MBR中安装bootloader的最小程序,主要作用是启动装载二阶段
1.5阶段:识别分区文件系统,是1阶段和2阶段的桥梁
2阶段:解析grup的配置文件,加载内核镜像到内存,通过/boot/initrd开头文件建立虚拟DAM DISK虚拟文件系统
13. 手写chkconfig服务脚本,可以实现服务的开始,停止,重启。
14. 总结systemd服务配置文件
service unit file文件通常由三部分组成:
[Unit]:定义与Unit类型无关的通用选项;用于提供unit的描述信息、unit行为及依赖关系等
[Service]:与特定类型相关的专用选项;此处为Service类型
[Install]:定义由“systemctl enable”以及"systemctl disable“命令在实现服务启用或禁用时用到的一些选项
15. 总结system启动流程
POST 加电自检
grup 启动引导阶段
kernel 内核加载初始化
/sbin/init 内核引导阶段,协助内核呼叫进程
/sbin/init程序
/etc/inittab 设置默认运行级别级别
etc/rc.d/rc.sysinit 运行系统初始化脚本,完成系统初始化
etc/rcN.d/Sxxx 启动需要启动关闭对应下需要关闭的服务
etc/rc.local 加载用户自定义服务
login 登录
16. 总结awk工作原理,awk命令,选项,示例。
第一步执行BEGIN{action;...}语句块中的语句
第二步从文件或标准输入读取一行执行pattren{action;...}语句块,逐行扫描从第一行到最后一行,直到文件被全部执行完毕
第三步当读至最后一行时,执行END{action;...}语句块
awk 'pattren{action;...}' FILE
选项 -v 可定义变量;选项 -F "分隔符" 指明输入字段的分隔符
17. 总结awk的数组,函数。
18. 总结ca管理相关的工具,根据使用场景总结示例。
OpenSSL:常用于处理SSL/TLS协议相关的任务,和CA的管理
OpenCA:常用于建立私有CA,和证书的申请颁发
19. 总结对称加密和非对称加密算法和用openssl签发证书步骤
对称加密:加密和解密使用同一个密钥,加密和解密效率高;但缺点是密钥过多,数据来源无法确认
非对称加密:密钥成对出现包含公钥和私钥,公钥公开给所有人,主要给别人加密使用;私钥自己留存,用于自己加密签名。其特点是公钥加密数据,只能使用与之配对的私钥解密,反之亦然。非对称加密适合小数据加密,主要在于让接收方确认发送者身份。缺点是密钥过长,加密解密效率低下。
openssl签发证书步骤:
1.生成证书申请请求(为需要使用证书的主机生成证书申请文件)
2.RA核验
3.CA签署(在CA签署证书并将证书颁发给请求者(默认要求 国家,省,公司名称三项必须和CA一致))
4.获取证书