LinuxÇý¶¯³ÌÐò¿ª·¢ É豸¿ØÖƽӿÚ
ÐòÑÔ
É豸Çý¶¯³ÌÐòµÄÒ»¸ö»ù±¾¹¦ÄܾÍÊǹÜÀíºÍ¿ØÖÆÉ豸£¬Í¬Ê±ÎªÓû§Ó¦ÓóÌÐòÌṩ¹ÜÀíºÍ¿ØÖÆÉ豸µÄ½Ó¿Ú¡£ÎÒÃÇÇ°ÃæµÄ“Hello World”Çý¶¯³ÌÐòÒѾ¿ÉÒÔÌṩ¶Áд¹¦ÄÜÁË£¬ÔÚÕâÀïÎÒÃǽ«À©Õ¹ÎÒÃǵÄÇý¶¯ÒÔÖ§³ÖÉ豸¿ØÖƽӿڣ¬ÔÚLinuxÖÐÕâ¸ö½Ó¿ÚÊÇͨ¹ýioctlº¯ÊýÀ´ÊµÏֵġ£
É豸¿ØÖƽӿڣ¨ioctl º¯Êý£©
»ØÏëÒ»ÏÂÎÒÃÇÔÚ×Ö·ûÉ豸Çý¶¯ÖнéÉܵÄstruct file_operations ½á¹¹£¬ÕâÀïÎÒÃǽ«½éÉÜÒ»¸öÐµķ½·¨£º
int (*ioctl) (struct inode *, struct file *, unsigned int, unsigned long);
ÕâÊÇÇý¶¯³ÌÐòÉ豸¿ØÖƽӿں¯Êý£¨ioctlº¯Êý£©µÄÄÚºËÔÐͶ¨Ò壬struct inode * ºÍstruct file* ÃèÊöÁ˲Ù×÷µÄÎļþ£¬unsigned int ÃèÊöÁËioctlÃüÁîºÅ£¬ÕâÊÇÒ»¸öÖØÒªµÄ²ÎÊý£¬ÎÒÃÇÉÔºó»á¶ÔËü×öÏêϸ½éÉÜ¡£×îºóÒ»¸ö²ÎÊýÊÇunsigned longÊý¾ÝÀàÐÍ£¬ÃèÊöÁËioctlÃüÁî¿ÉÄÜ´øÓеIJÎÊý£¬Ëü¿ÉÄÜÊÇÒ»¸öÕûÊý»òÖ¸ÕëÊý¾Ý¡£
ioctlÃüÁîºÅ
ioctlÃüÁîºÅÊÇÕâ¸öº¯ÊýÖÐ×îÖØÒªµÄ²ÎÊý£¬ËüÃèÊöµÄioctlÒª´¦ÀíµÄÃüÁî¡£LinuxÖÐʹÓÃÒ»¸ö32λµÄÊý¾ÝÀ´±àÂëioctlÃüÁËü°üº¬Ëĸö²¿·Ö£ºdir£ºtype£ºnr£ºsize¡£
dir£º
´ú±íÊý¾Ý´«ÊäµÄ·½Ïò£¬Õ¼2룬¿ÉÒÔÊÇ_IOC_NONE£¨ÎÞÊý¾Ý´«Ê䣬0U£©£¬_IOC_WRITE£¨ÏòÉ豸дÊý¾Ý£¬1U£©»ò_IOC_READ£¨´ÓÉ豸¶ÁÊý¾Ý£¬2U£©»òËûÃǵÄÂß¼»ò×éºÏ£¬µ±È»Ö»ÓÐ_IOC_WRITEºÍ_IOC_READµÄÂß¼»ò²ÅÓÐÒâÒå¡£
type£º
ÃèÊöÁËioctlÃüÁîµÄÀàÐÍ£¬8λ¡£Ã¿ÖÖÉ豸»òϵͳ¶¼¿ÉÒÔÖ¸¶¨×Ô¼ºµÄÒ»¸öÀàÐͺţ¬ioctlÓÃÕâ¸öÀàÐÍÀ´±íʾioctlÃüÁîËùÊôµÄÉ豸»òÇý¶¯¡£Ò»°ãÓÃASCIIÂë×Ö·ûÀ´±íʾ£¬Èç 'a'¡£
nr£º
ioctlÃüÁîÐòºÅ£¬Ò»°ã8λ¡£¶ÔÓÚÒ»¸öÖ¸¶¨µÄÉ豸Çý¶¯£¬¿ÉÒÔ¶ÔËüµÄioctlÃüÁî×öÒ»¸ö˳Ðò±àÂ룬һ°ã´ÓÁ㿪ʼ£¬Õâ¸ö±àÂë¾ÍÊÇioctlÃüÁîµÄÐòºÅ¡£
size£º
ioctlÃüÁîµÄ²ÎÊý´óС£¬Ò»°ã14λ¡£ioctlÃüÁîºÅµÄÕâ¸öÊý¾Ý³ÉÔ±²»ÊÇÇ¿ÖÆÊ¹Óõģ¬Äã¿ÉÒÔ²»Ê¹ÓÃËü£¬µ«ÊÇÎÒÃǽ¨ÒéÄãÖ¸¶¨Õâ¸öÊý¾Ý³ÉÔ±£¬Í¨¹ýËüÎÒÃÇ¿ÉÒÔ¼ì²éÓû§¿Õ¼äÊý¾ÝµÄ´óСÒÔ±ÜÃâ´íÎóµÄÊý¾Ý²Ù×÷£¬Ò²¿ÉÒÔʵÏÖ¼æÈݾɰ汾µÄioctlÃüÁî¡£
ÎÒÃÇ¿ÉÒÔ×Ô¼ºÀ´Ö±½ÓÖ¸¶¨Ò»¸öioctlÃüÁîºÅ£¬Ëü¿ÉÄܽö½öÊÇÒ»¸öÕûÊý¼¯£¬µ«LinuxÖеÄioctlÃüÁîºÅ¶¼ÊÇÓÐÌØ¶¨º¬ÒåµÄ£¬Òò´Ëͨ³£ÎÒÃDz»ÍƼöÕâô×ö¡£ÆäʵLinuxÄÚºËÒѾÌṩÁËÏàÓ¦µÄºêÀ´×Ô¶¯Éú³ÉioctlÃüÁîºÅ£º
_IO(type,nr)
_IOR(type,nr,size)
_IOW(type,nr,size)
_IOWR(type,nr,size)
ºê_IOÓÃÓÚÎÞÊý¾Ý´«Ê䣬ºê_IORÓÃÓÚ´ÓÉ豸¶ÁÊý¾Ý£¬ºê _IOWÓÃÓÚÏòÉ豸дÊý¾Ý£¬ºê_IOWRÓÃÓÚͬʱÓжÁдÊý¾ÝµÄIOCTLÃüÁî¡£Ïà¶ÔµÄ£¬LinuxÄÚºËÒ²Ìṩ
Ïà¹ØÎĵµ£º
ÀýÒ»£º·¢ËÍSignaling Packet£º
Signaling CommandÊÇ2¸öBluetoothʵÌåÖ®¼äµÄL2CAP²ãÃüÁî´«Êä¡£ËùÒÔµÃSignaling CommandʹÓÃCID 0x0001.
¶à¸öCommand¿ÉÒÔÔÚÒ»¸öC-frame£¨control frame£©Öз¢ËÍ¡£
Èç¹ûÒªÖ±½Ó·¢ËÍSignaling Command.ÐèÒª½¨Á¢SOCK_RAWÀàÐ͵ÄL2CAPÁ¬½ÓSocket¡£ÕâÑù²ÅÓлú»á×Ô¼ºÌî³äCommand Code£¬Identi ......
topÃüÁîÊÇLinuxϳ£ÓõÄÐÔÄÜ·ÖÎö¹¤¾ß£¬Äܹ»ÊµÊ±ÏÔʾϵͳÖи÷¸ö½ø³ÌµÄ×ÊÔ´Õ¼ÓÃ×´¿ö£¬ÀàËÆÓÚWindowsµÄÈÎÎñ¹ÜÀíÆ÷¡£ÏÂÃæÏêϸ½éÉÜËüµÄʹÓ÷½·¨¡£
top - 01:06:48 up 1:22, 1 user, load average: 0.06, 0.60, 0.48
Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.3% us, 1.0% sy, 0.0% ni, 98 ......
LinuxϵͳµÄÓ²¼þÇý¶¯³ÌÐò±àдÔÀí
http://www.yesky.com/161/1874161.shtml
±¾ÎÄÏêϸµØ½éÉÜÈçºÎLinuxϵͳµÄÓ²¼þÇý¶¯³ÌÐòµÄ±àдÔÀí£¬Ö¸³öÄÄЩÄÚºËÀý³Ì½«»á±»µ÷Óá¢ÈçºÎ³õʼ»¯Çý¶¯³ÌÐò¼°ÈçºÎ·ÖÅäÄÚ´æµÈµÈ¡£´ó¼ÒÒ»¶¨¶ÔLinux²Ù×÷ϵͳÓÐËùÁ˽âÁË£¬Ôڴ˱¾ÈËÒ²²»ÔÙ׸ÊöÁË¡£ºÃ°É£¬ÏÂÃæ¼òµ¥µØ½éÉÜÒ»ÏÂÉ豸Çý¶¯³ÌÐò¡£¹ËÃû˼Ò壬Çý¶ ......
³ÉΪһÃûºÏ¸ñµÄLINUXϵͳ¹ÜÀíÔ±¸üÖØÒªµÄÊÇÒªÕÆÎÕ¼¼ÇɺÍרҵ֪ʶ¡£
¡¡¡¡¼¼ÇÉ1£ºÊìϤTCP/IPºÍLINUXÌṩµÄ¸÷ÖÖÍøÂç·þÎñ£¬ÈçDNS£¬SMTP£¬UDP£¬HTTP£¬FTP£¬POP3µÈµÈ¡£ÒÔ¼°ÒªÖªµÀLINUX³ÌÐò£¬ LINUXƽ̨ÏÂÈí¼þµÄ°²×°£¬µ÷ÊÔºÍά»¤¡£×ÜÖ®£¬ºÍLINUXÓйصÄ֪ʶ¶®µÃÔ½¶àÔ½ºÃ¡£
¡¡¡¡¼¼ÇÉ2£ºÈç¹û¿ÉÒԵϰ£¬×îºÃÄÜÊìϤ¾¡¿ÉÄܶàµÄ²Ù×÷ÏµÍ ......
ELFÊÇlinuxÖÐʹÓÃ×î¹ã·ºµÄÒ»ÖÖÓ¦ÓóÌÐò¸ñʽ£¬ÎªÁËŪÇå³þLinuxÄÚºËÊÇÈçºÎ½²ELFÎļþ¾«È·Ó³Éäµ½Ö¸¶¨ÄÚ´æ¿Õ¼ä£¬ÉÏÖÜÄ©°ÑÄÚºËsys_execve²¿·ÖºÃºÃ¿´ÁËÒ»±é£¬Ð¡½áÈçÏ£º
1. ELF¸ñʽ
ELFÖ¸¶¨Á˽ø³ÌÖÐtext¶Î¡¢bss¶Î¡¢data¶ÎµÈÓ¦¸Ã·ÅÖõ½½ø³ÌÐéÄâÄÚ´æ¿Õ¼äµÄʲôλÖã¬ÒÔ¼°¼Ç¼Á˽ø³ÌÐèÒªÓõ½µÄ¸÷ÖÖ¶¯Ì¬Á´½Ó¿âµÄλÖá£
2. sys_exe ......