linux É豸½ÚµãÏêϸ½éÉÜ
LinuxÉ豸Îļþ¼ò½é
LinuxÉ豸Îļþ¼ò½é
¸ÅÊö
É豸¹ÜÀíÊÇlinuxÖбȽϻù´¡µÄ¶«Î÷£¬µ«ÊÇÓÉÓÚLinuxÖÇÄ̶ܳȵÄÔ½À´Ô½¸ß£¬UdevµÄʹÓÃÔ½À´Ô½¹ã·º£¬Ê¹µÃÔ½À´Ô½¶àµÄLinuxÐÂÓû§¶Ô /dev Ŀ¼ÏµĶ«Î÷±äµÃ²»ÔÙÊìϤ¡£ÓÐʱºòÓö¼ûÎÊÌâ¾Í»á±äµÃ×¥¿ñ¡£
Linux ÖеÄÉ豸ÓÐ2ÖÖÀàÐÍ£º×Ö·ûÉ豸(ÎÞ»º³åÇÒÖ»ÄÜ˳Ðò´æÈ¡)¡¢¿éÉ豸(Óлº³åÇÒ¿ÉÒÔËæ»ú´æÈ¡)¡£Ã¿¸ö×Ö·ûÉ豸ºÍ¿éÉ豸¶¼±ØÐëÓÐÖ÷¡¢´ÎÉ豸ºÅ£¬Ö÷É豸ºÅÏàͬµÄÉ豸ÊÇͬÀàÉ豸(ʹÓÃͬһ¸öÇý¶¯³ÌÐò)¡£ÕâЩÉ豸ÖУ¬ÓÐЩÉ豸ÊǶÔʵ¼Ê´æÔÚµÄÎïÀíÓ²¼þµÄ³éÏ󣬶øÓÐЩÉ豸ÔòÊÇÄÚºË×ÔÉíÌṩµÄ¹¦ÄÜ(²»ÒÀÀµÓÚÌØ¶¨µÄÎïÀíÓ²¼þ£¬ÓÖ³ÆÎª"ÐéÄâÉ豸")¡£Ã¿¸öÉ豸ÔÚ /dev Ŀ¼Ï¶¼ÓÐÒ»¸ö¶ÔÓ¦µÄÎļþ(½Úµã)¡£¿ÉÒÔͨ¹ý cat /proc/devices ÃüÁî²é¿´µ±Ç°ÒѾ¼ÓÔØµÄÉ豸Çý¶¯³ÌÐòµÄÖ÷É豸ºÅ¡£ÄÚºËÄܹ»Ê¶±ðµÄËùÓÐÉ豸¶¼¼Ç¼ÔÚÔÂëÊ÷Ï嵀 Documentation/devices.txt ÎļþÖС£ÔÚ /dev Ŀ¼Ï³ýÁË×Ö·ûÉ豸ºÍ¿éÉ豸½ÚµãÖ®Í⻹ͨ³£»¹»á´æÔÚ£ºFIFO¹ÜµÀ¡¢Socket¡¢Èí/Ó²Á¬½Ó¡¢Ä¿Â¼¡£ÕâЩ¶«Î÷ûÓÐÖ÷/´ÎÉ豸ºÅ¡£
É豸Îļþ
LinuxÄÚºËËùÄÜʶ±ðµÄËùÓÐÉ豸¶¼¼Ç¼ÔÚ
http://www.lanana.org/docs/device-list/
¶øÄÚºËÔÂëÊ÷ÖÐµÄ Documentation/devices.txt ¿ÉÄܲ»ÊÇ×îа汾¡£
Á˽âÕâЩÉ豸µÄ×î»ù±¾ÒªÇó¾ÍÊǶÔÿ¸öÉ豸ÎļþµÄº¬ÒåÁËÈçÖ¸ÕÆ£¬ÏÂÃæÁгö³£¼ûµÄÉ豸ÎļþÒÔ¼°ÏàÓ¦µÄº¬Òå(±È½ÏƫƧµÄ¾ÍÊ¡ÂÔÁË)¡£
----------------------------------------------------------------------
Ö÷É豸ºÅ É豸ÀàÐÍ
´ÎÉ豸ºÅ=ÎļþÃû ¼òҪ˵Ã÷
----------------------------------------------------------------------
0 δÃüÃûÉ豸(ÀýÈ磺¹ÒÔØµÄ·ÇÉ豸)
0 = Ϊ¿ÕÉ豸ºÅ±£Áô
1 char ÄÚ´æÉ豸
1 = /dev/mem Ö±½Ó´æÈ¡ÎïÀíÄÚ´æ
2 = /dev/kmem ´æÈ¡¾¹ýÄÚºËÐéÄâÖ®ºóµÄÄÚ´æ
3 = /dev/null ¿ÕÉ豸¡£ÈκÎдÈë¶¼½«±»Ö±½Ó¶ªÆú£¬ÈκζÁÈ¡¶¼½«µÃµ½EOF¡£
4 = /dev/port ´æÈ¡ I/O ¶Ë¿Ú
5 = /dev/zero Áã×Ö½ÚÔ´£¬Ö»ÄܶÁÈ¡µ½ÎÞÏÞ¶àµÄÁã×Ö½Ú¡£
7 = /dev/full ÂúÉ豸¡£ÈκÎдÈë¶¼½«Ê§°Ü£¬²¢°ÑerrnoÉèΪENOSPCÒÔ±íʾûÓÐÊ£Óà¿Õ¼ä¡£
8 = /dev/random Ëæ»úÊý·¢ÉúÆ÷¡£ÍêÈ«ÓÉÓû§µÄÊäÈëÀ´²úÉúËæ»úÊý¡£
Èç¹ûÓû§Í£Ö¹ËùÓж¯×÷£¬ÔòÍ£Ö¹²úÉúеÄËæ»úÊý¡£
9 = /dev/urandom ¸ü¿ì£¬µ«ÊDz»¹»°²È«µÄËæ»úÊý·¢ÉúÆ÷¡£¾¡¿ÉÄÜÓÉÓû§µÄÊäÈëÀ´²úÉúËæ»úÊý£¬
Èç¹ûÓû§Í£Ö¹ËùÓж¯×÷£¬Ôò°
Ïà¹ØÎĵµ£º
»ùÓÚI/O RegionµÄ²Ù×÷º¯Êý__XXX_region()£¬LinuxÔÚÍ·Îļþinclude/linux/ioport.hÖж¨ÒåÁËÈý¸ö¶ÔI/OÄÚ´æ×ÊÔ´½øÐвÙ×÷µÄºê£º
¡¡¡¡¢Ùrequest_mem_region()ºê£¬ÇëÇó·ÖÅäÖ¸¶¨µÄI/OÄÚ´æ×ÊÔ´¡£
¡¡¡¡¢Úcheck_ mem_region()ºê£¬¼ì²éÖ¸¶¨µÄI/OÄÚ´æ×ÊÔ´ÊÇ·ñÒѱ»Õ¼Óá£
¡¡¡¡¢Ûrelease_ mem_region()ºê£¬ÊÍ·ÅÖ¸¶¨µÄI/OÄÚ´æ×ÊÔ ......
×÷Õߣºsixth
Ò»¡¢LinuxµÄÆô¶¯Á÷³Ì
1. ´ÓBIOSµ½KERNEL
BIOS×Ô¼ì£>MBR(GRUB)£>KERNEL£>KERNEL×Ô½âѹ£>Äں˳õʼ»¯£>ÄÚºËÆô¶¯
2. ÄÚºËÆô¶¯£º´´½¨1££½ø³Ì²¢Ö´ÐУ¬ÓÉËü´´½¨Èô¸ÉÄÚºËỊ̈߳¨kernel thread£©£¬È»ºó×°Èë²¢Ö´ÐгÌÐò/sbin/init£¨±ä³ÉÒ»¸öÓû§½ø³Ì£©¡£´Ëºó£¬init¸ù¾Ý/etc/initt ......
Ò»°ãÔÚlinuxÉϲ¿ÊðÏîĿʱ£¬Ö±½Ó°ÑÔÚwindowÉϱàÒë³öÀ´µÄjarÎļþ²¿ÊðÉÏÈ¥£¬ÔÙÔËÐоͿÉÒÔÁË£¬µ«ÊǽñÌìÅöµ½µÄÎÊÌâ £º
Exception in thread "main" java.lang.NoClassDefFoundError: DataServer
at gnu.java.lang.MainThread.run(libgcj.so.7rh)
Caused by: java.lang.ClassNotFoundException: DataServer ......
ÏñLinuxÄÚºËÕâÑùÅÓ´ó¶ø¸´ÔӵijÌÐò¿´ÆðÀ´È·ÊµÈÃÈËÍû¶øÉú磬ËüÏóÒ»¸öºÜ´óµÄÇò£¬Ã»ÓÐÆðµãºÍÖյ㡣ÔÚ¶ÁÔ´´úÂëµÄ¹ý³ÌÖУ¬Äã»áÓöµ½ÕâÑùµÄÇé¿ö£¬µ±¶Áµ½Äں˵Äijһ²¿·ÖʱÓÖ»áÉæ¼°µ½ÆäËü¸ü¶àµÄÎļþ£¬µ±·µ»Øµ½ÔÀ´µÄµØ·½Ïë¼ÌÐøÍù϶Áʱ£¬ÓÖÍüÁËÔÀ´¶ÁµÄÄÚÈÝ¡£ÔÚinternetÉÏ£¬ºÜ¶àÈËΪ´Ë¸¶³öÁ˺ܴóµÄŬÁ¦£¬ÖÆ×÷³öÁËÔ´´úÂëµ¼º½Æ÷£ ......
KS2009: How Google uses Linux
By Jonathan Corbet
October 21, 2009
LWN's 2009 Kernel Summit coverage
There may be no single organization which runs more Linux systems than Google. But the kernel development community knows little about how Google uses Linux and what sort of problems are ......