logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

汇编文件的本质与 Linux 0.11 引导扇区的编译、链接、写入全流程

摘要: 汇编语言是CPU指令的助记符表示,比机器码更易读但保留底层控制能力。Linux 0.11的引导扇区bootsect.s需经历特殊编译流程:先用as86汇编器生成16位实模式目标文件,再通过ld86链接器生成含32字节头的Minix格式文件,最后用dd命令剥离头部得到512字节纯二进制镜像。该镜像必须满足引导扇区规范——以0xAA55结尾,由BIOS加载到0x7C00执行。这一过程体现了早期

文章图片
#linux#运维
嵌入式开发必备:彻底搞懂 typedef volatile union 寄存器映射

本文深入解析了一个嵌入式C语言中常见的复合类型定义:typedef volatile union { unsigned U; int I; struct { unsigned xxx; } B; } XXX;。文章通过层层拆解,揭示了其中四个关键要素的设计意图: typedef - 为复杂类型创建简洁别名 union - 实现同一内存的多视角访问 struct位域 - 支持精细的位级操作 vola

文章图片
第04章 初始化程序(7):操作系统没有“上帝之手” —— 揭秘调度器、时钟中断与内核的“心脏”

本文探讨了Linux 0.11操作系统实现多任务并行的核心机制——进程调度与时钟中断。在单核CPU环境下,操作系统通过硬件定时器芯片(8253/8254)产生每10毫秒的时钟中断,作为系统调度的"心跳"。这种抢占式调度机制将CPU时间划分为微小片段,在进程间快速切换,制造"同时运行"的假象。文章剖析了从硬件定时器配置、中断触发到进程切换的完整链路,揭示了早期Linux系统实现多任务并行的关键技术原

文章图片
第04章 初始化程序(6):从内核到用户 —— 解密登录流程中 init、getty 与 login 的接力赛

在 Linux 0.11 中,虽然为了精简,作者让 init 进程直接execve了/bin/sh,但这仅仅是为了演示目的。在真实的操作系统中,必须经历init->getty->login->shell这样层层递进的“接力赛”,才能在保证系统安全性(密码验证)隔离性(进程组与控制终端)、**可配置性(/etc/inittab 和配置文件)**的基础上,为用户提供一整套完整的交互环境。这一层层的守护

文章图片
第04章 初始化程序(4):pid = fork() —— 操作系统中的“一生二”与程序分身术

本文深入解析了Linux内核中fork()系统调用的工作原理与设计哲学。文章首先通过思想实验引入fork()的"分身术"特性,指出其核心在于复制而非创建进程。关键点包括:1)fork()通过复制父进程PCB快速创建子进程;2)独特的"一次调用,两次返回"机制,父进程获得子进程PID,子进程获得0;3)经典的fork()+exec()组合模式;4)以Linux 0.11中进程0创建进程1为例,展示多

文章图片
#linux
第04章 初始化程序(3):不会忘记时间的黑色方块 —— 探秘CMOS 0x80掩码与重启之谜

摘要: Linux内核的初始化并非始于BootLoader,而是从main()函数开始。BootLoader仅完成硬件基础设置,真正的操作系统构建由main()启动。与普通C程序不同,Linux的main()需在无任何运行环境的前提下,按严格顺序初始化内存、中断、设备、调度器等核心组件,逐步搭建完整的操作系统生态。这一过程如同建设城市,依赖环环相扣,顺序不可颠倒。最终,通过创建Task0和init

SOME/IP-SD报文中 Option Format(选项格式)-理解笔记1

摘要:SOME/IP-SD协议中的选项(Options)机制通过模块化设计实现服务发现功能。选项分为IPv4端点(0x04)、配置选项(0x01)、负载均衡(0x02)和IPv4 SD端点(0x24)等类型,分别承担网络寻址、配置说明、负载分配和代理寻址等功能。所有选项都包含Length、Type和Flags通用头部,其中可丢弃标志(Discardable Flag)决定选项的必要性。这种设计实现

文章图片
程序员的“安全检查官“:assert宏深度解析

想象一下,你正在建造一座大桥。在施工过程中,你会设置各种质量检查点:钢筋强度达标吗?混凝土凝固好了吗?桥墩位置正确吗?assert就是程序世界中的这种"质量检查官"。assert的核心职责:在程序运行时检查某个条件是否满足。如果条件为真,程序继续正常运行;如果条件为假,assert会立即"拉响警报"——终止程序并输出详细的错误信息。生动比喻:assert就像一位严格的警察,在代码的关键路口设卡检查

文章图片
#c++
003-最硬核的“心跳”:Linux 0.11 内核的底层硬件交响乐

如果您是第一次翻开操作系统内核的书,可能会觉得眼前全是密密麻麻的术语:中断、时钟、进程、调度…… 这就像走进一家超大型工厂,到处都是轰鸣的机器,却不知道谁在指挥,谁在干活。今天,我邀请您坐上我的“飞毯”,我们以为蓝本,这不仅仅是理论,我们会把原书中的变成生动的流程图,并最后奉上一个,让代码在您眼前“活”起来。

文章图片
#linux
linux内核体系结构003:内核的心脏起搏与大脑切换:Linux 中断、时钟与进程调度深度解密

本文深入解析了Linux内核中的中断、定时与进程调度机制。通过8259A中断控制器,硬件设备可向CPU发送中断信号(如键盘IRQ1、时钟IRQ0)。系统通过8253定时器芯片每10ms触发时钟中断,驱动jiffies计时器并调用do_timer()更新进程时间片。当时间片耗尽时,schedule()会保存当前进程上下文到task_struct,选择新进程并恢复其上下文,完成进程切换。内核栈与用户栈

文章图片
#linux#运维#服务器
    共 171 条
  • 1
  • 2
  • 3
  • 18
  • 请选择