(Nearly) All Your Computers Run MINIX

Are you reading this on a machine running a GNU/Linux distribution? A Windows machine? Or perhaps an Apple OS? It doesn’t really matter, because your computer is probably running MINIX anyway.

There once was a time when microprocessors were relatively straightforward devices, capable of being understood more or less in their entirety by a single engineer without especially God-like skills. They had buses upon which hung peripherals, and for code to run on them, one of those peripherals had better supply it.

A modern high-end processor is a complex multicore marvel of technological achievement, so labyrinthine in fact that unlike those simple devices of old it may need to contain a dedicated extra core whose only job is to manage the rest of the onboard functions. Intel processors have had one for years, it’s called the Management Engine, or ME, and it has its own firmware baked into the chip. It is this firmware, that according to a discovery by [Ronald Minnich], contains a copy of the MINIX operating system.

If you are not the oldest of readers, it’s possible that you may not have heard of MINIX. Or if you have, it might be in connection with the gestation of [Linus Torvalds]’ first Linux kernel. It’s a UNIX-like operating system created in the 1980s as a teaching aid, and for a time it held a significant attraction as the closest you could get to real UNIX on some of the affordable 16-bit desktop and home computers. Amiga owners paid for copies of it on floppy disks, it was even something of an object of desire. It’s still in active development, but it’s fair to say its attraction lies in its simplicity rather than its sophistication.

It’s thus a worry to find it on the Intel ME, because in that position it lies at the most privileged level of access to your computer’s hardware. Your desktop operating system, by contrast, sees the hardware through several layers of abstraction in the name of security, so a simple OS with full networking and full hardware access represents a significant opportunity to anyone with an eye to compromising it. Placing tinfoil hats firmly on your heads as the unmistakable thwop of black helicopters eases into the soundscape you might claim that this is exactly what they want anyway. We would hope that if they wanted to compromise our PCs with a backdoor they’d do it in such a way as to make it a little less easy for The Other Lot. We suspect it’s far more likely that this is a case of the firmware being considered to be an out-of-sight piece of the hardware that nobody would concern themselves with, rather than a potential attack vector that everyone should. It would be nice to think that we’ll see some abrupt updates, but we suspect that won’t happen.

Intel I7 processor underside: smial [FAL].

Understanding Floating Point Numbers

People learn in different ways, but sometimes the establishment fixates on explaining a concept in one way. If that’s not your way you might be out of luck. If you have trouble internalizing floating point number representations, the Internet is your friend. [Fabian Sanglard] (author of Game Engine Black Book: Wolfenstein 3D) didn’t like the traditional presentation of floating point numbers, so he decided to explain them a different way.

Continue reading “Understanding Floating Point Numbers”

Emulate ICs In Python

Most people who want to simulate logic ICs will use Verilog, VHDL, or System Verilog. Not [hsoft]. He wanted to use Python, and wrote a simple Python framework for doing just that. You can find the code on GitHub, and there is an ASCII video that won’t embed here at Hackaday, but which you can view at ASCIInema.

Below the break we have an example of “constructing” a circuit in Python using ICemu:

Continue reading “Emulate ICs In Python”

Reverse Engineering Guitar Hero

What do you do when a ten-year-old video game has a bug in it? If you are [ExileLord] you fix it, even if you don’t have the source code. Want to know how? Luckily, he produced a video showing all the details of how he tracked the bug down and fixed it. You can see the video below. You may or may not care about Guitar Hero, but the exercise of reverse engineering and patching the game is a great example of the tools and logic required to reverse engineer any binary software, especially a Windows binary.

The tool of choice is IDA, an interactive debugger and disassembler. The crash thows an exception and since [ExileLord] has done some work on the game before, he was able to find a function that was creating a screen element that eventually led to the crash.

Continue reading “Reverse Engineering Guitar Hero”

Satellite Tracking With Friends

If you’re in the mood to track satellites, it’s a relatively simple task to look up one of a multitude of websites that can give you a list of satellites visible from your location. However, if you’re interested in using satellites to communicate with far-flung friends, you might be interested in this multi-point satellite tracker.

[Stephen Downward VA1QLE] developed the tracker to make it easier to figure out which satellites would be simultaneously visible to people at different locations on the Earth’s surface. This is useful for amateur radio, as signals can be passed through satellites with ham gear onboard (such as NO-44), or users can even chat over defunct military satellites.

[Stephen] claims the algorithm is inefficient, but calculations are made in a matter of a few seconds, so we’re not complaining. While it was originally designed for just two stations, it works with a near-infinite number of points. [Stephen] recommends verifying the tracks with another tool once calculated to ensure accuracy. The tool is accessible here, and the code is up on GitHub for your perusal.

Perhaps now you need a cost-effective satellite-tracking antenna? [Paul] has you covered.

Wolfram Alpha Shows Its Work

The bane of math students everywhere is the teacher asking for you to show your work. If you’ve grown up where a computer is a normal part of school work, that might annoy you since a lot of tools just give you an answer. We aren’t suggesting you cheat at homework, but we did notice that Wolfram Alpha now shows more of its work when it solves many common math problems.

Granted, the site has always shown work on some problems. However, a recent update shows more intermediate steps and also covers more kinds of problems in a step-by-step format. There are examples, but be aware that for general use, you do need to upgrade to pro (about $6 a month or less if you are student or teacher).

Continue reading “Wolfram Alpha Shows Its Work”

A Great Guide To Software PLLs

There are some things that you think you know quite well because you learned them in your youth and you understand their principles of operation. Then along comes a link in your morning feed that reminds you of the limits of your knowledge, and you realize that there is a whole new level of understanding to be reached.

Take Phase Locked Loops (PLLs) for example. You learn how they work, you use them for frequency synthesis, and you know they can do other things like recover noisy clock lines and do FM demodulation. But then you read [Paul Lutus’] Understanding Phase-Locked Loops page, and a whole new vista opens.

He’s discussing PLLs in the context of software, as part of a weather fax decoder project, and this allows a perspective that was unavailable to those of us who learned about them through the medium of hardware such as the venerable 4046 CMOS chip. We can easily look at different PLLs with varying parameters, for example their use with a narrowband loop filter to retrieve signals buried in the noise, all through some straightforward code tweaks rather than extensive circuitry. It’s a page that’s a few years old now, but resources like this one do not age.

If PLLs are entirely new to you then you need to reat last year’s excellent PLL primer by Hackaday’s own [Al Williams].

[via Hacker News]

[PLL diagram: Chetvorno CC0]