AHB(Advanced High-performance Bus), 高速总线,用来接高速外设的。APB (Advanced Peripheral Bus) 低速总线,用来接低速外设的。
AMBA、AHB、APB、AXI总线介绍及对比
个人理解: AMBA是总线体系:包括AHB、APB、AXI。AHB比APB快速,AXI比AHB支持同时读写,功能更强大
因此 CPU和外设通过AXI连接,外设又可以通过X2P(AXI <->AHB)与AHB总线连接,其他外设也可以连接AHB,慢速外设通过H2P(AHB <->APB)与AHB总线连接
TTY: teletypewriter 原意指电传打印机(远距离通信)。后来有了PC,操作系统中对接各种品牌teletypewriter的模块称为tty;后来teletypewriter被各种PC替代。tty成为相互通信的模块,用于键盘与屏幕交互、用户通过键盘与进程交互、PC与PC远程通信等等
PTY:pseudo-TTYs
REPL:read eval print loop 命令交互
Linenoise:仅含linenoise.c和linenoise.h的命令行编辑处理工具。支持历史记录、自动补齐、参数提示等功能。
argtable解析符合POSIX风格的命令行工具。
// linenoise 与 argtable 的配合使用方法
char *line;
while((line = linenoise("提示字符> ")) != NULL) {
// 1 将命令行输入line分割为:**argv
// 2 根据argv[0]选择对应的命令处理函数
// 3.1 解析命令行
arg_parse(argc, argv, (void **) &sta_args);
// 3.2 调用具体的命令处理
linenoiseFree(line);
}
UEFI 是intel攒的局,针对BIOS的局限性,联合大家制定了规范接口,更有利于巩固X86的市场。后来随着arm向pc和服务器领域的拓展;以及arm亟需统一混乱的嵌入式领域,arm纳入UEFI。BIOS和UEFI关系
从本质来说UEFI和BIOS都是为了将最终的OS启动起来:
1 Rom Stage:此时代码运行在ROM,即XIP,开始是汇编语言执行,当找到临时空间(Cache作为RAM, Cache as ram, CAR)后,C语言可以使用。该阶段目的是RAM ready
2 Ram Stage:各种外设驱动可以运行了。该阶段目的为OS加载打好基础
3 find sth to boot stage:找到待加载的OS,并将控制权交给OS