Knowledge (XXG)

Unix philosophy

Source 📝

304: 228: 1915: 596: 196: 1927: 377:, is now a small volume, with a thousand options... We used to sit around in the Unix Room saying, 'What can we throw out? Why is there this option?' It's often because there is some deficiency in the basic design — you didn't really hit the right design point. Instead of adding an option, think about what was forcing you to add that option. 20: 659:
suggests that a key advantage of Unix was that it embodied a design philosophy he termed "worse is better", in which simplicity of both the interface and the implementation are more important than any other attributes of the system—including correctness, consistency, and completeness. Gabriel argues
281:
is typical of most UNIX programs: it implements one simple but general function that can be used in many different applications (including many not envisioned by the original author). Other commands are used for other functions. For example, there are separate commands for file system tasks like
212:
Even though the UNIX system introduces a number of innovative programs and techniques, no single program or idea makes it work well. Instead, what makes it effective is the approach to programming, a philosophy of using the computer. Although that philosophy can't be written down in a single
386:
As stated by McIlroy, and generally accepted throughout the Unix community, Unix programs have always been expected to follow the concept of DOTADIW, or "Do One Thing And Do It Well." There are limited sources for the acronym DOTADIW on the Internet, but it is discussed at length during the
64:" movement. Over time, the leading developers of Unix (and programs that ran on it) established a set of cultural norms for developing software; these norms became as important and influential as the technology of Unix itself, and have been termed the "Unix philosophy." 213:
sentence, at its heart is the idea that the power of a system comes more from the relationships among programs than from the programs themselves. Many UNIX programs do quite trivial things in isolation, but, combined with other programs, become general and useful tools.
102:
Expect the output of every program to become the input to another, as yet unknown, program. Don't clutter output with extraneous information. Avoid stringently columnar or binary input formats. Don't insist on interactive
344:
The notion of "intricate and beautiful complexities" is almost an oxymoron. Unix programmers vie with each other for "simple and beautiful" honors — a point that's implicit in these rules, but is well worth making
254:
Much of the power of the UNIX operating system comes from a style of program design that makes programs easy to use and, more important, easy to combine with other programs. This style has been called the use of
259:, and depends more on how the programs fit into the programming environment and how they can be used with other programs than on how they are designed internally. This style was based on the use of 693:
criticized the design philosophy of Unix for its lack of concern for the user interface. Writing from his background in cognitive science and from the perspective of the then-current philosophy of
282:
renaming files, deleting them, or telling how big they are. Other systems instead lump these into a single "file system" command with an internal structure and command language of its own. (The
708:
criticised UNIX philosophy as being outdated. He argued that tying together modular tools results in very inefficient programs. He says that UNIX philosophy suffers from similar problems to
109:
Use tools in preference to unskilled help to lighten a programming task, even if you have to detour to build the tools and expect to throw some of them out after you've finished using them.
263:: using programs separately or in combination to get a job done, rather than doing it by hand, by monolithic self-sufficient subsystems, or by special-purpose, one-time programs. 671:
in the kernel, the handling of the situation was unclear. The signal handler could not be executed when the process was in kernel mode, with sensitive kernel data on the stack.
532:
of the 1980s and describes his philosophy that portability should be more important than the efficiency of using non-standard interfaces for hardware and graphics devices.
667:(which means that user processes carried out kernel system calls all on the user stack). If a signal was delivered to a process while it was blocked on a long-term 701:
of systems—or, in the case of Unix, fail to understand, with the result that disastrous mistakes (such as losing an hour's worth of work) are all too easy.
983: 106:
Design and build software, even operating systems, to be tried early, ideally within weeks. Don't hesitate to throw away the clumsy parts and rebuild them.
1953: 751: 1054: 60:. Early Unix developers were important in bringing the concepts of modularity and reusability into software engineering practice, spawning a " 328:
This is the Unix philosophy: Write programs that do one thing and do it well. Write programs to work together. Write programs to handle
444: 1307: 1287: 1258: 1133: 1093: 807: 643: 1269: 1156: 617: 204: 176: 99:
Make each program do one thing well. To do a new job, build afresh rather than complicate old programs by adding new "features".
1437: 1358: 1216: 621: 283: 506: 92: 242:. In this paper, they criticize the accretion of program options and features found in some newer Unix systems such as 1896: 1702: 1606: 415: 303: 606: 71:
code that can be easily maintained and repurposed by developers other than its creators. The Unix philosophy favors
1561: 625: 610: 294:
is an example.) That approach is not necessarily worse or better, but it is certainly against the UNIX philosophy.
1890: 1845: 1476: 867: 1336: 1591: 432: 47: 217:
The authors further write that their goal for this book is "to communicate the UNIX programming philosophy."
401:
architecture, stating that, "attempting to control services, sockets, devices, mounts, etc., all within one
227: 19: 1736: 731: 477: 76: 43: 660:
that this design style has key evolutionary advantages, though he questions the quality of some results.
1884: 721: 694: 522: 1879: 1782: 1181: 756: 736: 483: 50: 1796: 1378: 517:) port development at DEC in the 1980s and discussions with colleagues. He is also a member of the 502: 1811: 1351: 1034: 884: 656: 402: 390: 361:." He contrasts this with the earlier approach taken at Bell Labs when developing and revising 1817: 1389: 1303: 1283: 1254: 1129: 1089: 803: 726: 664: 572: 1931: 1195: 1177: 131:
In their Unix paper of 1974, Ritchie and Thompson quote the following design considerations:
1424: 1374: 1119: 992: 876: 793: 329: 139: 57: 1319: 250:, and explain the Unix philosophy of software tools, each performing one general function: 1399: 1394: 1273: 1224: 1220: 1115: 1079: 1011:"Remarks for Japan Prize award ceremony for Dennis Ritchie, May 19, 2011, Murray Hill, NJ" 859: 789: 761: 698: 585: 518: 420: 394: 321: 317: 231: 181: 155: 1331: 975: 1657: 1264: 996: 971: 921: 851: 741: 424: 387:
development and packaging of new operating systems, especially in the Linux community.
357:, remarking that, "adoring admirers have fed Linux goodies to a disheartening state of 354: 311: 114: 61: 27: 1958: 1947: 1919: 1764: 1755: 1618: 1469: 1409: 1344: 833: 712:: without overall supervision, big architectures end up ineffective and inefficient. 709: 705: 369:
Everything was small... and my heart sinks for Linux when I see the size of it. The
362: 320:, then head of the Bell Labs Computing Sciences Research Center, and inventor of the 72: 68: 1293: 888: 1586: 1581: 855: 829: 746: 668: 562: 307: 88: 39: 23: 1852: 1663: 1123: 1083: 797: 595: 1873: 1770: 1677: 1652: 1596: 1566: 1414: 690: 685: 337: 269: 405:
flies in the face of the Unix concept of doing one thing and doing it well."
127:
Write programs to handle text streams, because that is a universal interface.
67:
The Unix philosophy emphasizes building simple, compact, clear, modular, and
1708: 1371: 1325: 1010: 552: 529: 195: 189: 145: 1242: 1277: 880: 1866: 1718: 1684: 1571: 1526: 1511: 1228: 370: 247: 199: 185: 149: 954: 423:(open source advocate and programmer) summarizes the Unix philosophy as 1838: 1831: 1824: 1669: 1635: 1506: 1491: 1464: 1454: 398: 358: 238:
In October 1984, Brian Kernighan and Rob Pike published a paper called
192:, give a brief description of the Unix design and the Unix philosophy: 1296:
by M. D. Schroeder, D. D. Clark, J. H. Saltzer, and D. H. Wells, 1977.
1806: 1725: 1601: 1576: 1540: 1496: 1459: 1448: 1212: 514: 291: 243: 427:
of "Keep it Simple, Stupid." He provides a series of design rules:
528:
The book focuses on porting UNIX to different computers during the
1859: 1776: 1743: 1730: 1640: 1552: 1533: 1519: 1481: 1235: 350: 302: 226: 194: 152:
of design due to size constraints ("salvation through suffering").
18: 1646: 1629: 1501: 1367: 287: 54: 1340: 336:
Beyond these statements, he has also emphasized simplicity and
1749: 1713: 1486: 589: 697:, he focused on how end-users comprehend and form a personal 53:. It is based on the experience of leading developers of the 42:, is a set of cultural norms and philosophical approaches to 470:
Write programs which fail in a way that is easy to diagnose
1239:– The paper by Pike and Kernighan that preceded the book. 1282:, Eric S. Raymond, Addison-Wesley, September 17, 2003 ( 802:. Addison-Wesley Professional (published 2003-09-23). 535:
The nine basic "tenets" he claims to be important are
397:, invoked this design principle in a criticism of the 1157:"The truth about Unix: The user interface is horrid" 461:
Make data complicated when required, not the program
1795: 1694: 1615: 1550: 1434: 1423: 1035:"Ancestry of Linux — How the Fun Began (2005)" 158:
system: all Unix software is maintained under Unix.
679:In a 1981 article entitled "The truth about Unix: 286:file copy program found on operating systems like 273:with larger program suites used by other systems. 1294:Final Report of the Multics Kernel Design Project 1253:, Peter H. Salus, Addison-Wesley, May 31, 1994 ( 1055:"Interview with Patrick Volkerding of Slackware" 121:Write programs that do one thing and do it well. 976:"The Evolution of the UNIX Time-Sharing System" 367: 342: 326: 275: 252: 234:has written at length about the Unix philosophy 210: 135:Make it easy to write, test, and run programs. 1352: 920:Rob Pike; Brian W. Kernighan (October 1984). 784: 782: 780: 778: 776: 324:, summarized the Unix philosophy as follows: 8: 984:AT&T Bell Laboratories Technical Journal 929:AT&T Bell Laboratories Technical Journal 915: 913: 464:Build on potential users' expected knowledge 832:; E. N. Pinson; B. A. Tague (8 July 1978). 663:For example, in the early days Unix used a 624:. Unsourced material may be challenged and 509:'s Unix Engineering Group (UEG), published 1431: 1359: 1345: 1337: 1328:– by The Linux Information Project (LINFO) 899: 897: 492:Make the program and protocols extensible. 349:Conversely, McIlroy has criticized modern 1326:The Unix Philosophy: A Brief Introduction 752:List of software development philosophies 644:Learn how and when to remove this message 922:"Program Design in the UNIX Environment" 558:Use software leverage to your advantage. 332:, because that is a universal interface. 267:The authors contrast Unix tools such as 772: 30:, key proponents of the Unix philosophy 1236:Program Design in the UNIX Environment 545:Build a prototype as soon as possible. 473:Value developer time over machine time 240:Program Design in the UNIX Environment 222:Program Design in the UNIX Environment 1332:Why the Unix Philosophy still matters 1196:"On the Metal Podcast: Jonathan Blow" 565:to increase leverage and portability. 117:in A Quarter-Century of Unix (1994): 87:The Unix philosophy is documented by 7: 1926: 834:"Unix Time-Sharing System: Foreword" 622:adding citations to reliable sources 542:Make each program do one thing well. 478:abstract programs that generate code 1120:"The Unix Philosophy in One Lesson" 548:Choose portability over efficiency. 373:, which really used to be a manual 174:In their preface to the 1984 book, 997:10.1002/j.1538-7305.1984.tb00054.x 419:that was first published in 2003, 14: 1954:Software development philosophies 905:The UNIX Programming Environment. 838:The Bell System Technical Journal 497:Mike Gancarz: The UNIX Philosophy 1925: 1914: 1913: 1213:The Unix Programming Environment 594: 489:Write flexible and open programs 299:Doug McIlroy on Unix programming 205:The UNIX Programming Environment 177:The UNIX Programming Environment 169:The UNIX Programming Environment 124:Write programs to work together. 1912:indicate discontinued systems. 903:Kernighan, Brian W. Pike, Rob. 840:. Bell Laboratories: 1902–1903. 794:"Basics of the Unix Philosophy" 521:development team and author of 480:instead of writing code by hand 445:Separate mechanisms from policy 16:Software development philosophy 1247:, Rob Pike, September 21, 1989 955:"CP/M Operating System Manual" 860:"The UNIX time-sharing system" 568:Avoid captive user interfaces. 1: 1320:Basics of the Unix Philosophy 704:In the podcast On the Metal, 507:Digital Equipment Corporation 408: 93:Bell System Technical Journal 1166:. Vol. 27, no. 12. 681:The user interface is horrid 486:software before polishing it 409:Eric Raymond's 17 Unix Rules 1897:Windows Subsystem for Linux 1279:The Art of Unix Programming 1125:The Art of Unix Programming 1085:The Art of Unix Programming 799:The Art of Unix Programming 416:The Art of Unix Programming 382:Do One Thing and Do It Well 138:Interactive use instead of 113:It was later summarized by 1975: 583: 455:Write transparent programs 1905: 1891:Windows Services for UNIX 1846:Microsoft POSIX subsystem 1385: 1251:A Quarter Century of Unix 1244:Notes on Programming in C 1178:"An Oral History of Unix" 868:Communications of the ACM 467:Avoid unnecessary output 513:based on his own Unix ( 438:Write readable programs 732:Minimalism (computing) 393:, the project lead of 379: 347: 334: 314: 296: 265: 235: 215: 208: 31: 1885:UserLAnd Technologies 881:10.1145/361011.361061 722:Cognitive engineering 695:cognitive engineering 571:Make every program a 523:Ultrix Window Manager 458:Write robust programs 449:Write simple programs 340:in Unix programming: 306: 230: 198: 22: 1880:UNIX System Services 1379:compatibility layers 1182:Princeton University 1155:Norman, Don (1981). 757:Everything is a file 737:Software engineering 618:improve this section 452:Write small programs 51:software development 1607:Other distributions 1300:The UNIX Philosophy 1184:History of Science. 551:Store data in flat 539:Small is beautiful. 511:The UNIX Philosophy 1272:2008-05-12 at the 1219:2011-10-21 at the 1128:. Addison-Wesley. 1088:. Addison-Wesley. 1059:linuxquestions.org 657:Richard P. Gabriel 391:Patrick Volkerding 315: 236: 209: 32: 1941: 1940: 1791: 1790: 1375:operating systems 1009:Douglas McIlroy. 727:Unix architecture 665:monolithic kernel 654: 653: 646: 580:"Worse is better" 77:monolithic design 1966: 1929: 1928: 1917: 1916: 1432: 1361: 1354: 1347: 1338: 1302:, Mike Gancarz, 1200: 1199: 1192: 1186: 1185: 1174: 1168: 1167: 1161: 1152: 1146: 1145: 1143: 1142: 1112: 1106: 1105: 1103: 1102: 1076: 1070: 1069: 1067: 1066: 1051: 1045: 1044: 1042: 1041: 1033:Bill McGonigle. 1030: 1024: 1023: 1021: 1020: 1015: 1006: 1000: 999: 991:(8): 1577–1593, 980: 968: 962: 961: 959: 951: 945: 944: 942: 940: 926: 917: 908: 901: 892: 891: 864: 848: 842: 841: 826: 820: 819: 817: 816: 790:Raymond, Eric S. 786: 649: 642: 638: 635: 629: 598: 590: 280: 272: 140:batch processing 58:operating system 38:, originated by 1974: 1973: 1969: 1968: 1967: 1965: 1964: 1963: 1944: 1943: 1942: 1937: 1901: 1798: 1787: 1690: 1611: 1546: 1426: 1419: 1381: 1365: 1316: 1274:Wayback Machine 1225:Brian Kernighan 1221:Wayback Machine 1208: 1203: 1194: 1193: 1189: 1176: 1175: 1171: 1159: 1154: 1153: 1149: 1140: 1138: 1136: 1114: 1113: 1109: 1100: 1098: 1096: 1078: 1077: 1073: 1064: 1062: 1053: 1052: 1048: 1039: 1037: 1032: 1031: 1027: 1018: 1016: 1013: 1008: 1007: 1003: 978: 970: 969: 965: 957: 953: 952: 948: 938: 936: 924: 919: 918: 911: 902: 895: 862: 850: 849: 845: 828: 827: 823: 814: 812: 810: 788: 787: 774: 770: 762:Worse is better 718: 699:cognitive model 683:" published in 677: 650: 639: 633: 630: 615: 599: 588: 586:Worse is better 582: 519:X Window System 499: 441:Use composition 421:Eric S. Raymond 411: 395:Slackware Linux 384: 301: 278: 268: 232:Brian Kernighan 225: 202:, co-author of 182:Brian Kernighan 172: 165: 156:Self-supporting 85: 36:Unix philosophy 17: 12: 11: 5: 1972: 1970: 1962: 1961: 1956: 1946: 1945: 1939: 1938: 1936: 1935: 1923: 1906: 1903: 1902: 1900: 1899: 1894: 1887: 1882: 1877: 1870: 1863: 1856: 1849: 1842: 1835: 1828: 1821: 1814: 1809: 1803: 1801: 1793: 1792: 1789: 1788: 1786: 1785: 1780: 1773: 1768: 1761: 1760: 1759: 1747: 1740: 1733: 1728: 1723: 1722: 1721: 1711: 1706: 1698: 1696: 1692: 1691: 1689: 1688: 1681: 1674: 1673: 1672: 1667: 1655: 1650: 1643: 1638: 1633: 1625: 1623: 1613: 1612: 1610: 1609: 1604: 1599: 1594: 1589: 1584: 1579: 1574: 1569: 1564: 1558: 1556: 1548: 1547: 1545: 1544: 1537: 1530: 1523: 1516: 1515: 1514: 1509: 1504: 1499: 1494: 1489: 1484: 1474: 1473: 1472: 1467: 1462: 1457: 1444: 1442: 1429: 1421: 1420: 1418: 1417: 1412: 1407: 1402: 1397: 1392: 1386: 1383: 1382: 1366: 1364: 1363: 1356: 1349: 1341: 1335: 1334: 1329: 1323: 1315: 1314:External links 1312: 1311: 1310: 1297: 1291: 1262: 1248: 1240: 1232: 1207: 1204: 1202: 1201: 1187: 1169: 1147: 1134: 1118:(2003-09-19). 1107: 1094: 1082:(2003-09-19). 1071: 1046: 1025: 1001: 972:Dennis Ritchie 963: 946: 909: 893: 875:(7): 365–375, 852:Dennis Ritchie 843: 821: 808: 771: 769: 766: 765: 764: 759: 754: 749: 744: 742:KISS principle 739: 734: 729: 724: 717: 714: 676: 673: 652: 651: 602: 600: 593: 584:Main article: 581: 578: 577: 576: 569: 566: 559: 556: 549: 546: 543: 540: 505:, a member of 498: 495: 494: 493: 490: 487: 481: 474: 471: 468: 465: 462: 459: 456: 453: 450: 447: 442: 439: 436: 425:KISS Principle 410: 407: 383: 380: 355:software bloat 312:Dennis Ritchie 300: 297: 277:The design of 257:software tools 224: 219: 171: 166: 164: 161: 160: 159: 153: 143: 136: 129: 128: 125: 122: 115:Peter H. Salus 111: 110: 107: 104: 100: 84: 81: 75:as opposed to 62:software tools 28:Dennis Ritchie 15: 13: 10: 9: 6: 4: 3: 2: 1971: 1960: 1957: 1955: 1952: 1951: 1949: 1934: 1933: 1924: 1922: 1921: 1911: 1908: 1907: 1904: 1898: 1895: 1893: 1892: 1888: 1886: 1883: 1881: 1878: 1876: 1875: 1871: 1869: 1868: 1864: 1862: 1861: 1857: 1855: 1854: 1850: 1848: 1847: 1843: 1841: 1840: 1836: 1834: 1833: 1829: 1827: 1826: 1822: 1820: 1819: 1815: 1813: 1810: 1808: 1805: 1804: 1802: 1800: 1797:Compatibility 1794: 1784: 1781: 1779: 1778: 1774: 1772: 1769: 1767: 1766: 1765:Research Unix 1762: 1758: 1757: 1756:BlackBerry 10 1753: 1752: 1751: 1748: 1746: 1745: 1741: 1739: 1738: 1734: 1732: 1729: 1727: 1724: 1720: 1717: 1716: 1715: 1712: 1710: 1707: 1705: 1704: 1700: 1699: 1697: 1693: 1687: 1686: 1682: 1680: 1679: 1675: 1671: 1668: 1666: 1665: 1661: 1660: 1659: 1656: 1654: 1651: 1649: 1648: 1644: 1642: 1639: 1637: 1634: 1632: 1631: 1627: 1626: 1624: 1622: 1621: 1620: 1614: 1608: 1605: 1603: 1600: 1598: 1595: 1593: 1590: 1588: 1585: 1583: 1580: 1578: 1575: 1573: 1570: 1568: 1565: 1563: 1560: 1559: 1557: 1555: 1554: 1549: 1543: 1542: 1538: 1536: 1535: 1531: 1529: 1528: 1524: 1522: 1521: 1517: 1513: 1510: 1508: 1505: 1503: 1500: 1498: 1495: 1493: 1490: 1488: 1485: 1483: 1480: 1479: 1478: 1475: 1471: 1470:DragonFly BSD 1468: 1466: 1463: 1461: 1458: 1456: 1453: 1452: 1451: 1450: 1446: 1445: 1443: 1441: 1440: 1439: 1433: 1430: 1428: 1422: 1416: 1413: 1411: 1408: 1406: 1403: 1401: 1398: 1396: 1393: 1391: 1388: 1387: 1384: 1380: 1376: 1373: 1369: 1362: 1357: 1355: 1350: 1348: 1343: 1342: 1339: 1333: 1330: 1327: 1324: 1322:– by Catb.org 1321: 1318: 1317: 1313: 1309: 1308:1-55558-123-4 1305: 1301: 1298: 1295: 1292: 1289: 1288:0-13-142901-9 1285: 1281: 1280: 1276: — from 1275: 1271: 1268: 1267: 1263: 1260: 1259:0-201-54777-5 1256: 1252: 1249: 1246: 1245: 1241: 1238: 1237: 1233: 1230: 1226: 1222: 1218: 1215: 1214: 1210: 1209: 1205: 1197: 1191: 1188: 1183: 1179: 1173: 1170: 1165: 1158: 1151: 1148: 1137: 1135:0-13-142901-9 1131: 1127: 1126: 1121: 1117: 1116:Raymond, Eric 1111: 1108: 1097: 1095:0-13-142901-9 1091: 1087: 1086: 1081: 1080:Raymond, Eric 1075: 1072: 1060: 1056: 1050: 1047: 1036: 1029: 1026: 1012: 1005: 1002: 998: 994: 990: 986: 985: 977: 973: 967: 964: 956: 950: 947: 934: 930: 923: 916: 914: 910: 906: 900: 898: 894: 890: 886: 882: 878: 874: 870: 869: 861: 857: 853: 847: 844: 839: 835: 831: 825: 822: 811: 809:0-13-142901-9 805: 801: 800: 795: 791: 785: 783: 781: 779: 777: 773: 767: 763: 760: 758: 755: 753: 750: 748: 745: 743: 740: 738: 735: 733: 730: 728: 725: 723: 720: 719: 715: 713: 711: 710:microservices 707: 706:Jonathan Blow 702: 700: 696: 692: 688: 687: 682: 674: 672: 670: 666: 661: 658: 648: 645: 637: 634:February 2024 627: 623: 619: 613: 612: 608: 603:This section 601: 597: 592: 591: 587: 579: 574: 570: 567: 564: 563:shell scripts 560: 557: 554: 550: 547: 544: 541: 538: 537: 536: 533: 531: 526: 524: 520: 516: 512: 508: 504: 496: 491: 488: 485: 482: 479: 475: 472: 469: 466: 463: 460: 457: 454: 451: 448: 446: 443: 440: 437: 434: 430: 429: 428: 426: 422: 418: 417: 406: 404: 400: 396: 392: 388: 381: 378: 376: 372: 366: 364: 363:Research Unix 360: 356: 352: 346: 341: 339: 333: 331: 325: 323: 319: 313: 309: 305: 298: 295: 293: 289: 285: 274: 271: 264: 262: 258: 251: 249: 245: 241: 233: 229: 223: 220: 218: 214: 207: 206: 201: 197: 193: 191: 187: 183: 179: 178: 170: 167: 162: 157: 154: 151: 147: 144: 141: 137: 134: 133: 132: 126: 123: 120: 119: 118: 116: 108: 105: 101: 98: 97: 96: 94: 90: 82: 80: 78: 74: 73:composability 70: 65: 63: 59: 56: 52: 49: 45: 41: 37: 29: 25: 21: 1930: 1918: 1909: 1889: 1872: 1865: 1858: 1851: 1844: 1837: 1830: 1823: 1816: 1775: 1763: 1754: 1742: 1735: 1701: 1683: 1676: 1662: 1645: 1628: 1617: 1616: 1551: 1539: 1532: 1525: 1518: 1447: 1436: 1435: 1404: 1390:Architecture 1299: 1278: 1265: 1250: 1243: 1234: 1211: 1190: 1172: 1163: 1150: 1139:. Retrieved 1124: 1110: 1099:. Retrieved 1084: 1074: 1063:. Retrieved 1061:. 2012-06-07 1058: 1049: 1038:. Retrieved 1028: 1017:. Retrieved 1004: 988: 982: 966: 949: 939:December 15, 937:. Retrieved 932: 928: 904: 872: 866: 856:Ken Thompson 846: 837: 830:Doug McIlroy 824: 813:. Retrieved 798: 747:Hacker ethic 703: 684: 680: 678: 662: 655: 640: 631: 616:Please help 604: 534: 527: 510: 503:Mike Gancarz 500: 414: 413:In his book 412: 389: 385: 374: 368: 348: 343: 335: 330:text streams 327: 316: 310:(left) with 308:Doug McIlroy 276: 266: 260: 256: 253: 239: 237: 221: 216: 211: 203: 188:, both from 175: 173: 168: 130: 112: 89:Doug McIlroy 86: 66: 40:Ken Thompson 35: 33: 24:Ken Thompson 1853:MKS Toolkit 1664:OpenSolaris 935:(8). part 2 371:manual page 95:from 1978: 1948:Categories 1874:PWS/VSE-AF 1771:SerenityOS 1678:Tru64 UNIX 1653:OpenServer 1405:Philosophy 1395:Filesystem 1266:Philosophy 1206:References 1164:Datamation 1141:2009-02-09 1101:2009-02-09 1065:2015-10-24 1040:2014-06-19 1019:2014-06-19 907:1984. viii 815:2016-11-01 691:Don Norman 686:Datamation 553:text files 353:as having 338:minimalism 69:extensible 44:minimalist 1709:Domain/OS 1425:Operating 1372:Unix-like 675:Criticism 605:does not 530:Unix wars 501:In 1994, 484:Prototype 322:Unix pipe 190:Bell Labs 1920:Category 1867:P.I.P.S. 1703:Coherent 1685:UnixWare 1619:System V 1572:ChromeOS 1527:NeXTSTEP 1512:bridgeOS 1410:Security 1270:Archived 1229:Rob Pike 1217:Archived 974:(1984), 889:53235982 858:(1974), 792:(2004). 716:See also 525:(uwm). 435:programs 248:System V 200:Rob Pike 186:Rob Pike 150:elegance 1932:Commons 1910:Italics 1839:MachTen 1832:Interix 1812:Darling 1783:more... 1670:Illumos 1658:Solaris 1592:Red Hat 1562:Android 1507:watchOS 1492:audioOS 1465:OpenBSD 1455:FreeBSD 1427:systems 1400:History 960:. 1983. 626:removed 611:sources 433:modular 399:systemd 359:obesity 318:McIlroy 146:Economy 91:in the 48:modular 1818:Eunice 1807:Cygwin 1799:layers 1726:LynxOS 1602:Ubuntu 1587:Gentoo 1582:Fedora 1577:Debian 1541:Ultrix 1497:iPadOS 1477:Darwin 1460:NetBSD 1449:386BSD 1306:  1286:  1257:  1231:, 1984 1132:  1092:  887:  806:  573:filter 515:Ultrix 476:Write 431:Build 403:daemon 345:overt. 292:RSX-11 244:4.2BSD 103:input. 83:Origin 1777:Xenix 1744:OSF/1 1731:Minix 1695:Other 1641:HP-UX 1553:Linux 1534:SunOS 1520:DYNIX 1482:macOS 1415:Shell 1160:(PDF) 1014:(PDF) 979:(PDF) 958:(PDF) 925:(PDF) 885:S2CID 863:(PDF) 768:Notes 351:Linux 261:tools 163:Parts 1959:Unix 1860:PASE 1719:Hurd 1647:IRIX 1630:A/UX 1597:SUSE 1567:Arch 1502:tvOS 1377:and 1370:and 1368:Unix 1304:ISBN 1284:ISBN 1255:ISBN 1227:and 1130:ISBN 1090:ISBN 941:2022 804:ISBN 609:any 607:cite 561:Use 375:page 288:CP/M 246:and 184:and 148:and 55:Unix 34:The 26:and 1825:GNV 1750:QNX 1737:MOS 1714:GNU 1636:AIX 1487:iOS 1438:BSD 1223:by 993:doi 877:doi 669:I/O 620:by 290:or 284:PIP 279:cat 270:cat 1950:: 1180:. 1162:. 1122:. 1057:. 989:63 987:, 981:, 933:63 931:. 927:. 912:^ 896:^ 883:, 873:17 871:, 865:, 854:; 836:. 796:. 775:^ 689:, 365:: 180:, 79:. 46:, 1360:e 1353:t 1346:v 1290:) 1261:) 1198:. 1144:. 1104:. 1068:. 1043:. 1022:. 995:: 943:. 879:: 818:. 647:) 641:( 636:) 632:( 628:. 614:. 575:. 555:. 142:.

Index


Ken Thompson
Dennis Ritchie
Ken Thompson
minimalist
modular
software development
Unix
operating system
software tools
extensible
composability
monolithic design
Doug McIlroy
Bell System Technical Journal
Peter H. Salus
batch processing
Economy
elegance
Self-supporting
The UNIX Programming Environment
Brian Kernighan
Rob Pike
Bell Labs

Rob Pike
The UNIX Programming Environment

Brian Kernighan
4.2BSD

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.