I've built a minimal but usable Windows XP Embedded OS which consumes as low memory and hard disk space as possible.
Microsoft provides a tool called Target Designer which can be employed to build up the whole system from components and deploy to
several medias like hard disk, CD-ROM flash drive or make the system capable to boot from network. If you are an university student or
Ph.D. student you may have
MSDNAA licence and
can freely download tools needed to build XP Embedded.
The maximum number of eligible dependent components are around 10000 (1000 software and 9000 hardware component).
Picture of Microsoft Target Designer:
Target Designer needs about 256 MB of memory and an MSDE database server which can run on a Windows XP Professional hosted in Virtual PC also.
The resulting Windows XP Embedded installation has the following features:
- Win32 Subsystem and API
- Graphical User Interface
- Network connectivity (using DHCP Client service)
- cmd shell (not explorer)
This needs about 10 MB of memory for executive (something like kernel space) and 12 MB of memory for user space. Task Manager consumes another 3 MB of memory.
The following picture shows running the generated system:
To achieve the low memory usage the following script has to be run after first boot and then reboot again:
rem disable unneeded system services for XPE
sc config audiosrv start= disabled
sc config W32Time start= disabled
sc config themes start= disabled
sc config protectedstorage start= disabled
sc config lanmanserver start= disabled
sc config spooler start= disabled
sc config dnscache start= disabled
sc config browser start= disabled
sc config shellhwdetection start= disabled
sc config lmhosts start= disabled
sc config lanmanworkstation start= disabled
sc config plugplay start= disabled
sc config samss start= disabled
sc config rpcss start= disabled
rem disable unneeded system drivers for XPE
sc config netbios start= disabled
|
This script disables all unneeded services and kernel drivers to achieve the low memory usage. There are no open ports and only DHCP Client
service is running.
The system uses about 70 MB of hard disk space:
BSDs are very secure and robust server Operating Systems and can be hosted in Virtual PC. I've installed a FreeBSD system and compiled a new kernel
to make it able to use every and only necessary hardware components. X and networking were also set up. BSDs are built up of a base system and the ports system.
The base system is the core operating system with the minimal needed services to run an internet server. Ports are a big collection of user applications.
This is a very logic and clean design methodology.
You can read about this OS on its
official site.
Picture of FreeBSD running the "top" command:
Another picture (list of the root folder and the output of "uname -a" command):
OpenVMS is a very old Operating System which is much more secure than Solaris or any BSD distribution. Unfortunatelly it is not widely used today.
OpenVMS is not able to run on any x86 platform except for some Intel Itanium processors so I had to use Simh (targeting a VAX) emulator (of course
the Windows version) instead of Virtual PC.
The installation procedure of OpenVMS can be studied from
Wherry's site.
Licenses can be acquired from
Encompass US. To enable networking WinPCap has
to be used. Networking sometimes works sometimes doesn't.
The core of Windows NT and its descendants are based on VMS developed by almost the same team. The security model, ACLs, privleges, kernel space,
configuration are very similar and well designed.
A following can be seen while booting:
Displaying some status info, network info and a telnet login:
Solaris is a Unix variant developed by Sun Microsystems. There were some issues installing network and GUI support
under Virtual PC.
Single picture of Solaris 10: