Newsletter Second Issue V5 Layout 1
Total Page:16
File Type:pdf, Size:1020Kb
March 2010 www.keep-project.eu KEEPING EMULATION ENVIRONMENTS PORTABLE Newsletter Abstract The very success of computing technology, where machines are rapidly superseded, has created a serious and growing challenge Inside this issue of how to preserve access to digital material originally produced on machines which have since become obsolete. Cultural her- KEEP 1 itage organizations are particularly sensitive to the threat of major data loss resulting from technical obsolescence. KEEP Cultural Heritage 2 (Keeping Emulation Environments Portable) will develop an Em- About Emulators portability ulation Access Platform to enable accurate rendering of both static and dynamic digital objects: text, sound, and image files; Games and game developers 6 multimedia documents, websites, databases, videogames etc. The Case for Local Software Preservation You are now reading the second newsletter produced by partners of KEEP project approximately one year after the project’s in- Events 9 ception. In the first half of 2009, research was undertaken into media carriers and available transfer tools. Furthermore, an in- vestigation was carried out into the potential legal issues arising Long-term preservation of digital objects not only entails secure when copying information from original data carriers, and a storage and management, but also includes the development study about metadata standards and approaches in Europe has and execution of strategies to access and render these objects, been produced. Finally, an investigation was conducted into the now and in the future. Such strategies can roughly be divided state-of-the-art in emulation. By the end of 2009, a greater un- into two groups: migration and emulation. Migration is focused derstanding of existing emulation techniques and their applica- on the digital object itself. Emulation does not focus on the dig- bility as strategies for digital preservation was developed. Also, ital object, but on the hardware and software environment in user requirements analysis was carried out in the National li- which the object is rendered. braries of France, Germany and the Netherlands, and a design has been formulated for creating flexible, user-friendly emula- It aims at (re)creating an environment in which the digital object tion services, media carriers and media transfer tools. can be rendered in its original form. This is done by an emula- tor, a software application that runs on a host computer plat- form and recreates the targeted platform. The advantages of Introduction to KEEP emulation is that the original digital object can be left un- touched, no periodic migration cycles are needed, and func- Keeping Emulation Environments Portable (KEEP) is a medium tionality and appearance of the object are preserved by using its scale research project started on 1 February 2009 co-financed authentic software environment. The KEEP project recognizes by the 7th Framework Programme’s ICT-3-4.3 Digital libraries these issues and presents an integrated solution to all challenges and technology-enhanced learning priority. mentioned above. KEEP address all aspects ranging from safe- guarding the original bits from the carrier to offering online serv- Accessing digital material requires the mediation not just of a ices to end-users via a highly portable emulation framework computer but a computer compatible with the preserved mate- running on any possible device. rial. The very success of computing technology where machines are rapidly superseded has created a serious and growing chal- Project KEEP will develop an Emulation Access Platform to en- lenge of how to preserve access to digital material produced on able the accurate rendering of a broad range of static and dy- obsolete machines. Over time individuals and organisations namic digital object, designed for a wide variety of computer build up digital assets comprising a wide variety of digital objects systems, so that they can be securely accessed in the long term ranging from plain text to multimedia applications and websites. Although primarily aimed at Cultural Heritage institutions, this The central goal of KEEP is to provide new tools for accessing Emulation Access Platform will also serve the needs of a wide any digital object both at present and in the long term. range of organisations and individuals due to its universal ap- proach. KEEP is co-financed by the European Union’s FP7 Programme. The project is coordinated by the Bibliothèque naionale de France 1 March 2010 www.keep-project.eu Cultural Heritage - About Emulator portability We have to wonder about the conditions required to permit Software portability these virtual environments to run on future hardware or, in Emulators raise the same questions as any software in terms of other words, to study the conditions of emulator portability. portability. As we know, runable files are called “binaries”and re- This is one of the gauntlets taken up by the KEEP Project. sult from the compilation of “source code” files for a certain en- vironment. Then, two main strategies must be distinguished: by Pierre Echegaray and Jean-Philippe Humblot, Bibliothèque nationale de France ▪ Binaries portability This can be illustrated by the Java language: once a program is generated for the Java virtual machine (JVM), it can be executed The BnF has been using emulators for many years in order to on any environment which disposes of a JVM implementation simulate computer-based machines for which it possesses pub- such as MS Windows, Linux or Mac OS. Its portability on future lications and ensure their communication. Enabling to create vir- environments relies entirely on the capacity to adapt the JVM to tual environments, emulation appears to be the only solution to them but no future compilation is required. untie the link with original hardware, formerly necessary to run these publications. ▪ Sources portability In this scenario, sources are adapted to take into account several In this article, we explain the general principles of software porta- target environments for compilation. Used in conjunction with bility and show how they were applied for writing 10 emulators compiler facilities, the same program code allows to generate used in our Library. As we will see, these emulators have in com- different binaries for different running platforms, operating sys- mon to be open source, written in C or C++, use standardized tems or processors. input/output (I/O) libraries and can be compiled for several tar- get environments through an open source compiler: GCC. KEEP is co-financed by the European Union’s FP7 Programme. The project is coordinated by the Bibliothèque naionale de France 2 March 2010 www.keep-project.eu The first strategy imposes to focus on the definition of a virtual In the following, we will focus on the steps required and prob- machine (VM): portability will rely mainly on its capacities to be lem that may occur during the process of porting sources of em- adapted to different target platform. In the second case, porta- ulators on a new GCC target. bility focuses on the compilation’s environment required for em- ulators’ generation. This is the GNU Compiler Collection (or Compilation steps GCC)’s approach. The first action of a generation process with GCC is to run a KEEP uses both strategies: it will define a new VM, both fitted to “configure” script on the host platform. This script is generated facilitate its own portability and emulator binaries execution, and by the “autoconf” configuration scripts that can make decisions will study source portability so as to easily adapt emulator’s based on a canonical name for the system type, or target triplet. source code and the compilation chain to create binaries for this VM. The “configure” script is written in UNIX shell and detects all in- formation about the software components which can be used Compilation tool on the host (library, runtime, processor, ...). It generates some “makefile” scripts and “include” files, and sets some macro di- One of the most famous compilation suite, GCC (GNU Com- rectives (#define) adapted to the environment’s capabilities. All piler Collection) is produced by the GNU Project and supports these scripts and files are used to allow GCC to produce the various programming languages. It is a key component of the final executable files or binaries. GNU toolchain which allows portability of applications running on many different platforms, using many different processors, ex- On the other hand, emulators’ sources code is structured to ecuting on all kind of operating systems: portability is achieved embed specific instructions related to each particular target, in in particular by providing the specificities of the target platform terms of operating system or I/O libraries like DIRECTX or SDL. and adapting (or porting) source codes to take into account these properties. Source portability According to GCC general philosophy, a target is defined by a Knowing this process, let’s explore the requirements and cost of string called a triplet (though it may be composed of 2, 3 or porting existing emulators on a new target ? even 4 terms) like “i686-pc-mingw32” or “powerpc-apple-dar- win8.9.0”. GCC is to be modified within the project so as to In a first approach, if we don’t need to access the real hardware allow generation of binary code for the KEEP virtual processor except the processor, the generated code based on the target and environment which will be defined as a new target. We fore- definition is self sufficient : a program running a simple calculus, see to define a new target “keep-virtual-elf” so that the compiler for instance an addition such as 1+1, should execute in the vir- will generate pure code for the virtual machine. tual environment. It is important to notice that GCC allows to produce binaries But in the real world, software will need to interact with the user for the environment it is running on (the host platform), or to and will call at least basic I/O functions like “open”, “read”, any other environment defined as a possible target.