Main > Free Download Search >

Free using dynamic root disk to clone integrity virtual machines software for linux

using dynamic root disk to clone integrity virtual machines

Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 18389
High Level Virtual Machine 0.1

High Level Virtual Machine 0.1


High Level Virtual Machine is a toolkit for developing virtual machines for dynamic languages. more>>
High Level Virtual Machine is a toolkit for developing virtual machines for dynamic languages.
The High Level Virtual Machine is:
- Based on LLVM (Low Level Virtual Machine). LLVM is HLVMs sister project. HLVM gains tremendous capability from LLVM in the areas of code generation, bytecode storage, runtime execution, etc.
- Aimed at supporting dynamic languages such as Ruby, Python, Perl, Jython, Haskell, Prolog, etc.
- A complete compiler developers toolkit for creating new languages easily. To write a new compiler, language designers simply write a plugin that describes the language to HLVM and how to translate the grammar productions into HLVMs comprehensive Abstract Syntax Tree (AST). After that, HLVM handles all aspects of code generation, bytecode storage, XML translation, JIT execution or interpretation, and native compilation.
- A language interoperability framework. Because all front end compilers generate code in the same AST, they can interoperate. Use of the runtime library for common constructs (e.g. "string") allow even complex data types to be shared between languages. Users of HLVM can write complex programs in multiple languages and be assured the result can be executed efficiently.
- A code management system including code revisioning, interface versioning, automated recompilation, separation of workspaces, etc.
- Currently under development. Project started April 20th, 2006. Stay tuned to this web site for future developments.
<<less
Download (0.12MB)
Added: 2006-06-15 License: LGPL (GNU Lesser General Public License) Price:
1227 downloads
NVM Virtual Machine 2.0

NVM Virtual Machine 2.0


NVM Virtual Machine is a small, fast, extensible and portable virtual machine. more>> <<less
Download (0.28MB)
Added: 2007-04-27 License: GPL (GNU General Public License) Price:
546 downloads
C# Java Virtual Machine 1.0.1

C# Java Virtual Machine 1.0.1


C# Java Virtual Machine is a tiny implementation of the Java VM, including simple native classes. more>>
C# Java Virtual Machine is a tiny implementation of the Java VM, including simple native classes. This project is written using the C# language. The VM is very easily expandable by writing additional native or Java classes.
Enhancements:
- The DbConnection class, which provides a connection to MS SQL or PostgreSQL using ADO.NET, was added.
- The Syst.MachineName method, which returns the machine name, was added.
- String.startsWith and String.endsWith functions were added.
- Some comments for VM.cs were written.
<<less
Download (0.40MB)
Added: 2007-05-25 License: GPL (GNU General Public License) Price:
884 downloads
joeq virtual machine 20030812

joeq virtual machine 20030812


joeq virtual machine is a language-independent Java virtual machine implemented in Java. more>>
Joeq is a virtual machine and compiler infrastructure designed to facilitate research in virtual machine technologies such as Just-In-Time and Ahead-Of-Time compilation, advanced garbage collection techniques, distributed computation, sophisticated scheduling algorithms, and advanced run time techniques.
Joeq is entirely implemented in Java, leading to reliability, portability, maintainability, and efficiency. It is also language-independent, so code from any supported language can be seamlessly compiled, linked, and executed -- all dynamically.
Each component of the virtual machine is written to be independent with a general but well-defined interface, making it easy to experiment with new ideas.
Joeq is released as open source software, and is being used as a framework by researchers on five continents on topics ranging from automatic distributed virtual machines to whole-program pointer analysis.
Joeq is a virtual machine and compiler infrastructure designed to be a platform for research in compilation and virtual machine technologies. We had three main goals in designing the system. First and foremost, we wanted the system to be flexible. We are interested in a variety of compiler and virtual machine research topics, and we wanted a system that would not be specific to researching a particular area.
For example, we have interest in both static and dynamic compilation techniques, and in both type-safe and unsafe languages. We wanted a system that would be as open and general as possible, without sacrificing usability or performance.
Second, we wanted the system to be easy to experiment with. As its primary focus is research, it should be straightforward to prototype new ideas in the framework. With this in mind, we tried to make the system as modular as possible, so that each component is easily replaceable. Learning from our experience with Jalapeno, another virtual machine written in Java, we decided to implement the entire system in Java.
This makes it easy to quickly implement and prototype new ideas, and features like garbage collection and exception tracebacks ease debugging and improve productivity. Java, being a dynamic language, is also a good consumer for many of our dynamic compilation techniques; the fact that our dynamic compiler can compile the code of the virtual machine itself means that it can dynamically optimize the virtual machine code with respect to the application that is running on it. Javas object-oriented nature also facilitates modularity of the design and implementation.
Third, we wanted the system to be useful to a wide audience. The fact that the system is written in Java means that much of the system can be used on any platform that has an implementation of a Java virtual machine. The fact that Joeq supports popular input languages like Java, C, C++, Fortran, and even x86 binary code increases the scope of input programs. We released the system on the SourceForge web site as open source under the Library GNU Public License.
It has been picked up by researchers on five continents for various purposes, among them: automatic extraction of component interfaces, static whole-program pointer analysis, context-sensitive call graph construction, automatic distributed computation, versioned type systems for operating systems, sophisticated profiling of applications, advanced dynamic compilation techniques, system checkpointing, anomaly detection, secure execution platforms and autonomous systems. In addition, Joeq is now used as the basis of the Advanced Compilation Techniques class taught at Stanford University.
Joeq supports two modes of operation: native execution and hosted execution. In native execution, the Joeq code runs directly on the hardware. It uses its own run-time routines, thread package, garbage collector, etc. In hosted execution, the Joeq code runs on top of another virtual machine. Operations to access objects are translated into calls into the reflection library of the host virtual machine.
The user code that executes is identical, and only a small amount of functionality involving unsafe operations is not available when running in hosted execution mode. Hosted execution is useful for debugging purposes and when the underlying machine architecture is not yet directly supported by Joeq. We also use hosted execution mode to bootstrap the system and perform checkpointing, a technique for optimizing application startup times.
Joeq system consists of seven major parts:
- Front-end: Handles the loading and parsing of input files, such as Java class files, SUIF files, and binary object files.
- Compiler: A framework for performing analyses and optimizations on code. This includes the intermediate representation (IR) of our compiler.
- Back-end: Converts the compilers intermediate representation into native, executable code. This code can be output to an object file or written into memory to be executed. In addition, it generates metadata about the generated code, such as garbage collection maps and exception handling information.
- Interpreter: Directly interprets the various forms of compiler intermediate representations.
- Memory Manager: Organizes and manages memory. Joeq supports both explicitly-managed and garbage-collected memory.
- Dynamic: Provides profile data to the code analysis and optimization component, makes compilation policy decisions, and drives the dynamic compiler.
- Run-time Support: Provides runtime support for introspection, thread scheduling, synchronization, exception handling, interfacing to external code, and language-specific features such as dynamic type checking.
<<less
Download (1.0MB)
Added: 2005-04-22 License: LGPL (GNU Lesser General Public License) Price:
1645 downloads
Java::SJ::VirtualMachine 0.01

Java::SJ::VirtualMachine 0.01


Java::SJ::VirtualMachine Perl module is a Java virtual machine. more>>
Java::SJ::VirtualMachine Perl module is a Java virtual machine.

This module is used by Java::SJ::Config when generating virtual machine representations.

This module allows you to very easily run Java services that rely on complex configuration at the VM and library level. It also provides an easy way of specifying a sensible default configuration that can be overridden by specific applications should they need to.

The system is configured on a machine and application level. The system looks for configuration files in a set of well-known locations, currently these are:

* /etc/sj.conf
* .sj.conf in users HOME directory
* .sj.conf in current working directory

Every application is defined in terms of a similar configuration file. The configuration system has been designed so that it is easy to write a simple and minimal configuration file for a program.

Provided the system has a fairly complete configuration associated with it then an application configuration file need only have the class name to be executed.

<<less
Download (0.018MB)
Added: 2007-06-04 License: Perl Artistic License Price:
872 downloads
Virtual Drum Machine 0.3

Virtual Drum Machine 0.3


Virtual Drum Machine is a simple drum machine. more>>
Virtual Drum Machine is a simple drum machine.
It works for little endian/linux kind of machines. You may let it work on others machines, but you probably will get troubles with it.
You definitely need oss (or maybe alsa) for sound output, and a posix-like operating system. To let it work on a big endian machine should be painful.
You write a rhythm, then you compile it, then you are able to play it to your sound card or save it to a file.
The Virtual Drum Machine is made of
- the Rhythm Compiler,
- the runtime library.
The Virtual Drum Machine is in the public domain. Who needs a license? money makers? Protection against robbery? let me laugh... Read any text of law, you will see where the robbers reside.
A simple file would look like :
void main_rhythm(void)
{
tempo = 120;
- a
. b
. b
.
- a
.b
- a
.
. b
. b
- a c
. b
}
Install:
Do a "./configure" in the drums directory, then "make", then "make install", it should be alright. You can listen to some examples in the examples/ directory.
Who yo use it?
Write a rhythm. Compile it with "rc". Run the produced program. You are done.
See the examples/ directory to get the point.
When you run an example, try "-h" to get the available options.
It should be self-explanatory.
The rhythm compiler has several options. By running "rc --help", all should be clear.
Technical Details:
The compiler will parse the input file line by line.
If a line starts with "*" or "." (not counting leading white spaces), the whole line is seen as a rhythm line, and is transformed into C code. If not, it is passed as is to the C file.
Beware! You MUST NOT start any C code line by "*" or "."!
You can create as much functions as you want, write any C code you want. But remember that a line starting by "*" or "." is seen as a rhythm line and is translated by "rc" into C code.
You must provide a "void main_rhythm(void)" function, that will be called by the library. It is the starting point of your rhythm. It can be "void main_rhythm(int argc, char *argv[])" too, with common meaning for those parameters (non-C coders will have trouble with the Virtual Drum Machine).
You can change the tempo (ex. "tempo=100;") or the volume (ex "vol=0.4;") at any time. Each sample comes with its own volume and panning (ex. "a.vol = 0.1;" "a.pan=-0.8;"). Volumes range from 0 to what you want. 1 is for the normal volume. Panning ranges from -1 (left) to 1 (right). 0 is center. All values are double. You can use "volume" instead of "vol", and "panning" instead of "pan". There is no global panning, if you want all left, set all samples to left.
To run in stereo mode, dont forget "-s" when running the generated program. It is mono by default.
You absolutely need to compile and run the examples, and read them to get the point out of it!
The "rc.conf" file contains configuration informations. You specify the sample by "sample" followed by its name (the one you will use in your rhythm files), then the file that will be played. The name of the sample must start by a letter, followed by letters and/or numbers (it must be a valid C identifier, without "_" though). The configuration file contains the install directory, used by "rc" to compile your rhythms. Take a look at the one that is provided to see how to use it.
The sound files are simple wav files. They all should be of the same rate, which can be specified to the generated program, using the "-f" option (44100 is the default). (The library only handles very basic wav files, if yours dont work, you probably will have to modify the library for the program to handle it.)
When you add a sample, you must modify "rc.conf" for the changes to appear. The samples are hard-linked to the produced program, so if you change "sample a /some/dir/file1.wav" by "sample a /one/other/dir/file2.wav" in the configuration file, the previously generated programs will still use "/some/dir/file1.wav". You will have to compile them again to take the changes into account.
Enhancements:
- The code has been modified to let gcc 4 compile it.
<<less
Download (0.67MB)
Added: 2006-02-08 License: Public Domain Price:
943 downloads
Virtual Machine Viewer 0.0.1

Virtual Machine Viewer 0.0.1


Virtual Machine Manager software is a desktop user interface for managing virtual machines. more>>
Virtual Machine Manager software (virt-manager for short package name) is a desktop user interface for managing virtual machines. The project presents a summary view of running domains and their live performance & resource utilization statistics. A detailed view presents graphs showing performance & utilization over time. Ultimately it will allow creation of new domains, and configuration & adjustment of a domains resource allocation & virtual hardware. Finally an embedded VNC client viewer presents a full graphical console to the guest domain.

The application logic is written in Python, while the UI is constructed with Glade and GTK+, based on mockups provided by UI interaction designers. The libvirt Python bindings are used to interacting with the underlying hypervisor. This enables the application to be written independant of any particular hypervisor technology. Initially Xen was the primary platform supported, however, since libvirt 0.2.0 and virt-manager 0.3.1 it is possible to manage QEMU and KVM guests too. It is expected that support for additional hypervisors / virtualization products will expand even further over time as additional libvirt drivers are written.
The "Virt Install" tool (virtinst for short package name) is a command line tool which provides an easy way to provision operating systems into virtual machines. It also provides an API to the virt-manager application for its graphical VM creation wizard.

The "Virt Clone" tool (virtinst for short package name) is a command line tool for cloning existing inactive guests. It copies the disk images, and defines a config with new name, UUID and MAC address pointing to the copied disks.
The "Virtual Machine Viewer" application (virt-viewer for short package name) is a lightweight interface for interacting with the graphical display of virtualized guest OS. It uses GTK-VNC as its display capability, and libvirt to lookup the VNC server details associated with the guest. It is intended as a replacement for the traditional vncviewer client, since the latter does not support SSL/TLS encryption of x509 certificate authentication.

<<less
Download (0.081MB)
Added: 2007-08-22 License: GPL (GNU General Public License) Price:
804 downloads
Virtual Machine Manager 0.3.1

Virtual Machine Manager 0.3.1


Virtual Machine Manager (virt-manager for short package name) is a desktop application for managing virtual machines. more>>
Virtual Machine Manager (virt-manager for short package name) is a desktop application for managing virtual machines. It presents a summary view of running domains and their live performance & resource utilization statistics.

A detailed view presents graphs showing performance & utilization over time. Ultimately it will allow creation of new domains, and configuration & adjustment of a domains resource allocation & virtual hardware. Finally an embedded VNC client viewer presents a full graphical console to the guest domain.

The application logic is written in Python, while the UI is constructed with Glade and GTK+, based on mockups provided by UI interaction designers. The libvirt Python bindings are used to interacting with the underlying hypervisor.

This enables the application to be written independant of any particular hypervisor technology, although Xen is the current primary platform. When libvirt is ported to additional hypervisors minimal effort will be required to update the management UI.

<<less
Download (0.92MB)
Added: 2007-02-23 License: GPL (GNU General Public License) Price:
581 downloads
Dynamic Copyright It! 1.0

Dynamic Copyright It! 1.0


Dynamic Copyright it! is an easy-to-install, easy-to-use PHP script that adds copyright notices to your images dynamically. more>>
Dynamic Copyright it! is an easy-to-install, easy-to-use PHP script that adds copyright notices to your images dynamically, meaning that the copyright notices are generated on the fly.
If you get tired of changing the copyright on your images from year to year, this tools makes it so you never have to. You can use the Dynamic Copyright It! script for your own benefit, or add it to your web site for additional functionality.
Main features:
- Dynamic Copyright It! is easy to install. Just unzip and upload, or if youre using it on a local server, just unzip!
- Choose your copyright text, the font size, even the color!
- Dynamic Copyright It! integrates the copyright notice right in the image, so its difficult to remove.
- Copyright notices are added to images on-the-fly, making it so you can easily integrate other scripts to alter the copyright text site-wide without having to edit all of your images manually.
<<less
Download (0.50MB)
Added: 2006-03-08 License: GPL (GNU General Public License) Price:
1325 downloads
JavaDesktopEngine 1.0

JavaDesktopEngine 1.0


JavaDesktopEngine is a multi-process Java engine with an XML-RPC interface. more>>
JavaDesktopEngines aim is to produce a piece of software that is at the same time:
Shared virtual machine
It allows to launch different java programs inside the same VM. The VM will always be alive, so no more startup overhead and less memory used.
It uses our JDSVM(Java Desktop Shared Virtual Machine), which in turn is based on Javagroups great Echidna Project
Xml Rpc local server
This way it is possible for programs, even written in languages different from java, to access "services" exposed by the engine.
Plugin host
It has been built with a pluggable architecture in mind, so that it is possible to develop new "services" for the engine.
Linux/Windows service (next release)
It is run as a service, so that its "services" will always be available for other programs.
For those of us who make heavy use of java tools its always been quite frustrating to have to open lots of resource eager VMs just to launch very useful but simple programs. Moreover, VM starting for simple utilities is a real waste of time.
Weve all appreciated the difference when launching a compilation from inside an IDE. In this case javac is launched as a process inside an already active VM, and the difference is evident.
JDE in the beginning was born to try to address these problems. Having an always active VM where it is possible to launch processes in, means faster process start and less resources used. A lot of time is saved by from not loading again and again the VM.
Theres nothing new in this. Some very good related projects are alive and kicking on the net, some of them focusing on a complete Java desktop enviroment, some on just a shared VM. JDE positions itself a bit differently, as it can be seen as a java engine exposing pluggable services (shared VM being just one of these).
There are several approaches to implementing a shared VM, all of them with pros and cons. Weve chosen to use the great code from the Echidna Project for now.
The entrypoint of JDE is an XML-RPC server accepting calls for services. Everything needed from JDE can be obtained by making a call to it.
The main service exposed by JDE is obviously the java process launching one. By making a call, it is possible to launch a java process insisde the VM. Having an XML-RPC server allows us to use any language with xmlrpc capabilities to launch java programs. The package includes a simple python script, that can be easily used as launcher (see our simple tutorial for details).
Included is also a "Manager", a simple swing application with active process listing and process launching capabilities.
Hopefully, this one will evolve as far as there will be more services in JDE to be the reference manager for the engine.
Included plugins:
1) Java process Launcher. The one this project was started for. You can launch java processes inside the living VM.
2) Scripting engine. Via a simple xmlrpc call you can launch a script on the engine and get back results. The nice thing, as usual, is that being xmlrpc based, you can use it as a service called by anything written in any language. Currently supported scripting language is BeanShell. More will be available soon via BSF.
3) Fast editor Based on jEdit Syntax Package 2.2.1, a simple, fast and useful editor with only some of the nice features jEdit has got us used to.
Enhancements:
- This release should be a bit more robust when killing processes that make use of System.exit(0) without "dispose()".
- An icon for the GUI manager has been added, as well as a bat file for Windows systems.
<<less
Download (0.80MB)
Added: 2006-09-16 License: LGPL (GNU Lesser General Public License) Price:
1134 downloads
Virtual Appliances Base 0.1.059

Virtual Appliances Base 0.1.059


Virtual Appliances are nano-sized virtual machines with Web user interfaces for deploying instant infrastructure and application more>>
Virtual Appliances are nano-sized virtual machines with Web user interfaces for deploying instant infrastructure and applications.
The are Gentoo Linux based and optimized for use in VMware.
Summary Instructions for using the Base Virtual Appliance
Download the Virtual Appliance.
If you do not have VMware Player, Workstations, Server, GSX, or ESX, Download VMware Virtual Player or VMware Virtual Server and install it.
Unpack the Virtual Appliance zip or tar.bz2 file.
Use your VMWare product to open and run the VirtualAppliancesBase.vmx file
Observe your VMWare console. The Virtual Appliance IP address will be printed there.
Using your Web Browser, open the Virtual Appliance Management console at https://your_ipaddress:8000/
The Mangement console listens on port 8000 and uses https.
Login to the admin console. The factory username:password is admin:admin.
Change the admin password to something secret through Configuration|Authentication
Enter shared storage information in Configuration|Storage
Your shared storage files will now be available via the webserver on the Virtual Appliance at http://your_ipaddress
Enhancements:
- This is a new Virtual Appliance featuring an instant PostgreSQL server and phpPgAdmin.
- It is a fully self contained Virtual Appliance, only 14MB to download, and ready to use with no configuration.
<<less
Download (13.4MB)
Added: 2006-07-01 License: Free To Use But Restricted Price:
1212 downloads
Ghost for Linux 0.23

Ghost for Linux 0.23


Ghost for Linux is a hard disk and partition imaging and cloning tool similar to Norton Ghost. more>>
Ghost for Linux project is a hard disk and partition imaging and cloning tool similar to "Norton Ghost" and by Symantec.
The created images are optionally compressed, and they can be stored on a local hard drive or transferred to an anonymous FTP server.
A drive can be cloned using the "ClicknClone" function. g4l supports file splitting if the local filesystem does not support writing files >2GB. The included kernel supports ATA, serial-ATA, and SCSI drives.
Common network cards are supported. It is packaged as a bootable CD image with an ncurses GUI for easy use.
Enhancements:
- This release adds new kernels and syslinux, plus other support program options.
- It adds ntfs-3g to support writing to ntfs partitions for the local backup images and adds ntfsclone backups to local drives or partitions.
- Users can now copy the files from the CD image to a flash drive that has been made bootable, and it will then work from flash.
<<less
Download (32MB)
Added: 2007-08-17 License: GPL (GNU General Public License) Price:
586 downloads
Virtual Appliances Cacti Server Build 75

Virtual Appliances Cacti Server Build 75


Virtual Appliances are nano-sized virtual machines with Web user interfaces for deploying instant infrastructure. more>>
Virtual Appliances are nano-sized virtual machines with Web user interfaces for deploying instant infrastructure and applications. They are Gentoo Linux based and optimized for use in VMware and Xen.
Virtual Appliances are free to download and use, and you can choose from a simple Web server, an Apache Tomcat server, a MySQL server, and a PostgreSQL server.
Enhancements:
- This Virtual Appliance server runs Cacti, which is a network graphing solution based on RDDTool.
- It is used to provide real-time and historical visualization of network activities.
- The Cacti Server includes onboard MySQL and PHPmyAdmin in a 40MB download package to run under any VMWare product or VirtualPC.
- As with other Virtual Appliances, this Cacti Server can use Virtual Hard drives automatically, which allows for a database of any practical size.
<<less
Download (MB)
Added: 2006-12-07 License: Free To Use But Restricted Price:
624 downloads
Invisible IRC Project 1.1.0

Invisible IRC Project 1.1.0


Invisible IRC Project is a three-tier, peer distributed network designed to be a secure and private transport medium. more>>
Invisible IRC Project is a three-tier, peer distributed network designed to be a secure and private transport medium for high speed, low volume, dynamic content. IIP uses Trent that facilitates nickname and channel control.
Main features:
- Perfect Forward Security using Diffie-Hellman Key Exchange Protocol
- Constant session key rotation
- 128 bit Blowfish node-to-node encryption
- 160 bit Blowfish end-to-end encryption
- Chaffed traffic to thwart traffic analysis
- Secure dynamic routing using cryptographically signed namespaces for node Identification
- Node level flood control
- Seamless use of standard IRC clients
- Gui interface
- Peer distributed topology for protecting the identity of users
- Completely modular in design, all protocols are plug-in capable
Enhancements:
- System tray icon recovery on exporer crash (windows)
- Commandline -h argument displayed even if not configured (unix)
- Path fix for logfile location (unix)
- install-local added in Makefile (unix)
- Ignoring empty node.ref from server
- FreeBSD compatibility patch in socket code
- iip.log and mynode.ref also stored in ~/.iip/ (unix)
- Entropy gathering detects repeated sequences of characters and multibyte characters.
<<less
Download (0.13MB)
Added: 2006-07-13 License: GPL (GNU General Public License) Price:
1203 downloads
Java Binary Enhancement Tool 3 R1

Java Binary Enhancement Tool 3 R1


Java Binary Enhancement Tool is a Java assembler, dissassembler, and binary editor. more>>
The Java Binary Enhancement Tool (JBET) is a general Java program analysis and manipulation tool. Existing class files can be disassembled, reassembled, or edited programmatically through the JBET API. JBET can also be used to create new Java class files from scratch. JBET uses a convenient internal representation of all the contents of Java binary (.class) files, allowing the user to edit the classes easily, in a structured manner.

JBET was developed as part of the DARPA Self-Protecting Mobile Agents project under the OASIS and Active Networks programs (contract number N66001-00-C-8602) in order to study automated software obfuscation.

The Java language was chosen for this project because of the (relative) ease of constructing binary editing tools provided by the large amount of type information present in the class files. Our two reports, the Obfuscation Techniques Evaluation Report, and the Obfuscation Report, are available from the download area. The obfuscation tool developed is not part of this release.

JBET was also used in the DARPA/AFRL Survivable Server project (contract number F30602-00-C-0183) to add additional security checks to the Java Standard Library. (The Java SecurityManager API does not support many desirable security checks, such as continued authorization of file accesses after opening.)

JBET was used to replace the native method references in the Java standard library with stubs that call a pluggable security policy. This tool, called Jpolicy, is also available for download at this website. Jpolicy is very incomplete at this time, but may be interesting to those working in Java security or changing the standard library themselves.

The internal representation of Java class files used by JBET is intented to make it easy for programmers to write Java binary code transforms. Each element of Java class files has a corresponding internal data structure: ClassInfo for entire classes, MethodInfo for methods, FieldInfo for fields, Snippit for code blocks, and Instruction for individual instructions. Snippit and Instruction understand Java opcode syntax and semantics, allowing automated creation of valid Java programs. A Java-compatible class verifier is also included.

Some code transforms are difficult to program directly by manipulating Java instructions. For those transforms, a directed acyclic graph (DAG) representation of code is available. In the DAG representation, each basic block has a corresponding DAG, with a set of input and output nodes. Edges in the graph connect "producer" nodes (such as constants, or the result of calculations) to "user" nodes (such as method calls or other calculations). Methods are divided into basic blocks and control flow is stored at the basic block level (possible because Java has only fixed jump targets)

JBET requires a Java 1.4 virtual machine to run, although it can operate on class files from earlier Java versions. The packaging and build environment supplied supports Linux and Windows with Cygwin; however, the build process is simple and could be performed manually on other platforms. Perl is required for regression testing.

Jpolicy requires a Java 1.4 virtual machine to build, either Linux or Windows NT/XP with Cygwin. gcc is required for building on Windows (supplied with Cygwin). The runtime system can be either Java 1.3 or 1.4 (with Suns JVM only), running on Linux or Windows NT/XP. Windows 9x and Windows 2000 may work as well, but have not been tested.

Installation

1. Install jdk 1.4.1.
2. Set CLASSPATH to jdk1.4.1/jre/lib/rt.jar
3. cd src; make
4. If that didnt work, examine the makefile. java or javac may not be in the path.
5. To build a jar file that can be used with "java -jar jbet.jar", run "make jar".
6. If you have perl installed, run the tests with "make test".
Optionally, run "make regen; make test".

Make a symbolic link from jbet3/bin/jbet to somewhere in your path.

Usage

JBET uses the JNI format for class names, and JNI type and method descriptors. For a summary of this syntax, use jbet help syntax. Suns JVM specification may also be helpful.

To look at a class disassembly, use jbet print. Try disassembling a class you have source for, and was built with debug info (-g): jbet -P < classpath > print < classname >. Suns JVM specification has an instruction reference.
<<less
Download (0.19MB)
Added: 2005-03-07 License: BSD License Price:
1697 downloads
Secleted [ 0 ] software to compare
  • Page: 1 of 5
  • 1
  • 2
  • 3
  • 4
  • 5