logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

ELF动态库

C语言程序启动时,第一个执行的函数并非main()而是_start(),这是通过反汇编分析验证的。程序编译阶段会将外部函数地址暂置为0,链接阶段进行地址修正。静态链接将库代码拷贝到程序中,而动态链接在加载时才解析函数地址。动态库通过共享内存机制实现资源复用,其加载过程涉及虚拟地址分配和缺页中断处理。_start()函数负责初始化堆栈、数据段和动态链接,确保程序正确执行。动态链接的延迟绑定机制提高了

文章图片
#java#android#开发语言
linux进程调度

摘要:Linux O(1)调度算法采用双链表设计,将进程控制块(task_struct)与链表节点分离,实现灵活的数据结构复用。调度队列使用优先级数组(queue[140])和位图(bitmap[5])快速定位进程,时间复杂度为O(1)。为解决进程饥饿问题,采用active/expired双队列轮换机制,当活跃队列空时交换指针。优先级调整在队列交换时完成,同时支持抢占式调度,通过保存/恢复上下文实

文章图片
#linux
磁盘与文件系统

本文摘要:文章从操作系统角度探讨了文件系统的底层实现。首先介绍了磁盘的物理结构和工作原理,包括磁道、扇区、柱面等概念,以及CHS和LBA两种寻址方式。然后详细讲解了磁盘数据的管理机制,重点阐述了文件系统如何通过inode结构管理文件属性和内容。文件被分为inode(存储属性)和Data Blocks(存储内容),操作系统通过格式化将磁盘分区并分组管理。文章还解释了扇区与块的关系,以及操作系统为何以

文章图片
#linux
进程程序替换

摘要:本文讨论了Linux下多进程编程的实现方法。通过fork()系统调用创建子进程,父子进程执行顺序由调度器决定,通常子进程先退出并由父进程回收资源。文章提供了两种实现方式:串行创建子进程(逐个创建并等待)和并行创建子进程(批量创建后统一回收)。代码示例展示了如何使用vector记录子进程PID,并通过函数指针实现子进程执行不同任务的功能。最后介绍了将代码模块化封装为createchild()和

文章图片
#linux#udp#运维
环境变量与虚拟地址空间

环境变量通过 PATH 指定命令的搜索路径,用户执行可执行文件时,系统会在 PATH 指定的路径中查找。通过 echo $PATH 可查看当前路径配置。代码中可通过 main 函数的 env 参数或 extern char **environ 获取环境变量表。环境变量的操作添加:使用 export 命令将本地变量提升为环境变量,如 export TEST_ENV=123456789。删除:使用 u

文章图片
#linux
到底了