最近课余时间研究linux网络内核,找个linux实践一下,先找个虚拟机,Vmware很不错,但是bochs是一个模拟器,他完全模拟X86的硬件,Vmware基本是虚拟自己的设备,Virtual PC处于两者之间,一部分模拟,一部分虚拟,这也就是bochs比Vmware和Virtual PC慢很多的原因。另外的一个虚拟机也不错,QEMU,他的速度比bochs要快很多,是bochs的最好替代。再找个linux操作系统,dlx linux就是首选。但是学习网络编程,没有网卡如何做呢?bochs可以模拟ne2000网卡的,配置很简单, ne2k: ioaddr=0x300, irq=9, mac=00:c4:3B:00:C3:00, ethmod=win32, ethdev=NE2000, I/O address, IRQ number, or MAC address不用改变,ethmod 是host的操作系统,windows下为win32,ethdev为操作系统中network interface的名字,幸亏我写过ndis网络驱动程序,才明白是什末东东。步骤很简单:1 下载winpcap ,sourceforge上面有,不是给bochs用的。2 运行bochs安装目录下的niclist,这是出来的信息1: Generic dialup adapter Device: \Device\NPF_GenericDialupAdapter2: VMware Virtual Ethernet Adapter Device: \Device\NPF_{31F7EB1A-DC78-40A0-8ADF-22873F2CEFCF}3: VMware Virtual Ethernet Adapter Device: \Device\NPF_{32388AE5-FFAA-46CE-89D3-83B6AF857DFF}4: Intel(R) PRO/100 VE Network Connection Device: \Device\NPF_{3E9CBF0F-6F63-409E-816D-7462E446B774}Intel(R) PRO/100 VE Network Connection是我本机的网卡,每个机子肯定不同。在bochsrc.bxrc文件的最后加入ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:00, ethmod=win32, ethdev=\Device\NPF_{3E9CBF0F-6F63-409E-816D-7462E446B774}启动dlx linux输出文件bochsout.txt里面有00000000000i[ ] init_dev of 'ne2k' plugin device by virtual method00000000000i[NE2K ] port 0x240/32 irq 9 mac b0:c4:20:00:00:0000000000000i[NE2K ] bx_win32_pktmover_c表示一切ok |