自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 Android Binder - 启动 ServiceManger

Android 12 中 ServiceManager 启动流程始于 main.cpp,通过 ProcessState::initWithDriver 打开 /dev/binder 驱动并建立共享内存映射,初始化 Binder 环境。随后创建 ServiceManager 实例,绑定权限校验模块 Access,并将自身以名称 "manager" 注册为全局上下文管理者。通过设置线程池上限为 0 和仅允许 oneway 调用,确保单线程安全处理 IPC 请求。最终进入消息循环,持续响应服务注册与查询

2026-11-03 15:55:32 335

原创 View核心原理

本文系统讲解了Android View的工作原理,重点解析了measure、layout、draw三大核心流程。通过自定义View和ViewGroup的实战案例,深入剖析了以下关键点: MeasureSpec机制:父子容器间的尺寸协商规则,特别是wrap_content的特殊处理 测量流程:递归测量过程及自定义View必须重写onMeasure的原因 布局流程:ViewGroup如何为子View分配位置 绘制流程:View.draw方法的执行顺序 常见问题:生命周期中获取View尺寸的正确方法

2026-06-29 22:43:25 369

原创 05-从零开始编写操作系统 - 函数和字符串

本文介绍了汇编语言中函数和字符串处理的基础知识。主要内容包括: 汇编函数的实现原理:使用标签定义函数,通过call/ret指令实现调用和返回 参数传递的两种方式:寄存器传递(简单)和栈传递(规范) 字符串处理函数示例: 字符串长度计算(string_length) 字符串打印(print_string) 字符串比较(strcmp) 示例代码展示了如何在引导扇区程序中组织可复用的函数,包括参数传递、寄存器保护和基本字符串操作。这些技术是构建操作系统的基础组件。

2026-04-13 10:39:18 258

原创 04-从零开始编写操作系统 - 引导栈

操作系统开发中的栈机制详解 本文深入讲解了操作系统开发中栈的基本原理和实现方法。主要内容包括: 栈的基本概念:后进先出(LIFO)的数据结构,类比一摞盘子的存取方式 x86架构的栈实现: 使用SP(栈指针)和BP(基指针)两个关键寄存器 栈向下生长的内存布局特点 push/pop指令的具体执行过程 实践演示: 通过汇编代码示例展示栈的初始化、压栈(push)和出栈(pop)操作 详细的内存地址变化图示 可直接运行的引导扇区代码示例 栈的实际应用:函数调用、参数传递、局部变量存储等核心功能的基础 文章采用理论

2026-04-07 10:02:41 248

原创 03-从零开始编写操作系统 - 内存寻址与引导扇区偏移

操作系统开发指南:内存寻址与引导扇区偏移 本文介绍了操作系统开发中关于内存寻址和引导扇区加载的关键概念: 内存布局:BIOS将512字节的引导扇区加载到内存地址0x7C00处,这是历史遗留标准。 寻址方式: 直接寻址获取标签地址 间接寻址获取标签指向的内容 需要手动添加0x7C00偏移或使用org指令 代码示例: 演示了4种内存访问方式,其中只有添加偏移和使用org指令的方法能正确访问数据 推荐使用[org 0x7c00]指令自动处理地址偏移 注意事项: 直接寻址会获取地址而非内容 间接寻址需要正确计算偏移

2026-04-03 09:55:04 193

原创 02-从零开始编写操作系统 - BIOS 中断与屏幕显示

本文介绍了如何使用 BIOS 中断在屏幕上打印字符和字符串。主要内容包括:通过 INT 0x10 视频中断显示单个字符的方法;利用循环打印完整字符串的实现;处理换行符的技巧;以及常见 BIOS 中断和 ASCII 表速查。提供了三个 NASM 汇编代码示例,分别展示基本字符打印、循环打印字符串和换行处理。最后给出了编译运行方法,帮助读者快速实践屏幕输出功能。

2026-04-02 09:29:00 374

原创 01-从零开始编写操作系统 - 引导扇区

本文介绍了如何编写一个简单的引导扇区程序。主要内容包括:引导扇区的规范(512字节大小,最后2字节必须为0xAA55魔数)、计算机启动流程(BIOS→引导扇区→操作系统)、以及一个最简单的引导扇区实现(包含无限循环指令和正确填充的魔数)。文章提供了NASM汇编代码示例,并详细说明了编译和运行方法(支持Windows/Linux/Mac平台)。最后还解释了小端序存储、常见问题解决方法,以及如何验证二进制文件内容。这是从零开始编写操作系统系列教程的第一章,后续将介绍如何在屏幕上打印字符。

2026-04-01 09:46:47 401

原创 引言-从零开始编写操作系统-引导

从零开始编写操作系统-引导

2026-03-30 10:48:08 454

原创 00-Windows x64 平台环境搭建指南

本文提供了Windows x64平台下操作系统开发环境的搭建指南。主要内容包括:必须安装的工具(NASM汇编编译器、QEMU模拟器、Git),详细安装步骤(手动安装和使用包管理器两种方式),以及测试安装的方法。文中还给出了一个简单的引导程序示例代码,说明如何编译运行并验证环境配置。最后对比了Windows与Linux/Mac在开发环境中的主要差异,并提供了相关参考资源链接。该指南适合从零开始学习操作系统开发的Windows用户快速搭建开发环境。

2026-03-30 10:43:16 293

原创 leetcode热门100道-双指针-3道

关于双指针的三道

2025-03-19 11:24:12 992

原创 leetcode热门100道-哈希-3道

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。

2025-03-18 16:13:08 667

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除