¹ØÓÚ linux ÄÚ´æ
Ê×ÏÈ£¬ÄÚ´æµÄ´óСÔÚlinuxÄÚºËÖеĻñÖª·½·¨
1.ͨ¹ýbootloader µÄ tag mem´«Èë¡£
Setup.c Öеĺ¯ÊýÈçÏ£º
static int __init parse_tag_mem32(const struct tag *tag)
{
if (meminfo.nr_banks >= NR_BANKS) {
printk(KERN_WARNING
"Ignoring memory bank 0x%08x size %dKB\n",
tag->u.mem.start, tag->u.mem.size / 1024);
return -EINVAL;
}
arm_add_memory(tag->u.mem.start, tag->u.mem.size);
return 0;
}
__tagtable(ATAG_MEM, parse_tag_mem32);
ÆäÖÐ×îÖØÒªµÄº¯ÊýΪ£º arm_add_memory
Õâ¸öº¯ÊýÏò meminfoÊý×éÖÐÌí¼ÓÁËÒ»Ïî¹ØÓÚ memµÄÃèÊö
2.ÁíÍâÒ»¸ö·½·¨£ºÍ¨¹ýÄÚºËÆô¶¯²ÎÊýmem=À´´«µÝ
Setup.c Öеĺ¯ÊýÈçÏ£º
static void __init early_mem(char **p)
{
static int usermem __initdata = 0;
unsigned long size, start;
/*
* If the user specifies memory size, we
* blow away any automatically generated
* size.
*/
if (usermem == 0) {
usermem = 1;
meminfo.nr_banks = 0;
}
start = PHYS_OFFSET;
size = memparse(*p, p);
if (**p == '@')
start = memparse(*p + 1, p);
arm_add_memory(start, size);
}
__early_param("mem=", early_mem);
ÆäÖеڶþÖÖ·½·¨¾ßÓиߵÄÓÅÏȼ¶¡£
ÁíÍ⣬»¹ÓÐÒ»ÖÖÐÞ¸ÄmemoryÊôÐԵİ취£º
mdesc->fixup(mdesc, tags, &from, &meminfo);
ÕâÖÖ·½·¨ÒÀÀµÓÚÌض¨µÄ¿ª·¢Æ½Ì¨£¬ÔÚƽ̨³õʼ»¯µÄÃèÊö½á¹¹Öж¨Òå¡£
×îÖÕ£¬ËùÒԵĹØÓÚmemoryµÄÐÅϢͨ¹ýº¯Êý
paging_init(&meminfo, mdesc);
´«µÝ¸ø mem ³õʼ»¯µÄ²¿·Ö¡£
µÚ¶þ£¬memoryµÄ³õʼ»¯¡£
paging_init µÄ¶¨ÒåÔÚ arch/arm/mm/mmu.cÖС£
ÔÚ paging_init ×îÖØÒªµÄº¯ÊýÊÇ£ºbootmem_init
¸Ãº¯Êý¶¨ÒåÓÚ£ºarch/arm/mm/init.cÖС£
Ïà¹ØÎĵµ£º
×¢£ºÇëÔÊÐíÎÒתÔØÄúµÄ¼Ñ×÷
ÔÚwindowsÉÏ¿ª·¢Äܹ»ÔÚlinuxÉϱàÒëµÄC´úÂ룬ÎÒ²éÁ˲éÓÐ2¸öÈí¼þ¿ÉÒÔʵÏÖ£¬Ò»¸öÊÇCygwin£¬Ò»¸öÊÇmingw¡£ÆäÖÐcygwinÊÇÒ»¸öwindowsÉÏlinux»·¾³µÄÄ£Ä⹤¾ß£¬ËûÌṩÁ˺ܶàlinux¹¤¾ßµÄwindowsʵÏÖ°æ±¾£¬ÀýÈçvi£¬emacsµÈµÈ£¬µ±È»Ò²°üÀ¨GCC¡£Ê¹ÓÃmingwµÄºÃ´¦¾ÍÊDZàÒë¹ýµÄ³ÌÐòÖ±½Ó¾Í¿ÉÒÔÅÜÁË£¬¶øcygwinÔòÐè ......
¹ØÓÚlinuxµÄÎļþȨÏÞ£¬Á˽âһϵļ¸¸öÒªµã¾ÍÐÐÁË£¬Ê×ÏÈlinuxÓÐÓû§×éµÄ¸ÅÄÿ¸öÓû§×éÓ÷ÖÅäÓÐÒ»¸öid,ÓÃÓÚΨһµÄ±êʶ£¬¿ÉÒÔÓÃÓÚ·½±ãÖ¸¶¨´ËÓû§×éÖеÄÓû§²Ù×÷ijЩÎļþµÄȨÏÞ¡£Í¬Ñùÿ¸öÓû§Ò²ÓµÓÐÒ»¸öÓû§id£¬ÓÃÓÚΨһ±êʶÓû§£¬¶ø¶ÔÓÚÿ¸öÎļþÓà ls -l -a ¾Í¿ÉÒÔÏÔʾµ±Ç°Ä¿Â¼ÏÂÃæËùÓеÄÎļþÎļþ¼ÐµÄÏêϸÐÅÏ¢¡£ÀýÈ磺ÎÒÃÇÔ ......
Ê×ÏÈҪ˵Ã÷µÄÊÇÔÚLinuxϵͳÖУ¬¿ÉÖ´ÐÐÎļþûÓÐͳһµÄºó׺£¬ÏµÍ³´ÓÎļþµÄÊôÐÔÀ´Çø·Ö¿ÉÖ´ÐÐÎļþºÍ²»¿ÉÖ´ÐÐÎļþ¡£¶øgccÔòͨ¹ýºó׺À´Çø±ðÊäÈëÎļþµÄÀà±ð£¬ÏÂÃæÎÒÃÇÀ´½éÉÜgccËù×ñѵIJ¿·ÖÔ¼¶¨¹æÔò¡£Ò»°ã
.cΪºó׺µÄÎļþ£¬CÓïÑÔÔ´´úÂëÎļþ£»
.aΪºó׺µÄÎļþ£¬ÊÇÓÉÄ¿±êÎļþ¹¹³ÉµÄµµ°¸¿âÎļþ£»
.C£¬.cc»ò.cxxΪºó׺µÄÎļþ£¬ÊÇC ......
1> ʹÓÃCDPATHÉèÖà cd ÃüÁîµÄ¹¤×÷Ŀ¼
[ramesh@dev-db ~]# pwd
/home/ramesh
[ramesh@dev-db ~]# cd mail
-bash: cd: mail: No such file or directory
[×¢Ò⣺ÔÚµ±Ç°Ä¿Â¼ÏÂÑ°ÕÒMAILĿ¼]
[ramesh@dev-db ~]# export CDPATH=/etc
[ramesh@dev-db ~]# cd mail /etc/mail  ......
ΪÁË·½Ã棬ÎÒдÁ˸ö½Å±¾×Ô¶¯sshµÇ¼Զ¶Ë»úÆ÷£¬ÈçÏ£¬Õâ¸ö½Å±¾ÐèÒª°²×°expect°ü
================================
#!/usr/bin/expect
set timeout 30
spawn ssh -l root 192.168.1.117
expect "password:"
send "nopasswd\r"
interact
================================
set timeout 30
ÉèÖÃ ......