自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Ubuntu 12.04使用Django + apache + mysql 开发web应用(一)

1.首先安装Django>apt-get install python-django在Shell命令行中输入python (回车)>>>import django (回车)只要不报错就证明Django可以使用了在当前目录下创建一个名为djproject的项目>/usr/bin/django-admin startpro

2013-01-31 11:15:16 3927

转载 linux seqlock & rcu 浅析

转自http://hi.baidu.com/_kouu/item/0b99dae513c2b4b52f140bd1在linux内核中,有很多同步机制。比较经典的有spin_lock(忙等待的锁)、mutex(互斥锁)、semaphore(信号量)、等。并且它们几乎都有对应的rw_XXX(读写锁),以便在能够区分读与写的情况下,让读操作相互不互斥(读写、写写依然互斥)。而seqlock和rc

2012-08-27 14:30:54 1058

原创 使用windbg查看PE文件格式

DOS Header & NT Header:Data Directory:kd> !dh 0040000Export Table:Import Table:

2012-08-15 14:10:13 1773

原创 Win64 Driver开发问题记录(三)

在32位driver中,获取SSDT表中的函数可根据以下固定的公式(64位下获取KeServiceDescriptorTable参见Win64 Driver开发问题记录二)SSDTTableBase=(PVOID)((PServiceDescriptorTableEntry)KeServiceDescriptorTable)->ServiceTableBase;ULONG_PTR

2012-07-06 09:50:21 1704

原创 Win64 Driver开发问题记录(二)

Win64 driver开发中遇到的第二个问题是如何通过SSDT表引用系统服务内核函数。MS在64系统中引入了全新的PatchGuard技术,使得原本在32位下可轻易hook的SSDT表在64位系统中无法再patch(会引发BSOD).当然,目前我并非是要hook SSDT表,而是需要使用到SSDT表中的一个未导出的系统服务内核函数。在32位driver中可以通过extern "C

2012-07-05 18:40:19 3498 3

原创 Win64 Driver开发问题记录(一)

Win64开发中所遇到的第一个问题是X64编绎器不支持内嵌式汇编(inline assembly),因此在源码中无法通过"__asm"来调用汇编指令。 解决的方法是将汇编的功能放入一个单独的.asm文件中,并封装成一些汇编子过程(函数),在C的源码中通过外部声明"extern"来调用这些汇编过程(函数)。 此外,在source文件中加入对.asm文件引用。一般的做法

2012-07-05 18:19:21 1203

原创 Windows kernel中实现Unicode和UTF-8之间的转换

Widnows kernel中不存在Unicdoe/UTF-8转换函数, 因此通过分析UTF-8编码表自己实现转换函数UTF-8编码字符理论上可以最多到6个字节长,然而16位BMP(Basic Multilingual Plane)字符最多只用到3字节长。下面看一下UTF-8编码表:U-00000000 - U-0000007F: 0xxxxxxxU-00000080 - U-00

2012-07-05 14:22:49 1115

转载 内核同步机制-RCU同步机制

转自http://www.360doc.com/content/09/0805/00/36491_4675691.shtml目录[隐藏]1 RCU同步机制1.1 RCU介绍1.2 RCU API函数说明1.3 调用RCU API实现RCU同步1.4 RCU基本设计模式1.5 变换RCU运算法则后的RCU模式1.6 RCU相关数据结构1.7 R

2012-07-05 13:53:12 13244 1

原创 Ubuntu 8.04 x86_64安装xen 4.01

Free download ubuntu8.04(include amd64)http://releases.ubuntu.com/8.04/  安装1.      安装ubuntu-8.04.4-server-amd64.isoa)     UltraISO刻录成DVD,从光盘安盘b)     UltraISO制做U盘启动盘,通过U盘安装 2.      更新

2012-07-05 13:38:17 2268

转载 LDD3 linux设备驱动程序学习之lddbus

1. struct device不再包含bus_id,取而代之的是.init_name,修改ldd_bus[cpp] view plaincopystruct device ldd_bus = {        .init_name = "ldd0",        .release = ldd_bus_release  修改

2012-07-05 13:30:12 952

转载 LDD3之usb-skeleton

在LDD3的例程usb-skeleton中,1)修改id_table如下:[cpp] view plaincopystatic struct usb_device_id skel_table [] = {              {.driver_info = 42},              {}  };

2012-07-05 13:28:35 693

转载 编译ldd3的scullc模块出现的问题

ldd3的例子程序scullc是用kmem_cache_create等来说明lookaside caches的使用情况。由于在新的内核中,一些定义已经改变了。故该例子程序需要做一些改动。(1)kmem_cache_t结构被换成了kmem_cache。而kmem_cache定义在和。但是你并不需要包含这两个文件中的一个。因为会根据CONFIG_SLUB等来判断具体包含,还是。故例程中需要将

2012-07-05 13:25:19 586

转载 ldd3中scullv模块vm_operations_struct -> nopage到vm_operations_struct ->fault的变换

关于ldd3的scullv,在编译过程中,主要是vm_operations_struct中现在的kernel中已经没有.nopage这一operation了,其被 fault替换了。下面逐一说明:(1)main.c中,主要就是就是上一篇文章提到的INIT_WORK, schedule_delayed_work等改变。可以参考逐一改变即可。(2)在scullv.h中,需要包含

2012-07-05 13:21:02 1259

转载 移植sbull至kernel version > 2.6.31

移植sbull至kernel version > 2.6.31     最近在看LDD3和ULK,学习kernel中块设备的驱动机制,kernel 2.6中block layer API已经变更了许多,主要有以下几点:1. 对于request的请求处理机制,去除掉了原先的elv_next_request和blk_dequeue_request结构,取而代之的是blk_peek_

2012-07-05 13:13:35 785

空空如也

空空如也

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

TA关注的人

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