Abstract
Systems software is the low-level infrastructure that applications run on the operating systems, language runtimes, libraries, databases, application servers, and many other components that churn our bits 24/7. The data structures one chooses should also gracefully accommodate the workload without placing any artificial limits on it. Modern memory is at least an order of magnitude slower than the CPU, so stay away from it. Avoid repeatedly processing data in memory. Cache intermediate results, and try to obtain all the data one needs from a memory location with a single access. Where possible, sidestep memory copying. Although intricate dependencies on lower layers are fair game for systems software, horizontal ones are not. In contrast to application software, where the lack of a thick manual can be a virtue, systems software should be accurately and comprehensively documented.
Original language | English |
---|---|
Article number | 6504881 |
Pages (from-to) | 18-19 |
Number of pages | 2 |
Journal | IEEE Software |
Volume | 30 |
Issue number | 3 |
DOIs | |
Publication status | Published - 1 Jan 2013 |
Externally published | Yes |