LinuxϵĽø³ÌͨÐÅ£¨IPC£©
LinuxϵĽø³ÌͨÐÅÊֶλù±¾ÉÏÊÇ´ÓUnixƽ̨ÉϵĽø³ÌͨÐÅÊֶμ̳жøÀ´µÄ¡£¶ø¶ÔUnix·¢Õ¹×ö³öÖØ´ó¹±Ï×µÄÁ½´óÖ÷Á¦AT&TµÄ±´¶ûʵÑéÊÒ¼°BSD£¨¼ÓÖÝ´óѧ²®¿ËÀû·ÖУµÄ²®¿ËÀûÈí¼þ·¢²¼ÖÐÐÄ£©ÔÚ½ø³Ì¼äͨÐÅ·½ÃæµÄ²àÖØµãÓÐËù²»Í¬¡£Ç°Õß¶ÔUnixÔçÆÚµÄ½ø³Ì¼äͨÐÅÊֶνøÐÐÁËϵͳµÄ¸Ä½øºÍÀ©³ä£¬ÐγÉÁË“system V IPC”£¬Í¨ÐŽø³Ì¾ÖÏÞÔÚµ¥¸ö¼ÆËã»úÄÚ£»ºóÕßÔòÌø¹ýÁ˸ÃÏÞÖÆ£¬ÐγÉÁË»ùÓÚÌ×½Ó¿Ú£¨socket£©µÄ½ø³Ì¼äͨÐÅ»úÖÆ¡£
ÆäÖУ¬×î³õUnix IPC°üÀ¨£º¹ÜµÀ¡¢FIFO¡¢Ðźţ»System V IPC°üÀ¨£ºSystem VÏûÏ¢¶ÓÁС¢System VÐźŵơ¢System V¹²ÏíÄÚ´æÇø£»Posix IPC°üÀ¨£ºPosixÏûÏ¢¶ÓÁС¢PosixÐźŵơ¢Posix¹²ÏíÄÚ´æÇø¡£ÓÐÁ½µãÐèÒª¼òµ¥ËµÃ÷һϣº1£©ÓÉÓÚUnix°æ±¾µÄ¶àÑùÐÔ£¬µç×ÓµçÆø¹¤³ÌлᣨIEEE£©¿ª·¢ÁËÒ»¸ö¶ÀÁ¢µÄUnix±ê×¼£¬Õâ¸öеÄANSI Unix±ê×¼±»³ÆÎª¼ÆËã»ú»·¾³µÄ¿ÉÒÆÖ²ÐÔ²Ù×÷ϵͳ½çÃæ£¨PSOIX£©¡£ÏÖÓд󲿷ÖUnixºÍÁ÷Ðа汾¶¼ÊÇ×ñÑPOSIX±ê×¼µÄ£¬¶øLinux´ÓÒ»¿ªÊ¼¾Í×ñÑPOSIX±ê×¼£»2£©BSD²¢²»ÊÇûÓÐÉæ×ãµ¥»úÄڵĽø³Ì¼äͨÐÅ£¨socket±¾Éí¾Í¿ÉÒÔÓÃÓÚµ¥»úÄڵĽø³Ì¼äͨÐÅ£©¡£
LinuxϽø³Ì¼äͨÐŵļ¸ÖÖÖ÷ÒªÊֶμò½é£º
1.¹ÜµÀ£¨Pipe£©¼°ÓÐÃû¹ÜµÀ£¨named pipe£©£º¹ÜµÀ¿ÉÓÃÓÚ¾ßÓÐÇ×Ôµ¹ØÏµ½ø³Ì¼äµÄͨÐÅ£¬ÓÐÃû¹ÜµÀ¿Ë·þÁ˹ܵÀûÓÐÃû×ÖµÄÏÞÖÆ£¬Òò´Ë£¬³ý¾ßÓйܵÀËù¾ßÓеŦÄÜÍ⣬Ëü»¹ÔÊÐíÎÞÇ×Ôµ¹ØÏµ½ø³Ì¼äµÄͨÐÅ£»
2.Ðźţ¨Signal£©£ºÐźÅÊDZȽϸ´ÔÓµÄͨÐÅ·½Ê½£¬ÓÃÓÚ֪ͨ½ÓÊܽø³ÌÓÐijÖÖʼþ·¢Éú£¬³ýÁËÓÃÓÚ½ø³Ì¼äͨÐÅÍ⣬½ø³Ì»¹¿ÉÒÔ·¢ËÍÐźŸø½ø³Ì±¾Éí£»Linux³ýÁËÖ§³ÖUnixÔçÆÚÐźÅÓïÒ庯ÊýsigalÍ⣬»¹Ö§³ÖÓïÒå·ûºÏPosix.1±ê×¼µÄÐźź¯Êýsigaction
3,±¨ÎÄ£¨Message£©¶ÓÁУ¨ÏûÏ¢¶ÓÁУ©£ºÏûÏ¢¶ÓÁÐÊÇÏûÏ¢µÄÁ´½Ó±í£¬°üÀ¨PosixÏûÏ¢¶ÓÁÐsystemVÏûÏ¢¶ÓÁС£ÓÐ×㹻ȨÏ޵Ľø³Ì¿ÉÒÔÏò¶ÓÁÐÖÐÌí¼ÓÏûÏ¢£¬±»¸³Óè¶ÁȨÏ޵Ľø³ÌÔò¿ÉÒÔ¶Á×ß¶ÓÁÐÖеÄÏûÏ¢¡£ÏûÏ¢¶ÓÁп˷þÁËÐźųÐÔØÐÅÏ¢Á¿ÉÙ£¬¹ÜµÀÖ»ÄܳÐÔØÎÞ¸ñʽ×Ö½ÚÁ÷ÒÔ¼°»º³åÇø´óСÊÜÏÞµÈȱµã¡£
4,¹²ÏíÄڴ棺ʹµÃ¶à¸ö½ø³Ì¿ÉÒÔ·ÃÎÊͬһ¿éÄÚ´æ¿Õ¼ä£¬ÊÇ×î¿ìµÄ¿ÉÓÃIPCÐÎʽ¡£ÊÇÕë¶ÔÆäËûͨÐÅ»úÖÆÔËÐÐЧÂʽϵͶøÉè¼ÆµÄ¡£ÍùÍùÓëÆäËüͨÐÅ»úÖÆ£¬ÈçÐźÅÁ¿½áºÏʹÓã¬À´´ïµ½½ø³Ì¼äµÄͬ²½¼°»¥³â¡£
5,ÐźÅÁ¿£¨semaphore£©£ºÖ÷Òª×÷Ϊ½ø³Ì¼äÒÔ¼°Í¬Ò»½ø³Ì²»Í¬Ïß³ÌÖ®¼äµÄͬ²½ÊֶΡ£
6,Ì×½Ó¿Ú£¨Socket£©£º¸üΪһ°ãµÄ½ø³Ì¼äͨÐÅ»úÖÆ£¬¿ÉÓÃÓÚ²»Í¬»úÆ÷Ö®¼äµÄ½ø³Ì¼äͨÐÅ¡£Æð³õÊÇÓÉUnixϵͳµÄBSD·ÖÖ§¿ª
Ïà¹ØÎĵµ£º
ÔÚÑо¿Ä³Ò»Ñù¶«Î÷µÄʱºò£¬Æäʵ×îÖØÒªµÄÒ»µã¾ÍÊÇÁ˽âÇå³þËüµÄ×÷Óã¬Ëü¶Ô×Ô¼ºÓÐûÓÐÓã¬ÒÔǰ¸Õ¸Õ½øÈë´óѧµÄʱºò×ÜÊÇÌýijijʦÐÖʦ½ãÔÚ½²Ä³¸ö¿Î³ÌûɶÓ㬲»ÓÃÈÏÕæÑ§£¬½á¹û×Ô¼ºÓÐʱºòÒ²°ÑijЩÈ˵ÄijЩ»°µ±ÕæÁË£¬ÔÙ½á¹ûÎÒÔÚѧϰijЩ¿Î³ÌµÄʱºò¾Íû°ÑËüµ±»ØÊ£¬×ÜÈÏΪÒÔºóûʲôÓ㬵ȵ½×Ô¼º´óËÄʱ²ÅÖªµÀÄÇЩ¸öËùνµÄʦÐÖʦ½ãÃÇµÄ ......
Ò»£®Ç°ÑÔ
¡¡¡¡LinuxÓµÓзḻ¸÷ÖÖÔ´´úÂë×ÊÔ´,µ«ÊǴ󲿷ִúÂëÔÚWindowsƽ̨Çé¿öÊÇÎÞ·¨Õý³£±àÒëµÄ¡£Windowsƽ̨¸ù±¾ÎÞ·¨Ö±½ÓÀûÓÃÕâЩԴ´úÂë×ÊÔ´¡£Èç¹ûÏëҪʹÓÃÍêÕûµÄ´úÂ룬¾ÍÒª×öÒÆÖ²¹¤×÷¡£ÒòΪC/C++ LibraryµÄ²»Í¬ºÍÆäËûµÄһЩÔÒò£¬ÒÆÖ²C/C++´úÂëÊÇÒ»ÏîÀ§ÄѵŤ×÷¡£±¾ÎĽ«ÒÔÒ»¸öʵ¼ÊµÄÀý×Ó£¨Tar£©À´ËµÃ÷ÈçºÎ°ÑLinux´úÂëÒÆÖ² ......
WindowsÓëLinuxÖеĻ»ÐÐÊDz»Ò»ÑùµÄ£¬ÒѾÓöµ½¹ýºÃ¼¸´ÎÎÊÌâÁË¡«ÅúÁ¿Ð½¨Óû§µÄʱºò£¬ÐÂÓû§²»ÄܵǼ£¬ÒòΪÎÒµÄÎı¾ÊÇÔÚWindowsÏÂÉú³ÉµÄ£¬»»ÐÐÊÇWindows¸ñʽ£¬¶øLinuxÖÐʹÓÃnewusersÃüÁîµ¼Èëµ½passwdÎļþ£¬ÊÇÖ±½Ó¸´ÖƹýÈ¥µÄ¡«²»ÄÜÒ»ÐÐÒ»Ðеĸİ¡¡«ºÇºÇ£¬¸Õ¸Õѧµ½ÁËÒ»ÕС£
×Ö·ûÎļþÔÚÁ½¸öϵͳ֮¼ä¿½±´Ö®ºó£¬¿ÉÒÔʹÓÃdos2unix» ......
Linux I2CºËÐÄ¡¢×ÜÏßÓëÉ豸Çý¶¯
×¢:
ÔÚlinux2.6.32°æ±¾ÖÐÓÐÕâÑùµÄ´úÂëÓë×¢ÊÍ:
struct i2c_driver {
unsigned int class;
/* Notifies the driver that a new bus has appeared or is about to be
* removed. You should avoid using this if y ......