Linux ϵͳ´¦ÓÚÕý³£×´Ì¬Ê±£¬·þÎñÆ÷Ö÷»ú¿ª»ú£¨»òÖØÐÂÆô¶¯£©ºó£¬Äܹ»ÓÉϵͳÒýµ¼Æ÷³ÌÐò×Ô¶¯Òýµ¼ Linux ϵͳÆô¶¯µ½¶àÓû§Ä£Ê½£¬²¢ÌṩÕý³£µÄÍøÂç·þÎñ¡£Èç¹ûϵͳ¹ÜÀíÔ±ÐèÒª½øÐÐϵͳά»¤»òϵͳ³öÏÖÆô¶¯Ò쳣ʱ£¬¾ÍÐèÒª½øÈëµ¥Óû§Ä£Ê½»òÐÞ¸´Ä£Ê½¶Ôϵͳ½øÐйÜÀíÁË¡£Ê¹Óõ¥Óû§Ä£Ê½ÓÐÒ»¸öǰÌᣬ¾ÍÊÇÄúµÄϵͳÒýµ¼Æ÷£¨grub£©ÄÜÕý³£¹¤×÷£¬·ñÔòÒª½øÐÐϵͳά»¤¾ÍҪʹÓÃÐÞ¸´Ä£Ê½¡£ÌØ×¢£º½øÈëµ¥Óû§Ä£Ê½£¬Ã»ÓпªÆôÍøÂç·þÎñ£¬²»Ö§³ÖÔ¶³ÌÁ¬½Ó
Linux ϵͳÖв»Í¬µÄÔËÐм¶±ð£¨Run Level£©´ú±íÁËϵͳµÄ²»Í¬ÔËÐÐ״̬£¬ÀýÈç Linux ·þÎñÆ÷Õý³£ÔËÐÐʱ´¦ÓÚÔËÐм¶±ð3£¬ÊÇÄܹ»Ìá¹©ÍøÂç·þÎñµÄ¶àÓû§Ä£Ê½£»¶øÔËÐм¶±ð 1 Ö»ÔÊÐí¹ÜÀíԱͨ¹ý·þÎñÆ÷Ö÷»úµÄµ¥Ò»¿ØÖÆÌ¨½øÐвÙ×÷£¬¼´“µ¥Óû§Ä£Ê½”¡£
ÒÔcentosΪÀý£º
½øÈëµ¥Óû§Ä£Ê½
½øÈëµ¥Óû§Ä£Ê½µÄǰÌáÊÇϵͳÒýµ¼Æ÷ÄÜÕý³£¹¤×÷¡£ÏÂÃæÒÔ GRUB ΪÀý˵Ã÷½øÈë·½·¨¡£ÔÚ GRUB Æô¶¯²Ëµ¥ÀïÓГa”¡¢“e”ºÍ“c”Èý¸ö²Ù×÷°´¼ü£¬Ê¹ÓÃÕâÈý¸ö°´¼ü¾ù¿É½øÈëµ¥Óû§Ä£Ê½¡£
·½·¨1 ʹÓà “a” ²Ù×÷°´¼ü½øÈëµ¥Óû§Ä£Ê½------ÍÆ¼ö£º¼òµ¥²Ù×÷
ÕâÊǽøÈëµ¥Óû§Ä£Ê½×î¿ìËٵķ½·¨¡£ÔÚ GRUB Æô¶¯²Ëµ¥ÀïʹÓà “a” ²Ù× ......
linuxµ÷Õûϵͳʱ¼äºÍÊ±ÇøµÄ·½·¨
1) ÕÒµ½ÏàÓ¦µÄÊ±ÇøÎļþ /usr/share/zoneinfo/Asia/Shanghai
ÓÃÕâ¸öÎļþÌæ»»µ±Ç°µÄ/etc/localtimeÎļþ¡£
2) ÐÞ¸Ä/etc/sysconfig/clockÎļþ£¬ÐÞ¸ÄΪ£º
ZONE="Asia/Shanghai"
UTC=false
ARC=false
3)
ʱ¼äÉ趨³É2005Äê8ÔÂ30ÈÕµÄÃüÁîÈçÏ£º
#date -s 08/30/2005
½«ÏµÍ³Ê±¼äÉ趨³ÉÏÂÎç6µã40·Ö0ÃëµÄÃüÁîÈçÏ¡£
#date -s 18:40:00
4)
ͬ²½BIOSʱÖÓ£¬Ç¿ÖưÑϵͳʱ¼äдÈëCMOS£¬ÃüÁîÈçÏ£º
#clock -w
5)ÖØÆôapache¡£
LinuxÊ±Çø¡¢Ê±¼äµÄ¸ü¸Ä
LinuxʱÖÓ·ÖΪϵͳʱÖÓ £¨System Clock£©ºÍÓ²¼þ£¨Real Time Clock£¬¼ò³ÆRTC£©Ê±ÖÓ¡£ÏµÍ³Ê±ÖÓÊÇÖ¸µ±Ç°Linux KernelÖеÄʱÖÓ£¬¶øÓ²¼þʱÖÓÔòÊÇÖ÷°åÉÏÓÉµç³Ø¹©µçµÄʱÖÓ£¬Õâ¸öÓ²¼þʱÖÓ¿ÉÒÔÔÚBIOSÖнøÐÐÉèÖᣵ±LinuxÆô¶¯Ê±£¬Ó²¼þʱÖÓ»áÈ¥¶ÁȡϵͳʱÖÓµÄÉèÖã¬È»ºóϵͳʱÖӾͻá¶ÀÁ¢ÓÚÓ²¼þÔË×÷¡£
LinuxÖеÄËùÓÐÃüÁ°üÀ¨º¯Êý£©¶¼ÊDzÉÓõÄϵͳʱÖÓÉèÖá£ÔÚLinuxÖУ¬ÓÃÓÚʱÖӲ鿴ºÍÉèÖõÄÃüÁîÖ÷ÒªÓÐdate¡¢hwclockºÍ clock¡£ÆäÖУ¬clockºÍhwclockÓ÷¨Ïà½ü£¬Ö»ÓÃÒ»¸ö¾ÍÐУ¬Ö»²»¹ýclockÃüÁî³ýÁËÖ§³Öx86Ó²¼þÌåϵÍ⣬»¹Ö§³ÖAlphaÓ²¼þÌåϵ¡£
1¡¢date
²é¿´ÏµÍ³Ê±¼ä
# date
ÉèÖÃϵͳʱ¼ä
# date --set &ld ......
ÔÚ×î½üµÄÒ»¸ö¹ØÓÚLKMLµÄÌÖÂÛÖУ¬Linus¸ø³öÁËΪʲô²»ÓÃC++À´Ð´LinuxÄں˵ÄÀíÓÉ£º
"In fact, in Linux we did try C++ once already, back in 1992. It sucks. Trust me - writing kernel code in C++ is a BLOODY STUPID IDEA.
“ÊÂʵÉÏ£¬ÎÒÃÇÔø¾³¢ÊÔ¹ýÓÃC++À´Ð´£¬ÊÇÔÚ1992ÄêµÄʱºò¡£ºÜÔã¸â¡£ÏàÐÅÎÒ--ÓÃC++À´Ð´Äں˴úÂëÊÇÒ»¸ö·Ç³£ÓÞ´ÀµÄÏë·¨¡£”
"The fact is, C++ compilers are not trustworthy. They were even worse in 1992, but some fundamental facts haven't changed: 1) the whole C++ exception handling thing is fundamentally broken. It's _especially_ broken for kernels. 2) any compiler or language that likes to hide things like memory allocations behind your back just isn't a good choice for a kernel. 3) you can write object-oriented code (useful for filesystems etc) in C, _without_ the crap that is C++."
“ʵ¼ÊÉÏ£¬C++±àÒëÆ÷ÊǺܲ»¿É¿¿µÄ¡£ÔÚ1992ÄêµÄʱºòÇé¿ö¾ÍºÜ²îÁË£¬¶øÇÒһЩ»ù´¡µÄ¶«Î÷µ½ÏÖÔÚ»¹Ã»Óиı䣺(1)Õû¸öC++¶ÔExceptionµÄ´¦Àí¸ù±¾¾ÍÊDz»ÍêÕûµÄ£¬ÌرðÊÇÔÚдÄں˵Äʱºò¡£(2)ÈκÎϲ»¶°Ñ¸úÄÚ´æ·ÖÅäÓÐ¹Ø ......
ÔÚ×î½üµÄÒ»¸ö¹ØÓÚLKMLµÄÌÖÂÛÖУ¬Linus¸ø³öÁËΪʲô²»ÓÃC++À´Ð´LinuxÄں˵ÄÀíÓÉ£º
"In fact, in Linux we did try C++ once already, back in 1992. It sucks. Trust me - writing kernel code in C++ is a BLOODY STUPID IDEA.
“ÊÂʵÉÏ£¬ÎÒÃÇÔø¾³¢ÊÔ¹ýÓÃC++À´Ð´£¬ÊÇÔÚ1992ÄêµÄʱºò¡£ºÜÔã¸â¡£ÏàÐÅÎÒ--ÓÃC++À´Ð´Äں˴úÂëÊÇÒ»¸ö·Ç³£ÓÞ´ÀµÄÏë·¨¡£”
"The fact is, C++ compilers are not trustworthy. They were even worse in 1992, but some fundamental facts haven't changed: 1) the whole C++ exception handling thing is fundamentally broken. It's _especially_ broken for kernels. 2) any compiler or language that likes to hide things like memory allocations behind your back just isn't a good choice for a kernel. 3) you can write object-oriented code (useful for filesystems etc) in C, _without_ the crap that is C++."
“ʵ¼ÊÉÏ£¬C++±àÒëÆ÷ÊǺܲ»¿É¿¿µÄ¡£ÔÚ1992ÄêµÄʱºòÇé¿ö¾ÍºÜ²îÁË£¬¶øÇÒһЩ»ù´¡µÄ¶«Î÷µ½ÏÖÔÚ»¹Ã»Óиı䣺(1)Õû¸öC++¶ÔExceptionµÄ´¦Àí¸ù±¾¾ÍÊDz»ÍêÕûµÄ£¬ÌرðÊÇÔÚдÄں˵Äʱºò¡£(2)ÈκÎϲ»¶°Ñ¸úÄÚ´æ·ÖÅäÓÐ¹Ø ......
ÒëÕߣº¹ùÉÙ±¯
2009/12/02
ÔÎÄ£ºlinux/Documentation/driver-model/class.txt
É豸Àà
½éÉÜ
~~~~
Ò»¸öÉ豸ÀàÃèÊöÁËÒ»ÀàµÄÉ豸£¬ÀýÈçÓïÒôÉ豸»òÕßÍøÂçÉ豸¡£ÏÂÃæÊÇÒѶ¨ÒåµÄÉ豸Àà:
<Insert List of Device Classes Here>
ÿ¸öÉ豸ÀඨÒåÁËÒ»Ì×Óï·¨ºÍÉ豸×ñѵıà³Ì½Ó¿Ú¡£É豸Çý¶¯¾ÍÊÇÎªÌØ¶¨×ÜÏßÉϵÄ
ÌØ¶¨É豸¶øÍê³ÉµÄÕâÌ×±à³Ì½Ó¿ÚʵÏÖ¡£
¶ÔÓÚÒ»¸öÉ豸פ×ãÔÚÄĸö×ÜÏßÉÏ£¬É豸ÀàÊDz»¿ÉÖªµÄ¡£
±à³Ì½Ó¿Ú
~~~~~~~~
É豸ÀàµÄÊý¾Ý½á¹¹ÈçÏ£º
typedef int (*devclass_add)(struct device *);
typedef void (*devclass_remove)(struct device *);
struct device_class {
char * name;
rwlock_t lock;
u32 devnum;
struct list_head node;
struct list_head drivers;
struct list_head intf_list;
......
´ËƪÎÄÕÂ×¼±¸·Ö2¸ö²¿·ÖÀ´½²Êö£º
µÚÒ»²¿·ÖÖ÷ÒªÏêϸ½²ÊöÒ»ÏÂÔõô¹¹½¨Ò»¸öÍê³ÉµÄC++Ó¦ÓÃÀ©Õ¹Ä£¿é£»
µÚ¶þ²¿·ÖÖ÷Òª½²ÊöÔÚPHP¼°Zend¿ò¼ÜÏÂÔõôʹÓÃZend APIºÍC++ÓïÑÔÀ´ÊµÏÖ×Ô¼ºËùÒªµÄ¹¦ÄÜÒÔ¼°ÏîÄ¿µÄ¿ª·¢£»
´ËƪÎÄÕÂËùÔËÓõĻ·¾³ÔÚLinux
2.4.21-4.ELsmp(Red Hat Linux 3.2.3-20)£¬Apache/2.2.8£¬gcc version 3.2.3
20030502£¬PHP 5.2.5 (cli)£¬Zend Engine v2.2.0ϽøÐС£
Ò»¡¢Ç°ÑÔ
ÒÔǰд¹ýһЩʹÓÃCÓïÑÔÀ´À©Õ¹PHPµÄÓ¦ÓÃ[1
]
¡£ÔÚÌÔ±¦Ê¹ÓÃC++×öPHPµÄÀ©Õ¹×öÏîÄ¿µÄ¹ý³ÌÖУ¬Óöµ½ÁËһЩÎÊÌ⣬´ÓGoogleÖвéÕÒ£¬Ê¹ÓÃC++À´¿ª·¢PHPµÄÖÐÎÄÎÄÕÂÉÙÖ®ÓÖÉÙ£¬¶øÇÒûÓÐÒ»¸öÊÖ²áÀ´¸æËßÓû§Ôõôдm4[2
]
Îļþ£¬ÔõôʹÓÃzend[3
]
ÒýÇæµÄÒ»Ì×apiº¯ÊýȥдÏà¹ØPHPµÄ½Ó¿Ú£¬ÕâÀï¾ÍÔõôÓÃC++ÓïÑÔÀ´¿ª·¢PHPµÄһЩÐĵýéÉܸø´ó¼Ò£¬Ï£ÍûÓÐÐÄÈËÄܹ»ÓÐËùÊÕ»ñ£»
¶þ¡¢ÎªÊ²Ã´ÒªÓÃC++¿ª·¢PHP
ʹÓÃC++±ÈÓÃCÓïÑÔ¿ª·¢PHPÖ÷ÒªÓÐ2¸öºÃ´¦£º
ʹÓÃC++Äܹ»ºÜ·½±ãµÄ²Ù×÷stringÀàÐÍ£¬±¾ÉíµÄһЩÈÝÆ÷ºÍÄ£°å[4
]
¡¢ÒÔ¼°Ãæ¶Ô¶ÔÏóµÄ¹¦ÄÜÈÿª·¢ÕßÄܹ»½ÚÊ¡´óÁ¿¿ª·¢µÄʱ¼ä£¬ÕâÊDZȽÏÖØÒªµÄÒ»µã£»
C++¿ÉÒÔÖ±½ÓʹÓÃCµÄ¿â£¬Ö»ÐèÒªextern "C&quo ......
´ËƪÎÄÕÂ×¼±¸·Ö2¸ö²¿·ÖÀ´½²Êö£º
µÚÒ»²¿·ÖÖ÷ÒªÏêϸ½²ÊöÒ»ÏÂÔõô¹¹½¨Ò»¸öÍê³ÉµÄC++Ó¦ÓÃÀ©Õ¹Ä£¿é£»
µÚ¶þ²¿·ÖÖ÷Òª½²ÊöÔÚPHP¼°Zend¿ò¼ÜÏÂÔõôʹÓÃZend APIºÍC++ÓïÑÔÀ´ÊµÏÖ×Ô¼ºËùÒªµÄ¹¦ÄÜÒÔ¼°ÏîÄ¿µÄ¿ª·¢£»
´ËƪÎÄÕÂËùÔËÓõĻ·¾³ÔÚLinux
2.4.21-4.ELsmp(Red Hat Linux 3.2.3-20)£¬Apache/2.2.8£¬gcc version 3.2.3
20030502£¬PHP 5.2.5 (cli)£¬Zend Engine v2.2.0ϽøÐС£
Ò»¡¢Ç°ÑÔ
ÒÔǰд¹ýһЩʹÓÃCÓïÑÔÀ´À©Õ¹PHPµÄÓ¦ÓÃ[1
]
¡£ÔÚÌÔ±¦Ê¹ÓÃC++×öPHPµÄÀ©Õ¹×öÏîÄ¿µÄ¹ý³ÌÖУ¬Óöµ½ÁËһЩÎÊÌ⣬´ÓGoogleÖвéÕÒ£¬Ê¹ÓÃC++À´¿ª·¢PHPµÄÖÐÎÄÎÄÕÂÉÙÖ®ÓÖÉÙ£¬¶øÇÒûÓÐÒ»¸öÊÖ²áÀ´¸æËßÓû§Ôõôдm4[2
]
Îļþ£¬ÔõôʹÓÃzend[3
]
ÒýÇæµÄÒ»Ì×apiº¯ÊýȥдÏà¹ØPHPµÄ½Ó¿Ú£¬ÕâÀï¾ÍÔõôÓÃC++ÓïÑÔÀ´¿ª·¢PHPµÄһЩÐĵýéÉܸø´ó¼Ò£¬Ï£ÍûÓÐÐÄÈËÄܹ»ÓÐËùÊÕ»ñ£»
¶þ¡¢ÎªÊ²Ã´ÒªÓÃC++¿ª·¢PHP
ʹÓÃC++±ÈÓÃCÓïÑÔ¿ª·¢PHPÖ÷ÒªÓÐ2¸öºÃ´¦£º
ʹÓÃC++Äܹ»ºÜ·½±ãµÄ²Ù×÷stringÀàÐÍ£¬±¾ÉíµÄһЩÈÝÆ÷ºÍÄ£°å[4
]
¡¢ÒÔ¼°Ãæ¶Ô¶ÔÏóµÄ¹¦ÄÜÈÿª·¢ÕßÄܹ»½ÚÊ¡´óÁ¿¿ª·¢µÄʱ¼ä£¬ÕâÊDZȽÏÖØÒªµÄÒ»µã£»
C++¿ÉÒÔÖ±½ÓʹÓÃCµÄ¿â£¬Ö»ÐèÒªextern "C&quo ......
´ËƪÎÄÕÂ×¼±¸·Ö2¸ö²¿·ÖÀ´½²Êö£º
µÚÒ»²¿·ÖÖ÷ÒªÏêϸ½²ÊöÒ»ÏÂÔõô¹¹½¨Ò»¸öÍê³ÉµÄC++Ó¦ÓÃÀ©Õ¹Ä£¿é£»
µÚ¶þ²¿·ÖÖ÷Òª½²ÊöÔÚPHP¼°Zend¿ò¼ÜÏÂÔõôʹÓÃZend APIºÍC++ÓïÑÔÀ´ÊµÏÖ×Ô¼ºËùÒªµÄ¹¦ÄÜÒÔ¼°ÏîÄ¿µÄ¿ª·¢£»
´ËƪÎÄÕÂËùÔËÓõĻ·¾³ÔÚLinux
2.4.21-4.ELsmp(Red Hat Linux 3.2.3-20)£¬Apache/2.2.8£¬gcc version 3.2.3
20030502£¬PHP 5.2.5 (cli)£¬Zend Engine v2.2.0ϽøÐС£
Ò»¡¢Ç°ÑÔ
ÒÔǰд¹ýһЩʹÓÃCÓïÑÔÀ´À©Õ¹PHPµÄÓ¦ÓÃ[1
]
¡£ÔÚÌÔ±¦Ê¹ÓÃC++×öPHPµÄÀ©Õ¹×öÏîÄ¿µÄ¹ý³ÌÖУ¬Óöµ½ÁËһЩÎÊÌ⣬´ÓGoogleÖвéÕÒ£¬Ê¹ÓÃC++À´¿ª·¢PHPµÄÖÐÎÄÎÄÕÂÉÙÖ®ÓÖÉÙ£¬¶øÇÒûÓÐÒ»¸öÊÖ²áÀ´¸æËßÓû§Ôõôдm4[2
]
Îļþ£¬ÔõôʹÓÃzend[3
]
ÒýÇæµÄÒ»Ì×apiº¯ÊýȥдÏà¹ØPHPµÄ½Ó¿Ú£¬ÕâÀï¾ÍÔõôÓÃC++ÓïÑÔÀ´¿ª·¢PHPµÄһЩÐĵýéÉܸø´ó¼Ò£¬Ï£ÍûÓÐÐÄÈËÄܹ»ÓÐËùÊÕ»ñ£»
¶þ¡¢ÎªÊ²Ã´ÒªÓÃC++¿ª·¢PHP
ʹÓÃC++±ÈÓÃCÓïÑÔ¿ª·¢PHPÖ÷ÒªÓÐ2¸öºÃ´¦£º
ʹÓÃC++Äܹ»ºÜ·½±ãµÄ²Ù×÷stringÀàÐÍ£¬±¾ÉíµÄһЩÈÝÆ÷ºÍÄ£°å[4
]
¡¢ÒÔ¼°Ãæ¶Ô¶ÔÏóµÄ¹¦ÄÜÈÿª·¢ÕßÄܹ»½ÚÊ¡´óÁ¿¿ª·¢µÄʱ¼ä£¬ÕâÊDZȽÏÖØÒªµÄÒ»µã£»
C++¿ÉÒÔÖ±½ÓʹÓÃCµÄ¿â£¬Ö»ÐèÒªextern "C&quo ......
ÔÚLinuxÏÂÓиö½Ðlm_sensorsµÄÈí¼þ¿ÉÒÔ°ïÖúÎÒÃÇÀ´¼à¿ØÖ÷°å£¬CPUµÄ¹¤×÷µçѹ£¬·çÉÈתËÙ¡¢Î¶ȵÈÊý¾Ý¡£ÕâЩÊý¾ÝÎÒÃÇͨ³£ÔÚÖ÷°åµÄ
BIOSÒ²¿ÉÒÔ¿´µ½¡£µ±ÎÒÃÇ¿ÉÒÔÔÚ»úÆ÷ÔËÐеÄʱºòͨ¹ýlm_sensorsËæÊ±À´¼à²â×ÅCPUµÄζȱ仯£¬¿ÉÒÔÔ¤·ÀºÇ±£»¤ÒòΪCPU¹ýÈȶø»áÉÕµô¡£
1. °²×°lm_sensors
ÏÖÔÚ»ù±¾ÉÏÿ¸öLinux¶¼ÒѾÓÐlm_sensors°üÁË£¬ÎÒÃÇÖ÷Òª°²×°Á˾ͿÉÒÔÁË¡£»òÕßÎÒÃÇÒ²¿ÉÒÔͨ¹ýÔ´ÎļþÀ´×Ô¼º±àÒë¡£
1£©ÔÚFC£¬RH£¬ CENTOSÏ£¬ÓÃrpm£º
[root@securitycn ~]# rpm -ivh lm_sensors-2.10.0-3.1.i386.rpm
3£©±àÒëÔ´Îļþ°²×°
ÎÒÃÇ¿ÉÒÔͨ¹ý£ºÕâÀïÏÂÔØ
Ô´Îļþ
ÕâÀïÎÒÃÇҪעÒâµÄÎÊÌâÊÇÒªÏȰ²×°libsysfs¿â£¬ÊÇSysfsutils£¬Sysfsutils£develÈí¼þ
tar xzvf lm-sensors-xxx.tar.gz
make user
make user_install testing
ÏÂÃæÎÒÃǾÍÓÃһЩ¼òµ¥µÄÃüÁîÀ´ÀûÓÃlm_sensorsÀ´µÃµ½CPUµÄÊý¾Ý¡£ÎÒÃÇÒªÓÃrootµÄÉí·ÝÀ´£º
sensors-detect£¬È»ºóËü»á×Ô¶¯ËÑË÷Ö÷°åÉϵÄchipsetºÍÏàÓ¦µÄdriver£¬ÎÒÃÇÈ«²¿´ðYES¾Í¿ÉÒÔÁË
[root@securitycn ~]# sensors-detect
# sensors-detect revision 1.413 £¨2006/01/19 20£º28£º00£©
This program will ......