Maker Pro
Maker Pro

Documentation "containers"

D

Don Y

If you already have multiple platforms of PCI, PCMCIA etc based hardware

I've got *lots* of machines :-/ I don't like trying to keep lots
of different applications, hardware, etc. "playing nice" on the
same machine so I partition things by functionality. E.g., tablet
and plotter on CAD station, film/paper scanners and photoprinters
on DTP station, ICEs on software development station, etc. It just
seems easier to create a "manageable" machine that way (and puts
less at risk when/if something "acts up").

For example, if I'm going to a meeting, I'll carry a tablet PC
with little more than notes/presentation to act as an electronic
etch-a-sketch (far more intuitive user interface than a mouse,
especially if others want to sketch something to show you what
*they* are thinking). OTOH, I'd rarely use that sort of device
"at home" (too clumsy for the work I do there)
then virtual PCs may not be ideal. USB does seem to work well though
IME, using VirtualBox.

Does VirtualBox hook the USB interrupt so the host OS isn't even
aware that a new device has been inserted? I.e., does Windows
not even 8see* that I've just plugged in a USB scanner? Or, a
USB printer? etc.
VirtualBox works well IME, so you could start there. It's pretty well
mannered on Windows anyway, and seems to have not particular issues when
I've installed it.

OK. I finished a list of applications that I plan on installing
on the little boxes. I'll add VirtualBox to the list (*last*,
though, so I can back it out without having to redo the complete
install) and see what it can/can't do "cleanly".
 
D

Don Y

Hi David,

First off, if you are testing hardware other than USB devices, then
virtualisation won't help you much (VirtualBox has some experimental
support for PCI virtualisation, but certainly not enough to give you any
help here).
OK.

How much an USB device affects the host system depends on the host OS.
if you are using Linux as the host OS, then you have no problem. If you
insert a USB printer, scanner, memory stick, etc., then most modern
Linux desktops will make it available for use automatically - but they
will not install the sort of junk you get on Windows, or make any
changes to the system. The drivers will already be installed, and the
Linux box won't care as you plug things in or out. If the USB device is
something non-standard, it won't do anything with it. When you connect
the USB device to the VirtualBox machine, it is "unplugged" from the
host OS, and "plugged in" to the guest OS. Again, with a Linux host,
that won't cause any bother or lead to any changes.

I don't run Linux. All *BSD's, Solaris and various incarnations of
Windows.

Regardless, I'm not talking about generic things like "mass storage
devices", "generic printers", etc. Rather, things like *specific*
printers (making *all* of their functionality available -- like
front panel displays, built in scanners, wifi adapters, etc.),
film/paper scanners (and their feeders), DSL/cable/telco modems,
colorimeters, etc.

Often, some *crude* support for some *portion* of the device is
available on a non-Windows OS -- but, big portions of the device
(i.e., most of the "value added" functionality) is ONLY supported
on Windows. Often, on just a particular VERSION of windows.

The folks I know who *do* run Linux (mostly Ubuntu and Debian)
confirm this "lack of support", there. I.e., it doesn't do
me much good if the host OS is "kind" to the device if it
doesn't *support* it! :<

A list of some of the things in my "toy box":
- Motorola SBV5220 SURFboard Cable Modem (will Linux let me see
the state of the two removable backup batteries? Will Asterisk
support the VoIP features?)
- Linksys/Cisco RTP300 Broadband Router w/ 2 phone ports (again,
what VoIP support do I get?)
- Symbol SPT1733 Pocketable Computer w/ Wireless WAN (Will the
"server end" of the support tools run under Linux -- wirelessly
*or* via (slow) serial port? Is the SDK supported, there?)
- Various USB Wireless a/b/g/n adapters (the obvious question)
- USB microphones
- M-Audio MobilePre USB (think of it as an external sound card
with XLR inputs, support for phantom power, etc. -- what
audio capture/processing tools will work with it? And, will
they *really* work? Or, just "almost/sorta" work?)
- Creative SoundBlaster Extigy (similar to above -- will I be
able to use the optical I/O's?)
- TASCAM US-122L (as above)
- ULinx USOTL4 RS422/485 Serial Adapter (will the multidrop capability
be supported?)
- D-Link i2eye Broadband VideoPhone (which video conferencing features,
if any, will be supported?)
- SlingBox SB100 (is there a "SlingPlayer" equivalent available?)
- Fujitsu DynaMO 640 Pocket (will I be able to read, write, eject
and *format* media?)
- Ricoh 5060E 1.3GB (same as above)
- PinnacleMicro Vertex 2.6GB (same as above)
- Nikon LS-2000 scanner (will it automatically advance to the next
frame when using the motorized film scanner?)
- HP 7490C scanner (will it support the ADF? will the front panel
display and controls work?)
- UMAX PowerLook 2100XL large format scanner (does it include
color calibration software?)
- Ambir DocketPort 665 (will it even *see* this small scanner?)
- Lexmark S605 All-in-one (in addition to the scanner and printer,
will it let me configure the WiFi adapter therein? Access the
same front panel features?)
- Logitech NuLOOQ "puck" (which motion control features will it
not support?)
- SpaceBall 4000FLX (recognized? driver hook?)
- Epson EMP-835 Projector (can I control the projector remotely?)
- eBeam EB3-1U whiteboard scanner (can I see whiteboard activity
in real-time?)
- Dazzle DVC150 (can I capture and synthesize live video/audio?)
- Sony VRD-VC10 (as above; can I write DL discs?)
- ColorVision Spyder "colorimeter" (driver?)
- ActivCard smartcard reader (PCMCIA)
- Other media types (MO, SuperDisk, ORB, VXA, DAT, DLT, etc.)
- Keyboard wedges (MICR, magstripe, barcode, etc)
- whatever new gizmo a client wants me to deal with *tomorrow*

All of which are supported by Windows. I'm no "fan" of Windows.
OTOH, if that's where device manufacturers are speding their
support dollars, I'm pretty much stuck running it (on at
least some of my machines :< )

[I'm not interested in "Oh, <someOS> supports <someParticular> device"
unless <someOS> also supports ALL of the above :< ]

And, that assumes the applications that use these devices will
run "effectively" with less physical memory, etc.

"Foreign" OS's usually don't support lots of things. Emulation just
doesn't cut it, IME. There's *always* something that doesn't quite
work right. I'm not interested in "free software" if I'm spending
thousands of dollars of time chasing down "fixes" and wondering
why some feature doesn't quite work right (who do you call? what
do they *care* about your problem?)
With Windows as the host OS, when you plug in the USB device, the host
will try to use it first. That means it will try to find drivers,
configure the device, etc. With enough "cancelling" you can minimise the
effects, but you can't avoid them entirely - as you say, Windows has a
crappy architecture for this sort of thing.

Exactly. Windows thinks it is the center of the universe. And,
application/driver developers FOR windows have the same attitude!
Things run/install with elevated privilege -- that don't *need*
to. Things clobber/hijack preexisting settings/configurations
without even *telling* you that they've done so. Plug in device
*before* installing necessary software/driver and the device
refuses to work, when the software *is* installed, etc.

OTOH, if the devices are going to work, it's under windows where
they stand the greatest chance of working! :-/
This is one of the (many) reasons why Linux is a better choice of host
OS than Windows.

The list of devices, above (and the software that accompanies them),
is one of the reasons why it *isn't*! :<
However, even with Windows as the host, the system is quite good, and
the great majority of the changes, drivers, installations, muck-ups,
etc., involved with the USB device will be in the guests only.

I'll install VB on one of these little boxes as a "guest application"
(i.e., I will image the drive *before* installing it so I can
remove all traces of it, thereafter) and see how it fares. I'll
see what sorts of "device" problems I encounter. Then, try to
put a number on the "performance hit" applications take in that
environment (perhaps render a video and see how long that CPU-bound
task takes where no I/O is required)
 
J

josephkk

Hi Joseph,



Agreed. However, I wish NoScript would let you configure which
"script domains" to allow on a per-site basis. I am reluctant to enable
particular domains unilaterally so end up having to experiment on
a site-by-site basis: does this site *really* need googleapis?
I'm pretty sure it *doesn't* need facebook... etc.


Sad to see how much is now done *in* scripts that needn't be.
Sort of like they've forgotten how to ride a bicycle because they've
been spoiled with driving *cars* all this time...

Hmmmph. They never walked or rode bicycle. (Wrote HTML directly or used
the simplest tools [NOT MSWeird] to do anything.) Can't drive a screw by
hand, has to have a power screwdriver with auto everything. Same with
driving a nail, gotta be done with the gun. Otherwise they can't do
anything at all.
 
J

josephkk

Hi David,



I've always been disappointed with emulations. There's always
*something* that they don't emulate properly. (The folks at Sun
understood this ages ago with their SunPCi products... cheaper
to just provide the extra hardware in *case* it is needed!)

With a small box of *real* hardware, I can install a driver for
a device that I want to test and *know* that any "problems" are
the fault of the actual driver -- not an emulation environment
that's not quite up to par, a configuration parameter that
needs to be tweaked, etc. Part of the appeal of these little
machines is the abundance of I/O's: 4xUSB, 2xEthernet, TVout,
SPDIF, VGA, S-Video, 2xFW, 2xPS2, PCMCIA, serial, parallel,
line in/out, headphone/mic. And, I can carry it to wherever
I *need* it (instead of carrying whatever *else* to some
particular machine!)


Don't have to *add* a screen/keyboard. Just plug into one of
the existing screens/keyboards. I think we have 14 or 15 monitors
(not counting digital capable TV's) currently deployed around the
house -- most with A/B/C/D switches so "supporting" a hand-sized PC
just entails leaving a video cable plugged into one of the unused
inputs on the monitor.

I think a "basic" OS installation is probably small enough
to fit a compressed image on a DVD so I should be able to
make a self-restoring DVD (and use it for *both* of these
devices). So, if I ever "suspect" the system is wonky,
I can restore a complete image in less than 10 minutes
and start over!

Virtualization is not the same as emulation. Emulation pretends to be a
different architecture, virtualization is the same architecture and only
emulates protected operations like IO, thus it runs near "native" speed,
mostly being actually executed directly on the hardware.

I really like VirtualBox, sometimes i swear the virtual machine is faster
than the real machine.

?-)
 
J

josephkk

[N.B. I already do this with each machine as it makes reinstalls
painless AND safeguards against "updates" going missing]
want to use a piece of software or alternatively sorting out a specific
box, digging out the cables and pissing about with hardware seems daft
to me. VMs have the further advantage that they can be exported and used
on eg a client site without having hardware bumping around in the boot
of the car.

Are you claiming that the host OS/filesystem will experience *no*
changes outside of those *within* the guest OS's virtual disk
contents when I insert a PCMCIA card, USB device, FW device, PCI
cards, etc.?

And, that the guest OS will be able to *effectively* use each of
these bits of hardware?

Perhaps the *first* use for these little boxes is to install
VirtualBox, VMware, etc. *there* and prove/disprove this claim...
But hey-ho, each to his own :)

Boo

Since you have a common issue of driver validation for plug in hardware
VMs are not usually appropriate. Maybe for some USB/FW devices, when you
got lucky. Sorry for missing that before. OTOH you might then need to
validate that your hardware is accessable/usable in the VM. That could
get really tricky.

?-/
 
J

josephkk

I think you're being somewhat too pessimistic (or something) about
this. I'd expect virtually everyone to have _some_ media player on
their machine, so the only requirement is that the user may have to
tell Acrobat (or Foxit or...) what that player is, and where to find
it.
The number one problem with that is that WinMP is a crippled piece of
crap. And only people that know better than to tolerate it replace it.

?-/
 
J

josephkk

Hi Peter,



But the player may not support the particular CODEC used in the
video! I was hoping that Acrobat would "standardize" the format
of these animations/presentations so that *it* could present THE
necessary CODEC. That way, all *I* would have to do is verify
there was a version of Reader available for the likely OS's
that users would encounter. If there is something *else* that
imposes requirements on the playback, then I have to ensure
a media player/CODEC exists for each of those OS's, as well
(and pray that "Joe's Freeware FOOBAR CODEC" is at least
as good as the "Mainstream" CODEC/player that I would expect to
be used)

<frown> As I said, I'll have to explore this in more detail.
It may be that PDF's are the wrong "container"...

The problem may well be worse than that. PDF may be the only container
that is sufficiently universal to even come close as well.

?-/(
 
J

John Devereux

[...]

Virtualization is not the same as emulation. Emulation pretends to be a
different architecture, virtualization is the same architecture and only
emulates protected operations like IO, thus it runs near "native" speed,
mostly being actually executed directly on the hardware.

I really like VirtualBox, sometimes i swear the virtual machine is faster
than the real machine.

I know what you mean, in fact I think mine actually is faster :)

No virus scanner, just a standard minimal set of virtualized
"hardware". Must take out a lot of overhead.
 
D

Don Y

Hi Joseph,

Since you have a common issue of driver validation for plug in hardware
VMs are not usually appropriate. Maybe for some USB/FW devices, when you
got lucky. Sorry for missing that before. OTOH you might then need to
validate that your hardware is accessable/usable in the VM. That could
get really tricky.

Dunno. I'm willing to live with the "reload a disk image"
approach (since I know it leaves the native system in exactly
the state it was (documented) at the time the image was
created. Once done with the hardware I am evaluating/testing,
I can discard the disk's contents and *know* that I'm back where
I started -- no updated DLL's, registry keys, etc lingering
behind.

On my tablets, a 9G image (system, drivers, utilities plus a set
of token applications -- Firefox+Tbird, assorted archivers, screen
capture, EMACS, powertoys/sysinternals, etc.) takes about 15 minutes
to restore. I know this as I restored an image last night on
one of them. Note that's with a slow laptop style drive (actually,
it may be a 1.8? drive)

I'll see if I can start playing with these little EzGo machines
tonight. Not sure, though as I have 4 episodes of a TV show to
watch that might prove distracting! :>
 
D

Don Y

Hi Joseph,

I think you're being somewhat too pessimistic (or something) about
this. I'd expect virtually everyone to have _some_ media player on
their machine, so the only requirement is that the user may have to
tell Acrobat (or Foxit or...) what that player is, and where to find
it.
The number one problem with that is that WinMP is a crippled piece of
crap. And only people that know better than to tolerate it replace it.[/QUOTE]

It seems that Windows' player is always wanting to download some
new CODEC -- regardless of the container I;m using. OK, that
may be the fault of the container -- supporting multiple
CODERs -- but how does the user know that he's got the right
CODECs installed? "Ah, I see .ABC files are handled by
MediaMagic2000 so I should be all set..."

It's like getting a PDF, *knowing* that you have a reader installed.
*Then*, discovering that some font that the document needs is missing
(and substitution is impractical!)

I want the user ("viewer") to just be able to have X installed and
that's all he needs to see the presentation THE WAY I INTENDED IT
TO BE SEEN (which is the beauty of PDF over, e.g., HTML)
 
D

Don Y

Hi John,

I know what you mean, in fact I think mine actually is faster :)

I'll *measure* that with some CPU-intensive tasks.
No virus scanner, just a standard minimal set of virtualized
"hardware". Must take out a lot of overhead.

Yes, but you don't need a VM to get that "advantage"! I.e.,
my production machines don't have AV software on them -- they
don't talk to the outside world (well, they *talk*, they just
don't "listen" :> )

The "easily reloadable image" approach I'm suggesting has the
same advantage -- no "Windows Update", "IIS", "Index Service",
AVscanner, firewall, etc.
 
D

Don Y

Hi Joseph,

The problem may well be worse than that. PDF may be the only container
that is sufficiently universal to even come close as well.

If that proves to be the case, then I can explore other, "less
mainstream" tools -- provided I can find a viewer that is
portable enough (and licensed for redistribution) that I can
include *with* the "documents".

It will be amusing if I have to return to *older* tools to
get this sort of functionality (if it has been "bred out of"
newer tools!)
 
G

Grant Edwards

I have measured speeds, and seen that in some situations the
virtualised machine /can/ be faster. For cpu or memory speeds, it is
unlikely, but since there are things that one OS will do faster than
other OS's, you can easily have a virtualised machine with a
different OS running tasks faster than the host machine.

A few years ago, I used to run WinMe on a Win4Lin virtual machine
hosted on Linux, and it was _way_ faster than running WinMe directly
on the same hardware.

Apparently, the Win4Lin Windows device drivers for X11 and the Linux
network, and disk/filesystem APIs ran rings around the "native" WinMe
drivers for my hardware. It was also far more stable on the virtual
machine than it was on real hardware. I think that's mainly an
indication of how stunningly bad WinMe was.

The times I've run Win2K and WinXP on various virtual machines (mostly
Qemu and VirtualBox) they don't seem to benefit from any speedups.
 
D

Don Y

Hi David,

On 24/04/12 19:35, Don Y wrote:



I told you why I think Linux is a better choice of a host OS for
virtualisation than Windows is - because I think virtualisation could be
a good way to deal with some of the testing issues you seem to be
--------------------------^^^^

having. If you don't want to use Linux, or don't want to use
virtualisation, that's okay by me. But you don't have to waste
everyone's time - and your own time more than anyone else's - by going
through endless lists of "toys" that you believe are not supported by
Linux.

I was trying to address the range of "toys" that clients
drop on my lap and expect me to either use or evaluate.
And, by extension, how much that "mucks up" a running
(Windows) system.

Using virtualization to let me do *some* things -- and then
*still* needing "real hardware" to do *other* things that
the virtualization was unable to address -- means I have to
have that hardware *and* your virtualization as well. How
does that make my life any easier?

"Gee, it appears (after *trying*) that this won't work under
a VM without mucking with my host OS -- hopefully, it hasn't
done anything that I can't *un*do. So, now I guess I'll have
to take out one of those machines that I've set aside for
this sort of thing..."

vs.

"I'll take out one of those machines I've set aside for
this sort of thing and wipe it clean, afterwards..."

As I said, after I image those boxes, I'll install VB as
a "guest application" and *see* what it does and doesn't
do for me; see what sorts of performance hits it incurs;
where it's behavior differs from "native hardware".

Then, restore the original image and repeat the exercise
with VMware. So I have real facts instead of "try it
and see..."

Terribly sorry to have wasted your time with these details.
I'll spare you the trouble of reading my summary results
(since they wouldn't apply to *your* "toys", hosting iron,
etc.)
 
F

Fred Abse

Same with
driving a nail, gotta be done with the gun.

80% of the population don't know how to use a hammer properly.

In the female population, that rises to 90% ;-)
 
G

George Neuner

80% of the population don't know how to use a hammer properly.
True.

In the female population, that rises to 90% ;-)

100% of females over the age of 4 know how to use tools properly ...
they get a male to do it for them.

George
 
J

josephkk

Hi John,



I'll *measure* that with some CPU-intensive tasks.

I know that there are various (popular[?]) free tests, none of which trust
much. But i not interested enough to pay much for test software. Nor is
CPU intensive the only type of test i am interested in.
Yes, but you don't need a VM to get that "advantage"! I.e.,
my production machines don't have AV software on them -- they
don't talk to the outside world (well, they *talk*, they just
don't "listen" :> )

The "easily reloadable image" approach I'm suggesting has the
same advantage -- no "Windows Update", "IIS", "Index Service",
AVscanner, firewall, etc.

I get the point. It would not serve me all that well in general. VM
snapshots work pretty well for me though.

?-)
 
D

Don Y

Hi Joseph,

I'll *measure* that with some CPU-intensive tasks.

I know that there are various (popular[?]) free tests, none of which trust

Benchmarks are only good for folks writing articles in magazines.
I want to know how it will perform on the types of software that
*I* need to run. I.e., how big a hit I take on physical memory,
I/O devices, etc.
much. But i not interested enough to pay much for test software. Nor is
CPU intensive the only type of test i am interested in.

I figure CPU intensive give it the *best* chance of performing well.
No need to work its way down through abstraction layers to deal with
*real* hardware (i.e., "I/O").
I get the point. It would not serve me all that well in general. VM
snapshots work pretty well for me though.

Of course! You use what's right for *you*. If I was just running
code that used a display/keyboard/mouse/disk I would have a different
opinion. It's precisely the hardware dependencies that I (know?)
will bite me. In which case, if it doesn't solve *all* those
needs, then why add one more thing to the "support"/dependency
list? :<
 
G

Grant Edwards

I figure CPU intensive give it the *best* chance of performing well.
No need to work its way down through abstraction layers to deal with
*real* hardware (i.e., "I/O").

That depends on the comparitive quality of the driver frameworks and
I/O subsystems of the two OSes, and how the virtualization works. If
the client is running a crappy OS (e.g. Windows), and the client is
using network/disk/whatever drivers that are virtualization-aware,
then it's quite possible that I/O intensive apps will experience
noticable accelleration compared to running directly on the hardware.

The best you can hope for in the case of CPU intensive tasks is to
operate at the same speed as they would directly on the hardware.
 
Top