If you'd like to know what's under the hood you are welcome to inspect UltraDefrag sources. You can either use an online svn browser or download sources from SourceForge. Alternatively you can setup an SVN client (for instance TortoiseSVN) and check sources out from their base address.
Essential parts of UltraDefrag are written in four programming languages:
UltraDefrag core libraries are written in pure C for compatibility with Windows boot environment where only primitive ntdll interfaces are available. Both graphical and command line tools are written in C++ on top of wxWidgets library which helps to keep things simple. For configuration purposes and reports generation the program uses the Lua scripting language. UltraDefrag installers are written in NSIS.
First of all, to build the program download and unpack its sources somewhere. Make sure the path doesn't contain spaces (GNU make doesn't like them). Then install the following software:
To configure build environment follow these steps:
To build UltraDefrag use the following commands:
If you need an IDE for development install Code::Blocks as well. To launch it in correct environment type:
If you'd like to know how the build process works inspect .cmd files - they contain the complete information.
Follow these links to understand better UltraDefrag design and internals.
Hidden features of Windows batch files
Windows command line syntax
Rob van der Woude's scripting pages
The Art of Computer Programming
Windows native API reference
Windows x86 system call table
Inside Windows NT disk defragmenting
Improvements in Windows 7
Improvements in Windows XP
Defragmenting Files (Windows)
Master File Table (Windows)
Design apps for the Windows desktop
Writing High-DPI Win32 Applications
The Art of Unix Programming
GNU coding standards
Information for maintainers of GNU software
Writing reentrant and threadsafe code
A short guide to mastering thread-safety
◄ Translation | Credits and License ▶ |