logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

第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++
linux内核体系结构002:深入内核大厦:解密 Linux 的“底层骨架”与“黑科技协作”

不要被庞大的 Linux 系统吓倒。Linus 在 1991 年写的 Linux 0.11 版本,结构就是这么清晰简单。当你读完这一章,你脑子里就有了整个大楼的“施工图纸”。接下来,这本书就会带你从最低层的Makefile文件开始,一行一行代码地拆解这个“大厦”是怎么搭建起来的。准备好了吗?让我们开始啃源代码吧!

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

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

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

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

文章图片
#linux#运维#服务器
亲密的网络旅程番外篇:亲手“造”出一个 VLAN 标签——从 Linux 命令行到 Wireshark 抓包的全流程实战

理论:我们知道 VLAN 标签是 4 字节的0x8100加上 VID。工具:我们用vconfig在 Linux 中创建了 VLAN 接口。发送:我们通过ping和arping发送了测试数据包。捕获:我们用 Wireshark 捕获了物理接口上的原始帧。验证:我们亲眼看到了0x8100和 VID=10 的真实存在。VLAN 标签并不是一个“理论概念”,也不是 Wireshark 为了显示方便而“编造

文章图片
#网络#wireshark
## 亲密的网络旅程番外篇(四):亲手造一台“交换机”——Linux 与 Windows 网桥(Bridge)实战全解

Windows 提供了一种图形化的网桥功能,它允许你选择两个或更多的网络接口,将它们“捆绑”成一个逻辑桥接。这个桥接后的设备就是一个“二层交换机”。对比项LinuxbrctlWindows 网络桥接核心工具brctl命令 +图形化界面 (ncpa.cpl配置粒度细粒度(可查看 MAC 表、调整老化时间、STP 参数)粗粒度(只能创建和启用)适用场景实验、高级网络配置、虚拟化(KVM、Docker)

文章图片
#网络#linux#windows
    共 172 条
  • 1
  • 2
  • 3
  • 18
  • 请选择