duduru

2024年1月20日

File system

摘要: 8 File system xv6构建的文件系统十分小巧并且功能齐全,虽然与现在的主流文件系统(FAT32、EXT4…)仍有差距,但文件系统实现的思想都大同小异,所以xv6的文件系统值得我们学习。 文件系统使用分层的思想:每一层分别实现某一单一功能;下一层为上一层提供接口。 各层实现功能: File 阅读全文

posted @ 2024-01-20 14:06 duduru 阅读(0) 评论(0) 推荐(0)

2023年12月5日

6.S081 Locks

摘要: Memory allocator 本测试用kalloctest例创造了3个进程,不断kalloc()和kfree(),这就意味着会频繁使用锁。然而我们的freelist只有1个,在多核里3个并行运行的进程必定会为了获得锁而自旋。 运行kalloctest可以看到结果。其中669281代表自旋次数,6 阅读全文

posted @ 2023-12-05 14:58 duduru 阅读(0) 评论(0) 推荐(0)

2023年11月27日

6.S081 Copy-on-Write Fork for xv6

摘要: Copy-on-Write Fork 写时复制 (Copy-on-write,简称COW) 是一种计算机程序设计领域的优化策略。其核心思想是,如果有多个调用者 (callers) 同时请求相同资源 (如内存或磁盘上的数据存储),他们会共同获取相同的指针指向相同的资源(全局变量,动态链接库),直到某个 阅读全文

posted @ 2023-11-27 20:55 duduru 阅读(0) 评论(0) 推荐(0)

2023年10月16日

6.S081 System calls

摘要: 系统调用执行过程 系统调用添加步骤 System call tracing sysproc.c uint64 sys_trace(void) { int n; if (argint(0, &n) < 0) return -1; myproc()->trace_mask = n; return n; 阅读全文

posted @ 2023-10-16 17:07 duduru 阅读(0) 评论(0) 推荐(0)

2023年7月15日

Makefile中的include

摘要: include 首先看下面这段makefile all: @echo "all" include test1 test1: @echo "test1 create" @echo "A=1" > test1 test2: @echo "test2 create" 第一次make: 第2次make: 分 阅读全文

posted @ 2023-07-15 22:55 duduru 阅读(0) 评论(0) 推荐(0)

2023年3月5日

imx6ull移植Qt

摘要: 本次移植采用buildroot构建Qt根文件系统的方式,在busybox构建的根文件系统之上,自动添加Qt库及其需要的依赖,极大简化了开发流程。 移植流程 buildroot构建根文件系统(包含qt库) buildroot相较于busybox构建根文件系统的最大好处就是可以自动添加各种外部库,例如q 阅读全文

posted @ 2023-03-05 21:29 duduru 阅读(0) 评论(0) 推荐(0)

2023年1月11日

Qt远程连接MySQL

摘要: Qt操作MySQL原理 从下图可以看到,在应用程序和数据库之间有一个驱动程序ODBC,不同DBMS(数据库管理系统,如MySQL,Oracle…)负责完善其操作(增删改查…)的驱动,并将其交给ODBC管理,而应用程序只需调用ODBC提供的接口,就能实现对数据库进行增删改查的操作,Qt就属于应用程序。 阅读全文

posted @ 2023-01-11 22:08 duduru 阅读(1) 评论(0) 推荐(0)

2022年10月27日

freertos内核--任务调度剖析

摘要: 前言 在使用freertos的时候,我们都知道在创建了一系列任务之后,启用调度器,系统就可以帮我们管理任务,分配资源。本文主要对调度器的原理进行剖析,从vTaskStartScheduler()函数开始,一探究竟。 freertos版本:9.0.0 启动调度器 vTaskStartScheduler 阅读全文

posted @ 2022-10-27 16:21 duduru 阅读(0) 评论(0) 推荐(0)

2022年9月17日

虚拟机NAT模式和桥接模式分析

摘要: NAT模式 NAT模式:虚拟机借助NAT功能,使其通过主机访问外网。 NAT模式下的网络拓扑如下: 图中的ip地址可自行配置,也可选择自动分配。 虚拟网卡VMnet8: 虚拟网关 DHCP进行ip地址分配 在NAT模式下,虚拟机构建了一个虚拟局域网169.254.0.0(子网掩码为255.255.0 阅读全文

posted @ 2022-09-17 15:14 duduru 阅读(0) 评论(0) 推荐(0)

2022年8月21日

C语言编译流程分析

摘要: C语言编译流程 预处理.i 编译.s 汇编.o 链接.exe 流程功能预处理头文件展开,宏替换,去掉注释编译将预处理生成的文件转换成汇编文件汇编将汇编文件转换成二进制文件链接将函数库中相应代码组合到目标文件中 流程分析 编译器对工程的文件依次编译,工程中包括main.c,test.c,test.h。 阅读全文

posted @ 2022-08-21 21:32 duduru 阅读(0) 评论(0) 推荐(0)

导航