linux 0.11 ÄÚºËѧϰ asm.s£¬»úÆ÷ÄÑÃâ³ö¹ÊÕÏ¡£
/*
* linux/kernel/asm.s
*
* (C) 1991 Linus Torvalds
*/
/*
* asm.s contains the low-level code for most hardware faults.
* page_exception is handled by the mm, so that isn't here. This
* file also handles (hopefully) fpu-exceptions due to TS-bit, as
* the fpu must be properly saved/resored. This hasn't been tested.
*/
/*
* asm.asm´¦ÀíµÄÖ÷ÒªÊǺÍÓ²¼þÏà¹ØµÄ¹ÊÕÏ¡£×¢ÒâµÄÊÇÒ³Òì³£ÊÇÓÐmmÄ£¿é
* À´ÊµÏÖ¹ÜÀíµÄ£¬ËùÒÔÔÚÕâÀï²»ÐèÒª´¦Àí¡£´ËÍâ´Ë³ÌÐòÀ´´¦ÀífpuµÄÒì³£¡£
*
*/
/*
* È«¾Öº¯ÊýµÄ¶¨Ò壬Ö÷ÒªÊÇÒýÓõÄÊÇtraps.cÎļþÖеĺ¯ÊýÉùÃ÷¡£
* ÏÂÃæµÄ´úÂëÖ÷ÒªÊǶÔintelµÄ±£ÁôÖжÏint0 -- int16µÄ´¦Àí¡£
*/
.globl _divide_error,_debug,_nmi,_int3,_overflow,_bounds,_invalid_op
.globl _double_fault,_coprocessor_segment_overrun
.globl _invalid_TSS,_segment_not_present,_stack_segment
.globl _general_protection,_coprocessor_error,_irq13,_reserved
# һϵÄÖж϶¼ÊÇIntelµÃ±£ÁôÖжϵĴ¦Àí³ÌÐò¡£
#------------------------------------------------------------------------
# int0 -- ±»0³ýËùÒý·¢µÄÖжϡ£ÏÂÃæµÄ$_do_divide_errorÊÇcº¯Êý±àÒëÖ®ºó
# ¶ÔÓ¦µÄÄ£¿éµÄÃû³Æ¡£
_divide_error:
pushl $_do_divide_error # Ê×ÏȽ«º¯ÊýÈë¿ÚµØÖ·Ñ¹Èë¶ÑÕ»¡£
no_error_code: # ±êºÅÏ൱ÓÚº¯Êý±»ÏÂÃæ³ÌÐòµ÷Óá£
xchgl %eax,(%esp) # xchglÖ¸ÁîµÄ×÷ÓÃÊǽ»»»¼Ä´æÆ÷¡£
# Ôڴ˵ĺ¬ÒåÊǽ«º¯ÊýµÄµØÖ·´æÔÚ
# eaxÖУ¬½«eaxÔÀ´ÄÚÈÝÈëÕ»¡£
pushl %ebx # ¼Ä´æÆ÷ÈëÕ»
pushl %ecx
pushl %edx
pushl %edi
pushl %esi
pushl %ebp
push %ds
push %es
push %fs
####################################################
# ½«³ö´íÂëºÍÖжϷµ»ØµØÖ·ÈëÕ»×÷Ϊº¯Êýµ÷ÓÃ_do_divide_error
# µÄ²ÎÊý¡£
pushl $0 # "error code"£¬³ö´íÂë0ÈëÕ»
lea 44(%esp),%edx # È¡µÃÖжϷµ»ØµØÖ·
pushl %edx # ÖжϷµ»ØµØÖ·ÈëÕ»
#####################################################
# ÏÂÃæµÄ´úÂëÖØÐÂÉèÖüĴæÆ÷¡£dsºÍesÖ¸ÏòµÄÊÇÄں˴úÂë¶Î
# fsÖ¸ÏòµÄÊÇÓû§Êý¾Ý¶Î¡£
movl $0x10,%edx
mov %dx,%ds
mov %dx,%es
mov %dx,%fs
Ïà¹ØÎĵµ£º
Linux ϵͳÏÂÈçºÎ·ÖÇø²Å×îºÏÀí
ÒÔÏÂÕª×Ô¡¶Gentoo Linux x86Êֲᡷ
http://www.gentoo.org/doc/zh_cn/handbook/handbook-x86.xml
·ÖÇøµÄÊýÄ¿Ö÷Òª¸ù¾ÝÄãµÄϵͳ»·¾³À´¾ö¶¨¡£
ÀýÈ磬Èç¹ûÄãÓкܶàÓû§£¬Äã¿ÉÄܸüÏ£Íû°ÑÄãµÄ/homeĿ¼¶ÀÁ¢³öÀ´£¬ÒòΪÕâÑù×ö¿ÉÒÔÔö¼Ó°²È«ÐÔ£¬±¸·ÝÆðÀ´Ò²¸üÈÝÒס£Èç¹ûÄã°²×°GentooÓÃÀ´×öÓʼþ·þÎñÆ÷ ......
LinuxÏÂCVS·þÎñÆ÷µÄ°²×°ÓëÅäÖÃ
1¡¢CVS·þÎñÆ÷µÄ°²×°
¡¡¡¡CVS·þÎñÆ÷°æ¿ÉÒÔ´ÓÍøÉÏµÄºÜ¶àµØ·½ÏÂÔØµ½£¬Ò²¿ÉÒÔµ½CVSµÄ¹Ù·½ÍøÕ¾½øÐÐÏÂÔØ¡£¸ù¾ÝÄãËùʹÓõÄϵͳ£¬ÏÂÔØÏàÓ¦µÄ°æ±¾£¬È»ºó½øÐа²×°¡£ÒòΪµ±Ç°´ó²¿·ÖÈËÊÇÔÚLinuxÏÂʹÓÃCVS·þÎñÆ÷½øÐа汾¹ÜÀí£¬²¢ÇÒRedhat LinuxÊÇĿǰ×îÁ÷ÐеÄÒ»¸öLinux·¢ÐаæÖ®Ò»£¬ËùÒÔ±¾ÎĽ«Ö÷Òª»ùÓÚRe ......
3) Á÷³Ì¿ØÖÆ
1.if
"if" ±í´ïʽ Èç¹ûÌõ¼þÎªÕæÔòÖ´ÐÐthenºóÃæµÄ²¿·Ö£º
if ....; then
....
elif ....; then
....
else
....
fi
´ó¶àÊýÇé¿öÏ£¬¿ÉÒÔʹÓòâÊÔÃüÁîÀ´¶ÔÌõ¼þ½øÐвâÊÔ¡£±ÈÈç¿ÉÒԱȽÏ×Ö·û´®¡¢ÅжÏÎļþÊÇ·ñ´æÔÚ¼°ÊÇ·ñ¿É¶ÁµÈµÈ…
ͨ³£ÓÃ" [ ] "À´±íʾÌõ¼þ²âÊÔ¡£×¢ÒâÕâÀïµÄ¿Õ¸ñºÜÖØÒª¡£ÒªÈ·±£· ......
ÐźÅÊÇLinux±à³ÌÖзdz£ÖØÒªµÄ²¿·Ö£¬±¾ÎĽ«Ïêϸ½éÉÜÐźŻúÖÆµÄ»ù±¾¸ÅÄî¡¢Linux¶ÔÐźŻúÖÆµÄ´óÖÂʵÏÖ·½·¨¡¢ÈçºÎʹÓÃÐźţ¬ÒÔ¼°ÓйØÐźŵöϵͳµ÷Óá£
ÐźŻúÖÆÊǽø³ÌÖ®¼äÏ໥´«µÝÏûÏ¢µÄÒ»ÖÖ·½·¨£¬ÐźÅÈ«³ÆÎªÈíÖжÏÐźţ¬Ò²ÓÐÈ˳Æ×÷ÈíÖжϡ£´ÓËüµÄÃüÃû¿ÉÒÔ¿´³ö£¬ËüµÄʵÖʺÍʹÓúÜÏóÖжϡ£ËùÒÔ£¬ÐźſÉÒÔ˵Êǽø³Ì¿ØÖƵÄÒ ......
ulimitÖ÷Òª²é¿´linuxϵͳ϶Ôϵ×ÊÔ´·ÖÅäµÄÏÞÖÆÇé¿ö£¬²é¿´È«²¿Ê¹ÓÃulimit -a (all)
ulimit ²ÎÊý˵Ã÷
Ñ¡Ïî [options] º¬Òå Àý×Ó
-H ÉèÖÃÓ²×ÊÔ´ÏÞÖÆ£¬Ò»µ©ÉèÖò»ÄÜÔö¼Ó¡£ ulimit – Hs 64£»ÏÞÖÆÓ²×ÊÔ´£¬Ïß³ÌÕ»´óСΪ 64K¡£
-S ÉèÖÃÈí×ÊÔ´ÏÞÖÆ£¬ÉèÖúó¿ÉÒÔÔö¼Ó£¬µ«ÊDz»ÄÜ ......