本文为深入理解Linux内核一章总结的重要知识点
详细内容见:http://blog.csdn.net/feather_wch/article/details/50668247
1-Linux操作系统的特点?
八种
2-Linux操作系统相对于其他Unix-like操作系统的优势?
七种
3-什么是操作系统
通俗讲,操作系统就是一系列基础的程序的集合。
4-什么是kernel
在这些程序集中最重要的就是kernel(内核)
5-操作系统一定涉及的两个主要内容
- 与硬件设备打交道
- 为应用程序提供可执行的环境
6-Multiuser Systems(多用户操作系统)必须具备的特性
- 验证机制来确认用户信息
- 应对会阻塞其他应用程序运行的臭虫(buggy)用户程序的保护机制。
- 应对那些干扰或者破坏他人程序的恶毒用户进程的保护机制
- 计数机制用于限制每个用户使用的资源数目
7-什么是进程?进程和程序的区别?
进程:“an instance(实例) of a program in execution” or “execution context” of a running program. (程序处于执行时的实例 或者是 正在运行程序的执行上下文)
区别:several processes can execute the same program concurrently, while the same process can execute several programs sequentially.(多个进程可以同时执行同一个程序。同一个进程顺序执行数个程序)
8-Linux采用modules的优点?
- modularized approach
- Platform independence
- Frugal(花费少的) main memory usage
- No performance penalty
9-Linux hard link和symbolic link的区别?
10-Linux文件类型有哪些?
七种
11-什么是文件系统
文件系统就是硬盘区域的物理组织在用户层面的概念。当用户访问文件内容时,实际上是在访问存在硬件块设备上存储的数据。
12-Linux memory menagement中最主要的部分
virtual memory, Random access memory usage,Kernel Memory Allocator, Process virtual address space handling, Caching, Device Drivers
13-virtual memory是什么?
vm是硬件MMU和应用程序内存请求(memory request)之间的逻辑层。
14-vm的优点和目标有哪些?
- Several processes can be executed concurrently.多个进程可以同时执行
- It is possible to run applications whose memory needs are larger than the available physical memory.(可以执行需求的空间比当前可获得物理空间要大的应用程序)
- Processes can execute a program whose code is only partially loaded in memory.(进城可以执行仅仅部分代码加载到内存中的程序)
- Each process is allowed to access a subset of the available physical memory.(每个进程可以访问可获得的物理内存的子集)
- Processes can share a single memory image of a library or program.(进程可以分享库或者程序的单一的内存镜像)
- Programs can be relocatable that is, they can be placed anywhere in physical memory.(程序可以被重定位,可以被放到物理内存任何一个地方)
- Programmers can write machine-independent code, because they do not need to be concerned about physical memory organization.(程序员可以编写机器独立的代码,因为他们不需要关心物理内存组织)
15-Random access memory usage?
- 一部分用于存储kernel image,剩下部分用于三方面
- To satisfy kernel requests for buffers, descriptors, and other dynamic kernel data structures
- To satisfy process requests for generic memory areas and for memory mapping of files
- To get better performance from disks and other buffered devices by means of caches
16-好的KMA需要有哪些特性?
- It must be fast. Actually, this is the most crucial attribute, because it is invoked by all kernel subsystems (including the interrupt handlers).必须非常快,这是最重要的属性,因为所有的内核子系统都要调用他,包括中断处理函数。
- It should minimize the amount of wasted memory.(需要最小化浪费的内存)
- It should try to reduce the memory fragmentation problem.(需要减少内存碎片问题)
- It should be able to cooperate with the other memory management subsystems to borrow and release page frames from them.(能和其他内存管理子系统协调工作来租借和释放page frames)
17-Process virtual address space handling: demand paging?
所有的Unix-like操作系统都采用了demand paging的memory allocation strategy策略。a page frame仅仅当进程访问其虚拟内存地址从而产生异常的时候,才分配给这个进程。
18-使用设备驱动(device drivers)的优点:
- Device-specific code can be encapsulated in a specific module.(设备特定代码可以被封装到特定的模块中)
- Vendors can add new devices without knowing the kernel source code; only the interface specifications must be known.(生产商可以不知道内核源代码就增加新的设备,仅仅需要知道接口规范)
- The kernel deals with all devices in a uniform way and accesses them through the same interface.(内核用统一的方法处理所有的设备,并且通过一样的接口来调用他们)
- It is possible to write a device driver as a module that can be dynamically loaded in the kernel without requiring the system to be rebooted. It is also possible to dynamically unload a module that is no longer needed, therefore minimizing the size of the kernel image stored in RAM.(能够编写设备驱动作为模块动态地加载到内核中而不需要系统重启。也能动态卸载。这样能过最小化kernel image的尺寸)