Rev 31 | Rev 33 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 31 | Rev 32 | ||
---|---|---|---|
Line 239... | Line 239... | ||
239 | QEMU emulates several processor architectures. We have used it to emulate |
239 | QEMU emulates several processor architectures. We have used it to emulate |
240 | ia32 and amd64. It can simulate SMP, but contrary to Bochs, it uses dynamic |
240 | ia32 and amd64. It can simulate SMP, but contrary to Bochs, it uses dynamic |
241 | translation of emulated instructions and performs much better because of |
241 | translation of emulated instructions and performs much better because of |
242 | that. |
242 | that. |
243 | 243 | ||
- | 244 | This emulator seemed to realistically emulate the {\tt hlt} instruction, |
|
- | 245 | which was nice for those of us who use notebooks as their development |
|
- | 246 | machine. |
|
- | 247 | ||
244 | \subsection{Simics} |
248 | \subsection{Simics} |
- | 249 | Simics simulator can be compared to a Swiss-army knife for operating system debugging. |
|
- | 250 | This proprietary piece of software was available to us under an academic license for free. |
|
- | 251 | ||
- | 252 | Simics can be set to simulate many different configurations of many different machines. |
|
- | 253 | It has the most advanced debugging features we have ever seen. To highlight some, its |
|
- | 254 | memory access tracing ability has been really helpfull to us. During device driver |
|
- | 255 | development, we appreciated the possibility to turn logging of the devices to a specified |
|
- | 256 | verbosity. |
|
- | 257 | ||
- | 258 | We used it to test and develop amd64 and ia32 architectures in SMP mode and mips32 architecture in UP mode. |
|
- | 259 | ||
- | 260 | Regardless of its invaluable qualities, it has still contained bugs. One of the most |
|
- | 261 | serious was bug with ticket \#3351. {\OP} discovered that its BIOS rewrites kernel memory |
|
- | 262 | during application processors start. Another bugs found were related to amd64 and mips32. |
|
- | 263 | As for amd64, Simics did not report general protection fault when {\tt EFER.NXE} was 0 and a non-executable |
|
- | 264 | page was found (\#4214). As for mips32, Simics misemulated {\tt MSUB} and {\tt MSUBU} instructions. |
|
- | 265 | ||
245 | \subsection{Ski} |
266 | \subsection{Ski} |
246 | \subsection{VMware} |
267 | \subsection{VMware} |
247 | 268 | ||
248 | \section{Authoring tools} |
269 | \section{Authoring tools} |