- 博客(10)
- 收藏
- 关注
原创 按键精灵抢课
//********* test coordinate *****//Do While 0Delay 3000GetCursorPos x, yMessageBox xMessageBox yLoop//********* end of test ********// //******need user input*********/xCourseBox =
2015-09-09 11:53:35
5300
1
原创 实用工具函数
==>从member地址找到结构体地址#define container_of(ptr, type, member) ({ \const typeof(((type *)0)->member) * __mptr = (ptr);\(type *)((char *)__mptr - offsetof(type, member)); })#endif==>找到mem
2014-02-21 10:42:43
406
原创 kernel 学习 : 文件系统
一. VFS抽象: 提供一个通用模型,包括了文件操作全集,抽象给上层使用. -- V F S -- 用户 write() => sys_write() => 具体文件系统调用 ==> 物理设备 VFS中,目录也当做普通文件看待,操作集没有本质不同。
2013-05-29 15:36:17
662
原创 kernel学习 - 内存
一 页的概念 关键结构:struct page{flags, count, virtual }; 一般32位是4K 一页,count表示一页用了多少次; virtual表示虚拟地址空间; 所以看出page是与物理内存一一对应;二 区的概念 根据硬件限制,划分内存区域: a. DMA(直接内存访问,硬件直
2013-05-27 18:13:46
591
原创 linux kernel学习(3) - 时间
==HZ的概念: 一般是等于100,即10ms一次; 是系统定时器,中断触发。作用有:更新系统实际时间; 检查进程时间片(抢占的need_resched设置);更新cpu消耗和时间统计等; ==实时时钟(RTC)和系统定时器: RTC是用微电池保存时间;唯一作用是在系统启动设置xtime. 系统定时器是为产生固定频率中断,即HZ.
2013-05-27 17:05:08
513
原创 linux kernel学习(2) - 中断
1. 顺着教程书往下看,看到了系统调用,过程不复杂: 用户函数 => libc库 => 触发 0x80 软中断 (到了内核了) => 由system_call()执行中断处理 => (根据调用号,到具体处理函数) sys_call_table(eax, 4); 说明参数和调用号是通过寄存器下来的。
2013-05-23 17:41:09
431
原创 linux kernel学习 (1) - 进程
一. 基本: task_struct : 定义在, 大小约1.7K, 包含管理进程需要的所有信息 。 如:进程状态 -> state ; 打开的文件 -> files_struct *files; 进程地址空间 -> ; 信号 -> signal_struct *signal Current指针:获取当前进程。在x86里面,寄存器少,是通过先偏移到current
2013-05-18 09:54:17
474
原创 qemu 调试 kernel (二)
qemu搭建调试环境见前面,现在已经将裸kernel起来,马上进行debug: 1. 在qemu界面,用ctrl+alt+1 或 ctrl+alt+2, 切换到qemu输出与控制页面2. 在qemu控制页面下,输入: gdbserver 1234;(这里我总是提示 could not open device on device '1234', 输入gdbserver tcp::123
2013-04-29 10:39:34
1090
原创 动手写第一个驱动
废话不说,上code,1stDrv.c:=======================================================================================#define __NO_VERSION__ #include #include #include #include #include MO
2013-04-29 08:41:51
374
原创 制作16M ramdisk -- qemu测试用
刚接触kernel,为了学习源码,自己在虚拟机上用qemu来run image: “qemu -kernel linux-stable-3.8.3/bzImage -hda ramdisk/linux-0.2.img -append root=/dev/sda -s” 但在build fs时卡住了,从qemu官网下载的linux-0.2.img可以用;自己fs
2013-04-26 15:55:23
1007
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人