自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 按键精灵抢课

//********* test coordinate *****//Do While 0Delay 3000GetCursorPos x, yMessageBox xMessageBox yLoop//********* end of test ********// //******need user input*********/xCourseBox =

2015-09-09 11:53:35 5219 2

原创 实用工具函数

==>从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 374

原创 kernel 学习 : 文件系统

一.  VFS抽象:  提供一个通用模型,包括了文件操作全集,抽象给上层使用.                                    -- V F S --        用户 write() => sys_write() =>  具体文件系统调用 ==> 物理设备        VFS中,目录也当做普通文件看待,操作集没有本质不同。

2013-05-29 15:36:17 628

原创 kernel学习 - 内存

一   页的概念       关键结构:struct page{flags, count, virtual   };      一般32位是4K 一页,count表示一页用了多少次; virtual表示虚拟地址空间; 所以看出page是与物理内存一一对应;二     区的概念      根据硬件限制,划分内存区域:         a. DMA(直接内存访问,硬件直

2013-05-27 18:13:46 542

原创 linux kernel学习(3) - 时间

==HZ的概念:     一般是等于100,即10ms一次;     是系统定时器,中断触发。作用有:更新系统实际时间; 检查进程时间片(抢占的need_resched设置);更新cpu消耗和时间统计等;   ==实时时钟(RTC)和系统定时器:     RTC是用微电池保存时间;唯一作用是在系统启动设置xtime.     系统定时器是为产生固定频率中断,即HZ.

2013-05-27 17:05:08 460

原创 linux kernel学习(2) - 中断

1. 顺着教程书往下看,看到了系统调用,过程不复杂:       用户函数 =>  libc库 => 触发 0x80 软中断                            (到了内核了)     => 由system_call()执行中断处理 =>  (根据调用号,到具体处理函数) sys_call_table(eax, 4);    说明参数和调用号是通过寄存器下来的。

2013-05-23 17:41:09 402

原创 linux kernel学习 (1) - 进程

一. 基本:  task_struct :   定义在, 大小约1.7K, 包含管理进程需要的所有信息 。 如:进程状态 -> state  ;  打开的文件 -> files_struct *files;  进程地址空间 ->  ;  信号 -> signal_struct *signal   Current指针:获取当前进程。在x86里面,寄存器少,是通过先偏移到current

2013-05-18 09:54:17 437

原创 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 1042

原创 动手写第一个驱动

废话不说,上code,1stDrv.c:=======================================================================================#define  __NO_VERSION__ #include #include  #include  #include #include MO

2013-04-29 08:41:51 346

原创 制作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 944

空空如也

空空如也

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

TA关注的人

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