Bob's Adventures in Wireless and Video Headline Animator

Friday, February 8, 2013

Standard vs Embedded OS for Video Server

Video Management Servers are interesting beasts. On the one hand security system installers, integrators and end users want the flexibility of running a standard operating system where they can install the applications they want, optimize the system the way that they want and use it in a way that is well known to them.

On the other hand they also want to lock the system down so that it cannot be easily broken/trashed/corrupted/hacked etc.

Building an embedded system is generally what people do to lock a system down to serve one purpose. We sometimes call this building an appliance. Basically an embedded system will use a purpose built piece of hardware and special purpose operating system, install their application, and then freeze the system so it cannot be modified.

If you are a system developer, this is a fairly straight forward endeavor. You assign a programmer to build the embedded operating system and use programming tools to lock it down. Then you sell your appliance as a single function device. Done. Linux is well designed for this and you can easily build systems with read only boot/system partitions and then working directory structures to store system data. Microsoft offers a product line for this which is referred to as Windows Embedded. It is a modification of standard windows which allows modular configuration of the operating system, customization of the interface, and locking the system down.

The problem that embedded systems pose for end users and system installers is that they limit flexibility. Once a system is built into an embedded appliance, it's purpose is set. You can't easily modify it, add functions to it, or customize it. From a support perspective this is good. Support technicians know exactly what the system does, how it does it, how to reset it, etc. So when a customer calls in, you can actually help them. From a user perspective it is frustrating, as you may need to add functionality that the embedded system developer never intended or imagined.

The other main thing that embedded systems do is create read only boot/system images that allow devices to be powered off without going through a shutdown sequence. Generally the OS and applications are loaded into and run from RAM on boot up and read/write to a RAM disk. This eliminates disk writes which can corrupt storage if they are interrupted. A standard operating system on the other hand will read and write to the physical disk, freeing up RAM to be used for other purposes. There are a lot of things that written to disk including page files, log files, temp files, registry, configuration files, etc.

When we designed the microNVR we weighed the pros and cons of using an embedded operating system versus using a standard operating system. We opted for supporting Windows 7 Professional which is a standard operating system (we also support our own distribution of Linux which is based on the base Kernel with an LXDE desktop). This allows our customers to install and run any standard applications they wish. For example we support Exacq, Milestone, ONSSI, Genetec, Network Optix, and many other video management systems. We also support our own MVE and Mobile Video Vault systems.

However, we have had some issues with customers not executing safe system shutdowns on Windows, which has resulted in disk corruption. Normally on boot up the user will be asked to run a disk check and correct the issue, but the microNVR is often used headless (without a monitor) so the user cannot see that the system wants him/her to hit a key to run a repair. We had to make a change.

We have just finished building a new system image which will be available on new microNVR systems. The new image still uses Windows 7 Professional, but with several significant changes which make the system straddle the line between embedded and standard operating systems. But the change also fixes a number of deficiencies we saw in Windows 7 Professional when used as a host for a Video Management System.

First we changed the definition of how we used our disk partitions. We now have a system partition (C:) and a data partition (D:). Drive C: loads normally to memory, but we also create a RAM drive which intercepts write activity and buffers it while the system is powered on, making Drive C: essentially read only. Drive D: is a full read/write partition which hosts all of your applications, as well as user data files, log files, page files and more. Anything that needs to be persistently written to disk goes on Drive D:.

When a user wants to modify the registry, or other system configuration which needs to be written persistently to Drive C: for booting, then we have an application on the system desktop that will write the working RAM drive intercept partition to Drive C: making the changes permanent.

So basically we created a hybrid system that protects the system from unintended changes, perserves data, and allows permanent changes to the system without having to use an embedded operating system. We reduce system failures due to disk errors and allow the microNVR to behave like a true embedded device, while allowing all of the flexibility of a standard server OS. Think of this as an end user oriented embedded system.

The only thing a user has to do differently with our new Windows 7 Professional build is click the "Write to Disk C:" icon on their desktop after they have installed or remove an application or make other system changes which require modifications to registry or the system disk partition. Of course the whole system can be remotely administered using Windows Remote Desktop using Ethernet or 802.11b/g/n wireless connections.

The new hybrid OS is an exciting development by HauteSpot which gives our installers, system integrators, and end users all the benefits of an embedded OS, with the flexibility of a standard OS.

1 comment:

  1. What a great article about embedded systems. I never realized how complex this was. Where can I buy one of these systems