07 2024 档案
摘要:环境 Time 2022-11-20 WSL-Ubuntu 22.04 Rust 1.65.0 pnet 0.31.0 前言 说明 参考:https://docs.rs/pnet_datalink/0.31.0/pnet_datalink/dummy 目标 使用 pnet_datalink 包中的
阅读全文
摘要:环境 Time 2022-11-20 WSL-Ubuntu 22.04 Rust 1.65.0 pnet 0.31.0 前言 说明 参考:https://docs.rs/pnet_datalink/0.31.0/pnet_datalink/dummy 目标 使用 pnet_datalink 包中的
阅读全文
摘要:环境 Time 2022-11-20 WSL-Ubuntu 22.04 Rust 1.65.0 pnet 0.31.0 前言 说明 参考:https://docs.rs/pnet_datalink/0.31.0/pnet_datalink/dummy 目标 使用 pnet_datalink 包中的
阅读全文
摘要:环境 Time 2022-11-20 WSL-Ubuntu 22.04 Rust 1.65.0 pnet 0.31.0 前言 说明 参考:https://docs.rs/pnet_datalink/0.31.0/pnet_datalink/dummy 目标 使用 pnet_datalink 包中的
阅读全文
摘要:环境 Time 2022-11-17 WSL-Ubuntu 22.04 Rust 1.65.0 前言 说明 参考:https://raytracing.github.io/books/RayTracingInOneWeekend.html 目标 将之前的所有的内容合并在一起生成一个最终的图像。 ve
阅读全文
摘要:环境 Time 2022-11-17 WSL-Ubuntu 22.04 Rust 1.65.0 前言 说明 参考:https://raytracing.github.io/books/RayTracingInOneWeekend.html 目标 在相机不对焦的地方,会出现模糊效果,这一节实现这种效果
阅读全文
摘要:环境 Time 2022-11-17 WSL-Ubuntu 22.04 Rust 1.65.0 前言 说明 参考:https://raytracing.github.io/books/RayTracingInOneWeekend.html 目标 将相机的位置和远近参数化,可以调节相机的位置。 叉乘
阅读全文
摘要:环境 Time 2022-11-17 WSL-Ubuntu 22.04 Rust 1.65.0 前言 说明 参考:https://raytracing.github.io/books/RayTracingInOneWeekend.html 目标 实现透明材质的反射功能。 Dielectric imp
阅读全文
摘要:环境 Time 2022-11-16 WSL-Ubuntu 22.04 Rust 1.65.0 前言 说明 参考:https://raytracing.github.io/books/RayTracingInOneWeekend.html 目标 再新增一种材质,实现折射功能。 增加朝向 pub st
阅读全文
摘要:环境 Time 2022-11-16 WSL-Ubuntu 22.04 Rust 1.65.0 前言 说明 参考:https://raytracing.github.io/books/RayTracingInOneWeekend.html 目标 新增金属材质,实现反射和模糊函数。 金属材质 pub
阅读全文
摘要:环境 Time 2022-11-16 WSL-Ubuntu 22.04 Rust 1.65.0 前言 说明 参考:https://raytracing.github.io/books/RayTracingInOneWeekend.html 目标 不同的材质有不同的散射光线和衰减,这一节将不同的材质进
阅读全文
摘要:环境 Time 2022-11-16 WSL-Ubuntu 22.04 Rust 1.65.0 前言 说明 参考:https://raytracing.github.io/books/RayTracingInOneWeekend.html 目标 对物体上的光线进行漫反射,然后增加伽马校正。 颜色显示
阅读全文
摘要:环境 Time 2022-11-16 WSL-Ubuntu 22.04 Rust 1.65.0 前言 说明 参考:https://raytracing.github.io/books/RayTracingInOneWeekend.html 目标 之前生成的版本,在交界处,能很明显看到锯齿,增加采样和
阅读全文
摘要:环境 Time 2022-11-16 WSL-Ubuntu 22.04 Rust 1.65.0 前言 说明 参考:https://raytracing.github.io/books/RayTracingInOneWeekend.html 目标 重构相机部分逻辑,将其单独提到一个类中,保持逻辑不变。
阅读全文
摘要:环境 Time 2022-11-15 WSL-Ubuntu 22.04 Rust 1.65.0 前言 说明 参考:https://raytracing.github.io/books/RayTracingInOneWeekend.html 目标 前一篇已经增加了可以处理球体的渲染,这里增加一个列表来
阅读全文
摘要:环境 Time 2022-11-15 WSL-Ubuntu 22.04 Rust 1.65.0 前言 说明 参考:https://raytracing.github.io/books/RayTracingInOneWeekend.html 目标 main 文件中的逻辑越来越多,考虑将其抽象出来,分成
阅读全文
摘要:环境 Time 2022-11-15 WSL-Ubuntu 22.04 Rust 1.65.0 前言 说明 参考:https://raytracing.github.io/books/RayTracingInOneWeekend.html 目标 在上一节,如果和球体相交,则直接显示红色。 这一节,将
阅读全文
摘要:环境 Time 2022-11-15 WSL-Ubuntu 22.04 Rust 1.65.0 前言 说明 参考:https://raytracing.github.io/books/RayTracingInOneWeekend.html 目标 定义一个球体,如果光线与球相交,则渲染成红色。 其中的
阅读全文
摘要:环境 Time 2022-11-15 WSL-Ubuntu 22.04 Rust 1.65.0 前言 说明 参考:https://raytracing.github.io/books/RayTracingInOneWeekend.html 目标 在之前的基础上,画一副背景图片。 线的表示 用一个点和
阅读全文
摘要:环境 Time 2022-11-15 WSL-Ubuntu 22.04 Rust 1.65.0 前言 说明 参考:https://raytracing.github.io/books/RayTracingInOneWeekend.html 目标 定义三维向量的几个基本运算函数。 加法 两个向量相加,
阅读全文
摘要:环境 Time 2022-11-14 WSL-Ubuntu 22.04 Rust 1.65.0 前言 说明 参考:https://raytracing.github.io/books/RayTracingInOneWeekend.html 目标 将之前定义的三种颜色,封装到一个三维的向量中,保持原有
阅读全文
摘要:环境 Time 2022-11-14 WSL-Ubuntu 22.04 Rust 1.65.0 前言 说明 参考:https://raytracing.github.io/books/RayTracingInOneWeekend.html 目标 编写一个简单的程序,输出一张 .ppm 格式的图片并查
阅读全文
摘要:环境 Time 2022-11-13 WSL-Ubuntu 22.04 QEMU 6.2.0 Rust 1.67.0-nightly VSCode 1.73.1 前言 说明 参考:https://os.phil-opp.com/vga-text-mode 目标 可以使用 println! 宏向屏幕输
阅读全文
摘要:环境 Time 2022-11-13 WSL-Ubuntu 22.04 QEMU 6.2.0 Rust 1.67.0-nightly VSCode 1.73.1 前言 说明 参考:https://os.phil-opp.com/vga-text-mode 目标 使用 VGA 输出的时候,在一行已经满
阅读全文
摘要:环境 Time 2022-11-13 WSL-Ubuntu 22.04 QEMU 6.2.0 Rust 1.67.0-nightly VSCode 1.73.1 前言 说明 参考:https://os.phil-opp.com/vga-text-mode 目标 编写一个可以使用 VGA 进行输出的方
阅读全文
摘要:环境 Time 2022-11-13 WSL-Ubuntu 22.04 QEMU 6.2.0 Rust 1.67.0-nightly VSCode 1.73.1 前言 说明 参考:https://os.phil-opp.com/minimal-rust-kernel 目标 将上一节编写的可执行文件制
阅读全文
摘要:环境 Time 2022-11-13 WSL-Ubuntu 22.04 QEMU 6.2.0 Rust 1.67.0-nightly 前言 说明 参考:https://os.phil-opp.com/minimal-rust-kernel 目标 将上一节编写的可执行文件制作成 QEMU 可以启动的镜
阅读全文
摘要:环境 Time 2022-11-13 WSL-Ubuntu 22.04 QEMU 6.2.0 Rust 1.67.0-nightly 前言 说明 参考:https://os.phil-opp.com/minimal-rust-kernel 目标 编译个 x64 平台的独立可执行程序。 切换到 nig
阅读全文
摘要:环境 Time 2022-11-12 WSL-Ubuntu 22.04 QEMU 6.2.0 Rust 1.65.0 前言 说明 参考:https://os.phil-opp.com/freestanding-rust-binary 目标 当前为新的篇章,参考的原文第二版,和之前的第一版不关联。 使
阅读全文
摘要:环境 Time 2022-11-12 WSL-Ubuntu 22.04 QEMU 6.2.0 NASM 2.15.05 Rust 1.67.0-nightly 前言 说明 参考:https://os.phil-opp.com/set-up-rust/ 目标 从汇编代码中调用 Rust 代码。该篇基于
阅读全文
摘要:环境 Time 2022-11-12 WSL-Ubuntu 22.04 QEMU 6.2.0 NASM 2.15.05 前言 说明 参考:https://os.phil-opp.com/entering-longmode 目标 从保护模式切换到长模式。 定位代码段 因为当前还是执行的 32 的指令,
阅读全文
摘要:环境 Time 2022-11-12 WSL-Ubuntu 22.04 QEMU 6.2.0 NASM 2.15.05 前言 说明 参考:https://os.phil-opp.com/entering-longmode 目标 在之前的实模式切换到保护模式时,已经创建过全局描述符表(GDT),这里需
阅读全文
摘要:环境 Time 2022-11-12 WSL-Ubuntu 22.04 QEMU 6.2.0 NASM 2.15.05 前言 说明 参考:https://os.phil-opp.com/entering-longmode 目标 如果要进入长模式,则必须要进行分页。在 64 位系统中,采用 4 级分页
阅读全文
摘要:环境 Time 2022-11-12 WSL-Ubuntu 22.04 QEMU 6.2.0 NASM 2.15.05 前言 说明 参考:https://os.phil-opp.com/entering-longmode// 目标 定义一个长模式检查函数,验证 CPU 是否支持长模式。 长模式也就是
阅读全文
摘要:环境 Time 2022-11-12 WSL-Ubuntu 22.04 QEMU 6.2.0 NASM 2.15.05 前言 说明 参考:https://os.phil-opp.com/entering-longmode// 目标 为了方便在出错的时候,看到错误代码,新增一个打印错误代码的函数。 汇
阅读全文
摘要:环境 Time 2022-11-12 WSL-Ubuntu 22.04 QEMU 6.2.0 NASM 2.15.05 前言 说明 参考:https://os.phil-opp.com/multiboot-kernel/ 目标 使用编写好的内核可执行文件,直接从 QEMU 启动,启动时暂停 CPU,
阅读全文
摘要:环境 Time 2022-11-12 WSL-Ubuntu 22.04 QEMU 6.2.0 NASM 2.15.05 前言 说明 参考:https://os.phil-opp.com/multiboot-kernel/ 参考:https://megtechcorner.medium.com/a-t
阅读全文
摘要:环境 Time 2022-11-12 WSL-Ubuntu 22.04 QEMU 6.2.0 NASM 2.15.05 前言 说明 参考:https://os.phil-opp.com/multiboot-kernel/ 参考:https://ncona.com/2019/12/debugging-
阅读全文
摘要:环境 Time 2022-11-11 WSL-Ubuntu 22.04 QEMU 6.2.0 NASM 2.15.05 前言 说明 参考:https://os.phil-opp.com/multiboot-kernel/ 目标 将编写好的内核可执行文件,制作成 ISO 镜像,然后从 QEMU 启动。
阅读全文
摘要:环境 Time 2022-11-11 WSL-Ubuntu 22.04 QEMU 6.2.0 NASM 2.15.05 前言 说明 参考:https://os.phil-opp.com/multiboot-kernel/ 目标 编写一个可以加载执行的文件。 启动代码 global start sec
阅读全文
摘要:环境 Time 2022-11-11 WSL-Ubuntu 22.04 QEMU 6.2.0 NASM 2.15.05 前言 说明 参考:https://os.phil-opp.com/multiboot-kernel/ 目标 编写一个符合 multiboot2 规范的启动文件。 multiboot
阅读全文
摘要:环境 Time 2022-11-10 WSL-Ubuntu 22.04 QEMU 6.2.0 NASM 2.15.05 前言 说明 参考:《x86汇编语言:从实模式到保护模式》李忠 目标 从十六位的实模式进入 32 位保护模式。 汇编代码 jmp start gdt_info: dw gdt_end
阅读全文
摘要:环境 Time 2022-11-09 WSL-Ubuntu 22.04 QEMU 6.2.0 NASM 2.15.05 前言 说明 参考:《x86汇编语言:从实模式到保护模式》李忠 目标 通过过程调用来向屏幕输出 hello world。 过程调用 过程调用有点类似跳转,不过调用后,还会回到原来的位
阅读全文
摘要:环境 Time 2022-11-09 WSL-Ubuntu 22.04 QEMU 6.2.0 NASM 2.15.05 前言 说明 参考:《x86汇编语言:从实模式到保护模式》李忠 目标 通过设置 SS 栈段,和 push,pop 指令,反序输出 hello world。 BIOS 中断 栈是一种可
阅读全文
摘要:环境 Time 2022-11-09 WSL-Ubuntu 22.04 QEMU 6.2.0 NASM 2.15.05 前言 说明 参考:《x86汇编语言:从实模式到保护模式》李忠 参考:http://www.ablmcc.edu.hk/~scy/CIT/8086_bios_and_dos_inte
阅读全文
摘要:环境 Time 2022-11-09 WSL-Ubuntu 22.04 QEMU 6.2.0 NASM 2.15.05 前言 说明 参考:《x86汇编语言:从实模式到保护模式》李忠 目标 使用 loop 循环,实现 1 到 100 的加法计算。 汇编代码 ;计算 1 到 100 相加的结果 mov
阅读全文