- 博客(8)
- 收藏
- 关注
原创 Linux的启动模式
MaskRom 模式是设备的初始启动模式,提供最基础的启动和引导功能,通常在没有操作系统或固件时使用,设备通过 MaskRom 加载最基本的引导程序。Loader 模式是设备处于正常工作状态时的模式,设备可以通过此模式进行固件更新、调试和恢复,操作系统已经加载并能够执行复杂的操作。MaskRom 模式用于设备启动和恢复,而Loader 模式用于系统操作、更新、调试等更多功能。
2025-03-11 22:09:06
499
原创 目录项(dentry)和inode和fd,pcb
假设一个进程P1打开文件操作系统在路径中查找文件,找到对应的 dentry。通过 dentry 获取到文件的 inode,inode 存储了的元数据(大小、权限等)。操作系统为进程P1分配一个文件描述符fd,并在进程P1的 PCB 中记录这个fd。该fd指向系统文件表中的一个条目,而文件表条目包含了指向inode的指针。现在,进程P1可以通过fd读写,操作系统会使用 fd 的信息查找文件表中的 inode,并最终访问文件数据。这种设计分层管理文件和进程,使得文件系统的访问更加灵活和高效。
2024-11-11 23:23:48
1260
原创 malloc和calloc的区别
calloc分配内存并自动初始化为 0。malloc只分配内存,不进行初始化。calloc需要传入两个参数(元素数量和每个元素的大小),而malloc只需要传入总的字节数。选择使用calloc还是malloc,取决于是否需要初始化为 0。
2024-11-08 01:34:57
345
原创 引用和指针的区别
引用是变量的别名,不占用额外内存,必须在定义时绑定到一个变量,之后不能更改绑定对象。指针是独立的变量,占用内存来存储地址,可以为空,并能指向不同的对象。引用的主要用途在于简化代码,如参数传递、返回值优化;而指针提供了更大的灵活性,适用于动态内存管理等复杂场景。我的理解(不一定对):指针从始至终都是占内存地址的(指针就是地址,但是指针变量是有地址的),引用是定义的时候占据内存地址,一旦定义完成以后,编译器会自动优化掉地址(相当于无根的游标)后期再要改变它的值,就无从改变了。
2024-11-08 01:15:44
682
原创 makefile中的$@、$< 和 $^
自动变量含义典型用途$@当前目标文件的名称生成目标文件$<第一个依赖文件的名称编译源文件生成目标文件$^所有依赖文件的名称列表链接所有依赖文件生成目标文件。
2024-11-06 22:20:23
938
原创 指针数组和数组指针
特性指针数组数组指针定义包含指针的数组指向数组的指针语法含义数组中的每个元素都是指针指针指向整个数组使用场景存储多个指针(地址)指向多维数组或动态数组访问元素方式通过arr[i]访问指针通过(*ptr)[i]访问元素指针数组表示一个数组,包含 5 个int*类型的指针。数组指针表示一个指针,指向一个包含 5 个int的数组。
2024-11-05 12:18:23
339
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人