ÓÃGCC¿ª·¢linuxÓ¦ÓóÌÐò£¨¾µä£©
2009Äê11ÔÂ01ÈÕ ÐÇÆÚÈÕ 23:58
×÷Ϊ×ÔÓÉÈí¼þµÄÆì½¢ÏîÄ¿£¬Richard Stallman ÔÚÊ®¶àÄêǰ¸Õ¿ªÊ¼Ð´×÷ GCC µÄʱºò£¬»¹Ö»ÊǰÑËüµ±×÷½ö½öÒ»¸ö C³ÌÐòÓïÑԵıàÒëÆ÷£»GCC µÄÒâ˼ҲֻÊÇ GNU C Compiler ¶øÒÑ¡£¾¹ýÁËÕâô¶àÄêµÄ·¢Õ¹£¬GCC ÒѾ²»½ö½öÄÜÖ§³Ö CÓïÑÔ£»ËüÏÖÔÚ»¹Ö§³Ö Ada ÓïÑÔ¡¢C++ ÓïÑÔ¡¢Java ÓïÑÔ¡¢Objective C ÓïÑÔ¡¢PascalÓïÑÔ¡¢COBOLÓïÑÔ£¬ÒÔ¼°Ö§³Öº¯Êýʽ±à³ÌºÍÂß¼±à³ÌµÄ Mercury ÓïÑÔ£¬µÈµÈ¡£¶ø GCC Ò²²»ÔÙµ¥Ö»ÊÇ GNU CÓïÑÔ±àÒëÆ÷µÄÒâ˼ÁË£¬¶øÊDZä³ÉÁË GNU Compiler Collection Ò²¼´ÊÇ GNU ±àÒëÆ÷¼Ò×åµÄÒâ˼ÁË¡£ÁíÒ»·½Ã棬˵µ½ GCC
¶ÔÓÚ²Ù×÷ϵͳƽ̨¼°Ó²¼þƽ̨֧³Ö£¬¸ÅÀ¨ÆðÀ´¾ÍÊÇÒ»¾ä»°£ºÎÞËù²»ÔÚ¡£
1¡¡³ÌÐò±àÒë¹ý³Ì
GCCÊÇCUI(ÃüÁîÐн»»¥½çÃæ)³ÌÐò£¬ÕâÈÃÐí¶à´ÓWindows×ß³öÀ´
GuierÃǸе½¿Ö¾å¡£Êµ¼ÊÉÏËüÒ²ÓÐÐí¶àǰ¶Ë´°¿Ú½çÃæ£¬WindowsÏÂÓÐDev
C++£¬LinuxÏÂÆ©ÈçKDevelopment£¬µ«¼ÈȻѡÔñÁËGCC»¹Êǽ«CUL½øÐе½µ×°É£¬Ã»ÓÐÄÑÓë²»ÄѵÄÎÊÌ⣬ֻÓÐ×öÓë²»×öµÄÎÊÌ⣡
ÏÂÃæ»ùÓÚÒ»¸ö¾ßÌå¶øÎ¢µÄ³ÌÐò£¬ÌÖÂÛGCCµÄʹÓá£Ê¾Àý³ÌÐòÈçÏ£º
//test.c#include int main(void){ printf("Hello World!\n"); return 0;}
Õâ¸ö³ÌÐ ......
1 ÄÚ´æµØÖ·
linuxÖУ¬ÎÒÃDZØÐëÇø·ÖÈýÖÖ²»Í¬µÄµØÖ·
Âß¼µØÖ·£º»úÆ÷ÓïÑÔÖ¸ÁîÖÐÓÃÀ´Ö¸¶¨Ò»¸ö²Ù×÷ÊýºÍÒ»¸öÖ¸ÁîµÄµØÖ·£®ÔÚX86ÖУ¬Ã¿Ò»¸öÂß¼µØÖ·¶¼ÓÉÒ»¸ö¶Î(segment)ºÍÆ«ÒÆÁ¿(offset)×é³É£®
ÏßÐÔµØÖ·(Ò²³ÆÐéÄâµØÖ·)£ºÊÇÒ»¸ö32λÎÞ·ûºÅº¯Êý£¬¿ÉÒÔ±íʾ¸ß´ï4GBµÄµØÖ·£¬·¶Î§´Ó0x00000000µ½0xffffffff£®
ÎïÀíµØÖ·£ºÓÃÓÚÄÚ´æÐ¾Æ¬¼¶Ñ°Ö·£¬ËüÃÇÓë´Ó΢´¦ÀíÆ÷µÄµØÖ·Òý½Å·¢Ë͵½ÄÚ´æ×ÜÏßÉϵĵçÐźÅÏà¶ÔÓ¦£®
Âß¼µØÖ·×ª»»Í¼
2 ·Ö¶Î
¢Ù Ó²¼þ·Ö¶Î
¶ÎÑ¡Ôñ·ûºÍ¶Î¼Ä´æÆ÷
Ò»¸öÂß¼µØÖ·ÓÉÒ»¸ö¶Î±êʶ·ûºÍÒ»¸ö¶ÎÄÚÏà¶ÔµØÖ·µÄÆ«ÒÆÁ¿×é³É£®¶Î±êʶ·ûÊÇÒ»¸ö16볤µÄ×ֶΣ¬³ÆÎª¶ÎÑ¡Ôñ·û
Index£ºÖ¸¶¨ÔÚGDT»òLDTÖÐÏàÓ¦¶ÎÃèÊö·ûµÄÈë¿Ú
TI£ºÖ¸Ã÷¶ÎÃèÊö·ûÔÚGDT(TI=0)»òLDT(TI=1)ÖÐ
RPL:ÇëÇóÕßÌØÈ¨¼¶£¬µ±ÏàÓ¦¶ÎÑ¡Ôñ ......
Çý¶¯³ÌÐòµÄʹÓÿÉÒÔ°´ÕÕÁ½ÖÖ·½Ê½±àÒ룬һÖÖÊǾ²Ì¬±àÒë½øÄںˣ¬ÁíÒ»ÖÖÊDZàÒë³ÉÄ£¿éÒÔ¹©¶¯Ì¬¼ÓÔØ¡£ÓÉÓÚuClinux²»Ö§³ÖÄ£¿é¶¯Ì¬¼ÓÔØ£¬¶øÇÒǶÈëʽLINUX²»Äܹ»Ïó×ÀÃæLINUXÄÇÑùÁé»îµÄʹÓÃinsmod/rmmod¼ÓÔØÐ¶ÔØÉ豸Çý¶¯³ÌÐò£¬Òò¶øÕâÀïÖ»½éÉܽ«É豸Çý¶¯³ÌÐò¾²Ì¬±àÒë½øuClinuxÄں˵ķ½·¨¡£
¡¡¡¡ÏÂÃæÒÔUCLINUXΪÀý£¬½éÉÜÔÚÒ»¸öÒÔÄ£¿é·½Ê½³öÏÖµÄÇý¶¯³ÌÐòtest.c»ù´¡Ö®ÉÏ£¬½«Æä±àÒë½øÄں˵ÄһϵÁв½Ö裺
¡¡¡¡£¨1£© ¸Ä¶¯test.cÔ´´ø´úÂë
¡¡¡¡µÚÒ»²½£¬½«ÔÀ´µÄ£º
¡¡¡¡#include
¡¡¡¡#include
¡¡¡¡char kernel_version[]=UTS_RELEASE;
¡¡¡¡¸Ä¶¯Îª£º
¡¡¡¡#ifdef MODULE
¡¡¡¡#include
¡¡¡¡#include
¡¡¡¡char kernel_version[]=UTS_RELEASE;
¡¡¡¡#else
¡¡¡¡#define MOD_INC_USE_COUNT
¡¡¡¡#define MOD_DEC_USE_COUNT
¡¡¡¡#endif
¡¡¡¡µÚ¶þ²½£¬Ð½¨º¯Êýint init_test(void)
¡¡¡¡½«É豸ע²áдÔÚ´Ë´¦£º
¡¡¡¡result=register_chrdev(254,"test",&test_fops);
¡¡¡¡£¨2£© ½«test.c¸´ÖƵ½/uclinux/linux/drivers/charĿ¼Ï£¬²¢ÇÒÔÚ/uclinux/linux/drivers/charĿ¼ÏÂmem.cÖУ¬int chr_dev_init( )º¯ÊýÖÐÔö¼ÓÈçÏ´úÂ룺
¡¡¡¡#ifdef CONFIG_TESTDRIVE
¡¡ ......
ËùÓÐÀý×ÓÔÚ
linux-2.6.29.3
£¨
gcc-4.3.3
£©Ï±àÒëͨ¹ý£¬ÐèÒª×öµÄÐÞ¸ÄÈçÏ£º
l
´ò¿ªapue.2e
Îļþ¼ÐϵÄMake.defines.linux
Îļþ£¨¸ù¾ÝÄãµÄϵͳѡÔñ¶ÔÓ¦Îļþ£©£¬ÐÞ¸ÄWKDIR=/home/var/apue.2e
ΪÄãµÄapue.2e
Ŀ¼£¬ÈçWKDIR=/home/pydeng/apue.2e
¡£
l
È»ºó½øÈëapue.2e/std
Ŀ¼£¬±à¼linux.mk
£¬ÐÞ¸ÄÀïÃæËùÓеÄnawk
Ϊawk
¡£
l
Ð޸Ľű¾Îļþsystype.sh
µÄȨÏÞ£¬¸øµ±Ç°Óû§¼°ÆäËùÔÚ×éºÍÆäËû×éÌí¼Ó¿ÉÖ´ÐÐȨÏÞ¡££¨ÓÐЩ¿ÉÎÞ£©
l
·µ»Øapue.2e
Ŀ¼£¬Ö´ÐÐmake
ÃüÁî¡£
l
ÔÚ±àÒëapue.2e/threadctl/getenv1.c
ʱ£¬±¨¸æARG_MAX
ûÓж¨Òå¡£ÔÚlinux-2.6.X
Ï£¬ARG_MAX
±»¶¨ÒåÔÚ/usr/include/linux/limit.h
ÎļþÀïÃæ¡£ÓÚÊÇ£¬½«getenv1.c
ºÍgetenv3.c
ÎļþµÄinclude
¸Ä³É#include <linux/limit.h>
¡£
l ......
ýÌåµÄÍÆ¶¯Ï£¬Á½´ó±çÊÖµ®Éú£¬ÏÊÃ÷µÄ¹Ûµã¶ÔÀÝ£ºÕý·½¹Ûµã£º“LinuxµÄδÀ´ÔÚGoogle”;·´·½¹Ûµã£º“LinuxµÄδÀ´²»ÔÚGoogle”¡£
¡¡¡¡ÇÆÇÆÀíÓɰɡ£
¡¡¡¡Õý·½¹Ûµã: “Chrome OSʹGoogle³ÉΪLinuxµÄδÀ´”
¡¡¡¡1¡¢UbuntuÔ±¾ÈÏΪÊÇÌôս΢ÈíµÄÆïÊ¿£¬²»¹ý¿´¿´ËûÃÇÁ½¼ÒµÄºÏ×÷£¬ÒÔ¼°GoogleµÄÊÆÍ·£¬¾Í»á¸ÐÊܵ½Google²ÅÊÇLinuxµÄÁìÐä¡£
¡¡¡¡2¡¢ÊÀ½çÉÏÓг¬¹ýÈý°Ù ÍòÓû§ÊÖÖеĴóÔ¼20ÖÖ²»Í¬ÖÖÀàµÄAndroidÊÖ»ú¨D¨D»¹Óм´½«ÔÚ2010Äê·¢²¼µÄÁíÍâ´óÔ¼30ÖÖÉ豸¨D¨DºÜÏÔÈ»GoogleµÄÊÖ»ú²Ù×÷ϵͳÏÖÔÚ¿´ÆðÀ´ ²»¿ÉºöÊÓ¡£Ñо¿Òƶ¯É豸µÄ¼ÓÌØÄÉÑо¿ÊÒÖ÷ÈÎCarolina Milanesi±¨¸æËµÔÚ2009ÄêµÚÈý¼¾¶ÈWindows MobileÊг¡Õ¼ÓÐÂÊÒѾ»¬Âäµ½7.9%¡£ÊÀ½çµÚÒ»µÄÈû°àÒ²´Ó49.7%Ͻµµ½ÁË44.6%¡£Í¬Ê±£¬ºÚÝ®ºÍiPhone£¨iPhoneÍæ¼ÒÂÛ̳£©ÒѾ·Ö±ðÉÏÉýµ½ÁË20.8%ºÍ 17.1%¡£Ãæ¶ÔÊг¡µÄÖØÐÂÏ´ÅÆ£¬Google AndroidÒѾÔÚÒÆ¶¯Êг¡ÇÀµÃ3.5%µÄ·Ý¶î£¬Õâ¶ÔÓÚÒ»¸öÐÂÊÖÀ´Ëµ»¹²»»µ¡£
¡¡¡¡Öص㻹ÔÚChrome OS£¬±Ï¾¹ÕâÕë¶ÔµÄ²ÅÊÇ΢ÈíµÄºËÐĵشø¡£
¡¡¡¡3¡¢Chrome OSÊÇÒ»ÖÖÊÊÓÃÓÚX86ºÍ»ùÓÚARMµÄÉÏÍø±¾µÄ¿ªÔ´²Ù×÷ϵͳ£¬¼ÇסÁË£¬ÊÇÃâ·Ñ¡£Î¢ÈíÔÚÉÏÍø±¾¡¢Ï¥ÉÏÐͼÆËã»ú»òÕß×ÀÃæ¼ÆËã»ú·½ÃæµÄÖ÷ÒªÎüÒýÁ¦ÊÇËü ......
¡¾¸´Ï°LinuxµÚÒ»²½¡¿
×¢Ò⣺ÓÐЩȨÏÞÖ»Óг¬¼¶Óû§²ÅÓУ¡
===°²×°===
×¢ÒâÔÚ·ÖÇøµÄʱºòµÄÑ¡Ôñ£¬Èç¹ûûѡÔòÓпÉÄܲ»ÄܼÌÐøÏÂÒ»²½
===°²×°===
*********
*********
===ÃüÁî===
[×î»ù±¾ÃüÁî]
ls
pwd
cd
ls -al
su Óû§
clear
[µÇ½½çÃæµÄÉèÖÃ]
Õâ¸öisoÎļþÓйØÏµ£¬ÓÐЩlinux¾µÏñÎļþĬÈÏÊÇÆô¶¯Í¼Ðλ¯½çÃæ£¬
µ±ÄãÏëʹÓÃÃüÁîÐнçÃæµÄʱºò£¬¿ÉÒÔÓÐÒÔϰ취£¡£¡
·½·¨Ò»£ºÊ¹Ó󬼶Óû§µÇ½£¬Ö®ºóÆô¶¯ÖÕ¶ËÇÃÏÂÒÔÏÂÃüÁî init 3
·½·¨¶þ£ºÈç¹ûÏëÒÔºóĬÈÏÆô¶¯ÎªÍ¼Ðλ¯½çÃæ£¬ÔòÉèÖÃ/etc/inittabÎļþÉèÖÃ
id:5:initdefault: Æô¶¯µ½¼¶±ð5
id:3:initdefault: Æô¶¯µ½¼¶±ð3
1¡¢linuxµÄÆô¶¯ºÍ¹Ø±Õ
ÃüÁinit [012356]
ÔËÐм¶±ð 0 £º¹Ø»ú
1 £ºµ¥Óû§
2£º¶àÓû§×´Ì¬Ã»ÓÐÍøÂç·þÎñ
3£º¶àÓû§×´Ì¬ÓÐÍøÂç·þÎñ
4£ºÏµÍ³Î´Ê¹Óñ£Áô¸øÓû§
5£ºÍ¼ÐνçÃæ
6£ºÏµÍ³ÖØÆô
init 0 ¹Ø»ú
init 6 ÖØÐÂÆô¶¯
[Ŀ¼µÄ¹ÜÀí] == Ŀ¼Ï൱ÓÚwindowsϵÄÎļþ¼Ð
¸ùĿ¼£º / ¸ùĿ¼
Ö÷Ŀ¼£º Óû§µÚÒ»´Î½øÈëϵͳʱËùÔÚµÄĿ¼ cd »Ø³µ
Ŀ¼Ê÷µÄ½éÉÜ£º
/root /etc &nbs ......