OS 开发(一)
📅 2026/7/17 5:37:24
👁️ 次浏览
1. 配置开发环境安装 nasm 和 bochssudo pacman -S nasmsudo pacman -S bochsbochs 的安装在新版的archlinux中不一定能成功 参考一下直接从官网下载 bochs bochs官网编译安装tar -zxvf bochs-*.tar.gz cd bochs-* ./configure --enable-debugger --enable-disasm make sudo make install2. 测试1boot.asm编写简单的 boot.asm 来[org 0x7c00] ; 设置屏幕模式为文本清楚屏幕 mov ax, 3 int 0x10 ; 设置段寄存器 mov ax, 0x0000 mov ds, ax mov es, ax mov ss, ax mov sp, 0x7c00 ; 设置文本显示器的内存区域 mov ax, 0xb800 mov ds, ax mov byte [0x0000], H ; 阻塞 jmp $ ; 设置填充0填充512字节 times 510 - ($ - $$) db 0 ; 主引导扇区的最后两个字节必须是 0x55 和 0xaa以便 BIOS 能够识别它为有效的引导扇区 db 0x55, 0xaa编译nasm -f bin boot.asm -o boot.bin(2) 创建硬盘镜像创建硬盘镜像[dandan src]$ bximage -q -hd16 -funccreate -sectsize512 -imgmodeflat master.img bximage Disk Image Creation / Conversion / Resize and Commit Tool for Bochs $Id$ Creating hard disk image master.img with CHS32/16/63 (sector size 512) The following line should appear in your bochsrc: ata0-master: typedisk, pathmaster.img, modeflat解释这个命令和屏幕输出把电脑硬盘想象为一个空白的笔记本bximage 这是一个专门制造“空白笔记本”的工具-hd16 这个笔记本一共16MB-sectsize512 每1MB会被分成很多个小分每次只能写512字符-imgmodeflat 这个笔记本用原始平铺的方式装订的也就是普通的二进制文件没有压缩、没有加密统一标准master.img: 给这个笔记本起名为master.img屏幕输出CHS32/16/63 这是这个笔记本的三维坐标C32 柱面H16 磁头 S63扇区ata0-master: typedisk, pathmaster.img, modeflat模拟器启动时 要在第一个插槽ata0-master上插上这块硬盘 文件路径是 master.img,3 将 boot.bin 写入主引导扇区dd ifboot.bin ofmaster.img bs512 count1 convnotrunc将 boot.bin 文件的前 512 字节数据 写入到 master.img 磁盘镜像文件的开头位置 并且保留 master.img 文件的原有大小和其他数据通常用于安装操作系统的引导扇区 MBR, 即主引导记录dd linux下数据复制与转换工具ifboot.bin 输入文件从这个文件中读取数据ofmaster.img 输出文件将数据写入到这个目标文件bs512 块大小每次读写512字节count1 复制数量只复制1个块所以只会写入512个字节的数据 在磁盘结构中 512字节正好是一个传统硬盘的一个扇区大小核心关键 convnotrunc(不截断) 意思是不截断输出文件没有这个参数dd 会在写入之前把 master.img 文件截断清空为0字节 然后写入512字节 结果就是 master.img 回变成只有 512 字节的小文件 磁盘镜像中原有的分区表文件系统数据回全丢失加上这个参数 dd只会覆盖master.img开头的前512字节 后面的原有的原封不动 这帮正了镜像文件的大小不变且后续文件系统数据不受影响。结果显示[dandan src]$ ls -l total 16 -rw-r--r-- 1 dan dan 460 Jul 14 03:06 boot.asm -rw-r--r-- 1 dan dan 512 Jul 14 06:10 boot.bin -rw-r----- 1 dan dan 16515072 Jul 16 06:45 master.img4配置 bochs键入 bochs 之后输入以下操作这一系列操作 本质上是模拟计算机完整启动过程 —— 扮演 BIOS固件 和 硬盘制造者 的角色 把汇编代码变为 虚拟硬盘上 CPU 能识别的第一行指令。boot.asm 这是 CPU 上电后执行的第一段逻辑[org 0x7c00] BIOS规定 它从硬盘读取引导扇区后 必须把 512 字节数据原封不动的记载到内存的 0x7c00 地址。这句话告诉编译器 后面所有的内存地址计算都要从 0x7c00 开始编译 nasm boot.asm -o boot.bin 翻译为 CPU 执行的语言创建硬盘镜像 bximage 制作虚拟的空白硬盘在linux系统中创建一个名为 master.img 的普通文件 但是把这个文件模拟成一块容量为 16 MB 虚拟硬盘真实的硬盘有成千上万个扇区 BIOS启动时只读第一个扇区(MBR 主引导扇区) 但后续操作系统还要读取后面的扇区 但是必须要有一个符合硬盘扇区尺寸 512字节/扇区的容器不能直接把 boot.bin 当硬盘用 因为单独一个boot.bin 没有容量概念。写入主引导扇区 dd 把代码放到硬盘开头master.img 现在是一个 16MB 的全0文件 使用dd 把编译好的512字节的boot.bin 覆盖写入到master.img 开头的512 字节处。最终 使用 Bochs 加载 master.img 启动
1. 项目概述:为什么C程序员需要自己造缓存轮子?在任何一个处理海量数据或高并发请求的后端系统里,你迟早会撞上性能瓶颈。数据库查询、文件I/O、网络请求,这些操作慢得让人心焦,尤其是当同样的数据被反复请求时。这时候…
📅 2026/7/17 5:37:24
1. CW32饭盒派开发板与TFT显示屏基础介绍CW32饭盒派是一款基于ARM Cortex-M0内核的微控制器开发板,因其紧凑的外形设计和丰富的接口资源,被开发者亲切地称为"饭盒派"。这款开发板特别适合嵌入式系统学习和快速原型开发,板载资源包括…
📅 2026/7/17 5:37:24
1. Windows平台DLL加载机制全景解析动态链接库(Dynamic Link Library,DLL)作为Windows系统的核心组件,其加载机制直接影响着应用程序的性能表现和稳定性。在Windows生态中,DLL加载绝非简单的文件载入过程,而…
📅 2026/7/17 5:37:24
1. 为什么Navicat 17.3的安装与激活成了高频痛点?——从真实工作流切入 我做数据库运维和开发支持整整十二年,经手过从MySQL 4.1到8.4、PostgreSQL 8.x到16.x、Oracle 10g到23c的所有主流版本,也陪团队从Navicat 8一路升级到现在的17.x系列。…
📅 2026/7/17 6:25:38
[历史归档] 本文原发布于 cstriker1407.info 个人博客,内容为历史存档,仅供参考。 发布时间: 2017-12-02 | 标题:【转】gcc选项-g与-rdynamic的异同 | 分类: 编程 / C && C &#…
📅 2026/7/17 6:25:38
[历史归档] 本文原发布于 cstriker1407.info 个人博客,内容为历史存档,仅供参考。 发布时间: 2017-12-19 | 标题:【转】dia在ubuntu下无法输入中文的解决办法 | 分类: 编程 | …
📅 2026/7/17 6:25:38
2026年夏天,我们重新走进两家真实企业——一家电商代运营公司(用钉钉AI Pro),一家SaaS软件公司(用企微4.0)——再次启动为期两周的AI协同能力对照实验。 和两年前不同,这一次,AI不再…
📅 2026/7/17 6:25:38
今天来看一个关于股票投资策略的实战分享。这个标题"3w重启全仓打满,第0天,绝不马后炮,一天干准一只,市场定规则,但结局我说了算!"展现了一种激进的投资风格,核心思路是用3万资金全仓…
📅 2026/7/17 6:25:38
1. 项目概述:为什么“复现并理解 OpenVLA”不是一句空话,而是当前机器人智能落地的关键切口“复现并理解 OpenVLA”这六个字,在2025年春季的AI工程圈里,已经不是学术论文里的一个章节标题,而是一条真实存在的技术分水岭…
📅 2026/7/17 6:24:37
1. 为什么选择用DeepSeek V4替换Codex的底座模型去年我在开发一个智能代码补全工具时,发现Codex的默认底座模型在复杂业务逻辑场景下表现不尽如人意。经过多次测试对比,DeepSeek V4在以下几个关键指标上展现出明显优势:代码补全准确率&#x…
📅 2026/7/17 0:00:32
1. VS Code 高效配置基础作为一款轻量级但功能强大的代码编辑器,VS Code 的默认配置已经能满足基本需求,但通过合理调整设置可以大幅提升编码效率。我使用 VS Code 已经有五年多时间,期间尝试过各种配置方案,总结出这套适合大多数…
📅 2026/7/17 0:00:32
在异常检测领域,很多优秀算法最初都是以研究代码的形式发布的。它们能够在固定测试集上复现实验结果,却不一定能被普通用户直接拿来测试自己的图片。尤其是最近很多算法仅提供在固定测试集的测试环境,而gradio的demo演示也不会提供。
对工程应用和在自己的图片上进行测试来…
📅 2026/7/17 0:00:32
豆包openclaw最近圈子里都在聊豆包openclaw,我也没忍住,掏腰包入手了一套。说实话,刚拿到手的时候,心里是打鼓的。毕竟市面上类似的智能硬件太多了,有的吹得天花乱坠,用起来却是一堆bug。为了不让大家的钱打水漂,我连续用了半个月。从开箱到日常高频使用,甚至故意测试它…
📅 2026/7/17 2:37:27
SQLyog 13.3.1 社区版在Windows 10/11上的完整安装与连接指南 对于刚接触MySQL数据库管理的开发者和学生来说,选择一个直观易用的图形化管理工具至关重要。SQLyog作为一款轻量级但功能强大的MySQL GUI工具,能够显著提升数据库操作的效率和体验。本文将详…
📅 2026/7/16 21:45:29
SPEC CPU 2006 跨平台基准测试深度实战:ARM/X86/MIPS 架构配置优化与结果分析方法论在当今多元化的计算架构时代,如何客观评估不同处理器平台的真实性能成为系统工程师和性能优化专家的核心挑战。SPEC CPU 2006 作为业界公认的计算密集型基准测试套件&am…
📅 2026/7/16 14:13:12
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/17 6:11:34
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/16 4:59:31
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/17 2:40:57