Welcome to the 15th issue of TMPDIR, a weekly newsletter covering Embedded Linux, IoT systems, and technology in general. Subscribe to future issues at https://tinyletter.com/tmpdir and pass it on to anyone else you think might be interested. Please send any tips or feedback to info@tmpdir.org.


Linux

Have you ever wondered how a Linux program starts? This article provides a nice overview of what all your Linux system does before your program reaches your main().

There is proposal to simplify the Bitbake syntax for adding to variables. This would simplify longstanding undefined behavior where foo_append += "YYY" would prepend a space before "YYY" automatically giving an illusion of a legitimate operation.


IoT

This week, we took at look at how we can resolve loops in the SIOT data. We store data as nodes and edges, which form a DAG.

DAG

However, there can be cases where users on two different instances make changes to the tree structure which cause a loop to be formed. A loop cannot be allowed, as it will form an infinite loop when rendering the tree, or walking back up the tree when processing new points. When a loop is detected, it must be broken and all instances need to converge to the same solution. To develop an algorithm, I started sketching out various scenarios and a solution emerged which seems fairly simple and robust. This is a complex problem syncing a DAG between distributed systems with very constrained network bandwidth (cellular CAT-M), but with some effort, complex problems can have simple solutions. This type of analysis is great fun -- amazing what can happen when you get out some paper and a pencil and start drawing.

This completes our analysis of CRDT properties of the SIOT data structures. It seems we have a fairly solid base for moving forward. -- cb


Other

This article on the Go blog claims Go performance should improve soon:

In February, the Go 1.18 release will expand the new register-based calling convention to non-x86 architectures, bringing dramatic performance improvements with it.

Interesting presentation on Rethinking Time. A slide:

time and causality


Quote for the week

There is nothing a mere scientist can say that will stand against the flood of a hundred million dollars. But there is one quality that cannot be purchased in this way — and that is reliability. The price of reliability is the pursuit of the utmost simplicity. It is a price which the very rich find most hard to pay. -- Tony Hoare


Join our Discourse forum to discuss these or new topics. Find past issues of TMPDIR here. Listen to previous podcasts at https://tmpdir.org/.

Thanks for reading!

Khem and Cliff