Linux PCIÇý¶¯Ä£ÐÍ
PCIÊÇÍâΧÉ豸»¥Á¬£¨Peripheral Component Interconnect£©µÄ¼ò³Æ£¬×÷ΪһÖÖͨÓõÄ×ÜÏß½Ó¿Ú±ê×¼£¬ËüÔÚĿǰµÄ¼ÆËã»úϵͳÖеõ½Á˷dz£¹ã·ºµÄÓ¦Óá£PCIÌṩÁËÒ»×éÍêÕûµÄ×ÜÏ߽ӿڹ淶£¬ÆäÄ¿µÄÊÇÃèÊöÈçºÎ½«¼ÆËã»úϵͳÖеÄÍâΧÉ豸ÒÔÒ»Öֽṹ»¯ºÍ¿É¿Ø»¯µÄ·½Ê½Á¬½ÓÔÚÒ»Æð¡£
PCI½«¼ÆËã»úϵͳÖеÄ×ÜÏß×ÓϵͳÓë´æ´¢×ÓϵͳÍêÈ«µØ·Ö¿ª£¬CPUͨ¹ýÒ»¿é³ÆÎªPCIÇÅ£¨PCI-Bridge£©µÄÉ豸À´Íê³Éͬ×ÜÏß×ÓϵͳµÄ½»»¥£¬¾¡¹ÜĿǰPCIÉ豸´ó¶à²ÉÓÃ32λÊý¾Ý×ÜÏߣ¬µ«PCI¹æ·¶ÖÐÒѾ¸ø³öÁË64λµÄÀ©Õ¹ÊµÏÖ¡£
£¨1£©¹Ø¼üÊý¾Ý½á¹¹
PCIÉ豸ÉÏÓÐÈýÖÖµØÖ·¿Õ¼ä£ºPCIµÄI/O¿Õ¼ä¡¢PCIµÄ´æ´¢¿Õ¼äºÍPCIµÄÅäÖÿռ䡣CPU¿ÉÒÔ·ÃÎÊPCIÉ豸ÉϵÄËùÓеØÖ·¿Õ¼ä£¬ÆäÖÐI/O¿Õ¼äºÍ´æ´¢¿Õ¼äÌṩ¸øÉ豸Çý¶¯³ÌÐòʹÓ㬶øÅäÖÿռäÔòÓÉLinuxÄÚºËÖеÄPCI³õʼ»¯´úÂëʹÓá£ÄÚºËÔÚÆô¶¯Ê±¸ºÔð¶ÔËùÓÐPCIÉ豸½øÐгõʼ»¯£¬ÅäÖúÃËùÓеÄPCIÉ豸£¬°üÀ¨ÖжϺÅÒÔ¼°I/O»ùÖ·£¬²¢ÔÚÎļþ/proc/pciÖÐÁгöËùÓÐÕÒµ½µÄPCIÉ豸£¬ÒÔ¼°ÕâЩÉ豸µÄ²ÎÊýºÍÊôÐÔ¡£
A£¬pci_driver£ºÕâ¸öÊý¾Ý½á¹¹ÔÚÎļþinclude/linux/pci.hÀÕâÊÇLinuxÄں˰汾2.4Ö®ºóΪÐÂÐ͵ÄPCIÉ豸Çý¶¯³ÌÐòËùÌí¼ÓµÄ£¬ÆäÖÐ×îÖ÷ÒªµÄÊÇÓÃÓÚʶ±ðÉ豸µÄid_table½á¹¹£¬ÒÔ¼°ÓÃÓÚ¼ì²âÉ豸µÄº¯Êýprobe( )ºÍÐ¶ÔØÉ豸µÄº¯Êýremove( )¡£
B£¬pci_dev£ºÕâ¸öÊý¾Ý½á¹¹Ò²ÔÚÎļþinclude/linux/pci.hÀËüÏêϸÃèÊöÁËÒ»¸öPCIÉ豸¼¸ºõËùÓеÄÓ²¼þÐÅÏ¢£¬°üÀ¨³§ÉÌID¡¢É豸ID¡¢¸÷ÖÖ×ÊÔ´µÈ¡£
£¨2£© »ù±¾¿ò¼Ü
ÔÚÓÃÄ£¿é·½Ê½ÊµÏÖPCIÉ豸Çý¶¯³ÌÐòʱ£¬Í¨³£ÖÁÉÙҪʵÏÖÒÔϼ¸¸ö²¿·Ö£º³õʼ»¯É豸ģ¿é¡¢É豸´ò¿ªÄ£¿é¡¢Êý¾Ý¶ÁдºÍ¿ØÖÆÄ£¿é¡¢Öжϴ¦ÀíÄ£¿é¡¢É豸ÊÍ·ÅÄ£¿é¡¢Éè±¸Ð¶ÔØÄ£¿é¡£ÏÂÃæ¸ø³öÒ»¸öµäÐ͵ÄPCIÉ豸Çý¶¯³ÌÐòµÄ»ù±¾¿ò¼Ü£¨Ö»ÁгöÖ÷ÒªÒýÓã©¡£
/* Ö¸Ã÷¸ÃÇý¶¯³ÌÐòÊÊÓÃÓÚÄÄһЩPCIÉ豸 */
static struct pci_device_id demo_pci_tbl [] __initdata = {
{PCI_VENDOR_ID_DEMO, PCI_DEVICE_ID_DEMO, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEMO},
{0,}
};
/* ¶ÔÌØ¶¨PCI
Ïà¹ØÎĵµ£º
¶ÔÓÚLinux µÄϵͳ°²È«À´Ëµ£¬ÈÕÖ¾ÎļþÊǼ«ÆäÖØÒªµÄ¹¤¾ß¡£ÏµÍ³¹ÜÀíÔ±¿ÉÒÔʹÓÃlogrotate ³ÌÐòÓÃÀ´¹ÜÀíϵͳÖеÄ×îеÄʼþ£¬¶ÔÓÚLinux µÄϵͳ°²È«À´Ëµ£¬ÈÕÖ¾ÎļþÊǼ«ÆäÖØÒªµÄ¹¤¾ß¡£ÏµÍ³¹ÜÀíÔ±¿ÉÒÔʹÓÃlogrotate ³ÌÐòÓÃÀ´¹ÜÀíϵͳÖеÄ×îеÄʼþ¡£logrotate »¹¿ÉÒÔÓÃÀ´±¸·ÝÈÕÖ¾Îļþ£¬±¾Æª½«Í¨¹ýÒÔϼ¸²¿·ÖÀ´½éÉÜ
&n ......
ÄÚºËÖÐËùÓÐÒÑ·ÖÅäµÄ×Ö·ûÉ豸±àºÅ¶¼¼Ç¼ÔÚÒ»¸öÃûΪ chrdevs
É¢ÁбíÀï¡£¸ÃÉ¢ÁбíÖеÄÿһ¸öÔªËØÊÇÒ»¸ö char_device_struct ½á¹¹£¬ËüµÄ¶¨ÒåÈçÏ£º
static struct char_device_struct {
struct char_device_struct *next; // Ö¸ÏòÉ¢ÁгåÍ»Á´±íÖÐµÄ ......
2.1 °²×°JDK
2.1.1 ¼ì²éLinux×Ô´øJDK
ÃüÁrpm –q jdk
Èç¹û°²×°Ç¿ÖÆÐ¶ÔØ
²é¿´ÒѾ°²×°µÄjdk£º
# rpm -qa|grep jdk ← ²é¿´jdkµÄÐÅÏ¢»òÖ±½ÓÖ´ÐÐ
#rpm -qa|grep ......
ÓÉÓÚwindowsÖÐËùÓÃÍ·Îļþ"windows.h"ÔÚlinuxϲ»¿ÉÓ㬹Ê×Ô¼º½¨Á¢Ïà¹ØµÄÍ·Îļþ£¬¶¨ÒåbmpÎļþµÄ´æ´¢½á¹¹¼°¸ñʽ
´úÂëÈçÏ£º
/* linux_bmp.h*/
/*
* Copyright (c)2010 Chris Grant
*
* Win32 USER structures and API
*/
#include <iostream>
typedef struct ......
1.$0, $1, $2,µÈµÈ:λÖòÎÊý,´ÓÃüÁîÐд«µÝ¸ø½Å±¾,»òÕßÊÇ´«µÝ¸øº¯Êý.»òÕ߸³Ö°¸øÒ»¸ö±äÁ¿.
2.$#:ÃüÁîÐлòÕßÊÇλÖòÎÊýµÄ¸öÊý.
3.$*:ËùÓеÄλÖòÎÊý,±»×÷Ϊһ¸öµ¥´Ê.×¢Òâ:"$*"±ØÐë±»""ÒýÓÃ.
4.$@:Óë$*ͬÒå,µ«ÊÇÿ¸ö²ÎÊý¶¼ÊÇÒ»¸ö¶ÀÁ¢µÄ""ÒýÓÃ×Ö´®,Õâ¾ÍÒâζ×ŲÎÊý±»ÍêÕûµØ´«µÝ,²¢Ã»Óб»½âÊͺÍÀ©Õ¹.ÕâÒ²Òâζ×Å,ÿ¸ö²ÎÊýÁбíÖе ......