Xen Demo C
¶ÔÓÚxenµÄÐéÄ⻯¹ÜÀí£¬´ó¼Ò¶¼ÔÚÓÃÊ²Ã´ÄØ£¿ÎÒÕæµÄÏëÖªµÀÊDz»ÊÇ´ó¼Ò¶¼ÓÃxmÀ´½øÐйÜÀíÄØ£¿ÖÁÉÙÎÒÏë´ó¶àÊý½ö½öÏëÁ˽âһϵÄÅóÓÑ¿ÉÄÜÓÃÏÂxmÒ²¾ÍËãÊÇÁ˽âÁË¡£¶øÇÒÔÚxenµÄÓû§ÊÖ²áÀïÃæÒ²½ö½ö½éÉÜÁËÒ»ÏÂxmµÄʹÓ÷½·¨£¬¹ØÓÚÔõôʹÓÃËüµÄc½Ó¿ÚÀ´¹ÜÀíÐéÄ⻯·½ÃæµÄ½éÉÜÖ»×ÖδÌá¡£
ÎÒ²»½ö½öÏëÓÃxmÕâ¸ö¹¤¾ßÀ´´´½¨É¾³ý¹ÜÀíÎÒµÄÐéÄâ»ú£¬ÎÒÏëдµã×Ô¼ºµÄ³ÌÐòÀ´¹ÜÀíÎÒµÄÐéÄ⻯³ÌÐò¡£µ«ÊÇÎÒ·¢ÏÖÕâ¸öÕæµÄ±È½ÏÄÑ£¬¾¿¾¹ÄÑÔÚÄÄÀïÄØ£¿¾ÍÎÒÒÔǰµÄ¾Ñ飬Èç¹ûÏëʹÓÃÒ»¸ö¿â½øÐпª·¢£¬ÎÒÊ×ÏÈÕÒÕÒÀý×Ó£¬È»ºó¿´¿´apiÎĵµ£¬×îºóʵ¼ù¡£µ«ÊÇÎÒͨ³£×ö·¨µÄǰÁ½²½ÎÒ¾ÓȻûÓÐÕÒµ½£¬·±éÁËÕû¸ö»¥ÁªÍø£¬ÕÒµ½µÄ¾ÍÊÇÒ»¸ö²»ÂúÒâµÄapiÎĵµ¡£¶øÇÒ˵ʵ»°Õâ¸öÎĵµÎÒ¾õµÃÌ«¼òªÁË£¬ÖÁÉÙ¼òªµ½ÎÒ¿´ÁË»¹ÊDz»ÖªµÀÈçºÎдһ¸ö´´½¨ÐéÄâ»úµÄc³ÌÐò¡£Ã»Óа취£¬Ö»ÄÜ·ÖÎöxmµÄÔ´´úÂ룬¶ÔÓÚÎÒÕâ¸ö¶Ôpython²»ÔõôÁ˽âµÄÈË£¬Ïë¿´Ëü»¹ÊDz»ÈÝÒ׵ġ£²»¹ý¹¦·ò²»¸ºÓÐÐÄÈË£¬ÎÒÖÕÓÚʵÏÖÁËʹÓÃC´úÂë´´½¨Ò»¸öHVMÐéÄâ»úµÄ³ÌÐò¡£ÏÖÔھͰÑËü·ÖÏí¸ø´ó¼Ò¡£
ÎÄÖÐÓÐЩÄÚÈÝÎÒҲûÓÐÍêÈ«Àí½â£¬Ö»ÊÇ´Óxen/tool/pythonϵÄxmºÍxend·ÖÎöÌáÁ¶³öÀ´µÄ¡£»¹ÐèÒª´ó¼Ò°ïÖúÒ»¾Ù³Ô͸£¡ÐµÄÄÚÈÝ´ýÐø£¬¾´Çë¹Ø×¢£¡
void creat_vm()
{
int xcHandle = 0;
unsigned char domain_handle[16] = "asdfasdf";
long deltaCushionAtCkPtInMB;
BOOL memoryWasAvailableInBalloon;
unsigned long slackMem = 3;
int store_port;
unsigned int domid = 1;
struct xen_domctl_sched_credit sdom;
TAILQ_INIT(&store_event_hdr);
totalWatches = 0;
mutex_init(&store_mtx, "Store");
uuid_parse("c540f382-07cb-40d0-b573-27ba03fd690f", domain_handle);
xcHandle = xenctl_handle_acquire();
xc_domain_create(xcHandle,ACM_DEFAULT_SSID,domain_handle,XEN_DOMCTL_CDF_hvm_guest,&domid);
store_port = xc_evtchn_alloc_unbound(xcHandle, 1, 0);
xc_domain_max_vcpus(xcHandle, 1,2);
//Ϊdom0Ôö¼ÓÄڴ棬ÒòΪÔö¼ÓÁËdomUºó£¬dom0ÖлáΪÕâ´ÎÔö¼ÓµÄdomU¸¶³öÒ»²¿·ÖÄÚ´æµÄ¿ªÏú¡£ÎªÁ˱£Ö¤dom0ÓÐ×ã¹»µÄÄÚ´æÐèҪΪËüÔö¼ÓÄڴ档֮ϵÄÁ½¸öº¯ÊýΪ×Ô¶¨Ò庯Êý¡£
dmc_ensure_dom0_memory_cushion(jc_errAndLog_get_globalVersion_stdout(), "prep for guest
Ïà¹ØÎĵµ£º
HÎļþºÍCÎļþÔõôÓÃÄØ£¿Ò»°ãÀ´Ëµ£¬HÎļþÖÐÊÇdeclare£¨ÉùÃ÷£©£¬CÎļþÖÐÊÇdefine£¨¶¨Ò壩¡£ÒòΪCÎļþÒª±àÒë³É¿âÎļþ£¨WindowsÏÂÊÇ.obj/.lib£¬UNIXÏÂÊÇ.o/.a£©£¬Èç¹û±ðÈËҪʹÓÃÄãµÄº¯Êý£¬ÄÇô¾ÍÒªÒýÓÃÄãµÄHÎļþ£¬ËùÒÔ£¬HÎļþÖÐÒ»°ãÊDZäÁ¿¡¢ºê¶¨Ò塢ö¾Ù¡¢½á¹¹ºÍº¯Êý½Ó¿ÚµÄÉùÃ÷£¬¾ÍÏñÒ»¸ö½Ó¿Ú˵Ã÷ÎļþÒ»Ñù¡£¶øCÎļþÔòÊÇʵÏÖϸ½Ú ......
C³ÌÐòÓë»ã±à³ÌÐòÏ໥µ÷ÓùæÔò
ΪÁËʹµ¥¶À±àÒëµÄCÓïÑÔ³ÌÐòºÍ»ã±à³ÌÐòÖ®¼äÄܹ»Ï໥µ÷Ó㬱ØÐëΪ×Ó³ÌÐò¼äµÄµ÷Óùæ
¶¨Ò»¶¨µÄ¹æÔò¡£ATPCS£¬¼´ARM£¬ Thumb¹ý³Ìµ÷Óñê×¼(ARM/Thumb Procedure Call
Standard)£¬ÊÇARM³ÌÐòºÍThumb³ÌÐòÖÐ×Ó³ÌÐòµ÷ÓõĻù±¾¹æÔò£¬Ëü¹æ¶¨ÁËһЩ×Ó³ÌÐò¼äµ÷ÓÃ
µÄ»ù±¾¹æÔò£¬Èç×Ó³ÌÐòµ÷Óùý³ÌÖеļĴæ ......
char c[] = "hello world" ·ÖÅä¾Ö²¿Êý×é
char* c = "hello world" ·ÖÅäÈ«¾ÖÊý×é È«¾ÖÇøÓòµÄÖµÊDz»ÄܽøÐÐÐ޸ĵÄ
1 ³£Á¿Ö¸Õ룡Èç int b, c; int * const a = &b;
±íʾaÊÇÒ»¸ö³£Á¿Ö¸ÕëËüÖ¸Ïò±äÁ¿bµÄÄÚ´æ¡£µ«ÊÇÒòΪÊdz£Á¿Ö¸ÕëËùÒÔ²»ÄÜÔÙÓÃaÖ¸ÏòÆäËû±äÁ¿£¬Èç a = &c; ´íÎ󣡿ÉÒÔÐÞ¸ÄÖ ......
±¾ÎÄ´¥¼°µ½Socket TCP/IP±à³Ì·½ÃæµÄ֪ʶ£¬ÆäʵÕâÊǺܼòµ¥µÄÄÚÈÝ£¬´ó¼Ò¿´²»Ã÷µÄµØ·½´ó¿ÉÒÔÏÈÍù϶Á£¬ÒÔºóÔÙ¿´Ò»±é£¬¿ÉÄÜ»á¾õµÃºÜ¼òµ¥¡£
ºÜ¶àÈËÐ´ÍøÕ¾ÓùßÁËIISºÍTomcatÕâЩ¸ß¼¶µÄºǫ́À´×öÍøÕ¾ºǫ́·þÎñ£¬È»¶ø£¬ÔÚÕâЩºǫ́»¹Ã»ÓÐÎÊÊÀ֮ǰ£¬ÈËÃÇÊÇÔõô±àÐ´ÍøÕ¾µÄÄØ£¿ËûÃǵײ㹲ͬ×ñÊØµÄ×¼ÔòºÍ±ê×¼ÓÖÊÇÊ²Ã´ÄØ£¿
Õâ¾ÍÊÇht ......
Èç¹ûÓû§ÊìϤLinuxϵÄsed¡¢awk¡¢grep»òvi£¬ÄÇô¶ÔÕýÔò±í´ïʽÕâÒ»¸ÅÄî¿Ï¶¨²»»áİÉú¡£ÓÉÓÚËü¿ÉÒÔ¼«´óµØ¼ò»¯´¦Àí×Ö·û´®Ê±µÄ¸´ÔÓ¶È£¬Òò´ËÏÖÔÚÒѾÔÚÐí¶àLinuxʵÓù¤¾ßÖеõ½ÁËÓ¦Óá£Ç§Íò²»ÒªÒÔΪÕýÔò±í´ïʽֻÊÇPerl¡¢Python¡¢BashµÈ½Å±¾ÓïÑÔµÄרÀû£¬×÷ΪCÓïÑÔ³ÌÐòÔ±£¬Óû§Í¬Ñù¿ÉÒÔÔÚ×Ô¼ºµÄ³ÌÐòÖÐÔËÓÃÕýÔò±í´ïʽ¡£
±ê×¼µÄCºÍC ......