{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,7,3]],"date-time":"2026-07-03T16:27:37Z","timestamp":1783096057185,"version":"3.54.6"},"reference-count":142,"publisher":"Institute of Electrical and Electronics Engineers (IEEE)","issue":"6","license":[{"start":{"date-parts":[[2021,6,1]],"date-time":"2021-06-01T00:00:00Z","timestamp":1622505600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/legalcode"}],"funder":[{"DOI":"10.13039\/100010661","name":"Horizon 2020 Framework Programme","doi-asserted-by":"crossref","award":["732223"],"award-info":[{"award-number":["732223"]}],"id":[{"id":"10.13039\/100010661","id-type":"DOI","asserted-by":"crossref"}]}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["IIEEE Trans. Software Eng."],"published-print":{"date-parts":[[2021,6,1]]},"DOI":"10.1109\/tse.2019.2892149","type":"journal-article","created":{"date-parts":[[2019,5,2]],"date-time":"2019-05-02T16:01:11Z","timestamp":1556812871000},"page":"1134-1163","source":"Crossref","is-referenced-by-count":11,"title":["Evolution of the Unix System Architecture: An Exploratory Case Study"],"prefix":"10.1109","volume":"47","author":[{"ORCID":"https:\/\/orcid.org\/0000-0003-4231-1897","authenticated-orcid":false,"given":"Diomidis","family":"Spinellis","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-7101-0754","authenticated-orcid":false,"given":"Paris","family":"Avgeriou","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"263","reference":[{"key":"ref39","doi-asserted-by":"publisher","DOI":"10.1016\/0097-8485(87)85006-4"},{"key":"ref38","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380120102"},{"key":"ref33","article-title":"A typesetter-independent TROFF","author":"kernighan","year":"1982"},{"key":"ref32","article-title":"Make&#x2014;A program for maintaining computer programs","author":"feldman","year":"1977"},{"key":"ref31","article-title":"Password security: A case history","author":"morris","year":"1978"},{"key":"ref30","article-title":"UNIX for beginners","author":"kernighan","year":"1979"},{"key":"ref37","doi-asserted-by":"publisher","DOI":"10.1145\/358198.358210"},{"key":"ref36","doi-asserted-by":"publisher","DOI":"10.1145\/361011.361061"},{"key":"ref35","article-title":"UNIX System Readings and Applications, vol. II","volume":"63","year":"1984","journal-title":"1987 (AT&T Bell Laboratories Tech J"},{"key":"ref34","article-title":"UNIX System Readings and Applications, vol. I","volume":"57","year":"1978","journal-title":"1978 (Bell Syst Tech J"},{"key":"ref28","article-title":"Yacc&#x2014;yet another compiler-compiler","author":"johnson","year":"1975"},{"key":"ref27","article-title":"A tutorial introduction to ADB","author":"maranzano","year":"1977"},{"key":"ref29","article-title":"Lex&#x2014;a lexical analyzer generator","author":"lesk","year":"1975"},{"key":"ref20","doi-asserted-by":"publisher","DOI":"10.1007\/s10664-016-9466-0"},{"key":"ref22","doi-asserted-by":"publisher","DOI":"10.1109\/WCRE.2008.55"},{"key":"ref21","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-76440-3_3"},{"key":"ref24","article-title":"The programming language B","author":"johnson","year":"1977"},{"key":"ref23","doi-asserted-by":"publisher","DOI":"10.1109\/WICSA.2011.20"},{"key":"ref101","article-title":"SED&#x2014;A non-interactive text editor","author":"mcmahon","year":"1979","journal-title":"UNIX Programmer's Manual Volume 2&#x2014;Supplementary Documents"},{"key":"ref26","article-title":"A system for typesetting mathematics","author":"kernighan","year":"1974"},{"key":"ref100","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380090403"},{"key":"ref25","article-title":"Lint, a C program checker","author":"johnson","year":"1977"},{"key":"ref50","first-page":"279","article-title":"Another level of indirection","author":"spinellis","year":"2007","journal-title":"Beautiful Code Leading Programmers Explain How They Think"},{"key":"ref51","doi-asserted-by":"publisher","DOI":"10.1002\/j.1538-7305.1978.tb02138.x"},{"key":"ref59","article-title":"Unix: Building a development environment from scratch","author":"toomey","year":"2017","journal-title":"Reflections on Operating Systems&#x2014;Historical and Philosophical Aspects"},{"key":"ref58","doi-asserted-by":"publisher","DOI":"10.1007\/s10664-016-9445-5"},{"key":"ref57","doi-asserted-by":"publisher","DOI":"10.1109\/MAHC.2009.55"},{"key":"ref56","first-page":"20","article-title":"The restoration of early UNIX artifacts","author":"toomey","year":"2009","journal-title":"Proc USENIX Annu Tech Conf"},{"key":"ref55","doi-asserted-by":"publisher","DOI":"10.1002\/j.1538-7305.1984.tb00054.x"},{"key":"ref54","doi-asserted-by":"publisher","DOI":"10.1002\/j.1538-7305.1978.tb02141.x"},{"key":"ref53","first-page":"1685","article-title":"The evolution of C&#x2014;Past and future","volume":"63","author":"rosler","year":"1984","journal-title":"Bell Syst Tech J"},{"key":"ref52","doi-asserted-by":"publisher","DOI":"10.1002\/j.1538-7305.1978.tb02137.x"},{"key":"ref40","first-page":"43","article-title":"Hello world","author":"pike","year":"1993","journal-title":"Proc USENIX Tech Conf Proc"},{"key":"ref4","doi-asserted-by":"publisher","DOI":"10.1109\/32.895984"},{"key":"ref3","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE.1994.296790"},{"key":"ref6","first-page":"1847e","article-title":"The long-term growth rate of evolving software: Empirical results and implications","volume":"29","author":"hatton","year":"2017","journal-title":"Journal of Software: Evolution and Process"},{"key":"ref5","doi-asserted-by":"publisher","DOI":"10.1109\/MS.2016.13"},{"key":"ref8","doi-asserted-by":"publisher","DOI":"10.1109\/APSEC.2010.48"},{"key":"ref49","first-page":"15","article-title":"Dynamic instrumentation of production systems","author":"cantrill","year":"2004","journal-title":"Proc USENIX Annu Tech Conf"},{"key":"ref7","doi-asserted-by":"publisher","DOI":"10.1002\/smr.348"},{"key":"ref9","first-page":"1","article-title":"Easier said than done: An empirical investigation of software design and quality in open source software development","author":"conley","year":"2009","journal-title":"Proc 42nd Hawaii Int Conf Syst Sci"},{"key":"ref46","first-page":"1","article-title":"Portals in 4.4BSD","author":"stevens","year":"1995","journal-title":"Proc USENIX 1995 Tech Conf Proc"},{"key":"ref45","article-title":"Porting UNIX to the 386: A practical approach. Designing a software specification","volume":"16","author":"jolitz","year":"1991","journal-title":"Dr Dobb's J"},{"key":"ref48","article-title":"The zettabyte file system","author":"bonwick","year":"2003","journal-title":"Proc 2nd USENIX Conf File Storage Technol"},{"key":"ref47","first-page":"1","article-title":"Soft updates: A technique for eliminating most synchronous writes in the fast filesystem","author":"mckusick","year":"1999","journal-title":"Proc USENIX Annu Tech Conf FREENIX Track"},{"key":"ref42","doi-asserted-by":"crossref","first-page":"78","DOI":"10.1145\/1067627.806595","article-title":"Converting a swap-based system to do paging in an architecture lacking page-referenced bits","author":"babaog?lu","year":"1981","journal-title":"Proc 8th ACM Symp Operating Syst Principles"},{"key":"ref41","first-page":"221","article-title":"Plan 9 from Bell Labs","volume":"8","author":"pike","year":"1995","journal-title":"Comput Syst"},{"key":"ref44","first-page":"119","article-title":"The design and implementation of the Sun network file system","author":"sandberg","year":"1985","journal-title":"Proc USENIX Assoc Conf Proc"},{"key":"ref43","doi-asserted-by":"publisher","DOI":"10.1145\/989.990"},{"key":"ref127","doi-asserted-by":"publisher","DOI":"10.1007\/978-1-84800-044-5_12"},{"key":"ref126","doi-asserted-by":"publisher","DOI":"10.1016\/B978-0-12-804206-9.00006-4"},{"key":"ref125","doi-asserted-by":"publisher","DOI":"10.1109\/CGO.2004.1281665"},{"key":"ref124","author":"vliet","year":"2008","journal-title":"Software Engineering Principles and Practice"},{"key":"ref73","doi-asserted-by":"publisher","DOI":"10.1007\/978-1-84800-044-5_1"},{"key":"ref72","doi-asserted-by":"publisher","DOI":"10.1109\/MS.2007.124"},{"key":"ref129","author":"love","year":"2010","journal-title":"Linux Kernel Development"},{"key":"ref71","author":"buschmann","year":"1996","journal-title":"Pattern-Oriented Software Architecture Volume 1 A System of Patterns"},{"key":"ref128","doi-asserted-by":"publisher","DOI":"10.1145\/800027.808439"},{"key":"ref70","doi-asserted-by":"publisher","DOI":"10.1109\/MS.2005.27"},{"key":"ref76","doi-asserted-by":"publisher","DOI":"10.5281\/zenodo.2525529"},{"key":"ref130","author":"bovet","year":"2006","journal-title":"Understanding the Linux Kernel"},{"key":"ref77","author":"salus","year":"1994","journal-title":"A Quarter Century of UNIX"},{"key":"ref74","doi-asserted-by":"publisher","DOI":"10.1145\/3196398.3196476"},{"key":"ref75","doi-asserted-by":"publisher","DOI":"10.5281\/zenodo.2525529"},{"key":"ref133","year":"1989","journal-title":"American National Standard for Information Systems&#x2014;programming language&#x2014;C"},{"key":"ref134","year":"1999","journal-title":"Programming and Languages"},{"key":"ref131","year":"0","journal-title":"Information Technology&#x2014;Portable Operating System Interface (POSIX)&#x2014;Part 1 System Application Programming Interface (API) (C Language)"},{"key":"ref78","first-page":"31","article-title":"Twenty years of Berkeley Unix: From AT&T-owned to freely redistributable","author":"mckusick","year":"1999","journal-title":"Open Sources Voices from the Open Source Revolution"},{"key":"ref132","year":"0","journal-title":"Information Technology&#x2014;Portable Operating System Interface (POSIX)&#x2014;Part 2"},{"key":"ref79","doi-asserted-by":"publisher","DOI":"10.1007\/978-1-4302-1949-1_12"},{"key":"ref136","first-page":"110","article-title":"Managing technical debt in software engineering (Dagstuhl seminar 16162)","volume":"6","author":"avgeriou","year":"2016","journal-title":"Dagstuhl Rep"},{"key":"ref135","year":"2018","journal-title":"Programming and Languages"},{"key":"ref138","doi-asserted-by":"publisher","DOI":"10.1002\/j.1538-7305.1978.tb02136.x"},{"key":"ref137","doi-asserted-by":"publisher","DOI":"10.1007\/s10664-017-9551-z"},{"key":"ref60","author":"lions","year":"1996","journal-title":"Lions&#x2019; Commentary on Unix 6th Edition with Source Code"},{"key":"ref139","volume":"1","author":"stevens","year":"1998","journal-title":"UNIX Network Programming Networking APIs Sockets and XTI"},{"key":"ref62","author":"leffler","year":"1988","journal-title":"The Design and Implementation of the 4 3BSD UNIX Operating System"},{"key":"ref61","author":"bach","year":"1986","journal-title":"The Design of the UNIX Operating System"},{"key":"ref63","author":"mckusick","year":"1996","journal-title":"The Design and Implementation of the 4 4BSD Unix Operating System"},{"key":"ref64","author":"mckusick","year":"2004","journal-title":"The Design And Implementation Of The FreeBSD Operating System"},{"key":"ref140","author":"tanenbaum","year":"1997","journal-title":"Operating Systems Design and Implementation"},{"key":"ref65","author":"mckusick","year":"2014","journal-title":"The Design And Implementation Of The FreeBSD Operating System"},{"key":"ref141","first-page":"1,16","author":"lewis","year":"1956","journal-title":"AT&T Settles Antitrust Case Shares Patents"},{"key":"ref66","author":"organick","year":"1972","journal-title":"The Multics System An Examination of its Structure"},{"key":"ref142","doi-asserted-by":"publisher","DOI":"10.7880\/abas.12.123"},{"key":"ref67","doi-asserted-by":"publisher","DOI":"10.1002\/9781118181034"},{"key":"ref68","first-page":"528","article-title":"Goal question metric paradigm","volume":"2","author":"basili","year":"1994","journal-title":"Encyclopedia of Software Engineering"},{"key":"ref2","doi-asserted-by":"publisher","DOI":"10.1145\/2543581.2543595"},{"key":"ref69","author":"taylor","year":"2009","journal-title":"Software Architecture Foundations Theory and Practice"},{"key":"ref1","doi-asserted-by":"publisher","DOI":"10.1016\/0164-1212(79)90022-0"},{"key":"ref109","author":"stevens","year":"1992","journal-title":"Advanced Programming in the UNIX Environment"},{"key":"ref95","doi-asserted-by":"publisher","DOI":"10.1002\/j.1538-7305.1978.tb02147.x"},{"key":"ref108","doi-asserted-by":"publisher","DOI":"10.1145\/6617.6618"},{"key":"ref94","article-title":"A tour through the portable C compiler","author":"johnson","year":"1979","journal-title":"UNIX Programmer's Manual Volume 2&#x2014;Supplementary Documents"},{"key":"ref107","article-title":"An introduction to the C shell","author":"joy","year":"1983","journal-title":"UNIX Programmer's Manual&#x2014;Volume 2c&#x2014;Supplementary Documents 4 2 Berkeley Software Distribution"},{"key":"ref93","author":"libes","year":"1989","journal-title":"Life with UNIX"},{"key":"ref106","article-title":"An introduction to display editing with vi","author":"joy","year":"1983","journal-title":"UNIX Programmer's Manual&#x2014;Volume 2c&#x2014;Supplementary Documents 4 2 Berkeley Software Distribution"},{"key":"ref92","year":"2017","journal-title":"IEEE Standard for Information Technology&#x2014;Portable Operating System Interface (POSIX) Base Specifications Issue 7"},{"key":"ref105","article-title":"Ex reference manual","author":"joy","year":"1983","journal-title":"UNIX Programmer's Manual&#x2014;Volume 2c&#x2014;Supplementary Documents 4 2 Berkeley Software Distribution"},{"key":"ref91","doi-asserted-by":"publisher","DOI":"10.1109\/MAHC.2016.34"},{"key":"ref104","article-title":"Berkeley Pascal user's manual","author":"joy","year":"1983","journal-title":"UNIX Programmer's Manual&#x2014;Volume 2c&#x2014;Supplementary Documents 4 2 Berkeley Software Distribution"},{"key":"ref90","article-title":"Users&#x2019; reference to B","author":"thompson","year":"1972"},{"key":"ref103","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380090402"},{"key":"ref102","article-title":"The M4 macro processor","author":"kernighan","year":"1979","journal-title":"UNIX Programmer's Manual Volume 2&#x2014;Supplementary Documents"},{"key":"ref111","article-title":"4.2BSD system manual","author":"joy","year":"1983","journal-title":"UNIX Programmer's Manual&#x2014;Volume 2c&#x2014;Supplementary Documents 4 2 Berkeley Software Distribution"},{"key":"ref112","first-page":"91","article-title":"The KA9Q internet (TCP\/IP) package: A progress report","author":"karn","year":"1987","journal-title":"Proc 6th ARRL Comput Netw Conf"},{"key":"ref110","first-page":"237","article-title":"Grep wars: The strategic search initiative","author":"hume","year":"1988","journal-title":"Proc EUUG Spring 88 Conf"},{"key":"ref98","author":"fowler","year":"2010","journal-title":"Domain-specific Languages"},{"key":"ref99","doi-asserted-by":"publisher","DOI":"10.1002\/j.1538-7305.1978.tb02139.x"},{"key":"ref96","doi-asserted-by":"publisher","DOI":"10.1145\/6424.315691"},{"key":"ref97","article-title":"Domain-specific languages","author":"hudak","year":"1998","journal-title":"Handbook of Programming Languages V III Little Languages and Tools"},{"key":"ref10","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2004.1274044"},{"key":"ref11","doi-asserted-by":"publisher","DOI":"10.1109\/CSMR.2005.30"},{"key":"ref12","doi-asserted-by":"publisher","DOI":"10.4018\/978-1-5225-0905-9.ch005"},{"key":"ref13","doi-asserted-by":"publisher","DOI":"10.1109\/ICSM.2000.883030"},{"key":"ref14","doi-asserted-by":"publisher","DOI":"10.1016\/j.jss.2009.09.042"},{"key":"ref15","doi-asserted-by":"publisher","DOI":"10.1145\/2884781.2884799"},{"key":"ref118","article-title":"Docker: Lightweight Linux containers for consistent development and deployment","volume":"2014","author":"merkel","year":"2014","journal-title":"Linux J"},{"key":"ref16","doi-asserted-by":"publisher","DOI":"10.1287\/mnsc.1060.0552"},{"key":"ref82","year":"1979","journal-title":"The 4 3BSD UNIX Programmer's Manual Volume 1"},{"key":"ref117","article-title":"Jails: Confining the omnipotent root","author":"kamp","year":"2000","journal-title":"Proc 2nd Int Syst Admin Netw Conf"},{"key":"ref17","doi-asserted-by":"publisher","DOI":"10.1016\/j.jss.2009.09.042"},{"key":"ref81","article-title":"What sparked lint? [was: Unix stories]","author":"johnson","year":"2017"},{"key":"ref18","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1976.233837"},{"key":"ref84","article-title":"An introduction to the UNIX shell","author":"bourne","year":"1979","journal-title":"UNIX Programmer's Manual Volume 2&#x2014;Supplementary Documents"},{"key":"ref119","article-title":"Secure computer systems: Mathematical foundations","volume":"1","author":"bell","year":"1973"},{"key":"ref19","doi-asserted-by":"publisher","DOI":"10.1016\/j.jss.2011.10.050"},{"key":"ref83","year":"1979","journal-title":"UNIX Programmer's Manual Volume 2&#x2014;Supplementary Documents"},{"key":"ref114","year":"2015","journal-title":"FreeBSD Handbook"},{"key":"ref113","first-page":"9","article-title":"LIBTP: Portable, modular transactions for UNIX","author":"seltzer","year":"1992","journal-title":"Proc Winter 1992 USENIX Conf"},{"key":"ref116","author":"lehey","year":"2006","journal-title":"The Complete FreeBSD"},{"key":"ref80","article-title":"User maintained programs in the second edition","author":"schilling","year":"2016"},{"key":"ref115","first-page":"203","article-title":"Processes as files","author":"killian","year":"1984","journal-title":"Proc USENIX Summer 84 Conf"},{"key":"ref120","article-title":"Integrity considerations for secure computer systems","author":"biba","year":"1977"},{"key":"ref89","doi-asserted-by":"publisher","DOI":"10.1007\/978-1-84800-044-5_2"},{"key":"ref121","first-page":"101","article-title":"Netmap: A novel framework for fast packet I\/O","author":"rizzo","year":"2012","journal-title":"Proc USENIX Annu Tech Conf"},{"key":"ref122","first-page":"114","article-title":"Cramming more components onto integrated circuits","volume":"38","author":"moore","year":"1965","journal-title":"Electron"},{"key":"ref123","doi-asserted-by":"publisher","DOI":"10.1145\/1368088.1368140"},{"key":"ref85","article-title":"The C programming language&#x2014;reference manual","author":"ritchie","year":"1979","journal-title":"UNIX Programmer's Manual Volume 2&#x2014;Supplementary Documents"},{"key":"ref86","article-title":"Lint, a C program checker","author":"johnson","year":"1979","journal-title":"UNIX Programmer's Manual Volume 2&#x2014;Supplementary Documents"},{"key":"ref87","article-title":"TBL&#x2014;A program to format tables","author":"lesk","year":"1979","journal-title":"UNIX Programmer's Manual Volume 2&#x2014;Supplementary Documents"},{"key":"ref88","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2016.2599161"}],"container-title":["IEEE Transactions on Software Engineering"],"original-title":[],"link":[{"URL":"http:\/\/xplorestaging.ieee.org\/ielx7\/32\/9453223\/08704965.pdf?arnumber=8704965","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,1,12]],"date-time":"2022-01-12T11:37:11Z","timestamp":1641987431000},"score":1,"resource":{"primary":{"URL":"https:\/\/ieeexplore.ieee.org\/document\/8704965\/"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2021,6,1]]},"references-count":142,"journal-issue":{"issue":"6"},"URL":"https:\/\/doi.org\/10.1109\/tse.2019.2892149","relation":{},"ISSN":["0098-5589","1939-3520","2326-3881"],"issn-type":[{"value":"0098-5589","type":"print"},{"value":"1939-3520","type":"electronic"},{"value":"2326-3881","type":"electronic"}],"subject":[],"published":{"date-parts":[[2021,6,1]]}}}