Starting from the 1970 PDP-7 Unix version (2489 lines of kernel code and 9095 lines of programs; all written in assembly language), we studied main Unix releases leading to the FreeBSD lineage (currently more than 20 million lines of code).
Along those releases we examined core architectural design decisions, the number of features, and code complexity. We did that based on the analysis of the following:
reference documentation through a custom-developed dataset and its timeline visualization, and
related publications.
Some conclusions:
Growth in size has been uniform, with some notable outliers, while cyclomatic complexity has been religiously safeguarded.
The rate of architectural innovation has slowed down over the system’s lifetime.
Architectural technical debt has accrued in the forms of functionality duplication and unused facilities, but in terms of cyclomatic complexity it is systematically being paid back through what appears to be a self-correcting process. Some unsung architectural forces that shaped Unix are:
the emphasis on conventions over rigid enforcement (think of documented file formats or environment variables),
the drive for portability (nowadays Unix runs on systems ranging from the $15 Raspberry Pi Zero to supercomputers),
a sophisticated ecosystem of other operating systems and development organizations (we documented millions of code lines coming from third-party subsystems and more than ten third-party contributors), and
the emergence of a federated architecture, often through the adoption of third-party subsystems.
Adafruit publishes a wide range of writing and video content, including interviews and reporting on the maker market and the wider technology world. Our standards page is intended as a guide to best practices that Adafruit uses, as well as an outline of the ethical standards Adafruit aspires to. While Adafruit is not an independent journalistic institution, Adafruit strives to be a fair, informative, and positive voice within the community – check it out here: adafruit.com/editorialstandards
Stop breadboarding and soldering – start making immediately! Adafruit’s Circuit Playground is jam-packed with LEDs, sensors, buttons, alligator clip pads and more. Build projects with Circuit Playground in a few minutes with the drag-and-drop MakeCode programming site, learn computer science using the CS Discoveries class on code.org, jump into CircuitPython to learn Python and hardware together, TinyGO, or even use the Arduino IDE. Circuit Playground Express is the newest and best Circuit Playground board, with support for CircuitPython, MakeCode, and Arduino. It has a powerful processor, 10 NeoPixels, mini speaker, InfraRed receive and transmit, two buttons, a switch, 14 alligator clip pads, and lots of sensors: capacitive touch, IR proximity, temperature, light, motion and sound. A whole wide world of electronics and coding is waiting for you, and it fits in the palm of your hand.
Have an amazing project to share? The Electronics Show and Tell is every Wednesday at 7:30pm ET! To join, head over to YouTube and check out the show’s live chat and our Discord!
Python for Microcontrollers – Adafruit Daily — Python on Microcontrollers Newsletter: New Python Releases, an ESP32+MicroPython IDE and Much More! #CircuitPython #Python #micropython @ThePSF @Raspberry_Pi
EYE on NPI – Adafruit Daily — EYE on NPI Maxim’s Himalaya uSLIC Step-Down Power Module #EyeOnNPI @maximintegrated @digikey