LinuxÇý¶¯³ÌÐòÈëÃÅ—Hello World
LinuxÇý¶¯³ÌÐòÈëÃÅ—Hello World
À´Ô´:
ChinaUnix²©¿Í ¡¡ÈÕÆÚ£º
2009.11.19 21:17¡¡(¹²ÓÐ0
ÌõÆÀÂÛ) ÎÒÒªÆÀÂÛ
1¡¢ÒýÑÔ
¼ÇµÃÔÚѧϰVC++ºÍCÓïÑÔµÄʱºò£¬Ò»¿ªÊ¼¶¼»áÒÔÒ»¸öHELLO
WORLDµÄÀý×Ó×÷ΪÑÝʾ£¬½«Ñ§ÕßÖð½¥ÒýÈëµîÌã¬Õâ¸ö¼¸ºõ³ÉÁ˼ÆËã»ú±à³ÌÓïÑÔѧϰ±Ø¾µÄÒ»¸öÈëÃÅ֮·¡£
µ±È»£¬ÔÚѧϰlinux±à³ÌµÄʱºòÒ²ÊÇÕâÑù£¬ÏÂÃæµÄÀý×ÓÓ¦¸ÃÊÇÔÙÊìϤ²»¹ýÁË£º
Ê×ÏÈÓÃVI±àдһ¸öC³ÌÐò£ºvi hello.c
#include "stdio.h"
int main()
{
printf("hello world!!!\n");
return 0;
}
½Ó×ÅÓÃGCC½øÐбàÒ룺gcc -o hello hello.c
×îºóÔËÐиóÌÐò£º./hello
ÔÚÖÕ¶ËÉÏÄã»á¿´µ½£ºhello world!!!
ÉÏÃæµÄÊÇÔÚ²Ù×÷ϵͳ»ù´¡ÉϽøÐеÄÓû§Ó¦ÓóÌÐòµÄ¿ª·¢¡£È»¶ø¶ÔÓÚlinuxÇý¶¯³ÌÐòµÄ¿ª·¢ÊǾøÈ»²»Í¬µÄ£¬ÒòΪÇý¶¯³ÌÐòµÄ¿ª·¢ÊÇÔËÐÐÔÚÄں˿ռäµÄ£¬¶øÓ¦ÓóÌ
ÐòÊÇÔËÐÐÔÚÓû§¿Õ¼äµÄ¡£ËäÈ»hello
worldÊÇÒ»¸ö¼òµ¥µÃ²»ÄÜÔÙ¼òµ¥µÄ³ÌÐò£¬µ«ÊǶÔÓÚǶÈëʽlinuxÇý¶¯³ÌÐòµÄ³õѧÕßÀ´Ëµ£¬Í¨¹ýÕâ¸ö¹ý³ÌµÄ²Ù×÷¿ÉÒÔ¶ÔlinuxÇý¶¯³ÌÐò¿ª·¢µÄ¹ý³ÌºÍÆäÖÐ
µÄһЩ¸ÅÄîÓÐÒ»¸öÉî¿ÌµÄÈÏʶ¡£ËùÒÔ£¬ÎÒÔÚÕâÀïÒ²¾ÍÒÔǰѧϰlinuxµÄ»ù´¡ÉÏÕûÀíÁËһϣ¬Ð´ÁËÕâÆª²©¿Í¡£Ò»·½ÃæÊÇ×Ô¼º¶ÔÕâ·½ÃæÖªÊ¶µÄ»Ø¹ËºÍ¹®¹Ì£¬ÁíÒ»·½Ãæ
¸üÊÇÏ£ÍûÕâÀïµÄÄÚÈÝÄܸø´ó¼ÒÌṩÄÇôһµãµãÓÐÓõÄÐÅÏ¢£¬Ð¡µÜÐÄÀï¾ÍºÜ¸ßÐËÁË¡£µ±È»Ï£ÍûÓиßÊÖ¿ÉÒÔ×öÏÂÆÀ¼ÛºÍÖ¸µ¼£¬¼°Ê±¾ÀÕýСµÜµÄ´íÎó£¬Ð»Ð»ÏÈ¡£
2¡¢¸ÅÄî
Çý¶¯³ÌÐò×÷ΪϵͳÄں˵ÄÒ»²¿·Ö£¬Ëü¹¤×÷ÔÚºËÐÄ̬£¬¶øÓ¦ÓóÌÐò¹¤×÷ÔÚÓû§Ì¬¡£Ò²¾ÍÊÇ˵£¬³ÌÐò²»ÄÜÖ±½Óͨ¹ýÖ¸Õ룬°ÑÓû§¿Õ¼äµÄÊý¾ÝµØÖ·´«µÝ¸øÄںˣ¨ÒòΪMMU
Ó³ÉäµÄµØÖ·¸ù±¾²»Ò»Ñù£©¡£ÒªÏëÔÚÓ¦ÓóÌÐòºÍÇý¶¯³ÌÐòÖ®¼ä´«µÝÊý¾Ý£¨Ö¸Õ룩£¬¾ÍÐèÒª¾¹ýת»»¡£°ÑÓû§Ì¬“¿´µ½”µÄ¿Õ¼äµØÖ·×ª»»³ÉÄÚºË̬¿É·ÃÎʵĵØÖ·¡£
LinuxϵͳÌṩÁËһϵÁз½±ãµÄº¯ÊýʵÏÖÕâÖÖת»»£¬Èçget_user¡¢put_user¡¢copy_from_user¡¢copy_to_user
µÈ£¬ËüÃÇ×Ô¼º¸ºÔð·ÃÎÊȨÏ޵ļì²é£¬Ê¹ÓÃʱ£¬²»ÐèÒª¹ØÏµ¸ü¶àµÄÎÊÌâ¡£
LinuxÄں˰ÑÇý¶¯³ÌÐò»®·ÖΪ3ÖÖÀàÐÍ£º×Ö·ûÉ豸¡¢¿éÉ豸ºÍÍøÂçÉ豸¡£×Ö·ûÉ豸ºÍ¿éÉ豸¿ÉÒÔÏñÎļþÒ»Ñù±»·ÃÎÊ¡
Ïà¹ØÎĵµ£º
List_Head
²Ù×÷ϵͳÄں˾³£ÐèҪά»¤Êý¾Ý½á¹¹¡£ÄÚºËÓбê×¼µÄÑ»·Á´±í¡¢Ë«ÏòÁ´±íµÄʵÏÖ¡£ÔÚ<Linux/list.h>ÎļþÖж¨ÒåÁËÒ»¸ölist_headÀàÐͼòµ¥½á¹¹£º
struct list_head {
struct list_head *next, *prev;
};
ͨÓÃÁ´±íµÄ³£ÓÃÓÃ;Êǽ«Ä³Ò»¸öÊý¾Ý½á¹¹±¾Éí´®³ÉÁ´±í£¬»ò½«Ä³Ð©Á´±íÓëÒ»¸öÊý¾Ý½á¹ ......
ÔÚLinux 2.6ÄÚºËÖУ¬devfs±»ÈÏΪÊǹýʱµÄ·½·¨£¬²¢×îÖÕ±»Åׯú£¬udevÈ¡´úÁËËü¡£DevfsµÄÒ»¸öºÜÖØÒªµÄÌØµã¾ÍÊÇ¿ÉÒÔ¶¯Ì¬´´½¨É豸½áµã¡£ÄÇÎÒÃÇÏÖÔÚÈçºÎͨ¹ýudevºÍsysÎļþϵͳ¶¯Ì¬´´½¨É豸½áµãÄØ£¿
ÓÃudevÔÚ/dev/϶¯Ì¬Éú³ÉÉ豸Îļþ£¬ÕâÑùÓû§¾Í²»ÓÃÊÖ¹¤µ÷ÓÃmknodÁË¡£
ÀûÓõÄkernel API£º
&nb ......
ºÍÆäËû²Ù×÷ϵͳһÑù£¬Linux°üº¬½ø³Ìµ÷¶ÈÓë½ø³Ì¼äͨÐÅ(IPC)¡¢ÄÚ´æ¹ÜÀí(MMU)¡¢ÐéÄâÎļþϵͳ(VFS)¡¢ÍøÂç½Ó¿ÚµÈ£¬ÏÂͼ¸ø³öÁËLinuxµÄ×é³É¼°Æä¹ØÏµ£º
LinuxÄÚºËÔ´´úÂë°üÀ¨¶à¸öĿ¼£º
¡¡¡¡£¨1£©arch£º°üÀ¨Ó²¼þÌØ¶¨µÄÄں˴úÂ룬Èçarm¡¢mips¡¢i386µÈ£»
¡¡¡¡£¨2£©drivers£º°üº¬Ó²¼þÇý¶¯´úÂ룬Èçcha ......
linux Îļþϵͳ½á¹¹
/ ¸ùĿ¼
/bin ³£ÓõÄÃüÁî binary file µÄĿ¼
/boot ´æ·ÅϵͳÆô¶¯Ê±±ØÐë¶ÁÈ¡µÄµµ°¸£¬°üÀ¨ºËÐÄ (kernel) ......
Linux°²×°JDK²½Öè1. ÏÈ´ÓÍøÉÏÏÂÔØjdk(jdk-1_5_0_02-linux-i586.rpm)
£¬ÍƼöSUNµÄ¹Ù·½ÍøÕ¾www.sun.com£¬ÏÂÔØºó·ÅÔÚ/homeĿ¼ÖУ¬µ±È»ÆäËüµØ·½Ò²ÐС£
½øÈ밲װĿ¼
#cd /home
#cp
jdk-1_5_0_02-linux-i586.rpm /usr/local
#cd /usr/local
¸øËùÓÐÓû§Ìí¼Ó¿ÉÖ´ÐеÄ
ȨÏÞ
#chmod +x jdk-1_5_0_02-linux-i586.rpm.bin
......