Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö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ÒÆÀ´ÒÆÈ¥µÄ)


Ïà¹ØÎĵµ£º

¡¾×ª¡¿windowsÉϵÄdb2Á¬½ÓlinuxÉÏdb2µÄͨÐÅÎÊÌâ

[IBM][CLI Driver] SQL30081N ¼ì²âµ½Í¨ÐÅ´íÎó¡£ÕýÔÚʹÓõÄͨÐÅЭÒ飺"TCP/IP"¡£ÕýÔÚʹÓõÄͨÐÅAPI£º"SOCKETS"¡£¼ì²âµ½´íÎóµÄλÖãº"202.106.195.29"¡£¼ì²âµ½´íÎóµÄͨÐź¯Êý£º"connect"¡£Ð­ÒéÌØ¶¨µÄ´íÎó´úÂ룺"10060"¡¢"*"¡¢"*"¡£ SQLSTATE=08001
½â¾ö°ì·¨£º
µ½C:\WINDOWS\system32\drivers\etc\Ï£¬´ò¿ªhostsÎļþ£¬ÔÚÎļ ......

linuxÓû§(user)ºÍÓû§×é(group)

add user£º
[root@localhost ~]# useradd test
[root@localhost ~]# passwd test
add user to a group:
e.g. add nexus to admin
useradd -g admin nexus
default role£º
[root@localhost ~]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no
de ......

µ÷ÕûlinuxÐéÄâ»úÓ²ÅÌ´óС

°²×°Ê±Ó²Å̿ռ䲻×ã
    ¹ÒÔØÒ»¸öÐÂÓ²ÅÌ
    ÏȽ«ÐéÄâ»úPower Off£¬ÔÚVirtual Machine Setting¶Ô»°¿òÀïµã»÷×óϽǵēAdd”£¬Ñ¡Ôñ“Hard Disk”£¬Ö®ºóÑ¡Ôñ“Create a new virtual disk”£¬·ÖÅäÈÝÁ¿£¬ÆäËûĬÈÏÅäÖá£
    Æô¶¯ÐéÄâ»úϵͳ£¬Óà ......

ÔÚLinuxÉÏ»ùÓÚÔ´µØÖ·Â·ÓÉʵÏÖµçÐÅÍøÍ¨Ë«Ïß

ÏëҪͨ¹ýÆÕͨµÄ¾²Ì¬²ßÂÔ·ÓÉÀ´ÊµÏÖµçÐÅÍøÍ¨Ë«Ïß»ù±¾ÉÏÊDz»¿ÉÄܵģ¬ÒòΪÄǽ«ÐèҪά»¤Ï൱´óµÄÒ»¸öIP¶ÎµÄÊý¾Ý¿â£¬¶øÇÒ»¹ÐèÒªËæÊ±¸üвÅÄܱ£Ö¤Ð§¹û¡£
ºóÀ´Ìýǰ±²ÃÇ˵£¬¿ÉÒÔ²ÉÓûùÓÚÔ´µØÖ·Â·Óɵķ½Ê½À´´¦Àí£¬ÈýøÀ´µÄÊý¾Ý£¬´ÓÄĸöIP½øÀ´¾Í´ÓÄĸöIP·µ»Ø¡£
ÏÂÃæ¾ÍÊÇÒ»¸öÔÚÉú²úÖеõ½ÁËʵ¼ÊÓ¦ÓõĽű¾£º
====================== ......

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 ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ