±¾ÎļòÒª½éÉÜÁËJNIµ÷Óù淶£¬¼°³£Óú¯Êý¡£²¢Í¨¹ý¾ßÌåʾÀý³ÌÐòչʾÁËʵÏÖÒ»¸ö±¾µØµ÷ÓõĻù±¾²½Öè¡£
ÒýÑÔ
Java
µÄ³öÏÖ¸ø´ó¼Ò¿ª·¢´øÀ´µÄ¼«´óµÄ·½±ã¡£µ«ÊÇ£¬Èç¹ûÎÒÃÇÓдóÁ¿ÔÓеľ¹ý¹ã·º²âÊԵķÇJava´úÂ룬½«ËüÃÇÈ«²¿ÓÃJavaÀ´ÖØÐ´£¬¿ÖÅÂ»á´øÀ´¾Þ´óµÄ¹¤×÷Á¿ºÍ³¤
ÆÚµÄ²âÊÔ£»Èç¹ûÎÒÃǵÄÓ¦ÓÃÖÐÐèÒª·ÃÎʵ½Ìض¨µÄÉ豸£¬ÉõÖÁÊǽö·ûºÏ¹«Ë¾ÄÚ²¿ÐÅÏ¢½»»¥¹æ·¶µÄÉ豸£¬»òij¸öÌØ¶¨µÄ²Ù×÷ϵͳ²ÅÓеÄÌØÐÔ£¬Java¾ÍÏÔµÃÓÐЩÁ¦²»´Ó
ÐÄÁË¡£Ãæ¶ÔÕâЩÎÊÌ⣬Sun¹«Ë¾ÔÚJDK1.0ÖоͶ¨ÒåÁËJNI¹æ·¶£¬Ëü¹æ¶¨ÁËJavaÓ¦ÓóÌÐò¶Ô±¾µØ·½·¨µÄµ÷ÓùæÔò¡£
ʵÏÖ²½Öè¼°Ïà¹Øº¯ÊýʹÓÃ
±¾ÎĽ«Ò»²½²½ËµÃ÷ÔÚLinuxƽ̨ÏÂÈçºÎʵÏÖ±¾µØ¹²Ïí¿âÓëJavaÐͬ¹¤×÷¡£Hello World³ÌÐòÊÇĿǰ±ê×¼µÄÈëÃŵÚÒ»²½£¬ÄÇô£¬ÎÒÒ²ÒÔÀàËÆµÄÓ¦ÓÃ×îΪÑùÀý¡£
µÚÒ»²½£¬¶¨ÒåÒ»¸ö Java Àà -- Hello. ËüÌṩSayHello·½·¨£º
´ËʱӦעÒâÁ½µã£º
1.ΪҪʹÓõÄÿ¸ö±¾µØ·½·¨±àд±¾µØ·½·¨ÉùÃ÷£¬ÆäÉùÃ÷·½Ê½ÓëÆÕͨ Java ·½·¨½Ó¿Úûʲô²»Í¬£¬Ö»ÊDZØÐëÖ¸¶¨ native ¹Ø¼ü×Ö£¬ÈçÏÂËùʾ£º
public native void SayHello(String strName);
ÔÚÕâ¸öº¯ÊýÖУ¬ÎÒÃǽ«¸ù¾Ý´«½øµÄÈËÃû£¬ÏòijÈËÎʺá£
2.±ØÐëÏÔʽµØ¼ÓÔØ±¾µ ......
linuxϵͳrootÓû§¿ÉÇ¿ÖÆÌßÖÆÆäËüµÇ¼Óû§£¬
Ê×ÏÈÒÔrootµÇ¼ÒÔ±ã²é¿´È«²¿µÄÔÚÏßÓû§ÐÅÏ¢£¬¿ÉÓÃwÃüÁî²é¿´µÇ¼Óû§ÐÅÏ¢
Ç¿ÖÆÌßÈËÃüÁî¸ñʽ£ºpkill -kill -t tty
½âÊÍ£º
pkill -kill -t ¡¡ÌßÈËÃüÁî
tty¡¡ËùÌßÓû§µÄTTY
ÈçÉÏÌß³öliuÓû§µÄÃüÁîΪ£º pkill -kill -t pts/1
......
¸ú×ÙϵͳµÄÊä³ö:
strace
ÀýÈç: strace -p 9034 -x -s 2048
-p ½ø³ÌºÅ
-x ²»ÊÇASCIIµÄÊä³öÓÃHEX±íʾ
-s ÿ´ÎÊä³öµÄ×î´óµÄ×Ö·ûÁ¿
ÓÃ;: ¿ÉÒÔÓÃÀ´¸ú×ÙÓ¦ÓóÌÐòµ÷ÓÃϵͳAPIµÄÊä³ö/ÊäÈë Çé¿ö,±È·½Ëµ:´®¿ÚµÄÊä³ö/ÊäÈëÇé¿ö ......
1. ǰÑÔ
ÒÔ̫ͷÖгýÁË6×Ö½ÚÄ¿µÄMACµØÖ·¡¢6×Ö½ÚÔ´MACµØÖ·Í⣬»¹ÓÐÁ½×Ö½ÚµÄÒÔ̫֡ÀàÐÍÖµ£¬ÈçIPv4Ϊ0x0800£¬ARPΪ0x0806µÈ£¬Íø¿¨Çý¶¯ÊÕµ½ÒÔ̫֡ºóͨ¹ý½Ó¿Úº¯Êýnetif_receive_skb()(netif_rxʵ¼Ê×îºóÒ²Êǵ÷ÓÃnetif_receive_skb)½»µ½Éϲ㣬¶øÕâ¸ö½Ó¿Úº¯Êý¾ÍÍê³É¶ÔÒÔ̫֡ÀàÐ͵ÄÇø·Ö£¬½»µ½²»Í¬µÄÐÒé´¦Àí³ÌÐò¡£Èç¹ûÏë×Ô¼º±àдijһÒÔÌ«ÀàÐÍÖ¡µÄ´¦Àí³ÌÐò£¬ÐèÒª×Ô¼ºÌí¼ÓÏàÓ¦µÄ
ÒÔÏÂLinuxÄں˴úÂëΪ2.6.17.11¡£
2. Êý¾Ý½á¹¹
ÿÖÖÐÒé¶¼Òª¶¨ÒåÒ»¸öpacket_type½á¹¹£¬Òýµ¼½øÈëÏà¹ØµÄÐÒéÊý¾Ý´¦Àíº¯Êý£¬ËùÓнڵã×é³ÉÒ»¸öÁ´±í(HASHÁ´±í)¡£
/* include/linux/netdevice.h */
struct packet_type {
__be16 type; /* This is really htons(ether_type). */
struct net_device *dev; /* NULL is wildcarded here */
int (*func) (struct sk_buff *,
struct net_device *,
struct packet_type *,
struct net_device *);
void *af_packet_priv;
&n ......
Ubuntu9.10 ¾ÙÀý£¨ÒòΪËü·½±ã£¬N¶à¶«Î÷Ò»Ö±½ÓÔÚÏß°²×°£¬Ê¡µÃ±àÒëÁË£©£¬ÆäËûlinux»ù±¾Ïàͬ£¨²»Í¬µÄ¾ÍÊÇÓÐЩҪ½øÐÐÔ´Âë°²×°£¬µ«Óõ½µÄÈí¼þÊÇÒ»ÑùµÄ£©£¬Õû¸ö°²×°ÎÒÒÔ¾×ö³É½Å±¾·Å·½±ãÏÂÔØ°²×°
°²×°ies4linuxÖв¿·Ö²Î¿¼×Ô£ºhttp://hi.baidu.com/unknown379/blog/item/df70c3ef54742d31adafd506.html
Éæ¼°µÄÈí¼þ
1¡¢wine£¬ÊÇÒ»個ÔÚÈÝ許ÀàUnix²Ù×÷ϵ統ÔÚX Window SystemÏÂÔËÐÐMicrosoft Windows³ÌÐòµÄÈí¼þ£¬¿ÉÒÔÈÏΪËùÓеÄwindows³ÌÐòÊÇÔËÐÐÓÚwineÄ£ÄâµÄ»·¾³ÖУ»
2¡¢winetricks£¬ÕâÊÇÒ»¸öWindowsÓйؿâºÍÈí¼þµÄС³ÌÐò£¬ÒÔºóͨ¹ýwinetricks£¬·½±ã°²×°windowsϵÄdll¡£
3¡¢
4¡¢cabextract ÊÇÓÃÓÚ΢ÈíµÄ .cab ѹËõ/½âѹÎļþ ......
ÔÎĵØÖ·£ºhttp://www.wangzhongyuan.com/archives/487.html
ÒÔÏÂÊÇÒ»¸öLinux/UnixÏÂÏÔʾijһĿ¼ÏÂÎļþÁбíµÄC³ÌÐò£¬Ï൱ÓÚ×î»ù±¾µÄlsÃüÁîµÄ¹¦ÄÜ£¬ÏÔʾµÄÄÚÈݱ¨¸æ¸ÃĿ¼ÏµÄ×ÓĿ¼ÒÔ¼°ÎļþÃû:
#include <sys/types.h>
#include <dirent.h>
#include <stdio.h>
#include <errno.h>
int main(int argc,char *argv[])
{
DIR *dp;
struct dirent *dirp;
int n=0;
if (argc!=2)
{
printf("a single argument is required\n");
exit(0);
}
if((dp=opendir(argv[1]))==NULL)
printf("can't open %s",argv[1]);
while (((dirp=readdir(dp))!=NULL) && (n<=50))
{
if (n % 1 == 0) printf("\n");
n++;
printf("%10s ",dirp->d_name);
}
printf("\n");
closedir(dp);
exit(0);
}
Èç¹ûÖ»ÊÇÏÔʾ¸ÃĿ¼ÏµÄ×ÓĿ¼Ãû£¬ÔòÐèҪʹÓÃÈçϳÌÐò£¨ÆäÖл¹°üÀ¨ÁËÒ»¸ö¶ÔÓÚ×ÓĿ¼ÃûµÄðÅÝÅÅÐò£©£º
#include <sys/types.h>
#include <sys/stat.h>
#include <dirent.h>
......