开始熟悉bochs 针对bochsrc.txt的设置产生了一些疑问,也有一些心得。
对bochsrc的翻译:
#------------------------------------------------
# 你应该用双引号把需要的路径包含起来,以防止你包含的路径中出现空格#
# 设置的界面(我的理解是在什么要的界面调试)
#------------------------------------------------
#bochs提供三中界面,文字(textconfig)界面,两种图形界面:wx,win32config
#================================
#config_interface:textconfig
#config_interface:win32config
#config_interface:wx(一旦你明白这是什么并觉得去使用它 请不要忘了在下面连接库的加载中加载wx选项)
#============================
# 设置显示所需的连接库(我也不知道如何表达display_library)
# 如果你要用到很多中显示方式的化 使用 --with-* 来表达
# 选择的有:
# x 使用xwindows的界面(跨平台)
# win32 使用本机(安装bochs的机器)win32libraries
# carbon 使用carbon(为macOS X提供)
# beos 使用本机的beos libraries( BeOS是由Be公司开发的一种多媒体操作系统。 )
# macintosh 为macOS pre-10准备的(macintosh是macos的前身)
# amigaos 使用本机的amigaos
# sdl 使用sdl (跨平台)这里介绍一下sdl(SDL(Simple DirectMedia Layer)是一个自由的跨平台的多媒体开发 # 包,适用于 游戏、游戏SDK、演示软件、模拟器、MPEG播放器和其他应用软件。)
# svga 使用SVGALIB 给linux提供 使其无需xwindows就能支持图形模式
# term 只是使用text模式 不过支持开启\关闭curses(curses是一个在Linux/Unix下广泛应用的图形函数库.) 跨平台
# rfb 提供支持给 AT&T's VNC的支持方式 跨平台 ( 美国电报电话公司推出的 VNC (Virtual Network Computing)是虚 # 拟网络计算机的缩写)
# wx 使用wxwidgers提供wxwidgets的支持(wxWidgets 是一个开源的跨平台的C++构架库(framework)(主页 # http://www.widgets.org),它可以提供GUI(图形用户界面)和其它工具。)
# nogui 不使用任何连接库
#NOTE: 如果你使用wx这个选项在前面的配置中,你在这就一定要使用加载wx的连接库
#=======================================
#display_library: amigaos
#display_library: beos
#display_library: carbon
#display_library: macintosh
#display_library: nogui
#display_library: rfb, options="timeout=60" # 等待的时间
#display_library: sdl, options="fullscreen" # 全屏启动
#display_library: term
#display_library: win32, options="legacyF12" # 使用F12键控制鼠标的使用
#display_library: win32, options="gui_debug" # 使用 Win32 debugger gui
#display_library: wx
#display_library: x, options="hideIPS" # 在启动时 隐藏IPS 输出
#display_library: x, options="gui_debug" # 使用 GTK debugger gui
#===========================================
#关于ROMIMAGE的设置
#你可以通过下方的设置改变或者启用自己的bios映像
#=======================================================================
romimage: file=$BXSHARE/BIOS-bochs-latest
#romimage: file=mybios.bin, address=0xfff80000 # 512k at memory top
#=======================================================================
#CPU的设置选项
#count设置为cpu的数量
#quantum我没看懂是什么意思 大家谁明白给我讲一下
#RESET_ON_TRIPLE_FAULT:在多次出现错误后重启
#CPUID_LIMIT_WINNT:限制最大的cpuid为3 这个选项是winnt所必须的(我也不知道是啥意思)
#MSRS 设定内存
#VENDOR_STRING:设定CPUID中的供货商信息,ASCII码12个字符
#BRAND_STRING:设定CPUID中商标
#IPS 用来设定每秒运行命令的数量(请根据你计算机的能力修改 修改后要重新编译bochs)
#====================================
cpu: count=1, ips=50000000, reset_on_triple_fault=1, cpuid_limit_winnt=0, msrs="msrs.def"
#====================================
#MEGS
#设定内存的大小 默认是32M 大多数的操作系统不需多于32M的内存(原句翻译)最大只能是2048M
#====================================
#megs: 256
#megs: 128
#megs: 64
megs: 32
#megs: 16
#megs: 8
#====================================
#选择ROM的映像【1~4】
#你需要加载一些ROM(请确定是只读)这些ROM将在 F0000~FFFFF处加载 VGA的ROM将在 C0000-C7FFFF处加载 这些ROM将会完成 真实计算机的操作 在真确的地方加载boot(有0x55AA结尾的)和提供有价值的自检。当然你也可以放入自己随意的代码来加载。
#=======================================================================
#optromimage1: file=optionalrom.bin, address=0xd0000
#optromimage2: file=optionalrom.bin, address=0xd1000
#optromimage3: file=optionalrom.bin, address=0xd2000
#optromimage4: file=optionalrom.bin, address=0xd3000
#optramimage1: file=/path/file1.img, address=0x0010000
#optramimage2: file=/path/file2.img, address=0x0020000
#optramimage3: file=/path/file3.img, address=0x0030000
#optramimage4: file=/path/file4.img, address=0x0040000
#=======================================================================
#显示(VGA)ROM映像加载
#你需要将它加载到C0000
#=======================================================================
#vgaromimage: file=bios/VGABIOS-elpin-2.40
vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest
#vgaromimage: file=bios/VGABIOS-lgpl-latest-cirrus
#=======================================================================
# VGA的特殊设置:
#这里你可以通过选择使用 普通的VGA和通过‘vbe’选项而使用SVGA(超级VGA)
#=======================================================================
#vga: extension=cirrus
vga: extension=vbe
#=======================================================================
# FLOPPYA:软盘A启动的设置(经常用到)
#如果你要通过软盘启动那么在下面请设置软盘的类型
#你可以设定 initial来表达是否使用该盘(ejected:不使用inserted使用)
#类似:
#floppya: 2_88=path, status=ejected (2.88M 3.5" media)
# floppya: 1_44=path, status=inserted (1.44M 3.5" media)
# floppya: 1_2=path, status=ejected (1.2M 5.25" media)
# floppya: 720k=path, status=inserted (720K 3.5" media)
# floppya: 360k=path, status=inserted (360K 5.25" media)
# floppya: 320k=path, status=inserted (320K 5.25" media)
# floppya: 180k=path, status=inserted (180K 5.25" media)
# floppya: 160k=path, status=inserted (160K 5.25" media)
# floppya: image=path, status=inserted (guess media type from image size)
# floppya: type=1_44 (1.44M 3.5" floppy drive, no media)
#其中path为软盘映像的地址
#=======================================================================
floppya: 1_44=/dev/fd0, status=inserted
#floppya: image=../1.44, status=inserted
#floppya: 1_44=/dev/fd0H1440, status=inserted
#floppya: 1_2=../1_2, status=inserted
#floppya: 1_44=a:, status=inserted
#floppya: 1_44=a.img, status=inserted
#floppya: 1_44=/dev/rfd0a, status=inserted
#=======================================================================
# FLOPPYB:设置软盘B的地方
#具体的请参照软盘A的设置方法
#=======================================================================
#floppyb: 1_44=b:, status=inserted
#floppyb: 1_44=b.img, status=inserted
#=======================================================================
#关于硬盘/光驱挂载的设置:
#ata[0-3]: enabled=[0|1], ioaddr1=addr, ioaddr2=addr, irq=number
#可以设置最多4个挂载处,这里指定两个I/O的地址及中断优先级
#=======================================================================
ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
ata1: enabled=1, ioaddr1=0x170, ioaddr2=0x370, irq=15
ata2: enabled=0, ioaddr1=0x1e8, ioaddr2=0x3e0, irq=11
ata3: enabled=0, ioaddr1=0x168, ioaddr2=0x360, irq=9
#=======================================================================
ATA[0-3]-MASTER, ATA[0-3]-SLAVE
#
# 这里定义了所有的附加ATA设备的设置:
# type= ATA设备的种类 [硬盘:disk|光盘:cdrom]
# mode= 只对硬盘支持[flat|concat|external|dll|sparse|vmware3] (没看懂 大概是对其他虚拟机产生的硬盘文件的支持)
# mode= 只对硬盘支持 [undoable|growing|volatile]
# path= imagine的路径
# cylinders= 只对硬盘支持
# heads= 只对硬盘支持
# spt= 只对硬盘支持
# status= 只对光盘支持 [允许:inserted|不允许:ejected]
# biosdetect= bios的检测方式[none|auto], 只对硬盘 ata0时有作用的是 [cmos]
# translation=type of translation of the bios, only for disks [none|lba|large|rechs|auto](不懂是啥意思 bios翻译?)
# model= string returned by identify device command(用来识别设备命令的返回字符? 不懂)
# journal= optional filename of the redolog for undoable and volatile disks 什么任选的字符来 redolog 不可用的反覆无常的disk 不懂
#这一块 笔者也不是很懂 有些在网上也没查出个所以然来 惭愧呀 希望知道的朋友能告诉我一声
#通过配置如上信息 你可以加载各种映像作为ata设备 包括真实的cdrom如果你要尝试制作一个disk的映像 可以运行安装目录下的 bximage来制作。 (在原文件还有关于unix和macos下映像的设定方式 这里只翻译与windows有关的信息了 实在是能力有限呀)
# The path is mandatory for hard disks. Disk geometry autodetection works with
# images created by bximage if CHS is set to 0/0/0 (cylinders are calculated
# using heads=16 and spt=63). For other hard disk images and modes the
# cylinders, heads, and spt are mandatory. In all cases the disk size reported
# from the image must be exactly C*H*S*512.
#
# Default values are:
# mode=flat, biosdetect=auto, translation=auto, model="Generic 1234"
#
# The biosdetect option has currently no effect on the bios
#
# Examples:
# ata0-master: type=disk, mode=flat, path=10M.sample, cylinders=306, heads=4, spt=17
# ata0-slave: type=disk, mode=flat, path=20M.sample, cylinders=615, heads=4, spt=17
# ata1-master: type=disk, mode=flat, path=30M.sample, cylinders=615, heads=6, spt=17
# ata1-slave: type=disk, mode=flat, path=46M.sample, cylinders=940, heads=6, spt=17
# ata2-master: type=disk, mode=flat, path=62M.sample, cylinders=940, heads=8, spt=17
# ata2-slave: type=disk, mode=flat, path=112M.sample, cylinders=900, heads=15, spt=17
# ata3-master: type=disk, mode=flat, path=483M.sample, cylinders=1024, heads=15, spt=63
# ata3-slave: type=cdrom, path=iso.sample, status=inserted
# 以上的这一些我没法翻译了 实在是不了解呀 就原文扔在这了 大家将就的用用默认的吧
#=======================================================================
ata0-master: type=disk, mode=flat, path="30M.sample"
#ata0-master: type=disk, mode=flat, path="30M.sample", cylinders=615, heads=6, spt=17
#ata0-master: type=disk, mode=flat, path="c.img", cylinders=0 # autodetect
#ata0-slave: type=cdrom, path=D:, status=inserted
#ata0-slave: type=cdrom, path=/dev/cdrom, status=inserted
#ata0-slave: type=cdrom, path="drive", status=inserted
#ata0-slave: type=cdrom, path=/dev/rcd0d, status=inserted
#=======================================================================
# BOOT:
# 你可以在这里设定启动的方式 总共有以下几种启动方式,
# '软盘启动:floppy', '硬盘启动:disk', '光驱启动:cdrom' or '网络启动:network' (网络启动源自boot ROM的支持).
# Legacy 'a' and 'c' are also supported.(这句话我没明白是啥意思)
# 顺便加上一句,启动顺序是根据你书写的顺序
# 例子:
# boot: floppy
# boot: cdrom, disk
# boot: network, disk
# boot: cdrom, floppy, disk
#=======================================================================
#boot: floppy
boot: disk
#=======================================================================
# CLOCK:
# 定义Bochs中时钟的参数的:
#
# SYNC(同步):迫使缓冲块数据立即写盘并更新超级块(linux下含义)
# This defines the method how to synchronize the Bochs internal time
# with realtime. With the value 'none' the Bochs time relies on the IPS
# value and no host time synchronization is used. The 'slowdown' method
# sacrifices performance to preserve reproducibility while allowing host
# time correlation. The 'realtime' method sacrifices reproducibility to
# preserve performance and host-time correlation.
# It is possible to enable both synchronization methods.
# 有点长了 就不翻译了 因为这块我还在学习中
# TIME0:设定时间的
# Specifies the start (boot) time of the virtual machine. Use a time
# value as returned by the time(2) system call. If no time0 value is
# set or if time0 equal to 1 (special case) or if time0 equal 'local',
# the simulation will be started at the current local host time.
# If time0 equal to 2 (special case) or if time0 equal 'utc',
# the simulation will be started at the current utc time.
#
# Syntax:
# clock: sync=[none|slowdown|realtime|both], time0=[timeValue|local|utc]
#
# Example:
# clock: sync=none, time0=local # Now (localtime)
# clock: sync=slowdown, time0=315529200 # Tue Jan 1 00:00:00 1980
# clock: sync=none, time0=631148400 # Mon Jan 1 00:00:00 1990
# clock: sync=realtime, time0=938581955 # Wed Sep 29 07:12:35 1999
# clock: sync=realtime, time0=946681200 # Sat Jan 1 00:00:00 2000
# clock: sync=none, time0=1 # Now (localtime)
# clock: sync=none, time0=utc # Now (utc/gmt)
#
# Default value are sync=none, time0=local
#=======================================================================
#clock: sync=none, time0=local
#=======================================================================
# FLOPPY_BOOTSIG_CHECK: disabled=[0|1]
# 设定是否检测 0xaa55 标志在软盘的第一扇区
# 默认为检测
# 例子:
# floppy_bootsig_check: disabled=0
# floppy_bootsig_check: disabled=1
#=======================================================================
floppy_bootsig_check: disabled=0
#=======================================================================
# LOG:关于日志的设定(主要是路径的设定)
# Give the path of the log file you'd like Bochs debug and misc. verbiage
# to be written to. If you don't use this option or set the filename to
# '-' the output is written to the console. If you really don't want it,
# make it "/dev/null" (Unix) or "nul" (win32). :^(
#
# Examples:
# log: ./bochs.out
# log: /dev/tty
#=======================================================================
#log: /dev/null
log: bochsout.txt
#=======================================================================
#LOGPREFIX:(关于日志的设置 可以通过以下命令完成对日志的设置)
# This handles the format of the string prepended to each log line.
# You may use those special tokens :
# %t : 11 decimal digits timer tick
# %i : 8 hexadecimal digits of cpu current eip (ignored in SMP configuration)
# %e : 1 character event type ('i'nfo, 'd'ebug, 'p'anic, 'e'rror)
# %d : 5 characters string of the device, between brackets
#
# Default : %t%e%d
# Examples:
# logprefix: %t-%e-@%i-%d
# logprefix: %i%e%d
#=======================================================================
#logprefix: %t%e%d
#=======================================================================
#LOG的控制
#
#bochs有4个等级表示日志事件
# 紧急:无法继续运行 如果你非要继续运行的化 你就不应该对即将出现的奇怪
#行为 和崩溃而惊讶。
# 错误:有一些东西出现了错误 不过继续运行是被允许的
# 信息:有趣的(别问我什么是有趣 我也不知道)或有用的提示
# 调试:一些只在调试状态有用的信息,这些东西可能以没分钟几千条的方式出现
#你可以对这些信息的动作安排 以决定相应事件发生时该采取的行为。
#包括一下行为:
# ask,report,ignore,fatal等
#=======================================================================
panic: action=ask
error: action=report
info: action=report
debug: action=ignore
#pass: action=fatal
#=======================================================================
# DEBUGGER_LOG:(调试的日志)
#提供一个地址用来存放那些你需要bochs调试而产生的信息
# Examples:
# debugger_log: ./debugger.out
#=======================================================================
#debugger_log: /dev/null
#debugger_log: debugger.out
debugger_log: -
#=======================================================================
# COM1, COM2, COM3, COM4:(这是设置串型接口的地方 一般用不到 就不翻译了)
#This defines a serial port (UART type 16550A). In the 'term' you can specify
# a device to use as com1. This can be a real serial line, or a pty. To use
# a pty (under X/Unix), create two windows (xterms, usually). One of them will
# run bochs, and the other will act as com1. Find out the tty the com1
# window using the `tty' command, and use that as the `dev' parameter.
# Then do `sleep 1000000' in the com1 window to keep the shell from
# messing with things, and run bochs in the other window. Serial I/O to
# com1 (port 0x3f8) will all go to the other window.
# In socket* and pipe* (win32 only) modes Bochs becomes either socket/named pipe
# client or server. In client mode it connects to an already running server (if
# connection fails Bochs treats com port as not connected). In server mode it
# opens socket/named pipe and waits until a client application connects to it
# before starting simulation. This mode is useful for remote debugging (e.g.
# with gdb's "target remote host:port" command or windbg's command line option
# -k com:pipe,port=\\.\pipe\pipename). Note: 'socket' is a shorthand for
# 'socket-client' and 'pipe' for 'pipe-client'. Socket modes use simple TCP
# communication, pipe modes use duplex byte mode pipes.
# Other serial modes are 'null' (no input/output), 'file' (output to a file
# specified as the 'dev' parameter), 'raw' (use the real serial port - under
# construction for win32), 'mouse' (standard serial mouse - requires
# mouse option setting 'type=serial', 'type=serial_wheel' or 'type=serial_msys').
#
# Examples:
# com1: enabled=1, mode=null
# com1: enabled=1, mode=mouse
# com2: enabled=1, mode=file, dev=serial.out
# com3: enabled=1, mode=raw, dev=com1
# com3: enabled=1, mode=socket-client, dev=localhost:8888
# com3: enabled=1, mode=socket-server, dev=localhost:8888
# com4: enabled=1, mode=pipe-client, dev=\\.\pipe\mypipe
# com4: enabled=1, mode=pipe-server, dev=\\.\pipe\mypipe
#=======================================================================
#com1: enabled=1, mode=term, dev=/dev/ttyp9
#=======================================================================
#PARPORT1, PARPORT2:
# This defines a parallel (printer) port. When turned on and an output file is
# defined the emulated printer port sends characters printed by the guest OS
# into the output file. On some platforms a device filename can be used to
# send the data to the real parallel port (e.g. "/dev/lp0" on Linux, "lpt1" on
# win32 platforms).
#
# Examples:
# parport1: enabled=1, file="parport.out"
# parport2: enabled=1, file="/dev/lp0"
# parport1: enabled=0
#=======================================================================
parport1: enabled=1, file="parport.out"
#=======================================================================
#SB16:(此处为音频的设置 我对这些不懂 就不翻译了 其实设置方法跟前面的差不多)
# This defines the SB16 sound emulation. It can have several of the
# following properties.
# All properties are in the format sb16: property=value
# midi: The filename is where the midi data is sent. This can be a
# device or just a file if you want to record the midi data.
# midimode:
# 0=no data
# 1=output to device (system dependent. midi denotes the device driver)
# 2=SMF file output, including headers
# 3=output the midi data stream to the file (no midi headers and no
# delta times, just command and data bytes)
# wave: This is the device/file where wave output is stored
# wavemode:
# 0=no data
# 1=output to device (system dependent. wave denotes the device driver)
# 2=VOC file output, incl. headers
# 3=output the raw wave stream to the file
# log: The file to write the sb16 emulator messages to.
# loglevel:
# 0=no log
# 1=resource changes, midi program and bank changes
# 2=severe errors
# 3=all errors
# 4=all errors plus all port accesses
# 5=all errors and port accesses plus a lot of extra info
# dmatimer:
# microseconds per second for a DMA cycle. Make it smaller to fix
# non-continuous sound. 750000 is usually a good value. This needs a
# reasonably correct setting for the IPS parameter of the CPU option.
#
# Examples for output devices:
# sb16: midimode=1, midi="", wavemode=1, wave="" # win32
# sb16: midimode=1, midi=alsa:128:0, wavemode=1, wave=alsa # Linux with ALSA
#=======================================================================
#sb16: midimode=1, midi=/dev/midi00, wavemode=1, wave=/dev/dsp, loglevel=2, log=sb16.log, dmatimer=600000
#=======================================================================
#VGA_UPDATE_INTERVAL:(显存扫描的更新间隔的设置)
# video的更新间隔的设置
# 默认为 50000, 差不多 20Hz. 请注意
# 你必须 设置 ‘cpu: ips=N'并确定您的程序能达到这样的设置
#
# Examples:
# vga_update_interval: 250000
#=======================================================================
vga_update_interval: 300000
# 为了给 Winstone '98 测试而使用的
#vga_update_interval: 100000
#=======================================================================
# KEYBOARD_SERIAL_DELAY:(键盘的响应时间(可能翻译的不对))
# Approximate time in microseconds that it takes one character to
# be transfered from the keyboard to controller over the serial path.
# Examples:
# keyboard_serial_delay: 200
#=======================================================================
keyboard_serial_delay: 250
#=======================================================================
#MOUSE:(关于鼠标的设置)
# bochs会自动激活在gui状态下的鼠标功能 除非enabled被设置为0
# 你可以通过设置选择鼠标的类型例如 ps/2 等 也可以在usb选项处
# 设置USB鼠标
# Examples:
# mouse: enabled=1
# mouse: enabled=1, type=imps2
# mouse: enabled=1, type=serial
# mouse: enabled=0
#=======================================================================
mouse: enabled=0
#=======================================================================
# private_colormap: 是否开启一个私有的colormap
#
# Examples:
# private_colormap: enabled=1
# private_colormap: enabled=0
#=======================================================================
private_colormap: enabled=0
#=======================================================================
#fullscreen(其实很容易理解就是全屏么): ONLY IMPLEMENTED ON AMIGA(关键是这句就不懂了 什么是只为女生应用)
#
# Examples:
# fullscreen: enabled=0
# fullscreen: enabled=1
#=======================================================================
#fullscreen: enabled=0
#screenmode: name="sample"(没有解释 我也不明白这个选项是干吗的)
#=======================================================================
#ne2k: NE2000 compatible ethernet adapter(设置网卡的 我太长了 下次补上吧)
#
# Examples:
# ne2k: ioaddr=IOADDR, irq=IRQ, mac=MACADDR, ethmod=MODULE, ethdev=DEVICE, script=SCRIPT
#
# ioaddr, irq: You probably won't need to change ioaddr and irq, unless there
# are IRQ conflicts. These arguments are ignored when assign the ne2k to a
# PCI slot.
#
# mac: The MAC address MUST NOT match the address of any machine on the net.
# Also, the first byte must be an even number (bit 0 set means a multicast
# address), and you cannot use ff:ff:ff:ff:ff:ff because that's the broadcast
# address. For the ethertap module, you must use fe:fd:00:00:00:01. There may
# be other restrictions too. To be safe, just use the b0:c4... address.
#
# ethdev: The ethdev value is the name of the network interface on your host
# platform. On UNIX machines, you can get the name by running ifconfig. On
# Windows machines, you must run niclist to get the name of the ethdev.
# Niclist source code is in misc/niclist.c and it is included in Windows
# binary releases.
#
# script: The script value is optional, and is the name of a script that
# is executed after bochs initialize the network interface. You can use
# this script to configure this network interface, or enable masquerading.
# This is mainly useful for the tun/tap devices that only exist during
# Bochs execution. The network interface name is supplied to the script
# as first parameter
#
# If you don't want to make connections to any physical networks,
# you can use the following 'ethmod's to simulate a virtual network.
# null: All packets are discarded, but logged to a few files.
# arpback: ARP is simulated. Disabled by default.
# vde: Virtual Distributed Ethernet
# vnet: ARP, ICMP-echo(ping), DHCP and read/write TFTP are simulated.
# The virtual host uses 192.168.10.1.
# DHCP assigns 192.168.10.2 to the guest.
# TFTP uses the ethdev value for the root directory and doesn't
# overwrite files.
#
#=======================================================================
# ne2k: ioaddr=0x300, irq=9, mac=fe:fd:00:00:00:01, ethmod=fbsd, ethdev=en0 #macosx
# ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:00, ethmod=fbsd, ethdev=xl0
# ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:00, ethmod=linux, ethdev=eth0
# ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:01, ethmod=win32, ethdev=MYCARD
# ne2k: ioaddr=0x300, irq=9, mac=fe:fd:00:00:00:01, ethmod=tap, ethdev=tap0
# ne2k: ioaddr=0x300, irq=9, mac=fe:fd:00:00:00:01, ethmod=tuntap, ethdev=/dev/net/tun0, script=./tunconfig
# ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:01, ethmod=null, ethdev=eth0
# ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:01, ethmod=vde, ethdev="/tmp/vde.ctl"
# ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:01, ethmod=vnet, ethdev="c:/temp"
#=======================================================================
# pnic: Bochs/Etherboot pseudo-NIC
#
# Example:
# pnic: enabled=1, mac=MACADDR, ethmod=MODULE, ethdev=DEVICE, script=SCRIPT
#
# The pseudo-NIC accepts the same syntax (for mac, ethmod, ethdev, script) and
# supports the same networking modules as the NE2000 adapter. In addition to
# this, it must be assigned to a PCI slot.
#=======================================================================
#pnic: enabled=1, mac=b0:c4:20:00:00:00, ethmod=vnet
#=======================================================================
#KEYBOARD_MAPPING:(键盘的映像)
# 通过这个的设定以决定是否使虚拟键盘采用与物理(实际)键盘一样的按键分布
# 一旦选择不一样的按键分布 一定要指定分布的映像
# Examples:
# keyboard_mapping: enabled=1, map=gui/keymaps/x11-pc-de.map
#=======================================================================
keyboard_mapping: enabled=0, map=
#=======================================================================
#KEYBOARD_TYPE:(还是键盘的设置 默认即可)
# Type of keyboard return by a "identify keyboard" command to the
# keyboard controler. It must be one of "xt", "at" or "mf".
# Defaults to "mf". It should be ok for almost everybody. A known
# exception is french macs, that do have a "at"-like keyboard.
#
# Examples:
# keyboard_type: mf
#=======================================================================
#keyboard_type: mf
#=======================================================================
#USER_SHORTCUT:(使用的捷径)
# 这里定义了键盘的快捷方式
#
# Example:
# user_shortcut: keys=ctrl-alt-del
#=======================================================================
#user_shortcut: keys=ctrl-alt-del
#=======================================================================
# I440FXSUPPORT:(设置PCI的 一般用不到)
# This option controls the presence of the i440FX PCI chipset. You can
# also specify the devices connected to PCI slots. Up to 5 slots are
# available now. These devices are currently supported: ne2k, pcivga,
# pcidev, pcipnic and usb_ohci. If Bochs is compiled with Cirrus SVGA
# support you'll have the additional choice 'cirrus'.
#
# Example:
# i440fxsupport: enabled=1, slot1=pcivga, slot2=ne2k
#=======================================================================
i440fxsupport: enabled=1
#=======================================================================
#USB_UHCI:(对USB的设定)
# This option controls the presence of the USB root hub which is a part
# of the i440FX PCI chipset. With the portX option you can connect devices
# to the hub (currently supported: 'mouse', 'tablet', 'keypad', 'disk', 'cdrom'
# and 'hub').
# If you connect the mouse or tablet to one of the ports, Bochs forwards the
# mouse movement data to the USB device instead of the selected mouse type.
# When connecting the keypad to one of the ports, Bochs forwards the input of
# the numeric keypad to the USB device instead of the PS/2 keyboard.
# To connect a flat image as an USB hardisk you can use the 'disk' device with
# the path to the image separated with a colon (see below). To emulate an USB
# cdrom you can use the 'cdrom' device name and the path to an ISO image or raw
# device name also separated with a colon.
# The device name 'hub' connects an external hub with max. 8 ports (default: 4)
# to the root hub. To specify the number of ports you have to add the value
# separated with a colon. Connecting devices to the external hub ports is only
# available in the runtime configuration.
#=======================================================================
#usb_uhci: enabled=1
#usb_uhci: enabled=1, port1=mouse, port2=disk:usbdisk.img
#usb_uhci: enabled=1, port1=hub:7, port2=cdrom:image.iso
#=======================================================================
# USB_OHCI:(同上)
# This option controls the presence of the USB OHCI host controller with a
# 2-port hub. The portX option accepts the same device types with the same
# syntax as the UHCI controller (see above). The OHCI HC must be assigned to
# a PCI slot.
#=======================================================================
#usb_ohci: enabled=1
#=======================================================================
#CMOSIMAGE:(设置加载在CMOS处的映像)
# This defines image file that can be loaded into the CMOS RAM at startup.
# The rtc_init parameter controls whether initialize the RTC with values stored
# in the image. By default the time0 argument given to the clock option is used.
# With 'rtc_init=image' the image is the source for the initial time.
#
# Example:
# cmosimage: file=cmos.img, rtc_init=image
#=======================================================================
#cmosimage: file=cmos.img, rtc_init=time0(时钟中断)
#=======================================================================
# MAGIC_BREAK:(调试时的魔法断点的启用)
# This enables the "magic breakpoint" feature when using the debugger.
# The useless cpu instruction XCHG BX, BX causes Bochs to enter the
# debugger mode. This might be useful for software development.
#
# Example:
# magic_break: enabled=1
#=======================================================================
#magic_break: enabled=1
#=======================================================================
# PORT_E9_HACK:(不了解)
# The 0xE9 port doesn't exists in normal ISA architecture. However, we
# define a convention here, to display on the console of the system running
# Bochs anything that is written to it. The idea is to provide debug output
# very early when writing BIOS or OS code for example, without having to
# bother with setting up a serial port or etc. Reading from port 0xE9 will
# will return 0xe9 to let you know if the feature is available.
# Leave this 0 unless you have a reason to use it.
#
# Example:
# port_e9_hack: enabled=1
#=======================================================================
#port_e9_hack: enabled=1
#=======================================================================
# DEBUG_SYMBOLS:(调试标志)
# This loads symbols from the specified file for use in Bochs' internal
# debugger. Symbols are loaded into global context. This is equivalent to
# issuing ldsym debugger command at start up.
#
# Example:
# debug_symbols: file="kernel.sym"
# debug_symbols: file="kernel.sym", offset=0x80000000
#=======================================================================
#debug_symbols: file="kernel.sym"
#=======================================================================
# other stuff
#=======================================================================
#load32bitOSImage: os=nullkernel, path=../kernel.img, iolog=../vga_io.log
#load32bitOSImage: os=linux, path=../linux.img, iolog=../vga_io.log, initrd=../initrd.img
#text_snapshot_check: enabled=1
#print_timestamps: enabled=1
#-------------------------
# PCI host device mapping
#-------------------------
#pcidev: vendor=0x1234, device=0x5678
#=======================================================================
# GDBSTUB:
# Enable GDB stub. See user documentation for details.
# Default value is enabled=0.
#=======================================================================
#gdbstub: enabled=0, port=1234, text_base=0, data_base=0, bss_base=0
#=======================================================================
# PLUGIN_CTRL:
# Controls the presence of optional plugins without a separate option.
# By default all existing plugins are enabled. These plugins are currently
# supported: 'acpi', 'biosdev', 'extfpuirq', 'gameport', 'iodebug',
# 'pci_ide', 'speaker' and 'unmapped'.
#=======================================================================
#plugin_ctrl: biosdev=0, speaker=0
#=======================================================================
# USER_PLUGIN:
# Load user-defined plugin. This option is available only if Bochs is
# compiled with plugin support. Maximum 8 different plugins are supported.
# See the example in the Bochs sources how to write a plugin device.
#=======================================================================
#user_plugin: name=testdev
#=======================================================================
# for Macintosh, use the style of pathnames in the following
# examples.
#
# vgaromimage: :bios:VGABIOS-elpin-2.40
# romimage: file=:bios:BIOS-bochs-latest, address=0xf0000
# floppya: 1_44=[fd:], status=inserted
#=======================================================================
总算完成了70%左右的翻译工作 不过 还是力不从心呀 E文能力
太差了 对一些名词还不知道 看来还要继续学习呀。
希望这些能给你带来帮助
不过能看完就很不错了
如果有错误一定要联系我呀 知错才能改呀!
studentol《A》163.com
QQ:416103612
2009年6月23日