linuxÖеÄoutb¡¢outw¡¢inb¡¢inw
ÔÚlinuxµÄÇý¶¯³ÌÐòÖУ¬¶¼»áʹÓôóÁ¿µÄoutb¡¢outw¡¢inb¡¢inwµÈµÈºêÀ´·ÃÎÊÓ²¼þ»ò¼Ä´æÆ÷¡£ÕâЩºêµÄ¶¨Òå¶¼ÔÚÏàÓ¦´¦ÀíÆ÷ÌåϵϵÄinclude\asmĿ¼ÏµÄio.hÖж¨Òå¡£×·¾¿ÏÂÈ¥£¬ÕâЩºê×îÖÕ¾ÍÊÇÒ»¸övolatile±äÁ¿µÄµÄ¸³Öµ£º
#define __arch_putb(v,a) (*(volatile unsigned char *)(a) = (v))
#define __raw_writeb(v,a) __arch_putb(v,a)
#define outb(v,p) __raw_writeb(v,__io(p))
ÔÚ(*(volatile unsigned char *)(a) = (v))ÖУ¬aÊÇÒ»¸öÎïÀíµØÖ·£¨ÊµµØÖ·£¬¶àÊýÊÇÌØÊ⹦ÄܼĴæÆ÷µØÖ·£©¡£(volatile unsigned char *)¶Ôa½øÐÐÀàÐÍת»»£¬³ÉΪһ¸öÖ¸Ïò¸ÃµØÖ·Ö¸Õ룬×îºó*(volatile unsigned char *)(a)ÒýÓøÃÖ¸Õë¶Ô¸ÃµØÖ·¸³Öµv¡£ÕâÑù¾Í¿ÉÒÔ´ïµ½·ÃÎʵײãÓ²¼þµÄÄ¿µÄÁË¡£
Ïà¹ØÎĵµ£º
yum update ¸üÐÂϵͳ֮ºó£¬Äں˰汾³öÏÖÁËÁ½ÖÖ£¬Ò»ÖÖÊÇPAE£¬ÁíÍâÒ»ÖÖ²¢Ã»ÓÐPAE¡£
ºÎνPAEÄØ£¿È«³Æ£ºPhysical Address Extension
Æäʵ¾ÍÊÇʹ32λϵͳ֧³Ö³¬¹ý4GÄڴ棬×î´ó¿É´ï64GÄÚ´æ¡£
¶ÔÓÚLinuxÀ´Ëµ£¬Äں˴Ó2.6°æ±¾¿ªÊ¼È«ÃæÖ§³ÖPAE[3]
£¬ÕâʹµÃÔÚ32λµÄ»úÆ÷ÉÏ¿ÉÒÔ·ÃÎÊ64GBµÄÄÚ´æ¡£ÆôÓÃÁËPAEµÄLinuxÄں˻¹ÐèҪͬÑùÖ§³ÖP ......
Èç¹ûÔÚlinux C\C++»·¾³ÏÂÅжÏij¸öÎļþÊÇ·ñ´æÔÚ£¬¿ÉÒÔʹÓÃaccessº¯Êý£º
#include <unistd.h>
#include <stdio.h>
int main()
{
const char* file1 = "access.cpp";
const char* file2 = "access1.cpp";
& ......
Linux½ø³ÌÔõÑù²ÅÄÜ»ñÈ¡ÊôÓÚËü×Ô¼ºµÄÏßÐÔµØÖ·¿Õ¼äÄØ£¬±ÈÈç 0x08048000µ½0x0804c000Õâ¶ÎÏßÐÔµØÖ·¿Õ¼ä±»·ÖÅ䏸ÁËÒ»¸ö½ø³Ì£¬½ø³Ì¾Í¿ÉÒÔ·ÃÎÊÕâ¶ÎµØÖ·¿Õ¼ä£¬ÏßÐÔµØÖ·¿Õ¼äµÄ¿ªÊ¼ºÍ½áÊø¶¼±ØÐëÒÔ4KB¶ÔÆë
ÕâÀïÓÐÒÔϼ¸ÖÖÇé¿ö£º
1.¸Õ¸Õ´´½¨µÄнø³Ì£»
2.ʹÓÃexecϵͳµ÷ÓÃ×°ÔØÒ»¸öеijÌÐòÔËÐУ»
3.½«Ò»¸öÎļþ£¨»ò²¿£©Ó³Éäµ½½ø³ÌµØÖ ......
1£®ÎļþµÄ´´½¨ºÍ¶Áд
¡¡¡¡µ±ÎÒÃÇÐèÒª´ò¿ªÒ»¸öÎļþ½øÐжÁд²Ù×÷µÄʱºò,ÎÒÃÇ¿ÉÒÔʹÓÃϵͳµ÷Óú¯Êýopen.ʹÓÃÍê³ÉÒÔºóÎÒÃǵ÷ÓÃÁíÍâÒ»¸öcloseº¯Êý½øÐйرղÙ×÷.
¡¡¡¡¡¡¡¡int open(const char *pathname,int flags);
¡¡¡¡¡¡¡¡int open(const char *pathname,int flags,mode_t mode);
¡¡¡¡¡¡¡¡int close(int fd);
......
ÔÚubuntuÏ»ù±¾ÉÏÖ»Òªapt-get ¾Í¿ÉÒÔÁË£¬µ«ÊÇÓÐʱºòÒª³¢Ïʾ͵ÃÈ¥ÁíÍâÏÂÁË£¬Õâʱ¾ÍÒªÁ˽âһЩlinuxϰ²Èí¼þµÄ֪ʶÁË£¬ËùÒÔÔÚÍøÉÏÕÒÁËÕâÆªÎÄÕ£®Õª×Ô£ºCnXHacker.Net
¡¡¡¡ÔÚWindowsϰ²×°Èí¼þʱ£¬Ö»ÐèÓÃÊó±êË«»÷Èí¼þµÄ°²×°³ÌÐò£¬»òÕßÓÃZipµÈ½âѹËõÈí¼þ½âѹËõ¼´¿É°²×°¡£ÔÚLinuxϰ²×°Èí¼þ¶Ô³õѧÕßÀ´Ëµ£¬ÄѶȸßÓÚWindowsÏÂÈí¼ ......