This project provides ski, an ia64 instruction set simulator. Ski was originally developed by Hewlett-Packard and has been relicensed under the GNU Public License v2.



Ski is an IA-64 instruction set simulator, originally written by the Hewlett-Packard Company. It simulates the IA-64 architecture as defined by the Intel Itanium 2 architecture manuals. This is not a full platform simulator; i.e., no system chipset or PCI bus simulation is done. However, ski supports the full instruction set of the architecture, including privileged instructions and associated semantics.

Ski can be used in two operating mode: user- and system-mode. In user mode, you can run user level applications directly on top of the simulator. The emulation stops at the system call boundary. The system call is emulated by calling the host OS, such as x86 Linux. Conversions between 64-bit and 32-bit parameters are done by ski as needed. This allows fast execution of user programs. Most system calls are emulated, though the emulation is not always 100 percent accurate.

In system-mode, operating-system kernel development and execution is possible because interrupts and virtual memory behaviors are simulated. In this mode you can actually run the Linux kernel and, once booted, user applications can be run on top of the simulated kernel.

The ski simulator comes with three different interfaces. The simplest one is the batch mode, called bski. In this mode the simulator runs in non-interactive mode, very much like a shell running a script.

There is also a full-text curses-based mode, where you can interact with the simulator to inspect code, set breakpoints, and so on. This version is called ski.

Finally there is a graphical version called xski which gives you several windows where you can look at the code, inspect register contents, etc.

All three modes provides the same core simulation, only the interface is different.


Ski is available from Sourceforge:

From source

The source can be found in the files section of the ski project:

Once downloaded, the standard steps of ./configure, make, make install will build ski (see also Dependencies).

From the repository

Ski uses Mercurial for its source code control system. You can browse the current development tree at Note that all available Mercurial repositories for this project (including older versions) may be found at

Mercurial users can clone the complete tree with hg clone


ski requires a fairly reasonable GNU toolchain to get it running. As of this writing, it is known to build and work with GCC 4.1. Ski needs the following tools to build:


There is currently one mailing list for ski:

All current traffic occurs on this list. The need for other lists will be contemplated when necessary. You can subscribe at

Reporting bugs

Before reporting bugs, please read the FAQs section.

For any bugs found, report them using to project bugs page for ski at

Please include enough info that the bug can be easily recreated.



To Be Determined...



Of the web site, and current upstream maintainer: Al Stone (ahs3 at users dot sf dot net)

To be clear, there are a lot of folks within HP that have contributed to ski over the years. To all of them (you know who you are), a Big Thank You.


Support This Project Last updated: 12 August 2007 Logo