Linux 内核剖析与利用
走马观花, 可作抛砖引玉
1. 概述
用到的几个命令:
insmod
dmesg
lsmod
章节测试:
局部可参考
<1>. Linux 得以风行,是因为遵循了 GPL 协定,并不是因为遵循 POSIX 规范 (错)
linux 操作系统概述
linux 概述
<2>. 从 Linux 操作系统的整体构造来看,分两大部分,用户空间的应用程序和内核空间的 os 内核,二者之间是一种 c / s 构造,os 是服务者,应用程序是客户,是一种申请和响应的关系。(对)
Linux 用户空间与内核空间
阮一峰 -User space 与 Kernel space
<3>.<font color=”9966ff”>Linux 内核提供机制而不是策略,零碎调用是一种策略 </font> (错)
对于 Unix/Linux 的设计有一句通用的格言“提供机制而不是策略”。换句话说,零碎调用形象出了用于实现某种确定目标的函数。至干这些函数怎么用齐全不须要内核去关怀。区别对待机制 (mechanism) 和策略 (policy) 是 Unix/Linux 设计中的一大亮点。大部分的编程问题都能够被切割成两个局部:“须要提供什么性能”(机制)和“怎么实现这些性能”(策略)。
<4>. 内核源码中的双向链表和哈希表都相当于内核源码中的根本类型,对其操作只须要调用内核提供的相应 API 就能够。(对)
Linux 内核中对双向链表的应用, 几乎和 int 型一样频繁
<5>.Linux 内核把双链表作为根本类型寄存于 types.h 文件中,是为了暗藏双链表的指针个性。(对)
Linux 双向链表的定义次要波及到两个文件:
- include/linux/types.h
- include/linux/list.h
Linux 内核中双向链表的经典实现
<6>. list.h 中的 list_entry()宏通过一个构造体中字段的地址能够求出该构造体的地址,从而能够拜访构造体的其余成员,是一种逆向思维。(对)
Linux 内核中的 list_head 构造体以及 list_entry 宏
<7>.Linux 内核是单内核构造,执行效率高,可维护性好 (错)
微内核效率不如单内核,但可维护性要好。minix,qnx,l4,还有谷歌刚推出的 fuchsia,均为微内核。linux 大多数为单内核
<8>. 内核文档中 https://www.kernel.org/doc/html/latest/ 只蕴含各个子系统的文档 (错)
<9>. 可加装的内核模块在内核运行时候可加载和卸载,是开发一个新的文件系统,驱动程序的根本机制。(对)
<10>. 内核模块的修饰符__init 可加可不加,对模块的运行没有什么影响 (错)
linux kernel __init 和__exit 宏的作用
Linux 开发实战指南文档(这篇不错)
<11>. 编写 Linux 内核模块时,不须要独自写一个 Makefile 文件,间接编译就能够 (错)
<12>.Linux 内核模块运行在用户空间 (错)
<13>. 微内核比单内核的效率高 (错)
<14>. Linux 内核模块的插入和运行必须用 root 权限 (对)
<15>. Linux 的内核模块不属于 Linux 的几个子系统 (对)
<16>.Linux 在超级计算机,可穿戴设施,嵌入式零碎,挪动终端,桌面等零碎上都能够运行。(对)
<17>. Linux 内核、GNU 工具以及其余一些自由软件组成了人们常熟的 Linux 零碎或者 Linux 公布版。(对)
<18>. lisit_entry(ptr,type,member)宏返回的是 member 的地址
(错)
Linux 内核双链表语句 list_entry(ptr, type, member)了解了解 ”)
<19>.list_for_each_saft()宏和 list_for_each()宏性能一样,安全性有差别 (对)
<20>. 与体系结构(如 x86,ARM 等)相干的代码寄存在 arch 目录下 (对)
<21>. 创立过程属于一种策略而不是机制 (错)
<22>. ()不属于 Linux 的子系统 D
- A. 过程治理
- B. 内存治理
- C. 文件系统
- D. 模块
<23>.Linux 操作系统遵循()规范 C
- A.GUN
- B.GPL
- C.POSIX
- D.MMU
<24>. 触摸屏属于()治理 B
- A. 应用程序
- B. 操作系统
- C. 硬件厂家
- D. 零碎调用
<25>. 如果要从磁盘读取一个文件,则次要与()子系统打交道 C
- A. 内存治理
- B. 过程调度
- C. 文件系统
- D. 网络
<26>. struct list_head 无奈表白()种数据结构 D
- A. 队和栈
- B. 图
- C. 树
- D. 汇合
深刻了解 linux 内核 list_head 的实现
<27>. 谷歌的 Fuchsia 操作系统属于 () 构造 A
- A. 微内核
- B. 单内核
- C.C/S
- D. 面向对象
本文由 mdnice 多平台公布