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()Õ¹¿ª£¬ÔòÓû§³ÌÐò±ØÐë°üº¬¸ÃÎÄ ¼þ¡£µ±½ø³ÌÖ´Ðе½Óû§³ÌÐòµ
Ïà¹ØÎĵµ£º
linuxËÑË÷·¾¶: Èç¹ûÓõÄshellÊÇbash,Ôò»·¾³±äÁ¿¼ÓÔØ
1./etc/profile
2.Óû§homeĿ¼ÏÂÃæµÄ.bash_profile
3.Óû§homeĿ¼ÏÂÃæµÄ.bash_login
gcc -I<includeĿ¼>
POSIXϵͳҲ¿ÉÒÔ½¨Á¢»·¾³±äÁ¿
......
±¾ÎĽâÊÍÁ½ÖÖ×îÁ÷ÐÐµÄ Linux® »ã±àÆ÷ —— GNU Assembler£¨GAS£©ºÍ Netwide
Assembler£¨NASM£© ——
Ö®¼äһЩ±È½ÏÖØÒªµÄÓï·¨²îÒìºÍÓïÒå²îÒ죬°üÀ¨»ù±¾Óï·¨¡¢±äÁ¿ºÍÄÚ´æ·ÃÎÊ¡¢ºê´¦Àí¡¢º¯ÊýºÍÍⲿÀý³Ì¡¢¶ÑÕ»´¦ÀíÒÔ¼°Öظ´Ö´ÐдúÂë¿éµÄ¼¼Êõ·½ÃæµÄ²îÒì¡£
ÓëÆäËûÓïÑÔ²»Í¬£¬»ã±àÓïÑÔ
ÒªÇ󿪷¢ÈËÔ±ÁË ......
ÎÒÕâÀï˵µÄioctlº¯ÊýÊÇÔÚÇý¶¯³ÌÐòÀïµÄ£¬ÒòΪÎÒ²»ÖªµÀ»¹ÓÐûÓбðµÄ³¡ºÏÓõ½ÁËioctl£¬ ËùÒԾ͹涨ÁËÎÒÃÇÌÖÂ۵ķ¶Î§¡£ÎªÊ²Ã´ÒªÐ´ÆªÎÄÕÂÄØ£¬ÊÇÒòΪÎÒǰһÕó×Ó±»ioctl¸ø¸ã»ìÁË£¬Õ⼸Ìì²ÅŪÃ÷°×Ëü£¬ÓÚÊÇÔÚÕâÀïÇåÀíÒ»ÏÂÍ·ÄÔ¡£
Ò»¡¢ ʲôÊÇioctl¡£
ioctlÊÇÉ豸Çý¶¯³ÌÐòÖжÔÉ豸µÄI/OͨµÀ½øÐйÜÀíµÄº¯Êý¡£Ëùν¶ÔI/OͨµÀ½øÐйÜÀí£ ......
ת×Ô£ºhttp://www.linuxdiyf.com/bbs/viewthread.php?tid=106169
LinuxϽ¨ÒéʹÓÃvsftp£¬°²È«¼òµ¥ÊµÓÃ
vsftp¼´Very Security FTP£¬¹ËÃû˼Ò壬·Ç³£°²È«µÄFTP·þÎñÆ÷¡£
Ŀ¼
1 vsFTP·þÎñÆ÷µÄ°²×°
1.1 ÄäÃû·þÎñÆ÷µÄÁ¬½Ó£¨¶ÀÁ¢µÄ·þÎñÆ÷£©
1.2 ¿ªÆôÄäÃûFTP·þÎñÆ÷ÉÏ´«È¨ÏÞ
1.3 ¿ªÆôÄäÃû·þÎñÆ÷Ï´«µÄȨÏÞ
1.4 ......
1 ¡¢Ç°ÑÔ
¡¡¡¡×Ô´Óµ®ÉúÒÔÀ´£¬Linux ¾Í±»²»¶ÏÍêÉÆºÍÆÕ¼°£¬Ä¿Ç°ËüÒѾ³ÉΪÖ÷Á÷ͨÓòÙ×÷ϵͳ֮һ£¬Ê¹Óõ÷dz£¹ã·º£¬ËüÓë Windows¡¢UNIX Ò»ÆðÕ¼¾ÝÁ˲Ù×÷ϵͳÁìÓò¼¸ºõËùÓеÄÊг¡·Ý¶î¡£ÌرðÊÇÔÚ¸ßÐÔÄܼÆËãÁìÓò£¬Linux ÒѾ³ÉΪһ¸öÕ¼Ö÷µ¼µØÎ»µÄ²Ù×÷ϵͳ£¬ÔÚ2005Äê6ÔÂÈ«ÇòTOP500 ¼ÆËã»úÖУ¬ÓÐ 301 ̨²¿ÊðµÄÊÇ Linux ²Ù×÷ϵͳ¡£Òò ......