We are very excited to announce that the fifth Athenian Papers We Love meetup will feature professor Diomidis Spinellis presenting on the Unix Architecture Evolution.
• Diomidis Spinellis presenting on the Unix Architecture Evolution: Milestones and Lessons Learned
The Unix operating system has had a profound influence on the development of open source software and associated communities. Many of today's systems trace their code or design to a 1970 unnamed operating system kernel, implemented in 2489 lines of PDP-7 assembly language. This evolved into the Unix operating system, whose direct descendants include today's BSD systems and intellectual heirs form the various GNU/Linux distributions.
How did the architecture of Unix evolve over the past half century? Based on a GitHub repository (https://github.com/dspinellis/unix-history-repo) recording the system's history from 1970 until today, a database recording the evolution of provided facilities, and the reconstruction of the Third and Fourth Edition Unix manuals, we will examine the most significant milestones of this development and the lessons we can learn. Many architectural features, such as layering, system calls, devices as files, an interpreter, and process management, were already visible in the 1970 version. Other ideas followed quickly: the tree directory structure, user contributed code, I/O redirection, the shell as a user program, groups, pipes, and scripting. Later versions added domain-specific languages, environment variables, a documented file system hierarchy, software packages, virtual memory support, optimized screen handling, networking, storage pools, dynamic tracing, and a packet capture library. Based on a record of facilities documented over the years we will see areas in which evolution continues at an unchanged pace and areas where it appears stalled. We will also see how one measure of code complexity has followed a self-correcting path. Lessons we can derive from this amazing ride include the durability of early architectural features, the value of establishing conventions over the imposition of rigid mechanisms, the importance of additions made after the system's gestation, and the increasing difficulty of bringing about ground-breaking changes as Unix ages.
Diomidis Spinellis is a Professor of software engineering, the Editor in Chief of the IEEE Software magazine, a programmer, and technology author.
Diomidis Spinellis is a Professor in the Department of Management Science and Technology at the Athens University of Economics and Business, Greece. His research interests include software engineering, IT security, and cloud systems engineering. He has written two award-winning, widely-translated books: “Code Reading” and “Code Quality: The Open Source Perspective”. In 2016 he published the book Effective Debugging: 66 Specific Ways to Debug Software and Systems. Diomidis has also published more than 250 technical papers in journals and refereed conference proceedings, which have received more than 5000 citations. He served for a decade as a member of the IEEE Software editorial board, authoring the regular “Tools of the Trade” column. He has contributed code that ships with Apple’s macOS and BSD Unix and is the developer of CScout, UMLGraph, dgsh, and other open-source software packages, libraries, and tools. He holds an MEng in Software Engineering and a PhD in Computer Science, both from Imperial College London. Dr. Spinellis has served as an elected member of the IEEE Computer Society Board of Governors (2013–2015), and is a senior member of the ACM and the IEEE. From January 2015 he is serving as the Editor-in-Chief for IEEE Software.
Enter the building from the entrance next to the parking lot and climb to the second floor.
After the presentation we will open the floor to discussion and questions.