
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
HEX(hexadecimal):显示十六进制,DEC(decimal):显示十进制,OCT(octonary):显示八进制,BIN(binary):显示二进制。按一次RoL表示循环左移位一次,按n次RoL表示循环左移位n次,RoR同理。:Right shift 右移位(补0)(二进制):Left shift 左移位(补0)(二进制):正负转换(绝对值不变,符号变)数字1 Lsh 数字2。即数字1

线程与进程的核心概念及关系。线程是进程内的执行分支,执行粒度更细,作为操作系统调度的基本单位,一个进程可包含多个线程。文章从CPU角度分析了执行流概念,比较了Windows和Linux的线程管理实现方式(Linux采用轻量级进程模拟线程)。线程相比进程具有创建/释放更轻量、切换成本更低等优势,但也存在编程复杂、缺乏保护等缺点。关键点包括:线程共享进程地址空间等资源,但拥有独立栈和上下文;主线程与副

介绍Linux文件IO中的文件描述符机制。首先回顾了文件描述符的基本概念,指出操作系统通过struct file结构体管理文件属性,并用链表组织打开的文件。重点分析了文件描述符的分配规则:默认从3开始编号,0-2被stdin、stdout、stderr占用;系统会寻找最小的未使用数组下标作为新文件描述符。通过实验验证了FILE结构体包含_fileno成员,与文件描述符关联。最后解释了文件引用计数机

探讨Linux系统中的重定向机制及其底层实现原理。文章首先回顾了文件描述符和read系统调用的基本概念,详细解释了重定向的两种实现方法:通过close+open组合以及使用dup2系统调用。随后分析了输入/输出重定向在shell中的具体应用,包括如何为自制shell添加重定向功能。文章深入剖析了"Linux一切皆文件"的设计理念,通过虚拟文件系统(VFS)和文件操作结构体(fi

本文探讨了C语言缓冲区的相关概念,通过对比不同示例代码的运行结果,分析了缓冲区在文件操作中的作用。文章指出C语言提供的缓冲区与操作系统内核缓冲区不同,并通过实验验证了close(1)会阻止缓冲区内容输出到屏幕。同时介绍了FILE结构体的组成,特别是其中的文件描述符字段。最后讨论了exit和_exit函数的区别,以及C语言缓冲区的三种刷新策略:行缓冲、全缓冲和无缓冲,并说明不同输出设备对应的刷新机制

探讨C语言和操作系统缓冲区的区别与作用,解释了缓冲区存在的必要性(提高效率和格式化支持),分析了代码运行结果与缓冲策略的关系。通过模拟实现fopen、fwrite、fclose函数,详细讲解了如何为FILE结构体添加缓冲区,并比较了不同刷新策略的效率差异。实验证明,减少刷新次数(即减少系统调用)能显著提升效率,这解释了为什么缓冲区机制对程序性能至关重要。文章还包含缓冲区的三种刷新策略(立即刷新、行

介绍磁盘存储和文件系统的基本原理。首先将文件分为打开和未打开两类,指出存储文件需要保存文件内容和属性。然后详细讲解了磁盘的物理结构,包括盘片、磁头等组件,并解释了磁盘利用磁性存储数据的原理。在抽象层面介绍了CHS/LBA两种寻址方式,说明扇区是磁盘访问的基本单位。最后初步探讨了文件系统的概念,指出操作系统通过分区管理硬盘空间,每个分区可以用结构体描述其地址范围,而文件系统的核心任务就是管理分区中的

Ext2文件系统采用分层结构管理磁盘数据,主要包括启动块、数据块、inode表等区域。数据块以4KB为单位存储文件内容,inode表则记录文件属性(不含文件名),每个inode有唯一编号。文件系统通过三级索引机制管理大文件:前12个直接索引指向数据块,第13个为二级索引(指向块号表),第14个为三级索引(多级间接寻址)。关键结构体ext2_inode包含文件权限、大小、时间戳等信息,其中i_blo

浅析了EXT2文件系统的核心机制。首先介绍了i_block数组的三级索引结构,推导出单个文件最大存储容量的计算方法;其次详细阐述了inode和block位图的管理机制,解释了删除文件时仅需修改位图而无需清空数据块的原理。文章还分析了文件系统"满"的三种情况,并重点讲解了超级块和组描述符的关键作用。在文件操作层面,系统性地揭示了新建、删除、查找和修改文件时内核的底层处理流程,特别

本文通过两个实验探讨EXT2文件系统的关键特性。实验1详细演示了在Linux下格式化U盘为EXT2文件系统的过程,包括卸载挂载点、备份数据等操作,并分析了文件系统结构参数。实验2重点研究了超级块的重要性,通过人为破坏主超级块验证了备份超级块的恢复机制,介绍了使用e2fsck和dd命令从备份超级块恢复主超级块的方法。研究揭示了EXT2文件系统中超级块的关键作用和备份机制,为理解文件系统损坏与修复提供








