Heimdall
 is a cross-platform (runs on Linux, Windows and Mac OSX), open source 
Odin alternative which uses the same protocol as Odin to interact with a
 device in download mode, that can be used to flash Android ROMs or 
Kernels onto Samsung Galaxy S phones. 
The application 
officially supports Samsung Galaxy S GT-I9000 (8GB) from UK and Galaxy S
 GT-I9000 (16GB) from Australia, but users have reported that it also 
works with the Captivate, Vibrant, Fascinate, Mesmerize, Epic 4G, Galaxy
 S 4G, Infuse 4G, GT-I9000T, Galaxy Tab (7 and 10.1 inches), Galaxy S 
II, and the international GT-I9000. And indeed, at least for Samsung 
Galaxy S II, I can confirm that Heimdall works as I've tested it myself.
Before using Heimdall, remember 
that flashing has the potential to brick your phone so use it carefully!
 Flashing ROMs onto your device may also void your warranty!
For the steps required to flash an Android ROM from Linux onto your Samsung device using Heimdall, see THIS page.
Install Heimdall
For Ubuntu/Debian, Windows and Mac OSX, download Heimdall from HERE.
Ubuntu / Debian users should download 
both "heimdall" and "heimdall-frontend" deb files, install them and 
start Heimdall frontend using the following command in a terminal:
heimdall-frontend