Macfly project allows you to run one or more programs with a shifted clock compared to system clock. The programs have the same shift and are synchronized at the same time.
Components:
libmacfly.so library
macfly launcher
deloreand daemon managing the time shift
docbrown utility to send command to deloreand
libmacfly.so and macfly are written in C language, deloreand and docbrown are written in Python 2.3. The project is under GNU GPL license.
Here are some key features of "Macfly":
· Your program doesn't require any recompilation
· Resolution of one nanosecond (10-9)
· Change clock speed function
· Interactive mode (keyboard input) or daemon mode (interact with docbrown throw TCP socket) for deloreand
· Do not require root account (except for the installation)
Examples:
Play video
· Go forward
· Change video playing speed (from 0.1x to 5x)
· Works with: vlc
Play game
· Change game clock speed (slower or faster)
· Works with: xmoto, pingus
Send email in the past/future
· Works with: kmail
Test program using clock:
· date
· xclock
· etc.
Test special values dates:
· Y2K bug: 1999/12/31 23:59:59 => 2000/1/1 00:00:00)
· Year 2038 bug: 2038-01-19 04:14:07 => 1901-12-13 20:55:13
· Epoch 0: 1970/1/1 00:00
Test tar program: decompress with a negative shift of 6 days display a warning
$ macfly tar xf ~/testcase.tar
tar: testcase/yellowdude.3ds: time stamp 2007-04-28 12:21:13 is 61425.168111 s in the future
tar: testcase/logo-kubuntu.png: time stamp 2007-04-28 12:21:13 is 61425.167332 s in the future
Limitations:
Unchanged clocks:
· sleep() functions: sleep(), usleep(), nanosleep(), select()
· kernel syscalls: sys_time(), sys_gettimeofday(), ...
· direct access to hardware: /dev/rtc, RDTSC i386 instruction, ...
Product's homepage