Toyota’s problem: hardware weenies and poor accounting practices [updated]

Jamie Kitman’s look at the twisted path Toyota followed to it’s current difficulties inspired me to think about software and money – two topics I spend way too much time thinking about. As a purely disinterested observer (ahem) it has come to my attention, repeatedly, that manufacturing companies undervalue, underinvest in, and undertest software.  On [...]

Deterministic multithreading

An interesting paper appearing in ASPLOS proceedings provides a “deterministic” locking method
Kendo enforces a deterministic interleaving of lock acquisitions and specially declared non-protected reads through a novel dynamically load-balanced deterministic scheduling algorithm. The algorithm tracks the progress of each thread using performance counters to construct a deterministic logical time that is used to compute an [...]

RTOS design and embedded system development

Real-time operating systems are either a solved problem or a backwater of engineering design. Threads, semaphores, mutexes, some basic I/O, priority scheduling all of this has been more or less standardized in the  POSIX 1003.13 smaller profiles (51,52) for many years. The basic programming model has not changed in years. Even FSM’s original RTOS and [...]

Wind River sold to Intel: more reaction

And like Intel, I would argue that mobile software companies are instrumental in making silicon solutions pervasive, because they tick two major check boxes: reference design and support.
The hidden asset of mobile software companies
Mobile embedded software companies (e.g. Myriad, Access, Aplix, NXP software, Azingo) have a unique understanding of products as a hardware/software system. They [...]

Wind River purchased by Intel

If anything, Wind River’s inability to breakout, despite a once Microsoft-like position of dominance, is a by-product of their failure to meaningfully go “up the stack” and away from their historical focus on the silicon layer as a primary differentiation point.
In other words, if Wind River had enabled the next generation of Cisco and Apple [...]

Are threads evil? (updated)

This paper by Prof. Edward Lee explains something of why “threads” are such a painful abstraction.  As Prof. Lee notes, threads intrinsically create non-determinism and resource conflicts which we then attempt to “prune” via synchronization and complex tools. In an earlier note, I argued that we should design real-time multi-threaded applications to minimize the need [...]

OSIM Madrid and Value Manifolds

Spent a couple of very interesting days at the OSIM conference in Madrid as part of my consulting for WindRiver which has a very powerful market position in cellular handsets now – partly due to their acquisition of RTLinux for embedded last January. Interesting to see these companies negotiate the vast complexity of the [...]

Building what customers want

Visting LinuxWorld in San Francisco reminded me that one of the advantages Apple has in the cell-phone market is that it can set design goals to be “what people who buy cell phones want”. While you might think this would be the obvious choice, many players in the market are trying to build what the [...]

Formal methods for doing what?

John Regehr’s question below gets to one of the basic problems I see in the field of “formal methods” - the general failure of researchers in the field to look at experimental data and the operation of actual systems.  The normal operation of science in, say physics or biology or even analysis of algorithms, involves interplay between [...]

Difference between theory and practice in security and reliability.

Theory of how F-22 Fighter software is going to be made bulletproof.
Practice.
Update: More practice (noted by Ben_k on Bruce Schneier’s weblog).
Update2: See this paper and this one.