易截截图软件、单文件、免安装、纯绿色、仅160KB

Linux下把kernel空间映射到用户进程空间(mmap实现)

 在mmap函数里,使用remap_pfn_range
函数。代码如下。注意要设置一下vma->vm_pgoff为你要map的io空间的物理地址对应的页。
arm  IO/ 内存统一编址  所以
#define io_remap_pfn_range(vma,from,pfn,size,prot) \
                remap_pfn_range(vma, from, pfn, size, prot)
vm_start, vm_end  在系统调用时算好了,应该时找个空闲得空间,然后根据size算出vm_end,
static int filter_mmap(struct file *filp, struct vm_area_struct *vma)
{
vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
vma->vm_pgoff = ( (u32)map_start >> PAGE_SHIFT);
if (remap_pfn_range
(vma,
vma->vm_start,
vma->vm_pgoff,
vma->vm_end-vma->vm_start,
vma->vm_page_prot))
return -EAGAIN;
return 0;
}
map 过程 :
用户空间map(start,offset, len , fd ,...)   start 映射到的用户空间地址,0就是自己去找吧,offset 文件的偏移。 
old_mmap(struct mmap_arg_struct __user *arg)      // arch/arm/kernel/sys_arm.c
   |
do_mmap2(a.addr, a.len, a.prot, a.flags, a.fd, a.offset >> PAGE_SHIFT);
   |
do_mmap_pgoff(file, addr, len, prot, flags, pgoff);   //   mm/mmap.c
可能合并VMA
否则新分配一个VMA
然后
error = file->f_op->mmap(file, vma);
就调用了驱动里的mmap     
这时候vma->vm_pgoff = pgoff    (这个pgoff就是map(offset, len , fd ,...)  中的 offset ,当然经过处理了,PAGE_SHIFT移来移去的)


相关文档:

用Linux下Perl脚本连接SQLServer

准备工作:
  用到的perl 扩展组件(modules)在上篇贴出.( win32::odbc 模块
)下载组件后按照Readme文件安装倒响应目录.配置好相应的odbc数据源.
  
  程序实现:
  使用
  use
Win32::ODBC;
  
  语句包含应使用的模块是win32::odbc,写出数据库
连接字符串
  
  $DSN = "DSN =
My DSN ......

Linux下忘记MySQL root密码的解决方案

最近实验室内部的mysql的root密码被修改了,需要想办法修改新密码。方法如下:
1, 关闭mysql服务
/etc/init.d/mysqld stop
2,使用–skip-grant-tables选项启动MySQL服务,可以修改/etc/inin.d/mysqld脚本启动位置增加此选项,
vi /etc/init.d/mysqld
在下面运行启动的语句里增加--skip-grant-tables
......

调整linux虚拟机硬盘大小

安装时硬盘空间不足
    挂载一个新硬盘
    先将虚拟机Power Off,在Virtual Machine Setting对话框里点击左下角的“Add”,选择“Hard Disk”,之后选择“Create a new virtual disk”,分配容量,其他默认配置。
    启动虚拟机系统,用 ......

Socket编程:由Linux向Windows移植问题


转自:http://www.cic.tsinghua.edu.cn/jdx/book1/CHAPTER3.htm
 
在源文件开始增加#include <winsock.h>语句。
调用WSAStartup()函数初始化Windows Sockets DLL,并在结束时调用WSACleanup()函数通知Windows Sockets DLL释放资源。
将套接字的类型为int改为SOCKET。
获取、设置错误码不要使用全局变量er ......

Veritas Linux Cluster

Get Redhat Enterprise 3.0 from:
Your local RedHat rep�
Get Veritas’ VCS and VM products from:
ftp://ftp.veritas.com/pub/products/fst_ha.lxrt2.2.redhatlinux.tar.gz
ftp://ftp.veritas.com/pub/products/fst_ha.lxrt2.2MP1.redhatlinux.tar.gz
You will need a temporary key to complete this ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号