LinuxÏÂÈçºÎ°ÑIO¿Õ¼äÓ³Éäµ½Óû§½ø³Ì¿Õ¼ä£¿
ÆäʵÊǸöÂù¼òµ¥µÄÎÊÌâ¡£ÔÚLDD3µÄµÚ15ÕÂÉÏÓÐд£¨¼û“Remapping Specific I/O Regions”ÕâÒ»½Ú£©¡£²»¹ýµ±Ê±×÷ÕßÑ¡ÔñÁËÒ»¸ö´íÎóµÄ×ö·¨£ºÏȰÑÕâ¿éIO¿Õ¼äÓÃioremapÓ³Éäµ½ÁËÄں˿ռ䣬ȻºóÔÚÓû§½ø³Ì·ÃÎʱ»Ó³ÉäµÄµØÖ·Ëù²ú ÉúµÄȱҳÖжÏÀÓÃvmalloc_to_pageµÃµ½page£¬·µ»Ø¸øÓû§½ø³Ì¡£
È»¶ø£¬vmalloc_to_pageû·¨ÓÃÔÚioremapËùµÃµ½µÄµØÖ·ÉÏ£¬ÒòΪIO¿Õ¼ä¸ù±¾¾ÍûÓжÔÓ¦µÄPage½á¹¹£¬·µ»ØµÄpageÖ¸Õë×ÔÈ»ÊDz»¶ÔµÄ¡£
ÕýÈ·µÄ×ö·¨ÊÇÔÚmmapº¯ÊýÀʹÓÃremap_pfn_rangeº¯Êý¡£´úÂëÈçÏ¡£×¢ÒâÒªÉèÖÃÒ»ÏÂvma->vm_pgoffΪÄãÒªmapµÄio¿Õ¼äµÄÎïÀíµØÖ·¶ÔÓ¦µÄÒ³¡£
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;
}
Ïà¹ØÎĵµ£º
±¾À´ÏëÓà kernel-module-ntfs-2.6.18-53.el5-2.1.27-0.rr.10.11.i686ÕâÖÖ¸ñʽµÄ°ü£¬µ«·¢ÏÖϵͳÄÚºË 2.6.18-164.2.1.el5.plus
¸ù±¾ÕÒ²»µ½¶ÔÓ¦µÄÎļþ£¬ËùÒÔÖ»ºÃʹÓà ntfs-3g.
°²×°ºÜ¼òµ¥£¬Ö±½Ó´Óhttp://www.ntfs-3g.org/index.html ÏÂÔØ×îеÄÎļþ£¬
#wget http://www.ntfs-3g.org/ntfs-3g-2009.4.4.tgz
# ......
ÓÉÓÚ±¾ÈËÌ«ºÃÕÛÌÚϵͳ£¬¼´Ê¹ÏñlinuxÕâÑùÎȶ¨µÄϵͳҲÄÑÃâ±»ÕûµÄÂÒÆß°ËÔ㣬Èç¹ûÄÜÏñÓÃghost±¸·ÝwindowsϵͳһÑù±¸·Ýlinuxϵͳ£¬ÄǾͷ½±ã¶àÁË¡£
googleһϣ¬Óв»ÉÙ·½·¨£¬×îÏñghostµÄµ±È»ÊÇghost for linuxÁË¡£ÍøÉÏÓÐһЩʹÓõķ½·¨£¬ÎÒÀÁµÄ´ò×ÖÁË£¬Ö±½Ó´Ó±ð´¦¿½±´Ò»·Ý¹ýÀ´ËãÁË£¬ÈçÏ£º
£±¡¢ÏÂÔØG4LµÄisoÎļþ¿Ì³ÉÅÌ£¬´Ó¹â ......
ת×Ô http://blog.china-pub.com/more.asp?name=uniware&id=35478
ÔÚLinuxϲúÉú²¢µ÷ÊÔcoreÎļþ
ÏÈ¿´¿´ÎÒÓõÄÊǸöʲô»úÆ÷£º
$ uname -a
Linux dev 2.4.21-9.30AXsmp #1 SMP Wed May 26 23:37:09 EDT 2004 i686 i686 i386 GNU/Linux
ÔÙ¿´¿´Ä¬ÈϵÄһЩ²ÎÊý£¬×¢Òâcore file sizeÊǸö0£¬³ÌÐò ......
Õâ´Îתµ½Á˺½¿ÕµÄÒ»¸öÏîÄ¿£¬ÐèÒªÔÚLinuxÏÂÓÃC×ö¿ª·¢¡£°æ±¾¹ÜÀí²ÉÓÃSVN£¬´Ó×òÌìÏÂÎ翪ʼÎҾͿªÊ¼Á˰²×°£¬ÕæµÄÊÇÍ´¿àµÄ¹ý³Ì¡£ÏÖÔÚµ¹Êǰ²×°ºÃÁË£¬µ«ÊÇÅäÖÃÃüÁûÓÐÕÆÎÕ¡£
Èç¹ûÓÐȨÏÞ´ÓÍøÉÏÖ±½Ó¸üÐÂÈí¼þ£¬ÎÒ²»±ØÃ¿´Î¶¼È¥ÕÒÔ´Âë°ü£¬È ......
Õâ¸öÊÇÎÒÔÚÒ»±¾ÊéÉÏ¿´µ½µÄ£¬ÆäÖеÄһЩ´úÂëÎÒÓÐËù¸Ä±ä£¬Ð´¸ø¸÷λºÃÓѹ²Ïíһϣ¡
#include <sys/types.h>
#include <sys/socket.h>
#include <unistd.h>
#include <stdio.h>
#include <string.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <errno.h&g ......