Feature, Limitations and details

Features
PXE and mapped shares work as expected so per-user versions of Nano can be delivered. One of the instant advantages is the ability to roll out Nano-based clients which is an easy way to increase effiency and reduce downtimes: a reboot fixes every software problem, always.
Privacy is inherent in Nano, Imagine you have a work laptop and your kid wants to play on some website. You can reboot into Nano and know that your work drive isn’t even accessed and even if the save nfunction is used it does not affect your work OS/files.
The save functionality saves your user folder, programdata and user registry settings excluding the microsoft section of the registry. This is stored in the Nano folder and restored transparently on startup. The sync files are in Rar format (might switch to 7z) so can be edited manually.
Zero-trace operation, The profile and cache are generated in the ramdisk and so are gone when the machine reboots or the “clean ramdisk” option is used. A persistent profile option is available which uses a profile within the Nano folder (C:\Nano).
A software called peerblock is used as a system-wide firewall, with preset lists amounting to over 1.1 billion IP4 addresses. By default it also stops HTTP requests, basically your machine is on high privacy mode. It’s easy to turn these protections off and add a whitelist.
Every time you boot Nano it is effectively installing a version of Windows in Ram and booting from it. Since it’s Windows PE it isn’t designed to write to the drive but sets up a ramdisk instead. It then loads the compressed “live” windows PE image into the ramdisk and boots it.
Within one boot the system has to have everything in place so getting some applications or drivers fully working took a lot of work. Many scripts were created to perform actions such as enabling a pagefile, saving your settings, getting everything running and tidied every boot, etc.
PrimoRamdisk and Primocache (pro) are integrated as are ASIO for audio, Sandboxie (pro), Process Hacker, qBittorrent, Winamp, Media player classic (with high-performance hevc codec installed on nanocore), Aeroadmin, Chrome, irfanview, CPU Emulator (pro), Winrar and more.

 

Nano Pro’s Nvidia suite supports (Nano Core could support them too).
OpenCL, OpenGL, Vulkan, Cuda, Flex, Apex, PhysX, DX11, NVenc, DXVA
Some example apps/games tested and working: Photoshop, Premiere Pro, Audition, Lightwave 3D, Tor browser, Nvidia Flex Demo, Blender, Firefox, Luxmark, Cinebench, CLBenchmark, Steam, Doom (Vulkan and DX11), Eve Online, Battlefield One, Mass Effect Andromeda, No Man’s Sky (with CPU emulator), Chrome apps/games with full WebGL, Renoise, Cubase, Traktor DJ, Neatvideo, XNALara.
Known Limitations
Windows PE lacks AVX or better instruction sets meaning some apps won’t work, however I integrated intels CPU emulator into Nano pro so you can run those apps. They run emulated, so advanced instructions slow things down rather than speed things up.
Current builds run as the system user meaning that teamviewer does not work. The chrome extension of teamviewer works, there is a free alternative called Aeroadmin built into 0.8. Skype also works through the chrome extension, with the desktop version not working with 0.8.
At this early stage there are some applications that are either untested or more difficult to get working on Nano. This is often to do with the way that some applications/games work or their related DRM. Luckily though, the majority of software already works very well.
For apps/games that use complex DRM or launchers, sometimes the only way to get them work is to apply a crack to remove the software protection. If you own the software this isn’t actually illegal.

NOTE: DX12 and AVX are working in the newer versions (This article is dated Sep 2017)

 

 

Core advantages

  • Very low system footprint
  • Runs entirely from RAM and doesn’t need a storage medium
  • Completely resets to default (or most recent save) at every reboot
  • Does not accumulate junk
  • Is delivered as a ~600MB file, updating is as simple as replacing it with a new one
  • Ultra fast on any hardware
  • High performance and low power
  • The majority of spyware/malware is unable to penetrate Nano beyond a simple reboot
  • Pro (extends application compatibility, 4GB minimum RAM and Nvidia GPU recommended)
  • near-complete Nvidia GPU support
  • Workstation-class platform supporting all Windows 10586 standards
  • Full .NET support, (Java possible but not currently included)
  • Full X86+x64 support (not sure what the maximum RAM is, I’ve been testing with 24)
  • Integrated, optional Sandbox increases compatibility with difficult apps such as Cubase
  • CPU Emulation for AVX upwards (these instructions are not supported by Windows PE)

Usage Scenarios

  • Anywhere where a portable Windows OS would be useful
  • Portable Isolated Steam/Kids browser
    Feel free to play games or apps on any computer
  • Portable Chrome-OS
    Chrome setup with clean and persistent profiles
  • Kiosk
  • An ATM or information system
  • Internet Cafe
  • Fault-free super-fast browsing
  • Automotive
    Runs NVidia Automotive AI
  • Portable DJ setup
    Everything just set up the way you want it, tunes, drivers, setups
  • Workstations
    You want your machine to run Photoshop all day long
  • Staff Installations
    I need our enterprise software or a browser, with my own profile.
  • Engineering Installations
    Preconfigured OS and Apps for computer management
  • Privacy conscious portable TOR browsing
    A USB-stick private browser using a portable, randomised, zero-trace Windows setup
  • Virtual Machines
    Private, clean and sandboxed virtual OS for internetting on a workstation
  • Safe browsing session
    In a public place or to safeguard your current PC from harm

 

 

Modes of operation

  • Normal

Runs using the C drive as the medium for the Nano profile

  • Isolated

Runs without access to the computer drive, using USB/RAM for the Nano profile

  • Network

Runs using a mapped network drive for the Nano profile
All modes

  • Create a nano folder with subfolders if a storage medium is available
  • Run from RAM by default
  • Can save/restore if a storage medium is available
Advertisements

Early Build Process

The Build process I started by taking a pre-built Windows PE x64 “Live CD” – by Gandalf. I spent the first month modding this disk extensively – a total conversion to Nano Pro. The first goal was to expand on the working Nvidia/AMD drivers in the Build of PE I was customising.
Within the first week I had the Nvidia suite working, including Cuda, OpenCL/GL, NVEnc, PhysX, Apex etc working. Meaning many modern games ran perfectly, modern apps such as Premiere and Photoshop, Chrome or Specviewperf ran with all advanced GPU features working.
Then a save/restore script needed to be developed to capture the relevant changes and restore them transparently on every boot. It’s important that this process doesn’t save any unnecessary files otherwise it would bloat the process, also it has to avoid allowing changes to the system.
The next month was spent getting everything working, exploring what could be removed/changed with the source build of Gandalfs PE (32 and 64bit) and solving 100s of issues, much of which I couldn’t find any information even within the online community.
I had to go way deeper into Windows than I ever had before and for the first time I really felt like I’d covered some really new territory in the world of Computing. I knew how life-changing this mini-OS could be for people all over the world.
At this stage we had recognised that there was a lot more benefit and further potential for this project. I decided to find the software Gandalf had used to create his build of PE and build my own. For the next two weeks I learned how to make a stable, simple and effective Windows PE.
It’s not as easy as it sounds, to get the balance right and not break anything. Since I had created my own application and registry suite I opted to avoid the majority of the Windows PE builder software options and focus purely on building a PE that is as compatible as possible.
Then for the next 6 weeks I rebuilt the previous version of Nano with the benefit of having a stable and specifically built clean Windows PE that I knew exactly what was there or not. I never needed to use Windows to develop Nano, I would go for weeks without ever using windows.
It was very fast because I would boot nano, check my last changes worked and if not then revert and reboot. I could explore with changes on my live Nano system and if they work, I put them into the Nano image and reboot. With trial and error I ended up getting a lot of stuff working.
At some point with this approach you also need to start from scratch again sometimes. Half way in I started to save out the registry and file changes so they could simply be applied to a clean image to produce nano. This happened about a dozen times to create 0.8 – my first clean nano.
One aspect I wanted to explore with this version was that when you run this system – you are the system user itself. You’re given full access to the computer within, because this build is still a test version – the System user gives us unhindered access which is useful for development.
During this initial 3 month period, around 3500 builds of Nano were created

The Initial Idea

Originally, while dabbling with custom Windows builds, I started modding Windows PE quite a lot. I also experimented with customising Windows PE and had the idea that it would be great to create a static and therefore bulletproof OS with PE as the basis.
Before I ever got around to building anything substantial, I had learned that the Boot image for Windows install is also Windows PE and I had known this was loaded entirely into memory at startup. This led me to realise that any PE build would also sit compressed in RAM.
Gandalfs Windows PE disk showed a working video driver that in very basic terms supported various Nvidia, Intel, AMD or S3 chipsets. I used those as a template to create custom drivers by combining the PE drivers with files and registry sweeps of Nvidia drivers in standard windows.
After a lot of customisation and problem-solving there was a basic working platform that went beyond the limitations most people are accustomed to. As of the time of writing, most of the PE hobbyist community don’t understand the need for an x64 Windows PE build.
So from this initial “breakthrough”, layers were added into nano including default applications, files/registy extracted from a full windows installation using the same version (10586.162). Some visual design and a lot of bug-fixing later – a functional, all-in-ram windows/chrome OS.
Like Windows Embedded, this OS would run from RAM once loaded from the disk/usb/network. Unlike Windows Embedded, this OS was built from a community-developed Windows PE software that’s designed to create custom PE builds.

 

 

The optimisations can go a lot further when creating defaults for Nano. A vastly minimalist OS that uses less than a tenth of 1% of your CPU to run whilst maintaining Windows 10 compatability (except Windows store functionality, which explicitly excluded).
The main thing is it plays games as well as the most finely tuned Windows gaming PC – except you never need to tune it, since it just works like that already. Everything from Flex, Cuda and OpenCL to Steam streaming, Vulkan, DX11 (12 doesn’t work currently).

 

You could think of it as similar to Windows 7 in functionality except it runs like lightening even on old or low-powered PCs. Everything about it is designed to take a more efficient approach, using years of system optimisation experience into the default Nano system.
The entire Chrome system works perfectly on Nano Pro everything works as it should across the whole chrome-extensions, webgl, html5 and so on. Making this a chrome-os-like system with Windows 7 compatibility, that runs entirely in memory and can be run from a USB stick.