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

Advertisements

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.

Introduction to the Nano OS

Nano is a product I’ve developed to answer the need for a “miniOS” that runs exceptionally well on lowpowered/old hardware. It’s based on extensive research into custom building Windows starting with a full build, but takes the opposite approach of building it up from the minimum.
The resulting Operating System behaves much as Windows does, with limitations in some areas and great benefits in others. Effectively this OS solves a wide variety of issues across the entire platform, but isn’t designed to replace Windows entirely, at least not for everyone.
I had a hunch that a Mini OS is an invaluable upgrade for the world, which has turned out true as Microsoft themselves are going to launch their Windows S product. Luckily for us, they force you to move to the Windows Store whilst Nano is fully compatible with Windows apps/games.
It radically improves in many key areas over a typical Windows installation and has the opportunity to be game-changing to real-world situations by mitigating a number of very time-consuming problems. In its current state it already works as an incredibly stable and useable system.
During my time developing Nano I was truly shocked at some of the benefits and capabilities that I made possible. It’s been a true outlet for my interest custom Windows and an opportunity to try and create something minimal and compatible maintaining usability and good defaults.
For the majority of the core three-month development of 0.8 – there was rarely any need to go into “normal” Windows. I got used to using Nano as my core operating system and had the opportunity to spot problems just by using it.
The advantage here is when I fix anything in Nano, it’s fixed for anyone else that uses that updated build. So after a while the project became a combination of patches and hacks to get things running, combined with a minimal and fairly fixed approach towards getting things done.
The stability of operation doesn’t just sit in the functionality of the software layers but also in the user interface and approach towards updating or configuring software. The way that everything Nano does is centered around a “nano” folder with everything within constituting the user.
Here we draft the story of how Nano came to be, whilst shedding some light over the features and concepts that make it work. For more information about the performance of Nano vs Standard Windows, please see the performance category for early test results.