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

Linux 2.6 ×Ö·ûÉ豸Çý¶¯³ÌÐò

˵Ã÷
±Ê¼ÇÊÊÓÃÓÚLinuxµÄ2.6.10ÒÔºóµÄÄںˡ£
±Ê¼ÇÒÔLinux
Device
Driver3ÌṩµÄscull³ÌÐò(scullĿ¼ÖеÄmain.cºÍscull.h)Ϊ¼Ç¼Ö÷Ïߣ¬²¢ÒÔ¸ÃÇý¶¯³ÌÐòÖеĸ÷ÖÖϵͳµ÷Óúͺ¯Êýµ÷ÓÃÁ÷³ÌΪ¼Ç
¼˳Ðò¡£±ÈÈ磬module_init( )ºÍmodule_exit(
)ΪÏà¶ÔÓ¦µÄÒ»¶Ôϵͳµ÷Óã¬Ò»°ãÊé¼®Öж¼»á·ÅÔÚÒ»ÆðÌÖÂÛ£¬µ«ÊDZ¾±Ê¼ÇÈ´²»»áÕâÑù£¬¶øÊÇÔÚÐèÒªµ÷ÓõÄʱºò²Å»áÉæ¼°£¬Òò´Ëmodule_init(
)»á·ÅÔڱʼǿªÊ¼Ê±£¬Ò²¾ÍÊǸռÓÔØmoduleʱÌÖÂÛ£¬¶ømodule_exit( )Ôò»á·ÅÔڱʼǽáÊøÇ°£¬Ò²¾ÍÊÇÒªÐ¶ÔØmoduleʱÔÙ¼ÓÒÔÌÖÂÛ¡£
¸Ã±Ê¼ÇµÄµÄÄ¿µÄÊÇΪÁ˶ÔLinux Device Drvier3ÖÐÌáµ½µÄ¸÷¸ö֪ʶµã×÷Ò»ÏÂÕûÀí£¬ÀíÇåÒ»ÏÂÍ·Ð÷£¬´Ó¶øÄÜÈÃÎÒ¶ÔLinuxÇý¶¯³ÌÐò¼ÓÉîÕûÌå»òÕßÈ«¾ÖÉϵÄÀí½â¡£
×¢£º¸öÈËÀí½â£¬ÓÐÎóÄÑÃ⣡
*******************************************
Çý¶¯³ÌÐòmoduleµÄ¹¤×÷Á÷³ÌÖ÷Òª·ÖΪËĸö²¿·Ö£º
1¡¢ ÓÃLinuxÌṩµÄÃüÁî¼ÓÔØÇý¶¯module
2¡¢ Çý¶¯moduleµÄ³õʼ»¯£¨³õʼ»¯½áÊøºó¼´½øÈë“DZ·ü”״̬£¬Ö±µ½ÓÐϵͳµ÷Óã©
3¡¢ µ±²Ù×÷É豸ʱ£¬¼´ÓÐϵͳµ÷ÓÃʱ£¬µ÷ÓÃÇý¶¯moduleÌṩµÄ¸÷¸ö·þÎñº¯Êý
4¡¢ Ð¶ÔØÇý¶¯module
Ò»¡¢ Çý¶¯³ÌÐòµÄ¼ÓÔØ
LinuxÇý¶¯³ÌÐò·ÖΪÁ½ÖÖÐÎʽ£ºÒ»ÖÖÊÇÖ±½Ó±àÒë½øÄںˣ¬ÁíÒ»ÖÖÊDZàÒë³ÉmoduleÐÎʽ£¬È»ºóÔÚÐèÒª¸ÃÇý¶¯moduleʱÊÖ¶¯¼ÓÔØ¡£¶ÔÓÚǰÕߣ¬»¹Óдýѧϰ¡£
ModuleÐÎʽµÄÇý¶¯£¬LinuxÌṩÁËÁ½¸öÃüÁîÓÃÀ´¼ÓÔØ£ºmodprobeºÍinsmod¡£
Æä
ÖÐmodprobe¿ÉÒÔ½â¾öÇý¶¯moduleµÄÒÀÀµÐÔ£¬¼´¼ÙÈçÕý¼ÓÔØµÄÇý¶¯moduleÈôÒýÓÃÁËÆäËûmoduleÌṩµÄÄں˷ûºÅ»òÕ߯äËû×ÊÔ´£¬Ôò
modprobe¾Í»á×Ô¶¯¼ÓÔØÄÇЩmodule£¬²»¹ý£¬Ê¹ÓÃmodprobeʱ£¬±ØÐë°ÑÒª¼ÓÔØµÄÇý¶¯module·ÅÔÚµ±Ç°Ä£¿éËÑË÷·¾¶ÖС£¶øinsmod
ÃüÁî²»»á¿¼ÂÇÇý¶¯moduleµÄÒÀÀµÐÔ£¬µ«ÊÇËüÈ´¿ÉÒÔ¼ÓÔØÈÎÒâĿ¼ÏµÄÇý¶¯module¡£
Ò»°ãÀ´Ëµ£¬ÔÚÇý¶¯¿ª·¢½×¶Î£¬Ê¹ÓÃ/sbin/insmod±È½Ï·½±ã£¬ÒòΪ²»Óý«module·ÅÈ뵱ǰmoduleËÑË÷·¾¶ÖС£
Ò»µ©Ê¹ÓÃinsmod¼ÓÔØÄ£¿é£¬ÔòLinuxÄں˾ͻáµ÷ÓÃmodule_init(scull_init_module)ÌØÊâºê£¬ÆäÖÐscull_init_moduleÊÇÇý¶¯³õʼ»¯º¯Êý£¬¿É×Ô¶¨ÒåÃû³Æ¡£
ÔÚÓÃinsmod¼ÓÔØmoduleʱ£¬»¹¿ÉÒÔ¸ømoduleÌṩģ¿é²ÎÊý£¬µ«ÊÇÕâÐèÒªÔÚÇý¶¯Ô´´úÂëÖмÓÈ뼸ÌõÓï¾ä£¬ÈÃÄ£¿é²ÎÊý¶ÔinsmodºÍÇý¶¯³ÌÐò¿É¼û£¬È磺
static char *whom=”world”£»
static int  howmany=10;
module_param(howmany,int,S_IRUGO);
module_param(whom,charp,S_IRUGO);
ÕâÑù£¬µ±Ê¹ÓÃ/sbin/insmod scull.ko  whom=&rdqu


Ïà¹ØÎĵµ£º

linux±àÒë³öÏÖ´íÎó

ÒýÓãºhttp://blog.chinaunix.net/u/12207/showart_2061214.html
¹ØÓÚ2.6.31Óöµ½µÄÎÊÌâ
´íÎóÌáʾ1£º
drivers/built-in.o(.init.text+0x3bad): In function `con_init':
include/trace/events/kmem.h:47: undefined reference to `.L1452'
½â¾ö£º
vi /usr/src/linux/drivers/char/vt.c ÕÒµ½static int __init con_init ......

linux socketµÄselectº¯ÊýÀý×Ó

ʹÓÃselectº¯Êý¿ÉÒÔÒÔ·Ç×èÈûµÄ·½Ê½ºÍ¶à¸ösocketͨÐÅ¡£³ÌÐòÖ»ÊÇÑÝʾselectº¯ÊýµÄʹÓ㬹¦Äܷdz£¼òµ¥£¬¼´Ê¹Ä³¸öÁ¬½Ó¹Ø±ÕÒÔºóÒ²²»»áÐ޸ĵ±Ç°Á¬½ÓÊý£¬Á¬½ÓÊý´ïµ½×î´óÖµºó»áÖÕÖ¹³ÌÐò¡£
1. ³ÌÐòʹÓÃÁËÒ»¸öÊý×éfd_A£¬Í¨ÐÅ¿ªÊ¼ºó°ÑÐèҪͨÐŵĶà¸ösocketÃèÊö·û¶¼·ÅÈë´ËÊý×é¡£
2. Ê×ÏÈÉú³ÉÒ»¸ö½Ðsock_fdµÄsocketÃèÊö·û£¬ÓÃÓÚ¼àÌý¶Ë¿ ......

linuxÀïÃæµÄrpmÎļþ

RPM ÊÇ RedHat Package Manager µÄËõд£¬Èí¼þ°ü¹ÜÀí¹¤¾ß¡£
RPMÎļþÔÚLINUXϵͳÖеݲװ×îΪ¼ò±ã¡£
LinuxÈí¼þ°ü£¬³£¼ûµÄ¸ñʽ°üÀ¨ÓÐrpm,deb,tar,gz,tgz,zip,bz2µÈµÈ¡£¼¸ºõÿ¸ölinuxÈí¼þ¶¼»áÌṩtarµÄ¸ñʽµÄÈí¼þ°ü£¬
ÒòΪÕâÖÖ¸ñʽµÄÈí¼þ°üÈκΰ汾µÄlinux¶¼Ö§³Ö£¬ËùÒÔÖÁÉÙÒªÁ˽âtarºÍrpmµÃʹÓ÷½·¨¡£
rpm¿ÉνÊÇRedhat¹«Ë¾µ ......

linux ³£ÓÃÃüÁî¼°¼¼ÇÉ

linux ³£ÓÃÃüÁî×ܽá:
Ò»¡£ ͨÓÃÃüÁî:
1. date £ºprint or set the system date and time
2. stty -a: ¿ÉÒԲ鿴»òÕß´òÓ¡¿ØÖÆ×Ö·û(Ctrl-C, Ctrl-D, Ctrl-ZµÈ)
3. passwd: print or set the system date and time (ÓÃpasswd -h²é¿´)
4. logout, login: µÇ¼shellµÄµÇ¼ºÍ×¢ÏúÃüÁî
5. pwd: print or set the system ......

¼òµ¥µÄLinux·þÎñÆ÷¼à¿Ø½Å±¾

#!/bin/bash
cpu=`top -b -n 1 | grep -w Cpu | awk '{print$5}'| awk -F '%' '{printf"%d",$1}'`
if [ $cpu -le 50 ]
then
echo "cpu: $((100 - cpu))%" > test.txt
mail -s "·þÎñÆ÷½ô¼±, CPUÕ¼ÓÃÂʹý¸ß£¡" yourmail@domail.com < test.txt
fi
mem=`top -b -n 1 | grep -w Me ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ