How Windows 10X runs Win32 applications

Microsoft released its first emulator for Windows 10X today, allowing developers to get a first look at the new operating system variant for dual-screen devices. Microsoft wants to give developers a head start on optimizing apps before devices launch later this year, so this basic emulator provides an early look at Windows 10X before it’s finalized.

My first thoughts? Windows 10X feels like a slightly more modern version of Windows 10 that has been cleaned up for future devices.

In Windows 10X, everything is new. There’s none of the old Win32 code and applications lying around, or fallbacks to old Win32 dialogs. Everything is a Modern application (or whatever they call it these days), including things like the file manager – the traditional Explorer is gone.

While Windows 10X does support Win32 applications, they run in a container. As detailed in this video from Microsoft (select the video titled “How Windows 10X runs UWP and Win32 apps”), Windows 10X has three containers – Win32, MSIX, and Native. Win32 applications run inside a single Win32 container, capable of running pretty much anything “classic” you can throw at it, such as Win32, WinForms, Electron, and so on. MSIX containers are basically slightly more advanced classic applications, and these containers run inside the Win32 container as well. The Native container runs all the modern/UWP applications.

The Win32 container is actually a lot more involved than you might think. As you can see in the below overview diagram from the video, the container contains a kernel, drivers, the needed files, a registry, and so on. It’s effectively an entire traditional Win32 Windows operating system running inside Windows 10X. Applications running inside the Win32 container are entirely isolated from the rest of the host Windows 10X operating system, and Windows 10X interacts with them through specialised, performance-optimised RDP clients – one for each Win32 application.

Windows 10X overview.

This seems to finally be what many of us have always wanted out of a next-generation Windows release: move all the cruft and compatibility to a glorified virtual machine, so that the remainder of the operating system can be modernised and improved without having to take compatbility into account.

For now, Windows 10X seems focused on dual screen devices, but a lot of people in the know seem to think this is the actual future of Windows. Time will tell if this is actually finally really the case, but this does look promising.

Apple store workers should be paid for time waiting to be searched, court rules

Apple has $209 billion in cash on hand.

California law requires Apple Inc. to pay its workers for being searched before they leave retail stores, the California Supreme Court decided unanimously Thursday.

A group of Apple workers filed a class-action lawsuit against the tech giant, charging they were required to submit to searches before leaving the stores but were not compensated for the time those searches required. The U.S. 9th Circuit Court of Appeals, where the case is now pending, asked the California Supreme Court to clarify whether state law requires compensation.

In a decision written by Chief Justice Tani Cantil-Sakauye, the court said an industrial wage order defines hours worked as “the time during which an employee is subject to the control of an employer, and includes all the time the employee is suffered or permitted to work, whether or not required to do so.”

I repeat, Apple has $209 billion in cash on hand. Since it’s really hard to imagine how much even just one billion dollars really is, this demonstration should give you a very good idea. One billion dollars is way, way, way more than you think it is.

Apple has 209 times that in cash on hand.

How the CIA used Crypto AG encryption devices to spy on countries for decades

For more than half a century, governments all over the world trusted a single company to keep the communications of their spies, soldiers and diplomats secret.

The company, Crypto AG, got its first break with a contract to build code-making machines for U.S. troops during World War II. Flush with cash, it became a dominant maker of encryption devices for decades, navigating waves of technology from mechanical gears to electronic circuits and, finally, silicon chips and software.

But what none of its customers ever knew was that Crypto AG was secretly owned by the CIA in a highly classified partnership with West German intelligence. These spy agencies rigged the company’s devices so they could easily break the codes that countries used to send encrypted messages.

The article is behind a paywall, sadly, but I figured it’s important enough to link to.

NEXTSPACE: a NeXTSTEP-like desktop environment for Linux

NEXTSPACE is a desktop environment that brings a NeXTSTEP look and feel to Linux. I try to keep the user experience as close as possible to the original NeXT’s OS. It is developed according to the “OpenStep User Interface Guidelines“.

I want to create a fast, elegant, reliable, and easy to use desktop environment with maximum attention to user experience (usability) and visual maturity. In the future I would like to see it as a platform where applications will be running with a taste of NeXT’s OS. Core applications such as Login, Workspace, and Preferences are the base for future application development and examples of style and application integration methods.

NEXTSPACE is not just a set of applications loosely integrated to each other. It is a core OS with frameworks, mouse cursors, fonts, colors, animations, and everything I think will help users to be effective and happy.

KDE, GNOME, Xfce, and later MATE and Cinnamon have sucked up so much of the Linux desktop space that there’s very little room left for anything else. You’re either mainly a Qt desktop, or mainly a GTK+ desktop, and anything that isn’t based on either of those toolkits will either waste time recreating lots of wheels, or accept that half – or more – of your applications are Qt or GTK+-based, at which point the temptation to run one of the aforementioned desktop environments becomes quite strong.

This project, while very welcome and having my full support and attention, will have a very hard time, but that’s not going to deter me from being hopeful against all odds. Reading through the documentation and descriptions, it does seem the developers have the right attitude. They’re not claiming to take on the other players – they just want to make something that appeals to and works for them.

KDE Plasma 5.18 LTS released

A brand new version of the Plasma desktop is now available. In Plasma 5.18 you will find neat new features that make notifications clearer, settings more streamlined and the overall look more attractive. Plasma 5.18 is easier and more fun to use, while at the same time allowing you to be more productive when it is time to work.

A lot welcome changes and polish, and I’m particularly pleased with the death of the insipid ‘cashew’ menu that resided in the top-right of the KDE desktop. You had to dive into the settings to remove it, but now it’s been replaced by a global edit mode that’s entirely invisible until you enable it, following in the footsteps of similar edit modes in Cinnamon and other user interfaces.

MATE 1.24 released

After about a year of development, the MATE Desktop team have finally released MATE 1.24. A big thank you to all contributors who helped to make this happen. This release contains plenty of new features, bug-fixes, and general improvements.

That’s an impressive list. I prefer Cinnamon and GNOME 3 (after lots of tweaking!) over MATE, but I’m glad MATE exists as a no-nonsense, relatively conservative continuation of GNOME 2.

Dissecting the Windows Defender driver

For the next couple (or maybe more) posts I’ll be explaining how WdFilter works. I’ve always been very interested on how AVs work (Nowadays I would say EDRs though) and their development at kernel level. And since, unfortunately I don’t have access to the source code of any, my only chance is to reverse them (or to write my own). And of course what a better product to check than the one written by the company who developed the OS.

For those who don’t know, WdFilter is the main kernel component of Windows Defender. Roughly, this Driver works as a Minifilter from the load order group “FSFilter Anti-Virus”, this means that is attached to the File System stack (Actually, quite high – Big Altitude) and handles I/O operations in some Pre/Post callbacks. Not only that, this driver also implements other techniques to get information of what’s going on in the system. The goal of this series of post is to have a solid understanding on how this works under the hood.

Not for the fain of heart.

Microsoft stuffs ads in the Windows Start menu targeting Firefox users

Microsoft has now started to show text ad for its new Chromium-based Edge in the all apps list. The ad, which shows up under ‘Suggested’ listing for Start menu, recommends using the new version of Microsoft Edge.

Surprisingly, the ad is targeting Firefox users. If you have Firefox as your default browser, you might see the advertisement or suggestion in the Start menu. Depending on whether you’re actively using Firefox or other browsers, the recommendation may or may not show up.

Still using Firefox? Microsoft Edge is here,” the ad label reads and it includes a link to download Chromium-based browser.

Don’t use operating systems like Windows or iOS which are nothing but bait-and-switch vessels for ads.

The story of the audacious, visionary, totally calamitous iPad of the ’90s

Of course, AT&T wasn’t the company that ended up bringing us most of the tech predicted in the “You Will” ads. But it did bring that tablet device to market. It’s called the EO Personal Communicator 440, and while not the first mass-manufactured tablet computer — that honor goes to the GRiDPad, a device sold by Radio Shack’s corporate parent Tandy — the EO is generally considered one of the first tablets with mobile connectivity. Released by AT&T in 1993, not long after the telecom giant bought a majority stake in its maker EO, it was a tantalizing glance into the future.

Any article on the EO is an article I will post – I’m a simple man – but that website’s fonts and font colours give me a headache.

“I made an operating system UI within Unity”

Glass is a simulated operating system user interface (UI) project and it is being made with Unity 2018.4. It is not a real OS, although everything in the package is functional and can be changed easily.

Not really an operating system, of course, but still a fascinating project. It also highlights just how versatile modern game engines really are – this is the same engine some of my favourite modern cRPGs and Cities: Skylines are running on.

Windows 10 warning: anger at Microsoft rises with serious new failure

Windows 10 may now be essential but users new and old have had a rough ride in recent weeks. And it has just gotten a lot worse after a new, high-profile Windows 10 failure has left more questions than answers and some seriously angry users.

The drama began yesterday as Windows 10 users suddenly found that Search was broken with a black bar showing where search results should be, even for those who tried to perform a local search of their files.

This is the future of proprietary operating systems like Windows, macOS and iOS as their parent companies move towards services and subscription models. More and more, they’ll use their operating systems to push their services and subscriptions, to the detriment of the user experience. It’s been happening in Windows 10 for a few years now, and iOS, too, is riddled with ads for Apple’s services.

And so, we arrive at the point where local file search breaks down due to server issues. What a time to be alive.

The 64 core Threadripper 3990X CPU review: in the midst of chaos, AMD seeks opportunity

In our tests here (more in our benchmark database), AMD’s 3990X would get the crown over Intel’s dual socket offerings. The only thing really keeping me back from giving it is the same reason there was hesitation on the previous page: it doesn’t do enough to differentiate itself from AMD’s own 32-core CPU. Where AMD does win is in that ‘money is less of an issue scenario’, where using a single socket 64 core CPU can help consolidate systems, save power, and save money. Intel’s CPUs have a TDP of 205W each (more if you decide to use the turbo, which we did here), which totals 410W, while AMD maxed out at 280W in our tests. Technically Intel’s 2P has access to more PCIe lanes, but AMD’s PCIe lanes are PCIe 4.0, not PCIe 3.0, and with the right switch can power many more than Intel (if you’re saving 16k, then a switch is peanuts).

We acknowledge that our tests here aren’t in any way a comprehensive test of server level workloads, but for the user base that AMD is aiming for, we’d take the 64 core (or even the 32 core) in most circumstances over two Intel 28 core CPUs, and spend the extra money on memory, storage, or a couple of big fat GPUs.

Aside from the artificial maximum memory limitation – which AMD put in place to protect its own Epyc processors – the 3990X is simply a masterpiece. To be able to get 64 cores and 128 threads for a relatively mere $3990 is nothing short of stunning, and while few of us actually need a processor like that, the 3990X shines like the halo product that it is.

An introduction to the RT-Thread IoT OS

Alan Kay said: “Simple things should be simple, complex things should be possible”. This sentence was the inspiration for the founder of RT-Thread to stick to his beliefs. RT-Thread is an open source embedded real-time operating system, and this project started in 2006. I know you have no idea what RT-Thread is, but you are using an IoT OS system now, that’s where this article may be of interest. Let’s take a quick tour of RT-Thread.

RT-Thread: background

RT-Thread, short for Real Time-Thread, is, as its name implies, an embedded real-time multi-threaded operating system. One of its basic properties is to support multitasking. Allowing multiple tasks to run at the same time does not mean that the processor actually performs multiple tasks at the same time. In fact, a processor core can only run one task at a time. Every task is executed quickly, and through the task scheduler (the scheduler determines the sequence according to priority), the tasks are switched rapidly, which gives the illusion that multiple tasks are running at the same time. In the RT-Thread system, the task is implemented by threads. The thread scheduler in RT-Thread is the task scheduler mentioned above.

RT-Thread is mainly written in C, making it easy to understand and easy to port. It applies object-oriented programming methods to real-time system design, making the code elegant, structured, modular, and tailorable.

For resource-constrained Microcontroller Unit (MCU) systems, the NANO version of RT-Thread (tailored from the standard version of RT-Thread), which requires only 3KB of flash and 1.2KB of RAM, can be tailored with easy-to-use tools. For resource-rich IoT devices, RT-Thread can use the online software package management tool, together with system configuration tools, to achieve intuitive and rapid modular cutting, seamlessly import rich software feature packs, thus achieving complex functions like Android’s graphical interface and touch sliding effects, smart voice interaction effects, and so on.

RT-Thread’s architecture

RT-Thread is not only a real-time kernel, but also has a rich middle-tier component, as shown in the following figure.

It includes:

The kernel layer: RT-Thread kernel, the core part of RT-Thread, includes the implementation of objects in the kernel system, such as multi-threading and its scheduling, semaphore, mailbox, message queue, memory management, timer, etc.; libcpu/BSP (Chip Migration Related Files/Board Support Package) is closely related to hardware and consists of peripheral drivers and CPU transport.

The components and service layer: Components are based on upper-level software on top of the RT-Thread kernel, such as virtual file systems, FinSH command-line interfaces, network frameworks, device frameworks, and more. Its modular design allows for high internal cohesion within the assembly and low coupling between components.

The RT-Thread software package: A general-purpose software component running on the RT-Thread IoT operating system platform for different application areas, consisting of description information, source code or library files. RT-Thread provides an open package platform with officially available or developer-supplied packages that provide developers with a choice of reusable packages that are an important part of the RT-Thread ecosystem. The package ecosystem is critical to the choice of an operating system because these packages are highly reusable and modular, making it easy for application developers to build the system they want in the shortest amount of time. RT-Thread supports more than 174 software packages.

RT-Thread has launched more than a decade ago, and this is the first time we make an official self-introduction to the world, especially at the beginning of 2020, it feels great! We welcome suggestions for RT-Thread, and you can feel free to contact us on Twitter or send us an e-mail. And if you have any great ideas, you are very welcome to contribute to our Github.

The sad case of Unreal Engine 1 on Mesa and Linux in 2020

One of the great game industry battles of the turn of century was the standoff between Quake III Arena and Unreal Tournament. With both multiplayer focused first person shooters released just weeks apart from one another, that the two games would wind up going head to head was inevitable. If pressed I am always going to have to say I favour the former, but the remarkable thing for us Linux users is that, for a time, both games lived harmoniously under the same publisher.

[…]

While Quake III Arena was granted its place in eternity when its source code was released in 2005, community support for Unreal Tournament was able to breathe some new life into the game, even with the limitations of the closed binary.

Even a strong community can’t fix such problems.

Apple’s independent repair program is invasive to shops and their customers, contract shows

Recently, Motherboard obtained a copy of the contract businesses are required to sign before being admitted to Apple’s IRP Program. The contract, which has not previously been made public, sheds new light on a program Apple initially touted as increasing access to repair but has been remarkably silent on ever since. It contains terms that lawyers and repair advocates described as “onerous” and “crazy”; terms that could give Apple significant control over businesses that choose to participate. Concerningly, the contract is also invasive from a consumer privacy standpoint.

In order to join the program, the contract states independent repair shops must agree to unannounced audits and inspections by Apple, which are intended, at least in part, to search for and identify the use of “prohibited” repair parts, which Apple can impose fines for. If they leave the program, Apple reserves the right to continue inspecting repair shops for up to five years after a repair shop leaves the program. Apple also requires repair shops in the program to share information about their customers at Apple’s request, including names, phone numbers, and home addresses.

Nobody should be surprised by this. The only reason Apple announced this half-hearted program in the first place is to try and take the wind out of the sails of right to repair legislation, which is being proposed all over the US (and beyond), and the terms of this contract only further confirm that.

As for the privacy aspect and Apple wanting all that very private user information – if you still think Apple cares about privacy, you really haven’t been paying attention.

Microsoft to combine its Windows client and hardware teams under Panos Panay

The biggest and boldest move in the Feb. 5 reorg being announced internally today involves the Windows Experience (client) and the hardware teams. Microsoft is going to roll up these two businesses into a single team, known as Windows and Devices — reporting to Chief Product Officer Panos Panay, I’ve confirmed with a person familiar with the changes who asked not to be named. The move takes effect on Feb. 25.

This means even tighter integration between the people designing and building Surface devices and the people developing Windows. Panay is the driving force behind the Surface products, and those have been doing relatively well, so it makes sense to allow him to take a stab at the future of Windows.

China’s mobile giants to take on Google’s Play Store

China’s Xiaomi, Huawei Technologies, Oppo and Vivo are joining forces to create a platform for developers outside China to upload apps onto all of their app stores simultaneously, in a move analysts say is meant to challenge the dominance of Google’s Play store.

I’m glad Android is open enough to allow alternative application stores to exist, but whether or not non-Chinese application makers would want to partake in a Chinese state-run application store effort is another issue altogether.

Deprecated kernel extensions and system extension alternatives

Just another heads up that kernel extensions on macOS will soon stop working. This has been known for a while, but you might not even know you’re using kernel extensions in the first place.

System extensions on macOS Catalina (10.15) allow software like network extensions and endpoint security solutions to extend the functionality of macOS without requiring kernel-level access. At WWDC19, we announced the deprecation of kernel extensions as part of our ongoing effort to modernize the platform, improve security and reliability, and enable more user-friendly distribution methods. Kernel programming interfaces (KPIs) will be deprecated as alternatives become available, and future OS releases will no longer load kernel extensions that use deprecated KPIs by default.

If you use macOS, run kextstat | grep -v com.apple to see how many third party kernel extensions you have running. Things like VirtualBox, controller support for Steam, DropBox, Little Snitch, and more all come with kernel extensions, so there’s definitely chances you might be running some without even realising it.

Wacom drawing tablets track the name of every application that you open

I suspect that Wacom doesn’t really think that it’s acceptable to record the name of every application I open on my personal laptop. I suspect that this is why their privacy policy doesn’t really admit that this is what that they do. I imagine that if pressed they would argue that the name of every application I open on my personal laptop falls into one of their broad buckets like “aggregate data” or “technical session information”, although it’s not immediately obvious to me which bucket.

Does Wacom have any competitors? Can you even vote with your wallet, or is this yet another market that isn’t really a market at all?