LinuxÉ豸Çý¶¯±à³ÌÖ®ÄÚ´æÓëI/O²Ù×÷£¨×ª£©
תÖÁ£º http://dev.yesky.com/412/2639912.shtml
¶ÔÓÚÌṩÁËMMU£¨´æ´¢¹ÜÀíÆ÷£¬¸¨Öú²Ù×÷ϵͳ½øÐÐÄÚ´æ¹ÜÀí£¬ÌṩÐéʵµØÖ·×ª»»µÈÓ²¼þÖ§³Ö£©µÄ´¦ÀíÆ÷¶øÑÔ£¬LinuxÌṩÁ˸´ÔӵĴ洢¹ÜÀíϵͳ£¬Ê¹µÃ½ø³ÌËùÄÜ·ÃÎʵÄÄÚ´æ´ïµ½4GB¡£
¡¡¡¡½ø³ÌµÄ4GBÄÚ´æ¿Õ¼ä±»ÈËΪµÄ·ÖΪÁ½¸ö²¿·Ö--Óû§¿Õ¼äÓëÄں˿ռ䡣Óû§¿Õ¼äµØÖ··Ö²¼´Ó0µ½3GB(PAGE_OFFSET£¬ÔÚ0x86ÖÐËüµÈÓÚ0xC0000000)£¬3GBµ½4GBΪÄں˿ռ䣬ÈçÏÂͼ£º
¡¡¡¡Äں˿ռäÖУ¬´Ó3Gµ½vmalloc_startÕâ¶ÎµØÖ·ÊÇÎïÀíÄÚ´æÓ³ÉäÇøÓò£¨¸ÃÇøÓòÖаüº¬ÁËÄں˾µÏñ¡¢ÎïÀíÒ³¿ò±ímem_mapµÈµÈ£©£¬±ÈÈçÎÒÃÇʹÓõÄVMwareÐéÄâϵͳÄÚ´æÊÇ160M£¬ÄÇô3G¡«3G+160MÕâÆ¬ÄÚ´æ¾ÍÓ¦¸ÃÓ³ÉäÎïÀíÄÚ´æ¡£ÔÚÎïÀíÄÚ´æÓ³ÉäÇøÖ®ºó£¬¾ÍÊÇvmallocÇøÓò¡£¶ÔÓÚ160MµÄϵͳ¶øÑÔ£¬vmalloc_startλÖÃÓ¦ÔÚ3G+160M¸½½ü£¨ÔÚÎïÀíÄÚ´æÓ³ÉäÇøÓëvmalloc_startÆÚ¼ä»¹´æÔÚÒ»¸ö8MµÄgapÀ´·ÀÖ¹Ô¾½ç£©£¬vmalloc_endµÄλÖýӽü4G(×îºóλÖÃϵͳ»á±£ÁôһƬ128k´óСµÄÇøÓòÓÃÓÚרÓÃÒ³ÃæÓ³Éä)£¬ÈçÏÂͼ£º
¡¡¡¡kmallocºÍget_free_pageÉêÇëµÄÄÚ´æÎ»ÓÚÎïÀíÄÚ´æÓ³ÉäÇøÓò£¬¶øÇÒÔÚÎïÀíÉÏÒ²ÊÇÁ¬ÐøµÄ£¬ËüÃÇÓëÕæÊµµÄÎïÀíµØÖ·Ö»ÓÐÒ»¸ö¹Ì¶¨µÄÆ«ÒÆ£¬Òò´Ë´æÔڽϼòµ¥µÄת»»¹ØÏµ£¬virt_to_phys()¿ÉÒÔʵÏÖÄÚºËÐéÄâµØÖ·×ª»¯ÎªÎïÀíµØÖ·£º
#define __pa(x) ((unsigned long)(x)-PAGE_OFFSET)
extern inline unsigned long virt_to_phys(volatile void * address)
{
¡¡return __pa(address);
}
¡¡¡¡ÉÏÃæ×ª»»¹ý³ÌÊǽ«ÐéÄâµØÖ·¼õÈ¥3G£¨PAGE_OFFSET=0XC000000£©¡£
¡¡¡¡ÓëÖ®¶ÔÓ¦µÄº¯ÊýΪphys_to_virt()£¬½«ÄÚºËÎïÀíµØÖ·×ª»¯ÎªÐéÄâµØÖ·£º
#define __va(x) ((void *)((unsigned long)(x)+PAGE_OFFSET))
extern inline void * phys_to_virt(unsigned long address)
{
¡¡return __va(address);
}
¡¡¡¡virt_to_phys()ºÍphys_to_virt()¶¼¶¨ÒåÔÚinclude\asm-i386\io.hÖС£
¡¡¡¡¶øvmallocÉêÇëµÄÄÚ´æÔòλÓÚvmalloc_start¡«vmalloc_endÖ®¼ä£¬ÓëÎïÀíµØÖ·Ã»Óмòµ¥µÄת»»¹ØÏµ£¬ËäÈ»ÔÚÂß¼ÉÏËüÃÇÒ²ÊÇÁ¬ÐøµÄ£¬µ«ÊÇÔÚÎïÀíÉÏËüÃDz»ÒªÇóÁ¬Ðø¡£
¡¡¡¡ÎÒÃÇÓÃÏÂÃæµÄ³ÌÐòÀ´ÑÝʾkmalloc¡¢get_free_pageºÍvmallocµÄÇø±ð£º
#include <linux/module.h>
#include <linux/slab.h>
#include <linux/vmalloc.h>
MODULE_LICENSE("GPL");
unsigned char *pagemem;
unsigned char *kmallocmem;
unsigned char *vmallocmem;
int __init mem_module_init(void)
{
¡¡//×îºÃÿ´ÎÄÚ´æÉêÇë¶¼¼ì²éÉêÇ
Ïà¹ØÎĵµ£º
×¼±¸¹¤×÷:
¡¡¡¡Óõ½µÄperl À©Õ¹×é¼þ(modules)ÔÚÉÏÆªÌù³ö.( win32::odbc Ä£¿é
)ÏÂÔØ×é¼þºó°´ÕÕReadmeÎļþ°²×°µ¹ÏìӦĿ¼.ÅäÖúÃÏàÓ¦µÄodbcÊý¾ÝÔ´.
¡¡¡¡
¡¡¡¡³ÌÐòʵÏÖ:
¡¡¡¡Ê¹ÓÃ
¡¡¡¡use
Win32::ODBC;
¡¡¡¡
¡¡¡¡Óï¾ä°üº¬Ó¦Ê¹ÓõÄÄ£¿éÊÇwin32::odbc,д³öÊý¾Ý¿â
Á¬½Ó×Ö·û´®
¡¡¡¡
¡¡¡¡$DSN = "DSN =
My DSN ......
¹¦ÄÜÃèÊö£º
»ñȡһЩÎļþÏà¹ØµÄÐÅÏ¢¡£
Ó÷¨£º
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
int stat(const char *path, struct stat *buf);
int fstat(int filedes, struct stat *buf);
int lstat(const char *path, struct stat *buf);
²ÎÊý£º
path£ºÎļþ ......
linux Ï ÓÃcÓïÑÔ´´½¨mysqlÊý¾Ý¿â±Ê¼Ç£¨Ò»£©
£££££½öΪ¸öÈËѧϰժҪ£¬²¢²»¶Ï¸üÐÂÖС£¡£¡£¡£
ÔÚÒýÓÃÍ·Îļþʱ±ØÐë°üº¬‘mysql.h’µÄÍ·Îļþ(±ØÐëÊÇmysql.hµÄ¾ø¶ÔµØÖ·£¬Ò»°ãÔÚmysqlϵÄincludeĿ¼Ï£¬×Ðϸ¿´¿´ÄãµÄÔÚÄÄÀ*),
ÎÒÊÇubuntu9¡£04£¬ÔÚ/usr/include/mysql/mysql ......
±¾À´ÏëÓà 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
# ......
ÔÎĵØÖ·£ºhttp://wanping.blogbus.com/logs/28663569.html
1¡¢Ê±¼ä´Áת»»ÎªÕý³£ÏÔʾµÄʱ¼ä¸ñʽ
Freebsd
ϵͳÏ£º
ת»»ÃüÁîΪ£º
date -r 1112173761 »òÕߣºdate -r 1112173761 +"%Y-%m-%d %T %z"£¨ÄêÔÂÈյĸñʽ²»Ò»Ñù£©
Linux
ϵͳÏ£º
ת»»ÃüÁdate -d '1970-01-01 UTC 11121 ......