Õª Òª£º ǶÈëʽ Linux µÄ¿ÉÒÆÖ²ÐÔʹµÃÎÒÃÇ¿ÉÒÔÔÚ¸÷ÖÖµç×Ó²úÆ·ÉÏ¿´µ½ËüµÄÉíÓ°¡£¶ÔÓÚ²»
ͬÌåϵ½á¹¹µÄ´¦ÀíÆ÷À´ËµLinuxµÄÆô¶¯¹ý³ÌÒ²ÓÐËù²»Í¬¡£±¾ÎÄÒÔS3C2410 ARM´¦ÀíÆ÷ΪÀý£¬
Ïêϸ·ÖÎöÁËϵͳÉϵçºó bootloaderµÄÖ´ÐÐÁ÷³Ì¼° ARM LinuxµÄÆô¶¯¹ý³Ì¡£
¹Ø¼ü´Ê£ºARM Linux bootloader Æô¶¯¹ý³Ì
ÖÐͼ·ÖÀàºÅ£ºTP316
1. Òý ÑÔ
Linux ×î³õÊÇÓÉÈðµäºÕ¶ûÐÁ»ù´óѧµÄѧÉú Linus TorvaldsÔÚ1991 Ä꿪·¢³öÀ´µÄ£¬Ö®ºóÔÚ
GNUµÄÖ§³ÖÏ£¬Linux »ñµÃÁ˾޴óµÄ·¢Õ¹¡£ËäÈ» Linux ÔÚ×ÀÃæ PC »úÉÏµÄÆÕ¼°³Ì¶ÈÔ¶²»¼°Î¢
ÈíµÄ Windows ²Ù×÷ϵͳ£¬µ«ËüµÄ·¢Õ¹ËÙ¶ÈÖ®¿ì¡¢Óû§ÊýÁ¿µÄÈÕÒæÔö¶à£¬Ò²ÊÇ΢ÈíËù²»ÄÜÇá
Êӵġ£¶ø½üЩÄêÀ´ Linux ÔÚǶÈëʽÁìÓòµÄѸÃÍ·¢Õ¹£¬¸üÊǸø Linux ×¢ÈëÁËеĻîÁ¦¡£
Ò»¸öǶÈëʽ Linux ϵͳ´ÓÈí¼þ½Ç¶È¿´¿ÉÒÔ·ÖΪËĸö²¿·Ö[1]
£ºÒýµ¼¼ÓÔØ³ÌÐò£¨bootloader£©£¬
Linux Äںˣ¬Îļþϵͳ£¬Ó¦ÓóÌÐò¡£
ÆäÖÐ bootloaderÊÇϵͳÆô¶¯»ò¸´Î»ÒÔºóÖ´ÐеĵÚÒ»¶Î´úÂ룬ËüÖ÷ÒªÓÃÀ´³õʼ»¯´¦ÀíÆ÷¼°
ÍâÉ裬Ȼºóµ÷Óà Linux Äںˡ£Linux ÄÚºËÔÚÍê³ÉϵͳµÄ³õʼ»¯Ö®ºóÐèÒª¹ÒÔØÄ³¸öÎļþϵͳ×ö
Ϊ¸ùÎļþϵͳ£¨Root Filesystem£©¡£¸ùÎļþϵͳÊÇ Linux ϵͳµÄºËÐÄ×é³É²¿·Ö£¬Ëü¿ÉÒÔ×öÎ ......
[root@localhost logs]# netstat -altn
Last login: Wed Feb 25 14:15:42 2009 from 10.1.1.128
[root@localhost ~]# cd /u
u01/ usr/
[root@localhost ~]# cd /usr/local/tomcat/bin
[root@localhost bin]# ls
bootstrap.jar digest.bat shutdown.bat tomcat-juli.jar
catalina.bat digest.sh shutdown.sh tomcat-native.tar.gz
catalina.sh jsvc.tar.gz startup.bat tool-wrapper.bat
catalina-tasks.xml service.bat startup.sh tool-wrapper.sh
commons-daemon.jar setclasspath.bat tomcat6.exe version.bat
cpappend.bat setclasspath.sh tomcat6w.exe version.sh
[root@localhost bin]# cd ......
ÆäʵÔÚÈÏÕæÔĶÁÁËÕâÆªÃûΪ“¼ÆËãÄÚ´æÊ¹ÓÃ
”µÄÎÄÕÂÖ®ºó£¬»¹ÊÇ´¦ÓÚ°ëÃÔºý״̬¡£Õâλ×÷Õß¾Í˵LinuxÏÂÃæÃ»ÓÐÌØ±ðºÃµÄÏÔʾÄÚ´æÕ¼ÓõŤ¾ß£¬ËäÈ»ÓÐtopºÍfree£¬µ«¶¼ËµµÃ²»Çå³þ£¬¾Í¸úÎ×¶¾½ÌµÄħÊõËÆµÄ¡£
±ÈÈçtopÕâ¸ö¹¤¾ß£¬Ëü»áÏÔʾ3ÖÖÊý¾Ý£¬×÷Õß·Ö±ð½âÊÍÈçÏ£º
VIRT£ºvirtual memory usage¡£VirtualÕâ¸ö´ÊºÜÉñ£¬Ò»°ã½âÊÍÊÇ£ºvirtual adj.ÐéµÄ, ʵÖʵÄ,
[Îï]ÓÐЧµÄ,
ÊÂʵÉϵġ£µ½µ×ÊÇÐéµÄ»¹ÊÇʵµÄ£¿ÈÃGoogle¸øDefineÖ®ºó£¬½«¾ÍÃ÷°×Ò»µã£¬¾ÍÊÇÕâ¶«Î÷»¹ÊÇ·ÇÎïÖʵ쬵«ÊÇÓÐЧ¹ûµÄ£¬²»·¢ÉúÔÚÕæÊµÊÀ½çµÄ£¬·¢ÉúÔÚÈí
¼þÊÀ½çµÄµÈµÈ¡£Õâ¸öÄÚ´æÊ¹ÓþÍÊÇÒ»¸öÓ¦ÓÃÕ¼ÓеĵØÖ·¿Õ¼ä£¬Ö»ÊÇÒªÓ¦ÓóÌÐòÒªÇóµÄ£¬¾ÍÈ«ËãÔÚÕâÀ¶ø²»¹ÜËüÕæµÄÓÃÁËûÓС£Ð´³ÌÐòųö´í£¬ÓÖ²»ÔÚºõÕ¼ÓõÄʱ
ºò£¬¶à¿ªµãÄÚ´æÒ²ÊǺÜÕý³£µÄ¡£
RES£ºresident memory usage¡£³£×¤ÄÚ´æ¡£Õâ¸öÖµ¾ÍÊǸÃÓ¦ÓóÌÐòÕæµÄʹÓõÄÄڴ棬µ«»¹ÓÐÁ½¸öСÎÊÌ⣬һÊÇÓÐЩ¶«Î÷¿ÉÄÜ·ÅÔÚ½»»»ÅÌÉÏÁË£¨SWAP£©£¬¶þÊÇÓÐЩÄÚ´æ¿ÉÄÜÊǹ²ÏíµÄ¡£
SHR£ºshared memory¡£¹²ÏíÄÚ´æ¡£¾ÍÊÇ˵ÕâÒ»¿éÄÚ´æ¿Õ¼äÓпÉÄÜÒ²±»ÆäËûÓ¦ÓóÌÐòʹÓÃ×Å£»¶øVirt £ ShrËÆºõ¾ÍÊÇÕâ¸ö³ÌÐòËùÒªÇóµÄ²¢ÇÒûÓй²ÏíµÄÄÚ´æ¿Õ¼ä¡£
DATA£ºÊý¾ÝÕ¼ÓõÄÄÚ´æ¡£Èç¹ûtopûÓÐÏÔÊ ......
su -l ĬÈÏΪrootÓû§
Ò²¿Éд×÷ su root -l
»»×öÆäËû¼´ÎªÊ¹ÓÃÆäËûÓû§µÇ¼
´ÓrootÓû§Çл»µ½ÆäËûÓû§²»ÐèÒªÊäÈë¿ÚÁî
ÔÚÆäËûÕË»§¼äÇл»¶¼ÒªÊäÈë¿ÚÁî
ʹÓà sudo ¼ÓÉÏËùÒªÖ´ÐеÄÃüÁî¿ÉÒÔʹµÃÓû§µÄȨÏÞÁÙʱÇл»µ½³¬¼¶¹ÜÀíÔ±µÄ״̬Ï£¬¼´ÁÙʱÇл»ÁËÓû§¡£
Ò»°ãÐèÒªÊäÈë¿ÚÁʹÓúóÔÚÒ»¶Îʱ¼ä´ÁÄÚ²»ÐèÊäÈë¿ÚÁî¡£ ......
LinuxÏÂÖÐÎÄÂÒÂëµÄ½â¾ö·½·¨
ÆäʵÂÒÂëÕâ¸öÎÊÌâÊÇÓÉϵͳ¼¯³ÉµÄ×Ö·û¼¯ÒýÆðµÄ,ÓÉÓÚ²»ÄÜÕýÈ·µÄʹÓÃÏà¶ÔÓ¦×Ö·ûµÄ×Ö·û¼¯,Òò´ËOS²»ÄÜʶ±ð³öÎÄ×Öµ¼ÖÂÁËÂÒÂë,½â¾öµÄ·½·¨²»ÄÑ......
Ê×ÏÈ,ÎÒÃÇÏÈÒªÖªµÀ¿ØÖÆLinux OS µÄÓïÑÔ»·¾³±äÁ¿ÊÇ $LANGºÍ$LC_ALL,Òª½â¾öÂÒÂëµÄÇé¿öÎÒÃÇÖ»ÐèÒª°ÑÉÏÊöµÄÁ½¸ö±äÁ¿ÕýÈ·ÉèÖü´¿É.
ÂÒÂë·ÖÁ½ÖÖÇé¿ö:
1.ÖÕ¶Ë(´¿shell½çÃæ)µÄÂÒÂë
vi /etc/profile
export LC_ALL="zh_CN.GB18030:zh_CN.GB2312:zh_CN.GBK:zh_CN:en_US.UTF-8:en_US:en:zh:zh_TW:zh_CN.BIG5"
±£´æÍ˳ö,rebootϵͳ¼´¿É..
2.X-window(ͼÐνçÃæ)µÄÂÒÂë
vi /etc/sysconfig/i18n
LANG="zh_CN.GB18030:zh_CN.GB2312:zh_CN.GBK:zh_CN:en_US.UTF-8:en_US:en:zh:zh_TW:zh_CN.BIG5"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN.GBK:zh_CN:en_US.UTF-8:en_US:en:zh:zh_TW:zh_CN.BIG5"
±£´æreboot¼´¿É... ......
==================ÕâÊǶ¯Ì¬¿âte.cppÎļþ
#include <stdio.h>
#include <string.h>
//ÕâÒ»¾äÒ»¶¨ÒªÓÐ,ÕâÊǵ¼³ö¸Ãº¯Êý
extern "C" void add();
void add()
{
printf("@hk.%s(%d): This is add function! \n", __FILE__, __LINE__);
}
g++ -fPIC -shared -o ./libte.so ./te.cpp
==================ÕâÊǵ÷Óö¯Ì¬¿âµÄmain.cppÎļþ
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <dlfcn.h> /* ±ØÐë¼ÓÕâ¸öÍ·Îļþ */
#include <assert.h>
typedef void (*add_t)();
int main(int argc, char *argv[])
{
void *handle = NULL;
add_t add;
handle = dlopen("./libte.so", RTLD_LAZY);
if (handle == NULL)
{
printf("@hk.%s(%d): The share library load fail!\n", __FILE__, __LINE__);
return -1;
}
add = (add_t)dlsym(handle, "add");
if (add == NULL)
{
printf("@hk.%s(%d): Load function symbol fail!\n", __FILE__, __LINE__);
}
add();
dlclose(handle);
return 0;
}
g++ -o main main.cpp -ldl ......