8, 1/1 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   ka0r1
   Ä¿³Î¿¡¼­ ¾î¼Àºí¸®¾î

http://www.hackerschool.org/HS_Boards/zboard.php?id=QNA_Kernel&no=11 [º¹»ç]


#define switch_to(prev,next,last) do {                                  \
        unsigned long esi,edi;                                          \
        asm volatile("pushl %%ebp\n\t"                                  \
                     "movl %%esp,%0\n\t"        /* save ESP */          \
                     "movl %5,%%esp\n\t"        /* restore ESP */       \
                     "movl $1f,%1\n\t"          /* save EIP */          \
                     "pushl %6\n\t"             /* restore EIP */       \
                     "jmp __switch_to\n"                                \
                     "1:\t"                                             \
                     "popl %%ebp\n\t"                                   \
                     :"=m" (prev->thread.esp),"=m" (prev->thread.eip),  \
                      "=a" (last),"=S" (esi),"=D" (edi)                 \
                     :"m" (next->thread.esp),"m" (next->thread.eip),    \
                      "2" (prev), "d" (next));                          \
} while (0)



switch_to()ÇÔ¼ö°¡ defineÀ¸·Î Àü󸮰¡ µÇ¾î ÀÖ´Ù´Ï...
±×³ªÀú³ª Àú 4¹ø° ÁÙ¿¡ "movl %%esp,%0\n\t" <- ÀÌ ¹®¹ýÀ» ¾î¶»°Ô Çؼ®ÇØ¾ß µÉ±î¿ä?
Ã¥¿¡¼± °£´ÜÇÏ°Ô "prev·Î Ç¥½ÃµÉ ÇÁ·Î¼¼½ºÀÇ ESP ·¹Áö½ºÅ͸¦ ¹é¾÷ÇØ µÎ°í..."¶ó°í ³ª¿À´Âµ¥
Àú´Â Àú ¾î¼Àºí¸®¾îÀÇ ÀÛµ¿°úÁ¤°ú ¿ø¸®°¡ ±Ã±ÝÇÕ´Ï´Ù.





p.s. ¾î¼À °øºÎ Á» ÇØµÑ °É... ¤Ð¤Ð

  Hit : 4273     Date : 2013/01/31 07:43



    
ka0r1 ¾î... ¼Ò½º Äڵ带 ÀÚ¼¼È÷ º¸´Ï
"pushl %%ebp\n\t"
"movl %%esp,%0\n\t"
¶ó°í ÀûÇôÀִµ¥ ÀÌ°Ô "½ºÅà ÇÁ·¹ÀÓ"ÀÎÁö ¹¹½Ã±âÀÎÁö ±×°Å ¾Æ´Ñ°¡¿ä?
½ºÅÃÀ» ±úÁö´Â °ÍÀ» ¹æÁöÇϱâ À§ÇØ...???
2013/01/31  
Mephist Context switching ÄÚµå³×¿ä...
%0, %1 µîÀº.. ¸Ç ¹Ø¿¡¼­ ¾Ë·ÁÁÖ°í ÀÖÁÒ..
:"=m" (prev->thread.esp),"=m" (prev->thread.eip), \
"=a" (last),"=S" (esi),"=D" (edi) \
:"m" (next->thread.esp),"m" (next->thread.eip), \
"2" (prev), "d" (next)); \
ÀÔ´Ï´Ù.
%0 Àº.. ¸Ç ¾Õ... prev->thread.esp ¸¦ ¾ê±âÇÕ´Ï´Ù.. %1 ´Â prev->thread.eip °¡ µÇ°ÚÁÒ.
2013/02/01  
Mephist Âü°í·Î~
"movl %5,%%esp\n\t" /* restore ESP */ ¶óÀÎ ÇÏ°í...
"pushl %6\n\t" /* restore EIP */ \ ¶óÀÎ...
"jmp __switch_to\n" ¶óÀÎÀÌ... Context switching ÀÇ ÇÙ½ÉÀÔ´Ï´Ù.

Àß ºÐ¼®Çغ¸¼¼¿ä~
2013/02/01  
8   Ä¿³ÎÀÌ ¾î·Æ±ä ÇÑ°¡º¸±º¿ä..[1]     helloman
04/27 4938
  Ä¿³Î¿¡¼­ ¾î¼Àºí¸®¾î[3]     ka0r1
01/31 4272
6   Ä¿³Î°øºÎÇÏ·Á¸é[4]     creeper
12/03 4204
5   ssdt hook     ¿­Á¤
05/06 4140
4   Ä¿³Î¿¡´ëÇØ[1]     eck1220
06/18 3396
3   ¼­¹ö Á¢¼Ó ¾ÆÀÌÇÇ ±â·Ï »èÁ¦ÇÏ´Â ¹æ¹ýÁ» ¾Ë·ÁÁÖ¼¼¿ä     k201113
02/16 3321
2   Å°º¸µå µå¶óÀ̺ꠠ   k1990121
10/08 3275
1   OS¿Í Ä¿³Î Áú¹®[1]     chnh3
01/07 2068
1

Copyright 1999-2024 Zeroboard / skin by Hackerschool.org / Secure Patch by Hackerschool.org