C2

C2

  1. (单选题) 引入进程概念的关键在于( )。
    A. 共享资源
    B. 独享资源
    C. 顺序执行
    D. 便于执行
    正确答案: A
  2. (单选题) 一个进程当前处于等待状态,则( )。
    A. 它可以被调度而获得处理机
    B. 它可能变成就绪状态,也可能直接获得处理机
    C. 它永远不会被执行
    D. 当I/O完成后,它将变成就绪状态
    正确答案: D
  3. (单选题) 两个进程合作完成一个任务。在并发执行中,一个进程要等待其合作伙伴发来消息,或者建立某个条件后再向前执行,这种制约性合作关系被称为进程的( )。
    A. 互斥
    B. 同步
    C. 调度
    D. 伙伴
    正确答案: B
  4. (单选题) 一个进程被唤醒意味着( ) 。
    A. 该进程重新占有CPU
    B. 进程状态变为就绪
    C. 它的优先权变为最大
    D. 该进程会立即执行
    正确答案: B
  5. (单选题) 一个作业被调度进入内存后其进程被调度进入CPU运行,在执行一段指令后,进程请求打印输出,此间该进程的状态变化是( )。
    A. 运行态-就绪态-等待态
    B. 等待态-就绪态-运行态
    C. 就绪态-运行态-等待态
    D. 就绪态-等待态-运行态
    正确答案: C
  6. (单选题) 一个作业第一次执行时用了5分钟,而第二次执行时用了6分钟,这说明了操作系统的( )。
    A. 共享性
    B. 不确定性
    C. 并发性
    D. 机器有问题
    正确答案: B
  7. (单选题) 下面关于线程的叙述中,正确的是( )。
    A. 不论是系统支持线程还是用户级线程,其切换都需要内核的支持。
    B. 线程是资源的分配单位,进程是调度和分配的单位。
    C. 不管系统中是否有线程,进程都是拥有资源的独立单位。
    D. 在引入线程的系统中,进程仍是资源分配和调度分派的基本单位。
    正确答案: C
  8. (单选题) 进程有三种基本状态,可能的状态转换是( )。
    A. 就绪态到运行态、等待态到就绪态、运行态到等待态
    B. 就绪态到运行态、就绪态到等待态、等待态到运行态
    C. 就绪态到运行态、等待态到就绪态、等待态到运行态
    D. 运行态到就绪态、就绪态到等待态、等待态到运行态
    正确答案: A
  9. (单选题) 下列几种关于进程的叙述,( )最不符合操作系统对进程的理解?
    A. 进程是在多程序并行环境中的完整的程序。
    B. 进程可以由程序、数据和进程控制块描述。
    C. 线程是一种特殊的进程。
    D. 进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。
    正确答案: A
  10. (单选题) 若当前进程因时间片用完而让出处理机时,该进程应转变为( )状态。
    A. 就绪
    B. 等待
    C. 运行
    D. 完成
    正确答案: A
  11. (单选题) 系统在( ),发生从目态到管态的转换。
    A. 发出P操作时
    B. 发出V操作时
    C. 执行系统调用时
    D. 执行置程序状态字时
    正确答案: C
  12. (单选题) Signal原语对信号量做运算后,( ) 。
    A. 当S<0时进程继续执行
    B. 当S<0时要唤醒一个就绪进程
    C. 当S≤0时要唤醒一个等待进程
    D. 当S≤0 时要唤醒一个就绪进程
    正确答案: C
  13. (单选题) 用户要在程序一级获得系统帮助,必须通过( ) 。
    A. 进程调度
    B. 作业调度
    C. 键盘命令
    D. 系统调用
    正确答案: D
  14. (单选题) 已经获得除( )以外的所有运行所需资源的进程处于就绪状态。
    A. 内存
    B. I/O设备
    C. CPU
    D. 磁盘空间
    正确答案: C
  15. (单选题) 有m个进程共享同一临界资源,若使用信号量机制实现对一临界资源的互斥访问,则信号量的变化范围是( )。
    A. 1至 –(m-1)
    B. 1至m-1
    C. 1至–m
    D. 1至m
    正确答案: A
  16. (单选题) 当一个进程处于( )状态时,称其为等待(或阻塞)状态。
    A. 它正等待中央处理机
    B. 它正等待合作进程的一个消息
    C. 它正等待分给它一个时间片
    D. 它正等待进入内存
    正确答案: B
  17. (单选题) 下列不属于进程高级通信工具的是( )。
    A. 共享存储器系统
    B. 信号量
    C. 消息传递系统
    D. 管道
    正确答案: B
  18. (单选题) 两个旅行社甲和乙为旅客到某航空公司订飞机票,形成互斥的资源是( )。
    A. 飞机票
    B. 旅行社
    C. 航空公司
    D. 旅行社和航空公司
    正确答案: A
  19. (单选题) 临界区是指并发进程中访问共享变量的( )段。
    A. 管理信息
    B. 信息存储
    C. 数据
    D. 程序
    正确答案: D
  20. (单选题) 信号量可以用来实现进程之间的( )。
    A. 调度
    B. 同步
    C. 互斥
    D. 同步与互斥
    正确答案: D
  21. (单选题) 某计算机系统中若同时存在五个进程,则处于阻塞状态的进程最多可有( )个。
    A. 1
    B. 4
    C. 5
    D. 0
    正确答案: C
  22. (单选题) 进程从运行状态进入就绪状态的原因可能是( )。
    A. 时间片用完
    B. 被选中占有CPU
    C. 等待某一事件
    D. 等待的事件已经发生
    正确答案: A
  23. (单选题) 在进程的状态转换过程中,( )是不可能发生的。
    A. 运行态变为就绪态
    B. 就绪态变为运行态
    C. 运行态变为阻塞态
    D. 阻塞态变为运行态
    正确答案: D
  24. (单选题) 进程和程序的一个本质区别是( )。
    A. 前者分时使用CPU,后者独占CPU
    B. 前者存储在内存,后者存储在外存
    C. 前者为动态的,后者为静态的
    D. 前者在一个文件中,后者在多个文件中
    正确答案: C
  25. (单选题) 引入进程的原因是( )。
    A. 提高资源的利用率和控制程序的执行
    B. 提高资源的利用率和正确描述程序的执行情况
    C. 提高程序的执行速度和控制程序的执行
    D. 提高程序的执行速度和正确描述程序的执行情况
    正确答案: B
  26. (单选题) 在一单处理机系统中,若有5个用户进程,则处于就绪状态的用户进程最多有( )个。
    A. 0
    B. 1
    C. 4
    D. 5
    正确答案: C
  27. (单选题) 一作业进入内存后,则所属该作业的进程初始时处于( )状态。
    A. 就绪
    B. 运行
    C. 挂起
    D. 阻塞
    正确答案: A
  28. (单选题) 进程和线程的区别是( )。
    A. 大小不同
    B. 是否拥有资源
    C. 是否顺序执行
    D. 对应的分别是程序和过程
    正确答案: B
  29. (单选题) 处理器执行的指令被分成两类,其中有一类称为特权指令,它只允许( )使用。
    A. 操作员
    B. 联机用户
    C. 操作系统
    D. 目标程序
    正确答案: C
  30. (单选题) 设有三个进程共享一个资源,如果每次只允许一个进程使用该资源,则用PV操作管理时信号量S的可能取值是( )。
    A. 1,0,-1,-2
    B. 2,0,-1,-2
    C. 1,0,-1
    D. 3,2,1,0
    正确答案: A
  31. (单选题) 操作系统对进程进行管理与控制的基本数据结构是( )。
    A. JCB
    B. DCB
    C. PCB
    D. FCB
    正确答案: C
  32. (单选题) 用V操作唤醒一个等待进程时,被唤醒进程的状态变为( )。
    A. 等待
    B. 就绪
    C. 运行
    D. 完成
    正确答案: B
  33. (单选题) 信箱通信是一种( )通信方式。
    A. 直接通信
    B. 间接通信
    C. 低级通信
    D. 信号量
    正确答案: B
  34. (单选题) 对于记录型信号量,在执行一次P操作时,信号量的值应当( )。
    A. 不变
    B. 加1
    C. 减1
    D. 加指定数值
    正确答案: C
  35. (单选题) 进程控制块是描述进程状态和特性的数据结构,一个进程( )。
    A. 只能有惟一的进程控制块
    B. 可以有多个进程控制块
    C. 可以和其他进程共用一个进程控制块
    D. 可以没有进程控制块
    正确答案: A
  36. (单选题) 共享变量是指( )访问的变量。
    A. 只能被系统进程
    B. 只能被多个进程互斥
    C. 只能被用户进程
    D. 可被多个进程
    正确答案: D
  37. (单选题) 若进程用信件来传递信息,那么发送信息者的进程名应( )。
    A. 存放在信件中
    B. 作为send原语的参数
    C. 作为receive原语的参数
    D. 存放在信箱说明中
    正确答案: A
  38. (单选题) 当一个进程( )就要退出等待队列而进入就绪队列。
    A. 启动了外设
    B. 用完了规定的时间片
    C. 获得了所等待的资源
    D. 能得到所等待的处理器
    正确答案: C
  39. (单选题) 进程所请求的一次打印输出结束后,将使进程状态从( )。
    A. 运行态变为就绪态
    B. 运行态变为阻塞态
    C. 就绪态变为运行态
    D. 阻塞态变为就绪态
    正确答案: D
  40. (单选题) 一个进程释放一种资源将有可能导致一个或几个进程( )。
    A. 由就绪变运行
    B. 由运行变就绪
    C. 由阻塞变运行
    D. 由阻塞变就绪
    正确答案: D
  41. (判断题) 并发执行的程序具有可再现性。
    A. 对
    B. 错
    正确答案: B
  42. (判断题) 创建原语用来创建一个新进程,并将此新进程投入就绪队列。
    A. 对
    B. 错
    正确答案: A
  43. (判断题) 在多道程序环境下,任意两个进程都是可以并发执行的。
    A. 对
    B. 错
    正确答案: B
  44. (判断题) 内核级线程是用户通过建立线程库来实现的。
    A. 对
    B. 错
    正确答案: B
  45. (判断题) 一个程序在执行时可以包含多个进程,一段程序指令也可以包含在多个进程中。
    A. 对
    B. 错
    正确答案: A
  46. (判断题) 随着进程的撤消,程序也随之消亡。
    A. 对
    B. 错
    正确答案: B
  47. (判断题) 线程支持的操作系统中调度和资源分配均以线程为单位。
    A. 对
    B. 错
    正确答案: B
  48. (判断题) 在单处理机系统中最多允许两个进程处于运行状态。
    A. 对
    B. 错
    正确答案: B
  49. (判断题) 因为临界资源一次只允许一个进程使用,因此临界资源不能共享。
    A. 对
    B. 错
    正确答案: B
  50. (判断题) 并发性是指若干事件在同一时刻发生。
    A. 对
    B. 错
    正确答案: B

精准

  1. (单选题) 进程和程序的一个本质区别是()。
    A. 前者分时使用CPU,后者独占CPU
    B. 前者存储在内存,后者存储在外存
    C. 前者为动态的,后者为静态的
    D. 前者在一个文件中,后者在多个文件中
    正确答案: C
  2. (单选题) 若进程用信件来传递信息,那么发送信息者的进程名应()。
    A. 存放在信件中
    B. 作为send原语的参数
    C. 作为receive原语的参数
    D. 存放在信箱说明中
    正确答案: A
  3. (单选题) 进程和线程的区别是()。
    A. 大小不同
    B. 是否拥有资源
    C. 是否顺序执行
    D. 对应的分别是程序和过程
    正确答案: B
  4. (单选题) 进程控制块是描述进程状态和特性的数据结构,一个进程()。
    A. 只能有惟一的进程控制块
    B. 可以有多个进程控制块
    C. 可以和其他进程共用一个进程控制块
    D. 可以没有进程控制块
    正确答案: A
  5. (单选题) 设有三个进程共享一个资源,如果每次只允许一个进程使用该资源,则用PV操作管理时信号量S的可能取值是 ()。
    A. 1,0,-1,-2
    B. 2,0,-1,-2
    C. 1,0,-1
    D. 3,2,1,0
    正确答案: A
  6. (单选题) 一作业进入内存后,则所属该作业的进程初始时处于()状态。
    A. 就绪
    B. 运行
    C. 挂起
    D. 阻塞
    正确答案: A
  7. (单选题) 某计算机系统中若同时存在五个进程,则处于阻塞状态的进程最多可有()个。
    A. 1
    B. 4
    C. 5
    D. 0
    正确答案: C
  8. (单选题) 一个进程释放一种资源将有可能导致一个或几个进程()。
    A. 由就绪变运行
    B. 由运行变就绪
    C. 由阻塞变运行
    D. 由阻塞变就绪
    正确答案: D
  9. (单选题) 进程是对并发程序的描述机制,是程序的运行过程,由( )所组成。
    A. 进程控制块、本进程区表、系统区表、文件描述符表和文件打开表
    B. 程序上下文和寄存器上下文
    C. 程序段、数据段和进程控制块
    D. 程序段和数据段
    正确答案: C
  10. (单选题) 信号量可以用来实现进程之间的()。
    A. 调度
    B. 同步
    C. 互斥
    D. 同步与互斥
    正确答案: D
  11. (单选题) 程序在独占处理器的情况下运行时将会体现出封闭性的特征。关于这里的封闭性的理解或描述,下列不正确的选项是( )。
    A. 只有当前运行的程序才能改变计算机系统资源的状态
    B. 程序在封闭环境下运行并独占计算机的所有资源
    C. 程序的执行相对封闭,但受到并发协作进程的制约
    D. 程序的执行结果不受外界因素的影响
    正确答案: C
  12. (单选题) 在多进程系统中,进程什么时候占用处理器,取决于()。
    A. 进程相应的程序段的长度
    B. 进程调度策略
    C. 进程总共需要运行时间多少
    D. 进程完成什么功能
    正确答案: B
  13. (单选题) Signal原语对信号量做运算后,()
    A. 当S<0时进程继续执行
    B. 当S<0时要唤醒一个就绪进程
    C. 当S≤0时要唤醒一个等待进程
    D. 当S≤0 时要唤醒一个就绪进程
    正确答案: C
  14. (单选题) 引入进程概念的关键在于( )。
    A. 共享资源
    B. 独享资源
    C. 顺序执行
    D. 便于执行
    正确答案: A
  15. (单选题) 下面关于线程的叙述中,正确的是()。
    A. 不论是系统支持线程还是用户级线程,其切换都需要内核的支持。
    B. 线程是资源的分配单位,进程是调度和分配的单位。
    C. 不管系统中是否有线程,进程都是拥有资源的独立单位。
    D. 在引入线程的系统中,进程仍是资源分配和调度分派的基本单位。
    正确答案: C
  16. (单选题) 进程所请求的一次打印输出结束后,将使进程状态从()。
    A. 运行态变为就绪态
    B. 运行态变为阻塞态
    C. 就绪态变为运行态
    D. 阻塞态变为就绪态
    正确答案: D
  17. (单选题) 信箱通信是一种()通信方式。
    A. 直接通信
    B. 间接通信
    C. 低级通信
    D. 信号量
    正确答案: B
  18. (单选题) 若系统中有五个并发进程涉及某个相同的变量A,则变量A的相关临界区是由()临界区构成。
    A. 2个
    B. 3个
    C. 4个
    D. 5个
    正确答案: D
  19. (单选题) 一个作业被调度进入内存后其进程被调度进入CPU运行,在执行一段指令后,进程请求打印输出,此间该进程的状态变化是()。
    A. 运行态-就绪态-等待态
    B. 等待态-就绪态-运行态
    C. 就绪态-运行态-等待态
    D. 就绪态-等待态-运行态
    正确答案: C
  20. (单选题) 进程有三种基本状态,可能的状态转换是()
    A. 就绪态到运行态、等待态到就绪态、运行态到等待态
    B. 就绪态到运行态、就绪态到等待态、等待态到运行态
    C. 就绪态到运行态、等待态到就绪态、等待态到运行态
    D. 运行态到就绪态、就绪态到等待态、等待态到运行态
    正确答案: A
  21. (单选题) 在进程的状态转换过程中,()是不可能发生的。
    A. 运行态变为就绪态
    B. 就绪态变为运行态
    C. 运行态变为阻塞态
    D. 阻塞态变为运行态
    正确答案: D
  22. (单选题) 下列不属于进程高级通信工具的是()。
    A. 共享存储器系统
    B. 信号量
    C. 消息传递系统
    D. 管道
    正确答案: B
  23. (单选题) 当一个进程()就要退出等待队列而进入就绪队列。
    A. 启动了外设
    B. 用完了规定的时间片
    C. 获得了所等待的资源
    D. 能得到所等待的处理器
    正确答案: C
  24. (单选题) 两个进程合作完成一个任务。在并发执行中,一个进程要等待其合作伙伴发来消息,或者建立某个条件后再向前执行,这种制约性合作关系被称为进程的()。
    A. 互斥
    B. 同步
    C. 调度
    D. 伙伴
    正确答案: B
  25. (单选题) 程序在独占处理器的情况下运行时:只要程序执行时的环境和初始条件相同,程序重复执行的结果相同,这称之为( )。
    A. 顺序性
    B. 可再现性
    C. 开放性
    D. 封闭性
    正确答案: B
  26. (单选题) 一个作业第一次执行时用了5分钟,而第二次执行时用了6分钟,这说明了操作系统的()。
    A. 共享性
    B. 不确定性
    C. 并发性
    D. 机器有问题
    正确答案: B
  27. (单选题) 当一个进程处于()状态时,称其为等待(或阻塞)状态。
    A. 它正等待中央处理机
    B. 它正等待合作进程的一个消息
    C. 它正等待分给它一个时间片
    D. 它正等待进入内存
    正确答案: B
  28. (单选题) 用V操作唤醒一个等待进程时,被唤醒进程的状态变为()。
    A. 等待
    B. 就绪
    C. 运行
    D. 完成
    正确答案: B
  29. (单选题) 两个旅行社甲和乙为旅客到某航空公司订飞机票,形成互斥的资源是()。
    A. 飞机票
    B. 旅行社
    C. 航空公司
    D. 旅行社和航空公司
    正确答案: A
  30. (单选题) 进程从运行状态进入就绪状态的原因可能是()。
    A. 时间片用完
    B. 被选中占有CPU
    C. 等待某一事件
    D. 等待的事件已经发生
    正确答案: A
  31. (单选题) 下列几种关于进程的叙述,()最不符合操作系统对进程的理解?
    A. 进程是在多程序并行环境中的完整的程序。
    B. 进程可以由程序、数据和进程控制块描述。
    C. 线程是一种特殊的进程。
    D. 进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。
    正确答案: A
  32. (单选题) 在一单处理机系统中,若有5个用户进程,则处于就绪状态的用户进程最多有()个。
    A. 0
    B. 1
    C. 4
    D. 5
    正确答案: C
  33. (单选题) 引入进程的原因是 ( )。
    A. 提高资源的利用率和控制程序的执行
    B. 提高资源的利用率和正确描述程序的执行情况
    C. 提高程序的执行速度和控制程序的执行
    D. 提高程序的执行速度和正确描述程序的执行情况
    正确答案: B
  34. (单选题) 一个进程被唤醒意味着() 。
    A. 该进程重新占有CPU
    B. 进程状态变为就绪
    C. 它的优先权变为最大
    D. 该进程会立即执行
    正确答案: B
  35. (单选题) 一个进程当前处于等待状态,则()。
    A. 它可以被调度而获得处理机
    B. 它可能变成就绪状态,也可能直接获得处理机
    C. 它永远不会被执行
    D. 当I/O 完成后,它将变成就绪状态
    正确答案: D
  36. (单选题) 关于进程的状态转换,引入挂起状态的原因不包括( )。
    A. 进程进行I/O操作时应保证处理器的高效利用
    B. 操作系统在运行过程中需要对资源使用情况进行检查和记账
    C. 用户可能在程序运行期间发现可疑问题而需要暂停进程
    D. 系统需要进行负荷调节和保证实时任务及时完成
    正确答案: A
  37. (单选题) 对于记录型信号量,在执行一次P操作时,信号量的值应当()。
    A. 不变
    B. 加1
    C. 减1
    D. 加指定数值
    正确答案: C
  38. (单选题) 操作系统对进程进行管理与控制的基本数据结构是()。
    A. JCB
    B. DCB
    C. PCB
    D. FCB
    正确答案: C
  39. (单选题) 共享变量是指()访问的变量。
    A. 只能被系统进程
    B. 只能被多个进程互斥
    C. 只能被用户进程
    D. 可被多个进程
    正确答案: D
  40. (单选题) 有m个进程共享同一临界资源,若使用信号量机制实现对一临界资源的互斥访问,则信号量的变化范围是()。
    A. 1至 –(m-1)
    B. 1至m-1
    C. 1至–m
    D. 1至m
    正确答案: A

C1-2

C1-2

  1. (单选题) 操作系统是对( )进行管理的软件。
    A. 应用程序
    B. 计算机资源
    C. 硬件
    D. 软件
    正确答案: B
  2. (单选题) 操作系统是一种( )。
    A. 软件包
    B. 应用软件
    C. 通用软件
    D. 系统软件
    正确答案: D
  3. (单选题) 下列选项中,不属于多道程序设计的基本特征是( )
    A. 无序性
    B. 多道性
    C. 间断性
    D. 顺序性
    正确答案: D
  4. (单选题) 提高CPU利用率的关键技术是( )
    A. 脱机技术
    B. 多道程序设计技术
    C. 交换技术
    D. 虚拟技术
    正确答案: B
  5. (单选题) 分时系统追求的目标是( )
    A. 快速响应用户
    B. 提高系统吞吐率
    C. 充分利用内存
    D. 充分利用I/O设备
    正确答案: A
  6. (单选题) 操作系统的特征是( )、共享、虚拟以及异步
    A. 并发
    B. 多道
    C. 实时
    D. 中断
    正确答案: A
  7. (单选题) 操作系统的( )管理部分负责对进程进行调度。
    A. 主存储器
    B. 控制器
    C. 运算器
    D. 处理机
    正确答案: D
  8. (单选题) 操作系统是对( )进行管理的软件。
    A. 软件
    B. 硬件
    C. 计算机资源
    D. 应用程序
    正确答案: C
  9. (单选题) 从用户的观点看,操作系统是( )。
    A. 用户与计算机之间的接口。
    B. 控制和管理计算机资源的软件。
    C. 合理地组织计算机工作流程的软件。
    D. 由若干层次的程序按一定的结构组成的有机体。
    正确答案: A
  10. (单选题) 操作系统的功能是进行处理机管理、( )管理、设备管理及信息管理。
    A. 进程
    B. 存储器
    C. 硬件
    D. 软件
    正确答案: B
  11. (单选题) 操作系统中采用多道程序设计技术提高CPU和外部设备的( )。
    A. 利用率
    B. 可靠性
    C. 稳定性
    D. 兼容性
    正确答案: A
  12. (单选题) 操作系统的基本类型主要有( )。
    A. 批处理系统、分时系统及多任务系统
    B. 实时操作系统、批处理操作系统及分时操作系统
    C. 单用户系统、多用户系统及批处理系统
    D. 实时系统、分时系统和多用户系统
    正确答案: B
  13. (单选题) ()是在计算机内存中同时存放几道相互独立的程序,使它们在管理程序控制之下,相互穿插地运行。
    A. 多重处理
    B. 多道程序设计
    C. 实时处理
    D. 共行执行
    正确答案: B
  14. (单选题) 下面关于操作系统的叙述中正确的是( )。
    A. 批处理作业必须具有作业控制信息。
    B. 分时系统不一定都具有人机交互功能。
    C. 从响应时间的角度看,实时系统与分时系统差不多。
    D. 由于采用了分时技术,用户可以独占计算机资源。
    正确答案: A
  15. (单选题) ( )操作系统允许在一台主机上同时连接多台终端,多个用户可以通过各自的终端同时交互地使用计算机。
    A. 网络
    B. 分布式
    C. 分时
    D. 实时
    正确答案: C
  16. (单选题) 如果分时操作系统的时间片一定,那么( ),则响应时间越长。
    A. 用户数越少
    B. 用户数越多
    C. 内存越少
    D. 内存越多
    正确答案: B
  17. (单选题) 分时操作系统通常采用( )策略为用户服务。
    A. 可靠性和灵活性
    B. 时间片轮转
    C. 时间片加权分配
    D. 短作业优先
    正确答案: B
  18. (单选题) ( )操作系统允许用户把若干个作业提交给计算机系统。
    A. 单用户
    B. 分布式
    C. 批处理
    D. 监督
    正确答案: C
  19. (单选题) 在( )操作系统控制下,计算机系统能及时处理由过程控制反馈的数据并做出响应。
    A. 实时
    B. 分时
    C. 分布式
    D. 单用户
    正确答案: A
  20. (单选题) 下面6个系统中,必须是实时操作系统的有( )个。计算机辅助设计系统航空订票系统过程控制系统机器翻译系统办公自动化系统计算机激光照排系统
    A. 1
    B. 2
    C. 3
    D. 4
    正确答案: C
  21. (单选题) 设计实时操作系统时,首先应考虑系统的( )。
    A. 可靠性和灵活性
    B. 实时性和可靠性
    C. 灵活性和可靠性
    D. 优良性和分配性
    正确答案: B
  22. (单选题) 若把操作系统看作计算机系统资源的管理者,下列( )不属于操作系统所管理的资源。
    A. 程序
    B. 内存
    C. CPU
    D. 中断
    正确答案: D
  23. (单选题) 在下列操作系统的各个功能组成部分中,( )不需要硬件所管理的资源。
    A. 进程调度
    B. 时钟管理
    C. 地址映射
    D. 中断系统
    正确答案: A
  24. (单选题) 并发和( )是操作系统的两个最基本的特征,两者之间互为存在条件。
    A. 共享
    B. 并行
    C. 虚拟
    D. 异步
    正确答案: A
  25. (单选题) 在主机控制下进行的输入/输出操作称为( )操作。
    A. 脱机输入/输出
    B. 并行输入/输出
    C. 联机输入/输出
    D. 串机输入/输出
    正确答案: C
  26. (单选题) CPU不能直接访问的存储器是( )。
    A. 内存
    B. 硬盘
    C. 高速缓存
    D. 寄存器
    正确答案: B
  27. (单选题) 以下有关分时系统的论述,错误的是( )。
    A. 一般采用时间片轮转方式使一台计算机为多个用户服务
    B. 一种联机的多用户交互式的操作系统
    C. 在单位时间内,每个用户获得一个时间片并运行
    D. 每个用户都能实时得到服务
    正确答案: D
  28. (单选题) 以下有关分布式操作系统的论述,错误的是( )。
    A. 运行在多个计算机上
    B. 又称紧耦合系统
    C. 目前还没有真正意义上的分布式操作系统
    D. 需要网络操作系统的支持
    正确答案: B
  29. (单选题) 下列选择中,( )不是操作系统关心的主要问题。
    A. 管理计算机裸机
    B. 设计、提供用户程序与计算机硬件系统的界面
    C. 管理计算机系统资源
    D. 高级程序设计语言的编译器
    正确答案: D
  30. (单选题) 以下( )项功能不是操作系统具备的主要功能。
    A. 进程管理
    B. 内存管理
    C. 设备管理
    D. 数据管理
    正确答案: D
  31. (单选题) 在采用多道程序设计技术的操作系统中,单核CPU( )。
    A. 只能被一个程序占用,只有这个程序运行完才释放CPU
    B. 没有被程序占用
    C. 可以被多个程序同时占用
    D. 可以被多个程序交替占用
    正确答案: D
  32. (单选题) 多道程序设计是指( )。
    A. 有多个程序同时进入主存并发运行
    B. 有多个程序同时进入CPU运行
    C. 程序一个一个依次装入内容并顺序执行
    D. 同一个程序可以对应多个不同的进程
    正确答案: A
  33. (单选题) 与计算机硬件关系最密切的软件是( )。
    A. 数据库系统
    B. 安全软件
    C. 编译器
    D. 操作系统
    正确答案: D
  34. (单选题) 早期操作系统追求的主要目标是( )。
    A. 低成本
    B. 高效率
    C. 方便性
    D. 可移植性
    正确答案: B
  35. (单选题) 控制设备工作的物理部件是( )。
    A. CPU
    B. 总线
    C. 内存
    D. 设备控制器
    正确答案: D
  36. (单选题) 下述操作系统类型中,哪个操作系统一定是由多台计算机组成的系统( )。
    A. 实时
    B. 批处理
    C. 分时
    D. 分布式
    正确答案: D
  37. (单选题) 设计批处理多道系统时,首先要考虑的是()
    A. 灵活性和可适应性
    B. 系统效率和吞吐量
    C. 交互性和响应时间
    D. 实时性和可靠性
    正确答案: B
  38. (单选题) 批处理系统的主要缺点是( )。
    A. CPU的利用率不高
    B. 失去了交互性
    C. 不具备并行性
    D. 以上都不是
    正确答案: B
  39. (单选题) ( )不是分时系统的基本特征。
    A. 同时性
    B. 独立性
    C. 实时性
    D. 交互性
    正确答案: C
  40. (单选题) 分布式操作系统的特点是()。
    A. 资源共享
    B. 资源地理位置分散
    C. 资源位置透明
    D. 多个用户的程序并行运行
    正确答案: C
  41. (单选题) 下列关于并发概念的叙述中,( )是正确的。
    A. 并发性是指若干程序在同一时刻执行
    B. 并发性是指若干程序在不同时刻执行
    C. 并发性是指若干程序在同一时间间隔内执行
    D. 并发性是指若干程序在不同时间间隔内执行
    正确答案: C
  42. (单选题) ( )操作系统较适于控制火箭的飞行。
    A. 分时
    B. 批处理
    C. 实时
    D. 手工操作
    正确答案: C
  43. (单选题) 用户向操作系统提出服务请求一般有两种方式:终端命令和( )。
    A. 宏命令
    B. 汇编语言
    C. 高级语言
    D. 系统调用
    正确答案: D
  44. (单选题) 在汽车电子系统中使用的操作系统应属于( )。
    A. 批处理操作系统
    B. 嵌入式操作系统
    C. 个人计算机操作系统
    D. 分布式操作系统
    正确答案: B
  45. (单选题) 下列说法正确的是( )。
    A. 硬实时任务是指系统必须满足任务对截止时间要求,比如:12306订票系统
    B. 软实时任务是指对于任务截止时间要求并不是很严格,偶尔错过了任务的截止时间,对系统产生的影响也不会太大,例如:导弹控制系统。
    C. 硬实时任务是指系统必须满足任务对截止时间要求,例如:导弹控制系统。
    D. 软实时任务是指对于任务截止时间要求并不是很严格,偶尔错过了任务的截止时间,对系统产生的影响也不会太大。例如:卫星发射系统。
    正确答案: C
  46. (单选题) 下列关于微内核描述错误的是()。
    A. 足够小的内核。
    B. 融入了面向对象技术。
    C. 应用机制与策略分离的原理。
    D. 可移植性较差。
    正确答案: D
  47. (单选题) 下列关于中断描述错误的是( )。
    A. 当中断发生时,CPU执行完当前进程后,再对中断进行处理。
    B. 发生了中断,就意味着需要操作系统介入,开展管理工作。
    C. 对于不同的中断信号,会进行不同的处理。
    D. 有了中断,才能实现多道程序并发执行。
    正确答案: A
  48. (单选题) 下列属于外中断的是()。
    A. 陷入
    B. I/O中断
    C. 缺页故障
    D. 程序异常
    正确答案: B
  49. (单选题) 用户可以通过()两种方式使用计算机。
    A. 命令接口和函数
    B. 命令接口与系统调用
    C. 命令接口和文件管理
    D. 设备管理方式和系统调用
    正确答案: B
  50. (单选题) 虚拟存储技术是( )。
    A. 物理上扩充内存空间的技术
    B. 逻辑上扩充内存空间的技术
    C. 物理上扩充外存空间的技术
    D. 扩充输入输出缓冲区的技术
    正确答案: B

C1

C1

  1. (单选题) 下面6个系统中,必须是实时操作系统的有( )个。计算机辅助设计系统航空订票系统过程控制系统机器翻译系统办公自动化系统计算机激光照排系统
    A. 1
    B. 2
    C. 3
    D. 4
    正确答案: C
  2. (单选题) 多道程序设计是指( )。
    A. 有多个程序同时进入主存并发运行
    B. 有多个程序同时进入CPU运行
    C. 程序一个一个依次装入内容并顺序执行
    D. 同一个程序可以对应多个不同的进程
    正确答案: A
  3. (单选题) 所谓( )是指将一个以上的作业放入主存,并且同时处于运行状态,这些作业共享处理机的时间和外围设备等其他资源。
    A. 多重处理
    B. 多道程序设计
    C. 实时处理
    D. 共行执行
    正确答案: B
  4. (单选题) 操作系统的特征是( )、共享、虚拟以及异步
    A. 并发
    B. 多道
    C. 实时
    D. 中断
    正确答案: A
  5. (单选题) 从用户的观点看,操作系统是( )。
    A. 用户与计算机之间的接口。
    B. 控制和管理计算机资源的软件。
    C. 合理地组织计算机工作流程的软件。
    D. 由若干层次的程序按一定的结构组成的有机体。
    正确答案: A
  6. (单选题) 下列选择中,( )不是操作系统关心的主要问题。
    A. 管理计算机裸机
    B. 设计、提供用户程序与计算机硬件系统的界面
    C. 管理计算机系统资源
    D. 高级程序设计语言的编译器
    正确答案: D
  7. (单选题) 操作系统的功能是进行处理机管理、( )管理、设备管理及信息管理。
    A. 进程
    B. 存储器
    C. 硬件
    D. 软件
    正确答案: B
  8. (单选题) 操作系统的基本类型主要有( )。
    A. 批处理系统、分时系统及多任务系统
    B. 实时操作系统、批处理操作系统及分时操作系统
    C. 单用户系统、多用户系统及批处理系统
    D. 实时系统、分时系统和多用户系统
    正确答案: B
  9. (单选题) 操作系统是对( )进行管理的软件。
    A. 应用程序
    B. 计算机资源
    C. 硬件
    D. 软件
    正确答案: B
  10. (单选题) 设计实时操作系统时,首先应考虑系统的( )。
    A. 可靠性和灵活性
    B. 实时性和可靠性
    C. 灵活性和可靠性
    D. 优良性和分配性
    正确答案: B
  11. (单选题) 操作系统是一种( )。
    A. 软件包
    B. 应用软件
    C. 通用软件
    D. 系统软件
    正确答案: D
  12. (单选题) ( )操作系统允许用户把若干个作业提交给计算机系统。
    A. 单用户
    B. 分布式
    C. 批处理
    D. 监督
    正确答案: C
  13. (单选题) 以下有关分时系统的论述,错误的是( )。
    A. 一般采用时间片轮转方式使一台计算机为多个用户服务
    B. 一种联机的多用户交互式的操作系统
    C. 在单位时间内,每个用户获得一个时间片并运行
    D. 每个用户都能实时得到服务
    正确答案: D
  14. (单选题) CPU不能直接访问的存储器是( )。
    A. 内存
    B. 硬盘
    C. 高速缓存
    D. 寄存器
    正确答案: B
  15. (单选题) 控制设备工作的物理部件是( )。
    A. CPU
    B. 总线
    C. 内存
    D. 设备控制器
    正确答案: D
  16. (单选题) 分布式操作系统的特点是()。
    A. 资源共享
    B. 资源地理位置分散
    C. 资源位置透明
    D. 多个用户的程序并行运行
    正确答案: C
  17. (单选题) ( )操作系统允许在一台主机上同时连接多台终端,多个用户可以通过各自的终端同时交互地使用计算机。
    A. 网络
    B. 分布式
    C. 分时
    D. 实时
    正确答案: C
  18. (单选题) 操作系统的( )管理部分负责对进程进行调度。
    A. 主存储器
    B. 控制器
    C. 运算器
    D. 处理机
    正确答案: D
  19. (单选题) 如果分时操作系统的时间片一定,那么( ),则响应时间越长。
    A. 用户数越少
    B. 用户数越多
    C. 内存越少
    D. 内存越多
    正确答案: B
  20. (单选题) 分时系统追求的目标是( )
    A. 快速响应用户
    B. 提高系统吞吐率
    C. 充分利用内存
    D. 充分利用I/O设备
    正确答案: A
  21. (单选题) 并发和( )是操作系统的两个最基本的特征,两者之间互为存在条件。
    A. 共享
    B. 并行
    C. 虚拟
    D. 异步
    正确答案: A
  22. (单选题) 操作系统中采用多道程序设计技术提高CPU和外部设备的( )。
    A. 利用率
    B. 可靠性
    C. 稳定性
    D. 兼容性
    正确答案: A
  23. (单选题) 下列选项中,不属于多道程序设计的基本特征是( )
    A. 无序性
    B. 多道性
    C. 间断性
    D. 顺序性
    正确答案: D
  24. (单选题) 在下列操作系统的各个功能组成部分中,( )不需要硬件所管理的资源。
    A. 进程调度
    B. 时钟管理
    C. 地址映射
    D. 中断系统
    正确答案: A
  25. (单选题) 早期操作系统追求的主要目标是( )。
    A. 低成本
    B. 高效率
    C. 方便性
    D. 可移植性
    正确答案: B
  26. (单选题) 在采用多道程序设计技术的操作系统中,单核CPU( )。
    A. 只能被一个程序占用,只有这个程序运行完才释放CPU
    B. 没有被程序占用
    C. 可以被多个程序同时占用
    D. 可以被多个程序交替占用
    正确答案: D
  27. (单选题) 批处理系统的主要缺点是( )。
    A. CPU的利用率不高
    B. 失去了交互性
    C. 不具备并行性
    D. 以上都不是
    正确答案: B
  28. (单选题) 设计批处理多道系统时,首先要考虑的是()
    A. 灵活性和可适应性
    B. 系统效率和吞吐量
    C. 交互性和响应时间
    D. 实时性和可靠性
    正确答案: B
  29. (单选题) 若把操作系统看作计算机系统资源的管理者,下列( )不属于操作系统所管理的资源。
    A. 程序
    B. 内存
    C. CPU
    D. 中断
    正确答案: D
  30. (单选题) 以下有关分布式操作系统的论述,错误的是( )。
    A. 运行在多个计算机上
    B. 又称紧耦合系统
    C. 目前还没有真正意义上的分布式操作系统
    D. 需要网络操作系统的支持
    正确答案: B
  31. (单选题) 在主机控制下进行的输入/输出操作称为( )操作。
    A. 脱机输入/输出
    B. 并行输入/输出
    C. 联机输入/输出
    D. 串机输入/输出
    正确答案: C
  32. (单选题) 下述操作系统类型中,哪个操作系统一定是由多台计算机组成的系统( )。
    A. 实时
    B. 批处理
    C. 分时
    D. 分布式
    正确答案: D
  33. (单选题) 以下( )项功能不是操作系统具备的主要功能。
    A. 进程管理
    B. 内存管理
    C. 设备管理
    D. 数据管理
    正确答案: D
  34. (单选题) 在( )操作系统控制下,计算机系统能及时处理由过程控制反馈的数据并做出响应。
    A. 实时
    B. 分时
    C. 分布式
    D. 单用户
    正确答案: A
  35. (单选题) 提高CPU利用率的关键技术是( )
    A. 脱机技术
    B. 多道程序设计技术
    C. 交换技术
    D. 虚拟技术
    正确答案: B
  36. (单选题) 下面关于操作系统的叙述中正确的是( )。
    A. 批处理作业必须具有作业控制信息。
    B. 分时系统不一定都具有人机交互功能。
    C. 从响应时间的角度看,实时系统与分时系统差不多。
    D. 由于采用了分时技术,用户可以独占计算机资源。
    正确答案: A
  37. (单选题) ( )不是分时系统的基本特征。
    A. 同时性
    B. 独立性
    C. 实时性
    D. 交互性
    正确答案: C
  38. (单选题) 操作系统是对( )进行管理的软件。
    A. 软件
    B. 硬件
    C. 计算机资源
    D. 应用程序
    正确答案: C
  39. (单选题) 与计算机硬件关系最密切的软件是( )。
    A. 数据库系统
    B. 安全软件
    C. 编译器
    D. 操作系统
    正确答案: D
  40. (单选题) 分时操作系统通常采用( )策略为用户服务。
    A. 可靠性和灵活性
    B. 时间片轮转
    C. 时间片加权分配
    D. 短作业优先
    正确答案: B

清单

清单

嵌入式Linux操作系统 期末复习知识清单

复习指南说明:本文档根据思维导图、期末重点和题型总结而成,涵盖5章内容,突出高频考点和典型题目。建议重点掌握Shell编程、Linux命令和嵌入式开发工具。


第1章 嵌入式Linux操作系统简介

核心概念(常见考点:选择、填空)

1.1 嵌入式系统定义与特征

  • 定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统
  • 三个基本要素:嵌入性、专用性、计算机系统性
  • 高频题型:简答"什么是嵌入式系统?",填空三个要素

1.2 嵌入式Linux操作系统的优势

✓ 支持多种体系结构
✓ 多任务、内核稳定、可定制、源代码开放
✓ 强大的网络支持功能
✓ 支持多文件系统(FAT32、EXT2/3、ROMFS、JFFS)
✓ 驱动丰富,支持大量外设
✓ 具备完整工具链(gcc、make、gdb)

典型考题:列举5个或以上优势

1.3 Linux系统的组成(重点)

组成部分 说明
Linux内核 系统核心,管理资源
Linux Shell 命令解释器,用户与内核交互
Linux应用系统 各种应用程序
Linux文件系统 存储和组织文件

1.4 Linux内核版本与发行版本

版本号格式:r.x.y

  • r:主版本号(0-9),代表较大改动

  • x:次版本号(0-99),表示功能性改动

    • 偶数 = 稳定树;奇数 = 开发树
  • y:末版本号(0-99),表示BUG修复

例题:2.4.20是什么版本?→ 稳定内核版本(x=4为偶数)

1.5 Linux内核的五个子系统(★重点题型)

  1. 进程调度(Process Scheduling)
  2. 内存管理(Memory Management)
  3. 虚拟文件系统(Virtual File System)
  4. 网络接口(Network Interface)
  5. 进程间通信(Inter-Process Communication, IPC)

考法:简答、选择、填空题常出现

1.6 Linux内核源码结构(常考:简答、对应关系)

目录 功能说明
/arch 体系结构相关代码
/mm 内存管理代码
/init 内核初始化代码(main.c、version.c)
/fs 所有文件系统代码
/ipc 进程间通信代码
/kernel 内核管理核心代码
/include 建立内核时需要的头文件
/net 网络相关代码
/lib 库代码

1.7 国产操作系统(选择、填空常考)

  • 深度Linux(deepin)
  • 安超OS
  • 优麒麟(UbuntuKylin)
  • 中标麒麟(NeoKylin)
  • 红旗Linux
  • AliOS
  • openEuler(华为)
  • 鸿蒙OS(Harmony OS) ←最新、最常考

第2章 Linux常用命令(20-30分重点)

2.1 Shell基础知识(选择题常考)

  • # = 超级用户root的提示符
  • $ = 普通用户的提示符

2.2 用户系统相关命令

su – 用户切换命令

su root          # 切换到root用户
su - user1       # 切换到user1(加载环境变量)

磁盘相关命令(★高频考点)

fdisk -l         # 查看磁盘分区信息
du               # 查看目录/文件大小
df               # 查看文件系统磁盘使用情况
free             # 查看内存使用情况

mount – 磁盘挂载命令(★考点)

格式mount [-t vfstype] [-o options] device dir

常用参数解析

参数 说明
-t vfstype 指定文件系统类型
-o options 挂接方式选项
device 要挂接的设备
dir 挂接点

常用vfstype

  • iso9660(光盘)
  • msdos(DOS FAT16)
  • vfat(Windows FAT32)
  • ntfs(Windows NT)
  • nfs(网络文件系统)
  • smbfs(Windows网络共享)

常用options

  • loop(把文件当硬盘挂接)
  • ro(只读)
  • rw(读写)
  • iocharset=cp936(解决中文乱码)

典型考题:U盘挂载步骤

# 1. 查找U盘设备名
fdisk -l                              # 找到 /dev/sdb 等

# 2. 创建挂载点
mkdir -p /mnt/usb

# 3. 挂载U盘
mount /dev/sdb /mnt/usb

# 4. 如果有乱码,加字符集参数
mount /dev/sdb /mnt/usb -t vfat -o iocharset=cp936

# 5. 卸载
umount /mnt/usb

ssh远程登录命令(★考点)

基础语法ssh [-p port_number] username@hostname

参数 说明
-p port_number 指定端口(默认22)
username 登录用户名
hostname 服务器IP或主机名

例题

# 默认端口登录
ssh root@192.168.1.100

# 指定非默认端口
ssh -p 2222 test@47.98.1.1

# 主机名登录
ssh -p 8888 admin@server.example.com

# 等效写法
ssh -l root 192.168.1.100    # 与第一个等效

2.3 文件目录相关命令(重点)

基本命令速查表

命令 功能说明 常用选项
ls 列表显示目录 -l(详细)、-a(隐藏)、-d(仅目录)
cd 改变工作目录 cd / 、cd .. 、cd ~
mkdir 创建目录 -p(多层)、-m(权限)
touch 创建文件 (无主要选项)
file 判断文件类型 (无主要选项)
cat 显示文件内容 -n(编号)、-b(非空编号)
cp 复制文件/目录 -i(询问)、-r(递归)、-a(保留元数据)
mv 移动/重命名 -i(询问覆盖)
rm 删除文件 -f(强制)、-r(递归)
rmdir 删除空目录 -p(删除多层)
head/tail 查看文件头/尾 -n(行数)、-f(跟踪)
ln 创建链接 -s(软链接)、无则硬链接

chmod – 改变文件权限(★考点)

文字表示法chmod [who][+|-|=][mode] file

who:u(owner)、g(group)、o(others)、a(all)

mode:r(读4)、w(写2)、x(执行1)

数字表示法chmod xxx file(3位数字分别代表owner、group、others)

例题

# 只有所有者可读写执行,group可读,others无权限
chmod 740 file

# 等效的文字表示
chmod u=rwx,g=r,o= file

# 给所有者加执行权
chmod u+x file

# 去掉其他人的所有权限
chmod o= file

特殊例题:根据 -rw-r--r-- 回答权限问题

  • 第1位:-表示普通文件
  • 后9位:owner(rw-)、group(r–)、others(r–)
  • 数字表示:644

grep – 文本搜索(★高频)

grep "pattern" file          # 在文件中搜索模式
grep -n "pattern" file       # 显示行号
grep -i "pattern" file       # 不区分大小写
grep -r "pattern" /dir       # 递归搜索目录

find – 文件查找(★考点)

find /path -name "*.c"                    # 按名字查找
find /path -type f -name "*.c"           # 按类型查找(f=文件,d=目录)
find /path -name "*.c" -exec rm {} \;    # 查找并删除

例题集锦

例1:执行 ls -l​ 显示 -rw-r--r-- 1 chris chris 207 Jul 20 11:58 file

  • (1) ls -l 的功能:详细列表显示目录内容
  • (2) 文件类型:普通文件(-)
  • (3) user chris的权限:读写(rw-)
  • (4) 新加用户Tom的权限:读(r–),属于others
  • (5) 如何使所有用户都可读写执行:chmod 777 file​ 或 chmod a=rwx file

例2:复制文件操作

# 将source目录中所有文件复制到target,保留元数据,覆盖前询问
cp -i -r /home/user/source/* /home/user/target

例3:硬链接和软链接区别

ln file1 file2            # 硬链接:inode号相同
ln -s file1 file2         # 软链接:inode号不同

# 查看inode
ls -i file

# 区别:
# - 硬链接:修改文件同步变化,删除原文件,链接仍有效
# - 软链接:修改文件同步变化,如果删除原文件,链接断开

第3章 Shell编程(24分重点:6分选择+19分编程)

3.1 Shell基础(选择题常考)

Shell是什么

  • Shell:命令解释器,用户与内核的接口
  • 分类:图形界面Shell、命令行式Shell

常用Shell版本

  • sh:原始shell
  • bash:GNU shell(最常用)
  • csh、ksh:其他版本

bash的优点(★考点)

  1. 补全命令(Tab键)
  2. 通配符(*、?)
  3. 历史命令(↑↓)
  4. 别名
  5. 输入/输出重定向
  6. 管道(|)
  7. 可定制提示符

3.2 Shell编程基础(重点内容)

3.2.1 脚本基本结构

#!/bin/bash              # 第1行:指定解释器(必须)
# 注释                    # 注释行以#开头

# 脚本内容
echo "Hello World"

脚本执行的4种方式

# 方式1:没有执行权限时
bash script.sh

# 方式2:设置执行权限后直接运行(PATH环境变量中)
chmod +x script.sh
./script.sh

# 方式3:绝对路径执行
/path/to/script.sh

# 方式4:在当前Shell中执行(变量可传递到父Shell)
. script.sh
source script.sh

3.2.2 变量定义与赋值(★考点)

规则

  • 变量名以字母或下划线开头
  • 变量名大小写敏感
  • 定义时不加$,引用时加$
  • 等号两边不能有空格
  • 含空格的值用双引号或单引号括起
# 正确方式
var=10                           # 赋值
echo $var                        # 引用
var="hello world"                # 含空格的值

# 数字运算
var=$[10+5]                     # 方式1
let 'var=10+5'                  # 方式2
var=`expr 10 + 5`               # 方式3(注意+两边有空格)

# 只读变量
readonly var

# 环境变量
export PATH=$PATH:/new/path

位置参数(★高频考点)

参数 含义
$0 脚本名称
undefined… 第1、2…位置参数
$# 位置参数总数
$* 所有位置参数(整体)
$@ 所有位置参数(逐个)
shift 左移位置参数

例题:脚本接收3个参数

#!/bin/bash
if [ $# -ne 3 ]; then
    echo "Usage: $0 arg1 arg2 arg3"
    exit 1
fi
echo "参数1: $1, 参数2: $2, 参数3: $3"

3.2.3 特殊字符与引用

符号 说明 示例
" " 双引号 消除$、`、!、\的含义,其他特殊字符失效
‘ ‘ 单引号 保留所有字符的原意
反引号 执行命令并返回结果
\ 反斜线 转义,也可续行
{} 大括号 标识变量:${var}nd

例题

# 双引号可以解析$变量
MSG="Hello $USER"
echo "$MSG"          # 输出:Hello tom

# 单引号不解析$变量
MSG='Hello $USER'
echo "$MSG"          # 输出:Hello $USER

# 反引号执行命令
result=`date`
result=$(date)       # 推荐写法
echo $result

# 大括号标识变量边界
num=2
echo "This is the ${num}nd day"   # 输出:This is the 2nd day

3.3 流程控制(★重点:题目占分最多)

3.3.1 测试命令 test 或 [ ]

格式test condition​ 或 [ condition ]​(注意中括号两侧要有空格

数值运算操作符(用于比较数值):

操作符 说明
-eq 等于
-ne 不等于
-lt 小于
-le 小于等于
-gt 大于
-ge 大于等于

字符串操作符

操作符 说明
= 字符串相等
!= 字符串不相等
-z 字符串长度为0
-n 字符串长度不为0

文件操作符(★常考):

操作符 说明
-d 是否为目录
-f 是否为普通文件
-l 是否为符号链接
-r 是否可读
-w 是否可写
-x 是否可执行
-e 文件是否存在
-z 文件大小是否为0

逻辑操作符

操作符 说明 示例
&& 逻辑与 [ -d /etc ] && echo yes || echo no
|| 逻辑或 同上
! 逻辑非 [ ! -e file ]

例题

# 判断/etc是否为目录
[ -d /etc ] && echo "是目录" || echo "不是目录"

# 判断用户是否对/etc有写权限
[ -w /etc ] && echo "可写" || echo "不可写"

# 判断文件是否存在且可读
[ -e /etc/passwd ] && [ -r /etc/passwd ] && echo "存在且可读"

3.3.2 if 条件语句(★考点)

单分支

if [ condition ]; then
    statements
fi

双分支

if [ condition ]; then
    statements1
else
    statements2
fi

多分支

if [ condition1 ]; then
    statements1
elif [ condition2 ]; then
    statements2
else
    statements3
fi

考试示例:判断文件是否为0

#!/bin/bash
if [ ! -f "$1" ] || [ -z "$1" ]; then
    rm -f "$1"
    echo "File deleted"
else
    cat "$1"
fi

3.3.3 case 语句

case string in
exp1)
    commands1
    ;;
exp2)
    commands2
    ;;
*)
    default_commands
    ;;
esac

3.3.4 for 循环(★重点)

# 形式1:for循环遍历列表
for item in list; do
    commands
done

# 形式2:传统C风格for循环
for ((i=1; i<=10; i++)); do
    commands
done

# 常见用途
for file in /var/*; do
    echo "Processing $file"
done

for i in `seq 1 30`; do
    username="std0${i}"
    # 处理用户
done

3.3.5 while 和 until 循环

# while:条件为真时循环
while [ condition ]; do
    commands
done

# until:条件为真时退出循环
until [ condition ]; do
    commands
done

3.3.6 break 和 continue

for i in `seq 1 10`; do
    if [ $i -eq 5 ]; then
        continue          # 跳过当前迭代
    fi
    if [ $i -eq 8 ]; then
        break             # 退出循环
    fi
    echo $i
done

3.3.7 函数

# 定义函数
function_name() {
    commands
    return value
}

# 调用函数
function_name arg1 arg2

3.4 Shell编程典型题目(★考试重点)

题目1:判断字符设备文件并复制到/dev

#!/bin/bash
if [ ! -c "$1" ]; then
    echo "Not a character device"
    exit 1
fi
cp "$1" /dev/
echo "File copied to /dev"

知识点:-c 表示字符设备文件

题目2:计算1~n的和

#!/bin/bash
n=$1
sum=0
for ((i=1; i<=n; i++)); do
    sum=$[sum+i]
done
echo "Sum from 1 to $n is: $sum"

题目3:遍历目录并统计普通文件

#!/bin/bash
cd /var

# 向每个文件/目录问好
for FILE in /var/*; do
    echo "Hello, $(basename $FILE)"
done

# 统计普通文件数量
file_count=$(find /var -type f | wc -l)
echo "Total regular files: $file_count"

知识点:find + type f + wc -l 的组合使用

题目4:创建/删除批量用户

# ===== 创建用户脚本 create_users.sh =====
#!/bin/bash
for i in `seq 1 40`; do
    username="user$i"
    useradd -m -s /bin/bash "$username"
    echo "User $username created"
done

# ===== 删除用户脚本 delete_users.sh =====
#!/bin/bash
for i in `seq 1 40`; do
    username="user$i"
    userdel -r "$username"
    echo "User $username deleted"
done

知识点:useradd -m -s选项,seq命令的使用

题目5:处理位置参数的脚本

#!/bin/bash
if [ "$#" -ne 1 ]; then
    echo "Usage: $0 <file>"
    exit 1
fi

if [ -f "$1" ] && [ ! -z "$1" ]; then
    cat "$1"
else
    rm -f "$1"
    echo "File deleted"
fi

第4章 嵌入式Linux开发环境及工具软件(21分)

4.1 嵌入式系统移植流程(★理解题常考)

  1. 建立交叉编译环境:在宿主机上编译目标机程序
  2. 移植U-boot:启动引导程序
  3. 移植操作系统内核:系统核心
  4. 制作根文件系统:存储文件的结构
  5. 配置目标平台:网络、存储、USB等
  6. 编译程序:生成目标可执行文件
  7. 烧写程序:将程序写入目标设备

4.2 交叉编译(★常考概念)

定义:在一个平台上编译另一个平台上可运行的程序

需要原因

  • 目标平台资源有限
  • 提高开发效率
  • 增强代码可移植性

常用工具链

  • arm-linux-gcc:ARM平台交叉编译器
  • armv4l-unknown-linux-gcc:ARM v4架构编译器

4.3 vi/vim 编辑器(★选择、填空)

三种工作模式

模式 功能 进入方式 退出方式
命令模式 光标移动、删除、复制等 启动vi ESC
输入模式 输入文本 i、a、o等 ESC
末行模式 查找、替换、保存等 :(来自命令模式) ESC

常用命令

命令 功能
i/a/o 进入输入模式
h/j/k/l 左下上右移动
dd 删除当前行
yy 复制当前行
p 粘贴
/pattern 查找
:w 保存
:q 退出
:wq 保存并退出
:q! 强制退出(不保存)
:set nu 显示行号

4.4 gcc 编译器(★重点:占分最多)

编译的四个阶段

# 1. 预处理 (Preprocessing) -E
gcc -E hello.c -o hello.i         # 处理#include、#define等

# 2. 编译 (Compiling) -S
gcc -S hello.i -o hello.s         # 生成汇编代码

# 3. 汇编 (Assembling) -c
gcc -c hello.s -o hello.o         # 生成目标文件

# 4. 链接 (Linking) -o
gcc hello.o -o hello              # 生成可执行文件

# 一步到位
gcc hello.c -o hello

gcc常用选项(★考题)

选项 功能 例子
-o file 指定输出文件名 gcc hello.c -o hello
-c 只编译不链接,生成.o文件 gcc -c hello.c
-I dirname 添加头文件搜索路径 gcc -I /usr/include hello.c
-L dirname 添加库文件搜索路径 gcc -L /usr/lib hello.c
-l libname 链接库文件 gcc hello.c -lm(链接math库)
-g 生成调试信息(用于gdb) gcc -g hello.c -o hello
-O 优化编译 gcc -O2 hello.c
-Wall 显示警告信息 gcc -Wall hello.c
-static 静态链接 gcc -static hello.c

重要:数学库 libm 的链接

# math.h 中的函数需要链接 -lm
gcc hello.c -lm -o hello

典型题:解释 -o、-c、-I、-L、-l 的功能

  • -o: 指定输出文件名
  • -c: 只预处理、编译、汇编,不链接
  • -I: 在头文件搜索路径中添加目录
  • -L: 在库文件搜索路径中添加目录
  • -l: 链接库文件(省略lib前缀和.a/.so后缀)

GCC编译工作流程图

源文件(hello.c)
     ↓
[预处理] -E → hello.i (处理指令)
     ↓
[编译] -S → hello.s (汇编代码)
     ↓
[汇编] -c → hello.o (目标文件)
     ↓
[链接] -o → hello (可执行文件)

4.5 gdb 调试器(★常考)

前置条件:编译时必须加 -g 选项

启动方法

# 方法1:启动后加载程序
gdb
(gdb) file hello

# 方法2:直接启动并加载程序
gdb hello

常用命令

命令 简记 功能
step s 单步执行,进入函数
next n 单步执行,不进入函数
list l 查看源代码
print var p var 显示变量值
break 行号 b 行号 设置断点
run r 运行程序
continue c 继续执行
quit q 退出gdb

调试示例

gcc -g hello.c -o hello
gdb hello
(gdb) break main
(gdb) run
(gdb) next
(gdb) print var
(gdb) quit

4.6 make 工程管理器(★重点:常考题)

makefile 的三要素(★必考)

  1. 目标体 (target) :要生成的文件(通常是可执行文件或目标文件)
  2. 依赖文件 (dependency_file) :目标文件所依赖的文件
  3. 执行命令 (command) :生成目标文件所需的命令 (必须以TAB键开头)

makefile 语法规则

target: dependency_file1 dependency_file2 ...
	command1
	command2
	...

注意:command 行必须以TAB键开头,不能用空格

makefile 实例(★常考题)

背景:有文件 hello.c、message.c、head.h,要生成可执行文件 hello

依赖关系分析

hello → hello.o, message.o
hello.o → hello.c, head.h
message.o → message.c

makefile 内容

hello: hello.o message.o
	gcc -o hello hello.o message.o

hello.o: hello.c head.h
	gcc -c hello.c

message.o: message.c
	gcc -c message.c

clean:
	rm -f hello *.o

all.tar: hello.c message.c head.h makefile
	tar cvf all.tar hello.c message.c head.h makefile

make 命令的执行

# 生成第一个目标
make

# 生成指定目标
make hello

# 执行伪目标(清理)
make clean

# 指定配置文件
make -f mymakefile

# 生成all.tar
make all.tar

伪目标 (PHONY target)

.PHONY: clean all

clean:
	rm -f *.o hello

all: hello
	echo "Build complete"

第5章 嵌入式Linux的构建(构建、网络、NFS)

5.1 Bootloader技术(★基础概念题)

什么是Bootloader

  • 启动引导程序,负责加载操作系统内核并引导系统启动
  • 是系统启动的第一段程序代码

Bootloader的安装媒介

媒介 说明
Nor Flash 支持XIP(芯片内执行),程序可直接在Flash中运行
Nand Flash 不支持XIP,需要先加载到内存再执行

Bootloader的操作模式

  1. 启动加载模式:正常启动系统
  2. 下载模式:通过串口、网络等下载程序

常用Bootloader

  • vivi:用于ARM嵌入式系统
  • redboot:用于eCos系统
  • U-boot:最广泛使用

5.2 根文件系统(★常考概念)

什么是根文件系统

  • 特殊文件系统,内核启动时第一个挂载的文件系统
  • 包含系统运行所需的各种程序和配置文件

根文件系统中的重要目录

目录 功能
/bin, /sbin 存放二进制可执行文件
/usr/bin, /usr/sbin 用户程序和系统管理程序
/lib 链接库文件(.so, .a)
/etc 系统配置文件目录
/etc/fstab 文件系统挂载配置(启动自动装载)
/etc/inittab 系统启动解析文件
/etc/passwd 用户口令文件
/etc/shadow 密码影子文件(root可读)
/etc/profile 登录时执行的配置文件
/dev 设备文件
/proc 进程信息目录
/sys 系统信息目录

根文件系统类型

类型 说明
JFFS2 针对Nand Flash的日志型文件系统
YAFFS/YAFFS2 专为闪存优化的文件系统
cramfs 压缩只读文件系统
Romfs 只读文件系统
RAMDISK 基于内存的文件系统

5.3 BusyBox – 根文件系统构建工具(★重点)

特点:被称为"Linux工具里的瑞士军刀"

原理

  • /bin 目录下的所有命令(ls、cat等)都是指向 busybox 的符号链接
  • 一个可执行文件提供多个命令功能

使用 BusyBox 构建根文件系统的步骤

# 1. 下载并解压源码
tar jxvf busybox-1.1.0.tar.bz2
cd busybox-1.1.0

# 2. 配置
make menuconfig

# 3. 编译
make

# 4. 安装(生成_install目录)
make install

# 5. 创建必要目录
mkdir -p _install/{dev,etc,lib,proc,sys}

# 6. 创建根文件系统映像
mkcramfs _install root.cramfs

生成文件说明

  • _install/:根文件系统树
  • root.cramfs:打包后的根文件系统镜像

5.4 Linux内核配置与编译(★考点)

内核编译流程

# 1. 解压内核源码
tar --zxvf linux-2.4.18.tar.gz
cd linux-2.4.18

# 2. 修改Makefile(交叉编译配置)
# SUBARCH := arm              # 指定目标体系结构
# CROSS_COMPILE := arm-linux- # 指定交叉编译器前缀

# 3. 配置内核
make menuconfig

# 4. 检查依赖性
make dep

# 5. 生成内核镜像
make zImage

# 生成文件位置:/arch/arm/boot/zImage

Linux内核的五个子系统(★重要复习点)

  1. 进程调度(Process Scheduling)
  2. 内存管理(Memory Management)
  3. 虚拟文件系统(Virtual File System)
  4. 网络接口(Network Interface)
  5. 进程间通信(IPC)

5.5 NFS 网络文件系统(★重点)

什么是NFS:分布式文件系统,采用C/S工作模式,基于RPC协议

NFS服务器配置

关键配置文件/etc/exports

# /etc/exports 配置示例
/home/nfs_share *(rw,no_root_squash)  # 允许所有主机读写
/home/nfs_share 192.168.1.*(rw)       # 允许192.168.1.x网段读写

NFS客户端挂载

# 格式
mount -t nfs -o nolock server_ip:/export/path /local/mount_point

# 例子:从主机192.168.0.56共享的/dir目录挂载到/host
mount -t nfs -o nolock 192.168.0.56:/dir /host

5.6 嵌入式应用程序交叉编译与NFS调试(★实验常考)

开发流程

# 1. 在宿主机建立工作目录
mkdir /dir && cd /dir

# 2. 编写程序
vi hello.c

# 3. 编写Makefile(如需要)
vi Makefile

# 4. 交叉编译
arm-linux-gcc -o hello hello.c

# 5. 基于NFS的下载调试:
# (1) 宿主机启动NFS服务,配置/etc/exports
# (2) 目标机挂载NFS:mount -t nfs -o nolock 192.168.0.56:/dir /host
# (3) 进入目标机的/host目录,运行程序:./hello

5.7 网络配置(★常用命令)

# 配置IP地址
ifconfig eth0 192.168.1.245 netmask 255.255.255.0

# 测试网络连通性
ping -c 5 -i 0.6 192.168.1.245   # 每隔0.6秒ping一次,共5次
ping -c 5 www.qq.com

# 查看路由表
route

# 查看网络接口
ifconfig

期末考试题型分析与评分分布

考试总分:100分

题型 分值 考查内容 出题特点
一、选择题 17.5分 Linux基础知识、概念 选择适当的命令、版本特征、概念理解
二、选择题 6分 Shell编程基础 变量、位置参数、特殊字符
三、填空题 18分 gcc选项、make命令、目录结构 每空1分,共18题
四、操作命令题 14分 Linux常用命令 文件操作、权限管理、挂载等
五、Shell编程 19分 完整脚本设计 根据需求写脚本(最易失分)
六、嵌入式系统题 12分 项目管理、开发流程 makefile编写、交叉编译流程

各章考点权重

章节 重要程度 分值比例 备注
第1章 ★★★ 20-25% 基础概念,小题多
第2章 ★★★★ 20-25% 命令应用,实践性强
第3章 ★★★★★ 20-30% Shell编程,分值最大
第4章 ★★★★ 20-25% gcc、make重点
第5章 ★★ 10-15% 理论为主

常见易错点总结

Shell编程常错

  1. 等号两边有空格var = 10​ ❌ → var=10
  2. 中括号缺空格[-d /etc]​ ❌ → [ -d /etc ]
  3. 位置参数混淆:$* 和$@ 的区别容易混
  4. 命令输出赋值:使用反引号或$()
  5. 数字运算方式:混淆$[ ]、let、expr的用法

gcc编译常错

  1. 忘记-lm:包含math.h的代码编译失败
  2. -L和-l的顺序:应先-L后-l
  3. -o位置错误:应放在最后

makefile常错

  1. command行缺TAB:用空格替代导致make失败
  2. 依赖关系错误:导致编译顺序混乱
  3. 伪目标定义遗漏:.PHONY声明可能被遗忘

权限表示常错

  • 记不清各位含义:owner-group-others
  • 八进制计算错误:r=4, w=2, x=1

复习建议与快速查看清单

复习重点(必背)

  • 嵌入式系统的三要素:嵌入性、专用性、计算机系统性
  • Linux内核五个子系统:进程调度、内存管理、虚拟文件系统、网络接口、IPC
  • Linux系统四个组成部分:内核、Shell、应用系统、文件系统
  • gcc四个编译阶段:预处理、编译、汇编、链接
  • Shell变量赋值规则:等号两边不能有空格
  • makefile三要素:target、dependency、command(TAB键开头)
  • vi三种模式:命令模式、输入模式、末行模式
  • chmod权限表示:r=4, w=2, x=1,owner-group-others
  • 文件操作符:-d(目录)、-f(文件)、-c(字符设备)、-l(链接)
  • mount挂载参数:-t(文件系统)、-o(挂接方式)、iocharset(字符集)

高频考题预测

题型 预测题目
简答(5-8分) 嵌入式系统定义、Linux系统组成、gcc编译过程
选择(4-6题) Linux版本、Shell特性、gcc选项、命令用途
填空(8-10题) gcc -o -c -I -L -l 选项说明、目录结构、权限数字
命令题(6-8分) 文件权限修改、U盘挂载步骤、SSH登录
编程题(15-20分) 批量创建/删除用户、文件处理、目录遍历统计

快速参考表

Linux命令速查

场景 命令
查看目录详情 ls -l
创建多层目录 mkdir -p dir1/dir2/dir3
复制目录及内容 cp -r dir1 dir2
递归删除目录 rm -r dir
查看文件权限 ls -l file
修改权限为755 chmod 755 file
搜索文件内容 grep "pattern" file
查找文件 find /path -name "*.c"
查找并删除 find /path -name "*.c" -exec rm {} \;
挂载设备 mount /dev/sdb /mnt/usb
卸载设备 umount /mnt/usb
远程登录 ssh -p 22 user@host

gcc编译速查

任务 命令
编译链接一步到位 gcc hello.c -o hello
只编译不链接 gcc -c hello.c
只预处理 gcc -E hello.c -o hello.i
添加头文件路径 gcc -I /usr/include hello.c
链接库文件 gcc hello.c -L /usr/lib -lm
调试编译 gcc -g hello.c -o hello
静态链接 gcc -static hello.c

vi命令速查

功能 命令
进入输入模式 i / a / o
返回命令模式 ESC
进入末行模式 :(来自命令模式)
保存文件 :w
退出不保存 :q!
保存并退出 :wq 或 😡
显示行号 :set nu
删除当前行 dd
复制当前行 yy
粘贴 p

最后提醒

重点复习:Shell编程(最容易失分)、gcc编译、make工程管理

务必掌握:手写Shell脚本、makefile文件、Linux命令组合使用

考前检查:准备草稿纸演算数字权限、makefile依赖关系、编译过程

答题技巧

  • 简答题先答关键点,再展开说明
  • 编程题逐步分析题目需求,先写框架再补充细节
  • 不确定答案时,根据逻辑推断最可能的选项

祝您考试顺利! 🚀

C34

C34

(判断题)Shell中的单引号和双引号功能完全相同。()

  • true. 正确
  • false. 错误
  • 正确答案:false
  • 解析:在Shell中,单引号会原样输出所有内容,不进行变量替换和命令替换;而双引号允许变量替换和命令替换,并对部分特殊字符进行转义。因此它们的功能并不完全相同。

(填空题)在Shell中,[填空1]命令可以重新执行刚修改的初始化文件。

  • 正确答案:source 或 .
  • 解析:source​ 命令(也可以用 . 命令)用于在当前Shell环境中执行指定的脚本文件,常用于重新加载配置文件,使修改后的初始化文件立即生效。

(填空题)Shell脚本中,用于读取用户输入的命令是[填空1] 。

  • 正确答案:read
  • 解析:read 命令用于从标准输入读取一行数据,并将其赋值给一个或多个变量,常用于Shell脚本中与用户交互。

(填空题)Shell脚本的第一行通常是[填空1]。

  • 正确答案:#!/bin/bash 或 #!/bin/sh
  • 解析:Shell脚本的第一行通常是指定解释器的路径,例如 #!/bin/bash,这告诉系统使用哪个解释器来执行该脚本。

(多选题)下列哪些是Shell中的特殊变量?( )

  • A. $0
  • B. $#
  • C. $*
  • D. $?
  • 正确答案:A、B、C、D
  • 解析:Shell中的特殊变量包括:$0​ 表示脚本名称,$#​ 表示传递给脚本的参数个数,$*​ 表示所有参数列表,$? 表示上一个命令的退出状态。因此所有选项都是正确的。

(主观题)请简述Shell中重定向操作符>和>>的区别。

  • 正确答案:>​ 用于将命令的输出重定向到文件,如果文件已存在则会覆盖原有内容;>> 用于将命令的输出追加到文件末尾,如果文件不存在则创建新文件,不会覆盖原有内容。
  • 解析:重定向操作符 >​ 和 >>​ 都用于输出重定向,但 >​ 是覆盖写入,而 >> 是追加写入。

(判断题)Shell中的if语句必须以fi结束。()

  • true. 正确
  • false. 错误
  • 正确答案:true
  • 解析:Shell中的if语句使用 if​ 开始,并以 fi 结束,这是Shell脚本的语法规则。

(单选题)Shell中,单引号和双引号的主要区别是( )

  • A. 单引号不允许变量替换
  • B. 双引号不允许变量替换
  • C. 没有区别
  • D. 单引号允许特殊字符转义
  • 正确答案:A
  • 解析:单引号内的所有字符都原样输出,不进行变量替换和命令替换;双引号允许变量替换和命令替换,并对部分特殊字符进行转义。

(单选题)在Shell中,哪个符号用于将命令放在后台运行?( )

  • A. &
  • B. |
  • C. ;
  • D. >
  • 正确答案:A
  • 解析:&​ 符号用于将命令放在后台运行,使其不占用当前终端;|​ 是管道符号,;​ 用于分隔多个命令,> 是输出重定向符号。

(判断题)Shell脚本必须有执行权限才能运行。()

  • true. 正确
  • false. 错误
  • 正确答案:true
  • 解析:Shell脚本需要具有执行权限(例如通过 chmod +x script.sh​ 设置)才能直接运行,否则只能通过指定解释器(如 bash script.sh)来执行。

(填空题)Shell中测试文件是否存在的操作符是[填空1]。

  • 正确答案:-e 或 -f
  • 解析:-e​ 用于测试文件是否存在(包括任何类型),-f​ 用于测试文件是否存在且为普通文件。在条件测试中常用 [ -e file ]​ 或 [ -f file ]

(判断题)Shell中的$0表示当前脚本的文件名。()

  • true. 正确
  • false. 错误
  • 正确答案:true
  • 解析:$0 是Shell脚本中的特殊变量,表示当前脚本的文件名(包括路径)。

(填空题)Shell脚本中,用于检查文件file.txt是否存在的条件表达式是[填空1] 。

  • 正确答案:[ -f file.txt ] 或 test -f file.txt
  • 解析:条件表达式 [ -f file.txt ]​ 或 test -f file.txt 用于检查 file.txt 是否存在且为普通文件。

(填空题)在Shell脚本中,用于在后台执行命令的符号是[填空1] 。

  • 正确答案:&
  • 解析:& 符号用于将命令放在后台执行,使其不阻塞当前终端。

(判断题)Shell中的变量默认都是全局变量。()

  • true. 正确
  • false. 错误
  • 正确答案:true
  • 解析:在Shell中,默认情况下定义的变量都是全局变量,在整个脚本中可见。但函数内部可以通过 local 关键字定义局部变量。

(单选题)在Shell中,哪个命令可以让命令别名永久生效?( )

  • A. alias命令
  • B. 写入~/.bashrc文件
  • C. export命令
  • D. source命令
  • 正确答案:B
  • 解析:alias​ 命令设置的别名只在当前会话有效,要永久生效需要将别名定义写入Shell的配置文件(如 ~/.bashrc​),然后通过 source ~/.bashrc 重新加载。

(填空题)vi编辑器的工作模式包括[填空1]、[填空2]和[填空3]。

  • 正确答案:命令模式、插入模式、底行模式
  • 解析:vi编辑器有三种基本工作模式:命令模式(用于执行编辑命令)、插入模式(用于输入文本)和底行模式(用于执行保存、退出等操作)。

(填空题)make工具默认读取的配置文件是[填空1]。

  • 正确答案:Makefile 或 makefile
  • 解析:make工具默认在当前目录下查找名为 Makefile​ 或 makefile 的配置文件,用于定义编译规则和依赖关系。

C2

C2

(单选题)使用 zip 命令制作包含子目录的压缩包,需添加哪个参数实现递归打包?

  • A. -q
  • B. -o
  • C. -r
  • D. -9
  • 正确答案:C
  • 解析:zip命令的-r参数表示递归处理,将指定目录下的所有文件和子目录一并处理。

(单选题)touch 命令的主要作用是?

  • A. 复制文件
  • B. 创建空文件
  • C. 删除文件
  • D. 移动文件
  • 正确答案:B
  • 解析:touch命令主要用于创建新的空文件或更新现有文件的时间戳。

(单选题)使用 cat 命令查看文件内容时,以下说法正确的是?

  • A. 只能查看文件前 10 行内容
  • B. 只能查看文件最后 10 行内容
  • C. 可查看文件全部内容
  • D. 需按空格键翻页查看
  • 正确答案:C
  • 解析:cat命令用于连接文件并打印到标准输出设备,可以查看文件的全部内容。

(单选题)使用 find 命令查找 /root 目录下最近 3 天内修改过的文件,正确的命令是?

  • A. find /root -mtime 3
  • B. find /root -mtime -3
  • C. find /root -atime -3
  • D. find /root -ctime 3
  • 正确答案:B
  • 解析:find命令的-mtime参数用于按修改时间查找,-3表示3天以内,+3表示3天以前。

(单选题)要切换到用户家目录,以下哪个命令无法实现?

  • A. cd ~
  • B. cd
  • C. cd /home/ 用户名
  • D. cd ..
  • 正确答案:D
  • 解析:cd ..是切换到上级目录,而不是用户的家目录。

(多选题)下列命令中,可用于文件打包压缩的有( )

  • A. tar -czf
  • B. tar -cjf
  • C. gzip
  • D. mv
  • 正确答案:A、B、C
  • 解析:tar -czf用于打包并gzip压缩,tar -cjf用于打包并bzip2压缩,gzip用于压缩文件。mv是移动或重命名文件,不用于打包压缩。

(判断题)useradd命令默认会自动创建用户的主目录。( )

  • true. 正确
  • false. 错误
  • 正确答案:false
  • 解析:useradd命令默认不会创建用户的主目录,需要使用-m选项才会创建。

(单选题)创建用户组dev_group的正确命令是( )

  • A. useradd dev_group
  • B. groupdel dev_group
  • C. groupadd dev_group
  • D. usermod -g dev_group
  • 正确答案:C
  • 解析:groupadd命令用于创建新的用户组。

(判断题)chmod 755 testdir命令表示所有者拥有全部权限,组用户和其他用户拥有读和执行权限。( )

  • true. 正确
  • false. 错误
  • 正确答案:true
  • 解析:755权限对应所有者rwx,组用户r-x,其他用户r-x。

(单选题)使用数字法修改文件权限,要使文件所有者可读可写可执行、所属组可读可执行、其他人只读,对应的权限数字是?

  • A. 754
  • B. 755
  • C. 644
  • D. 774
  • 正确答案:A
  • 解析:所有者rwx=7,组r-x=5,其他人r–=4,所以是754。

(单选题)执行 “ls -a” 命令的作用是?

  • A. 查看当前目录非隐藏文件及文件夹详细信息
  • B. 查看当前目录所有文件及文件夹(含隐藏文件)
  • C. 查看指定目录下的文件及文件夹
  • D. 查看当前目录非隐藏文件及文件夹
  • 正确答案:B
  • 解析:ls -a显示所有文件和目录,包括以.开头的隐藏文件。

(判断题)mv命令不仅可以移动文件,还可以重命名文件。( )

  • true. 正确
  • false. 错误
  • 正确答案:true
  • 解析:mv命令用于移动或重命名文件和目录。

(多选题)下列关于Linux文件权限的描述,正确的有( )

  • A. 权限分为所有者、组用户、其他用户三个维度
  • B. r表示读权限,w表示写权限,x表示执行权限
  • C. 权限数字表示法中,r=4、w=2、x=1
  • D. 目录的x权限表示可以删除该目录
  • 正确答案:A、B、C
  • 解析:D错误,目录的x权限表示可以进入该目录,删除目录需要父目录的写权限。

(多选题)将当前目录下后缀为.log的文件移动到/backup/logfiles目录下的正确命令是( )

  • A. cp *.log /backup/logfiles/
  • B. mv *.log /backup/logfiles/
  • C. rm *.log /backup/logfiles/
  • D. ls *.log /backup/logfiles/
  • 正确答案:B
  • 解析:mv命令用于移动文件,*.log匹配所有.log文件。

(单选题)在 Linux 系统中,使用以下哪个命令可以重启操作系统?

  • A. shutdown
  • B. reboot
  • C. logout
  • D. exit
  • 正确答案:B
  • 解析:reboot命令用于重启系统。

(单选题)关于硬链接和软链接,以下说法正确的是?

  • A. 硬链接和源文件 inode 节点信息不同
  • B. 删除源文件后,硬链接文件无法正常访问
  • C. 软链接和源文件 inode 节点信息相同
  • D. 删除源文件后,软链接文件无法正常访问
  • 正确答案:D
  • 解析:软链接是一个独立的文件,指向源文件,源文件删除后软链接失效。

(单选题)解压 tar.gz 格式的压缩包到指定目录 /root/test,正确的命令是?

  • A. tar -zxvf 压缩包名 -C /root/test
  • B. tar -cvf 压缩包名 -C /root/test
  • C. unzip 压缩包名 -d /root/test
  • D. tar -xvf 压缩包名 /root/test
  • 正确答案:A
  • 解析:tar -zxvf用于解压.tar.gz文件,-C指定解压目录。

(单选题)已知目录testdir初始权限为rwxrw-r–,将其修改为所有者拥有全部权限,组用户仅可读,其他用户无任何权限的正确命令是( )

  • A. chmod 740 testdir
  • B. chmod 750 testdir
  • C. chmod 744 testdir
  • D. chmod 704 testdir
  • 正确答案:A
  • 解析:rwxrw-r–对应764,目标权限为rwxr—–即740。

(单选题)下列命令中,可切换到root用户的是( )

  • A. useradd root
  • B. su root
  • C. groupadd root
  • D. passwd root
  • 正确答案:B
  • 解析:su命令用于切换用户,su root切换到root用户。

(多选题)关于 cp 命令,以下说法正确的有?【多选】

  • A. cp 源文件 目标路径 可复制文件到指定路径
  • B. cp -r 源目录 目标路径 可复制目录到指定路径
  • C. cp -i 源文件 目标文件 会在覆盖目标文件前提示确认
  • D. cp 命令无法复制隐藏文件
  • 正确答案:A、B、C
  • 解析:D错误,cp命令可以复制隐藏文件。

(单选题)下列关于passwd文件的描述,正确的是( )

  • A. passwd文件类型为目录
  • B. passwd文件所属的组为root
  • C. passwd文件用于存储用户密码信息
  • D. passwd文件默认设置SUID权限
  • 正确答案:B
  • 解析:/etc/passwd文件存储用户账户信息,密码信息存储在/etc/shadow中。

(多选题)下列关于Linux网络配置的描述,正确的有( )

  • A. ens33是常见的网卡名称
  • B. 配置IP地址后需要重启网络服务才能生效
  • C. ping命令可用于测试网络连通性
  • D. 子网掩码255.255.255.0对应的网络位为24位
  • 正确答案:A、B、C、D
  • 解析:所有选项描述均正确。

(多选题)关于passwd文件的SUID权限,下列描述正确的有( )

  • A. SUID权限仅对普通文件有效
  • B. 设置SUID权限后,用户执行该文件时将拥有文件所有者的权限
  • C. passwd文件设置SUID权限是为了让普通用户能修改自身密码
  • D. 删除passwd文件的SUID权限后,普通用户仍可正常修改自身密码
  • 正确答案:A、B、C
  • 解析:D错误,删除SUID权限后普通用户无法修改密码。

(单选题)复制目录时,需要在 cp 命令后添加哪个参数实现递归复制?

  • A. -f
  • B. -r
  • C. -l
  • D. -v
  • 正确答案:B
  • 解析:cp -r用于递归复制目录及其内容。

(单选题)将当前目录下后缀为.log的文件移动到/backup/logfiles目录下的正确命令是( )

  • A. cp *.log /backup/logfiles/
  • B. mv *.log /backup/logfiles/
  • C. rm *.log /backup/logfiles/
  • D. ls *.log /backup/logfiles/
  • 正确答案:B
  • 解析:mv命令用于移动文件,*.log匹配所有.log文件。

(多选题)以下哪些命令可以用于查看系统相关信息?【多选】

  • A. uptime(查看系统负载)
  • B. date(查看或设置系统日期时间)
  • C. last(查看用户最近登录信息)
  • D. history(查看历史命令)
  • 正确答案:A、B、C、D
  • 解析:所有命令都可以用于查看系统相关信息。

(单选题)查看当前目录所有内容(含隐藏文件)并显示详细属性的命令是( )

  • A. ls -l
  • B. ls -a
  • C. ls -la
  • D. ls -lh
  • 正确答案:C
  • 解析:ls -la显示所有文件(含隐藏文件)的详细信息。

(单选题)要查看 pwd 命令的绝对路径,应使用以下哪个命令?

  • A. whereis pwd
  • B. which pwd
  • C. find /-name pwd
  • D. ls -l pwd
  • 正确答案:B
  • 解析:which命令用于查找并显示给定命令的绝对路径。

(单选题)创建属于dev_group组的用户dev_user,并指定主目录为/opt/dev__home的正确命令是( )

  • A. useradd -g dev_group -d /opt/dev_user_home dev_user
  • B. useradd -G dev_group -d /opt/dev_user_home dev_user
  • C. useradd -g dev_group -m /opt/dev_user_home dev_user
  • D. useradd -G dev_group -m /opt/dev_user_home dev_user
  • 正确答案:A
  • 解析:-g指定主组,-d指定家目录。

(单选题)要查看文件从第 15 行开始的所有内容,应使用以下哪个命令?

  • A. head -n 15 文件名
  • B. tail -n 15 文件名
  • C. tail -n +15 文件名
  • D. head -n +15 文件名
  • 正确答案:C
  • 解析:tail -n +15表示从第15行开始显示到文件末尾。

(单选题)使用 mkdir 命令创建目录时,若要在 /root 目录下创建 test4 目录,以下哪个命令正确?

  • A. mkdir test4
  • B. mkdir ./test4
  • C. mkdir /root/test4
  • D. mkdir ~/../test4
  • 正确答案:C
  • 解析:mkdir /root/test4在指定路径/root下创建test4目录。

(多选题)以下哪些参数可用于 tar 命令?【多选】

  • A. -c(创建 tar 包)
  • B. -x(解包 tar 包)
  • C. -z(处理 gz 格式压缩)
  • D. -f(指定 tar 包文件名)
  • 正确答案:A、B、C、D
  • 解析:所有选项都是tar命令的常用参数。

(判断题)ping -c 5 192.168.1.1命令表示持续ping目标主机,直到手动终止。( )

  • true. 正确
  • false. 错误
  • 正确答案:false
  • 解析:-c 5表示发送5个数据包后停止,不是持续ping。

(单选题)测试与目标主机网络连通性,持续发送3个数据包的命令是( )

  • A. ping -c 3 192.168.1.220
  • B. ping -n 3 192.168.1.220
  • C. ping -t 3 192.168.1.220
  • D. ping -w 3 192.168.1.220
  • 正确答案:A
  • 解析:ping -c指定发送数据包的数量。

(判断题)如果使用ls -l /etc/passwd命令,显示“-rwsr-xr-x 2 root bin 128560 Apr 10 08:15 passwd”文件所属用户为root,所属组为bin。( )

  • true. 正确
  • false. 错误
  • 正确答案:true
  • 解析:输出中root和bin分别表示所有者和所属组。

(单选题)将/backup/logfiles目录打包并压缩为logfiles.tar.bz2文件的正确命令是( )

  • A. tar -czf logfiles.tar.bz2 /backup/logfiles/
  • B. tar -cjf logfiles.tar.bz2 /backup/logfiles/
  • C. tar -xzf logfiles.tar.bz2 /backup/logfiles/
  • D. tar -xjf logfiles.tar.bz2 /backup/logfiles/
  • 正确答案:B
  • 解析:tar -cjf用于创建.bz2格式的压缩包。

(单选题)删除非空目录时,以下哪个命令正确?

  • A. rmdir 目录名
  • B. rm 目录名
  • C. rm -r 目录名
  • D. rm -f 目录名
  • 正确答案:C
  • 解析:rm -r用于递归删除目录及其内容。

(多选题)下列属于Linux用户管理相关命令的有( )

  • A. useradd
  • B. groupadd
  • C. passwd
  • D. chmod
  • 正确答案:A、B、C
  • 解析:chmod用于修改文件权限,不属于用户管理命令。

(多选题)以下哪些命令可以用于退出当前用户登录?【多选】

  • A. logout
  • B. exit
  • C. reboot
  • D. shutdown
  • 正确答案:A、B
  • 解析:logout和exit用于退出当前登录会话,reboot和shutdown用于重启或关机。

(单选题)对于文件权限输出“-rwsr-xr-x”,开头第4位的s代表的特殊权限是( )

  • A. SUID权限
  • B. SGID权限
  • C. Sticky权限
  • D. 无特殊权限
  • 正确答案:A
  • 解析:在所有者权限位上的s表示SUID权限。

(多选题)以下哪些命令可以用于查看文件内容?【多选】

  • A. cat
  • B. head
  • C. tail
  • D. less
  • 正确答案:A、B、C、D
  • 解析:所有命令都可以用于查看文件内容,各有不同特点。

C1

C1

(判断题)Linux文件权限rwxr-xr–对应的数字是754。()

  • true. 正确
  • false. 错误
  • 正确答案:true
解析:rwx对应数字7,r-x对应数字5,r–对应数字4,所以rwxr-xr–的数字权限是754。

(多选题)Linux 内核的抽象结构包含哪些子系统?( )

  • A. 进程调度
  • B. 内存管理
  • C. 虚拟文件系统
  • D. 网络接口
  • E. 进程间通信
  • 正确答案:ABCDE
解析:Linux内核的主要子系统包括进程调度、内存管理、虚拟文件系统、网络接口和进程间通信。

(判断题)GPL协议允许闭源商业使用。()

  • true. 正确
  • false. 错误
  • 正确答案:false
解析:GPL(GNU通用公共许可证)要求衍生作品也必须开源,不允许闭源商业使用。

(单选题)在 Linux 内核现行版本号规则(2011 年至今)下,对 “6.11.3” 版本的描述正确的是?( )

  • A. 属于开发版,因次版本号 11 为奇数,需迭代后转为稳定版
  • B. 属于基础稳定版,是 6.x 系列第 11 个正式稳定版,3 代表功能更新次数
  • C. 属于小更新稳定版,基于 6.11 基础版修复漏洞,不新增核心功能
  • D. 属于 LTS 长期支持版,会提供数年的维护支持,适合企业生产环境
  • 正确答案:C
解析:2011年后的版本规则中,主版本号.次版本号.修订号,次版本号不再区分奇偶,所有版本都是稳定版。修订号表示小更新,主要修复漏洞,不新增核心功能。

(多选题)以下属于国产 Linux 操作系统的有?( )

  • A. 深度 Linux(deepin)
  • B. 优麒麟(UbuntuKylin)
  • C. 中标麒麟(NeoKylin)
  • D. Red Hat Linux
  • E. openEuler
  • 正确答案:ABCE
解析:Red Hat Linux是美国红帽公司的产品,不属于国产Linux操作系统。

(单选题)Linux 系统中,负责解释用户输入的命令并将其送到内核的组件是?( )

  • A. 内核
  • B. Shell
  • C. 应用系统
  • D. 文件系统
  • 正确答案:B
解析:Shell是命令解释器,负责接收用户输入的命令,解释后传递给内核执行。

(单选题)Linux 系统中,设备独立性是指?( )

  • A. 操作系统可在不同硬件平台运行
  • B. 操作系统把所有外部设备统一当作文件看待,安装驱动后可像使用文件一样操作
  • C. 多个用户可同时使用系统资源
  • D. 系统可同时执行多个程序,且程序运行互相独立
  • 正确答案:B
解析:Linux的设备独立性是指将外部设备抽象为文件,通过文件操作接口来访问设备。

(单选题)以下关于硬链接和软链接的说法,错误的是()

  • A. 硬链接的inode号与原文件相同
  • B. 软链接的inode号与原文件不同
  • C. 修改原文件名称后,硬链接仍有效
  • D. 修改原文件名称后,软链接仍有效
  • 正确答案:D
解析:软链接保存的是原文件的路径,如果原文件名称被修改,软链接会失效(除非路径不变或更新链接)。硬链接指向inode,修改文件名不影响硬链接。

(单选题)以下哪个 Linux 发行版本是 Red Hat Enterprise Linux()的社区克隆版本,且曾是免费版本?( )

  • A. Fedora Core
  • B. Ubuntu Linux
  • C. CentOS
  • D. Debian Linux
  • 正确答案:C
解析:CentOS是RHEL的社区克隆版本,提供免费的企业级操作系统,但已被Red Hat收购。

(判断题)/etc目录主要用于存放系统配置文件。()

  • true. 正确
  • false. 错误
  • 正确答案:true
解析:/etc目录在Linux系统中专门用于存放系统和应用程序的配置文件。

(单选题)在早期 Linux 内核版本规则(1991-2011 年)中,以下哪个版本是稳定版?( )

  • A. 2.5.75
  • B. 2.3.40
  • C. 2.6.39
  • D. 3.1.0
  • 正确答案:C
解析:早期规则中,次版本号为偶数表示稳定版,奇数为开发版。2.6.x系列是稳定版。

(多选题)以下关于嵌入式 Linux 操作系统优势的描述正确的有?( )

  • A. 支持多种体系结构
  • B. 多任务,内核稳定,可定制,源代码开放
  • C. 强大的网络支持功能
  • D. 支持多文件系统(如 FAT32,EXT2/3 等)
  • E. 驱动丰富,支持大量的外设
  • 正确答案:ABCDE
解析:嵌入式Linux具有开源、可定制、支持多种硬件架构、网络功能强、文件系统丰富和外设驱动多等优势。

(单选题)以下哪个不属于 Linux 系统的组成部分?( )

  • A. 内核
  • B. 图形处理器(GPU)
  • C. Shell
  • D. 应用系统
  • 正确答案:B
解析:GPU是硬件组件,不属于Linux系统的软件组成部分。Linux系统主要包括内核、Shell和应用系统。

(单选题)嵌入式操作系统相比通用 PC 操作系统,以下哪个特点是正确的?( )

  • A. 通常使用高性能 CPU
  • B. 内存容量较大
  • C. 功耗通常非常低,适合电池供电
  • D. 可运行各种通用应用程序
  • 正确答案:C
解析:嵌入式系统通常资源有限,强调低功耗、实时性和可靠性,适合电池供电场景。

(单选题)下列不属于国产Linux操作系统的是()

  • A. Ubuntu
  • B. deepin
  • C. openEuler
  • D. 银河麒麟KYLIN
  • 正确答案:A
解析:Ubuntu是国外公司Canonical发行的Linux操作系统,不属于国产系统。

(单选题)以下哪个国产操作系统采用中国制定的木兰宽松许可证 2.0?( )

  • A. 深度 Linux(deepin)
  • B. 优麒麟(UbuntuKylin)
  • C. openEuler
  • D. 鸿蒙(Harmony OS)
  • 正确答案:C
解析:openEuler采用木兰宽松许可证2.0,这是一个中国自主制定的开源许可证。

C1-陪练

C1-陪练

  • (判断题)Linux文件权限rwxr-xr–对应的数字是754。()

    • A. 正确
    • B. 错误
    • 正确答案:A
    • 解析:rwxr-xr–对应的权限数字计算:所有者权限rwx=4+2+1=7,所属组权限r-x=4+0+1=5,其他用户权限r–=4+0+0=4,因此数字表示为754。
  • (多选题)Linux 内核的抽象结构包含哪些子系统?( )

    • A. 进程调度
    • B. 内存管理
    • C. 虚拟文件系统
    • D. 网络接口
    • E. 进程间通信
    • 正确答案:A、B、C、D、E
    • 解析:Linux内核的抽象结构通常包含五大子系统:进程调度(SCHED)、内存管理(MM)、虚拟文件系统(VFS)、网络接口(NET)和进程间通信(IPC)。
  • (判断题)GPL协议允许闭源商业使用。()

    • A. 正确
    • B. 错误
    • 正确答案:B
    • 解析:GPL(GNU通用公共许可证)协议要求任何基于GPL代码的衍生作品也必须以GPL协议开源,不允许闭源,但允许商业使用(需遵守开源规定)。
  • (单选题)在 Linux 内核现行版本号规则(2011 年至今)下,对 “6.11.3” 版本的描述正确的是?( )

    • A. 属于开发版,因次版本号 11 为奇数,需迭代后转为稳定版
    • B. 属于基础稳定版,是 6.x 系列第 11 个正式稳定版,3 代表功能更新次数
    • C. 属于小更新稳定版,基于 6.11 基础版修复漏洞,不新增核心功能
    • D. 属于 LTS 长期支持版,会提供数年的维护支持,适合企业生产环境
    • 正确答案:C
    • 解析:自2011年起,Linux内核版本号采用“主版本.次版本.修订版本”格式,次版本号不再区分奇偶(均为稳定版),修订版本号表示小更新(如漏洞修复)。因此6.11.3是基于6.11基础版的小更新稳定版。
  • (多选题)以下属于国产 Linux 操作系统的有?( )

    • A. 深度 Linux(deepin)
    • B. 优麒麟(UbuntuKylin)
    • C. 中标麒麟(NeoKylin)
    • D. Red Hat Linux
    • E. openEuler
    • 正确答案:A、B、C、E
    • 解析:Red Hat Linux是美国公司发行的Linux系统,不属于国产。深度、优麒麟、中标麒麟和openEuler均为国产Linux操作系统。
  • (单选题)Linux 系统中,负责解释用户输入的命令并将其送到内核的组件是?( )

    • A. 内核
    • B. Shell
    • C. 应用系统
    • D. 文件系统
    • 正确答案:B
    • 解析:Shell是用户与内核之间的接口,负责解释用户输入的命令并传递给内核执行。
  • (单选题)Linux 系统中,设备独立性是指?( )

    • A. 操作系统可在不同硬件平台运行
    • B. 操作系统把所有外部设备统一当作文件看待,安装驱动后可像使用文件一样操作
    • C. 多个用户可同时使用系统资源
    • D. 系统可同时执行多个程序,且程序运行互相独立
    • 正确答案:B
    • 解析:Linux的设备独立性是指将所有外部设备视为文件(设备文件),通过文件操作接口(如read/write)来访问设备,简化了设备管理。
  • (单选题)以下关于硬链接和软链接的说法,错误的是()

    • A. 硬链接的inode号与原文件相同
    • B. 软链接的inode号与原文件不同
    • C. 修改原文件名称后,硬链接仍有效
    • D. 修改原文件名称后,软链接仍有效
    • 正确答案:D
    • 解析:硬链接与原文件共享inode,改名后仍有效;软链接是一个独立的文件(inode不同),其内容指向原文件的路径,若原文件改名,软链接将失效(除非路径同步更新)。
  • (单选题)以下哪个 Linux 发行版本是 Red Hat Enterprise Linux()的社区克隆版本,且曾是免费版本?( )

    • A. Fedora Core
    • B. Ubuntu Linux
    • C. CentOS
    • D. Debian Linux
    • 正确答案:C
    • 解析:CentOS是RHEL(Red Hat Enterprise Linux)的社区克隆版本,曾提供免费的企业级操作系统,与RHEL高度兼容。
  • (判断题)/etc目录主要用于存放系统配置文件。()

    • A. 正确
    • B. 错误
    • 正确答案:A
    • 解析:/etc目录是Linux系统中存放系统配置文件的目录,如网络配置、用户账户配置等。
  • (单选题)在早期 Linux 内核版本规则(1991-2011 年)中,以下哪个版本是稳定版?( )

    • A. 2.5.75
    • B. 2.3.40
    • C. 2.6.39
    • D. 3.1.0
    • 正确答案:C
    • 解析:早期版本规则中,次版本号为奇数表示开发版(如2.5、2.3),偶数表示稳定版(如2.6)。因此2.6.39是稳定版。
  • (多选题)以下关于嵌入式 Linux 操作系统优势的描述正确的有?( )

    • A. 支持多种体系结构
    • B. 多任务,内核稳定,可定制,源代码开放
    • C. 强大的网络支持功能
    • D. 支持多文件系统(如 FAT32,EXT2/3 等)
    • E. 驱动丰富,支持大量的外设
    • 正确答案:A、B、C、D、E
    • 解析:嵌入式Linux具有开源、可定制、内核稳定、支持多任务、多体系结构、丰富驱动、强大网络功能和多文件系统等优势。
  • (单选题)以下哪个不属于 Linux 系统的组成部分?( )

    • A. 内核
    • B. 图形处理器(GPU)
    • C. Shell
    • D. 应用系统
    • 正确答案:B
    • 解析:Linux系统主要由内核、Shell和应用系统组成。GPU是硬件组件,不属于Linux系统的软件组成部分。
  • (单选题)嵌入式操作系统相比通用 PC 操作系统,以下哪个特点是正确的?( )

    • A. 通常使用高性能 CPU
    • B. 内存容量较大
    • C. 功耗通常非常低,适合电池供电
    • D. 可运行各种通用应用程序
    • 正确答案:C
    • 解析:嵌入式操作系统通常针对特定硬件设计,强调低功耗、实时性和可靠性,适合电池供电环境,与通用PC操作系统的高性能、大内存等特点不同。
  • (单选题)下列不属于国产Linux操作系统的是()

    • A. Ubuntu
    • B. deepin
    • C. openEuler
    • D. 银河麒麟KYLIN
    • 正确答案:A
    • 解析:Ubuntu是由Canonical公司(总部在英国)发行的国际Linux发行版,不属于国产。deepin、openEuler和银河麒麟均为国产系统。
  • (单选题)以下哪个国产操作系统采用中国制定的木兰宽松许可证 2.0?( )

    • A. 深度 Linux(deepin)
    • B. 优麒麟(UbuntuKylin)
    • C. openEuler
    • D. 鸿蒙(Harmony OS)
    • 正确答案:C
    • 解析:openEuler操作系统采用木兰宽松许可证2.0(MulanPSL v2),这是一个中国自主制定的开源许可证。

Nix & NixOS 探索:代码即操作系统的革命性 Linux 发行版

Nix & NixOS 探索:代码即操作系统的革命性 Linux 发行版

NixOS 是一个基于 Nix 包管理器的 Linux 发行版,它采用了全新的系统管理范式,将声明式配置不可变基础设施理念融入操作系统设计。与传统的命令式系统管理不同,NixOS 通过编写 Nix 表达式来定义整个系统状态,包括内核、应用程序和服务配置,从而实现了系统配置的可版本控制、可复现和原子性更新 。NixOS 代表了 Linux 系统管理的一次重大范式转变,它不仅是一个操作系统,更是一种系统管理哲学,为开发者和系统管理员提供了前所未有的灵活性和可靠性。

image

一、NixOS 的基本概念与背景

NixOS 的核心在于其独特的包管理器 Nix。Nix 是一种函数式包管理器,它通过哈希值来标识和隔离软件包。每个软件包在构建过程中会生成一个唯一的哈希值,该哈希值作为软件包安装路径的前缀,确保了不同版本的软件包可以安全地共存于同一系统中 。例如,如果一个特定版本的 Glibc 构建哈希为 8d013ea878d0,则它会被安装在/nix/store/8d013ea878d0-glibc-2.3.2,所有依赖它的软件都会链接到这个精确路径。这种机制从根本上解决了传统 Linux 发行版中的依赖冲突问题。

NixOS 由开发 Nix 的同一团队构建,它将 Nix 包管理器的概念扩展到整个操作系统层面 。NixOS 不遵循传统的文件系统层级标准(FHS),而是采用了一种扁平的符号链接结构,使得系统配置可以被精确地版本控制和回滚 。NixOS 的配置文件位于/etc/nixos/configuration.nix,它使用 Nix 语言编写,描述了系统应该呈现的状态,而非如何逐步构建系统 。

NixOS 的定位是为追求系统可复现性和一致性的用户提供解决方案。与 Arch Linux 的滚动更新和 Gentoo 的源码编译不同,NixOS 强调通过声明式配置实现环境的一致性,无论是在开发者的笔记本上还是在生产服务器上 。NixOS 最大的优势在于它能够确保"一次配置,到处运行" ,这对于需要在多个环境中保持一致的开发者和团队来说尤为宝贵。

image

二、NixOS 的核心特性

NixOS 的核心特性使其在 Linux 发行版中独树一帜:

声明式配置

NixOS 的整个系统配置都通过一个声明式配置文件(configuration.nix)来管理。这种配置方式使得系统状态变得透明,易于版本控制和协作 。例如,要启用 SSH 服务并安装 Firefox,只需在配置文件中添加:

{ config, pkgs, ... }: {
  services(openssh).enable = true;
  environment.systemPackages = with pkgs; [ Firefox neovim git ];
}

当配置文件发生变化时,NixOS 会重新构建系统,生成新的系统"世代"(generation),然后通过 nixos-rebuild switch ​命令切换到新配置。旧配置仍然保留在系统中,可以随时回滚 。

原子升级与回滚

NixOS 的升级过程是原子性的,要么完全成功,要么完全失败,不会留下半成品状态 。系统每次升级都会创建一个新的"世代",存储在/nix/var/nix/profiles/system 目录下。当前活跃的系统版本通过符号链接 /run/current-system ​指向 。如果升级失败,只需执行 sudo nixos-rollback ​即可回滚到上一个工作版本,无需手动恢复或重新安装系统。

不可变基础设施

NixOS 的不可变基础设施特性意味着系统的核心组件(如内核、服务配置)不会被修改,而是通过创建新的系统世代来实现变更 。这种设计使得系统更加安全可靠,避免了传统 Linux 系统中常见的"配置漂移"问题——即系统在多次更新后逐渐偏离初始配置状态。

软件包多版本共存

由于 Nix 的哈希隔离机制,NixOS 允许同一软件的不同版本同时存在而不发生冲突 。例如,可以同时安装 Python 3.8 和 3.12,而不会出现依赖混乱。用户可以通过 nix切换 ​命令在不同版本间切换,无需卸载旧版本。

系统快照与备份

NixOS 支持系统快照功能,允许用户创建系统配置的完整备份。这些快照可以存储在本地或远程服务器上,便于灾难恢复和系统迁移。结合 Nix 的二进制缓存机制,系统可以从任何位置快速重建,无需重新下载和编译所有软件包 。

三、NixOS 的安装与配置方法

安装 NixOS 有两种主要方式:传统方式和 Flakes 。

传统安装方式

下载 NixOS:Download | Nix & NixOS

传统安装方式适合初次尝试 NixOS 的用户,步骤如下:

  1. 下载 ISO 镜像:从 NixOS 官网下载 ISO 镜像,有最小化和图形化两种格式可选 。
  2. 启动安装媒介:使用 USB 闪存驱动器或光盘启动 NixOS 安装程序。对于 UEFI 系统,需确保安装程序以 UEFI 模式启动 。
  3. 磁盘分区:使用 GParted 工具进行磁盘分区,建议创建至少两个分区:一个用于系统(标签为 nixos)和一个用于用户数据(标签为 home) 。系统分区建议使用 ext4 或 btrfs 文件系统。
  4. 生成配置文件:执行 nixos-generate-config --root /mnt ​命令生成初始配置文件,包括硬件检测结果和基本配置 。
  5. 编辑配置文件:使用文本编辑器修改/etc/nixos/configuration.nix,配置网络、用户、桌面环境等 。例如,启用 WiFi:
networking = {
  wireless = {
    enable = true;
    networks = {
      "my-wifi" = {
        interface = "wlan0";
        psk = "my-password";
      };
    };
  };
};
  1. 应用配置:执行 sudo nixos-rebuild switch 命令构建并切换到新配置 。

    image

Flakes

Flakes 是 Nix 的下一代配置管理技术,提供了更灵活和模块化的配置方式。安装 NixOS 使用 Flakes 的步骤如下:

  1. 初始化 Flake 配置:在系统目录中创建 flake.nix 文件:
{ description, inputs, outputs }:

description = "My NixOS Configuration";

inputs = {
  nixpkgs = {
    url = "github:NixOS/nixpkgs/nixos-25.11";
    inputs = {
      flake-utils = "github:nix-community/flake-utils";
    };
  };
};

outputs = { self, nixpkgs, ... }:
{
  nixosConfigurations = {
    my-system = nixpkgs.lib.nixosSystem {
      system = "x86_64-linux";
      modules = [
        ./configuration.nix
        ./modules/networking.nix
        ./modules/deskto n.nix
      ];
    };
  };
};
  1. 应用 Flake 配置:执行 sudo nixos-rebuild switch --flake . ​命令应用配置 。
  2. 模块化配置:将不同方面的配置拆分为独立的模块文件,如 networking.nix、desktop.nix 等,提高可维护性 。

Flakes 技术相比传统方式有显著优势:它提供了版本锁定机制,确保配置的可复现性;支持模块化配置,便于代码重用;允许通过 URL 引用远程配置,简化团队协作 。随着 Nix 生态的发展,Flakes 正逐渐成为 NixOS 的默认配置方式 。

四、NixOS 的实际应用场景与优势

NixOS 在多个场景中展现出独特优势:

开发者工作流

对于开发者来说,NixOS 提供了高度可定制和可复现的开发环境。通过 Nix 表达式,可以精确控制项目依赖,确保不同开发者在不同机器上获得完全一致的环境 。例如,jnsgruk 的 NixOS 配置项目展示了如何通过 Flakes 技术实现个性化开发环境,包括 Hyprland 窗口管理器、Neovim 编辑器和 Zsh shell 等 。

NixOS 还支持用户级包管理,普通用户可以通过 nix-env ​命令安装个人工具,不影响系统全局配置 。这种隔离性使得开发者可以在同一系统上尝试不同版本的软件,而无需担心破坏工作环境。

云基础设施与远程部署

NixOS 特别适合云基础设施管理和远程部署场景。通过 Nix 的声明式配置和不可变基础设施特性,可以轻松实现多台服务器的配置同步和版本控制 。Colmena 工具进一步简化了 NixOS 的远程部署流程,支持跨架构构建(如 x86_64→ARM),避免在低性能设备上进行耗时编译 。

例如,在 x86_64 主机上为 RISC-V 开发板交叉编译 NixOS 系统镜像后,只需将构建结果传输到目标设备即可,无需在开发板上重新编译 。这种工作流大大提高了云环境的部署效率和一致性。

企业级应用

NixOS 在企业环境中也有广泛应用。蚂蚁集团计划将星绽 NixOS 部署在机密计算可信数据空间等安全攸关的场景,利用其原生内存安全特性保障数据安全 。星绽 NixOS 是业界首个搭载纯 Rust 内核的发行版,继承了 NixOS 的"系统状态稳定复刻"优势,支持开发者只需写出软件需求,系统就能自动构建并确保结果高度一致 。

北京大学等机构也在推动 NixOS 在工程化场景中的应用,相关创新成果在 ATC’25、SOSP’25 等国际顶级学术会议录用,并斩获 SOSP’25 最佳论文奖 。

硬件兼容性扩展

NixOS 硬件配置项目(nixos-hardware)正在积极扩展对新兴硬件架构的支持。目前该项目已经支持超过 200 种不同品牌的硬件设备,从传统的 x86 架构到新兴的 ARM 平台和 AI 处理器 。例如,项目团队正在研究如何更好地支持各类 AI 处理器,包括集成 NPU(神经网络处理单元)驱动程序和优化机器学习框架的硬件加速支持 。

这种硬件兼容性扩展使得 NixOS 在边缘计算物联网等新兴领域具有广阔应用前景。

另外,最值得一提的是,Nix 的强大软件生态

image

五、NixOS 的局限性与挑战

尽管 NixOS 具有诸多优势,但仍面临一些局限性:

学习曲线陡峭

NixOS 的学习难度相对较高,需要理解 Nix 的整个设计理念和声明式管理方式,这对于习惯了传统 Linux 发行版的用户来说是一个挑战 。用户需要掌握 Nix 语言的基本语法和模块化配置方法,才能充分发挥 NixOS 的优势。

文档组织复杂

NixOS 的文档体系相对复杂,Nix Flakes 仍为实验性功能,专门文档有限。大量文档仍基于传统的 configuration.nix 方式,核心功能如 imports 和 Nixpkgs 模块系统缺乏详细文档 。用户经常需要分析源码来理解实现细节,这对新手不太友好。

磁盘空间占用较高

为实现系统回滚功能,Nix 默认保留所有历史环境。对于桌面环境影响不大,但对资源受限的云服务器可能成为问题 。用户可以通过 nix-collect-garbage ​命令定期清理不再使用的系统世代和软件包,释放磁盘空间。

错误信息不友好

Nixpkgs 模块系统的复杂合并算法导致错误信息晦涩难懂。常见错误如"Infinite recursion encountered"难以定位,用户常需使用"二分法"逐步排查问题 。这对于初学者来说是一个较大的障碍。

六、NixOS 的未来发展趋势

随着技术发展和社区壮大,NixOS 正朝着几个方向演进:

Rust 内核集成

星绽 NixOS 作为 NixOS 的衍生版本,已经展示了将纯 Rust 内核集成到 NixOS 中的可能性 。星绽是一款兼容 Linux 的开源通用 OS 内核,采用 Rust 语言编写,相比传统 C/C++ 内核,具备更好的内存安全性,减少缓冲区溢出等漏洞 。星绽 NixOS 已经支持基础功能,如 XFCE 桌面环境和 Podman 容器运行时 。

随着微软宣布在 2030 年前将核心代码库全面迁移至 Rust 语言,Linux、Android 等主流操作系统也纷纷引入 Rust,Rust 内核的成熟度和稳定性将不断提高 。星绽项目 2024 年开源以来,在 GitHub 平台累计获得超过 4000 颗 Star,社区活跃度高,未来可能成为 NixOS 的默认内核选项 。

Flakes 标准化

Flakes 技术正逐渐成为 NixOS 的默认配置方式,简化依赖管理并提升可复现性 。Nix 社区正在完善 Flake Registry 机制,使其成为事实标准。新项目推荐优先使用 Flakes,而旧项目也在逐步迁移 。

Flakes 的标准化将大大降低 NixOS 的使用门槛,使更多开发者和团队能够利用 NixOS 的声明式配置优势 。

云原生适配

NixOS 正在加强与云原生技术栈的整合,优化容器运行时(如 Podman)和跨架构部署能力 。项目团队正在研究如何更好地支持 Kubernetes 等工具,使 NixOS 成为云原生环境的理想选择。

同时,NixOS 也在改进其网络配置和远程部署功能,通过 Colmena 等工具简化多架构环境的管理 。

硬件支持扩展

NixOS 硬件配置项目(nixos-hardware)计划未来支持更多新兴硬件架构,包括 RISC-V 和 AI 处理器 。项目团队正在完善触控屏和手写笔支持,优化移动设备的电源管理,增强嵌入式系统的启动配置 。

这种硬件支持的扩展将使 NixOS 在边缘计算物联网等新兴领域具有更广泛的应用前景 。

七、NixOS 的适用人群

NixOS 最适合以下用户:

  1. 有一定 Linux 使用经验的开发者:能够理解声明式配置和不可变基础设施的概念,愿意投入时间学习 Nix 语言。
  2. 需要高度可控系统环境的用户:如科研人员、数据工程师等,需要确保系统环境的一致性和可复现性。
  3. 重视系统安全性和稳定性的团队:如金融、医疗等安全敏感领域的组织,需要可靠的系统管理和回滚机制。

不建议以下用户直接使用 NixOS:

  1. 完全没有 Linux 使用经验的新手:可能需要先掌握基本的 Linux 系统管理知识。
  2. 只需要简单易用系统的普通用户:NixOS 的学习曲线和配置复杂度可能超出日常需求。
  3. 资源极度受限的嵌入式环境:NixOS 的磁盘空间占用和构建过程可能不适合此类场景。

八、结论与展望

NixOS 代表了 Linux 系统管理的一次重大范式转变,它将代码即系统的理念推向了极致。通过声明式配置和不可变基础设施,NixOS 解决了传统 Linux 发行版中的许多痛点,如配置漂移、依赖冲突和系统升级风险 。

随着 Flakes 技术的成熟和 Rust 内核的普及,NixOS 的未来发展前景广阔。它有望成为云原生环境和安全敏感场景的理想选择,同时通过降低使用门槛,吸引更多开发者和团队加入 NixOS 生态系统。

对于追求系统可复现性和一致性的用户来说,NixOS 提供了一种全新的系统管理体验。虽然学习曲线陡峭,但一旦掌握,它将为你的开发和系统管理带来前所未有的灵活性和可靠性。

NixOS 不仅是一个操作系统,更是一种系统管理哲学,它鼓励用户通过代码精确控制系统状态,实现"一次配置,到处运行"的理想。随着开源社区的持续投入和技术创新,NixOS 有望在操作系统领域发挥越来越重要的作用。

参考资料

NixOS & Flakes Book

NixOS Wiki – Official NixOS Wiki

The Memo Test

The voyage had begun, and had begun happily with a soft blue sky, and a calm sea.

They followed her on to the deck. All the smoke and the houses had disappeared, and the ship was out in a wide space of sea very fresh and clear though pale in the early light. They had left London sitting on its mud. A very thin line of shadow tapered on the horizon, scarcely thick enough to stand the burden of Paris, which nevertheless rested upon it. They were free of roads, free of mankind, and the same exhilaration at their freedom ran through them all.

The ship was making her way steadily through small waves which slapped her and then fizzled like effervescing water, leaving a little border of bubbles and foam on either side. The colourless October sky above was thinly clouded as if by the trail of wood-fire smoke, and the air was wonderfully salt and brisk. Indeed it was too cold to stand still. Mrs. Ambrose drew her arm within her husband’s, and as they moved off it could be seen from the way in which her sloping cheek turned up to his that she had something private to communicate.

Back to top