Showing posts with label Embedded. Show all posts
Showing posts with label Embedded. Show all posts

Rube Goldberg Would Have Been Proud

Responding to inquiries about a possible data breach involving customer credit and debit card information, upscale retailer Neiman Marcus acknowledged today that it is working with the U.S. Secret Service to investigate a hacker break-in that has exposed an unknown number of customer cards.
We're at a crisis point now with regard to the security of embedded systems, where computing is embedded into the hardware itself -- as with the Internet of Things. These embedded computers are riddled with vulnerabilities, and there's no good way to patch them.
Thousands of small satellite dish-based computer systems that transmit often-sensitive data from far flung locations worldwide – oil rigs, ships at sea, banks, and even power grid substations – are at high risk of being hacked, including many in the United States, a new cyber-security report has found.
Researchers have found vulnerabilities in industrial control systems that they say grant full control of systems running energy, chemical and transportation systems.
It's obviously a hacking report monday.  Do you use credit/debit cards?  Do you have a satellite dish system or a wireless router?  Do you use electricity?

Then you're vulnerable.

Young'uns... if you're thinking about going into CS/IT, give a thought to specializing in network security.  We're starting to realize that our computing infrastructure is in a horrible, awful, no-good state, and someone is going to end up getting paid the big bucks to fix this mess. (Now, where have I heard that before?)

It might as well be you.

You Had Me At "Atomic Store"

Concurrency Kit provides a plethora of concurrency primitives, safe memory reclamation mechanisms and non-blocking data structures designed to aid in the design and implementation of high performance concurrent systems.
Dang.  Memory fences?  R/W locks?  A lock-free hash set and hash table implementation?  Designed with embedded systems in mind, even?  Two clause BSD licensing?

Whoa doggy!

There's always something new and interesting out there.

Bunny Inspectors

Over at Chaos Manor, Jerry Pournelle talks about sequestration:

I note that the Department of Agriculture is threatening to lay off food inspectors, but there’s no talk of firing bunny inspectors. Every department has people doing things we don’t need done, particularly since we have to borrow the money in order to do them. 
Bunny inspectors, for those who don’t know, look for people keeping rabbits as pets and offering them for sale – or using them in a stage performance. Bunny inspectors go to stage magic shows and if the performance employs a pet rabbit they demand to see the federal license the magician must have, and no, I am not making this up. By the way, if the rabbit is killed in the act, say eaten alive, you don’t need a federal license. You may be in trouble with the ASPCA but not with the Department of Agriculture. And the bunny inspectors won’t be laid off under the sequestration. I bet if there were a 2% cut in the DOA’s budget they’d go. If not, a bigger cut would be in order…
Bunny inspectors never go.  At least, not willingly.  Jerry, of all people, should understand that.

I was just talking to a lady that we know earlier today; she's a federal fraud investigator.  While her department is apparently not going to have to deal with the sequestration, she mentioned that colleagues in the DoD and DCIS are going to either be furloughed or put on a reduced work schedule.  Roughy the same effect as a 20% reduction in staff.

Keep in mind, these are people who work to recover funds stolen from the government.

They are going to lay them off to save money.

Laying off fireman and police to scare folks into arguing against spending cuts?  Yeah, that stinks.  It's miserable and rotten.  Politicians do that sort of thing because it works, though.

This?  Laying off people who make up one of the very few groups who actually mange to save more money than they spend?  That doesn't even make any sense.  It is pure, unadulterated ignorance and stupidity at work.

Seriously.  I don't want to live on this planet anymore.


The atexit() Rule of Software Development

I hereby propose "The atexit() Rule":
If you are seriously considering fixing a bug by patching atexit() to perform an action that is completely unrelated to process exit, then is it probably time to rewrite your code.
Just sayin'.

"Look - up in the sky!"

It's a bird!  It's a plane!  No... it's... the Virus Copter?
At the latest San Francisco Drone Olympics (now called DroneGames, thanks, no doubt, to awful bullying from the organized crime syndicate known as the International Olympic Committee), there were many fascinating entries, but the champion was James "substack" Halliday's Virus-Copter... which made wireless contact with its competitors, infected them with viruses that put them under its control, sent them off to infect the rest of the cohort, and then caused them to "run amok."
Drones, network security, and a gratuitous snark at the IOC. It's a trifecta of win!

Of course, this isn't really an issue.  I mean, no one could ever take control of US military drones remotely.  There is absolutely no risk involved, Citizen.

"Be Still, My Beating Heart!"

Oy...

Remote attack turns off pacemakers
IOActive researcher Barnaby Jack has reverse-engineered a pacemaker transmitter to make it possible to deliver deadly electric shocks to pacemakers within 30 feet and rewrite their firmware.
As Borepatch said, "What could possibly go wrong?"

PCs, Laptops, Smart Phones n'at

I apologize for the multiple level of quotations, but... hey. Important news.  The PC is Over, dude.
MG Siegler writes:
The PC is over. It will linger, but increasingly as a relic. 
I now dread using my computer. I want to use a tablet most of the time. And increasingly, I can. I want to use a smartphone all the rest of the time. And I do. 
Realize that MG Siegler is a journalist, and a TechCrunch air-quotes journalist at that, so he's well versed in hyperbole. You might say he's a billion times better at hyperbole than the average blogger. In his own way, he is a creator, I suppose: he creates hype.
But he's not entirely wrong here.
I'd have to agree with Mr. Attwood.

In 1992, I was attending SWOS with a young gentleman of a technically inclined nature.  Phil had a Poqet pocket computer which was rather interesting, and at one point, we discovered that his little Poqet had vastly more processing power than the 1970's shipboard-based mainframe supply management systems that we were going to train to use.

An iPad2 is as powerful as a 1985 Cray 2 supercomputer.


Your cell phone has more processing power than NASA had for the moon shot.

I've gotten to the point where the only thing that is keeping me from moving to a smart phone (from my old, dumb, flip phone) is the fact that I want my smart phone to be able to replace my laptop.

I want to have a bluetooth mouse, keyboard and monitor on my desk at work.  When I sit down at the start of the day, I want them to power up, find my cell phone lying on the desk next to them, and use my cell phone for CPU and storage.  With a decent sized screen and a full-sized keyboard, I could do 99% of what I need to do, day to day, with this sort of set up.

In other words: today's smart phones aren't quite smart enough... but man, they're close.

When they finally get there, then... well, the PC won't be dead.  It will certainly become more of a nice product, though.


What's that, you say?

Tired of hearing heated argument and rhetoric about HHS and Obamacare?

Feeling lukewarm and uninterested in Yet Another debate about the economy?

Does the thought of another article about the GOP boy band of Mitt, Rick, Ron and Newt got ya down?

Are you thinking, "Man... I'd like a different sort of flame war tonight"?

We've got you covered!

Here you go - a nice, hot, steaming pile of GPL compliance ranting and counter-ranting for you!

No thanks needed.  You're quite welcome.  It's just part of the services we offer here at The Embedded Theologian.

Disclaimer: I've worked with a couple of the main actors in this debate, which actually makes it quite interesting for me.  If you pressed me, I'd have to come down on the side of Tim Bird and Rob Landley, the folks who are taking most of the heat in this thread.  I honestly don't think that their critics understand their point.  They're not trying to make it possible for companies to more easily violate the GPL - trust me, I know those two, and that's the furthest thing on their minds.  What they are trying to do is eliminate what has become a  disproportionate risk for vendors who use the BusyBox software.  Not "risk of someone finding out we've violated the GPL", but "risk of lawsuit approaching 100% if we use this particular GPL package".  Lawsuits, whether they have any merit or not, have a cost.  That's what companies are trying to avoid, and if ditching BusyBox means ditching other OSS-based projects that rely on it... well, that's what they call "collateral damage".  Collateral damage that is doing more harm than good.  If that damage can be avoided by conning up a BSD licensed replacement for BusyBox, it's hard to fault them - especially when there's a pretty good time honored OSS tradition of solving legal problems by writing new code.

And... if any of that actually makes sense to you, you have my respect, and my sincere sympathies.

These are the days of miracle and wonder

An note on an Apple patent application - not otherwise interesting except for the following comment:
As devices continue to shrink, certain physical features become limiting factors for further size reduction... the thickness of the devices appears to be approaching the limits imposed by the need to accommodate the headphone jack.
Yowza.

There are, indeed, the days of lasers in the jungle...

Everything old is new again

I was actually thinking about this yesterday, and wondering why nobody had gone back to a "the keyboard is the computer" mode.

Now we know that I'm (a) prescient, but (b) not as prescient as the folks at NorhTec, who have announced the Gecko Surfboard, which incorporates a 1 GHz SOC (system on chip) with integrated graphics and audio. Comes standard with 512MB of memory and 10/100 ethernet, with optional 802.11b/g support, and runs Linux or Windows.



Just for fun, here's a picture of a Commodore 64 system (introduced in January of 1982). While the C64 also sported integrated graphics and audio, similarities end there... it had a 1 MHz processor and 64K of RAM, and no persistent storage or networking capabilities.



Tiny Core Linux

For your embedded hacking pleasure : Tiny Core Linux

A 10MB basic distribution based on BusyBox, TinyX, Fltk, and Linux 2.6.  Apparently from the same guys who brought us Damn Small Linux, which is a porky 50MB in comparison.

I've seen Linux systems (kernel + root file system) that fit in under 2MB... but of course, they didn't include a functioning UI and X Windows.  Still, it's fun to see how usably Linux is even in very small systems.


Debian is switching to EGLIBC

This is one of those things that, if you know what they're talking about, makes you go, "Wow!" and have deep conversations with other like-minded individuals who are blown away by the implications of not having to deal with glibc cruft.

If you don't know and don't care about what glibc is... then "Meh. Geeks."

For you, instead, have a dancing cat:

More embedded news

Seems like this is the day for this sort of thing.  April showers bring may flowers... and updated releases of embedded build systems.

Debian is starting down the path of supporting FreeBSD kernels.  They've added i386 and amd64 support to the unstable line.  This means that you should be able to build Debian based embedded systems that use a FreeBSD kernel.  Neat stuff.

Oh, and it reminds me that in my last post, I didn't mention emdebian, which is the embedded Debian system.

 

Yet another embedded Linux build system

This one is e2factory from emlix. It joins the ranks of other embedded Linux build systems like buildroot, ptxdist, OpenEmbedded, Embedded Gentoo, and a whole host of similar projects.

We're approaching symmetry, I think - where we have a 1:1 correspondence between embedded Linux build systems and open source mp3 players.  I'm really not sure if that's a good thing or not.

Best. Function. Name. EVAR.

Digging around in the FreeBSD source code for the shutdown utility, I came across what is probably the best function name I've ever seen:

void die_you_gravy_sucking_pig_dog() {
    ...
}
As I've been dealing with process lifecycle management code for the past few days, this name really, really, really resonated with me.

Embedded Linux Activity

There's a lot going on in the embedded Linux community these days. Just some points of interest:


  • There's a new official linux-embedded mailing list, linux-embedded, that's seeing quite a bit of activity. Very encouraging. Lots of participation from the likes of Tim Bird, Mike Frysinger, Matt Mackall, Rob Landley, Wolfgang Denk, Robert Schwebel, Sam Ravnborg, Bill Gatliff, Paul Mundt... if you recognize any of those names, you know this is a list you want to keep track of. To quote Matt Mackall, "Linux-embedded is the place to be, folks. It's intended to be the catch-all list for embedded kernel work."

  • Rob Landley's Firmware Linux project is plugging along. Firmware Linux uses qemu to build systems natively under emulation, though version 0.4.0 includes support for using distcc to accelerate a native build by calling out to the cross compiler. Supported platforms include arm, mips, ppc, x86, and x86-64, and Rob's stated goal is to support all the emulation targets that qemu supports. Neat stuff.

  • Once again showing that mere mortals can't hope to keep up with his pace, Rob is also working on toybox, a set of standards-compliant command line utilities in a single binary. Rob was involved with busybox , and was the maintainer of that project for a while, so toybox is definitely interesting in light of the "let's start from scratch and do it better" approach he's taking.

  • Fedora has several architecture-specific projects going on, including Fedora for ARM, SPARC, and PPC. My former boss-man at TimeSys, Manas Saksena, now works for Marvell, and is apparently involved with the Fedora on ARM project.

  • If you've ever built a toolchain using crosstool, you may want to look into crosstool-ng, an attempt to take the ideas behind crosstool and re-implement them in a more user-friendly way.



Aaaaand that's it for today. Enjoy!

An Embedded Systems Timeline

In the latest edition of Jack Ganssle's Embedded Muse newsletter, he mentions an the embedded systems timeline on Embedded.com. While the title of the article is "Milestones in embedded system design", this is really more of a general timeline of the history of computing, touching on the hardware and software innovations that have produced modern computing systems.

There's the obligatory picture of the first bug, plus a couple of gems - including a picture of one of the first Apple computers, complete with hand-made wooden keyboard case. It's not nearly as attractive as the steampunk keyboard (or anything else, for that matter) out of the Steampunk Workshop, but it represents a bit of history that I'd previously not encountered.

All in all, an interesting distraction for a few minutes, and one that makes me want to re-read something like Kidder's The Soul of a New Machine.

It's an embedded kind of day

There's always a lot going on in the world of embedded systems development. Today we saw a spike in news about the embedded world. On Slashdot alone, there were three articles on embedded development - one about this announcement about the Android platform from Google, another article asking "Where are tomorrow's embedded developers?", and a third about the new release of the LLVM compiler infrastructure project.

Huh? Compilers? How is that a story about embedded development?

It's pretty safe to say that embedded developers are closer to their tools than just about any other brand of developer. Oh, sure - we use compilers, linkers, debuggers, just like anyone else. Chances are, though, that if you poll a group of embedded developers, you'll find a disproportionate number of folks who have had to hack on their compiler in some way. They've either had to patch their tools to deal with a new architecture variant, or work around a compiler bug, or something. For an embedded developer, a toolchain isn't just a static collection of programs that you feed source through to get a final product. For better or for worse, building, tweaking, and fine-tuning your tools is as much a part of embedded development as writing a device driver, compiling a kernel, or getting some user-space apps up and running on a new system.

As a result, things like LLVM and TinyCC are more than mildly interesting for embedded developers. They aren't just toy projects - instead, they represent exciting possibilities for a whole new set of tools. A whole new degree of freedom in tweakage that exists beyond choosing a standard C library or a set of user-space utilities. Remember, we're talking about developers here who get excited at the idea of writing their own memory managers. Giving them a whole new way of building something is like waving a steak in front of a starving dog.

They might decide they don't like the taste of it, for whatever reason... but they will at least try it, just to see if there might be an advantage to using a different toolchain. In that trying, they will shake out a lot of bugs and help those projects mature to the point where less bleeding-edge projects will be willing to give them a try.