0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何在虚拟机Virtual Box上跑VxWorks呢?

冬至子 来源:北南南北 作者:VxWorks Club 2023-06-15 15:15 次阅读

先来看一张效果图:

图片

在tornado端运行shell访问VxWorks

图片

成功运行第一个程序,输出了visualbox can run the vxworks !

确实比在vmware下的速度快多了!

不过telnet组件添加后,有时登录不了,还是上一张登录成功的图吧

用 i 命令输出当前的任务:

图片

下面看看我们的配置是怎么样的:

visualbox的网卡设置VirtualBox Host-Only Network:

图片

bsp用的是C:\\Tornado2.2\\target\\config\\pcPentium

congfig.h配置如下


/* pc386/config.h - PC [34]86/Pentium/Pentium[234] configuration header */ 

/* Copyright 1984-2002 Wind River Systems, Inc. */ 

/* 
modification history 
-------------------- 
04h,12jul02,pai Changed RAM_HIGH_ADRS, RAM_LOW_ADRS, and 
                 LOCAL_MEM_LOCAL_ADRS. 
04g,12jul02,dmh added check for !SYS_WARM_BIOS and set NV_RAM_SIZE 
04f,27jun02,hdn made SYS_CLK_RATE_MAX an arch dependent macro (spr 27449) 
04e,05jun02,hdn added 36Bit MMU support with 2MB page size 
04d,09may02,hdn added Pentium4 Asymmetric Multi Processor configuration 
04c,10may02,pai In an effort to reduce the compiled size of default images, 
                 the ATA driver (INCLUDE_ATA) and PC console 
                 (INCLUDE_PC_CONSOLE) are no longer configured into a build by 
                 default (SPR 77193). 
04b,01may02,pai Remove ATAPI/5 configuration introduced in version 03w. 
04a,25apr02,rhe Added C++ Protection 
03z,24apr02,pai Added a sysHwInit0() prototype, as a generic interface of 
                 this name has yet to be defined. 
03y,22apr02,pai Removed configuration constants for netif drivers that have 
                 an END equivalent. Made DEC and GEI END driver config 
                 constant names consistent with other BSP END driver config 
                 constant names. Removed INCLUDE_EX and INCLUDE_ENP 
                 config constants (SPR 75629). 
03x,09apr02,pai Reworked ATA configuration and documentation (SPR 73848). 
                 Remove sysCpuProbe() dependence upon INCLUDE_CACHE_SUPPORT 
                 configuration (SPR 74951). Updated the configuration for 
                 components that have a dependency on INCLUDE_PCI (SPR 75634). 
                 Added sysInumTbl[] table declaration required for 
                 INT_NUM_GET() (SPR 75710). 
03w,15apr02,rip support for ATAPI/5  
03v,01apr02,jkf Added _WRS_BSP_DEBUG_NULL_ACCESS to generate exception when 
                 code accesses to lower page of memory, null ptr, occur 
03u,27mar02,pai No longer explicitly setting WDB_COMM_TYPE to WDB_COMM_END, 
                 as this is now done in configAll.h (SPR 73338). 
03t,22mar02,pai Halt in idle mode is now the default for Pentium-based BSPs 
                 (SPR# 73324). 
03s,13mar02,hdn updated INT_NUM_GET(), added IPI/SM for HTT (spr 73738) 
03r,12mar02,pai Removed '#ifdef TRUE' around INCLUDE_PC_CONSOLE (SPR# 73325). 
03q,07mar02,hdn added SNOOP_ENABLE to USER_D_CACHE_MODE for P5 (spr 73938) 
         undefed PMC, removed MTRR_GET for P5 (spr 73939) 
03q,04feb02,mrs Allow console selection from command line. 
03p,04dec01,jkf adding macros for reboot device strings 
                 changed to #undef INCLUDE_LPT by default. 
03o,27nov01,dmh move include of iacsfl.h from sysLib.c to config.h 
03n,16nov01,ahm added power management support (SPR# 32599) 
03m,13nov01,hdn added comment for IOAPIC configuration. 
03l,25oct01,pai Removed INT_NUM_FEIx and FEIx_INT_VEC constants. Added 
                 support for gei82543End driver (jln). Added missing 
                 INT_NUM_MSE definition. 
03k,24oct01,hdn added the mother board and ICH definitions for PENTIUM4. 
         enabled TSC timestamp counter for P5. cleaned up. 
03j,24oct01,dmh add default macros for COM3 and COM4 
03i,23oct01,pai Removed obsolete INCLUDE_SLIP configuration constant. 
03h,01oct01,hdn fixed typo LPT_INT_LVL0 to LPT0_INT_LVL. 
03g,26sep01,pai Added support for dec21x40End driver. Added INT_NUM_MSE 
                 and MSE_INT_VEC backward compatibility values for WindML. 
03f,14sep01,hdn replaced INT_VEC_GET() with INT_NUM_GET() (spr 69775) 
         made TIMER_CLOCK_HZ configurable for APIC TIMER 
         incremented BSP_REV to 2, incremented SYS_CLK_RATE_MAX 
         added LPT[012]_xxx macros (spr 30067) on behalf of pai 
03e,16aug01,hdn added PENTIUM2/3/4 support 
03d,15aug01,hdn moved INCLUDE_SCSI2 in the previous FALSE clause. 
03c,14oct99,jk added defines for sound support. 
03b,15mar99,cn corrected cross-dependencies between INCLUDE_PCI and 
         INCLUDE_LN_97X_END, INCLUDE_EL_3C90X_END (SPR# 25680). 
03a,12mar99,cn added support for el3c90xEnd driver (SPR# 25327). 
02z,08mar99,sbs added support for SMC Elite Ultra ethernet card.(SPR #25234) 
                 moved INCLUDE_LN_97X_END into INCLUDE_END loop. 
                 added support for ne2000End driver (SPR #25398) 
02y,26feb99,dat removed FEI from NETIF_USR_ENTRIES (23818) 
02x,25feb99,hdn added PentiumPro's MESI bus snoop. 
         removed GLOBAL bit from VM_STATE_FOR_MEM_OS. 
02w,24feb99,pr removed CONSOLE_TTY define for PC_CONSOLE (SPR#23075) 
02v,01feb99,jkf added END support for AMD 7997x PCI PCNet-FAST card. 
                 made FEI_END the default. 
02u,26nov98,ms_ add elt3c509 END support 
02t,26jan99,jkf INCLUDE_ADD_BOOTMEM added. INCLUDE_END 
                 is again made the default. SPR#21338 
02s,12nov98,dat END drivers are not selected by default (See SPR xxxxx) 
02r,28aug98,sbs changed WDB_COMM_TYPE to WDB_COMM_END. 
02q,03aug98,cn new BSP revision id 
02o,07jul98,db changed BSP_VERSION to "1.2" and BSP_REVISION to "/0". 
         added BSP_VER_1_2 macro (Tornado 2.0 release). 
02n,28may98,hdn added support for APIC. 
02m,12may98,hdn merged with pcPentium/config.h. obsolete INCLUDE_IDE. 
         changed LOCAL_MEM_SIZE to 8MB. cleaned up. 
02l,24apr98,yp added defines for TFFS. 
02k,31mar98,cn Added Enhanced  


Network Driver support. 
02j,24mar98,sbs corrected SYS_WARM_FD to be default SYS_WARM_TYPE. 
02i,18mar98,sbs added SYS_WARM_BIOS, SYS_WARM_FD, SYS_WARM_ATA. 
                 added SYS_INT_TRAPGATE, SYS_INT_INTGATE. 
02h,16jan98,gnn Removed documentation and support for END, 
         not supported yet. 
02g,28apr97,gnn Added documentation for END_OVERRIDE and INCLUDE_END. 
02f,25apr97,gnn Added Enhanced Network Driver support. 
02h,05aug97,dds added INCLUDE_AIC_7880. 
02g,11jul97,dds #undef INCLUDE_CDROMFS. 
02f,10jul97,dds added SCSI-2 support. REV level 2 
02e,26feb97,mas added defs of USER_RESERVED_MEM and LOCAL_MEM_AUTOSIZE; added 
         warm boot parameters (SPR 7806, 7850). 
02d,22nov96,dat fixed warning from NETIF_USR_ENTRIES. 
02c,20nov96,hdn added support for PRO100B. 
02b,01nov96,hdn added support for PCMCIA. 
02a,10oct96,dat release 1.1/1, (Tornado 1.0.1) 
01z,03sep96,hdn added the compression support. removed BOOTABLE macro. 
01y,09aug96,hdn renamed INT_VEC_IRQ0 to INT_NUM_IRQ0. 
01x,05aug96,hdn changed INT_LVL_ENE 0x0b to 0x05(default int level). 
01w,19jul96,hdn added support for ATA driver. 
01v,25jun96,hdn added support for TIMESTAMP timer. 
01u,14jun96,hdn added support for PCI bus. 
01t,13jun96,hdn added INCLUDE_ESMC for SMC91c9x Ethernet driver. 
01s,28sep95,dat new BSP revision id 
01r,14jun95,hdn added INCLUDE_SW_FP for FPP software emulation library. 
01q,08jun95,ms changed PC_CONSOLE defines. 
01p,12jan95,hdn changed SYS_CLK_RATE_MAX to a safe number. 
01o,08dec94,hdn changed EEROM to EEPROM. 
01n,15oct94,hdn changed CONFIG_ELC and CONFIG_ULTRA. 
         added INCLUDE_LPT for LPT driver. 
         added INCLUDE_EEX32 for Intel EtherExpress32. 
         changed the default boot line. 
         moved INT_VEC_IRQ0 to pc.h. 
01m,03jun94,hdn deleted shared memory network related macros. 
01l,28apr94,hdn changed ROM_SIZE to 0x7fe00. 
01k,22apr94,hdn added macros INT_VEC_IRQ0, FD_DMA_BUF, FD_DMA_BUF_SIZE. 
         moved a macro PC_KBD_TYPE from pc.h. 
         added SLIP driver with 9600 baudrate. 
01j,15mar94,hdn changed ULTRA configuration. 
         changed CONSOLE_TTY number from 0 to 2. 
01i,09feb94,hdn added 3COM EtherlinkIII driver and Eagle NE2000 driver. 
                 changed RAM_HIGH_ADRS and RAM_LOW_ADRS. 
                 changed LOCAL_MEM_SIZE to 4MB. 
01h,27jan94,hdn changed RAM_HIGH_ADRS 0x110000 to 0x00108000. 
         changed RAM_ENTRY 0x10000 to 0x00008000. 
01g,17dec93,hdn added support for Intel EtherExpress driver. 
01f,24nov93,hdn added INCLUDE_MMU_BASIC. 
01e,08nov93,vin added support for pc console drivers. 
01d,03aug93,hdn changed network board's address and vector. 
01c,22apr93,hdn changed default boot line. 
01b,07apr93,hdn renamed compaq to pc. 
01a,15may92,hdn written based on frc386. 
*/ 

/* 
This module contains the configuration parameters for the 
PC [34]86/Pentium/Pentium[234]. 
*/ 

#ifndef INCconfigh 
#define INCconfigh 

#ifdef __cplusplus 
extern "C" { 
#endif 

/* BSP version/revision identification, before configAll.h */ 

#define BSP_VER_1_1 1 /* 1.2 is backward compatible with 1.1 */ 
#define BSP_VER_1_2 1 
#define BSP_VERSION "1.2" 
#define BSP_REV "/2" /* 2 for Tornado 2.2 */ 

#include "configAll.h" 
#include "pc.h" 


/* BSP specific prototypes that must be in config.h */ 

#ifndef _ASMLANGUAGE 
    IMPORT void sysHwInit0 (void); 
    IMPORT UINT8 sysInumTbl[]; /* IRQ vs intNum table */ 
#endif 

/* BSP specific initialisation (before cacheLibInit() is called) */ 

#define INCLUDE_SYS_HW_INIT_0 
#define SYS_HW_INIT_0() (sysHwInit0()) 


/* Default boot line */ 

#if (CPU == I80386) 
#define DEFAULT_BOOT_LINE \\ 
    "fd=0,0(0,0)host:/fd0/vxWorks.st h=90.0.0.3 e=90.0.0.50 u=target" 
#elif (CPU == I80486) 
#define DEFAULT_BOOT_LINE \\ 
    "fd=0,0(0,0)host:/fd0/vxWorks.st h=90.0.0.3 e=90.0.0.50 u=target" 
#elif (CPU == PENTIUM) 
#define DEFAULT_BOOT_LINE \\ 
    "lnPci(0,0)host:d:\\\\vxWorks h=192.168.102.1 e=192.168.102.88 u=target pw=target tn=target" 
#elif (CPU == PENTIUM2) 

#define DEFAULT_BOOT_LINE \\ 
    "fd=0,0(0,0)host:/fd0/vxWorks.st h=90.0.0.3 e=90.0.0.50 u=target" 
#elif (CPU == PENTIUM3) 
#define DEFAULT_BOOT_LINE \\ 
    "fd=0,0(0,0)host:/fd0/vxWorks.st h=90.0.0.3 e=90.0.0.50 u=target" 
#elif (CPU == PENTIUM4) 
#define DEFAULT_BOOT_LINE \\ 
    "fd=0,0(0,0)host:/fd0/vxWorks.st h=90.0.0.3 e=90.0.0.50 u=target" 
#endif /* (CPU == I80386) */ 

/* Warm boot (reboot) devices and parameters */ 

#define SYS_WARM_BIOS 0 /* warm start from BIOS */ 
#define SYS_WARM_FD 1 /* warm start from FD */ 
#define SYS_WARM_ATA 2 /* warm start from ATA */ 
#define SYS_WARM_TFFS 3 /* warm start from DiskOnChip */ 

#define SYS_WARM_TYPE SYS_WARM_FD /* warm start device */ 
#define SYS_WARM_FD_DRIVE 0 /* 0 = drive a:, 1 = b: */ 
#define SYS_WARM_FD_TYPE 0 /* 0 = 3.5" 2HD, 1 = 5.25" 2HD */ 
#define SYS_WARM_ATA_CTRL 0 /* controller 0 */ 
#define SYS_WARM_ATA_DRIVE 0 /* 0 = c:, 1 = d: */ 
#define SYS_WARM_TFFS_DRIVE 0 /* 0 = c: (DOC) */ 

/* Warm boot (reboot) device and filename strings */ 

/*  
 * BOOTROM_DIR is the device name for the device containing 
 * the bootrom file. This string is used in sysToMonitor, sysLib.c  
 * in dosFsDevCreate(). 
 */ 

#define BOOTROM_DIR "/vxboot/" 

/*  
 * BOOTROM_BIN is the default path and file name to either a binary  
 * bootrom file or an A.OUT file with its 32 byte header stripped. 
 * Note that the first part of this string must match BOOTROM_DIR 
 * The "bootrom.sys" file name will work with VxLd 1.5. 
 */ 

#define BOOTROM_BIN "/vxboot/bootrom.sys" 

/*  
 * BOOTROM_AOUT is that default path and file name of an A.OUT bootrom 
 * _still containing_ its 32byte A.OUT header. This is legacy code. 
 * Note that the first part of this string must match BOOTROM_DIR 
 * The "bootrom.dat" file name does not work with VxLd 1.5. 
 */ 

#define BOOTROM_AOUT "/vxboot/bootrom.dat" 

/* IDT entry type options */ 

#define SYS_INT_TRAPGATE 0x0000ef00 /* trap gate */ 
#define SYS_INT_INTGATE 0x0000ee00 /* int gate */ 

/* driver and file system options */ 

#define INCLUDE_DOSFS /* include dosFs file system */ 
#define INCLUDE_FD /* include floppy disk driver */ 
#undef INCLUDE_ATA /* include IDE/EIDE(ATA) hard disk driver */ 
#undef INCLUDE_LPT /* include parallel port driver */ 
#undef INCLUDE_TIMESTAMP /* include TIMESTAMP timer for Wind View */ 
#undef INCLUDE_TFFS /* include TrueFFS driver for Flash */ 
#undef INCLUDE_PCMCIA /* include PCMCIA driver */ 

/* TFFS driver options */ 

#ifdef INCLUDE_TFFS 
# define INCLUDE_SHOW_ROUTINES 
#endif /* INCLUDE_TFFS */ 

/* SCSI driver options */ 

#undef INCLUDE_SCSI /* include SCSI driver */ 
#undef INCLUDE_AIC_7880 /* include AIC 7880 SCSI driver */ 
#undef INCLUDE_SCSI_BOOT /* include ability to boot from SCSI */ 
#undef INCLUDE_CDROMFS /* file system to be used */ 
#undef INCLUDE_TAPEFS /* file system to be used */ 
#undef INCLUDE_SCSI2 /* select SCSI2 not SCSI1 */ 

/* Network driver options */ 

#define INCLUDE_END /* Enhanced Network Driver Support */ 

#undef INCLUDE_DEC21X40_END /* (END) DEC 21x4x PCI interface */ 
#undef INCLUDE_EL_3C90X_END /* (END) 3Com Fast EtherLink XL PCI */ 
#undef INCLUDE_ELT_3C509_END /* (END) 3Com EtherLink III interface */ 
#undef INCLUDE_ENE_END /* (END) Eagle/Novell NE2000 interface */ 
#undef INCLUDE_FEI_END /* (END) Intel 8255[7/8/9] PCI interface */ 
#undef INCLUDE_GEI8254X_END /* (END) Intel 82543/82544 PCI interface */ 
#define INCLUDE_LN_97X_END /* (END) AMD 79C97x PCI interface */ 
#undef INCLUDE_ULTRA_END /* (END) SMC Elite16 Ultra interface */ 

#undef INCLUDE_BSD /* BSD / Netif Driver Support (Deprecated) */ 

#undef INCLUDE_EEX /* (BSD) Intel EtherExpress interface */ 
#undef INCLUDE_EEX32 /* (BSD) Intel EtherExpress flash 32 */ 
#undef INCLUDE_ELC /* (BSD) SMC Elite16 interface */ 
#undef INCLUDE_ESMC /* (BSD) SMC 91c9x Ethernet interface */ 

/* PCMCIA driver options */ 

#ifdef INCLUDE_PCMCIA 

# define INCLUDE_ATA /* include ATA driver */ 
# define INCLUDE_SRAM /* include SRAM driver */ 
# undef INCLUDE_TFFS /* include TFFS driver */ 

# ifdef INCLUDE_NETWORK 
# define INCLUDE_BSD /* include BSD / Netif Driver Support */ 
# define INCLUDE_ELT /* (BSD) 3Com EtherLink III interface */ 
# endif /* INCLUDE_NETWORK */ 

#endif /* INCLUDE_PCMCIA */ 


/* Include PCI support for drivers & libraries that require it. */ 

#if defined (INCLUDE_LN_97X_END) || defined (INCLUDE_EL_3C90X_END) || \\ 
    defined (INCLUDE_FEI_END) || defined (INCLUDE_DEC21X40_END) || \\ 
    defined (INCLUDE_GEI8254X_END) || defined (INCLUDE_AIC_7880) || \\ 
    defined (INCLUDE_WINDML) || defined (INCLUDE_) 

USB# define INCLUDE_PCI 

#endif 


/* default MMU options and PHYS_MEM_DESC type state constants */ 

#define INCLUDE_MMU_BASIC /* bundled MMU support */ 

#define VM_STATE_MASK_FOR_ALL \\ 
    VM_STATE_MASK_VALID | VM_STATE_MASK_WRITABLE | VM_STATE_MASK_CACHEABLE 
#define VM_STATE_FOR_IO \\ 
    VM_STATE_VALID | VM_STATE_WRITABLE | VM_STATE_CACHEABLE_NOT 
#define VM_STATE_FOR_MEM_OS \\ 
    VM_STATE_VALID | VM_STATE_WRITABLE | VM_STATE_CACHEABLE 
#define VM_STATE_FOR_MEM_APPLICATION \\ 
    VM_STATE_VALID | VM_STATE_WRITABLE | VM_STATE_CACHEABLE 
#define VM_STATE_FOR_PCI \\ 
    VM_STATE_VALID | VM_STATE_WRITABLE | VM_STATE_CACHEABLE_NOT 


/* default system and auxiliary clock constants 
 * 
 * Among other things, SYS_CLK_RATE_MAX depends upon the CPU and application 
 * work load. The default value, chosen in order to pass the internal test 
 * suite, could go up to PIT_CLOCK. 
 */ 

#define SYS_CLK_RATE_MIN (19) /* minimum system clock rate */ 
#define AUX_CLK_RATE_MIN (2) /* minimum auxiliary clock rate */ 
#define AUX_CLK_RATE_MAX (8192) /* um auxiliary clock rate */maxim 


/* CPU family/type-specific macros and options */ 

#if (CPU == I80386) || (CPU == I80486) /* [34]86 specific macros */ 

/* 
 * software floating point emulation support. DO NOT undefine hardware fp 
 * support in configAll.h as it is required for software fp emulation. 
 */ 

#define INCLUDE_SW_FP /* enable emulator if there is no FPU */ 
#define SYS_CLK_RATE_MAX (PIT_CLOCK/32) /* max system clock rate */ 

#ifdef INCLUDE_TIMESTAMP 
# define INCLUDE_TIMESTAMP_PIT2 /* include PIT2 for timestamp */ 
#endif /* INCLUDE_TIMESTAMP */ 

#elif (CPU == PENTIUM) /* P5 specific macros */ 

#undef INCLUDE_SW_FP /* Pentium has hardware FPP */ 
#undef USER_D_CACHE_MODE /* Pentium write-back data cache support */ 
#define USER_D_CACHE_MODE (CACHE_COPYBACK | CACHE_SNOOP_ENABLE) 
#undef INCLUDE_PMC /* include PMC */ 
#define SYS_CLK_RATE_MAX (PIT_CLOCK/32) /* max system clock rate */ 

#ifdef INCLUDE_TIMESTAMP /* select TSC(default) or PIT2 */ 
# undef INCLUDE_TIMESTAMP_PIT2 /* include PIT2 for timestamp */ 
# define INCLUDE_TIMESTAMP_TSC /* include TSC for timestamp */ 
# define PENTIUMPRO_TSC_FREQ 0 /* TSC freq, 0 for auto detect */ 
#endif /* INCLUDE_TIMESTAMP */ 

#elif (CPU == PENTIUM2) || (CPU == PENTIUM3) || (CPU == PENTIUM4) /* P6,P7 */ 

#undef INCLUDE_SW_FP /* Pentium[234] has hardware FPP */ 
#undef USER_D_CACHE_MODE /* Pentium[234] write-back data cache support */ 
#define USER_D_CACHE_MODE (CACHE_COPYBACK | CACHE_SNOOP_ENABLE) 
#define INCLUDE_MTRR_GET /* get MTRR to sysMtrr[] */ 
#define INCLUDE_PMC /* include PMC */ 
#undef VIRTUAL_WIRE_MODE /* Interrupt Mode: Virtual Wire Mode */ 
#undef SYMMETRIC_IO_MODE /* Interrupt Mode: Symmetric IO Mode */ 
#define SYS_CLK_RATE_MAX (PIT_CLOCK/16) /* max system clock rate */ 

#ifdef INCLUDE_TIMESTAMP /* select TSC(default) or PIT2 */ 
# undef INCLUDE_TIMESTAMP_PIT2 /* include PIT2 for timestamp */ 
# define INCLUDE_TIMESTAMP_TSC /* include TSC for timestamp */ 
# define PENTIUMPRO_TSC_FREQ 0 /* TSC freq, 0 for auto detect */ 
#endif /* INCLUDE_TIMESTAMP */ 

#define INCLUDE_MMU_P6_32BIT /* include 32bit MMU for Pentium[234] */ 
#ifdef INCLUDE_MMU_P6_32BIT 
# undef VM_PAGE_SIZE /* page size could be 4KB, 4MB */ 
# define VM_PAGE_SIZE PAGE_SIZE_4KB /* PAGE_SIZE_4MB */ 
#endif /* INCLUDE_MMU_P6_32BIT */ 
#ifdef INCLUDE_MMU_P6_36BIT 
# undef VM_PAGE_SIZE /* page size could be 4KB, 2MB */ 
# define VM_PAGE_SIZE PAGE_SIZE_4KB /* PAGE_SIZE_2MB */ 
#endif /* INCLUDE_MMU_P6_32BIT */ 

#if defined (INCLUDE_MMU_P6_32BIT) || defined (INCLUDE_MMU_P6_36BIT)  
# undef VM_STATE_MASK_FOR_ALL 
# undef VM_STATE_FOR_IO 
# undef VM_STATE_FOR_MEM_OS 
# undef VM_STATE_FOR_MEM_APPLICATION 
# undef VM_STATE_FOR_PCI 
# define VM_STATE_MASK_FOR_ALL \\ 
        VM_STATE_MASK_VALID | VM_STATE_MASK_WRITABLE | \\ 
        VM_STATE_MASK_CACHEABLE | VM_STATE_MASK_WBACK | VM_STATE_MASK_GLOBAL 
# define VM_STATE_FOR_IO \\ 
        VM_STATE_VALID | VM_STATE_WRITABLE | \\ 
        VM_STATE_CACHEABLE_NOT | VM_STATE_WBACK_NOT | VM_STATE_GLOBAL_NOT 
# define VM_STATE_FOR_MEM_OS \\ 
        VM_STATE_VALID | VM_STATE_WRITABLE | \\ 
        VM_STATE_CACHEABLE | VM_STATE_WBACK | VM_STATE_GLOBAL_NOT 
# define VM_STATE_FOR_MEM_APPLICATION \\ 
        VM_STATE_VALID | VM_STATE_WRITABLE | \\ 
        VM_STATE_CACHEABLE | VM_STATE_WBACK | VM_STATE_GLOBAL_NOT 
# define VM_STATE_FOR_PCI \\ 
        VM_STATE_VALID | VM_STATE_WRITABLE | \\ 
        VM_STATE_CACHEABLE_NOT | VM_STATE_WBACK_NOT | VM_STATE_GLOBAL_NOT 
#endif /* defined (INCLUDE_MMU_P6_32BIT) || defined (INCLUDE_MMU_P6_36BIT) */ 

/*  
 * To enable the IOAPIC, define the mother board from the following list. 
 * If the IOAPIC is already enabled, defining the mother board is not  
 * needed. Related code locates in pciCfgIntStub.c. 
 * D815EEA = Pentium3 + i815e + ICH2(i82801BA) 
 * D850GB = Pentium4 + i850 + ICH2(i82801BA) 
 * The PIRQ[n] is directly handled by IOAPIC in the SYMMETRIC_IO_MODE. 
 */ 

#undef INCLUDE_D815EEA /* Pentium3 + i815e + ICH2 */ 
#undef INCLUDE_D850GB /* Pentium4 + i850 + ICH2 */ 

#if defined (INCLUDE_D815EEA) || defined (INCLUDE_D850GB) 
# define INCLUDE_ICH2 /* ICH2 IO controller hub */ 
#else 
# if (CPU == PENTIUM4) 
# define INCLUDE_ICH3 /* set ICH3 as default */ 
# endif /* (CPU == PENTIUM4) */ 
#endif /* defined (INCLUDE_D815EEA) || defined (INCLUDE_D850GB) */ 

#endif /* (CPU == I80386) || (CPU == I80486) */ 


#define IO_ADRS_ELC 0x240 
#define INT_LVL_ELC 0x0b 
#define MEM_ADRS_ELC 0xc8000 
#define MEM_SIZE_ELC 0x4000 
#define CONFIG_ELC 0 /* 0=EEPROM 1=+AUI 2=RJ45+BNC */RJ45 

#define IO_ADRS_ULTRA 0x240 
#define INT_LVL_ULTRA 0x0b 
#define MEM_ADRS_ULTRA 0xc8000 
#define MEM_SIZE_ULTRA 0x4000 
#define CONFIG_ULTRA 0 /* 0=EEPROM 1=RJ45+AUI 2=RJ45+BNC */ 

#define IO_ADRS_EEX 0x240 
#define INT_LVL_EEX 0x0b 
#define NTFDS_EEX 0x00 
#define CONFIG_EEX 0 /* 0=EEPROM 1=AUI 2=BNC 3=RJ45 */ 
                /* Auto-detect is not supported, so choose */ 
                /* the right one you're going to use */ 

#define IO_ADRS_ELT 0x240 
#define INT_LVL_ELT 0x0b 
#define N_ELT 0x00 RF
#define CONFIG_ELT 0 /* 0=EEPROM 1=AUI 2=BNC 3=RJ45 */ 

#define IO_ADRS_ENE 0x300 
#define INT_LVL_ENE 0x05 
                /* Hardware jumper is used to set */ 
                /* RJ45(Twisted Pair) AUI(Thick) BNC(Thin) */ 

#define IO_ADRS_ESMC 0x300 
#define INT_LVL_ESMC 0x0b 
#define CONFIG_ESMC 0 /* 0=EEPROM 1=AUI 2=BNC 3=RJ45 */ 
#define RX_MODE_ESMC 0 /* 0=interrupt level 1=task level */ 

#ifdef INCLUDE_EEX32 
# define INCLUDE_EI /* include 82596 driver */ 
# define INT_LVL_EI 0x0b 
# define EI_SYSBUS 0x44 /* 82596 SYSBUS value */ 
# define EI_POOL_ADRS NONE /* memory allocated from system memory */ 
#endif /* INCLUDE_EEX32 */ 


/* 
 * ATA_TYPE  ATA_GEO_FORCE parameters  
 * 
 * ATA_TYPE is defined in h/drv/hdisk/ataDrv.h. The  table 
 * is declared in sysLib.c. 
 */ 

/* controller zero device zero */ 

#define ATA_CTRL0_DRV0_CYL (761) /* ATA 0, device 0 cylinders */ 
#define ATA_CTRL0_DRV0_HDS (8) /* ATA 0, device 0 heads */ 
#define ATA_CTRL0_DRV0_SPT (39) /* ATA 0, device 0 sectors per track */ 
#define ATA_CTRL0_DRV0_BPS (512) /* ATA 0, device 0 bytes per sector */ 
#define ATA_CTRL0_DRV0_WPC (0xff) /* ATA 0, device 0 write pre-compensation */ 

/* controller zero device one */ 

#define ATA_CTRL0_DRV1_CYL (761) /* ATA 0, device 1 cylinders */ 
#define ATA_CTRL0_DRV1_HDS (8) /* ATA 0, device 1 heads */ 
#define ATA_CTRL0_DRV1_SPT (39) /* ATA 0, device 1 sectors per track */ 
#define ATA_CTRL0_DRV1_BPS (512) /* ATA 0, device 1 bytes per sector */ 
#define ATA_CTRL0_DRV1_WPC (0xff) /* ATA 0, device 1 write pre-compensation */ 

/* controller one device zero */ 

#define ATA_CTRL1_DRV0_CYL (761) /* ATA 1, device 0 cylinders */ 
#define ATA_CTRL1_DRV0_HDS (8) /* ATA 1, device 0 heads */ 
#define ATA_CTRL1_DRV0_SPT (39) /* ATA 1, device 0 sectors per track */ 
#define ATA_CTRL1_DRV0_BPS (512) /* ATA 1, device 0 bytes per sector */ 
#define ATA_CTRL1_DRV0_WPC (0xff) /* ATA 1, device 0 write pre-compensation */ 

/* controller one device one */ 

#define ATA_CTRL1_DRV1_CYL (761) /* ATA 1, device 1 cylinders */ 
#define ATA_CTRL1_DRV1_HDS (8) /* ATA 1, device 1 heads */ 
#define ATA_CTRL1_DRV1_SPT (39) /* ATA 1, device 1 sectors per track */ 
#define ATA_CTRL1_DRV1_BPS (512) /* ATA 1, device 1 bytes per sector */ 
#define ATA_CTRL1_DRV1_WPC (0xff) /* ATA 1, device 1 write pre-compensation */ 

/* 
 * ATA_RESOURCE  parameters  
 * 
 * ATA_RESOURCES is defined in h/drv/pcmcia/pccardLib.h. The  
 * table is declared in sysLib.c. Defaults are based on the pcPentium BSP. 
 */ 

/* ATA controller zero ataResources[] parameters */ 

#define ATA0_VCC (5) /* ATA 0 Vcc (3 or 5 volts) */ 
#define ATA0_VPP (0) /* ATA 0 Vpp (5 or 12 volts or 0) */ 
#define ATA0_IO_START0 (0x1f0) /* Start I/O Address 0 for ATA 0 */ 
#define ATA0_IO_START1 (0x3f6) /* Start I/O Address 1 for ATA 0 */ 
#define ATA0_IO_STOP0 (0x1f7) /* Stop I/O Address for ATA 0 */ 
#define ATA0_IO_STOP1 (0x3f7) /* Stop I/O Address for ATA 0 */ 
#define ATA0_EXTRA_WAITS (0) /* ATA 0 extra wait states (0-2) */ 
#define ATA0_MEM_START (0) /* ATA 0 memory start address */ 
#define ATA0_MEM_STOP (0) /* ATA 0 memory start address */ 
#define ATA0_MEM_WAITS (0) /* ATA 0 memory extra wait states */ 
#define ATA0_MEM_OFFSET (0) /* ATA 0 memory offset */ 
#define ATA0_MEM_LENGTH (0) /* ATA 0 memory offset */ 
#define ATA0_CTRL_TYPE (IDE_LOCAL) /* ATA 0 al type */logic 
#define ATA0_NUM_DRIVES (1) /* ATA 0 number drives present */ 
#define ATA0_INT_LVL (0x0e) /* ATA 0 interrupt level */ 

#define ATA0_CONFIG (ATA_GEO_CURRENT | ATA_PIO_AUTO | \\ 
                            ATA_BITS_16 | ATA_PIO_MULTI) 

#define ATA0_SEM_TIMEOUT (5) /* ATA 0 sync. semaphore timeout */ 
#define ATA0_WDG_TIMEOUT (5) /* ATA 0 watchdog timer timeout */ 
#define ATA0_SOCKET_TWIN (0) /* Socket number (TWIN PCMCIA Card) */ 
#define ATA0_POWER_DOWN (0) /* ATA power down mode */ 

/* ATA controller one ataResources[] parameters */ 

#define ATA1_VCC (5) /* ATA 1 Vcc (3 or 5 volts) */ 
#define ATA1_VPP (0) /* ATA 1 Vpp (5 or 12 volts or 0) */ 
#define ATA1_IO_START0 (0x170) /* Start I/O Address 0 for ATA 1 */ 
#define ATA1_IO_START1 (0x376) /* Start I/O Address 1 for ATA 1 */ 
#define ATA1_IO_STOP0 (0x177) /* Stop I/O Address 0 for ATA 1 */ 
#define ATA1_IO_STOP1 (0x377) /* Stop I/O Address 1 for ATA 1 */ 
#define ATA1_EXTRA_WAITS (0) /* ATA 1 extra wait states (0-2) */ 
#define ATA1_MEM_START (0) /* ATA 1 memory start address */ 
#define ATA1_MEM_STOP (0) /* ATA 1 memory start address */ 
#define ATA1_MEM_WAITS (0) /* ATA 1 memory extra wait states */ 
#define ATA1_MEM_OFFSET (0) /* ATA 1 memory offset */ 
#define ATA1_MEM_LENGTH (0) /* ATA 1 memory offset */ 
#define ATA1_CTRL_TYPE (ATA_PCMCIA) /* ATA 1 logical type */ 
#define ATA1_NUM_DRIVES (1) /* ATA 1 number drives present */ 
#define ATA1_INT_LVL (0x09) /* ATA 1 interrupt level */ 

#define ATA1_CONFIG (ATA_GEO_CURRENT | ATA_PIO_AUTO | \\ 
                            ATA_BITS_16 | ATA_PIO_MULTI) 

#define ATA1_SEM_TIMEOUT (5) /* ATA 1 sync. semaphore timeout */ 
#define ATA1_WDG_TIMEOUT (5) /* ATA 1 watchdog timer timeout */ 
#define ATA1_SOCKET_TWIN (0) /* Socket number (TWIN PCMCIA Card) */ 
#define ATA1_POWER_DOWN (0) /* ATA 1 power down mode */ 


/* console definitions */ 

#undef NUM_TTY 
#define NUM_TTY (N__CHANNELS) UART/* number of tty channels */ 

#define INCLUDE_PC_CONSOLE /* PC keyboard and VGA console */ 

#ifdef INCLUDE_PC_CONSOLE 
# define PC_CONSOLE (0) /* console number */ 
# define N_VIRTUAL_CONSOLES (2) /* shell / application */ 
#endif /* INCLUDE_PC_CONSOLE */ 

/* PS/2 101-key default keyboard type (use PC_XT_83_KBD for 83-key) */ 

#define PC_KBD_TYPE (PC_PS2_101_KBD) 


/* memory addresses, offsets, and size constants */ 

#if (SYS_WARM_TYPE == SYS_WARM_BIOS) /* non-volatile RAM size */ 
# define NV_RAM_SIZE (NONE) 
#else 
# define NV_RAM_SIZE (0x1000) 
#endif 

#define USER_RESERVED_MEM (0) /* user reserved memory */ 
#define LOCAL_MEM_LOCAL_ADRS (0x00100000) /* on-board memory base */ 

/* 
 * LOCAL_MEM_SIZE is the offset from the start of on-board memory to the 
 * top of memory. If the page size is 2MB or 4MB, write-protected pages 
 * for the MMU directory tables and  array are also a 
 * multiple of 2MB or 4MB. Thus, LOCAL_MEM_SIZE should be big enough to 
 * hold them. 
 */ 

#if (VM_PAGE_SIZE == PAGE_SIZE_4KB) /* 4KB page */ 
# define SYSTEM_RAM_SIZE (0x00800000) /* minimum 8MB system RAM */ 
#else /* PAGE_SIZE_[2/4]MB */ /* [2/4]MB page */ 
# define SYSTEM_RAM_SIZE (0x02000000) /* minimum 32MB system RAM */ 
#endif /* (VM_PAGE_SIZE == PAGE_SIZE_4KB) */ 

#define LOCAL_MEM_SIZE (SYSTEM_RAM_SIZE - LOCAL_MEM_LOCAL_ADRS) 


/* 
 * Memory auto-sizing is supported when this option is defined. 
 * See sysyPhysMemTop() in the BSP sysLib.c file. 
 */ 

#ifdef INCLUDE_MMU_P6_36BIT 
# undef LOCAL_MEM_AUTOSIZE 
#else 
# define LOCAL_MEM_AUTOSIZE 
#endif /* INCLUDE_MMU_P6_36BIT */ 

/* 
 * The following parameters are defined here and in the BSP Makefile. 
 * They must be kept synchronized. Any changes made here must be made 
 * in the Makefile and vice versa. 
 */ 

#ifdef BOOTCODE_IN_RAM 
# undef ROMSTART_BOOT_CLEAR 
# define ROM_BASE_ADRS (0x00008000) /* base address of ROM */ 
# define ROM_TEXT_ADRS (ROM_BASE_ADRS) /* booting from A: or C: */ 
# define ROM_SIZE (0x00090000) /* size of ROM */ 
#else 
# define ROM_BASE_ADRS (0xfff20000) /* base address of ROM */ 
# define ROM_TEXT_ADRS (ROM_BASE_ADRS) /* booting from EPROM */ 
# define ROM_SIZE (0x0007fe00) /* size of ROM */ 
#endif 

#define RAM_LOW_ADRS (0x00308000) /* VxWorks image entry point */ 
#define RAM_HIGH_ADRS (0x00108000) /* Boot image entry point */ 

/* 
 * The INCLUDE_ADD_BOOTMEM configuration option enables runtime code which 
 * will add a specified amount of upper memory (memory above physical address 
 * 0x100000) to the memory pool of an image in lower memory. This option 
 * cannot be used on systems with less than 4MB of memory. 
 * 
 * The default value for ADDED_BOOTMEM_SIZE, the amount of memory to add 
 * to a lower memory image's memory pool, is 2MB. This value may be increased, 
 * but one must ensure that the pool does not overlap with the downloaded 
 * vxWorks image. If there is an overlap, then long the vxWorks runtime 
 * image will corrupt the added memory pool. The calculation for determining 
 * the ADDED_BOOTMEM_SIZE value is: 
 * 
 * (RAM_LOW_ADRS + vxWorks image size) < (memTopPhys - ADDED_BOOTMEM_SIZE) 
 * 
 * Where  is calculated in the BSP sysLib.c file. This 
 * configuration option corrects SPR 21338. 
 */adi 

#define INCLUDE_ADD_BOOTMEM /* Add upper memory to low memory bootrom */ 
#define ADDED_BOOTMEM_SIZE (0x00200000) /* 2MB additional memory */ 

/* power management definitions */ 

#define VX_POWER_MANAGEMENT /* define to enable */ 
#define VX_POWER_MODE_DEFAULT VX_POWER_MODE_AUTOHALT /* set mode */ 

/* AMP (asymmetric multi processor) definitions */ 

#ifdef TGT_CPU 
# include "configAmp.h" 
#endif /* TGT_CPU */ 

/* interrupt mode/number definitions */ 

#include "configInum.h" 

#ifdef INCLUDE_IACSFL 
# include "iacsfl.h" 
#endif /* INCLUDE_IACSFL - iacsfl.h overrides some macros in config.h */ 

/* 
 * defining _WRS_BSP_DEBUG_NULL_ACCESS will disable access to lower  
 * page in MMU, see sysPhysMemDesc [] and sysPhysMemTop() in sysLib.c  
 * for more details. This causes the CPU to generate an exception for  
 * any NULL pointer access, or any access to lower page of memory.  
 * VxWorks will suspend the task which made the access. 
 * Note that the MMU must be enabled for this to work. 
 */ 

#define _WRS_BSP_VM_PAGE_OFFSET (VM_PAGE_SIZE) 

#undef _WRS_BSP_DEBUG_NULL_ACCESS 

#ifdef _WRS_BSP_DEBUG_NULL_ACCESS /* protect NULL access with MMU */ 

# if (VM_PAGE_SIZE != PAGE_SIZE_4KB) /* works when page size is 4KB */ 
# error PAGE_SIZE_4KB required to use _WRS_BSP_DEBUG_NULL_ACCESS 
# endif /* (VM_PAGE_SIZE == PAGE_SIZE_4KB) */ 

# if (LOCAL_MEM_LOCAL_ADRS == 0x0) 
# undef VEC_BASE_ADRS 
# define VEC_BASE_ADRS ((char *) (_WRS_BSP_VM_PAGE_OFFSET * 2)) 

# undef _BASE_OFFSET GDT
# define GDT_BASE_OFFSET (0x0800 + (_WRS_BSP_VM_PAGE_OFFSET * 2)) 

# undef SM_ANCHOR_OFFSET 
# define SM_ANCHOR_OFFSET (0x1100 + (_WRS_BSP_VM_PAGE_OFFSET * 2)) 

# undef EXC_MSG_OFFSET 
# define EXC_MSG_OFFSET (0x1300 + (_WRS_BSP_VM_PAGE_OFFSET * 2)) 

# undef FD_DMA_BUF_ADDR 
# define FD_DMA_BUF_ADDR (0x2000 + (_WRS_BSP_VM_PAGE_OFFSET * 2)) 

# undef FD_DMA_BUF_SIZE 
# define FD_DMA_BUF_SIZE (0x1000) 

# undef BOOT_LINE_ADRS 
# define BOOT_LINE_ADRS ((char *) (0x1200)) 
# endif /* (LOCAL_MEM_LOCAL_ADRS == 0x0) */ 

#endif /* _WRS_BSP_DEBUG_NULL_ACCESS */ 

#ifdef __cplusplus 
} 
#endif 

#endif /* INCconfigh */ 

#if defined(PRJ_BUILD) 
# include "prjParams.h" 
#endif

其中h=192.168.102.1 是虚拟机网卡IP,e=192.168.102.88是telnet时用到的IP,也就是vxworks的IP。

配置target servers:

图片

下载到visualbox的vxworks镜像文件,注意,路径包含文件名。

图片

file:C:\\Tornado2.2\\target\\proj\\Project10\\default\\vxWorks

FTP服务器配置:

图片

在win7机器上用ramdisknt15创建了一个虚拟的软驱A:

创建一个批处理文件,运行后自动把bootrom写到软驱里

@echo on
@c:
@cd c:\\Tornado2.2\\host\\x86-win32\\bin&torvars.bat&cd c:\\Tornado2.2\\target\\config\\pcPentium&mkboot a: bootrom

visualbox的网络设置

图片

虚拟机启动设置设为从物理软盘A:启动。(在vmware里好像不能从物理软驱启动)

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • VxWorks
    +关注

    关注

    3

    文章

    351

    浏览量

    97387
  • 虚拟机
    +关注

    关注

    1

    文章

    950

    浏览量

    28575
  • Shell
    +关注

    关注

    1

    文章

    367

    浏览量

    23524
  • ftp服务器
    +关注

    关注

    0

    文章

    15

    浏览量

    9534
收藏 人收藏

    相关推荐

    何在KVM使用CCA RME虚拟机

    之前介绍了CCA设计的一个目的是让hypervisor可以创建和调度RME虚拟机和vCPU,并且给它分配内存等资源,但是一旦这些资源分配给RME虚拟机之后,hypervisor就失去了访问这些RME所有的内存内容的权限。
    的头像 发表于 09-11 14:59 1903次阅读
    如<b class='flag-5'>何在</b>KVM<b class='flag-5'>上</b>使用CCA RME<b class='flag-5'>虚拟机</b>?

    什么是虚拟机虚拟机真的那么好用吗?

    在日新月异的科技世界中,虚拟化技术如同一座桥梁,连接着现实与数字的鸿沟,为我们打开了全新的计算维度。虚拟机,这一概念,自其诞生以来,就以其独特的魅力和强大的功能,深深地影响了软件开发、系统测试和云
    的头像 发表于 07-06 08:05 463次阅读
    什么是<b class='flag-5'>虚拟机</b>?<b class='flag-5'>虚拟机</b>真的那么好用吗?

    虚拟机安装的Web Pack许可证无法将Lcence权限加载到可信存储中

    请您理解有关虚拟机许可证的位置。我有一个运行Web pack(xml)许可证的Vivado 15.2的Windows 7安装。我在Virtual Box安装了Linux,需要使用相同
    发表于 12-17 11:44

    请问环境搭建的时候,虚拟机可以使用virtual box么?

    请问环境搭建的时候,虚拟机可以使用virtual box么?萌新求指导
    发表于 01-06 07:01

    Java虚拟机介绍

    什么是JVM?Java虚拟机(Java Virtual Machine, JVM)实际是一个类似于真实计算机系统的抽象(Abstract Computing Machine),它拥
    发表于 04-10 16:15 0次下载

    微软java虚拟机下载

    微软java虚拟机下载:Java虚拟机(JVM)是Java Virtual Machine的缩写,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能模拟来实现的。Java
    发表于 02-26 08:26 38次下载

    什么是虚拟机

    简单地说,虚拟机Virtual Machine)就是允许我们在当前操作系统中运行其他操作系统的软件,本质和 VS、QQ 这些应用程序一样。
    发表于 07-15 16:14 1688次阅读
    什么是<b class='flag-5'>虚拟机</b>

    虚拟机是什么,具体是做什么的

    虚拟机简单来讲就是一款虚拟的机器,并不是真实存在的物体,在已经安装过系统的电脑或者其他设备,可以通过一些软件模拟出一款虚拟机,然后就可以在虚拟机
    的头像 发表于 10-23 17:23 1.6w次阅读

    KVM虚拟机管理和基本使用

    KVM — 全称是基于内核的虚拟机(Kernel-based Virtual Machine)是一个开源软件,基于内核的虚拟化技术,实际是嵌入系统的一个虚拟化模块,通过优化内核来使用
    的头像 发表于 02-07 09:20 1405次阅读

    虚拟机linux怎么编写程序

    虚拟机Linux编写程序是一项非常常见且有用的任务。无论是开发一个简单的脚本、一个Web应用程序还是一个复杂的软件项目,Linux提供了强大的工具和环境来帮助你进行编程。本文将详细介绍如何在
    的头像 发表于 11-17 10:08 1963次阅读

    虚拟机如何运行c程序

    虚拟机Virtual Machine,VM)是一种模拟了物理计算机的软件,可以在计算机上创建虚拟的硬件平台,使得用户可以在其中运行操作系统和应用程序。在虚拟机中运行C程序需要进行多个
    的头像 发表于 11-17 10:14 5082次阅读

    何在虚拟机上运行c源代码

    何在虚拟机上运行C源代码 确保虚拟机环境设置正确 在使用虚拟机之前,首先需要确保虚拟机已正确安装并正确设置。在选择
    的头像 发表于 11-17 10:16 4667次阅读

    怎么安装linux虚拟机

    在计算机领域,虚拟机是一种软件程序,它允许在主操作系统运行多个虚拟操作系统。Linux虚拟机在开发、测试和学习等环境中得到广泛应用。本文将详细介绍如何安装Linux
    的头像 发表于 11-23 10:50 1189次阅读

    虚拟机ubuntu怎么联网

    虚拟机ubuntu怎么联网  虚拟机Virtual Machine)是运行在物理(Host Machine)
    的头像 发表于 12-27 16:51 1067次阅读

    Ubuntu系统的虚拟机安装步骤 如何在Ubuntu系统编译软件

    Ubuntu系统安装虚拟机的步骤 在Ubuntu系统安装虚拟机是一个相对简单的过程,通常可以通过安装VirtualBox或KVM等虚拟
    的头像 发表于 12-12 14:36 614次阅读