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

LinuxÄÚºËÖжÁдÎļþ


×î½üÔÚkernel ÀïÃæ coding,  ÕÒÀ´Ò»Ð©×ÊÁÏ Ë³ÊÖÌùÀ´£¬·½±ã²éÕÒ¡££¨¸Ðлԭ×÷ÕßµÄŬÁ¦£¬ÈôÓаæÈ¨ÎÊÌ⣬ÇëÁªÏµ£©
 
 
 
ÓÐʱºòÐèÒªÔÚLinux kernel£­£­´ó¶àÊÇÔÚÐèÒªµ÷ÊÔµÄÇý¶¯³ÌÐò£­£­ÖжÁдÎļþÊý¾Ý¡£ÔÚkernelÖвÙ×÷ÎļþûÓбê×¼¿â¿ÉÓã¬ÐèÒªÀûÓÃkernelµÄһЩº¯Êý£¬ÕâЩº¯ÊýÖ÷ÒªÓУº filp_open() filp_close(), vfs_read() vfs_write()£¬set_fs()£¬get_fs()µÈ£¬ÕâЩº¯ÊýÔÚlinux/fs.hºÍasm/uaccess.hÍ·ÎļþÖÐÉùÃ÷¡£ÏÂÃæ½éÉÜÖ÷Òª²½Ö裺
1. ´ò¿ªÎļþ
filp_open()ÔÚkernelÖпÉÒÔ´ò¿ªÎļþ£¬ÆäÔ­ÐÎÈçÏ£º
strcut file* filp_open(const char* filename, int open_mode, int mode);
¸Ãº¯Êý·µ»Østrcut file*½á¹¹Ö¸Õ룬¹©ºó¼Ìº¯Êý²Ù×÷ʹÓ㬸÷µ»ØÖµÓÃIS£ßERR£¨£©À´¼ìÑéÆäÓÐЧÐÔ¡£
²ÎÊý˵Ã÷
filename£º ±íÃ÷Òª´ò¿ª»ò´´½¨ÎļþµÄÃû³Æ£¨°üÀ¨Â·¾¶²¿·Ö£©¡£ÔÚÄÚºËÖдò¿ªµÄÎļþʱÐèҪעÒâ´ò¿ªµÄʱ»ú£¬ºÜÈÝÒ׳öÏÖÐèÒª´ò¿ªÎļþµÄÇý¶¯ºÜÔç¾Í¼ÓÔØ²¢´ò¿ªÎļþ£¬µ«ÐèÒª´ò¿ªµÄÎļþËùÔÚÉ豸»¹²»ÓйÒÔØµ½ÎļþϵͳÖУ¬¶øµ¼Ö´ò¿ªÊ§°Ü¡£
open_mode£º ÎļþµÄ´ò¿ª·½Ê½£¬ÆäȡֵÓë±ê×¼¿âÖеÄopenÏàÓ¦²ÎÊýÀàËÆ£¬¿ÉÒÔÈ¡O_CREAT,O_RDWR,O_RDONLYµÈ¡£
mode£º  ´´½¨ÎļþʱʹÓã¬ÉèÖô´½¨ÎļþµÄ¶ÁдȨÏÞ£¬ÆäËüÇé¿ö¿ÉÒÔ´ÒÂÔÉèΪ0
2. ¶ÁдÎļþ
kernelÖÐÎļþµÄ¶Áд²Ù×÷¿ÉÒÔʹÓÃvfs_read()ºÍvfs_write£¬ÔÚʹÓÃÕâÁ½¸öº¯ÊýǰÐèҪ˵Ã÷Ò»ÏÂget_fs()ºÍ set_fs()ÕâÁ½¸öº¯Êý¡£
vfs_read() vfs_write()Á½º¯ÊýµÄÔ­ÐÎÈçÏ£º
ssize_t vfs_read(struct file* filp, char __user* buffer, size_t len, loff_t* pos);
ssize_t vfs_write(struct file* filp, const char __user* buffer, size_t len, loff_t* pos);
×¢ÒâÕâÁ½¸öº¯ÊýµÄµÚ¶þ¸ö²ÎÊýbuffer£¬Ç°Ãæ¶¼ÓÐ__userÐÞÊηû£¬Õâ¾ÍÒªÇóÕâÁ½¸öbufferÖ¸Õë¶¼Ó¦¸ÃÖ¸ÏòÓÿյÄÄڴ棬Èç¹û¶Ô¸Ã²ÎÊý´«µÝkernel¿Õ¼äµÄÖ¸Õ룬ÕâÁ½¸öº¯Êý¶¼»á·µ»ØÊ§°Ü-EFAULT¡£µ«ÔÚKernelÖУ¬ÎÒÃÇÒ»°ã²»ÈÝÒ×Éú³ÉÓû§¿Õ¼äµÄÖ¸Õ룬»òÕß²»·½±ã¶ÀÁ¢Ê¹ÓÃÓû§¿Õ¼äÄڴ档ҪʹÕâÁ½¸ö¶Áдº¯ÊýʹÓÃkernel¿Õ¼äµÄbufferÖ¸ÕëÒ²ÄÜÕýÈ·¹¤×÷£¬ÐèҪʹÓÃset_fs()º¯Êý»òºê£¨set_fs()¿ÉÄÜÊǺ궨Ò壩£¬Èç¹ûΪº¯Êý£¬ÆäÔ­ÐÎÈçÏ£º
void set_fs(mm_segment_t fs);
¸Ãº¯ÊýµÄ×÷ÓÃÊǸıäkernel¶ÔÄÚ´æµØÖ·¼ì²éµÄ´¦Àí·½Ê½£¬Æäʵ¸Ãº¯ÊýµÄ²ÎÊýfsÖ»ÓÐÁ½¸öȡֵ£ºUSER£ßDS£¬KERNEL£ßDS£¬·Ö±ð´ú±íÓû§¿Õ¼äºÍÄں˿ռ䣬ĬÈÏÇé¿öÏ£¬kernelȡֵΪUSER_DS£¬¼´¶ÔÓû§¿Õ¼äµØÖ·¼ì²é²¢×ö±ä»»¡


Ïà¹ØÎĵµ£º

ʵսLinux Bluetooth±à³Ì£¨Èý£© HCI²ã±à³Ì

1. HCI²ãЭÒé¸ÅÊö£º
HCIÌṩһÌ×ͳһµÄ·½·¨À´·ÃÎÊBluetoothµ×²ã¡£ÈçͼËùʾ£º
´ÓͼÉÏ¿ÉÒÔ¿´³ö£¬Host Controller Interface(HCI)  ¾ÍÊÇÓÃÀ´¹µÍ¨HostºÍModule¡£Hostͨ³£¾ÍÊÇPC£¬ ModuleÔòÊÇÒÔ¸÷ÖÖÎïÀíÁ¬½ÓÐÎʽ£¨USB,serial,pc-cardµÈ£©Á¬½Óµ½PCÉϵÄbluetooth Dongle¡£
ÔÚHostÕâÒ»¶Ë£ºapplication,SDP,L2capµÈЭÒé ......

linux´ÅÅ̲Ù×÷ÃüÁîÏê½â

1.·ÖÇøÓë¸ñʽ»¯Ô­Àí
Ó²Å̵ķÖÇø·ÖÖ÷MBR£¨446byte£©,Ö÷·ÖÇø±í(64byte)£¬·ÖÇø.
2.ʹÓÃlinuxÖеÄfdisk·ÖÇø
fdisk /dev/sdb
p ´òÓ¡·ÖÇø±í
t ת»»·ÖÇø±í
w д½ø·ÖÇø±í
n н¨·ÖÇø
v ¼ì²é·ÖÇø
×¢£ºfdiskʹÓÃÍêÒªÖØÐÂÆô¶¯.ÐÂÓ²Å̲»ÓÃ.
3.linuxµÄ¸ñʽ»¯Èí¼þ
mkfs-Ö§³Öext2,ext3,vfat,msdos,jfs,reiserfsµÈ
Ó÷¨1£ºmkfs ......

linuxϰ²×°rpc.rstatd

1.rpc·þÎñÐèrshµÄÖ§³Ö£¬Ò»°ãÇé¿öÏÂrshÒѰ²×°¡£rpm -qa rsh²é¿´¡£
2.ÓÒ¼üÁí´æÎªhttp://heanet.dl.sourceforge.net/sourceforge/rstatd/rpc.rstatd-4.0.1.tar.gzÏÂÔØrpc.rstatd-4.0.1.tar.gz¡£
3.Ö´ÐÐÒÔÏÂÃüÁî½âѹºÍ°²×°
tar zxvf rpc.rstatd-4.0.1.tar.gz
cd rpc.rstatd-4.0.1
./configure   //ÅäÖÃ
make&nb ......

linux Ïß³Ì ½ø³Ì¾­µäÎÄÕÂ


ÓйØlinuxϽø³ÌÓëÏ߳̿´¹ýºÜ¶àÎÄÕ£¬ÎÒ¾õµÄÕâÆª¿ÉÒÔ˵×î¾­µä
£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­£­
Ò».»ù´¡ÖªÊ¶£ºÏ̺߳ͽø³Ì
°´Õս̿ÆÊéÉϵ͍Ò壬½ø³ÌÊÇ×ÊÔ´¹ÜÀíµÄ×îСµ¥Î»£¬Ïß³ÌÊdzÌÐòÖ´ÐеÄ×îСµ¥Î»¡£ÔÚ²Ù×÷ϵͳÉè¼ÆÉÏ£¬´Ó½ø³ÌÑÝ»¯³öỊ̈߳¬×îÖ÷ÒªµÄÄ¿µÄ¾ÍÊǸüºÃµÄÖ§³ÖSMPÒÔ¼°¼õÐ ......

linux(ubuntu)ÏÂruby¿ª·¢»·¾³´î½¨

env setup
linux(ubuntu)ÏÂruby¿ª·¢»·¾³´î½¨£¬°üÀ¨Ò»Ð©³£¼ûÎÊÌâ½â¾ö
×¢Ò⣬±¾ÎÄÖ»ÊÇÎÒÔڴrubyѧϰ»·¾³Ê±µÄһЩ±Ê¼Ç£¬ÒòΪÊÇÓÃgedit±à¼­µÄ£¬ËùÒÔ¸ñʽ»¯²»ÊǺܺã¬ÁíÍ⣬ֻÊDZ¸Íü¶øÒÑ¡£
2010.1.19
1. install ruby
$ tar xzf ruby-1.8.7-p248.tar.gz
$ mv ruby-1.8.7-p248 ruby187
$ cd ruby187/
$ ./configure ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ