《深度探索嵌入式操作系统》读书笔记

话说这种笔记当原创发出来真是惭愧……可没别的选项啊……

从《30天自制操作系统》过来的。30天这本书是偶然所得,当年买c++ primer的时候临时凑单买的,那个时候觉得牛逼啊,操作系统啊,30天,然后,一直没看!多年后,想拿起来了却这桩心结,然而,越翻越觉得这不是我想要的。我想知道技术上的真相,不是一个玩具,然后绕路就绕到了嵌入式…直觉应该是对的?

预感这篇读书笔记感觉可能会太监,方向似乎需要调整了,我不想去搞开发板,我想知道软件是如何驱动硬件的,大致过一下。2020年6月2日 15点33分

一个现代意义的操作系统内核需要什么功能:

  • 时间管理
  • 中断管理
  • 内存管理
  • 进程管理
  • 设备管理
  • 文件系统

内核的架构

  • 宏内核:Window,Minix,Mac
  • 微内核:Unix,Linux

我们将内核分三个大层

  • 内核接口层:一套UNIX接口的子集,检查参数是否合法的代码
  • 内核功能层:进程管理,内存管理,中断管理,设备管理
  • 内核硬件层:初始化,CPU控制,中断处理,物理内存管理,

内核初始化

  • MMU :Memory Management Unit
  • 中断向量
  • 串口
  • 机器数据结构
  • 初级内存管理
  • 中断

内存管理

文件系统
新建,删除,打开,读取,关闭。


mini2440

  • CPU
  • MMU
  • 内存
  • RTC
  • 定时器
  • UART
  • 中断控制器

第九章 驱动模型
主要解决操作系统内核如何管理硬件的问题。操作系统不包含或者只包含最基本、最通用的设备控制代码。把控制设备的代码独立出来,与操作系统内核分开,独立开发。每个设备会对应一个设备控制代码模块。操作系统要控制哪个设备,就加载哪个设备的控制代码模块,不使用该设备了,就可以删除这个设备控制代码模块。设备厂商在发布新设备时,只要随着发布一个与此相关的 设备控制代码模块就行了。这些设备控制代码的专有名词叫做设备驱动程序。驱动程序必须有三个结构:

  1. 驱动程序入口函数:在驱动程序被内核加载时调用,执行驱动程序的初始化、向内核注册设备;
  2. 12大操作函数:
  3. 驱动程序退出函数:在驱动程序退出时被调用,用于释放资源。

边看边写~要有耐心

你可能感兴趣的:(读一本书)