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

LinuxÉ豸Çý¶¯ÖеÄ×èÈûÓë·Ç×èÈûI/O

LinuxÉ豸Çý¶¯ÖеÄ×èÈûÓë·Ç×èÈûI/O
×èÈûÓë·Ç×èÈûI/O
×èÈû²Ù×÷ÊÇÖ¸ÔÚÖ´ÐÐÉ豸²Ù×÷ʱÈô²»ÄÜ»ñµÃ×ÊÔ´Ôò¹ÒÆð½ø³Ì£¬Ö±µ½Âú×ã¿É²Ù×÷µÄÌõ¼þºóÔÙ½øÐвÙ×÷¡£
ÒòΪ×èÈûµÄ½ø³Ì»á½øÈëÐÝÃß״̬£¬Òò´Ë£¬±ØÐëÈ·±£ÓÐÒ»¸öµØ·½Äܹ»»½ÐÑÐÝÃߵĽø³Ì¡£»½Ðѽø³ÌµÄµØ·½×î´ó¿ÉÄÜ·¢ÉúÔÚÖжÏÀïÃæ£¬ÒòΪӲ¼þ×ÊÔ´»ñµÃµÄͬʱÍùÍù°éËæ×ÅÒ»¸öÖжϡ£
 ×¢Ò⣺Çý¶¯³ÌÐòÐèÒªÌṩ×èÈû£¨µÈ´ý¶ÓÁУ¬Öжϣ©ºÍ·Ç×èÈû·½Ê½£¨ÂÖѯ£¬Ò첽֪ͨ£©·ÃÎÊÉ豸¡£
 ÐÝÃß(±»×èÈû)µÄ½ø³Ì´¦ÓÚÒ»¸öÌØÊâµÄ²»¿ÉÖ´ÐÐ״̬¡£Õâµã·Ç³£ÖØÒª£¬·ñÔò£¬Ã»ÓÐÕâÖÖÌØÊâ״̬µÄ»°£¬µ÷¶È³ÌÐò¾Í¿ÉÄÜÑ¡³öÒ»¸ö±¾²»Ô¸Òâ±»Ö´ÐеĽø³Ì£¬¸üÔã¸âµÄÊÇ£¬ÐÝÃ߾ͱØÐëÒÔÂÖѯµÄ·½Ê½ÊµÏÖÁË¡£½ø³ÌÐÝÃßÓи÷ÖÖÔ­Òò£¬µ«¿Ï¶¨¶¼ÊÇΪÁ˵ȴýһЩʼþ¡£Ê¼þ¿ÉÄÜÊÇÒ»¶Îʱ¼ä¡¢´ÓÎļþI/O¶Á¸ü¶àÊý¾Ý£¬»òÕßÊÇij¸öÓ²¼þʼþ¡£Ò»¸ö½ø³Ì»¹ÓпÉÄÜÔÚ³¢ÊÔ»ñµÃÒ»¸öÒѾ­Õ¼ÓõÄÄÚºËÐźÅÁ¿Ê±±»ÆÈ½øÈëÐÝÃß¡£ÐÝÃßµÄÒ»¸ö³£¼ûÔ­Òò¾ÍÊÇÎļþI/O -- Èç½ø³Ì¶ÔÒ»¸öÎļþÖ´ÐÐÁËread()²Ù×÷£¬¶øÕâÐèÒª´Ó´ÅÅÌÀï¶ÁÈ¡¡£»¹ÓУ¬½ø³ÌÔÚ»ñÈ¡¼üÅÌÊäÈëµÄʱºòÒ²ÐèÒªµÈ´ý¡£ÎÞÂÛÄÄÖÖÇé¿ö£¬Äں˵IJÙ×÷¶¼Ïàͬ:½ø³Ì°ÑËü×Ô¼º±ê¼Ç³ÉÐÝÃß״̬£¬°Ñ×Ô¼º´Ó¿ÉÖ´ÐжÓÁÐÒÆ³ö£¬·ÅÈëµÈ´ý¶ÓÁУ¬È»ºóµ÷ÓÃschedule()Ñ¡ÔñºÍÖ´ÐÐÒ»¸öÆäËû½ø³Ì¡£»½ÐѵĽø³Ì¸ÕºÃÏà·´:½ø³Ì±»ÉèÖÃΪ¿ÉÖ´ÐÐ״̬£¬È»ºóÔٴӵȴý¶ÓÁÐÖÐÒÆµ½¿ÉÖ´ÐжÓÁС£
  ÐÝÃßÓÐÁ½ÖÖÏà¹ØµÄ½ø³Ì״̬:TASK_INTERRUPTIBLE and TASK_UNINTERRUPTIBLE¡£ËüÃǵÄÎ©Ò»Çø±ðÊÇ´¦ÓÚTASK_UNINTERRUPTIBLE״̬µÄ½ø³Ì»áºöÂÔÐźţ¬¶ø´¦ÓÚTASK_INTERRUPTIBLE״̬µÄ½ø³ÌÈç¹ûÊÕµ½ÐźŻᱻ»½ÐѲ¢´¦ÀíÐźÅ(È»ºóÔٴνøÈëµÈ´ý˯Ãß״̬)¡£Á½ÖÖ״̬µÄ½ø³ÌλÓÚͬһ¸öµÈ´ý¶ÓÁÐÉÏ£¬µÈ´ýijЩʼþ£¬²»Äܹ»ÔËÐС£

  ÐÝÃßͨ¹ýµÈ´ý¶ÓÁнøÐд¦Àí¡£µÈ´ý¶ÓÁÐÊÇÓɵȴýijЩʼþ·¢ÉúµÄ½ø³Ì×é³ÉµÄ¼òµ¥Á´±í¡£ÄÚºËÓÃwake_queue_head_tÀ´´ú±íµÈ´ý¶ÓÁС£µÈ´ý¶ÓÁпÉÒÔͨ¹ýDECLARE_WAITQUEUE()¾²Ì¬´´½¨£¬Ò²¿ÉÒÔÓÐinit_waitqueue_head()¶¯Ì¬´´½¨¡£½ø³Ì°Ñ×Ô¼º·ÅÈëµÈ´ý¶ÓÁÐÖв¢ÉèÖóɲ»¿ÉÖ´ÐÐ״̬¡£µÈÓëµÈ´ý¶ÓÁÐÏà¹ØµÄʼþ·¢ÉúµÄʱºò£¬¶ÓÁÐÉϵĽø³Ì»á±»»½ÐÑ¡£ÎªÁ˱ÜÃâ²úÉú¾ºÕùÌõ¼þ£¬ÐÝÃߺͻ½ÐѵÄʵÏÖ²»ÄÜÓÐç¢Â©¡£
 µÈ´ý¶ÓÁÐ
  ÔÚLinuxÇý¶¯³ÌÐòÖУ¬¿ÉÒÔʹÓõȴý¶ÓÁÐÀ´ÊµÏÖ×èÈû½ø³ÌµÄ»½ÐÑ¡£
 ½ø³Ìͨ¹ýÖ´ÐÐÏÂÃæ¼¸²½½«×Ô¼º¼ÓÈëµ½Ò»¸öµÈ´ý¶ÓÁÐÖУº
µ±È»£¬Ê×ÏÈÊǶ¨ÒåµÈ´ý¶ÓÁÐÍ·£¬²¢³õʼ»¯£º
wait_queue_head_t wait;
init_waitqueue_he


Ïà¹ØÎĵµ£º

Linux µÄ¶àÏ̱߳à³ÌµÄ¸ßЧ¿ª·¢¾­Ñé

2009 Äê 4 ÔÂ 23 ÈÕ
±¾ÎÄÖÐÎÒÃÇÕë¶Ô Linux É϶àÏ̱߳à³ÌµÄÖ÷ÒªÌØÐÔ×ܽá³ö 5 Ìõ¾­Ñ飬ÓÃÒÔ¸ÄÉÆ Linux ¶àÏ̱߳à³ÌµÄϰ¹ßºÍ±ÜÃâÆäÖеĿª·¢ÏÝÚå¡£ÔÚ±¾ÎÄÖУ¬ÎÒÃÇ´©²åһЩ Windows µÄ±à³ÌÓÃÀýÓÃÒÔ¶Ô±È Linux ÌØÐÔ£¬ÒÔ¼ÓÉî¶ÁÕßÓ¡Ïó¡£
±³¾°
Linux ƽ̨ÉϵĶàÏ̳߳ÌÐò¿ª·¢Ïà¶ÔÓ¦ÆäËûƽ̨£¨±ÈÈç Windows£©µÄ¶àÏß³Ì API ÓÐһЩϸ΢ ......

Linux GCC°²×° (ת)

Ŀǰ£¬GCC¿ÉÒÔÓÃÀ´±àÒëC/C++¡¢FORTRAN¡¢JAVA¡¢OBJC¡¢ADAµÈÓïÑԵijÌÐò£¬¿É¸ù¾ÝÐèҪѡÔñ°²×°Ö§³ÖµÄÓïÑÔ¡£±¾ÎÄÒÔÔÚRedhat LinuxÉϰ²×°GCC4.1.2ΪÀý(ÒòÔÚÏîÄ¿¿ª·¢¹ý³ÌÖÐÒªÇóʹÓã¬Ã»ÓÐÓÃ×îеÄGCC°æ±¾)£¬½éÉÜGCCµÄ°²×°¹ý³Ì¡£
°²×°Ö®Ç°£¬ÏµÍ³ÖбØÐëÒªÓÐcc»òÕßgccµÈ±àÒëÆ÷£¬²¢ÇÒÊÇ¿ÉÓõ쬻òÕßÓû·¾³±äÁ¿CCÖ¸¶¨ÏµÍ³ÉϵıàÒëÆ÷¡£È ......

Linux socket API ʹÓÃʵÀý

°´ÏÂÃæ²½ÖèÀ´×ö£¬¿ÉÒÔ¼òµ¥ÌåÑésocket APIµÄʹÓ᣾ßÌ庯ÊýµÄÒâÒ壬Çë²Î¿¼ÆäËû˵Ã÷Îĵµ¡£
ÏÂÃæµÄº¯ÊýÖ±½Ócopy, paste¾Í¿ÉÒÔÁË¡£
Step1. ´´½¨Server ³ÌÐò¡£
н¨Îļþsocket_s.c, ÄÚÈÝÈçÏ£º
-------------------------------------------
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h ......

linux¿ÚÁîÏà¹Ø£¨passwd/shadow£©

      ÔÚlinuxÖУ¬¿ÚÁîÎļþÔÚ/etc/passwdÖУ¬ÔçÆÚµÄÕâ¸öÎļþÖ±½Ó´æ·Å¼ÓÃܺóµÄÃÜÂ룬ǰÁ½Î»ÊÇ"ÑÎ"Öµ£¬ÊÇÒ»¸öËæ»úÊý£¬ºóÃæ¸úµÄÊǼÓÃܵÄÃÜÂ롣ΪÁ˰²È«£¬ÏÖÔÚµÄlinux¶¼ÌṩÁË /etc/shadowÕâ¸öÓ°×ÓÎļþ£¬ÃÜÂë·ÅÔÚÕâ¸öÎļþÀïÃæ£¬²¢ÇÒÊÇÖ»ÓÐroot¿É¶ÁµÄ¡£
ÏÂÃæÀ´·ÖÎöÒ»ÏÂ/etc/passwdÎļþ£¬ËûµÄÿ¸öÌõÄ¿Ó ......

linuxѧϰ֮ubuntuµÄ°ü¹ÜÀí


Ô­ÎĵØÖ·£ºhttp://www.ibm.com/developerworks/cn/linux/l-lpic1-v3-102-4/index.html?ca=drs-
Ian
Shields
, ×ÊÉî³ÌÐòÔ±, IBM
Ian Shields ²ÎÓë developerWorks
Linux ×¨ÇøµÄÐí¶à Linux ÏîÄ¿¡£ËûÊÇ IBM ±±¿¨ÂÞÀ´ÄÉÖÝ Research Triangle Park µÄÒ»Ãû¸ß¼¶³ÌÐòÔ±¡£ËûÓÚ
1973 Äê×÷ΪһÃûϵͳ¹¤³Ìʦ¼ÓÈë IBM λÓÚ°Ä´ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ