Search the web with Google

Android install

Android installation weblog

Enter your email address:

Jeroen´s weblog

Ubuntu install

Ubuntu installation weblog

Sunday, August 29, 2010

FSTAB autocheck

Disable auto fsck check on boot (after 30 mounts):

In a terminal:

gksu/ gedit /etc/fstab

# /etc/fstab: static file system information.
proc            /proc           proc    defaults        0       0
/dev/sda7       /               ext3    defaults,errors=remount-ro 0       1
/dev/sda10              /home                   ext3    defaults,usrquota,grpquota      0       2
/dev/sda9       /tmp            ext3    defaults        0       2
/dev/sda5       none            swap    sw              0       0
/dev/hda        /media/cdrom0   iso9660 ro,user,noauto  0       0

Change the ending 2 to 0 on all disks that you want to remove from the auto check.
# /etc/fstab: static file system information.
proc            /proc           proc    defaults        0       0
/dev/sda7       /               ext3    defaults,errors=remount-ro 0       1
/dev/sda10              /home                   ext3    defaults,usrquota,grpquota      0       0
/dev/sda9       /tmp            ext3    defaults        0       0
/dev/sda5       none            swap    sw              0       0
/dev/hda        /media/cdrom0   iso9660 ro,user,noauto  0       0

Boot.ini windows XP

This one is for old windows users:

BOOT.INI information
BOOT.INI information pageApplies for Windows NT 3.5 Windows NT 4.0 Windows 2000 and Windows XPRelated topics: Q119467 How to Create a Bootable Disk for an NTFS or FAT Partition
and Q102873 BOOT.INI and ARC Path Naming Conventions and Usage
of the microsoft knowledge baseIntroduction:When Windows NT or XP is installed, it creates a read-only, hidden text file called BOOT.INI in the root of drive C. Two sections of BOOT.INI store information which is used to create the Boot Loader section menu:
[boot loader] and [operating systems].  Following is a sample BOOT.INI file.

For win NT:[boot loader]
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT 4.0"
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT 4.0 [VGA MODE]" /basevideo

for windows XP (replace xp with 2000 for windows 2000)[boot loader]
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows XP professional" /fastdetect
C:\="Windows98"Explanation:[boot loader]
The [boot loader] section contains the information for the Boot Loader Operating System Selection menu. This information
consists of two parameters:


This is the number of seconds the user has to select an operating system to start after the Boot Loader Operating System Selection menu appears. If the user does not select a system during this time, the default operating system starts automatically.

If timeout = 0 (zero), the Boot Loader Operating System Selection menu might appear briefly, depending on system speed, and the default operating system will be booted automatically.


This is the path of the default operating system that will be loaded when timeout reaches 0 (zero).

[operating systems]
This section contains a list of operating systems that are displayed in the Boot Loader Operating System menu. Each entry in the list includes the path to the operating system, the name displayed in the Boot Loader Operating System Selection menu (the text between the quotes), and optional parameters.

In the previous BOOT.INI example, there are two listings for Windows NT Workstation 4.0, the second with an optional parameter of /BASEVIDEO. THe second option allows the user to boot Windows NT Workstation with a standard VGA driver. Additionally, there is an entry od C:\="MS-DOS". This is the MS-DOS entry that appears on the Boot Loader Operating System Selection menu on MS-DOS dual-boot systems. The same applies for C:\="Windows98" or any other DOS based windows system in a dual boot environment. Windows XP is usually started with the /FASTDETECT option.
ARC naming conventions
The path and filename of Windows NT are specified using anARC (Advanced RISC Computer) format in the BOOT.INI. ARC naming conventions are a generic method for identifying devices on x86- and RISC based computers. The usage is as follows:


scsi/multi - identifies the hardware adapter (scsi or multi)

x - ordinal number of the hardware adapter

disk(y) - SCSI bus number (always 0 if multi)

rdisk(z) - SCSI LUN number (ordinal for disk on adapter if multi)

partition(a) - Ordinal number of the partition (1 being the first partition and so on)

For example: scsi(0)disk(0)rdisk(0)partition(4) indicates that Windows NT boot tree is located on the fourth partition on an SCSI disk with the target ID of 0 on the first SCSI controller in the system.
multi(0)disk(0)rdisk(0)partition(1) indicates that Windows NT boot tree is located on the first partition on a non-SCSI disk that is usually an ordinairy E-IDE drive.If the ARC naming convention values are used incorrectly, Windows NT will fail to boot because the program uses these values to find the Windows NT system files.


The first part of the ARC name identifies the type of disk controller used. The two valid options are scsi or multi. SCSI controllers that do not have BIOS enabled are indicated by scsi. All other disk types, including SCSI controllers that do have their BIOS enabled, are indicated by multi.

BOOT.INI switches

There are number of BOOT.INI switches that are useful for driver developers that wish to test their drivers under a variety of different system configurations without having to have a separate machine for every one. For example, limiting the amount of memory NT sees can be useful for stressing memory loads, and limiting the number of processors for testing scalability. I've compiled a complete list of the options that BOOT.INI currently supports. This list is reproduced in the Startup, Shutdown and Crashes chapter of Windows Internals, where you'll find more information about the boot process. Entries in red were introduced in Windows 2000 and those in blue introduced in Windows XP or Windows Server 2003. Note: to see what options I system has booted with examine HKLM\System\CurrentControlSet\Control\SystemStartOptions. /3GB
Increases the size of the user process address space from 2 GB to 3 GB (and therefore reduces the size of system space from 2 GB to 1 GB). Giving virtual-memory- intensive applications such as database servers a larger address space can improve their performance. For an application to take advantage of this feature, however, two additional conditions must be met: the system must be running Windows XP, Windows Server 2003, Windows NT 4 Enterprise Edition, Windows 2000 Advanced Server or Datacenter Server and the application .exe must be flagged as a 3-GB-aware application. Applies to 32-bit systems only.
Causes Windows to use the standard VGA display driver for GUI-mode operations.
Enables kernel-mode debugging and specifies an override for the default baud rate (19200) at which a remote kernel debugger host will connect. Example: /BAUDRATE=115200.
Causes Windows to write a log of the boot to the file %SystemRoot%\Ntbtlog.txt.
Use this switch to have Windows XP or Windows Server 2003 display an installable splash screen instead of the standard splash screen. First, create a 16-color (any 16 colors) 640x480 bitmap and save it in the Windows directory with the name Boot.bmp. Then add "/bootlogo /noguiboot" to the boot.ini selection.
Causes the hardware abstraction layer (HAL) to stop at a breakpoint at HAL initialization. The first thing the Windows kernel does when it initializes is to initialize the HAL, so this breakpoint is the earliest one possible. The HAL will wait indefinitely at the breakpoint until a kernel-debugger connection is made. If the switch is used without the /DEBUG switch, the system will Blue Screen with a STOP code of 0x00000078 (PHASE0_ EXCEPTION).
Specifies an amount of memory Windows can't use (similar to the /MAXMEM switch). The value is specified in megabytes. Example: /BURNMEMORY=128 would indicate that Windows can't use 128 MB of the total physical memory on the machine.
Used on conjunction with /DEBUGPORT=1394 to specify the IEEE 1394 channel through which kernel debugging communications will flow. This can be any number between 0 and 62 and defaults to 0 if not set.
Causes the standard x86 multiprocessor HAL (Halmps.dll) to configure itself for a level-sensitive system clock rather then an edge-triggered clock. Level-sensitive and edge-triggered are terms used to describe hardware interrupt types.
Passed when booting with into the Recovery Console (described later in this chapter).
Causes the kernel debugger to be loaded when the system boots, but to remain inactive unless a crash occurs. This allows the serial port that the kernel debugger would use to be available for use by the system until the system crashes (vs. /DEBUG, which causes the kernel debugger to use the serial port for the life of the system session).
Enables kernel-mode debugging.
Enables kernel-mode debugging and specifies an override for the default serial (usually COM2 on systems with at least two serial ports) to which a remote kernel-debugger host is connected. Windows XP and Windows Server 2003 also support debugging through accept IEEE 1394 ports. Examples: /DEBUGPORT=COM2, /DEBUGPORT=1394.
This option disables no-execute protection. See the /NOEXECUTE switch for more information.
Default boot option for Windows. Replaces the Windows NT 4 switch /NOSERIALMICE. The reason the qualifier exists (vs. just having NTDETECT perform this operation by default) is so that NTDETECT can support booting Windows NT 4. Windows Plug and Play device drivers perform detection of parallel and serial devices, but Windows NT 4 expects NTDETECT to perform the detection. Thus, specifying /FASTDETECT causes NTDETECT to skip parallel and serial device enumeration (actions that are not required when booting Windows), whereas omitting the switch causes NTDETECT to perform this enumeration (which is required for booting Windows NT 4).
Directs the standard x86 multiprocessor HAL (Halmps.dll) to set interrupt affinities such that only the highest numbered processor will receive interrupts. Without the switch, the HAL defaults to its normal behavior of letting all processors receive interrupts.
Enable you to override Ntldr's default filename for the kernel image (Ntoskrnl.exe) and/or the HAL (Hal.dll). These options are useful for alternating between a checked kernel environment and a free (retail) kernel environment or even to manually select a different HAL. If you want to boot a checked environment that consists solely of the checked kernel and HAL, which is typically all that is needed to test drivers, follow these steps on a system installed with the free build:
Copy the checked versions of the kernel images from the checked build CD to your \Windows\System32 directory, giving the images different names than the default. For example, if you're on a uniprocessor, copy Ntoskrnl.exe to Ntoschk.exe and Ntkrnlpa.exe to Ntoschkpa.exe. If you're on a multiprocessor, copy Ntkrnlmp.exe to Ntoschk.exe and Ntkrpamp.exe to Ntoschkpa.exe. The kernel filename must be an 8.3-style short name.
Copy the checked version of the appropriate HAL needed for your system from \I386\ on the checked build CD to your \Windows\System32 directory, naming it Halchk.dll. To determine which HAL to copy, open \Windows\Repair\Setup.log and search for Hal.dll; you'll find a line like \WINDOWS\system32\ hal.dll="halacpi.dll","1d8a1". The name immediately to the right of the equals sign is the name of the HAL you should copy. The HAL filename must be an 8.3-style short name.
Make a copy of the default line in the system's Boot.ini file.
In the string description of the boot selection, add something that indicates that the new selection will be for a checked build environment (for example, “Windows XP Professional Checked”).
Add the following to the end of the new selection's line: /KERNEL=NTOSCHK.EXE /HAL= HALCHK.DLL
Now when the selection menu appears during the boot process you can select the new entry to boot a checked environment or select the entry you were using to boot the free build.
Causes the system to boot as if the LastKnownGood boot option was selected.
Limits Windows to ignore (not use) physical memory beyond the amount indicated. The number is interpreted in megabytes. Example: /MAXMEM=32 would limit the system to using the first 32 MB of physical memory even if more were present.
For the standard x86 multiprocessor HAL (Halmps.dll), forces cluster-mode Advanced Programmable Interrupt Controller (APIC) addressing (not supported on systems with an 82489DX external APIC interrupt controller).
This option is used by Windows PE (Preinstallation Environment) and causes the Configuration Manager to load the Registry SYSTEM hive as a volatile hive such that changes made to it in memory are not saved back to the hive image.
Prevents kernel-mode debugging from being initialized. Overrides the specification of any of the three debug-related switches, /DEBUG, /DEBUGPORT, and /BAUDRATE.
This option is only available on 32-bit versions of Windows when running on processors supporting no-execute protection. It enables no-execute protection (also known as Data Execution Protection - DEP), which results in the Memory Manager marking pages containing data as no-execute so that they cannot be executed as code. This can be useful for preventing malicious code from exploiting buffer overflow bugs with unexpected program input in order to execute arbitrary code. No-execute protection is always enabled on 64-bit versions of Windows on processors that support no-execute protection. There are several options you can specify with this switch:
/NOEXECUTE=OPTIN Enables DEP for core system images and those specified in the DEP configuration dialog.
/NOEXECUTE=OPTOUT Enables DEP for all images except those specified in the DEP configuration dialog.
/NOEXECUTE=ALWAYSON Enables DEP on all images.
Instructs Windows not to initialize the VGA video driver responsible for presenting bitmapped graphics during the boot process. The driver is used to display boot progress information, so disabling it will disable the ability of Windows to show this information.
Requires that the /PAE switch be present and that the system have more than 4 GB of physical memory. If these conditions are met, the PAE-enabled version of the Windows kernel, Ntkrnlpa.exe, won't use the first 4 GB of physical memory. Instead, it will load all applications and device drivers, and allocate all memory pools, from above that boundary. This switch is useful only to test device driver compatibility with large memory systems.
Forces Ntldr to load the non-Physical Address Extension (PAE) version of the Windows kernel, even if the system is detected as supporting x86 PAEs and has more than 4 GB of physical memory.
Obsolete Windows NT 4 qualifier—replaced by the absence of the /FASTDETECT switch. Disables serial mouse detection of the specified COM ports. This switch was used if you had a device other than a mouse attached to a serial port during the startup sequence. Using /NOSERIALMICE without specifying a COM port disables serial mouse detection on all COM ports. See Microsoft Knowledge Base article Q131976 for more information.
Specifies the number of CPUs that can be used on a multiprocessor system. Example: /NUMPROC=2 on a four-way system will prevent Windows from using two of the four processors.
Causes Windows to use only one CPU on a multiprocessor system.
Causes Ntldr to load Ntkrnlpa.exe, which is the version of the x86 kernel that is able to take advantage of x86 PAEs. The PAE version of the kernel presents 64-bit physical addresses to device drivers, so this switch is helpful for testing device driver support for large memory systems.
Stops Windows from dynamically assigning IO/IRQ resources to PCI devices and leaves the devices configured by the BIOS. See Microsoft Knowledge Base article Q148501 for more information.
Specifies the path to a System Disk Image (SDI) file, which can be on the network, that the system will use to boot from. Often used in conjunction with the /RDIMAGEOFFSET= flag to indicate to NTLDR where in the file the system image starts.
Introduced with Windows XP. Used to cause Windows to enable Emergency Management Services (EMS) that reports boot information and accepts system management commands through a serial port. Specify serial port and baudrate used in conjunction with EMS with redirect= and redirectbaudrate= lines in the [boot loader] section of the Boot.ini file.
Specifies options for a safe boot. You should never have to specify this option manually, since Ntldr specifies it for you when you use the F8 menu to perform a safe boot. (A safe boot is a boot in which Windows only loads drivers and services that are specified by name or group under the Minimal or Network registry keys under HKLM\SYSTEM\CurrentControlSet\Control\SafeBoot.) Following the colon in the option you must specify one of three additional switches: MINIMAL, NETWORK, or DSREPAIR. The MINIMAL and NETWORK flags correspond to safe boot with no network and safe boot with network support, respectively. The DSREPAIR (Directory Services Repair) switch causes Windows to boot into a mode in which it restores the Active Directory directory service from a backup medium you present. An additional option you can append is (ALTERNATESHELL), which tells Windows to use the program specified by the HKLM\SYSTEM\CurrentControlSet\ SafeBoot\AlternateShell value as the graphical shell rather than to use the default, which is Windows Explorer.
Directs Windows to the SCSI ID of the controller. (Adding a new SCSI device to a system with an on-board SCSI controller can cause the controller's SCSI ID to change.) See Microsoft Knowledge Base article Q103625 for more information.
Used in Windows XP Embedded systems to have Windows boot from a RAM disk image stored in the specified System Disk Image (SDI) file.
Causes Windows to list the device drivers marked to load at boot time and then to display the system version number (including the build number), amount of physical memory, and number of processors.
Sets the resolution of the system timer on the standard x86 multiprocessor HAL (Halmps.dll). The argument is a number interpreted in hundreds of nanoseconds, but the rate is set to the closest resolution the HAL supports that isn't larger than the one requested. The HAL supports the following resolutions: Hundreds of nanoseconds Milliseconds (ms)
9766 0.98
19532 2.00
39063 3.90
78125 7.80 The default resolution is 7.8 ms. The system timer resolution affects the resolution of waitable timers. Example: /TIMERES=21000 would set the timer to a resolution of 2.0 ms.
This switch is only supported on Windows XP and Windows Server 2003. Like the /3GB switch, this switch gives applications a larger address space. Specify the amount in MB between 2048 and 3072. This switch has the same application requirements as the /3GB switch and requires that the /3GB switch be present. Applies to 32-bit systems only.
Directs Ntldr to boot the Consumer Windows boot sector stored in Bootsect.w40. This switch is pertinent only on a triple-boot system that has MS-DOS, Consumer Windows, and Windows installed. See Microsoft Knowledge Base article Q157992 for more information.
Directs Ntldr to boot the MS-DOS boot sector stored in Bootsect.dos. This switch is pertinent only on a triple-boot system that has MS-DOS, Consumer Windows, and Windows installed. See Microsoft Knowledge Base article Q157992 for more information.
Instructs the Windows core time function to ignore the year that the computer's real-time clock reports and instead use the one indicated. Thus, the year used in the switch affects every piece of software on the system, including the Windows kernel. Example: /YEAR=2001. (This switch was created to assist in Y2K testing.)
Thanks to Jonas Fischer for pointing out the PCILOCK and NOSERIALMICE switches. Thanks to Rob Green for information on the FASTDETECT switch.

Sunday, August 8, 2010

Ubuntu stickers

Free powered by Ubuntu stickers on this site to download:

site and a direct link to the pdf file.

Thursday, August 5, 2010

How To Change Ownership of Files and Directories in Unix

On unix tutorial I found this post:

File ownership in Unix

Just to give you a quick reminder, I'd like to confirm that every single file in Unix belongs to some user and some group. There simply isn't a way to create a file without assigning ownership. I've briefly touched the topic of confirming file ownership in Unix before, so today I will simply build on that and show you how to change ownership of files.
Here's a setup for today: I have created a temporary directory with a few files and made myself the owner of all the files:
ubuntu$ ls -al /home/greys/example/
total 12
drwxr-xr-x  3 greys admin 4096 Feb  9 03:55 .
drwxr-xr-x 13 greys greys 4096 Feb  9 03:54 ..
drwxr-xr-x  2 greys admin 4096 Feb  9 03:55 dir1
-rw-r--r--  1 greys admin    0 Feb  9 03:54 file1
-rw-r--r--  1 greys admin    0 Feb  9 03:55 file2
As you can see from this listing, the owner (third field in each line) is my username – greys. The next field is a Unix group of each file's owner – admin in my example.

Changing owner of a file in Unix

Changing file ownership means only updating the association between a Unix user and a file, and nothing else. When you're changing the owner of a file, no data contained in a file is changed.
To change the owner of a file, you need to use the chown command (easy enough to remember: CHange OWNer – chown), with the following syntax:
ubuntu$ chown nobody file1
In this command, nobody is the username of the new owner for a list of files. In my example, the only file we'd like to change ownership for is file1.
It is important to realize that you can only change file ownership as a super-user (root). Any regular Unix user cannot change the ownership of any file, and I'd like to explain why.
Indeed, some people are surprised: if I'm the owner of a given file, why can't I change the ownership for it? That's because transferring the ownership will mean some other Unix user will become the owner of the file(s) in question. So changing ownership is like making a decision not only for yourself, but for the new owner of the files.This is only something a super-user – special administrative account in Unix – can do.
The same logic applies to other people not being able to become owners of your files, even if they're willing to assume the new responsibilities of owning files. They cannot revoke your ownership, because each Unix user is only allowed to make decisions and take actions on his/her own behalf.
That's why you will probably see an error like this if you attempt to change ownership of a file as your own regular Unix user:
ubuntu$ id
uid=1000(greys) gid=113(admin) groups=33(www-data),113(admin)
ubuntu$ chown nobody file1
chown: changing ownership of `file1': Operation not permitted
But if we become root:
ubuntu$ sudo -i
[sudo] password for greys:
… we'll have no problem changing owners for any files:
ubuntu# cd /home/greys/example
ubuntu# chown nobody file1
ubuntu# ls -l file1
-rw-r--r-- 1 nobody admin 0 Feb  9 03:54 file1

Changing owner for multiple files

If you're going to change owner of a few files, this can easily be done using either a full list of files or a mask.
First, here's an example of updating ownership for a specified list of files (and as you can see, directories as well):
ubuntu# chown nobody file2 dir1
ubuntu# ls -al
total 12
drwxr-xr-x  3 greys  admin 4096 Feb  9 03:55 .
drwxr-xr-x 13 greys  greys 4096 Feb  9 03:54 ..
drwxr-xr-x  2 nobody admin 4096 Feb  9 03:55 dir1
-rw-r--r--  1 nobody admin    0 Feb  9 03:54 file1
-rw-r--r--  1 nobody admin    0 Feb  9 03:55 file2
IMPORTANT: here's one thing which is often forgotten: when you're changing an owner of a directory, this DOES NOT automatically change owner of all the files which already exist in this directory. So, if we check the file3 in dir1 after the example above, we can see that even though dir1 now belongs to user nobody, file3 in it still belongs to me:
ubuntu# ls -l dir1/file3
-rw-r--r-- 1 greys admin 0 Feb  9 03:55 dir1/file3
If your intention is to change ownership of all the files and directories of a certain location in your filesystem, you need to use a -R option of the chown command, which means recursive ownership change:
ubuntu# chown -R nobody dir1
ubuntu# ls -l dir1/file3
-rw-r--r-- 1 nobody admin 0 Feb  9 03:55 dir1/file3
And just to further demonstrate this, I'm going to change owner of all the files and directories in /home/greys/example directory back to my own username, greys:
ubuntu# chown -R greys /home/greys/example/
ubuntu# ls -l /home/greys/example/
total 4
drwxr-xr-x 2 greys admin 4096 Feb  9 03:55 dir1
-rw-r--r-- 1 greys admin    0 Feb  9 03:54 file1
-rw-r--r-- 1 greys admin    0 Feb  9 03:55 file2

Linux change or rename user name and UID (user-id)

Use the usermod command to change user name under Linux. it modifies the system account files to reflect the changes that are specified on the command line. Syntax is as follows
usermod -l login-name old-name
=> The name of the user will be changed from old-name to login_name. Nothing else is changed. In particular, the user's home directory name should probably be changed to
reflect the new login name.
usermod -u UID username
=> The numerical value of the user's ID (UID) . This value must be unique, unless the -o option is used. The value must be non-negative. Values between 0 and 99 are typically reserved for system accounts. Any files which the user owns and which are located in the directory tree rooted at the user's home directory will have the file user ID changed automatically. Files outside of the user's home directory must be altered

Task: Change username from john to harry

Type usermod command as follows:
# id john
# usermod -l harry john
# id harry
# id john

Task: Change user tom UID from 1001 to 1002

Type usermod command as follows
# id john
# usermod -u 1002 john
# id john

Read man page of usermod for more information.

Sunday, August 1, 2010

Periodic table of the open source graphics and design apps

Nathan Willis has published an excellent table of open source software in the graphic world. Its found here:

For your and mine convenience I copied his text here:

Are you ever overwhelmed by the sheer numbers of open source software projects produced by the community? Even when looking at just a subset — such as graphics applications — if you are not already familiar with the options, the volume can make it hard to track down the application that fits your needs. The major categories tend to break down the same way, however — just a few major players; the large projects often catering to slightly different design goals, and a second set of smaller projects each of which has a smaller team and a more narrow focus.
Let’s examine each design field in turn. We’ll start by describing the leading program or programs in each, followed by the smaller or younger projects, and end with the special-purpose tools.
by Nathan Willis 

Drawing, Painting, and Illustration

Vector-based editors
  • Inkscape is the dominant player here, a full-featured SVG editor with wide support for object manipulation, styling, text rendering, scriptability and SVG image filters. Inkscape supports the largest set of drawing primitives and effects.
  • sK1 is an up-and-coming vector editor also aiming to be a complete illustration program. It is a fork of an older vector editor called Skencil that is no longer in development. One of sK1’s biggest claims to fame is import support for a large set of third-party file formats.
  • Xara LX was a commercial vector editor that was released in a mostly-open source version for Linux in 2006. The company did not continue to develop it, though, so it may be a risky choice.
  • OpenOffice Draw is part of the office suite, geared more towards crafting business-style illustrations suitable for embedding in other office documents than it is towards providing a complete suite of drawing tools.
  • Even more limited in scope are the Dia and Kivio editors, both of which are designed for the purpose of building structured diagrams, from flowcharts to business diagrams. Dia is a GNOME application, and Kivio is a KDE application.
  • Finally, the Ipe editor is a specialty tool designed for creating figures to be embedded in PDF or PostScript documents. Alchemy is an experimental vector editor that focuses on out-of-the-box drawing techniques including voice control and randomization. Neither are general-purpose editors, but may be useful if you fit their particular niche.
Raster-based editors
  • Gimp is the long-dominant FOSS raster image editor. It supports multi-layered documents, with multiple color models, a full set of adjustable image-editing tools for photo and painting work, filters, channel operations, text and path tools, masks, editable brushes and palettes. It is fully scriptable, and has a large selection of third-party plugins that extend its functionality.
  • Krita is another powerful raster image editor. Like Gimp, it supports tools and operations for both photo-adjustment and painting, layered documents, and filters. Krita, however, puts more emphasis on painting and drawing, by supporting multiple “brush engines” that simulate different media, some natural-media-simulation tools, and color models designed to better model painting. There is less emphasis on scriptability and plugins.
  • MyPaint is a newer project that focuses exclusively on painting with pressure-sensitive pen drawing tablets. It boasts a massive array of brush options, all of which have completely adjustable behavior. However, it intentionally does not incorporate selection and image manipulation tools, preferring to leave that task for other editors.
  • Nathive is a newer image editor designed for ease-of-use and extensibility with Python. It does not have a feature-set as complete as Gimp or Krita, but it is supposed to score high marks on usability with a smooth learning curve.
  • Other general-purpose raster editors include Gogh, which is designed to simulate natural-media sketching and painting, Pinta, which is designed to be simple-to-use, and Tux Paint, which is designed for easy use by kids.
  • A full list of the special-purpose raster editors would be prohibitively long, but there are actively-developed tools for creating all sorts of raster-based images, such as photomosaics (e.g., Pixelize), fractals (e.g., Mandelbulber or Fractal Miner) or 3-D stereoscopic pictures (StereoPhoto Maker). Many more special-purpose image tools have been adapted from stand-alone programs into Gimp plugins for ease-of-use, such as the G’MIC image manipulator, Resynthesizer texture simulator, or Liquid Rescale “content-aware resizer.”


Photo editing
  • Although you can edit TIFF or JPEG photos in Gimp or Krita, for direct-from-the-camera professional quality work, you need a raw image converter. The most well-known raw converter in the open source suite is UFRaw, which is available as a stand-alone app or as a Gimp importer for the supported raw image formats (.CR2, .NEF, etc.). it supports multiple demosaicing algorithms, exposure and white balance control, denoising, and batch processing.
  • Rawstudio is a virtually equally-capable raw converter, also with support for demosaicing, denoising, sharpening, exposure- and color-correction. The differences are that UFRaw typically includes more options for functions such as demosaicing, where there are multiple mathematical methods available. Rawstudio, however, includes more image browsing and cataloging features.
  • RawTherapee is a newer entrant into the open source raw conversion world. It used to be a closed-source program, but was released as open source last year. It offers most of the same feature set as UFRaw and Rawstudio.
  • Free software does not have a dominant player in the photo-workflow application space. Many users prefer Digikam for photo management tasks; it supports EXIF, IPTC, and XMP metadata, geotagging, and is fully searchable. It also handles importing images from digital cameras.
  • Two newer projects making big strides in this area are Darktable and Bluemarine. They have similar aims, enabling photographers to manage assignments and jobs, particularly to speed up processing of photos from a single shoot. Both are worth looking at, although at the moment Darktable is the more actively-developed.
  • Hugin is an important photography correction tool. Although it is often classified as a “panorama creator,” that is just one of its features. It can indeed align, stitch, and blend multiple photos into a seamless extremely-wide-angle or even 360-degree panorama, but it can also perform perspective correction, correct chromatic aberration and lens distortion, perform architectural projections, and combine multiple images in a “focus stack.”
  • Luminance HDR (which was formerly named Qtpfsgui) is a tool designed to perform “tone-mapping” — compositing multiple exposures of one high-dynamic-range (HDR) scene into a seamless single image. Luminance HDR permits the user to select from multiple tone-mapping algorithms as adjust all of the algorithmic parameters for a variety of effects.
  • Phatch is a rapid photo-manipulation batch processor. With Phatch, you create formulas by dragging and dropping operations (resize, perspective, shadow, rotate, etc.) into a stack, then execute it on a folder full of images all at once. The result is a much faster technique for performing multiple editing tasks than any interactive editor.

Design and Typography

Desktop publishing (DTP)
  • Scribus is far and away the leader in open source DTP. It produces print-ready output, including the pre-press PDF/X standards, color management, font embedding and subsetting, and supports almost every type of image content imaginable. The page-layout system supports master pages, scripting, plugins, and embedding of content rendered by other programs, such as TeX or EPS.
  • LyX is often referred to as a DTP application, but it is perhaps better described as a document preparation system. It uses the TeX typesetting system, but with an interactive GUI front-end more familiar to word processor users. Still, it enables the creation of complex documents like only Tex, LaTeX, and BibTeX can.
  • PDFedit is a tool designed for editing what would normally be a read-only file type, finished PDFs. PDFedit has a considerable learning curve, but can be very useful for working with legacy documents when nothing else will do.
  • gLabels is a specialty application built specifically for laying out and printing sheets of labels, business cards, and other small-sized designs that typically rely on multiple-copies-per-page templates. It can be used to generate sheets of identical content, or to “mail merge” content from external documents.
  • Laidout is a design tool created by an independent comic book publisher to handle placing and rearranging multiple pages on to large sheets of printer paper, even reordering pages and with support for folding-and-cutting requirements. The interface can be hard to learn, however, as the project tends to reflect the individual developer’s needs.
Web design
  • Bluefish is the most common web design tool in the free software community, but even it offers less in the way of WYSIWYG visual layout tools than commercial products like Dreamweaver. However, if coding straight HTML is not for you, Bluefish can make the process easier, and keep better track of CSS and JavaScript functions than a web-based content management system can.
  • Kompozer is an older web design tool with its roots in the Mozilla project — the code originated as an HTML editor in the Mozilla Suite before Firefox and Thunderbird were split off into separate projects. Like Bluefish, it is a mixed bag of design tools and code editing, and it does not receive as frequent updates as Bluefish.
  • More and more web design tools are migrating into Firefox extensions. Web Developer marks up browser content (including HTML entities and CSS) and allows manipulating elements “live” in the page. Firebug helps edit and debug CSS and JavaScript. Pencil is a rapid prototyping tool for creating designs in the browser. There are many more; searching for lists compiled by developer site is the best way to find current information.
  • Fontmatrix is the leading font inspector and manager. It allows you to activate and deactivate fonts from your running system, search for specific glyphs, render sample text, and manage your font collection by type and by user-defined tags.
  • FontForge is the leading font design and editing program. It can create TrueType, OpenType, and Type 1 fonts, with full control over features like kerning, hinting, and diacritics. You can edit existing fonts with FontForge, or create new fonts from scratch.
  • Fonty Python is an older font manager than Fontmatrix, and although it does not seem to be as actively maintained, it is still a good tool, particularly if you have trouble with some of Fontmatrix’s bleeding-edge features.
  • There are several special-purpose tools to assist the font designer, such as Glyphtracer, which simplifies converting raster images to the outline curves needed by FontForge, and Xgridfit, which helps create TrueType hints. Specimen is a lightweight tool for inspecting fonts with user-defined sample text.
  • Finally, although it is not an app itself, the Open Font Library deserves mention in this category, because it is a large resource of fonts available under open licenses — meaning you have the legal right to alter and extend them, which is not the case with most commercially-purchased fonts.

Modeling and Animation

3-D modeling
  • Blender is the dominant 3-D modeling tool in open source, consisting of a full toolchain for producing professional-quality photo-realistic scenes. On the modeling side, it permits meshes, subdivision surface modelings, Bezier and NURBS, and 3-D sculpting and texturing (including UV unwrapping). It scriptable with Python, and for output can use a variety of shaders and renderers, complete with ray-tracing, ambient occlusion, subsurface scattering, and radiosity.
  • FreeCAD is the most well-known 3-D computer-aided design (CAD) app in open source. It is designed with mechanical engineering in mind.
  • Archimedes is a simpler CAD program that specializes in architectural modeling. The QCad program does not directly do 3-D, but its 2-D design tools can be used to create blueprints useful in other, 3-D capable CAD tools.
  • Several other open source 3-D modeling programs are under active development, including Art of Illusion and Wings3D. Neither has as large of a development team or user community as Blender, but since they do not try to incorporate Blender’s animation tools (see below) and video editing workflow, they may be easier to learn.
  • There are also several special-purpose tools that come from the Blender community designed to assist with specific tasks, such as MakeHuman, which is optimized for the tricky task of creating realistic models of human beings.
  • In addition to its static modeling and scene rendering, Blender is also a 3-D animation program, supporting rigging, skinning, armature deformation, forward and inverse kinematics, motion curve and key-frame editing, and more. Recent versions also support particle and fluid physics, soft body solvers, hair and cloth, and other special effects. A timeline based video editor and compositor are built-in.
  • Synfig is a vector-based 2-D animation studio that supports many of the same features Blender does, but for 2-D animation. Characters, backgrounds, and other scene elements are composed of vector graphic primitives which are drawn or adjusted in key frames, and automatically “tweened” to create smooth animation frames.
  • Pencil (not to be confused with the Firefox add-on mentioned above) is a more traditional “cell-based” animation tool; each individual frame is drawn on the canvas, which can be overlayed with translucency (called onion-skinning) to assist the artist.

Utilities and system support

  • Xsane is the leading scanning tool for open source systems. It fully supports flatbed, transparency, and film strip scanners, offering complete image controls and previewing, automatic or manual calibration, and color management complete with ICC input profiles.
  • Kooka is a scanning utility written for the KDE desktop environment. It uses the same driver backend as Xsane, but attempts to put a more easily-understood front end on the tools, and integrates with other KDE-based applications.
  • Due to the complexity of Xsane and Kooka, several “simple” scan tool projects exist as well, notably Scan Tailor and Simple Scan. None of them add functionality over the more complex offerings; they focus instead on a quick-use interface.
  • CUPS is the printer management project used by almost all open source graphics systems, supporting inkjet, laser, and other less-common printer types. CUPS handles scheduling jobs, spooling and network-printer sharing. Support is usually provided by the operating system, so you do not need to worry about installing or configuring it separately.
  • Gutenprint is a high-quality printer driver project; it provides the printer control layer directly below CUPS, and provides drivers for a vast array of printers. Normally you would never need to update or configure Gutenprint directly, but if you have trouble with a specific printer, it is the project to look towards for updates.
  • Though CUPS and Gutenprint provide a solid printing system, there are several specialized projects that target specific tasks. Photoprint is designed to create professional-looking photo layouts, complete with borderless multiple-image-per-page layout options. CMYKTool from the same developers allows greater control over CMYK color separations than most individual printer drivers provide. The aforementioned Laidout can be used to create complex print layouts, including splitting large images up into arbitrarily-arranged multipage mosaics.
System calibration and profiling
  • LPROF is the most widely-known ICC profile creation tool in open source, largely because it is currently the only tool with a graphical user interface. It was written by the creator of LittleCMS, the color management library used by most of the graphics applications mentioned above. LRPOF can create profiles for monitors, scanners, and digital cameras. Several hardware devices like X-Rite’s DP92 are supported.
  • Argyll is a color management system (CMS) that includes several command-line tools. Included are utilities to create device profiles, calibrate displays, link profiles, and transform raster images to different color spaces. A GUI project called dispcalGUI also exists, maintained by different developers.
  • Oyranos is another CMS, one that notably includes tools to configure and assign ICC color profiles to X displays. The ICC Examin tool is an offshoot of this project; it is the only dedicated color profile previewer for open source graphics pros.
Other tools
  • Apart from the main applications, there are several important utility programs that act more as functional assistants than as content creation tools. Leading the charge is Agave, a color scheme chooser. The interface is lightweight, but the program lets users build color schemes based on complements, split-complements, triads, and other scheme types, with adjustable palettes and brightness/saturation controls.
  • Swatchbooker is a newer “swatch” tool, which can read color swatches from a wide variety of programs, including the Adobe creative suite, all major open source programs, web sites, and many proprietary products. You can then convert and save swatch files for use with other applications.
  • Open source support for pressure-sensitive graphics tablets is robust, but the historic need to edit the configuration of the devices in text files led to the creation of Wacom Control Panel. It is a graphical tool that lets the user tweak and adjust the settings and sensitivity of these devices on-the-fly.