Ò׽ؽØͼÈí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

LinuxÖеÄÄÚ´æ·ÖÅäºÍÊÍ·ÅÖ®free_bootmem()º¯Êý·ÖÎö

  free_bootmem()Õâ¸öº¯ÊýÊÇϵͳÆô¶¯³õÆÚÄÚ´æÊͷŵĺËÐĺ¯Êý£¬ÎÒÃÇÀ´¿´¿´ËüµÄ´úÂë¡£
  void __init free_bootmem (unsigned long addr, unsigned long size)//addrÊÇÒªÊͷŵÄÎïÀíÆðʼµØÖ·£¬sizeÊÇÒªÊÍ·Å¿Õ¼äµÄ´óС¡£
 {
    free_bootmem_core(NODE_DATA(0)->bdata, addr, size);//Ö±½Ó´ÓÄÚ´ænode0ºÅ¿ªÊ¼ÊÍ·ÅÄÚ´æ¿Õ¼ä¡£
 }//¿ÉÒÔ¿´³öÕæÕýµÄºËÐĺ¯ÊýÊÇfree_bootmem_core()Õâ¸öº¯Êý£¬Õâ¸ö²ÅÊǺËÐIJ¿·Ö¡£ÎÒÃÇÀ´¿´¿´ËüµÄ¾ßÌåÄÚÈÝ°É¡£
  static void __init free_bootmem_core(bootmem_data_t *bdata, unsigned long addr, unsigned long size)
{
    unsigned long i;
    unsigned long start;
    /*
     * round down end of usable mem, partially free pages are
     * considered reserved.
     */
    unsigned long sidx;
    unsigned long eidx = (addr + size - bdata->node_boot_start)/PAGE_SIZE;//¼ÆËã³öÒªÊÍ·Å¿Õ¼äµÄ½áÊøλÖÃÏà¶ÔÓÚ¸ÃÄÚ´æ½ÚµãµÄÆðʼλÖõÄÆ«ÒÆÒ³Êý¡£
    unsigned long end = (addr + size)/PAGE_SIZE;//ÊÍ·Å¿Õ¼ä×îºóλÖõľø¶ÔÒ³ºÅ¡£
    BUG_ON(!size);//Èç¹ûÊÍ·Å¿ÕÄڴ棬ϵͳ±ÀÀ£¡£
    BUG_ON(end > bdata->node_low_pfn);//²»ÄÜÊͷų¬¹ý±¾½Úµã·¶Î§ÄÚµÄÄÚ´æ¿Õ¼ä£¬·ñÔòϵͳ±ÀÀ£¡£
    if (addr < bdata->last_success)
             bdata->last_success = addr;
    /*
     * Round up the beginning of the address.
     */
    start = (addr + PAGE_SIZE-1) / PAGE_SIZE;//ÕâÀï¼ÆË㿪ʼµØÖ·µÄÈ«ÐÂÒ³£¬¼ÙÉèaddrÊÇÔÚ0~4kbµÄµØÖ··¶Î§µÄ»°£¬ÆäʵÕæÕýÔÚ0ºÅÒ³µÄλÖ㬵«ÊÇÈç¹ûͨ¹ýÉÏÃæµÄÔËË㣬Çó³öÀ´µÄ¾ÍÊÇ1ºÅÒ³µÄλÖá£ÎªÊ²Ã´ÕâÑù×öÄØ£¿ÒòΪÈç¹ûÆðʼµØÖ·²»ÊÇ°´Ò³¶ÔÆëµÄ£¬Èç¹ûÖ±½ÓÊÍ·Å£¬¾Í»á°ÑÇ°Ãæ²»ÊôÓÚÕâ¸öÄÚ´ænodeµÄ¿Õ¼äÒ²ÊÍ·ÅÁË¡£
    sidx = start - (bdata->node_boot_start/PAGE_SIZE);//Õâ¸ö¾ÍÊǼÆËãÐÂÒ³ºÍÔ­À´µÄÆðʼµØÖ·ËùÔÚÒ³µÄÆ«ÒÆÒ³Êý¡£
 


Ïà¹ØÎĵµ£º

ѧϰlinux µÄµÚ¶þÌì

 ½ñÌìѧϰÁËwrite ºÍread ,»¹ÓÐopen º¯Êý¡£×îÏÂÃæÊÇÎÒ×Ô¼ºÐ´µÄÒ»¸öС³ÌÐò£¬ÊìϤһϼ¸¸ö³ÌÐòµÄÓ¦Óá£
 writeº¯ÊýÔ­ÐÍÊÇsize_t write(fd, buf, size);ÆäÖÐfdÊÇÎļþÃèÊö·û£¬Ò²ÊÇ»º³åÇøÖеĶ«Î÷½«ÒªÐ´ÈëµÄµØ·½£¬°×»°Ò»µãÀ´Ëµ£¬fd¾ÍÊÇÒ»¸öÄ㽫Ҫ·Å¶«Î÷½øÈ¥µÄÈÝÆ÷µÄ±àºÅ¡£buf ¾ÍÊÇÄãËùÒª´æµÄ¶«Î÷µÄÀ´Ô´¡£size ²»ÓÃ˵£ ......

linuxÖгö´í´¦Àí

linuxÖУ¬ÔÚÖ§³Ö¶àÏ̵߳Ļ·¾³ÖУ¬Í¨³£Ã¿¸öÏ̶߳¼ÓÐÊôÓÚ×Ô¼ºµÄerrno±äÁ¿£¬ÊÇÓÃÀ´±íʾÌض¨´íÎóµÄ³£Á¿¡£
ÒÔÏÂÊÇ<errno.h>Öж¨ÒåµÄËùÓгö´íerrno³£Á¿
#define EPERM            1      /* Operation not permitted */
#define ENOEN ......

UNIX/linuxϵͳÏÂFTP×Ô¶¯ÉÏ´«Îļþ½Å±¾

·½·¨Ò»£º Expect ʵÏÖ½»»¥
UNIX ´°¿ÚÖÐ ÊäÈëÒÔÏÂÃüÁ
expect ftplinux.txt 10.0.15.22 ftplinux.txt
ftplinux.txt ÖÐÄÚÈÝÈçÏ£º
--¿ªÊ¼-----
spawn ftp [lindex $argv 0]
expect "Name(*):"
send "ftp\r"
expect "Password:*"
send "hell05a\r"
expect "ftp> ......

[ת] linuxÏ´´½¨oracleÓû§±í¿Õ¼ä

ת×Ô£º http://blog.csdn.net/kongqz/archive/2009/05/15/4184415.aspx
¾ÍÊÇÔÚÒÑÓеÄÊý¾Ý¿âʵÀýÉÏ´´½¨Ò»¸öеÄÕʺţ¬·ÃÎÊһЩеıí
 ²Ù×÷²½ÖèÈçÏ£º
 1¡¢µÇ¼linux£¬ÒÔoracleÓû§µÇ¼£¨Èç¹ûÊÇrootÓû§µÇ¼µÄ£¬µÇ¼ºóÓà su - oracleÃüÁîÇл»³ÉoracleÓû§£©
 2¡¢ÒÔsysdba·½Ê½À´´ò¿ªsqlplus£¬ÃüÁîÈçÏ£º s ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ