
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
文件系统是一堆文件的集合,根文件系统是操作系统启动后挂载的第一个文件系统。没有根文件系统,内核启动后找不到 init 程序,就会触发 Kernel Panic。编译 U-Boot、编译内核、制作根文件系统,再加上一个前提 ——交叉编译工具链。理解了从上电到 Shell 的完整链路:BootROM → SPL → U-Boot → 内核解压 → start_kernel () → 挂载 rootfs
这也是为什么很多人在从 STM32 转到 IMX6ULL 裸机开发时,第一关就卡在中断上——它不像 STM32 那样"写个 NVIC 函数就完事",而是要理解 GIC 的整体结构。(实现多进程、虚拟内存、地址隔离),这就是"STM32 跑不了标准 Linux、IMX6ULL 能跑"的根本原因。,拥有更完整的指令集、更深的流水线、MMU(内存管理单元)、缓存体系,还带 NEON 和浮点单元。它的定位
然后这个结构体中的指针指向现在创建的这个数组,数组大小是可以改变的,由函数的实参决定,数组空间的大小就是数组类型的大小乘数组元素的个数。这里着重说一下两种方法的区别,我们知道在创建数组时要指定数组的大小,所以用数组构成的顺序表会有大小限制,并且因为数组的特性(单一性,有序性,连续性)所以我们可以直接用下标访问元素释放的时候也是可以直接释放整数组。而链表没有固定大小的要求,我们是在堆上给链表申请空间
但是这种写法存在一个问题,如果我把队列放满数据,然后再将所有数据指向最后一个位置,此时head=tail=len-1,head和tail又无法继续向后移了,那么这个队列似乎就得手动将他们放到开头的位置,但是这样很麻烦,此时就衍生出了另一个队列——循环队列。在这个结构体中,que是指向队列首节点的指针,head指向对头,tail指向队尾,这里因为是数组,所以就是int型变量,作用和一个指针一样,记录
这里面涉及逻辑运算的短路特性,以及前面提到的子进程的返回值为0,父进程的返回值是子进程的pid号(一定>0),例如在(1)生成的子进程(7944)中fork()的返回值为0那么fork()&&fork()就直接不计算了,直接计算(3),以及fork()&&fork()为1时,整体一定为真(3)也不会继续进行。如果是正常结束(终止),则由exit传入的参数带回。注意:在创建完进程后父进程和子进程谁先







