While looking at some low level system design documents, I came across this article from IBM by Lewin Edwards. His case is that the x86 architecture is not the most flexible and financially feasible path to developing embedded solution. The argument is that x86 boards, even single board computers, are designed to be used as black boxes where the developer is supposed to make it work for his or her design through available components and external modules. This is to say that designing an x86 embedded system from scratch is not often done. On the other hand, the PowerPC embedded systems offer plenty of flexibility with a broad range of processors featuring a vast array of built in features (JTAG, memory controllers, peripheral controllers, etc). This article gives an overview of getting Linux to run on a Kuro Box, essentially a $150 PowerPC embedded system. For those less interested in the actual process, there are plenty of interesting resource links in the first section.
Part 1: Robots and networked appliances on a shoestring
Part 2: Anatomy of the Linux boot process
Part 3: Kuro Box Linux up close
Hiding information in plain sight has allways been an interesting subject. I recently came across a paper, describing Hydan, that does this by exploiting the redundancy in the x86 instruction set. For example, any time you add 50 to a register, you can just as easily subtract -50 and get the same result. By alternating which method you choose, you can encode a 1 or 0 at a rate of 1 bit of encoded data per 110 bits of object code. It is a pretty interesting topic as there are many possible security applications for this and it’s generic enough to be applied to non-x86 instructions. There are, of course, easier ways to hide data. (Save the image above and open it with either unrar or winrar to see the instructions.)
( hydan.pdf )
I have been kicking around the idea of designing a 386 based system sometime this summer, so I am looking at references and looking at what a minimal system would be. Something that had a serial console and could run an old dos or a small Linux/BSD would be nice. Below is a reference design document and a 386sx datasheet. (both from Intel)
( 386sx.pdf ) ( 24072501.pdf )