Four short links: 30 October 2019
Teaching Unix, Computational Memory, unfork(), and Modern Javascript Features
- xv6 — a teaching operating system developed in the summer of 2006 for MIT’s operating systems course, 6.828: Operating System Engineering. We hope that xv6 will be useful in other courses too. This page collects resources to aid the use of xv6 in other courses, including a commentary on the source code itself. Including a book.
- Computational Memory — But a lot more processing could be done in the memory. Consider a system that is meant to be secure. Why not process the data in the memory, where the data is encrypted, rather than having to unencrypt it and transfer the data across the bus where it could be intercepted? Why not perform searches on large amounts of data in the memory, only transferring the likely matches for more in-depth processing?
- unfork() — fork(2) splits one process (really, address space) into two. unfork(2) joins two address spaces into one. Useful for dynamic binary analysis and instrumentation of applications with built-in integrity checks.
- Modern Javascript Features You May Have Missed — binary and octal literals, Number.isNaN(), exponent (power) operator, Array.prototype.includes(), Shared array buffers and atomics, some more of Perl’s useful regex features, Array.prototype.flat() and flatMap(), unbound catches, and string trim methods.