Linux Kernel Overview
什么是操作系统
操作系统(Operating System),传统上负责对计算机硬件直接控制以及管理的系统软件。操作系统的功能一般包括处理器管理、存储管理、设备管理和作业管理等。当多个程序运行时,操作系统负责规划每个程序的处理时间。 一个操作系统概念上可以分成两个部分:内核(Kernel)以及壳(shell)。
Linux是一种开源电脑操作系统内核。它是一个用C语言写成,符合POSIX标准的类Unix操作系统。
Linux是一个一体化内核(monolithic kernel)系统。“内核”指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。一个内核不是一套完整的操作系统。一套基于Linux内核的完整操作系统叫Linux操作系统,或是GNU/Linux。设备驱动程序可以完全访问硬件。Linux内的设备驱动程序可以方便地以模块化(modularize)的形式设置,并在系统运行期间可直接装载或卸载。
什么是Linux内核
Linux内核核心组件
1. cpu architecture
- Core
- Cache
- Tlb
- Mmu
- Exeptions
- …
2. device driver
- Isp
- Mipi
- Blsp
- Usb
- Gpu
- Display
- Dma
- Gic
- Audio
- …
3. Memory Management
- Cache
- Page
- Buddy
- Kmalloc
4. Process Management
- task_struct(mark)
- fork(create)
- schedule(timer)
5. 文件系统
- VFS
- EXT4
- Page Cache
6. Block Device
- Gendisk
- hd_struct
- BIO
- Request Q
- Elevator
- IO schedule
6. Sync
- Spin lock
- Mutex
- Semaphore
怎样进阶Linux内核
思考:
1、Android系统架构框架?
2 、Linux系统架构框架?
3 、进程间通信方式有哪些,各有哪些特点和使用方法?
4 、Linux内核核心组件有哪些,驱动系统,内存管理和文件系统的特点?
5、怎么样进阶Linux内核和Android系统?