Linux²¢²»ÊÇÒ»¸ö±Èwindows¸üÉñÃØµÄϵͳ.
ÊǵÄLinuxûÓÐMSDN,µ«LinuxºÍÏà¹ØÈí¼þµÄÎĵµ¾ø¶Ô²»±ÈMSDNÒªÉÙ
¼ÇµÃ,Ò»¸ö¿´¹Ù·½ÍøÕ¾µÄÎĵµ,Ò»¸ögoogle.ÎÒÏë,´ó¶àÎÊÌâ¶¼»á½â¾öµÄ.ʣϵľͿ¿
Ä㶯ÊÖ½â¾öÁË.
linuxÈëÃÅ:
ûÓз¢ÏÖʲô±È½ÏºÃµÄÈëÃÅÊé,Ҫô̫¹ÅÀÏ,ҪôÕÕ¹ËÌ«¶àµÄ·ÅÐа汾,µ¼ÖÂûÓÐʲô
ʵ¼ÊÓô¦.ʵ¼ÊÉÏ,²Î¿¼·¢ÐаæµÄ˵Ã÷ÎĵµºÍʹÓÃÊÖ²áÍùÍùÊÇ×îºÃµÄÈëÃÅÊé¼®.ÕâÀïÃæ
Ò²ÓÐÒ»¸ö¹ØÓÚѧϰlinuxµÄ·½·¨: ¸Õ¿ªÊ¼Ñ§µÄʱºòûÓбØÒª¾³£»»·¢Ðаæ,ÍùÍùѧºÃÒ»¸ö
Ö®ºó,ÆäËûµÄ¶¼²»ÄÑÁË.
±ÈÈç,ÄãÓÃredhat,È¥ http://www.redhat.com/docs/manuals/ÕÒ×ÊÁϰÉ
ÓÃdebianµÄ,È¥ http://www.debian.org/doc/
̨ÍåÓÐÒ»¸ö<Äñ¸çµÄlinux˽·¿²Ë>,Ò²ÊDz»´íµÄ,Èç¹ûÄãÌÖÑáÓ¢Îĵϰ.²»¹ý°æ±¾ÉÔ¾É
ÍøÖ·ÊÇ http://linux.vbird.org/Ò²ÓÐÖÐÎÄÊé³ö°æÁË
IBMµÄdeveloper worksÒ²ÊÇÒ»¸öºÃÈ¥´¦
http://www.ibm.com/developerworks/cn/index.html
ÔÙ˳±ã˵˵Unix/BSDµÄÈëÃÅÊé¼®.
FreeBSD:
<FreeBSDʹÓôóÈ«> <FreeBSD Handbook> ÓÐʲôÀíÓɲ»¿´µÄô?
ǰÕßÊÇÒ»¸öÖйúFB´óţдµÄ,ºóÕßÊÇFreeBSDµÄ¹Ù·½Îĵµ,Ò²ÓÐÖÐÎÄ·ÒëÁË
http://www.freebsd.org
http://www.freebsdchina.org
Sola ......
M. Tim Jones, ¹ËÎʹ¤³Ìʦ, Emulex Corp.
2009 Äê 4 ÔÂ 07 ÈÕ
Linux® ÄÚºËʹÓà GNU Compiler Collection (GCC) Ì×¼þµÄ¼¸¸öÌØÊ⹦ÄÜ¡£ÕâЩ¹¦ÄܰüÀ¨Ìṩ¿ì½Ý·½Ê½ºÍ¼ò»¯ÒÔ¼°Ïò±àÒëÆ÷ÌṩÓÅ»¯ÌáʾµÈµÈ¡£Á˽âÕâÐ©ÌØÊâµÄ GCC ÌØÐÔ£¬Ñ§Ï°ÈçºÎÔÚ Linux ÄÚºËÖÐʹÓÃËüÃÇ¡£
GCC ºÍ Linux ÊdzöÉ«µÄ×éºÏ¡£¾¡¹ÜËüÃÇÊǶÀÁ¢µÄÈí¼þ£¬µ«ÊÇ Linux ÍêÈ«ÒÀ¿¿ GCC ÔÚеÄÌåϵ½á¹¹ÉÏÔËÐС£Linux »¹ÀûÓà GCC ÖеÄÌØÐÔ£¨³ÆÎªÀ©Õ¹£©ÊµÏÖ¸ü¶à¹¦ÄܺÍÓÅ»¯¡£±¾ÎÄÌÖÂÛÒ»Ð©ÖØÒªµÄÀ©Õ¹£¬½²½âÈçºÎÔÚ Linux ÄÚºËÖÐʹÓÃËüÃÇ¡£
GCC µ±Ç°µÄÎȶ¨°æ±¾£¨°æ±¾ 4.3.2£©Ö§³Ö C ±ê×¼µÄÈý¸ö°æ±¾£º
* International Organization for Standardization (ISO) ×î³õµÄ C ÓïÑÔ±ê×¼£¨ISO C89 »ò C90£©
* ´øÐÞÕý 1 µÄ ISO C90
* µ±Ç°µÄ ISO C99£¨ÕâÊÇ GCC ʹÓõÄĬÈϱê×¼£¬±¾ÎÄÒ²¼ÙÉè²ÉÓÃÕâÖÖ±ê×¼£©
×¢Ò⣺±¾ÎļÙÉèʹÓà ISO C99 ±ê×¼¡£Èç¹ûÖ¸¶¨±È ISO C99 °æ±¾¾ÉµÄ±ê×¼£¬ÄÇô¿ÉÄÜÎÞ·¨Ê¹Óñ¾ÎÄÃèÊöµÄһЩÀ©Õ¹¡£¿ÉÒÔÔÚÃüÁîÐÐÉÏʹÓà -std Ñ¡ÏîÖ¸¶¨ GCC ʹÓõÄʵ¼Ê±ê×¼¡£¿ÉÒÔͨ¹ý GCC ÊÖ²á²é¿´Äĸö±ê×¼°æ±¾Ö§³ÖÄÄЩÀ©Õ¹£¨¼û ²Î¿¼×ÊÁÏ ÖеÄÁ´½Ó£©¡£
¿ÉÓ¦Óõİ汾
±¾ÎÄÖ÷Òª¹Ø×¢ÔÚ 2.6.27.1 Linux ÄÚºËºÍ GCC µÄ 4. ......
ÎÒÓõÄLinuxϵͳÊÇUbuntu 10.04
Ê×ÏÈ, °²×°wxWidgets 2.8. ĿǰwxWidgetsÓÐÁ½¸öÎȶ¨°æ±¾, 2.6ºÍ2.8, ÎÒÃÇÑ¡×îеÄ. ´ò¿ª “Ubuntu
Èí¼þÖÐÐÄ”, ÔÚËÑË÷¿òÀïÊäÈë “wxWidgets”, °ÑÏÂÃæ¼¸¸öÃû×ÖÒÔ”wxWidgets Cross-platform C++ GUI
toolkit”¿ªÍ·µÄÈ«²¿°²×°. ×°Íêºó, ´ò¿ªÒ»¸öÖÕ¶Ë, ÊäÈëÃüÁî”wx-config –version”, Èç¹ûÒ»ÇÐ˳ÀûµÄ»°,
Äã»á¿´µ½Ò»¸öwxWidgetsµÄ°æ±¾ºÃ, ÎҵĻú×ÓÊÇ “2.8.10″. Èç¹û²»ÄÜÏÔʾ, ÄÇô¾ÍÒª¼ìÌÖÒ»ÏÂÇ°ÃæµÄ¹ý³ÌÁË.
¸Õ¸ÕÌáµ½µÄwx-config, ÊÇwxWidgetÌṩµÄºÜÓÐÓø¨Öú¹¤¾ß. (²»¹ýÃ²ËÆÔÚWindowsƽ̨ÉÏûÓÐ) Ö®ºóÎÒÃÇ»¹»áÓõ½.
Ò», ±àÂë:
ÓÃÈκÎÄãϲ»¶µÄÎı¾±à¼Æ÷н¨Ò»¸öÎı¾Îļþ.(±ÈÈçgedit/vim) °ÑÇ°ÃæÒ»ÆªÖеĴúÂë¸´ÖÆµ½ÕâÀï, ±£´æÎļþΪ”hworld.cpp”
(ÎļþÃû¿ÉÒÔÈÎÒâ, ×Ô¼ºÖªµÀ¾ÍºÃ)
¶þ, ±àÒë
´ò¿ªÒ»¸öÃüÁîÖÕ¶Ë, À´µ½hworld.cppµÄĿ¼, ÊäÈëÒ»ÌõÃüÁî¼´¿É±àÒë´ËÎļþ
`wx-config --cxx --cxxflags --libs` -ohworld hworld.cpp
ÐèҪעÒâµÄÊÇÕâÀïÁ½¸ö¿´ËƵ¥ÒýºÅµÄ¶«Î÷Æäʵ²»Êǵ¥ÒýºÅ, ÊǼüÅÌÉÏÊý×Ö1Ç°ÃæµÄÄǸö·ûºÅ, ÕâÊÇLinux ShellÀï³£¼ûµÄͨµÀÓ÷¨,
Ò²¾ÍÊ ......
ÎÒÓõÄLinuxϵͳÊÇUbuntu 10.04
Ê×ÏÈ, °²×°wxWidgets 2.8. ĿǰwxWidgetsÓÐÁ½¸öÎȶ¨°æ±¾, 2.6ºÍ2.8, ÎÒÃÇÑ¡×îеÄ. ´ò¿ª “Ubuntu
Èí¼þÖÐÐÄ”, ÔÚËÑË÷¿òÀïÊäÈë “wxWidgets”, °ÑÏÂÃæ¼¸¸öÃû×ÖÒÔ”wxWidgets Cross-platform C++ GUI
toolkit”¿ªÍ·µÄÈ«²¿°²×°. ×°Íêºó, ´ò¿ªÒ»¸öÖÕ¶Ë, ÊäÈëÃüÁî”wx-config –version”, Èç¹ûÒ»ÇÐ˳ÀûµÄ»°,
Äã»á¿´µ½Ò»¸öwxWidgetsµÄ°æ±¾ºÃ, ÎҵĻú×ÓÊÇ “2.8.10″. Èç¹û²»ÄÜÏÔʾ, ÄÇô¾ÍÒª¼ìÌÖÒ»ÏÂÇ°ÃæµÄ¹ý³ÌÁË.
¸Õ¸ÕÌáµ½µÄwx-config, ÊÇwxWidgetÌṩµÄºÜÓÐÓø¨Öú¹¤¾ß. (²»¹ýÃ²ËÆÔÚWindowsƽ̨ÉÏûÓÐ) Ö®ºóÎÒÃÇ»¹»áÓõ½.
Ò», ±àÂë:
ÓÃÈκÎÄãϲ»¶µÄÎı¾±à¼Æ÷н¨Ò»¸öÎı¾Îļþ.(±ÈÈçgedit/vim) °ÑÇ°ÃæÒ»ÆªÖеĴúÂë¸´ÖÆµ½ÕâÀï, ±£´æÎļþΪ”hworld.cpp”
(ÎļþÃû¿ÉÒÔÈÎÒâ, ×Ô¼ºÖªµÀ¾ÍºÃ)
¶þ, ±àÒë
´ò¿ªÒ»¸öÃüÁîÖÕ¶Ë, À´µ½hworld.cppµÄĿ¼, ÊäÈëÒ»ÌõÃüÁî¼´¿É±àÒë´ËÎļþ
`wx-config --cxx --cxxflags --libs` -ohworld hworld.cpp
ÐèҪעÒâµÄÊÇÕâÀïÁ½¸ö¿´ËƵ¥ÒýºÅµÄ¶«Î÷Æäʵ²»Êǵ¥ÒýºÅ, ÊǼüÅÌÉÏÊý×Ö1Ç°ÃæµÄÄǸö·ûºÅ, ÕâÊÇLinux ShellÀï³£¼ûµÄͨµÀÓ÷¨,
Ò²¾ÍÊ ......
½ÓÏÂÀ´£¬ÎÒÃǽøÈësysfs²¿·Ö¡£¿´¿´
kobject_add()->create_dir()->sysfs_create_dir()
bus create file->sysfs create file()
. . .
ÕâЩsysfsº¯ÊýµÄÄÚÄ»¡£
˵°×ÁË£¬sysfs¾ÍÊÇÀûÓÃVFSµÄ½Ó¿ÚÈ¥¶ÁдkobjectµÄ²ã´Î½á¹¹£¬½¨Á¢ÆðÀ´µÄÎļþϵͳ¡£¹ØÓÚsysfsµÄÄÚÈݾÍÔÚfs/sysfs/Ï¡£ kobjectµÄ²ã´Î½á¹¹µÄ¸üÐÂÓëɾ³ý¾ÍÊÇÄÇЩÂÒÆß°ËÔãµÄXX_register()ÃǸɵÄÊÂÇé¡£
ÔÚkobject_add()ÀïÃæ£¬µ÷ÓÃÁËsysfs_create_dir()¡£ÈÃÎÒÃÇ¿´¿´Ëü¾¿¾¹ÊÇÈçºÎcreateµÄ¡£
135 int sysfs_create_dir(struct kobject * kobj)
136 {
137 struct dentry * dentry = NULL;
138 struct dentry * parent;
139 int error = 0;
140
&nb ......
Ç°ÃæËµ¹ý£¬Ö»ÒªÖªµÀÎļþµÄË÷Òý½ÚµãºÅ£¬¾Í¿ÉÒԵõ½ÄǸöÎļþ¡£µ«ÊÇÎÒÃÇÔÚ²Ù×÷Îļþʱ£¬´ÓûÌý˵˻áÄÃ×ÅË÷Òý½ÚµãºÅÀ´²Ù×÷Îļþ£¬ÎÒÃÇÖ»ÖªµÀÎļþÃû¶øÒÑ¡£ ËüÃÇÊÇÈçºÎ"ºÍг"ÆðÀ´µÄÄØ£¿linux°ÑĿ¼Ҳ¿´³ÉÒ»ÖÖÎļþ£¬ÀïÃæ¼Ç¼×ÅÎļþÃûÓëË÷Òý½ÚµãºÅµÄ¶ÔÓ¦¹ØÏµ£¨Ä¿Â¼´æÔÚµÄÔÒò£©¡£±ÈÈçÔÚext3ÎļþϵͳÖУ¬Èç¹ûÎļþÊÇÒ»¸öÄ¿ ¼£¬ÄÇôËüµÄÄÚÈݾÍÊÇһϵÁÐext3_dir_entry_2µÄ½á¹¹
struct ext3_dir_entry_2 {
__u32 inode; /* Inode number */
__u16 rec_len; /* Directory entry length */
__u8 name_len; /* Name length */
__u8 file_type;
char name[EXT3_NAME_LEN]; /* File name */
};
¾Ù ¸öÀý×Ó£¬±ÈÈçÒª´ò¿ª/home/test/hello.c¡£Ê×ÏÈ£¬ÕÒµ½‘/’£¬¶ÁÈëÆäÄÚÈÝ£¬ÕÒµ½ÃûΪ"home"µÄÎļþµÄË÷Òý½ÚµãºÅ£¬´ò¿ª/homeÕâ¸ö "Îļþ"£¬¶ÁÈëÄÚÈÝ£¬ÕÒµ½ÃûΪ "test" µÄµÄÎļþµÄË÷Òý½ÚµãºÅ£¬Í¬Àí£¬ÔÙ´ò¿ªÎļþ"/home/test"£¬ÕÒµ½ÕÒµ½ÃûΪ"hello.c”µÄÎļþµÄË÷Òý½ÚµãºÅ£¬×îºó¾ÍµÃµ½ /home/test/hello.cÁË¡£Õâ¾ÍÊÇpat ......
1¡¢¶¨Òå»ù±¾±í
SQLÓïÑÔʹÓö¯´ÊCREATE¶¨Òå»ù±¾±í£¬Æä¾ßÌåÓï·¨¸ñʽÈçÏ£º
CREATE TABLE <±íÃû>
(<ÁÐÃû><Êý¾ÝÀàÐÍ>[Áм¶ÍêÕûÐÔÔ¼ÊøÌõ¼þ]...[£¬<ÁÐÃû><Êý¾ÝÀàÐÍ>[Áм¶ÍêÕûÐÔÔ¼ÊøÌõ¼þ]][,<±í¼¶ÍêÕûÐÔÔ¼ÊøÌõ¼þ>])£»
ÀýÈ磺½¨Á¢Ò»¸öѧÉú±íStudent£¬ËüÓÉѧºÅSno£¬ÐÕÃûSname£¬ÐÔ±ðSsex£¬ÄêÁäSage£¬ËùÔÚϵSdeptÕâ5¸öÊôÐÔ×é³É¡£ÆäÖÐѧºÅ²»ÄÜΪ¿Õ£¬ÖµÊÇΨһµÄ£¬²¢ÇÒÐÕÃûȡֵҲΨһ¡£SQLÃüÁîÈçÏ£º
CREATE TABLE Student
(Sno CHAR(5) NOT NULL UNIQUE,
Sname CHAR(20) UNIQUE,
Ssex CHAR(2),
Sage INT,
Sdept CHAR(15));
¶¨Òå±íµÄ¸÷¸öÊôÐÔʱÐèÒªÖ¸Ã÷ÆäÊý¾ÝÀàÐͼ°³¤¶È¡£
SMALLINT °ë×Ö³¤¶þ½øÖÆÕûÊý¡£
INTEGER»òINT È«×Ö³¤¶þ½øÖÆÕûÊý¡£
DECIMAL(p[,q])»òDEC(p[,q]) ѹËõÊ®½øÖÆÊý£¬¹²P룬ÆäÖÐСÊýλÓÐqλ¡£0<=q<=p<=15,q=0ʱ¿ÉÒÔÊ¡ÂÔ²»Ð´¡£
FLOAT Ë«×Ö³¤¸¡µãÊý¡£
CHARTER(n)»òCHAR(n) ³¤¶ÈΪnµÄ¶¨³¤×Ö·û´®¡£
VARCHAR(n) ×î´ó³¤¶ÈΪnµÄ±ä³¤×Ö·û´®¡£
GRAPHIC(n) ³¤¶ÈΪnµÄ¶¨³¤Í¼ÐÎ×Ö·û´®¡£
VARGRAPHIC(n) ×î´ó³¤¶ÈΪnµÄ±ä³¤Í¼ÐÎ×Ö·û´®¡£
DATE ÈÕÆÚÐÍ£¬¸ñʽΪYYYY-MM-DD¡£
TIME ʱ¼äÐÍ£¬¸ñÊ ......