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

LinuxÄÚºËÔö¼Óϵͳµ÷ÓÃ

1.linux ϵͳµ÷ÓõĻù±¾Ô­Àí
   linuxµÄϵͳµ÷ÓÃÐÎʽÓëPOSIX¼æÈÝ£¬Ò²ÊÇÒ»Ì×CÓïÑÔº¯ÊýÃûµÄ¼¯ºÏ¡£È»¶ø£¬linuxϵͳµ÷ÓõÄÄÚ²¿ÊµÏÖ·½Ê½È´ÓëDOCµÄINT 21HÏàËÆ£¬ËüÊǾ­¹ýINT 0X80HÈíÖжϽøÈëºó£¬ÔÙ¸ù¾Ýϵͳµ÷ÓúŷÖÃűðÀàµØ·þÎñ¡£
´Óϵͳ·ÖÎöµÄ½Ç¶È£¬linuxµÄϵͳµ÷ÓÃÉæ¼°4¸ö·½ÃæµÄÎÊÌâ¡£
(1)Óëϵͳµ÷ÓÃÓйصÄÊý¾Ý½á¹¹ºÍº¯Êý
   º¯ÊýÃûÒÔ“sys_”¿ªÍ·£¬ºó¸ú¸Ãϵͳµ÷ÓõÄÃû×Ö¡£ÀýÈ磬ϵͳµ÷ÓÃfork()µÄÏìÓ¦º¯ÊýÊÇsys_fork()(¼ûkernel/fork.c),exit()µÄÏìÓ¦º¯ÊýÊÇsys_exit()(¼ûkernel/fork.c)¡£
  
Îļþinclude/asm/unisted.hΪÿ¸öϵͳµ÷Óù涨ÁËΨһµÄ±àºÅ¡£¼ÙÉèÓÃname±íʾϵͳµ÷ÓõÄÃû³Æ£¬ÄÇôϵͳµ÷ÓúÅÓëϵͳµ÷ÓÃÏìÓ¦º¯Êý
µÄ¹ØϵÊÇ£ºÒÔϵͳµ÷ÓúÅ_NR_name×÷Ϊϱ꣬¿ÉÕÒ³öϵͳµ÷Óñísys_call_table(¼ûarch/i386/kernel
/entry.S)ÖжÔÓ¦±íÏîµÄÄÚÈÝ£¬ËüÕýºÃ ÊǸÃϵͳµ÷ÓõÄÏìÓ¦º¯Êýsys_nameµÄÈë¿ÚµØÖ·¡£ÏµÍ³µ÷
Óñísys_call_table¼Ç¼Á˸÷sys_nameº¯ÊýÔÚ±íÖеÄλ Ö㬹²190Ïî¡£ÓÐÁËÕâÕÅ±í£¬¾ÍºÜÈÝÒ׸ù¾ÝÌض¨ÏµÍ³µ÷ÓÃ
ÔÚ±íÖеÄÆ«ÒÆÁ¿£¬ÕÒµ½¶ÔÓ¦µÄϵͳµ÷ÓÃÏìÓ¦º¯ÊýµÄÈë¿ÚµØÖ·¡£ÏµÍ³µ÷ÓÃ±í¹²256ÏÓàϵÄÏîÊǿɹ©Óû§×Ô¼ºÌí¼ÓµÄϵͳµ÷Óÿռ䡣
(2)½ø³ÌµÄϵͳµ÷ÓÃÃüÁîת»»ÎªINT 0x80ÖжϵĹý³Ì
      
ºê¶¨Òå_syscallN()¼ûinclude/asm/unisted.h)ÓÃÓÚϵͳµ÷Óõĸñʽת»»ºÍ²ÎÊýµÄ´«µÝ¡£NÈ¡0~5Ö®¼äµÄÕûÊý¡£
²ÎÊý¸öÊýΪNµÄϵͳµ÷ÓÃÓÉ_syscallN()¸ºÔð¸ñʽת»»ºÍ²ÎÊý´«µÝ¡£ÏµÍ³µ÷ÓúŷÅÈëEAX¼Ä´æÆ÷£¬Æô¶¯INT 0x80
ºó£¬¹æ¶¨·µ»ØÖµËÍEAX¼Ä´æÆ÷¡£
(3)ϵͳµ÷Óù¦ÄÜÄ£¿éµÄ³õʼ»¯
   ¶Ôϵͳµ÷Óõijõʼ»¯Ò²¾ÍÊǶÔINT
0x80µÄ³õʼ»¯¡£ÏµÍ³Æô¶¯Ê±£¬»ã±à×Ó³ÌÐòsetup_idt(¼ûarch/i386/kernel/head.S)×¼±¸ÁË1ÕÅ256ÏîµÄidt±í£¬ÓÉ
start_kernel()(¼û
init/main.c),trap_init()(¼ûarch/i386/kernel/traps.c)µ÷ÓõÄCÓïÑԺ궨Òå
set_system_gate(0x80,&system_call)(¼û
include/asm/system.h)ÉèÖÃ0x80ºÅÈíÖжϵķþÎñ³ÌÐòΪ
system_call(¼ûarch/i386/kernel/entry.S),system.call¾ÍÊÇËùÓÐϵͳµ÷ÓõÄ×ÜÈë¿Ú¡£
(4)ÄÚºËÈçºÎΪ¸÷ÖÖϵͳµ÷Ó÷þÎñ
       µ±½ø³ÌÐèÒª½øÐÐϵͳµ÷ÓÃʱ£¬±ØÐëÒÔCÓïÑÔº¯ÊýµÄÐÎʽдһ¾äϵͳµ÷ÓÃÃüÁî¡£¸ÃÃüÁîÈç¹ûÒÑÔÚij¸öÍ·Îļþ
ÖÐÓÉÏàÓ¦µÄ_syscallN()Õ¹¿ª£¬ÔòÓû§³ÌÐò±ØÐë°üº¬¸ÃÎÄ ¼þ¡£µ±½ø³ÌÖ´Ðе½Óû§³ÌÐòµ


Ïà¹ØÎĵµ£º

Ïê½âUnix/Linux ShellµÄÊäÈëÊä³ö

      ShellµÄI/OÓï·¨ÄÑÒÔÀí½â£¬¸üÄÑÒÔÕýȷʹÓá£ShellµÄÊäÈëÊä³öÓï·¨ÓÐÁ½¸öÄѵ㣺Öض¨ÏòºÍÎļþÃèÊö·û¡£ÎÒÒÔÇ°¶ÔShell I/OµÄÀí½âÒ²ÓдíÎó¡£×î½üÖØÐÂÕûÀí˼·£¬¾ö¶¨Ð´Ò»ÆªÎÄÕÂÀ´×ܽáI/OÖض¨Ïò¡£
      ÏȽéÉܼ¸¸ö»ù±¾¸ÅÄî:
1£©Îļþ(File)£ºÔÚUnix/LinuxÖУ¬ÎļþÀàÐÍÓÐÆ ......

linuxÄÚºËcryto½Ó¿ÚµÄʵÏÖÒÔ¼°ÓëopensslµÄ±È½Ï

linuxÄÚºËʵÏÖÁËcrypto½Ó¿Ú£¬ÓÃÓÚÀàËÆIPSecÖ®ÀàÒªÔÚÄÚºËÖÐʵÏÖµÄÓë²Ù×÷ϵͳ°ó¶¨µÄ°²È«»úÖÆ£¬Èç¹û²»ÊÇÓÃÓÚÕâÑùµÄ»úÖÆ£¬²»ÒªÊ¹ÓÃÄÚºËÖеÄcrypto½Ó¿Ú£¬×ܵÄÀ´Ëµ£¬linuxµÄcryptoÖÐ×îÖØÒªµÄ½á¹¹ÌåÓÐÁ½¸ö£ºcrypto_tfmºÍcrypto_alg
struct crypto_tfm {
    u32 crt_flags;
    union {
 & ......

LinuxĿ¼½âÊÍ

/boot:ÕâÀï´æ·ÅµÄÊÇÆô¶¯LINUXʱʹÓõÄһЩºËÐÄÎļþ¡£
/dev:devÊÇdevice(É豸)µÄËõд¡£Õâ¸öĿ¼ÏÂÊÇËùÓÐLINUXµÄÍⲿÉ豸£¬Æ书ÄÜÀàËÆDOSϵÄ.sysºÍWinϵÄ.vxd¡£ÔÚLINUXÖÐÉ豸ºÍÎļþÊÇÓÃͬÖÖ·½·¨·ÃÎʵġ£ÀýÈç:/dev/hda´ú±íµÚÒ»¸öÎïÀíIDEÓ²ÅÌ¡£
/etc:Õâ¸öĿ¼ÓÃÀ´´æ·ÅËùÓеÄϵͳ¹ÜÀíËùÐèÒªµÄÅäÖÃÎļþºÍ×ÓĿ¼¡£
/bin:bin ......

£Ûת£ÝLinuxÏ´´½¨×ÀÃæ¿ì½Ý·½Ê½

gnome: µãÓÒ¼ü---new Launcher£¬ÊäÈë¿ì½Ý·½Ê½µÄÃû³Æ£¬²¢Ñ¡ÔñÖ´ÐеijÌÐò¼´¿É¡£
kde: ÓÒ¼üµ¥»÷×ÀÃæµÄ¿Õ°×´¦£¬ÔÚµ¯³öµÄ¶Ô»°¿òÖÐÑ¡“н¨£­Ó¦ÓóÌÐòÁ´½Ó”¡£ÔÙÔÚµ¯³öµÄ´°¿ÚÖеã“Ö´ÐД£¬ÔÚÃüÁîÀ¸ÖеãºóÃæµÄä¯ÀÀ¼ü£¬ÕÒµ½ÏàÓ¦µÄ³ÌÐò¡£Ôٵ㓳£¹æ”£¬½øÐÐÈ¡Ãû¡¢¸ü¸Äͼ±êµÈ²Ù×÷£¬×îºóµãÈ·¶¨£¬ÕâÑù ......

LinuxÏÂÈí¼þ°²×°·½·¨×ܽá

Ò»¡¢rpm°ü°²×°·½Ê½²½Ö裺
1¡¢ÕÒµ½ÏàÓ¦µÄÈí¼þ°ü£¬±ÈÈçsoft.version.rpm£¬ÏÂÔص½±¾»úij¸öĿ¼£»
2¡¢´ò¿ªÒ»¸öÖնˣ¬su -³ÉrootÓû§£»
3¡¢cd soft.version.rpmËùÔÚµÄĿ¼£»
4¡¢ÊäÈërpm -ivh soft.version.rpm
¶þ¡¢deb°ü°²×°·½Ê½²½Ö裺
1¡¢ÕÒµ½ÏàÓ¦µÄÈí¼þ°ü£¬±ÈÈçsoft.version.deb£¬ÏÂÔص½±¾»úij¸öÄ¿Â ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ