Running Linux in a Windows World:

Interoperability in

Formats, Protocols, & Software

R. Scott Granneman

scott@granneman.com

www.granneman.com

© 2004 Scott Granneman

Last updated 20040513

You are free to use this work, with certain restrictions.

For full licensing information, please see the last slide/page.

It is easily possible

for Linux & Windows

to coexist & even work together.

1. Cross-platform software

2. File formats

3. Remote control

4. Samba

5. Running Windows in Linux

6. Running Linux in Windows

A lot of software

will run on both Windows & Linux.

Most is open source.

This software covers most basic business needs.

Examples:

Mozilla/Netscape/Firebird (Web)

Thunderbird (email)

OpenOffice.org (office)

Adobe Acrobat Reader (PDF)

Gaim (IM)

Dia (diagramming)

Audacity (sound editing)

The GIMP (image editing)

Nmap (port scanning)

Real Player (sound)

Doom & Unreal Tournament (you know what)

In the area of Web development,

you can go LAMP

(Linux, Apache, MySQL, PHP or Perl or Python)

or WAMP

(Windows, Apache, MySQL, PHP or Perl or Python).

Of perhaps more importance

is the ability to share file formats

between Windows & Linux.

With true file format compatibility,

it shouldn’t matter if you’re using

Windows, or Linux, or Mac OS X.

As the Internet becomes more and more

inextricably part of our daily lives,

the increasing usage of the Web, email, & IM

only benefits interoperability.

With one caveat:

software creators have to value interoperability.

Examples of file format interoperability:

TXT

HTML, plain text email, IM

PDF

DOC, XLS, PPT

CSV, TSV

ZIP

JPG, GIF, PNG, TIFF, PSD

MPG, AVI, WMV

MP3, OGG, WMA, RA

Every office needs an office suite –

word processor, spreadsheet, presentations.

OpenOffice.org is an open source office suite

that runs on Windows & Linux.

www.openoffice.org

OpenOffice.org is powerful,

easy to use,

& feature-complete.

You can create PDFs from any document.

And, OOo has one particularly killer feature:

it can read and write

Microsoft Office file formats!

Open and read,

or create and save,

files in these formats:

Microsoft Word 6.0, 95, or 97/2000/XP

Microsoft Excel 5.0, 95, or 97/2000/XP

Microsoft PowerPoint 97/2000/XP

Some caveats:

Conversion is not 100%.

Microsoft has not opened its file formats,

so all work is reverse engineered.

Even so, OOo is pretty darn accurate.

VBA-based Excel macros don’t work at this time.

They’re not discarded, but they don’t work either.

Fixing this is a target of OOo 2.0.

Of course,

many prefer using OpenOffice.org’s

default file formats.

They're based on XML,

they’re open,

& they’re well-documented.

Here's a statistic that may interest you.

One of my presentations contains over 200 slides,

with 25 embedded images.

When saved as an OpenOffice.org file,

it’s 400 kb.

When saved as a PowerPoint file,

it’s 800 kb.

However, for some strange reason,

Microsoft won’t build support for

SXW, SXC, & SXI

into Microsoft Office.

I wonder why ...?

Using VNC,

it’s possible to remotely control

Linux & Windows (& Mac OS X) machines.

VNC is free, open, & works well.

www.tightvnc.com

www.realvnc.com

VNC stands for

Virtual Network Computing.

You can log in

(securely, using SSH, if you’d like)

& control

Windows from Linux,

Linux from Windows,

Mac OS X from Windows or Linux,

& on & on.

Samba

is one of the most important pieces of software

in existence today.

www.samba.org

It’s an open source reverse engineering

of Microsoft’s SMB (now CIFS) protocol.

In simpler terms,

it allows Windows & Linux (& Mac OS X)

to share files, share printers, & authenticate.

Linux machines can act as

file servers,

print servers,

or PDCs/BDCs,

serving to Linux or Windows clients.

Linux clients can connect

to Windows shares,

Windows printers,

Windows Domains,

or Windows ADS Domains.

Got a Windows file server?

Replace it with a Linux box running Samba.

Your Windows clients will never know.

And Samba is a superb file server.

Free. Easy. Stable.

And 100% as fast

as the same machine

running Windows 2000!

www.itweek.co.uk/News/1131114

Or, if you’re allowing client machines to serve files,

Windows machines can share files & folders,

Linux machines can share files & folders,

& everyone can play nice together.

To configure Samba server on a Linux box,

you’re really editing

/etc/samba/smb.conf.

It’s a well-documented, well-commented

text file

which you can edit by hand.

However, a variety of GUI tools are available

to make editing smb.conf easier.

SWAT

YAST

Webmin

KSambaPlugin

SWAT is provided by the Samba group.

Also free,

it’s a Web-based tool for editing smb.conf.

us4.samba.org/samba/docs/man/howto/SWAT.html

KSambaPlugin is a free,

open source add-on

for KDE.

It makes enabling shares

as easy as right-clicking on a folder.

ksambakdeplugin.sourceforge.net

Linux boxes can also connect to SMB shares,

whether served by Linux or Windows.

In addition to on-the-fly connections,

it’s easy to mount shares.

There are a variety of tools

that makes this a simple process:

LinNeighborhood

Smb4K

xSMBrowser

Konqueror

LinNeighborhood is free,
open source,

and easy to use.

www.bnro.de/~schmidjo/

One technical note

(& this applies to many of these tools):

before letting your users start to mount shares,

set suid root on 2 key commands:

chmod +s /usr/bin/smbmnt

chmod +s /usr/bin/smbumount

You can see my machine – Homer – and any SMB-based networks my machine is on (ACLU).

LN shows you a list of all machines sharing files & printers on the LAN. Double-click on the machine you want to access.

After authenticating, LN shows you a list of all shares on that machine. Double-click on the share you wish to access.

After authenticating, you mount the share on your Linux box. Note Mount Point: where you will access the share. LN creates the mount point for you if it doesn’t already exist.

After pressing Mount, LN successfully mounts the share. To mount other shares, repeat the steps.

Open your file manager, & you can now access the shared files & folders like they were on your machine.

Eventually you’ll get tired of manually mounting common shares. In LN, select Options, then Export Mountscript.

LN creates a script for you that automates the mounting process. You can have as many mounts in the script as you’d like. Run the script manually, or set it up to run automatically when you log in.

It’s really pretty easy to run Windows inside Linux.

I don’t mean dual-booting.

I mean,

run Windows as an application inside Linux.

Several good options:

VMWare

Win4Lin

WINE

VMWare is a commercial, proprietary program

that lets you run multiple operating systems

on a single computer.

You can run Windows inside Linux,

or Linux inside Windows.

$189

www.vmware.com

VMWare is good software if you need it,

but I’ve had issues.

Expensive

Slow

File systems not integrated.

A better option for many people is Win4Lin.

Also commercial, also proprietary.

Win4Lin lets you run Windows 95/98/ME

inside Linux.

$80

www.win4lin.com

Virtually any Windows program

will run using Win4Lin ...

with one exception.

Win4Lin doesn't support DirectX 3D yet,

so no games requiring that.

Some of Win4Lin’s other features:

Networking via Linux IP Stack

or Virtual Network Card emulation.

Cut & paste between Linux & Windows.

Full file system integration.

Let me illustrate what I mean by

“full file system integration”.

Win4Lin installs 2 directories

in your home directory:

~/win & ~/mydata

~/win = C:\ in Windows/Win4Lin

~/mydata = D:\ in Windows/Win4Lin

Open a file in Linux, edit it;

open the same file in Windows, edit it.

In addition,

since ~/win is just part of your Linux file system,

after you’ve got Windows in Win4Lin

set up exactly the way you like it,

tar & gzip up the directory

(win.tar.gz)

& back it up.

When (not if, but when)

Windows freaks out,

just gunzip & untar win.tar.gz,

& you’re back up & running in minutes.

To be honest, though,

Windows runs far faster & with more stability

inside Win4Lin

than it ever does on the same machine

running as the sole OS.

I guess Linux’s stability

can be a good influence

on Windows!

Win4Lin will run in full-screen mode,

which means that Linux is effectively hidden

behind Windows.

Got a Linux-averse user,

but want Linux’s stability & management benefits?

Set up Linux to boot,

& then immediately load Win4Lin full-screen.

They’ll never know.

Win4Lin is an excellent tool to help people

transition from Windows to Linux.

They can use Linux,

but they’re able to fall back on the Windows apps

they still need.

Although, to be honest,

people use Win4Lin less and less

as they get more and more used to Linux.

WINE

(which stands for “WINE Is Not an Emulator”)

is an open source project

reverse engineering

all the Windows APIs.

It's taken a long time.

(Microsoft hasn’t exactly been helpful)

www.winehq.com

Not all Windows apps work,

but you can run a lot of Windows apps

directly inside Linux.

The Windows apps

think they're on Windows.

They have no idea

they're really running in Linux.

WINE itself can be difficult to set up.

To help alleviate that,

CodeWeavers’ CrossOver Office

created a commercial version of WINE

designed to make it easy to install & run

a subset of important Windows programs.

$40

www.codeweavers.com

You can run any of the following using CrossOver:

Word, Excel, PowerPoint, Outlook, Access

Visio

Internet Explorer

Quicken

Lotus Notes

Adobe Photoshop

Macromedia Dreamweaver

QuickTime, Windows Media Player, Shockwave

& more ...

One caveat:

WINE apps can take a while to load.

If you want to play Windows games on Linux,

WineX is another commercial version of WINE

dedicated to gaming.

Subscribe for $5 per month

www.transgaming.com

Supported games:

Half Life

Warcraft III

The Sims

Hoyle Card Games

Max Payne

Diablo 2

& more

Vote for the games

you want WineX to support next!

Similar to WINE, software can even help

Windows networking drivers

to run & work with networking hardware

that is otherwise unsupported on Linux.

Linuxant makes a commercial, proprietary

“wrapper” for Windows NDIS drivers

for modems & wireless cards

to work on Linux.

$20

www.linuxant.com

The following wireless chipsets are supported:

Atheros

Broadcom (AirForce)

Cisco (Aironet)

INPROCOMM

Intel (PRO/Wireless 2100, 2100A, 2200BG - Centrino)

Intersil (Prism GT/Duette/Indigo)

Marvell (Libertas)

Realtek (RTL8180L)

Texas Instruments (ACX100, ACX111/TNETW1130)

I use it, and it works ... flawlessly.

It allows me to use my 802.11g wireless card

on my Linux laptop.

There’s also a free, open source project

providing the same thing as Linuxant:

NdisWrapper.

It’s just a bit harder to install & setup,

but I know folks that are happily using it.

ndiswrapper.sourceforge.net

Finally, you can run Linux inside Windows.

A variety of projects & software

make this possible:

VMWare

Cygwin

coLinux

Cygwin is a free, open source

“Linux-like environment for Windows”.

You can run a huge number of Linux tools,

even GUIs like KDE and GNOME.

It’s a great way to provide SSH access

to a Windows box.

www.cygwin.com

Cooperative Linux (AKA coLinux)

is a new free, open source project

for running Linux inside Windows

at native speeds.

www.colinux.org

There are pre-built binaries

allowing you to easily run

Fedora Core, Debian, & Gentoo

right inside Windows.

You can run other Linux distros,

but you have to make slight modifications

to get them to work.

More info at the coLinux Web site.

A friend of mine is running coLinux

inside Windows

running inside Virtual PC

running on his Mac OS X laptop!

It actually all works, and works well.

We’ve looked at interoperability between

Linux and Windows

in several areas:

1. Cross-platform software

2. File formats

3. Remote control

4. Samba

5. Running Windows in Linux

6. Running Linux in Windows

Some of the software we’ve looked at:

OpenOffice.org

VNC

Samba

(& SWAT, KsambaPlugin, & LinNeighborhood)

VMWare

Win4Lin

Codeweavers CrossOver Office

Linuxant DriverLoader

Cygwin

coLinux

There’s a lot of great software,

& a lot of very smart, dedicated people

working to increase the interoperability

of all operating systems,

not just Windows & Linux.

They deserve our support,

by using, paying for, testing, or helping their efforts.

Keep your eyes open:

you ain’t seen nothin’ yet!

(As long as patents

& a desire by some companies

to decrease interoperability

don’t get in the way)

Thank you!

Email me: scott@granneman.com

Visit my Web site: www.granneman.com

Licensing of this work

This work is licensed under the Creative Commons Attribution-ShareAlike License. To view a copy of this license, visit

http://creativecommons.org/licenses/by-sa/1.0 or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.

In addition to the rights and restrictions common to all Creative Commons licenses, the Attribution-ShareAlike License features the following key conditions:

Attribution. The licensor permits others to copy, distribute, display, and perform the work. In return, licensees must give the original author credit.

Share Alike. The licensor permits others to distribute derivative works under a license identical to the one that governs the licensor's work.

Questions? Email scott@granneman.com

Scott Granneman

2003-01-17T11:32:51

Scott Granneman