Hacker News new | past | comments | ask | show | jobs | submit login
OpenBSD on HP Stream 7 (tedunangst.com)
95 points by ingve on Sept 10, 2016 | hide | past | favorite | 40 comments



Microsoft released the Anniversary Update to Windows 10, but increased the free space requirement needed to install the update to exceed what’s possible on devices with only 32GB

I often wonder whether we have completely lost any notion of how big storage devices have become or how much data is required to do something, because 32GB is still extremely huge to me. Thirty-two billion bytes. It perplexes me what Windows would need that much space for, and whether most of it is actually really necessary. I suppose it could be a case of "little things add up".

The OpenBSD installer is under 300MB, although it doesn't include all that much: https://www.openbsd.org/ftp.html


One correction to the original article: Windows 10 will happily install to the Stream 7 and run just fine, if you use a USB drive and the aforementioned USB OTG -> USB hub -> keyboard/mouse/USB drive method. This is after accepting the Windows 8.1 > 10 upgrade on the device. I know because I did it; while Windows 10 does run a tad slower than 8.1 did, it's usable and space is not an issue using this installation method.

That said, I'd love to see further OpenBSD development on it, and now I'm kicking myself for giving away my tablet. Oh well, they're super cheap on eBay right now, averaging $35, so it's a possible future project.

> ...because 32GB is still extremely huge to me. Thirty-two billion bytes

Not to mention the device has a microSD slot, and I've tested it with up to a 64GB card. If Android is ever successfully ported to the device (100% driver support) we could see Marshmallow's seamless storage effectively make it a 96GB device.


With Microsoft upping the free space requirements, are 32GB devices going to be abandoned? Upgrading a Stream 7 from Windows 8 to 10 will result in a shorter support lifecycle for people not willing to start from scratch installing the Anniversary update from USB. Windows 8.1 is supported until 2023. Windows 10? 2025.

BUT ( https://support.microsoft.com/en-us/lifecycle?C2=18165&force... ) :

• Updates are cumulative, with each update built upon all of the updates that preceded it. A device needs to install the latest update to remain supported.

One is better off to not have upgraded to Win10 on the Stream.

When these were being dumped onto the market for $80 they came with free Office 365 Personal that I used on another machine. They also came with $25 credit on the Microsoft store. Sort of a no-brainer. If you run Chrome for any video they are able to play Youtube or Safari videos. It's a gym tablet, i.e. you won't really care if you accidentally crush it with an ellitical beam. The other use for the Stream is as a Chrome Remote Desktop for a real device.


Best i can tell, at least 3 complete version of Windows hiding behind a single UI.

And while the capacity is huge in a numerical sense, crazily enough it does not take much entertainment content to pack it to the brim.

Depending on your taste in compression, you get between 16 and 32 HD movies on there (ignoring the space needed for the OS).

And i have a "casual" game here on my Android tablet (8GB) that is bordering on a gig on its own. It quickly adds up...


Best i can tell, at least 3 complete version of Windows hiding behind a single UI.

What do you mean? Having both 32-/64-bit versions of things? Or separate versions of DLLs for compatibility mode(s)? Something else?


All of the above.

You have 32-bit compatibility layers going back to Windows 95, including whatever is needed to render a GUI from that era. And you have 64-bit, possibly going as far back as Windows XP.


Are you sure? IIRC, from Windows 7 onwards XP compatibility was handled with a VM, and I'm fairly confident there's little in the way of Win95 support in Windows 10 (bear in mind Windows 10 is a continuation of the Windows NT line of operating systems, the Win9x operating systems were not in this lineage).

http://lifehacker.com/5245396/set-up-and-use-xp-mode-in-wind...


> IIRC, from Windows 7 onwards XP compatibility was handled with a VM

You have a funny definition of "is handled with". Your link describes manually installing additional, optional software to get a VM, not a feature of the Windows OS. I don't think very many people have done this and plenty of XP-era software "just works" without it.


XP mode exists in Windows 7 and beyond because Microsoft doesn't promise full compatibility with Windows XP. If some XP software "just works" it's no guarantee that it will continue to work as Windows changes. Furthermore, regarding "optional software to get a VM, not a feature of the Windows OS", XP Mode is a feature of the OS in the sense that the seamless integration with the apps running in the VM was designed by Microsoft for the purpose of supporting older software.

https://www.microsoft.com/en-gb/download/details.aspx?id=800...

Out of interest, which XP-era software just works without it? I'm not talking about software that has been compiled for later Windows versions, I'm talking about software that hasn't been updated since XP.


> XP mode exists in Windows 7

Simply, it does not. Do a clean install. It's not there. That is why you have to go to that web page and click that big "download" button.

> Out of interest, which XP-era software just works without it?

Almost everything.

PS: I was on the windows team during development of 7.


> "Simply, it does not. Do a clean install. It's not there. That is why you have to go to that web page and click that big "download" button."

The assertion made was that Windows 10 contains multiple versions of Windows under the hood. If XP was one of these OS then there would be no need for that 'big download button', yet it exists. Why do you think that is?

> "PS: I was on the windows team during development of 7."

Good, then you can clear up what incompatibilities Windows 7 has with older Windows versions. For example, what level of support is there for Windows 95 software?


I didn't work on app compat, but there are a number of things that come to mind.

The first line of defense is that over the years and on average Win32 and COM were not built stupidly, but with an eye towards compatibility. It's a stable API. The fact that over history there have been 3 independent kernels (9x, NT, CE) that speak it and you could reasonably have a single code base running on all 3 does some good in this area. (And 9x/NT were largely binary compatible.) And hence there are simple things like: don't change function signatures release to release, don't change COM vtables without introducing a new interface leaving the old one in place, introduce size and version fields in structures so that future versions can add to them without breaking old callers, etc.

But there are also mitigations for incorrect or impolite misuse of Win32 that might be common in old software.

Example: If a 32-bit application writes to C:\Windows or some such like programs used to (and a current OS would have locked down by permissions), Vista and higher will redirect to AppData\Local\VirtualStore in the user's home directory. [1]

Example: Certain features like DEP and ASLR are opt-in at the binary level. An old binary will get an executable stack and no ASLR by default because old code might rely on these.

Example: There is actually a framework of app compat shims for common historical misuse of Win32 API. [2] When I worked at MS some time ago I used to read these in the source tree when I was bored or for simple amusement/curiosity. One of them for a particular 9x game always stuck in my mind, it had to do with API misuse and differences between 9x kernel32.dll (typically traps into the kernel right away) and NT kernel32.dll (which usually calls into ntdll after doing some user mode conversion), but maybe I won't go into more detail than that here ...

So my point is... You've got a stable API in Win32, you've got fairly conservative introduction of features that tend to break things, you've even got a way to selectively change how APIs behave for popular old apps. These things work pretty well by and large. Why waste a bunch of time and disk space with VMs?

On your side of the fence there is a VM host built into the Windows kernel (Hyper-V) and I think RDP can make remote apps (where "remote" could mean inside a VM guest) look pretty good. That is probably what is happening in "XP Mode". I don't think it'll necessarily do a better job than just Windows being Windows, which IMO does pretty well for most old software.

Citations using publicly available sources:

[1] Wikipedia article for UAC - https://en.wikipedia.org/wiki/User_Account_Control : For example, if an application attempts to write to a directory such as "C:\Program Files\appname\settings.ini" to which the user does not have write permission, the write will be redirected to "C:\Users\username\AppData\Local\VirtualStore\Program Files\appname\settings.ini".

[2] Random blog post about the app compat shims - just googled this for public evidence of my claim: https://blogs.technet.microsoft.com/askperf/2011/06/17/demys...


Do those things really take up that much space?


I appreciate the point, but not everyone loads their tablets with video media, much less HD movies. We have 4 tablets (and a few phones) in my family, across a wide range of android-type devices (i.e. including some Kindle Fires), and while the kids do fill them up with games rather quick, none of us put movies on them. We stream everything we want to watch because it's more convenient. 32GB still seems rather large to me, given how we use our devices.


I could upgrade to Anniversary with 32GB even with Office installed and without moving system files to the sd card. To get the required 16GB free I have moved all non-system files like downloads and music to the sd card, enabled disk-wide compression, removed all temporary files and disabled hibernation and swap (enabled them after).


This will shake up the Chinese dual boot (Win - Android) tablet market quite a bit.


It doesn't look like Ted mentioned it, but the EFI fb driver / efifb(4) should stay attached if inteldrm is disabled. This will allow X11 to start using the wsfb X framebuffer driver..

This would probably get you something beyond just a cool device to ssh into, of course suspend/resume will not work on an EFI console.. so proper support will need to wait until our inteldrm is updated! :-)


Ahhh... I don't know enough about *BSD, I was really craving more details from this article. "Mind the device name!" (Why?) "USB keyboards don’t work with the in kernel configurator, but we can save changes using config -ef on another machine to disable acpibat." (Like, over ssh, onto the usb, how?)

Still cool that OpenBSD runs on one of those little tablets though!


config(8) is a utility that has two purposes, the first is to turn a kernel configuration file (GENRIC/GENRIC.MP) into a build directory for compiling, second to modify a resulting ELF kernel binary using an interface similar to the boot time kernel configuration prompt UKC>

For example, when booting OpenBSD you can type boot -c in the bootloader to enter the UKC> prompt to disable integrated drivers from attaching, i.e:

ukc> disable acpibat

ukc> quit

..continues booting the kernel, but this doesn't work with USB keyboards as there is no USB stack before the kernel is even loaded, this works better with PS/2 keyboards and serial consoles.

You can also boot the same USB flash drive on another computer, run the config utility against an OpenBSD kernel, repeat the same UKC commands, and save a modified kernel with those changes so that a boot can proceed on the HP Stream 7.


> Mind the device name!" (Why?)

So you don't accidentally copy the image over your local hard drive or other important data.

> "USB keyboards don’t work with the in kernel configurator, but we can save changes using config -ef on another machine to disable acpibat." (Like, over ssh, onto the usb, how?)

"grab a new kernel" he said, after dhclient & mount. Using dhclient hints that he's grabbing it over the network. I can't remember if bsd.rd ships with ssh (it probably doesn't) so ftp it is. But usb ought to work too.


I don't think it's intended to be a step-by-step guide. More a set of notes in case the author or someone else wants to work on fixing compatibility issues later.


Fascinating - I have an HP Stream 7, and it's just a little too slow as a Windows tablet to be worth using for casual web browsing or Windows apps. The form factor is great - it's a little thicker than a Nexus 7 tablet (closer to a Kindle Fire 7), but the processor, ram, and storage all need some performance boosts.

Makes me wonder what a real Surface Mini would have been like!

As a side note, it's a shame that the Anniversary Update requires so much space. With the new emphasis on Chromebook-class Windows computers (the new netbooks), it's going to be important to keep all of these $99-$299 Windows 10 computers updated.


I have a $99 10" tablet with 32GB, 2GB RAM and Z3735F CPU running Anniversary Update just fine (surprisingly well I would say)... but the only way that AU would install was from a 8GB USB stick built with the Windows Media Creation tool. A clean install of AU left 17GB free of 28.4GB. I don't think this is anything a general consumer would go through though, so probably most of these devices will effectively be left on the November update from last year. But, I wanted to point out that saying the AU update is too large for 32GB devices is factually incorrect.


I'm thinking part of the problem is that you end up with a layer cake of recovery partitions. HP's then MS's, etc. I ended up deleting and resizing partitions on mine to get me the extra space needed to get it usable.


> As a side note, it's a shame that the Anniversary Update requires so much space.

It is a great shame. Windows 8 tended to use WIMBoot on these type of machines. That uses huge amounts of space and causes some problems for updates. https://technet.microsoft.com/en-us/library/dn594399.aspx

Windows 10 tends to use CompactOS. https://msdn.microsoft.com/windows/hardware/commercialize/ma...

So they fixed one thing, and then broke it by imposing a weirdly large drive size limit.


> Of course, there’s no X at this point. And definitely no touch screen. And no internal networking. However, by keeping our USB hub attached, we can drive the console and access the network. At least until the battery is depleted, even if we have no way of knowing how long that will be since we disabled all the ACPI devices, which also means no suspend or resume.

> But it’s all worth it to know that we’ve unshackled this device from the proprietary operating system it ships with.

It's quite exciting to see the BSD folks working on these minimal notebooks.

One of the longest (the longest?) threads on the Ubuntu forums are people trying to install Ubuntu on a similar device, the Asus X205ta.

https://ubuntuforums.org/showthread.php?t=2254322&s=035dc3be...

Here's the Arch wiki: https://wiki.debian.org/InstallingDebianOn/Asus/X205TA

Here are people talking about drivers for sound: https://bugzilla.kernel.org/show_bug.cgi?id=95681


It's even easier for us to boot because OpenBSD doesn't use GRUB. OpenBSD's EFI loader is a port of the existing second-stage loader, boot(8). It can load both i386 and amd64 kernels, and there are EFI binaries for 64-bit and 32-bit firmware on the USB install media.

At this time 32-bit or 'i386' kernels don't support EFI yet, but there aren't many 32-bit CPUs out there.. more people probably run into the 32-bit EFI firmware with 64-bit CPU scenario.

I think Ted even wrote about the Asus X205TA on his blog before.


Somewhat related: https://github.com/Manouchehri/vi8/blob/master/Ubuntu_instru...

The devices boast the same specs (Z3735F/Z8300 Intel CPU, 2 GB RAM, 32 GB eMMC).


Falls under the cool but impractical category. Of course, if there were an OpenBSD powered, functional equivalent of an Apple iPad, that would be awesome.


I don't know.. OpenBSD is working pretty great on Chrombooks for instance, including the touchscreen. It wouldn't be too impractical to run on these tablet-like computers.

https://jcs.org/notaweblog/2016/08/26/openbsd_chromebook/

https://jcs.org/talks/2016/09/07/chibug_openbsd_on_the_chrom...


Off topic but any suggestions for cool things to do with an HP Steam 7? I bought one when they were on a really cheap sale because I'm too much of a gadget fiend to pass up a half decent tablet for £50 :) but I've not used it for anything at all...


Looks like Ubuntu 16.04 runs fine on it [1], you could turn it into a small personal server, put GitLab on it, whatever :-) I have a Raspberry Pi 3 with Ubuntu MATE sitting around and am likewise looking to put it to good use.

[1] http://h30434.www3.hp.com/t5/Windows/Linux-on-the-HP-Stream-...


Nice! I will give this a go for sure. Thanks :)


I don't know that it counts as "cool", but with msys2 (which gives you cygwin + pacman) it's easier to get a POSIX userland running on one of these than an Android tablet. With a bluetooth keyboard it's quite a reasonable little *ix machine.


If you click on the commit that talks about Zaurus removal, you'll see the CVS patch.

I do like the OpenBSD community and they were helpful when I was trying to install it onto a laptop, but why are they still using CVS? Surely the headaches of CVS would start to get to you after the decades.


Or the opposite: after 15+ years with one tool, you'll master it to a level that is very hard to give up. All the annoyances by now have workarounds, all the problems are accounted for, all the monitoring and hardening is in place (and for openbsd in particular: all the code has been audited and reviewed several times). Why lose all that in name of some abstract productivity gain that will likely be offset by years of pain getting up to speed with the new tool?


Would signed commits be a value add over CVS? You'd think the security conscious OpenBSD ecosystem would value a way to verify the integrity of the source tree for any given commit or tag or release. I have to admit I'm not an OpenBSD user so I have no idea if they have something similar for CVS these days?


Their tooling is built around CVS. Porting it to git would be a pain. Plus, git is bad at the "mono-repo" approach to development that the BSDs take; especially when pulling changes from other sources. CVS has facilities to make this easier. The same reasons that Arch Linux is on SVN (stand-alone "projects" like pacman or netctl are in git, but the ABS itself is in SVN).


So far git has only been requested by people who don't submit patches, those who have actually been interested haven't had any problems using CVS to send patches over the years.


> but why are they still using CVS

If it works, why not. I can state one reason: change for change's sake isn't fun.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: