<HTML> <HEAD> <META NAME="description" CONTENT="xorriso, creates, loads, manipulates and writes ISO 9660 filesystem images with Rock Ridge extensions"> <META NAME="keywords" CONTENT="xorriso, libburn, libburnia, burn, CD, DVD, ISO, ISO 9660, RockRidge, Rock Ridge, Linux, FreeBSD, recording, burning, CD-R, CD-RW, DVD-R, DVD-RW, DVD+RW, DVD+R, DVD+R DL, BD-RE, BD-R, scdbackup"> <META NAME="robots" CONTENT="follow"> <TITLE>xorriso homepage english</TITLE> </HEAD> <BODY BGCOLOR="#F5DEB3" TEXT=#000000 LINK=#0000A0 VLINK=#800000> <FONT SIZE=+1> <CENTER> <P><H2> Homepage of </H2> <H1> xorriso </H1> <H2>ISO 9660 Rock Ridge Filesystem Manipulator for Linux and FreeBSD</H2> </CENTER> <P> <H2>Purpose:</H2> xorriso copies file objects from POSIX compliant filesystems into Rock Ridge enhanced ISO 9660 filesystems and allows session-wise manipulation of such filesystems. It can load the management information of existing ISO images and it writes the session results to optical media or to filesystem objects. <BR> Vice versa xorriso is able to restore file objects from ISO 9660 filesystems. </P> <P> <HR> <A HREF="#download">Direct hop to download links -></A> <P> <H2>Hardware requirements:</H2> About any CD, DVD, or BD recorder produced in the recent ten years. <BR> <A HREF="http://libburnia-project.org">libburn</A> supports recorders which are compliant to standards MMC-1 for CD and MMC-5 for DVD or BD. Linux and FreeBSD allow to access drives connected via SCSI, PATA (aka IDE, ATA), USB, or SATA. <BR> </P> <P> <H2>Software requirements :</H2> <DL> <DT>Linux with kernel 2.4 or higher, libc, libpthread :</DT> <DD>With kernel 2.4 an ATA drive has to be under ide-scsi emulation.</DD> <DD>With kernel 2.6 the drive should not be under ide-scsi.</DD> <DT>or FreeBSD, libc, libpthread :</DT> <DD>ATAPI/CAM support has to be enabled in the kernel, see atapicam(4).</DD> <DD>libcam has to be installed.</DD> <DD>libiconv has to be installed.</DD> <DT>or some other X/Open system, libc, libpthread :</DT> <DD> There will be no direct operation of optical drives, but only POSIX i/o with objects of the local filesystem. </DD> <DD> Might work with DVD-RAM, DVD+RW, BD-RE but rather not with CD, DVD-R, DVD+R, BD-R. </DD> </DL> <H3>Optional supporting software:</H2> <DL> <DT>libreadline and libreadline-dev</DT> <DD>eventually make dialog more convenient.</DD> <DT>libacl and libacl-devel</DT> <DD>eventually allow on Linux to get and set ACLs.</DD> <DT>zlib and zlib-devel</DT> <DD>eventually allow zisofs and gzip compression.</DD> </DL> </P> <P> This program has been tested on Linux, FreeBSD, and Solaris systems.<BR> For ports to other usable systems <A HREF="#contact">contact us</A>. </P> <HR> <P> <H2>Special features:</H2> <UL> <LI> ISO 9660 formatter and burner for CD, DVD, BD are fixely integrated. </LI> <LI> Operates on an existing ISO image or creates a new one. </LI> <LI> Copies files from filesystem into the ISO image and vice versa. </LI> <LI> Changes file properties, renames or deletes file objects in the ISO image. </LI> <LI> Updates ISO subtrees incrementally to match given disk subtrees. </LI> <LI> Can record and restore hard link relations, ACL, and xattr. </LI> <LI> Can attach MD5 checksums to each data file and the whole session. </LI> <LI> File content may get zisofs or gzip compressed or filtered by external processes. </LI> <LI> Writes result as completely new image or as add-on session to optical media or filesystem objects. </LI> <LI> Can activate ISOLINUX boot images by El Torito boot record. </LI> <LI> Can perform multi-session tasks as emulation of mkisofs and cdrecord. </LI> <LI> Can issue commands to mount older sessions on Linux or FreeBSD. </LI> <LI> Can check media for damages and copy readable blocks to disk. </LI> <LI> Scans for optical drives, blanks re-useable optical media, formats media. </LI> <LI> Suitable for: CD-R, CD-RW, DVD-R, DVD-RW, DVD+R, DVD+R DL, DVD+RW, DVD-RAM, BD-R, BD-RE. </LI> <LI> Reads its instructions from command line arguments, dialog, and batch files. </LI> <LI> Provides navigation commands for interactive ISO image manipulation. </LI> </UL> </P> <P> <H2>Command Examples:</H2> <DL> <DT>Get an overview of drives and their addresses</DT> <DD>#<KBD> xorriso -devices</KBD></DD> <DD><KBD>...</KBD></DD> <DD><KBD>0 -dev '/dev/sr0' rwrw-- : 'TSSTcorp' 'CDDVDW SH-S203B'</KBD></DD> <DD><KBD>1 -dev '/dev/scd1' rwrw-- : 'PHILIPS ' 'SPD3300L'</KBD></DD> <DD><KBD>2 -dev '/dev/hda' rwrw-- : 'HL-DT-ST' 'DVD-ROM GDR8162B'</KBD></DD> <DD><KBD>...</KBD></DD> <DT>Being superuser avoids permission problems with /dev/srN resp. /dev/hdX . </DT> <DT>Ordinary users should then get granted rw access to the /dev files as listed by option -devices.</DT> <DT> </DT> <DT>Options are either performed as program arguments or as dialog input. Some options have a parameter list of variable length. This list has to be terminated by word '--' or by the end of the input line. Option -add may accept pathspecs of form target=source as known from program mkisofs.</DT> <HR> <DT>Get info about a particular drive and loaded media:</DT> <DD>$<KBD> xorriso -indev /dev/sr0 -du / -- -toc 2>&1 | less</KBD></DD> <DT>Make re-usable media writable again, delete any ISO 9660 image, eventually prepare yet unused BD-RE:</DT> <DD>$<KBD> xorriso -outdev /dev/sr0 -blank as_needed -eject all</KBD></DD> <DT> <HR> </DT> <DT>Write some directories into a new or existing ISO 9660 image:</DT> <DD>$<KBD> xorriso -dev /dev/sr0 -add /home/me/sounds /home/me/pictures </KBD></DD> <DT>Have a look at the result:</DT> <DD>$<KBD> xorriso -indev /dev/sr0 -du / -- -toc 2>&1 | less</KBD></DD> <DT> <HR> </DT> <DT>Create new ISO-9660 filesystem image, compose content, adjust permissions to make it publicly read-only, write it to media and immediately eject media without previously reloading the written image. </DT> <DD>$<KBD> cd /home/me</KBD></DD> <DD>$<KBD> xorriso -outdev /dev/sr0 -blank as_needed \</KBD></DD> <DD><KBD> -map /home/me/sounds /sounds \</KBD></DD> <DD><KBD> -map /home/me/pictures /pictures \</KBD></DD> <DD><KBD> -rm_r /sounds/indecent '/pictures/*private*' -- \</KBD></DD> <DD><KBD> -cd / \</KBD></DD> <DD><KBD> -add pictures/private/horses* -- \</KBD></DD> <DD><KBD> -chmod_r a+r,a-w / -- \</KBD></DD> <DD><KBD> -find / -type d -exec chmod a+x -- \</KBD></DD> <DD><KBD> -volid SOUNDS_PICS_2008_01_16 \</KBD></DD> <DD><KBD> -commit_eject all</KBD></DD> <DT> <HR> </DT> <DT>Load the previous session from media, remove (i.e. hide) directory /sounds, rename /pictures/private/horses, add new directory trees /sounds and /movies, disallow any access for group and others. Finally write as additional session to media and eject:</DT> <DD>$<KBD> xorriso -dev /dev/sr0 \</KBD></DD> <DD><KBD> -rm_r /sounds -- \</KBD></DD> <DD><KBD> -mv /pictures/private/horses /horse_show -- \</KBD></DD> <DD><KBD> -map /home/me/prepared_for_dvd/sounds_dummy /sounds \</KBD></DD> <DD><KBD> -map /home/me/prepared_for_dvd/movies /movies \</KBD></DD> <DD><KBD> -chmod_r go-rwx / -- \</KBD></DD> <DD><KBD> -volid SOUNDS_PICS_2008_01_17 \</KBD></DD> <DD><KBD> -commit_eject all</KBD></DD> <DT> <HR> </DT> <DT>Merge the various sessions from old readable media into a single session on new writeable media, cleaning out all invalidated files and session overhead. Touch / in order to mark the image as worth to be written. <BR> Important: -indev and -outdev have to be different drives. </DT> <DD>$<KBD> xorriso -indev /dev/dvd \</KBD></DD> <DD><KBD> -alter_date a +0 / -- \</KBD></DD> <DD><KBD> -outdev /dev/sr0 -blank fast \</KBD></DD> <DD><KBD> -commit_eject all</KBD></DD> <DT> <HR> </DT> <DT>Dialog mode accepts one or more options per line. An option and all its arguments have to be given in one single line. Backslash may be used to mark a line as incomplete so it gets continued by the next input line. <BR> Command -end stops the program run. It will write eventually pending changes to media, if that has not already been done by a previous -commit.</DT> <DD>$<KBD> xorriso -dialog on</KBD></DD> <DD><KBD>enter option and arguments :</KBD></DD> <DD><KBD><B>-dev /dev/sr0</B></KBD></DD> <DD><KBD>enter option and arguments :</KBD></DD> <DD><KBD><B>-map /home/me/prepared_for_dvd/sounds_dummy /sounds</B></KBD></DD> <DD><KBD>enter option and arguments :</KBD></DD> <DD><KBD><B>-map /home/me/prepared_for_dvd/movies \</B></KBD></DD> <DD><KBD>Trailing backslash : Enter rest of line (or @@@ to clear it) : </KBD></DD> <DD><KBD><B> /movies</B></KBD></DD> <DD>Available navigation commands: -cd, -ls, -du, -find</DD> <DD><KBD>enter option and arguments :</KBD></DD> <DD><KBD><B>-commit</B></KBD></DD> <DD>... perform further commands and finally do:</DD> <DD><KBD>enter option and arguments :</KBD></DD> <DD><KBD><B>-end</B></KBD></DD> <DT> <HR> </DT> <DT>The following command performs incremental backup. It can be run on blank media to create a copy of the mentioned disk directory trees, and it can be run on appendable media to perform a minimal set of change operations which update the old ISO copies to match the new disk trees. Older states can be retrieved by help of mount options like "sbsector=" or by help of xorriso option -mount. <BR> Eventual ACL, xattr and hardlink relations will be recorded. MD5 checksums will be computed and recorded. Data reading will be avoided by accelerator option -disk_dev_ino. After writing, the new session will be checked by its recorded MD5. <BR> Only blank media or media with volume id "PROJECTS_MAIL_..." will be accepted. Files with names ending by ".o" or ".swp" are excluded by options -not_leaf. </DT> <DD>$<KBD> xorriso -for_backup -disk_dev_ino on \</KBD></DD> <DD><KBD> -assert_volid 'PROJECTS_MAIL_*' FATAL \</KBD></DD> <DD><KBD> -dev /dev/sr0 \</KBD></DD> <DD><KBD> -volid PROJECTS_MAIL_"$(date '+%Y_%m_%d_%H%M%S')" \</KBD></DD> <DD><KBD> -not_leaf '*.o' -not_leaf '*.swp' \</KBD></DD> <DD><KBD> -update_r /home/thomas/open_source_projects /open_source_projects \</KBD></DD> <DD><KBD> -update_r /home/thomas/personal_mail /personal_mail \</KBD></DD> <DD><KBD> -commit -toc -check_md5 FAILURE -- -eject all</KBD></DD> <DT> To apply zisofs compression to those data files which get newly copied from the local filesystem, perform immediately before -commit : <DD><KBD> -hardlinks perform_update \</KBD></DD> <DD> <KBD> -find / -type f -pending_data -exec set_filter --zisofs -- \</KBD></DD> </DD> </DT> <DT> <HR> </DT> <DT> Operating systems usually mount the most recent session on media. xorriso can issue the appropriate mount commands for older sessions. First get an overview of the sessions on the media: </DT> <DD>$<KBD> xorriso -outdev /dev/sr0 -toc</KBD></DD> <PRE> TOC layout : Idx , sbsector , Size , Volume Id ISO session : 1 , 0 , 104719s , PROJECTS_MAIL_2008_08_10_231435 ISO session : 2 , 106928 , 6785s , PROJECTS_MAIL_2008_08_14_184548 ... ISO session : 76 , 820384 , 11035s , PROJECTS_MAIL_2009_01_04_191150 </PRE> <DT> Then become superuser and let xorriso mount the session of August 14, 2008 to directory /mnt: </DT> <DD>#<KBD> xorriso -osirrox on -mount /dev/sr0 volid '*_2008_08_14_*' /mnt </KBD></DD> <DT> To be later unmounted by: <KBD>umount /mnt</KBD> </DT> <DT> <HR> </DT> <DT> After the user has already created a suitable file tree on disk and copied the ISOLINUX files into subdirectory ./boot/isolinux of that tree, xorriso can burn an El Torito bootable media: </DT> <DD>$<KBD> xorriso -outdev /dev/sr0 -blank as_needed \</KBD></DD> <DD><KBD> -map /home/me/ISOLINUX_prepared_tree / \</KBD></DD> <DD><KBD> -boot_image isolinux dir=/boot/isolinux</KBD></DD> <DT> An additional MBR is generated if the file isolinux.bin is modern enough (syslinux version 3.72) and ready for "isohybrid". An MBR enables booting from hard disk or USB stick. <HR> </DT> <DT>ISO images may not only be stored on optical media but also in regular disk files or block devices for full multi-session operation. </DT> <DD>$<KBD> xorriso -dev /tmp/regular_file ...other.options...</DD> <DT> A default setting for safety reasons requires that files below /dev/ need prefix "stdio:" if they do not lead to MMC burner devices. Be cautious not to overwrite your hard disk instead of your USB stick: </DT> <DD>$<KBD> xorriso -dev stdio:/dev/sdb ...other.options...</DD> <DT>Other file types are suitable only for writing but not for reading:</DT> <DD>$<KBD> xorriso -outdev /tmp/named_pipe ...other.options...</DD> <DT>In batch mode it is possible to operate xorriso in a pipeline with an external consumer of the generated ISO image. Any message output will be redirected to stderr in this case. Examples for consumers are cdrecord or growisofs on operating systems where xorriso cannot operate the burner drive directly, or a ssh pipe to another system which has the desired drive and a suitable burn program.</DT> <DD>$<KBD> xorriso -outdev - ...other.options... | consumer</KBD></DD> <DT> <HR> </DT> <DT> Let xorriso serve underneath growisofs via its alias name "xorrisofs" which enables mkisofs emulation: </DT> <DD>$<KBD> export MKISOFS="xorrisofs"</KBD></DD> <DD>$<KBD> growisofs -Z /dev/dvd /some/files</KBD></DD> <DD>$<KBD> growisofs -M /dev/dvd /more/files</KBD></DD> <DT> One may switch from mkisofs emulation to xorriso's own command mode: </DT> <DD>$<KBD> growisofs -M /dev/dvd -- outdev - -update_r /my/files /files </KBD></DD> <DT> <HR> </DT> <DT>If for any reason the reading operating system mishandles the ISO image or some files in it, one may enable reverse operation of xorriso and copy files or trees to disk: <DD>$<KBD> xorriso -acl on -xattr on \</KBD></DD> <DD><KBD> -indev /dev/sr0 \</KBD></DD> <DD><KBD> -osirrox on \</KBD></DD> <DD><KBD> -cpx '/pictures/private/horses*/*buttercup*' \</KBD></DD> <DD><KBD> /home/her/buttercup_dir -- \</KBD> <DD><KBD> -extract /sounds /home/her/sounds_from_me</KBD></DD> </DD> <DT>Consider to enter dialog mode and use commands like <KBD>-cd , -du , -lsl , -find<KBD>. <DT> <HR> </DT> <DT>Get overview of the options:</DT> <DD>$<KBD> <A HREF="xorriso_help">xorriso -help</A></KBD></DD> <DT>Read the detailed manual page:</DT> <DD>$<KBD> <A HREF="man_1_xorriso.html">man xorriso</A></KBD></DD> </DL> </P> <HR> <A NAME="download"></A> <P> <DL> <DT><H3>Download as source code (see README):</H3></DT> <DD><A HREF="xorriso-0.4.2.pl02.tar.gz">xorriso-0.4.2.pl02.tar.gz</A> (1295 KB). </DD> <DD>(Released 8 Oct 2009)</DD> </DL> </DD> </DL> <DL><DT>Documentation:</DT> <DD><A HREF="README_xorriso">README</A> about installation and drive setup</DD> <DD><A HREF="xorriso_help">xorriso -help</A> gives an overview of options</DD> <DD><A HREF="man_1_xorriso.html">man xorriso</A> is the manual page</DD> </DL> <A NAME="contact"></A> <DL><DT>Contact:</DT> <DD>Thomas Schmitt, <A HREF="mailto:scdbackup@gmx.net">scdbackup@gmx.net</A></DD> <DD>libburn development mailing list, <A HREF="mailto:libburn-hackers@pykix.org">libburn-hackers@pykix.org</A></DD> </DL> <DL><DT>License:</DT> <DD><A HREF="COPYING_xorriso">GPL version 2</A>, an <A HREF="http://www.opensource.org/">Open Source</A> approved license</DD> <DD> </DD> </DL> </P> <HR> <P> Bug fixes towards xorriso-0.4.0.pl00: <UL> <LI>xorriso -as mkisofs did not understand the -C option of growisofs any more <LI>Option -devices stalled if a U3 enhanced memory stick was present</LI> <!-- <LI>- none -</LI> --> </UL> </P> <P> Bug fixes towards xorriso-0.4.2.pl00: <UL> <LI>-cut_out deleted previously cut-out pieces of the same file</LI> </UL> </P> <P> Bug fixes towards xorriso-0.4.2.pl01: <UL> <LI>Filenames could lose blanks during a multi-session cycle</LI> <LI>-for_backup did not enable -xattr and -md5 if no drive was chosen yet</LI> <LI>xorrisofs -help, xorrecord -help displayed original xorriso -help</LI> </UL> </P> <P> Enhancements towards previous stable version xorriso-0.4.0.pl00: <UL> <LI>New option -md5, new -as mkisofs option --md5</LI> <LI>New options -check_md5, -check_md5_r</LI> <LI>New find actions check_md5 get_md5, get_any_xattr, make_md5</LI> <LI>New find tests -has_md5, -has_any_xattr</LI> <LI>New option -list_profiles</LI> <LI>New option -calm_drive</LI> <LI>Options -lsl and -lsdl now display correct link counts if -hardlinks is on <!-- <LI>- none -</LI> --> </UL> </P> <HR> <P> <H3> Library copies included in xorriso tarballs: </H3> <DL> <DT>libburn-0.7.1</DT> <DD>reads and writes data from and to CD, DVD, BD.</DD> <DD>(founded by Derek Foreman and Ben Jansens, developed and maintained since August 2006 by Thomas Schmitt from team of libburnia-project.org)</DD> <DT>libisofs-0.6.23</DT> <DD>operates on ISO 9660 filesystem images.</DD> <DD>(By Vreixo Formoso, Mario Danic and Thomas Schmitt from team of libburnia-project.org)</DD> <DT>libisoburn-0.4.2</DT> <DD>coordinates libburn and libisofs, emulates multi-session where needed.</DD> <DD>(By Vreixo Formoso and Thomas Schmitt from team of libburnia-project.org)</DD> <DD> </DD> <DT>The source code of this software is independent of cdrecord and mkisofs.</DT> </DL> </P> <HR> <P> <DL> <DT><H3>Development snapshot, version 0.4.3 :</H3></DT> <DD>Bug fixes towards xorriso-0.4.2.pl00: <UL> <LI>Filenames could lose blanks during a multi-session cycle</LI> <LI>-cut_out deleted previously cut-out pieces of the same file</LI> <LI>-for_backup did not enable -xattr and -md5 if no drive was chosen yet</LI> <LI>With -as cdrecord : -xa1 and -xamix were ignored although they do matter</LI> <LI>xorrisofs -help, xorrecord -help displayed original xorriso -help</LI> <!-- <LI>- none yet -</LI> --> </UL> </DD> <DD>Enhancements towards stable version 0.4.2.pl01: <UL> </LI> <LI>New option -scdbackup_tag</LI> <LI>New option -pvd_info</LI> <LI>Option -toc now reports "Media product:"</LI> <LI>New options -system_id , -volset_id</LI> <LI>New option -mount_opts</LI> <!-- <LI>- none yet -</LI> --> </UL> </DD> <DD> </DD> <DD><A HREF="README_xorriso_devel">README 0.4.3</A> <DD><A HREF="xorriso_help_devel">xorriso_0.4.3 -help</A></DD> <DD><A HREF="man_1_xorriso_devel.html">man xorriso (as of 0.4.3)</A></DD> <DD> </DD> <DT>If you want to distribute development versions of xorriso, then use this tarball which produces static linking between xorriso and the libburnia libraries. </DT> <DD>Source (./bootstrap is already applied, build tested, installation see README) </DD> <DD> <A HREF="xorriso-0.4.3.tar.gz">xorriso-0.4.3.tar.gz</A> (1310 KB). </DD> <DT>A dynamically linked development version of xorriso can be obtained from repositories of <A HREF="http://libburnia-project.org"> libburnia-project.org</A>. xorriso is part of libisoburn/trunk and will get built by its "make". </DT> <DT>Be warned that the libraries in SVN and bzr are development versions with possibly unstable API/ABI enhancements. Do not distribute development versions for dynamic linking. Only release versions are safe for that. </DT> <DD>Download: <KBD><B>svn co http://svn.libburnia-project.org/libburn/trunk libburn</B> </KBD></DD> <DD>Install: <KBD><B>cd libburn ; ./bootstrap ; ./configure --prefix /usr ; make ; make install</B> </KBD></DD> <DD>Download: <KBD><B>bzr branch lp:~libburnia-team/libisofs/scdbackup</B></KBD> </DD> <DD>Install: <KBD><B>cd libisofs ; ./bootstrap ; ./configure --prefix /usr ; make ; make install</B> </KBD></DD> <DD>Download: <KBD><B>svn co http://svn.libburnia-project.org/libisoburn/trunk libisoburn</B> </KBD></DD> <DD>Install: <KBD><B>cd libisoburn ; ./bootstrap ; ./configure --prefix /usr ; make ; make install</B> </KBD></DD> <DT>Build of SVN versions needs <A HREF="http://sources.redhat.com/autobook/"> autotools</A> of at least version 1.7 installed. But after the run of <KBD>./bootstrap</KBD>, only vanilla tools like make and gcc are needed. </DT> <DD> </DD> </DL> </P> <HR> <P> Many thanks to Derek Foreman and Ben Jansens for starting libburn. <BR> Very special thanks to Andy Polyakov whose <A HREF="http://fy.chalmers.se/~appro/linux/DVD+RW/tools">dvd+rw-tools</A> provide the libburnia project with invaluable examples on how to deal with DVD media and how to emulate multi-session on overwriteable media. </P> <HR> <CENTER><FONT SIZE=+0> <!-- <A NAME="bottom" HREF="main_ger.html#bottom">deutsch (german)</A> <BR><BR> --> <BR><BR> <FONT SIZE=+0>Enjoying free Open Source hosting by <A HREF="http://www.webframe.org">www.webframe.org</A><BR> <A HREF="http://www.webframe.org"> <IMG SRC="msfree.gif" ALT="100 % Microsoft free" BORDER=0></A><BR> and by <A HREF="http://sourceforge.net">sourceforge.net</A><BR> <A href="http://sourceforge.net"> <IMG src="sflogo-88-1.png" BORDER="0" ALT="SourceForge Logo"></A> <!-- on sourceforge use : <IMG src="http://sourceforge.net/sflogo.php?group_id=16010" width="88" height="31" border="0" alt="SourceForge Logo"></A> --> <P> Enjoying a FreeBSD shell account with the opportunity to build, install and test xorriso at<BR> <A HREF="http://www.en.free-shells.com.ar">free-shells.com.ar</A> </P> </FONT></CENTER> <HR> <DL> <DT>Links to my other published software projects :</DT> <DD><A HREF=http://scdbackup.webframe.org/cdrskin_eng.html> cdrskin, a cdrecord emulator</A></DD> <DD><A HREF=http://scdbackup.webframe.org/main_eng.html> scdbackup, multi volume CD backup</A></DD> <DL><DD><A HREF=http://scdbackup.sourceforge.net/main_eng.html> (a second source of above)</A></DD></DL> <DD><A HREF=http://stic.sourceforge.net>Some Tools for Image Collectors</A></DD> <DD><A HREF=http://scdbackup.webframe.org/pppoem> pppoem, a DSL throughput monitor (mainly for Linux kernel 2.4)</A></DD> </DL> <BR><BR> Legal statement: This website does not serve any commercial purpose.<BR> <BR><BR> </FONT> </BODY> </HTML>