LinuxÉϵÄÐéÄ⻯¼¼Êõ
ÐéÄ⻯¼¼ÊõµÄ·½·¨, ¼Ü¹¹ºÍʵÏÖ¸ÅÀÀ
¼¶±ð: Öм¶
M. Tim Jones [mtj@mtjones.com], ¹ËÎʹ¤³Ìʦ, Emulex
ÔÎÄ: Virtual Linux
Òë: ÕÔçæ cn.zhaoke.com
http://blog.zhaoke.com/45.html
2006Äê12ÔÂ29ÈÕ
ÐéÄ⻯¼¼ÊõµÄÓ¦ÓÃÊ®·Ö¹ã·º. µ±Ç°ÐéÄ⻯¼¼ÊõÖ÷Òª¹Ø×¢ÓÚ·þÎñÆ÷µÄÐéÄ⻯, »òÔÚµ¥¸öÖ÷»úÉϼĴæ¶à¸ö¶ÀÁ¢µÄ²Ù×÷ϵͳ. ±¾ÎÄÊ×ÏȽéÉÜÐéÄ⻯¼¼ÊõµÄÔÀí, È»ºóÌÖÂÛ¶à¸öÐéÄ⻯¼¼ÊõµÄʵÏÖ·½·¨. ÁíÍâ½éÉÜÁËһЩÆäËüµÄÐéÄ⻯¼¼Êõ, ±ÈÈçLinuxÉϲÙ×÷ϵͳ¼¶µÄÐéÄ⻯¼¼Êõ.
ÐéÄ⻯°ÑÊÂÎï´ÓÒ»ÖÖÐÎʽ¸Ä±äΪÁíÒ»ÖÖÐÎʽ. ¼ÆËã»úµÄÐéÄ⻯ʹµ¥¸ö¼ÆËã»ú¿´ÆðÀ´Ïñ¶à¸ö¼ÆËã»ú»òÍêÈ«²»Í¬µÄ¼ÆËã»ú.
ÐéÄ⻯¼¼ÊõÒ²¿ÉÒÔʹ¶ą̀¼ÆËã»ú¿´ÆðÀ´Ïñһ̨¼ÆËã»ú. Õâ½Ð×ö·þÎñÆ÷¾ÛºÏ(server aggregation)»òÍø¸ñ¼ÆËã(grid computing).
Ê×ÏÈÎÒÃǻعËÒ»ÏÂÐéÄ⻯¼¼ÊõµÄÀúÊ·.
ÐéÄ⻯¼¼ÊõµÄÀúÊ·
ÐéÄ⻯¼¼Êõ²»ÊÇÒ»¸öеÄÖ÷Ìâ; ʵ¼ÊÉÏ, ËüÒÑÓÐ40ÄêµÄÀúÊ·. ×îÔçʹÓÃÐéÄ⻯¼¼ÊõµÄÊÇIBM 7044¼ÆËã»ú,
ËüÊÇ»ùÓÚMIT(ÂéÊ¡Àí¹¤Ñ§Ôº)ΪIBM704¼ÆËã»ú¿ª·¢µÄ·ÖʱϵͳCTSS(Compatible Time Sharing System),
ºÍÂü³¹Ë¹ÌØ´óѧµÄAtlasÏîÄ¿(ÊÀ½ç×îÔçµÄ³¬¼¶¼ÆËã»úÖ®Ò»), Ê×´ÎʹÓÃÁËÇëÇóµ÷Ò³ºÍϵͳ¹ÜÀí³ÌÐòµ÷ÓÃ.
Ó²¼þÐéÄ⻯
IBMÔçÔÚ1960Äê¾ÍÈÏʶµ½ÐéÄ⻯¼¼ÊõµÄÖØÒªÐÔ, ÓÚÊÇ¿ª·¢ÁËÐͺÅΪModel 67µÄSystem/360Ö÷»ú. Model
67Ö÷»úͨ¹ýÐéÄâ»ú¼àÊÓÆ÷(VMM, Virtual Machine Monitor)ÐéÄâËùÓеÄÓ²¼þ½Ó¿Ú. ÔÚÔçÆÚµÄ¼ÆËãÖÐ,
²Ù×÷ϵͳ±»³Æ×öSupervisor. Äܹ»ÔËÐÐÔÚÆäËü²Ù×÷ϵͳ֮ÉϵIJÙ×÷ϵͳ±»³Æ×öhypervisor(Ãû³ÆÊ״γöÏÖÔÚ1970Äê).
VMMÖ±½ÓÔËÐÐÔڵײãÓ²¼þÉÏ, ÔÊÐíÖ´Ðжà¸öÐéÄâ»ú(VMs). ÿһ¸öVM(ÐéÄâ»ú)ÔËÐÐ×Ô¼ºµÄ²Ù×÷ϵͳʵÀý — ÔçÆÚʱºò³ÆÎªCMS,
»ò»á»°¼àÊÓϵͳ(CMS, Conversational Monitor System). È»ºóVM¼ÌÐø·¢Õ¹. ½ñÌìÄãÄܹ»ÔÚSystem
z9Ö÷»úÉÏ·¢ÏÖVM, ËüÄܹ»Ïòºó¼æÈÝ, ÉõÖÁÊÇSystem/360.
´¦ÀíÆ÷ÐéÄ⻯
ÁíÍâÒ»¸öÔçÆÚʹÓõÄÐéÄ⻯¼¼Êõ, ·ÂÕæ´¦ÀíÆ÷, Ò²½Ð×öP-code(or pseudo-code)»ú. P-codeÊÇÒ»ÖÖ»úÆ÷ÓïÑÔ,
ÔËÐÐÔÚÐéÄâ»úÉ϶ø²»ÊÇʵ¼ÊµÄÓ²¼þ. ÖªÃûµÄP-codeÓïÑÔÔÚ1970ÄêÓɼÓÖÝ´óѧʥµØÑǸç·ÖУµÄPascalϵͳÏîÄ¿×鿪·¢.
Ëü¿ÉÒÔ°ÑPascal³ÌÐò±àÒë³ÉP-code´úÂë, È»ºóÔÚ¾ßÓÐP-code¹¦ÄܵÄÐéÄâ»úÉÏÔËÐÐ. P-code³ÌÐò¾ßÓи߶ȿÉÒÆÖ²ÐÔ,
Äܹ»ÔËÐÐÔÚÈκξßÓÐP-code¹¦ÄܵÄÐéÄâ»úÉÏ.
1960ÄêµÄBCPLÓïÑÔ(»ù±¾×éºÏ³ÌÐòÉè¼ÆÓïÑÔ, Basic Combined Programming
Language)ҲʹÓÃÁËͬÑùµÄ¸ÅÄî, ËüÊÇCÓïÑÔµÄǰÉí. ±àÒëÆ÷
Ïà¹ØÎĵµ£º
ÀýÒ»£º·¢ËÍSignaling Packet£º
Signaling CommandÊÇ2¸öBluetoothʵÌåÖ®¼äµÄL2CAP²ãÃüÁî´«Êä¡£ËùÒÔµÃSignaling CommandʹÓÃCID 0x0001.
¶à¸öCommand¿ÉÒÔÔÚÒ»¸öC-frame£¨control frame£©Öз¢ËÍ¡£
Èç¹ûÒªÖ±½Ó·¢ËÍSignaling Command.ÐèÒª½¨Á¢SOCK_RAWÀàÐ͵ÄL2CAPÁ¬½ÓSocket¡£ÕâÑù²ÅÓлú»á×Ô¼ºÌî³äCommand Code£¬Identi ......
1. ѧ»áд¼òµ¥µÄmakefile
2. ±àһЩӦÓÃ
³ÌÐò
£¬¿ÉÒÔÓÃmakefileÅÜÆðÀ´
3. ѧ»áдÇý¶¯
µÄmakefile
4. дһ¼òµ¥charÇý¶¯£¬makefile±àÒëͨ¹ý£¬¿ÉÒÔinsmod£¬ lsmod£¬ rmmod. ÔÚÇý¶¯µÄinitº¯ÊýÀï´òÓ¡hello world£¬insmodºóÓ¦¸ÃÄܹ»Í¨¹ýdmesg¿´µ½Êä³ö
¡£
5. дһÍêÕûÇý¶¯£¬ ¼ÓÉÏread£¬ write£¬ ioctl£¬ pollingµÈ¸ ......
ÔÚlinuxϰ²×°ÅäÖÃsvn¶ÀÁ¢·þÎñÆ÷
subversion(ÒÔϼò³Æsvn)ÊǽüÄêÀ´áÈÆðµÄ°æ±¾¹ÜÀí¹¤¾ß£¬ÊÇcvsµÄ½Ó°àÈË¡£ svn·þÎñÆ÷ÓÐ2ÖÖÔËÐз½Ê½£º¶ÀÁ¢·þÎñÆ÷ºÍ½èÖúapache¡£2ÖÖ·½Ê½¸÷ÓÐÀû±×¡£
svn´æ´¢°æ±¾Êý¾ÝÒ²ÓÐ2ÖÖ·½Ê½£ºBDBºÍFSFS¡£ÒòΪBDB·½Ê½ÔÚ·þÎñÆ÷ÖжÏʱ£¬ÓпÉÄÜËø×¡Êý¾Ý£¨ÎÒÔÚ¸ãldapʱ¾ÍÉîÊÜÆäº¦£¬Ã»·¨¸ùÖΣ©£¬ËùÒÔ»¹ÊÇ ......
1.
int (*func)();º¯ÊýÖ¸Õ룬ָÏòµÄº¯ÊýΪ¿Õ²ÎÊý£¬·µ»ØÕûÐÍ£»
2.
»Øµ÷º¯ÊýÊÇÒ»¸ö³ÌÐòÔ±²»ÄÜÏÔʽµ÷Óõĺ¯Êý£»Í¨¹ý½«»Øµ÷º¯ÊýµÄµØÖ·´«¸ø±»µ÷ÓÃÕß´Ó¶øÊµÏÖµ÷Óá£
»Øµ÷º¯ÊýÊÇÒ»¸öͨ¹ýº¯ÊýÖ¸Õëµ÷Óõĺ¯Êý¡£Èç¹ûÄã°Ñº¯ÊýµÄÖ¸Õ루µØÖ·£©×÷Ϊ²ÎÊý´«µÝ¸øÁíÒ»¸öº¯Êý£¬µ±Õâ¸öÖ¸Õë±»ÓÃΪµ÷ÓÃËüËùÖ¸ÏòµÄº¯Êýʱ£¬ÎÒÃǾÍ˵ÕâÊǻص÷º¯ ......