{"id":469419,"date":"2025-08-03T15:00:18","date_gmt":"2025-08-03T15:00:18","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=469419"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=469419","title":{"rendered":"<span>IOCCC: Best of Show 2018<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c \u044d\u043f\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u044b c \u00ab<a href=\"https:\/\/www.ioccc.org\/index.html\" rel=\"noopener noreferrer nofollow\">International Obfuscated C Code Contest<\/a>\u00bb, \u0432\u00a0\u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u0440\u0430\u0441\u0441\u043a\u0430\u0437 \u043f\u043e\u0439\u0434\u0435\u0442 \u043e\u00a0\u043f\u043e\u0431\u0435\u0434\u0438\u0442\u0435\u043b\u0435 2018\u00a0\u0433\u043e\u0434\u0430. <\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/467\/51d\/c58\/46751dc587c08deae2528128635fffcd.jpeg\" alt=\"\u0421\u043b\u0435\u0432\u0430 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434, \u0441\u043f\u0440\u0430\u0432\u0430 - \u0432 \u0440\u0430\u0431\u043e\u0442\u0435. \u0413\u043b\u0430\u0437\u0430 \u0432\u0430\u043c \u043d\u0435 \u0432\u0440\u0443\u0442, \u044d\u0442\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0434\u043d\u0430 \u0438\u0437 \u0440\u0430\u043d\u043d\u0438\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 BSD \u0432 \u044d\u043c\u0443\u043b\u044f\u0446\u0438\u0438. 1983\u0439 \u0433\u043e\u0434.\" title=\"\u0421\u043b\u0435\u0432\u0430 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434, \u0441\u043f\u0440\u0430\u0432\u0430 - \u0432 \u0440\u0430\u0431\u043e\u0442\u0435. \u0413\u043b\u0430\u0437\u0430 \u0432\u0430\u043c \u043d\u0435 \u0432\u0440\u0443\u0442, \u044d\u0442\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0434\u043d\u0430 \u0438\u0437 \u0440\u0430\u043d\u043d\u0438\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 BSD \u0432 \u044d\u043c\u0443\u043b\u044f\u0446\u0438\u0438. 1983\u0439 \u0433\u043e\u0434.\" width=\"1366\" height=\"768\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/467\/51d\/c58\/46751dc587c08deae2528128635fffcd.jpeg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/467\/51d\/c58\/46751dc587c08deae2528128635fffcd.jpeg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0421\u043b\u0435\u0432\u0430 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434, \u0441\u043f\u0440\u0430\u0432\u0430 &#8212; \u0432 \u0440\u0430\u0431\u043e\u0442\u0435. \u0413\u043b\u0430\u0437\u0430 \u0432\u0430\u043c \u043d\u0435 \u0432\u0440\u0443\u0442, \u044d\u0442\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0434\u043d\u0430 \u0438\u0437 \u0440\u0430\u043d\u043d\u0438\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 BSD \u0432 \u044d\u043c\u0443\u043b\u044f\u0446\u0438\u0438. 1983\u0439 \u0433\u043e\u0434.<\/figcaption><\/div>\n<\/figure>\n<p>\u041a\u0430\u043a \u0434\u0443\u043c\u0430\u0435\u0442\u0435, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u043f\u0438\u0447\u043d\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443 \u043d\u0430\u0434\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u0440\u0438\u0437 \u00abBest of\u00a0show\u00bb \u043d\u0430\u00a0\u043a\u043e\u043d\u043a\u0443\u0440\u0441\u0435 \u0434\u043b\u044f \u0441\u0430\u043c\u044b\u0445 <s>\u043e\u0442\u0431\u0438\u0442\u044b\u0445 \u0438\u00a0\u043e\u0442\u043c\u043e\u0440\u043e\u0436\u0435\u043d\u043d\u044b\u0445<\/s> \u043a\u0440\u0443\u0442\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432 \u043d\u0430 \u0441\u0432\u0435\u0442\u0435? <\/p>\n<blockquote>\n<p>\u041a\u0442\u043e <s>\u0442\u044b \u0432\u043e\u0438\u043d<\/s> \u0442\u0430\u00a0\u00ab\u0444\u0430\u043d\u0442\u0430\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0442\u0432\u0430\u0440\u044c\u00bb, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0442\u0430\u043a\u043e\u0435 \u0441\u043c\u043e\u0433\u043b\u0430?<\/p>\n<\/blockquote>\n<p>\u042f \u0442\u043e\u0436\u0435 \u0437\u0430\u0434\u0430\u043b\u0441\u044f \u044d\u0442\u0438\u043c\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u043c\u0438 \u0432\u043e\u043f\u0440\u043e\u0441\u0430\u043c\u0438, \u043a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0447\u0435\u043b \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u044b, \u0442\u0430\u043a \u0438 \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u043d\u0430 \u0441\u0432\u0435\u0442 \u044d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f.<\/p>\n<h3>\u042d\u043c\u0443\u043b\u044f\u0442\u043e\u0440<\/h3>\n<p><s>\u0424\u0430\u043d\u0442\u0430\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439<\/s> \u0430\u0432\u0442\u043e\u0440 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 <a href=\"https:\/\/www.ioccc.org\/authors.html#Christopher_Mills\" rel=\"noopener noreferrer nofollow\">Christopher Mills<\/a> \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u0435\u0442 \u0432\u00a0\u043a\u043e\u043d\u043a\u0443\u0440\u0441\u0435 IOCCC \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u00a0\u0441\u0430\u043c\u043e\u0433\u043e \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u044f\u00a0\u2014 c 1990\u0433\u043e \u0433\u043e\u0434\u0430 \u0438 \u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0435\u043e\u0434\u043d\u043e\u043a\u0440\u0430\u0442\u043d\u043e \u0432\u044b\u0431\u0438\u0440\u0430\u043b\u0438\u0441\u044c \u043b\u0443\u0447\u0448\u0438\u043c\u0438 \u0432\u00a0\u0440\u0430\u0437\u043d\u044b\u0445 \u043d\u043e\u043c\u0438\u043d\u0430\u0446\u0438\u044f\u0445. \u0422\u0430\u043a \u0447\u0442\u043e <a href=\"https:\/\/www.ioccc.org\/2018\/mills\/\" rel=\"noopener noreferrer nofollow\">\u0434\u0430\u043d\u043d\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430<\/a>\u00a0\u2014 \u043e\u0442\u043d\u044e\u0434\u044c \u043d\u0435\u00a0\u0432\u043d\u0435\u0437\u0430\u043f\u043d\u043e\u0435 \u043e\u0442\u043a\u0440\u043e\u0432\u0435\u043d\u0438\u0435 \u0430\u00a0\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043c\u043d\u043e\u0433\u043e\u043b\u0435\u0442\u043d\u0435\u0433\u043e \u0442\u0440\u0443\u0434\u0430, \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0438\u0437\u044b\u0441\u043a\u0430\u043d\u0438\u0439 \u0438 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438.<\/p>\n<p>\u041d\u0430\u0447\u043d\u0443 \u0441 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f: <\/p>\n<blockquote>\n<p>The program delivered here is both a full machine emulation of the original PDP-7 that Ken Thompson used to write the first version of UNIX and a full machine emulation of the PDP-11\/40 used by subsequent UNIXes. <\/p>\n<\/blockquote>\n<p>\u0414\u0430, \u044d\u0442\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0439 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u0434\u0432\u0443\u0445 \u043c\u0430\u0448\u0438\u043d PDP-7 \u0438 PDP-11\/40 \u0438\u0437 <a href=\"https:\/\/en.wikipedia.org\/wiki\/PDP-11\" rel=\"noopener noreferrer nofollow\">\u043e\u043e\u043e\u0447\u0435\u043d\u044c \u0434\u0430\u043b\u0435\u043a\u0438\u0445 \u0432\u0440\u0435\u043c\u0435\u043d<\/a>, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0442\u0440\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 (\u0432 \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u043f\u043b\u0430\u043d\u0435) \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b.<\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0432\u044b \u0438\u043c\u0435\u043b\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430\u0445 \u0442\u0435\u0445 \u043b\u0435\u0442, <a href=\"https:\/\/gunkies.org\/wiki\/PDP-7\" rel=\"noopener noreferrer nofollow\">DEC PDP-7<\/a> \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/8a2\/a8d\/0fc\/8a2a8d0fcd8eb1c265beaabac3f1e7a8.jpeg\" alt=\"\u041a\u043e\u0433\u0434\u0430-\u0442\u043e \u044d\u0442\u043e \u0447\u0443\u0434\u043e\u0432\u0438\u0449\u0435 \u043d\u0430\u0437\u044b\u0432\u0430\u043b\u043e\u0441\u044c &quot;mini-computer&quot;.\" title=\"\u041a\u043e\u0433\u0434\u0430-\u0442\u043e \u044d\u0442\u043e \u0447\u0443\u0434\u043e\u0432\u0438\u0449\u0435 \u043d\u0430\u0437\u044b\u0432\u0430\u043b\u043e\u0441\u044c &quot;mini-computer&quot;.\" width=\"768\" height=\"384\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/8a2\/a8d\/0fc\/8a2a8d0fcd8eb1c265beaabac3f1e7a8.jpeg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/8a2\/a8d\/0fc\/8a2a8d0fcd8eb1c265beaabac3f1e7a8.jpeg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u041a\u043e\u0433\u0434\u0430\u2011\u0442\u043e \u044d\u0442\u043e \u0447\u0443\u0434\u043e\u0432\u0438\u0449\u0435 \u043d\u0430\u0437\u044b\u0432\u0430\u043b\u043e\u0441\u044c \u00abmini\u2011computer\u00bb.<\/figcaption><\/div>\n<\/figure>\n<p>\u0421\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044e \u0430\u0432\u0442\u043e\u0440\u0430, \u044d\u043c\u0443\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u0436\u0435\u043b\u0435\u0437\u043e:<\/p>\n<ul>\n<li>\n<p>PDP-7 Central Processor.<\/p>\n<\/li>\n<li>\n<p>Core Memory Module Type 147 \u2013 extends the core to 8,192 18-bit words.<\/p>\n<\/li>\n<li>\n<p>Extended Arithmetic Element Type 177 \u2013 adds one\u2019s-complement multiplication, division and shifting.<\/p>\n<\/li>\n<li>\n<p>Real Time Clock.<\/p>\n<\/li>\n<li>\n<p>Teletype Model 33 KSR.<\/p>\n<\/li>\n<li>\n<p>Perforated Tape Reader Type 444.<\/p>\n<\/li>\n<li>\n<p>RB09 Fixed Disk Controller.<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0435\u0433\u043e \u0430\u043d\u0442\u0443\u0440\u0430\u0436\u0430, \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e \u043a\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b <a href=\"https:\/\/kbd.news\/Teletype-Model-33-1274.html\" rel=\"noopener noreferrer nofollow\">Teletype Model 33<\/a>:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/63f\/584\/4db\/63f5844db30204306e59da4addcb41f1.jpg\" alt=\"&quot;\u041c\u0435\u0445\u0430\u043d\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430&quot; \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0435?\" title=\"&quot;\u041c\u0435\u0445\u0430\u043d\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430&quot; \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0435?\" width=\"960\" height=\"600\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/63f\/584\/4db\/63f5844db30204306e59da4addcb41f1.jpg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/63f\/584\/4db\/63f5844db30204306e59da4addcb41f1.jpg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u00ab\u041c\u0435\u0445\u0430\u043d\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430\u00bb \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0435?<\/figcaption><\/div>\n<\/figure>\n<p>\u0410 \u0432\u043e\u0442 \u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b <a href=\"https:\/\/gunkies.org\/wiki\/PDP-11\/40\" rel=\"noopener noreferrer nofollow\">DEC PDP-11\/40<\/a>:<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1e4\/db1\/77a\/1e4db177acaad155bb43b13e168e0516.jpeg\" width=\"450\" height=\"600\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/1e4\/db1\/77a\/1e4db177acaad155bb43b13e168e0516.jpeg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1e4\/db1\/77a\/1e4db177acaad155bb43b13e168e0516.jpeg 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0421 \u043d\u0438\u043c \u0443 \u0430\u0432\u0442\u043e\u0440\u0430 \u0432\u0441\u0435 \u0435\u0449\u0435 \u0432\u0435\u0441\u0435\u043b\u0435\u0435:<\/p>\n<blockquote>\n<p>So if I have a PDP-7 emulator, how do I run operating systems that expect a PDP-11? Simple\u2026 <em>I emulate a PDP-11\/40 on the PDP-7<\/em>.<\/p>\n<\/blockquote>\n<p>\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u0434\u0430\u0436\u0435 \u043d\u0435 \u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0439\u0442\u0435 <strong>\u043a\u0430\u043a<\/strong> \u0442\u0430\u043a\u043e\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u044d\u0442\u043e <s>\u044d\u0442\u0430 \u0434\u0438\u0447\u044c<\/s> \u0443\u0436\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u0437\u0430 \u0433\u0440\u0430\u043d\u044c\u044e \u043c\u043e\u0438\u0445 \u0437\u043d\u0430\u043d\u0438\u0439 \u043e \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430\u0445.<\/p>\n<p>\u042d\u043c\u0443\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u0436\u0435\u043b\u0435\u0437\u043e:<\/p>\n<ul>\n<li>\n<p>PDP-11\/40 (KD11-A).<\/p>\n<\/li>\n<li>\n<p>EIS instruction set (KE11-E).<\/p>\n<\/li>\n<li>\n<p>Memory management unit (KJ11-A).<\/p>\n<\/li>\n<li>\n<p>Line time clock (KT11-D).<\/p>\n<\/li>\n<li>\n<p>124 Kwords of memory (244 Kbytes).<\/p>\n<\/li>\n<li>\n<p>RK05 fixed disk drive (RK11).<\/p>\n<\/li>\n<li>\n<p>Console TTY (DL11).<\/p>\n<\/li>\n<\/ul>\n<p>\u0412\u043e\u0442 \u0442\u0430\u043a \u0434\u043b\u044f\u00a0\u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0432\u00a0\u0436\u0438\u0432\u0443\u044e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u00ab<a href=\"https:\/\/en.wikipedia.org\/wiki\/RK05\" rel=\"noopener noreferrer nofollow\">RK05<\/a> fixed disk drive\u00bb:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/937\/449\/2ac\/9374492ac68705c7ad01bd71c330f013.jpg\" alt=\"\u041e\u0446\u0435\u043d\u0438\u0442\u0435 \u0440\u0430\u0437\u043c\u0435\u0440 \u0441\u0430\u043b\u0430\u0437\u043e\u043a!\" title=\"\u041e\u0446\u0435\u043d\u0438\u0442\u0435 \u0440\u0430\u0437\u043c\u0435\u0440 \u0441\u0430\u043b\u0430\u0437\u043e\u043a!\" width=\"640\" height=\"427\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/937\/449\/2ac\/9374492ac68705c7ad01bd71c330f013.jpg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/937\/449\/2ac\/9374492ac68705c7ad01bd71c330f013.jpg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u041e\u0446\u0435\u043d\u0438\u0442\u0435 \u0440\u0430\u0437\u043c\u0435\u0440 \u0441\u0430\u043b\u0430\u0437\u043e\u043a!<\/figcaption><\/div>\n<\/figure>\n<p>\u0418 \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u044c \u044d\u0442\u043e\u0433\u043e \u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0441\u043c\u043e\u0433 \u044d\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u0435 \u044d\u0442\u0438\u0445 \u043c\u0430\u0448\u0438\u043d\u044b, \u0443\u043b\u043e\u0436\u0438\u0432\u0448\u0438\u0441\u044c \u0432 <strong>3636<\/strong> \u0431\u0430\u0439\u0442 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u043d\u0430 \u0421! <\/p>\n<p>\u041d\u0435\u00a0\u0431\u0443\u0434\u0443 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u00ab\u0430\u00a0\u0432\u0430\u043c \u0441\u043b\u0430\u0431\u043e\u00bb, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u00ab\u0441\u043b\u0430\u0431\u043e\u00bb \u0438 \u043c\u043d\u0435 \u0438\u00a0\u0432\u0441\u0435\u043c \u043c\u043e\u0438\u043c \u043a\u043e\u043b\u043b\u0435\u0433\u0430\u043c \u0438 \u0432\u0441\u0435\u043c \u0437\u043d\u0430\u043a\u043e\u043c\u044b\u043c \u0438 \u0432\u0441\u0435\u043c \u0437\u043d\u0430\u043a\u043e\u043c\u044b\u043c \u0437\u043d\u0430\u043a\u043e\u043c\u044b\u0445, \u0434\u0430\u0436\u0435 \u0436\u0438\u0432\u0443\u0449\u0438\u0445 \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u0442\u0440\u0430\u043d\u0430\u0445 \u0438 \u0432 \u0442\u043e\u0439 \u0441\u0430\u043c\u043e\u0439 \u041a\u0430\u043b\u0438\u0444\u043e\u0440\u043d\u0438\u0438.<\/p>\n<p>\u041d\u043e \u044d\u043c\u0443\u043b\u044f\u0446\u0438\u044f \u0441\u0442\u043e\u043b\u044c \u0441\u0442\u0430\u0440\u043e\u0433\u043e \u0436\u0435\u043b\u0435\u0437\u0430\u00a0\u2014 \u043b\u0438\u0448\u044c \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u044b, \u0434\u0440\u0443\u0433\u0430\u044f \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 \u044d\u0442\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c:<\/p>\n<ul>\n<li>\n<p>UNIX v0 for the PDP-7 (circa 1969)<\/p>\n<\/li>\n<li>\n<p>Research UNIX Version 6 (circa 1975)<\/p>\n<\/li>\n<li>\n<p>BSD 2.9 (circa 1983)<\/p>\n<\/li>\n<\/ul>\n<p>\u00abCirca\u00bb \u044d\u0442\u043e \u00ab\u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e\u00bb, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0440\u0435\u0447\u044c \u043f\u0440\u043e\u00a0\u043f\u0435\u0440\u0432\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438, R&amp;D \u0438 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0435 \u0441\u0431\u043e\u0440\u043a\u0438, \u0442\u043e\u0447\u043d\u044b\u0445 \u0440\u0435\u043b\u0438\u0437\u043d\u044b\u0445 \u0434\u0430\u0442 \u0442\u0443\u0442\u00a0\u0431\u044b\u0442\u044c \u043d\u0435\u00a0\u043c\u043e\u0436\u0435\u0442.<\/p>\n<p><strong>UNIX v0<\/strong> \u044d\u0442\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u0430\u044f \u0438\u00a0\u0447\u0443\u0434\u043e\u043c \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u0430\u044f <em>\u0441\u00a0\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u044b\u0445 \u0440\u0430\u0441\u043f\u0435\u0447\u0430\u0442\u043e\u043a<\/em> (!) \u043a\u043e\u043f\u0438\u044f \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b UNIX. \u041c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u00ab\u0430\u043b\u044c\u0444\u0430-\u0432\u0435\u0440\u0441\u0438\u044f\u00bb, \u043f\u043e\u043b\u044c\u0437\u0443\u044f\u0441\u044c \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0442\u0435\u0440\u043c\u0438\u043d\u043e\u043b\u043e\u0433\u0438\u0435\u0439. <\/p>\n<p>\u041a\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a\u0430\u044f \u0440\u0430\u0441\u043f\u0435\u0447\u0430\u0442\u043a\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 \u0440\u043e\u043b\u0438\u043a\u0435 \u043d\u0438\u0436\u0435.<\/p>\n<p>\u0412\u0441\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u0441 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430\u043c\u0438 \u0438 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0441\u0441\u044b\u043b\u043a\u0430\u043c\u0438 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f <a href=\"https:\/\/retrocomputingforum.com\/t\/restoring-unix-v0-on-a-pdp-7-a-look-behind-the-scenes\/826\/2\" rel=\"noopener noreferrer nofollow\">\u0442\u0443\u0442<\/a>, \u0430 <a href=\"https:\/\/github.com\/DoctorWkt\/pdp7-unix?tab=readme-ov-file\" rel=\"noopener noreferrer nofollow\">\u0442\u0443\u0442<\/a> \u0432\u044b\u043b\u043e\u0436\u0435\u043d\u044b \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0441 \u0442\u0430\u043a\u0438\u043c \u0442\u0440\u0443\u0434\u043e\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438, \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u043e\u043c.<\/p>\n<p>\u042d\u0442\u043e\u0442 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u044f \u0442\u0430\u043a\u0436\u0435 \u0443\u0441\u043f\u0435\u043b \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b4f\/86d\/8fb\/b4f86d8fb86527976540ef70d68b5978.gif\" width=\"540\" height=\"304\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b4f\/86d\/8fb\/b4f86d8fb86527976540ef70d68b5978.gif 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b4f\/86d\/8fb\/b4f86d8fb86527976540ef70d68b5978.gif 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0423\u0447\u0435\u0442\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u00abken\u00bb, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0430\u044f \u0434\u043b\u044f \u0432\u0445\u043e\u0434\u0430\u00a0\u2014 \u0442\u043e\u0433\u043e \u0441\u0430\u043c\u043e\u0433\u043e Ken Tompson, \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0430\u0432\u0442\u043e\u0440\u0430 UNIX, \u0441\u043f\u0440\u0430\u0432\u0430 \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0441\u043a\u0430\u043d \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0441\u043f\u0435\u0447\u0430\u0442\u043a\u0438 \u0441\u00a0\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u044b\u043c \u043b\u0438\u0441\u0442\u0438\u043d\u0433\u043e\u043c \u0438\u00a0\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u043c\u0438, \u0441\u0434\u0435\u043b\u0430\u043d\u043d\u044b\u043c\u0438 \u043b\u0438\u0447\u043d\u043e \u0440\u0443\u043a\u0430\u043c\u0438 \u041a\u0435\u043d\u0430 \u0422\u043e\u043c\u043f\u0441\u043e\u043d\u0430 (!).<\/p>\n<p>\u0420\u043e\u043b\u0438\u043a \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u043c\u043e\u0436\u043d\u043e <a href=\"https:\/\/t.me\/alex0x09\/1403\" rel=\"noopener noreferrer nofollow\">\u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c<\/a> \u043d\u0430 \u043d\u0430\u0448\u0435\u043c Telegram-\u043a\u0430\u043d\u0430\u043b\u0435, \u0430 \u0432\u043e\u0442 <a href=\"https:\/\/doc.cat-v.org\/unix\/v0\/\" rel=\"noopener noreferrer nofollow\">\u0442\u0443\u0442<\/a> \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0442\u0430\u043a\u0436\u0435 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0439 \u0447\u0435\u0440\u043d\u043e\u0432\u0438\u043a (draft) \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430 \u043f\u043e UNIX v0:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b4c\/3e0\/04a\/b4c3e004a3b651017a9737abd5e6d40c.png\" alt=\"\u0418\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442 \u0431\u0435\u0448\u0435\u043d\u043e\u0439 \u043c\u043e\u0449\u0438, \u0434\u0430\u0435\u0442 +100500 \u043a \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u043c\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e.\" title=\"\u0418\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442 \u0431\u0435\u0448\u0435\u043d\u043e\u0439 \u043c\u043e\u0449\u0438, \u0434\u0430\u0435\u0442 +100500 \u043a \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u043c\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e.\" width=\"753\" height=\"604\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/b4c\/3e0\/04a\/b4c3e004a3b651017a9737abd5e6d40c.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b4c\/3e0\/04a\/b4c3e004a3b651017a9737abd5e6d40c.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0418\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442 \u0431\u0435\u0448\u0435\u043d\u043e\u0439 \u043c\u043e\u0449\u0438, \u0434\u0430\u0435\u0442 +100500 \u043a \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u043c\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e.<\/figcaption><\/div>\n<\/figure>\n<p>\u041d\u043e \u043e\u0442\u043e\u0440\u0432\u0435\u043c\u0441\u044f \u043d\u0430 \u0432\u0440\u0435\u043c\u044f \u043e\u0442 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432 \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 <a href=\"https:\/\/github.com\/ioccc-src\/winner\/blob\/master\/2018\/mills\/prog.c\" rel=\"noopener noreferrer nofollow\">\u043a\u043e\u0434<\/a> \u0441\u0435\u0433\u043e \u0447\u0443\u0434\u0430:<\/p>\n<pre><code class=\"cpp\">#include&lt;fcntl.h&gt; #include&lt;unistd.h&gt; #include&lt;termios.h&gt; #include &lt;sys\/time.h&gt; #include  &lt;sys\/mman.h&gt; # define L } if(!i -- ){ struct timeval F,G; struct termios H,U={ T} ; enum{ N=64,a=N&lt;&lt;7,b=a-1,c=a*32,d =c-1,    e=c\/    2,f=    a*2,    g=a\/2,h =g\/2,j =h\/ 2,Q=V*j*5} ; char*s=P,K,M; int*      p,      l[      a]      ,m,n,J,o=A,    O=j,E,R,i,k,t,r,q,u,v,w,x,y,z ,B,C,    *D,Z    ;int    main    (){ for(D=mmap(D,4*Q,3,W,open(I,2 ),K); *s; o ++[ l]=k|=* s++%N){ k=* s++%N&lt;&lt;12; k|=*s++% N*N; } tcgetattr(q,&amp; H); tcsetattr (y,2,    &amp;U);    for(    fcntl(B,4,4); ; o&amp;=b){ if(k&amp;    c){ q=- --k%N; if(!q) k-=c      ;i      =k      \/N&amp;7; { L L if(J&amp;1)    m+=      t; J|=m%N*c; J\/=2; m \/= 2;    if(!    q&amp;&amp;r    ^n){ m^=d; J^= d; n=0; } L L    J+=J; J|=m&gt;=0; if(q){ m+=m; m|=J\/c; m+=m&lt;0?t:-t; } else{ m+=(m&lt;0)*t; if(r)m^=d; if(n^r)J^= d; n=0; } L if(    (m^2    *m)\/    e%2)    k&amp;=d; else{ J+=J; m+=m; m|=J\/c; } L m|=n*c; J |= m      %N      *c      ;m      \/=2; J \/=2;    L m+=m; J+=J; J|=n; m|=J\/c; L m+=m;    m|=n    ;  }    J&amp;=d    ; } else{ i=k\/f; t=i?k&amp;b:16; p=l+t; if(k&amp;a)p= l+((*p+=13&gt;i&amp;&amp;7&lt;t&amp;&amp;16&gt;t)&amp;b); { L i=1; L*p=m; L*p++=o|n*e; o=p-l; L*p=0; L m=*p ; L m ^=*p ; L t=m; m    +=*p; m+=d&lt;m    ; n|=((m^t)&amp;    (m^*p))\/e; L    m+=*p ; n=m\/c; L k=*p; if(      !Z||k\/f-8)      \/*$    %*\/      continue ;      k=-k ; L++*p; o +=!(*p&amp;=d)    ; L m&amp;=*p; L     if(m!=*p)++    o; L o=p -l;    L if( k&amp;a)n=m\/e; if(k&amp;g)J= 0; r=k&amp;h&amp;&amp;m&amp;e; if(k&amp;j)J|=m; else if(r)m^=d; if(k&amp;512)m=0; i=k\/N    &amp;7; { L if(k    &amp;4)J    ^=d; if(k&amp;2)m|=J; if    (k&amp;1    )m|=    q;  } else      { if(k%N)k      +=      c; { L t =o    ++[      l]      ;       if(r )J^=d;   L L t=o++[l];   if(r    )J^=d; m-=t; if(m&gt;=0    ){ k    -=c;     n=1; ++o; } } i=2; } L if(Z)k=-1; else{ if(k&amp;8)m=0; t=r=0; i=k\/N%N; if(i==27){ if(k &amp;2)u=v=w=Z=0;    } if    (i==57){ i=k\/16&amp;3; { L w =1;    if(k&amp;1)x =0;    if(k&amp; 2) { t= z\/N;      t=      t\/80*\/*\/*\/100+t% 80;   r=0      ; while(t)      {  r +=t%10*w; t\/=    10;w    &lt;&lt;=4; } m|=r; } if(k&amp;4){ r=m    ; t=0; while    (r) { t+=r%16*w; w*=10; r&gt;&gt;=4; } r=t\/100; t%=100; if(V&lt;=r||79&lt;t)x|=c\/8; else z=(r*80 +t)*N    ;  }    w=0;    L if(k&amp; 1&amp;&amp;x    &amp;(e|g) )++o;    if(k&amp; 2)m|=x    |y;if (k&amp;4      )C      =-      m&amp;65535; L      if(    k&amp;1      )x=y=0; if      (k&amp;2 )B=m;    if (    k&amp;4)    { y^=m&amp;(h|j|    j\/2); if(y&amp;j    ){ y^=j;x|=g    ; do{ B&amp;=b; if(y&amp;j\/2)z[D]=B[l]; else B[l]=z[D]; ++z; z%=Q; ++B; } while(-- C); } } } x%=e;    if(x    \/a)x    |=e;    if(x&amp;(e|g)&amp;&amp;y&amp;h)u|=c    ; else u%=c;    L if( k&amp;1)      t=      h;      if      (k&amp;2 )r= e;    if(      k&amp;4){ r=j;      u&amp;=~ h ; }    if(k    &amp;16)    Z=f*    2; L L L t=f; if(k&amp;2    )m|=M|Y; if(    k&amp;4)m |=u|v; L t=a; if(k&amp;4){ K=m&amp;~Y; write(1,&amp;K,1); u|=t; t=0; } } i=2; if(t){ if(k&amp; 1&amp;&amp;u&amp;t)++ o; if(k&amp;2)u    &amp;=~ t; } if(    r){ if(k&amp;32)    w=r;    else v&amp;=~r; } } L if(k&amp;a)m=k; else      { t=0; if(      k &amp;    N)t      |=      m\/e%2; if(k&amp; 128)t|=!m; if(k&amp;256)t    |= n; if( k&amp;    512 )t=!t; o    +=t;    if(k&amp; h)n =0; if(k&amp;g)m=0; if(k&amp;1)m^=d; if(k&amp;2)n^=1; if(k&amp;4)m|=S; if(k&amp;8){ m|=n*c; m+=m; if(k &amp; j)m    +=m;    m|=m    \/a\/N    ; n=m\/c; } if(k&amp;16){ m|=n*c;    m|=m    *2%N* c; m      \/=      2;      if      (k&amp;j) m\/=2;    n=m\/c; } if      (k      &amp;32) { if(    Z)k=    -1 ;    else    break; } } } } n&amp;=1; if(k&lt;c)    {  m    &amp;= d; o &amp;=b; if(!R--){ if (~u&amp;f &amp;&amp;read(0, &amp;M,1)&gt;0){ if(X&amp;&amp; M== X)break; R=0; u|=f; } gettimeofday(&amp;G,0); G.tv_usec\/=16667; if(G.tv_sec&gt;F.tv_sec||F.tv_usec&lt;G. tv_usec){ F=G; if(v&amp;j){ p=l+7; ++*p; *p&amp;=d; if(!*p)u|=h; } R=0; } if (!R){ E=O\/4; O=4; } O+=R=E; } if(!++k||(v&amp;e&amp;&amp;u)){ *l=o|n*e|Z;v%= e; o=1+!k; Z=0; } v|=w; w=0; k=o++[l]; } }tcsetattr(w,1,&amp;H); }<\/code><\/pre>\n<p>\u0414\u043b\u044f \u044e\u043d\u043e\u0433\u043e \u043f\u043e\u043a\u043e\u043b\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u044d\u0442\u043e \u043d\u0435\u00a0\u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u043d\u043e\u00a0\u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u0434\u0430 \u0442\u0443\u0442 \u0441\u0442\u0438\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e \u043f\u043e\u0434 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9F%D0%B5%D1%80%D1%84%D0%BE%D0%BA%D0%B0%D1%80%D1%82%D0%B0\" rel=\"noopener noreferrer nofollow\">\u043f\u0435\u0440\u0444\u043e\u043a\u0430\u0440\u0442\u0443<\/a>, \u043e\u0442\u0441\u044e\u0434\u0430 \u0438\u00a0\u0442\u0430\u043a\u0438\u0435 \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u00ab\u0434\u044b\u0440\u043a\u0438\u00bb:<\/p>\n<blockquote>\n<p>The ASCII art represents a torn piece of <a href=\"https:\/\/en.wikipedia.org\/wiki\/Punched_tape\" rel=\"noopener noreferrer nofollow\">paper tape<\/a>.<\/p>\n<\/blockquote>\n<p>\u0418 \u0434\u0430, \u044d\u0442\u043e <strong>\u0432\u0435\u0441\u044c<\/strong> \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434, \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044e\u0449\u0438\u0439 \u0437\u0430\u043f\u0443\u0441\u043a \u0430\u0436 \u0442\u0440\u0435\u0445 \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u041e\u0421 \u043d\u0430 \u044d\u043c\u0443\u043b\u0438\u0440\u0443\u0435\u043c\u043e\u043c \u0436\u0435\u043b\u0435\u0437\u0435 \u0434\u0432\u0443\u0445 \u0440\u0430\u0437\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043e\u0432 \u0438\u0437 1980\u0445: PDP-7 \u0438 PDP-11.<\/p>\n<h3>\u0421\u0431\u043e\u0440\u043a\u0430<\/h3>\n<p>\u0421\u0431\u043e\u0440\u043a\u0430 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a \u043d\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0432 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u043c \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0438 \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043d\u0435\u0442 \u0430 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u044b\u0439.<\/p>\n<blockquote>\n<p>\u0410\u0432\u0442\u043e\u0440 \u0441\u043e\u0431\u0438\u0440\u0430\u043b \u043d\u0430 FreeBSD 14 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e GCC 13, \u0442\u0430\u043a \u0447\u0442\u043e \u043d\u0430 \u043b\u044e\u0431\u043e\u043c Linux \u0442\u043e\u0447\u043d\u043e \u0441\u043e\u0431\u0435\u0440\u0435\u0442\u0441\u044f \u0431\u0435\u0437 \u043f\u0440\u043e\u0431\u043b\u0435\u043c.<\/p>\n<\/blockquote>\n<p>\u0412\u0441\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u044b-\u043f\u043e\u0431\u0435\u0434\u0438\u0442\u0435\u043b\u0438 IOCCC \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 <a href=\"https:\/\/github.com\/ioccc-src\/winner\" rel=\"noopener noreferrer nofollow\">\u043e\u0434\u043d\u043e\u043c \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438<\/a> \u043d\u0430 Github, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0437\u0430\u0431\u0438\u0440\u0430\u0442\u044c \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0442\u0430\u043a\u0436\u0435 \u0432\u0441\u0435 \u0446\u0435\u043b\u0438\u043a\u043e\u043c:<\/p>\n<pre><code class=\"bash\">git clone https:\/\/github.com\/ioccc-src\/winner.git<\/code><\/pre>\n<p>\u041d\u0443\u0436\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 <code>2018\/mills<\/code>.<\/p>\n<p>\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u044b \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0430\u0440\u0445\u0438\u0432 \u0441\u043e <a href=\"https:\/\/www.ioccc.org\/2018\/mills\/\" rel=\"noopener noreferrer nofollow\">\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b<\/a> \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 IOCCC, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u043e\u0439 \u044d\u0442\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u0435 (\u0441\u0441\u044b\u043b\u043a\u0438 \u0432 \u0441\u0430\u043c\u043e\u043c \u043d\u0438\u0437\u0443).<\/p>\n<p>\u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u0431\u043e\u0440\u043a\u0438 \u043f\u043e\u0434 FreeBSD \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0432 \u0444\u0430\u0439\u043b\u0435 <a href=\"http:\/\/var.mk\" rel=\"noopener noreferrer nofollow\"><strong>var.mk<\/strong><\/a> \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 GCC:<\/p>\n<pre><code class=\"bash\">GCC=gcc13<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432 FreeBSD gcc \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u043c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u043c \u0438 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441 \u043f\u043e\u0441\u0442\u0444\u0438\u043a\u0441\u043e\u043c \u0432\u0435\u0440\u0441\u0438\u0438.<\/p>\n<p>\u0421\u0430\u043c\u0430 \u0441\u0431\u043e\u0440\u043a\u0430 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e GNU Make:<\/p>\n<pre><code class=\"bash\">gmake<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b, \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043f\u043e\u044f\u0432\u044f\u0442\u0441\u044f \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0438 <code>prog<\/code>, <code>v0<\/code> \u0438 <code>v6<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0438 \u0431\u0443\u0434\u0435\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/79b\/bd3\/a88\/79bbd3a8867c4dc90993e56bb4da9ed3.png\" width=\"812\" height=\"584\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/79b\/bd3\/a88\/79bbd3a8867c4dc90993e56bb4da9ed3.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/79b\/bd3\/a88\/79bbd3a8867c4dc90993e56bb4da9ed3.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0422\u0440\u0438 \u0440\u0430\u0437\u043d\u044b\u0445 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0430 \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043e\u0434\u043d\u043e \u0438 \u0442\u043e \u0436\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c\u043e\u0435 \u0441 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430\u043c\u0438 \u0438 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u044b\u043c\u0438 \u043e\u0431\u0440\u0430\u0437\u0430\u043c\u0438, \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u043c\u0438 \u0432 \u043a\u043e\u0434 \u043f\u0440\u0438 \u0441\u0431\u043e\u0440\u043a\u0435.<\/p>\n<h3>UNIX v0<\/h3>\n<p>\u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 PDP-7 \u0441 \u043d\u0443\u043b\u0435\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0435\u0439 Unix \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c:<\/p>\n<pre><code class=\"bash\">.\/v0<\/code><\/pre>\n<p>\u0427\u0435\u0440\u0435\u0437 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438, \u0433\u0434\u0435 \u043d\u0430\u0434\u043e \u0432\u0432\u0435\u0441\u0442\u0438 <code>dmr<\/code> \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043b\u043e\u0433\u0438\u043d\u0430 \u0438 \u043f\u0430\u0440\u043e\u043b\u044f.<\/p>\n<p>\u0414\u0430, \u044d\u0442\u043e \u0443\u0447\u0435\u0442\u043a\u0430 \u0442\u043e\u0433\u043e \u0441\u0430\u043c\u043e\u0433\u043e <a href=\"https:\/\/en.wikipedia.org\/wiki\/Dennis_Ritchie\" rel=\"noopener noreferrer nofollow\">Dennis Ritchie<\/a>, \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u0430\u0432\u0442\u043e\u0440\u043e\u0432 UNIX, \u0447\u044c\u044e \u043f\u043e\u0434\u043f\u0438\u0441\u044c \u0432\u044b \u043c\u043e\u0433\u043b\u0438 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u0432\u044b\u0448\u0435 \u043d\u0430 \u0441\u043a\u0430\u043d\u0435 \u0447\u0435\u0440\u043d\u043e\u0432\u0438\u043a\u0430 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/599\/c89\/207\/599c89207857146b0ee4d287e85c78f2.jpeg\" alt=\"Dennis MacAlistair Ritchie (September 9, 1941 \u2013 c. October 12, 2011)\" title=\"Dennis MacAlistair Ritchie (September 9, 1941 \u2013 c. October 12, 2011)\" width=\"558\" height=\"717\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/599\/c89\/207\/599c89207857146b0ee4d287e85c78f2.jpeg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/599\/c89\/207\/599c89207857146b0ee4d287e85c78f2.jpeg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><strong>Dennis MacAlistair Ritchie<\/strong> (September 9, 1941 \u2013 c. October 12, 2011)<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u0441\u0435 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u0435 \u0448\u0430\u0433\u0438 \u043f\u043e\u00a0\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u00abHello World\u00bb \u043d\u0430\u00a0\u043f\u0440\u0435\u0434\u043a\u0435 \u0421\u00a0\u2014 <a href=\"https:\/\/en.wikipedia.org\/wiki\/B_(programming_language)\" rel=\"noopener noreferrer nofollow\">\u044f\u0437\u044b\u043a\u0435 B<\/a>\u00a0\u0432\u00a0<em>\u043d\u0443\u043b\u0435\u0432\u043e\u0439<\/em> \u0432\u0435\u0440\u0441\u0438\u0438 UNIX \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0432 \u0437\u0430\u043f\u0438\u0441\u0438 \u043d\u0438\u0436\u0435: <\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/804\/89a\/a4c\/80489aa4c4cf94f3ea5e06435c35d365.gif\" width=\"800\" height=\"555\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/804\/89a\/a4c\/80489aa4c4cf94f3ea5e06435c35d365.gif 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/804\/89a\/a4c\/80489aa4c4cf94f3ea5e06435c35d365.gif 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0414\u043b\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0438 \u0430\u0442\u043c\u043e\u0441\u0444\u0435\u0440\u043d\u043e\u0441\u0442\u0438, \u043f\u043e\u043a\u0430\u0436\u0443 \u043a\u0430\u043a \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b\u043e \u043d\u0430 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u043c PDP-7:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/40d\/1b4\/a21\/40d1b4a21fd1b986580803638c2624af.png\" alt=\"\u041f\u0440\u0438\u0434\u0435\u043b\u0430\u0442\u044c \u043a \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0443 \u043c\u043e\u043d\u0438\u0442\u043e\u0440 \u0434\u043e\u0433\u0430\u0434\u0430\u043b\u0438\u0441\u044c \u0434\u0430\u043b\u0435\u043a\u043e \u043d\u0435 \u0441\u0440\u0430\u0437\u0443.\" title=\"\u041f\u0440\u0438\u0434\u0435\u043b\u0430\u0442\u044c \u043a \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0443 \u043c\u043e\u043d\u0438\u0442\u043e\u0440 \u0434\u043e\u0433\u0430\u0434\u0430\u043b\u0438\u0441\u044c \u0434\u0430\u043b\u0435\u043a\u043e \u043d\u0435 \u0441\u0440\u0430\u0437\u0443.\" width=\"604\" height=\"458\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/40d\/1b4\/a21\/40d1b4a21fd1b986580803638c2624af.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/40d\/1b4\/a21\/40d1b4a21fd1b986580803638c2624af.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u041f\u0440\u0438\u0434\u0435\u043b\u0430\u0442\u044c \u043a \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0443 \u043c\u043e\u043d\u0438\u0442\u043e\u0440 \u0434\u043e\u0433\u0430\u0434\u0430\u043b\u0438\u0441\u044c \u0434\u0430\u043b\u0435\u043a\u043e \u043d\u0435 \u0441\u0440\u0430\u0437\u0443.<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u043d\u0435\u0437\u0430\u043f\u043d\u043e \u0432\u0441\u043f\u043b\u044b\u0432\u0430\u0435\u0442 \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 \u043d\u044e\u0430\u043d\u0441:<\/p>\n<blockquote>\n<p>Thompson\u2019s assembler was also extremely simple. It didn\u2019t even know about opcodes \u2013 these need to be defined in the first assembly file, with the assembler OR-ing the opcode fields together (space was the \u201coperator\u201d for logical OR). There is no link step \u2013 all files are provided to the assembler on the command line, concatenated together and assembled, producing a single <code>a.out<\/code> (assembler output) file. Even after UNIX got a linker, <code>a.out<\/code> remained the default name of the binary generated by the linker (and hence also by <code>cc<\/code>).<\/p>\n<\/blockquote>\n<p>\u0422\u0430\u043a \u0447\u0442\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u044b \u0442\u043e\u0436\u0435 \u0437\u043d\u0430\u0435\u0442\u0435 \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0436\u0435 \u0434\u0430\u043b\u0435\u043a\u043e \u0432 \u043f\u0440\u043e\u0448\u043b\u043e\u0435 \u0443\u0445\u043e\u0434\u044f\u0442 \u0443\u0448\u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f <code>a.out<\/code>, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430\u043c\u0438 \u0438 \u043f\u043e \u043d\u044b\u043d\u0435.<\/p>\n<p>\u0421\u0442\u043e\u0438\u0442 \u0442\u0430\u043a\u0436\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0440\u043e \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u0432\u0430\u0436\u043d\u044b\u0439 \u043d\u044e\u0430\u043d\u0441, \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u044b\u0439 \u0434\u043b\u044f Unix v0:<\/p>\n<blockquote>\n<p><code>ls<\/code> needs to be able to read <code>.<\/code>, the current directory. <code>dmr<\/code>\u2019s home directory doesn\u2019t have that yet, but we can make it, because the home directory has a hard link to <code>dd<\/code>, which is the directory that holds all of the user home directories (this will eventually become <code>\/<\/code>, the root path).<\/p>\n<\/blockquote>\n<p>\u0410 \u0432\u0441\u0435 \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0438.. \u0435\u0449\u0435 \u043d\u0435 \u0431\u044b\u043b\u0438 \u0438\u0437\u043e\u0431\u0440\u0435\u0442\u0435\u043d\u044b:<\/p>\n<blockquote>\n<p>What\u2019s the deal here? Well, that\u2019s a slightly long story. The short version is we have gone so far back in the history of UNIX that <em>we don\u2019t have filesystem paths yet<\/em>.<\/p>\n<\/blockquote>\n<p>\u041d\u0430\u0434\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443:<\/p>\n<pre><code class=\"bash\"> ln dd dmr .<\/code><\/pre>\n<p>\u0434\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043a\u043e\u043c\u0430\u043d\u0434\u0430 <code>ls<\/code> \u043c\u043e\u0433\u043b\u0430 \u043e\u0442\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c.<\/p>\n<p>\u041d\u043e \u0435\u0434\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435.<\/p>\n<h3>UNIX v6<\/h3>\n<p>\u0412\u0430\u0436\u043d\u0430\u044f <a href=\"https:\/\/en.wikipedia.org\/wiki\/Version_6_Unix\" rel=\"noopener noreferrer nofollow\">\u0432\u0435\u0445\u0430<\/a> \u0432 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f Unix:<\/p>\n<blockquote>\n<p><strong>Sixth Edition Unix<\/strong>, also called <strong>Version 6 Unix<\/strong> or just <strong>V6<\/strong> is a version of the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Unix\" rel=\"noopener noreferrer nofollow\">Unix<\/a> <a href=\"https:\/\/en.wikipedia.org\/wiki\/Operating_system\" rel=\"noopener noreferrer nofollow\">operating system<\/a> first released in May 1975 and the first version of the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Unix\" rel=\"noopener noreferrer nofollow\">Unix<\/a> <a href=\"https:\/\/en.wikipedia.org\/wiki\/Operating_system\" rel=\"noopener noreferrer nofollow\">operating system<\/a> to see wide release outside <a href=\"https:\/\/en.wikipedia.org\/wiki\/Bell_Labs\" rel=\"noopener noreferrer nofollow\">Bell Labs<\/a>.<\/p>\n<\/blockquote>\n<p>\u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u044d\u0442\u043e \u043f\u0435\u0440\u0432\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f, \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0430\u044f \u0448\u0438\u0440\u043e\u043a\u043e\u0435 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0437\u0430 \u0441\u0442\u0435\u043d\u0430\u043c\u0438 \u043b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u0438\u0438 Bell:<\/p>\n<blockquote>\n<p>An enhanced V6 was the basis of the first ever commercially sold Unix version, <a href=\"https:\/\/en.wikipedia.org\/wiki\/Interactive_Systems_Corporation\" rel=\"noopener noreferrer nofollow\">INTERACTIVE<\/a>&#8216;s IS\/1. <a href=\"https:\/\/en.wikipedia.org\/wiki\/Whitesmiths\" rel=\"noopener noreferrer nofollow\">Whitesmiths<\/a> produced and marketed a (binary-compatible) V6 clone under the name <a href=\"https:\/\/en.wikipedia.org\/wiki\/Idris_(operating_system)\" rel=\"noopener noreferrer nofollow\">Idris<\/a>.<\/p>\n<\/blockquote>\n<p>\u041d\u0430\u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0448\u0438\u0440\u043e\u043a\u043e\u0435, \u0447\u0442\u043e <a href=\"https:\/\/en.wikipedia.org\/wiki\/MNOS_(operating_system)\" rel=\"noopener noreferrer nofollow\">\u043f\u0440\u043e\u043d\u0438\u043a\u043b\u0430<\/a> \u0434\u0430\u0436\u0435 \u0437\u0430\u00a0\u00ab\u0436\u0435\u043b\u0435\u0437\u043d\u044b\u0439 \u0437\u0430\u043d\u0430\u0432\u0435\u0441\u00bb \u0432\u00a0\u0421\u0421\u0421\u0420:<\/p>\n<blockquote>\n<p>The system is derived from <a href=\"https:\/\/en.wikipedia.org\/wiki\/Version_6_Unix\" rel=\"noopener noreferrer nofollow\">Version 6 Unix<\/a> and then modified to incorporate features of <a href=\"https:\/\/en.wikipedia.org\/wiki\/Berkeley_Software_Distribution\" rel=\"noopener noreferrer nofollow\">Berkeley Software Distribution<\/a> (BSD) Unix. From 1983 until 1986, it enjoyed popularity in the Soviet Union and other <a href=\"https:\/\/en.wikipedia.org\/wiki\/Eastern_Bloc\" rel=\"noopener noreferrer nofollow\">Eastern Bloc<\/a> countries, due to its small size and faster performance than that of other <a href=\"https:\/\/en.wikipedia.org\/wiki\/Version_7_Unix\" rel=\"noopener noreferrer nofollow\">Version 7 Unix<\/a> (and later BSD Unix-based) alternatives.<\/p>\n<\/blockquote>\n<p>\u0427\u0442\u043e \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u043d\u043e \u044d\u0442\u043e \u0434\u0430\u0436\u0435 \u043d\u0435 \u0448\u0438\u0440\u043e\u043a\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%94%D0%95%D0%9C%D0%9E%D0%A1\" rel=\"noopener noreferrer nofollow\">\u0414\u0415\u041c\u041e\u0421<\/a> \u0430 \u043d\u0435\u0447\u0442\u043e \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c <a href=\"https:\/\/en.wikipedia.org\/wiki\/MNOS_(operating_system)\" rel=\"noopener noreferrer nofollow\">\u041c\u041e\u0421<\/a> (\u041c\u043e\u0431\u0438\u043b\u044c\u043d\u0430\u044f \u041e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0430\u044f \u0421\u0438\u0441\u0442\u0435\u043c\u0430), \u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u044f \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u0434\u0430\u0436\u0435 \u043d\u0435 \u0441\u043b\u044b\u0448\u0430\u043b.<\/p>\n<p>\u0414\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u0441 Unix v6 \u0434\u0435\u043b\u0430\u0435\u043c \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e\u0435:<\/p>\n<pre><code class=\"bash\">.\/v6<\/code><\/pre>\n<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043f\u0438\u0448\u0435\u043c:<\/p>\n<pre><code class=\"bash\">rkunix<\/code><\/pre>\n<p>\u041f\u043e\u0439\u0434\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 Unix v6 \u0432 \u043e\u0434\u043d\u043e\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435:<\/p>\n<blockquote>\n<p>This version of UNIX doesn\u2019t go into multi-user mode if you do a Control-D. Single-user mode was entered because the front-panel console switches were set to the magic number 0173030 (this can be changed with a recompile).<\/p>\n<\/blockquote>\n<p>\u0422\u0435 \u0441\u0430\u043c\u044b\u0435 \u00abfront\u2011panel switches\u00bb \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b\u0438 \u0432\u043e\u0442 \u0442\u0430\u043a:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/bea\/a36\/8b8\/beaa368b8450653b44ff1428cd159f08.jpeg\" width=\"1432\" height=\"1003\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/bea\/a36\/8b8\/beaa368b8450653b44ff1428cd159f08.jpeg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/bea\/a36\/8b8\/beaa368b8450653b44ff1428cd159f08.jpeg 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041d\u043e \u044d\u0442\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u043e (\u043c\u0435\u043d\u044f\u0442\u044c magic number \u0440\u0430\u0434\u0438 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0433\u043e multi-user) \u044f \u0443\u0436\u0435 \u043d\u0435 \u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b.<\/p>\n<p>\u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e \u043e\u0431\u0440\u0430\u0437 Unix v6 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e-\u0442\u0430\u043a\u0438 \u043f\u0443\u0441\u0442\u043e\u0439 \u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0432 \u043d\u0435\u043c \u043d\u0435\u0442, \u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440&#8230; \u0441\u043a\u0430\u0436\u0435\u043c \u0442\u0430\u043a \u043e\u0447\u0435\u043d\u044c \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u044b\u0439:<\/p>\n<ul>\n<li>\n<p>The <code>short<\/code> data type doesn\u2019t exist yet. Only <code>int<\/code> (<code>short<\/code> will show up when <code>long<\/code> comes, and the port to the Interdata 7\/32 starts to make the idea of portability become important).<\/p>\n<\/li>\n<li>\n<p>Hexadecimal constants don\u2019t exist yet. Digital\u2019s computers all used octal.<\/p>\n<\/li>\n<li>\n<p>The array initializer syntax hasn\u2019t yet moved to using <code>=<\/code>. It still uses the older form taken from B, which looks like <code>array[] { 1, 2, 3 };<\/code><\/p>\n<\/li>\n<\/ul>\n<p>\u0421\u043e\u0431\u0440\u0430\u0442\u044c \u0434\u0430\u0436\u0435 \u00abHello world\u00bb  \u044d\u0442\u0438\u043c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u043c \u044f \u043d\u0435\u00a0\u043e\u0441\u0438\u043b\u0438\u043b, \u0445\u043e\u0442\u044f \u0441\u0443\u0434\u044f \u043f\u043e\u00a0\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044e \u0432\u0441\u0435 \u0434\u043e\u043b\u0436\u043d\u043e\u00a0\u0431\u044b\u0442\u044c \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e:<\/p>\n<pre><code class=\"bash\"># cat &gt; foo.c     main()     {         printf(\"Hello, World!\\n\");     } ^D # cc foo.c # .\/a.out Hello, World!<\/code><\/pre>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043b\u0430\u0437\u0438\u0442\u044c \u043f\u043e \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0438 \u0443\u043c\u0438\u043b\u044f\u0442\u044c\u0441\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0434\u0430\u0442\u0430\u043c \u043d\u0430 \u0444\u0430\u0439\u043b\u0430\u0445.<\/p>\n<p>\u0412 \u0437\u0430\u043f\u0438\u0441\u0438 \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/37e\/e1b\/95b\/37ee1b95b4722bdb73200c26869ca8e5.gif\" width=\"800\" height=\"555\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/37e\/e1b\/95b\/37ee1b95b4722bdb73200c26869ca8e5.gif 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/37e\/e1b\/95b\/37ee1b95b4722bdb73200c26869ca8e5.gif 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c \u043f\u043e \u0440\u043e\u043b\u0438\u043a\u0443, \u0442\u0443\u0442 \u0435\u0441\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 \u043d\u044e\u0430\u043d\u0441 \u0432 \u0432\u0438\u0434\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0432\u0435\u0440\u0445\u043d\u0435\u0433\u043e \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 \u0434\u043b\u044f \u0432\u044b\u0432\u043e\u0434\u0430, \u0447\u0442\u043e\u0431\u044b \u044d\u0442\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043d\u0430\u0434\u043e \u0432\u0432\u0435\u0441\u0442\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u0443:<\/p>\n<pre><code class=\"bash\">STTY -LCASE<\/code><\/pre>\n<h3>BSD UNIX v2.9<\/h3>\n<p>\u041d\u0430\u043a\u043e\u043d\u0435\u0446 \u0433\u043b\u0430\u0432\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u044d\u0442\u043e\u0439 \u0448\u0438\u043a\u0430\u0440\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b, \u0434\u043b\u044f \u0447\u0435\u0433\u043e \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432\u0441\u0435 \u0438 \u0437\u0430\u0442\u0435\u0432\u0430\u043b\u043e\u0441\u044c:<\/p>\n<blockquote>\n<p>..and enjoy the classic <a href=\"https:\/\/www.ioccc.org\/1984\/mullender\/index.html\" rel=\"noopener noreferrer nofollow\">1984\/mullender<\/a> entry as it would have been in 1984 with a VAX-11\/PDP-11!<\/p>\n<\/blockquote>\n<p>\u0414\u0430, \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043f\u0435\u0440\u0432\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443-\u043f\u043e\u0431\u0435\u0434\u0438\u0442\u0435\u043b\u044f IOCCC \u0441 \u0441\u0430\u043c\u043e\u0433\u043e \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u043d\u043a\u0443\u0440\u0441\u0430 \u0432 1984\u043c \u0433\u043e\u0434\u0443 (!)<\/p>\n<p>\u041a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u043d\u0435\u0437\u0430\u043f\u043d\u043e \u0431\u044b\u043b\u0430 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0430 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043e\u0442\u043d\u044e\u0434\u044c \u043d\u0435 \u043d\u0430 PC:<\/p>\n<blockquote>\n<p>This original code will only execute correctly if your machine is a <a href=\"https:\/\/en.wikipedia.org\/wiki\/VAX-11\" rel=\"noopener noreferrer nofollow\">VAX-11<\/a> or <a href=\"https:\/\/en.wikipedia.org\/wiki\/PDP-11\" rel=\"noopener noreferrer nofollow\">PDP-11<\/a>. <\/p>\n<\/blockquote>\n<p>\u041d\u0430 \u0432\u0441\u044f\u043a\u0438\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 \u043f\u043e\u043a\u0430\u0436\u0443 <a href=\"https:\/\/github.com\/ioccc-src\/winner\/blob\/master\/1984\/mullender\/mullender.c\" rel=\"noopener noreferrer nofollow\">\u043a\u043e\u0434<\/a> \u044d\u0442\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b, \u0435\u0441\u043b\u0438 \u0432\u044b \u0432\u0434\u0440\u0443\u0433 \u043d\u0435 \u0432\u0438\u0434\u0435\u043b\u0438 \u0441\u0435\u0439 \u0448\u0435\u0434\u0435\u0432\u0440:<\/p>\n<pre><code class=\"cpp\">short main[] = { 277, 04735, -4129, 25, 0, 477, 1019, 0xbef, 0, 12800, -113, 21119, 0x52d7, -1006, -7151, 0, 0x4bc, 020004, 14880, 10541, 2056, 04010, 4548, 3044, -6716, 0x9, 4407, 6, 5568, 1, -30460, 0, 0x9, 5570, 512, -30419, 0x7e82, 0760, 6, 0, 4, 02400, 15, 0, 4, 1280, 4, 0, 4, 0, 0, 0, 0x8, 0, 4, 0, ',', 0, 12, 0, 4, 0, '#', 0, 020, 0, 4, 0, 30, 0, 026, 0, 0x6176, 120, 25712, 'p', 072163, 'r', 29303, 29801, 'e' };<\/code><\/pre>\n<p>\u0414\u0430 \u044d\u0442\u043e \u0442\u043e\u0436\u0435 \u044f\u0437\u044b\u043a \u0421\u0438 \u0438 \u043d\u0435\u0442, \u044d\u0442\u043e \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u043c \u043d\u0430 \u043e\u0431\u044b\u0447\u043d\u043e\u043c PC.<\/p>\n<blockquote>\n<p>\u041c\u043e\u0436\u0435\u0442\u0435 \u044e\u043c\u043e\u0440\u0430 \u0440\u0430\u0434\u0438 \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u0442\u044c ChatGPT \u0438\u043b\u0438 Copilot \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u043e\u0447\u0435\u043c\u0443 \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u0434 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.<\/p>\n<\/blockquote>\n<p>\u0412\u0441\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u043e\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u0434\u043e \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0438 \u0441\u0442\u0430\u0440\u0442\u0430 \u0437\u043d\u0430\u043c\u0435\u043d\u0438\u0442\u043e\u0433\u043e \u0434\u0435\u043c\u043e \u0438\u0437 1984\u0433\u043e \u0433\u043e\u0434\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0ac\/a5a\/a9f\/0aca5aa9f52b717aa9294c6fd8a8d1b7.gif\" alt=\"\u0411\u0435\u0433\u0443\u0449\u0438\u0439 \u0441\u043c\u0430\u0439\u043b\u0438\u043a \u0432 \u043a\u043e\u043d\u0446\u0435 \u044d\u0442\u043e \u0438 \u0435\u0441\u0442\u044c \u043e\u043d\u043e ;)\" title=\"\u0411\u0435\u0433\u0443\u0449\u0438\u0439 \u0441\u043c\u0430\u0439\u043b\u0438\u043a \u0432 \u043a\u043e\u043d\u0446\u0435 \u044d\u0442\u043e \u0438 \u0435\u0441\u0442\u044c \u043e\u043d\u043e ;)\" width=\"800\" height=\"555\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0ac\/a5a\/a9f\/0aca5aa9f52b717aa9294c6fd8a8d1b7.gif 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0ac\/a5a\/a9f\/0aca5aa9f52b717aa9294c6fd8a8d1b7.gif 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0411\u0435\u0433\u0443\u0449\u0438\u0439 \u0441\u043c\u0430\u0439\u043b\u0438\u043a \u0432 \u043a\u043e\u043d\u0446\u0435 \u044d\u0442\u043e \u0438 \u0435\u0441\u0442\u044c \u043e\u043d\u043e \ud83d\ude09<\/figcaption><\/div>\n<\/figure>\n<h3>\u042d\u043f\u0438\u043b\u043e\u0433<\/h3>\n<p>\u042d\u0442\u0430 \u0447\u0443\u0434\u043e\u0432\u0438\u0449\u043d\u043e\u0439 \u043c\u043e\u0449\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u00a0\u2014 \u0436\u0438\u0432\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u043d\u0438\u043a \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043d\u043e\u043c\u0443 \u0434\u0435\u043b\u0443 \u0438 \u043c\u0430\u0441\u0442\u0435\u0440\u0441\u0442\u0432\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043d\u0430\u0434\u0435\u044e\u0441\u044c \u043e\u043d\u0430 \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u044c \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u044d\u043c\u0443\u043b\u044f\u0446\u0438\u0438, \u0430\u00a0\u0442\u0430\u043a\u0436\u0435 \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0441\u0432\u043e\u0438\u043c\u0438 \u0433\u043b\u0430\u0437\u0430\u043c\u0438 \u0447\u0430\u0441\u0442\u0438\u0447\u043a\u0443 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0418\u0422 \u0438 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043e\u0432.<\/p>\n<p>\u041f\u0440\u043e\u0446\u0438\u0442\u0438\u0440\u0443\u044e \u043d\u0430\u043f\u043e\u0441\u043b\u0435\u0434\u043e\u043a \u0430\u0432\u0442\u043e\u0440\u0441\u043a\u0438\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u043d\u043e\u0441\u0442\u0435\u0439, \u0431\u0435\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u044d\u0442\u0430 \u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u0431\u044b \u043d\u0435 \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u043d\u0430 \u0441\u0432\u0435\u0442:<\/p>\n<blockquote>\n<p>None of this could have been possible without the hard work of<\/p>\n<\/blockquote>\n<ul>\n<li>\n<p>Warren Toomey and the other members of the <a href=\"http:\/\/www.tuhs.org\/\" rel=\"noopener noreferrer nofollow\">The Unix Heritage Society<\/a><\/p>\n<\/li>\n<li>\n<p>Robert M. Supnik and the other contributors to <a href=\"http:\/\/simh.trailing-edge.com\/\" rel=\"noopener noreferrer nofollow\">SimH<\/a>, the simulator for historic computer architectures. The number of times I needed to \u201cUse the Source, Luke\u201d on SimH to unravel some dark corner of these machines was uncountable.<\/p>\n<\/li>\n<li>\n<p><a href=\"http:\/\/bitsavers.trailing-edge.com\/\" rel=\"noopener noreferrer nofollow\">Bitsavers<\/a>, which acquired, scanned and preserved all the manuals I spent many hours squinting at.<\/p>\n<\/li>\n<li>\n<p>Ken Thompson, Dennis Ritchie, Brian Kernigan, M. D. McIlroy, J. F. Osssanna, Rudd Canaday and the other members of the Bell Labs Computing Science Research Center who were responsible for the invention of UNIX, the C programming language, and the innumerable other innovations that we now take for granted as part of the modern software landscape. In particular, the <a href=\"https:\/\/www.bell-labs.com\/usr\/dmr\/www\/\" rel=\"noopener noreferrer nofollow\">home page of the late Dennis Ritchie<\/a> contained a trove of useful information on the evolution of UNIX and C and is recommended for perusal by others who share my peculiar retro computing passion.<\/p>\n<\/li>\n<\/ul>\n<p><a href=\"https:\/\/teletype.media\/@alex0x08\/ioccc-mills-2018\" rel=\"noopener noreferrer nofollow\">\u041e\u0440\u0438\u0433\u0438\u043d\u0430\u043b<\/a> \u0441\u0442\u0430\u0442\u044c\u0438 \u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u043e \u0432 \u043d\u0430\u0448\u0435\u043c \u0431\u043b\u043e\u0433\u0435, \u0435\u0449\u0435 \u043c\u044b <a href=\"https:\/\/rutube.ru\/channel\/55750762\/\" rel=\"noopener noreferrer nofollow\">\u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u043f\u0438\u0441\u0430\u0442\u044c \u0432\u0438\u0434\u0435\u043e<\/a>, \u0433\u0434\u0435 \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u0435\u043c\u0441\u044f \u0440\u0430\u0441\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u0418\u0422-\u0442\u0435\u043c\u044b \u0432.. \u0431\u043e\u043b\u0435\u0435 \u043c\u0435\u0434\u0438\u0439\u043d\u043e\u043c \u0441\u0442\u0438\u043b\u0435 \ud83d\ude09 <\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/933526\/\"> https:\/\/habr.com\/ru\/articles\/933526\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c \u044d\u043f\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u044b c \u00ab<a href=\"https:\/\/www.ioccc.org\/index.html\" rel=\"noopener noreferrer nofollow\">International Obfuscated C Code Contest<\/a>\u00bb, \u0432\u00a0\u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u0440\u0430\u0441\u0441\u043a\u0430\u0437 \u043f\u043e\u0439\u0434\u0435\u0442 \u043e\u00a0\u043f\u043e\u0431\u0435\u0434\u0438\u0442\u0435\u043b\u0435 2018\u00a0\u0433\u043e\u0434\u0430. <\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u0421\u043b\u0435\u0432\u0430 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434, \u0441\u043f\u0440\u0430\u0432\u0430 &#8212; \u0432 \u0440\u0430\u0431\u043e\u0442\u0435. \u0413\u043b\u0430\u0437\u0430 \u0432\u0430\u043c \u043d\u0435 \u0432\u0440\u0443\u0442, \u044d\u0442\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0434\u043d\u0430 \u0438\u0437 \u0440\u0430\u043d\u043d\u0438\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 BSD \u0432 \u044d\u043c\u0443\u043b\u044f\u0446\u0438\u0438. 1983\u0439 \u0433\u043e\u0434.<\/figcaption><\/div>\n<\/figure>\n<p>\u041a\u0430\u043a \u0434\u0443\u043c\u0430\u0435\u0442\u0435, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u043f\u0438\u0447\u043d\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443 \u043d\u0430\u0434\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u0440\u0438\u0437 \u00abBest of\u00a0show\u00bb \u043d\u0430\u00a0\u043a\u043e\u043d\u043a\u0443\u0440\u0441\u0435 \u0434\u043b\u044f \u0441\u0430\u043c\u044b\u0445 <s>\u043e\u0442\u0431\u0438\u0442\u044b\u0445 \u0438\u00a0\u043e\u0442\u043c\u043e\u0440\u043e\u0436\u0435\u043d\u043d\u044b\u0445<\/s> \u043a\u0440\u0443\u0442\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432 \u043d\u0430 \u0441\u0432\u0435\u0442\u0435? <\/p>\n<blockquote>\n<p>\u041a\u0442\u043e <s>\u0442\u044b \u0432\u043e\u0438\u043d<\/s> \u0442\u0430\u00a0\u00ab\u0444\u0430\u043d\u0442\u0430\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0442\u0432\u0430\u0440\u044c\u00bb, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0442\u0430\u043a\u043e\u0435 \u0441\u043c\u043e\u0433\u043b\u0430?<\/p>\n<\/blockquote>\n<p>\u042f \u0442\u043e\u0436\u0435 \u0437\u0430\u0434\u0430\u043b\u0441\u044f \u044d\u0442\u0438\u043c\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u043c\u0438 \u0432\u043e\u043f\u0440\u043e\u0441\u0430\u043c\u0438, \u043a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0447\u0435\u043b \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u044b, \u0442\u0430\u043a \u0438 \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u043d\u0430 \u0441\u0432\u0435\u0442 \u044d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f.<\/p>\n<h3>\u042d\u043c\u0443\u043b\u044f\u0442\u043e\u0440<\/h3>\n<p><s>\u0424\u0430\u043d\u0442\u0430\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439<\/s> \u0430\u0432\u0442\u043e\u0440 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 <a href=\"https:\/\/www.ioccc.org\/authors.html#Christopher_Mills\" rel=\"noopener noreferrer nofollow\">Christopher Mills<\/a> \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u0435\u0442 \u0432\u00a0\u043a\u043e\u043d\u043a\u0443\u0440\u0441\u0435 IOCCC \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u00a0\u0441\u0430\u043c\u043e\u0433\u043e \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u044f\u00a0\u2014 c 1990\u0433\u043e \u0433\u043e\u0434\u0430 \u0438 \u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0435\u043e\u0434\u043d\u043e\u043a\u0440\u0430\u0442\u043d\u043e \u0432\u044b\u0431\u0438\u0440\u0430\u043b\u0438\u0441\u044c \u043b\u0443\u0447\u0448\u0438\u043c\u0438 \u0432\u00a0\u0440\u0430\u0437\u043d\u044b\u0445 \u043d\u043e\u043c\u0438\u043d\u0430\u0446\u0438\u044f\u0445. \u0422\u0430\u043a \u0447\u0442\u043e <a href=\"https:\/\/www.ioccc.org\/2018\/mills\/\" rel=\"noopener noreferrer nofollow\">\u0434\u0430\u043d\u043d\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430<\/a>\u00a0\u2014 \u043e\u0442\u043d\u044e\u0434\u044c \u043d\u0435\u00a0\u0432\u043d\u0435\u0437\u0430\u043f\u043d\u043e\u0435 \u043e\u0442\u043a\u0440\u043e\u0432\u0435\u043d\u0438\u0435 \u0430\u00a0\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043c\u043d\u043e\u0433\u043e\u043b\u0435\u0442\u043d\u0435\u0433\u043e \u0442\u0440\u0443\u0434\u0430, \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0438\u0437\u044b\u0441\u043a\u0430\u043d\u0438\u0439 \u0438 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438.<\/p>\n<p>\u041d\u0430\u0447\u043d\u0443 \u0441 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f: <\/p>\n<blockquote>\n<p>The program delivered here is both a full machine emulation of the original PDP-7 that Ken Thompson used to write the first version of UNIX and a full machine emulation of the PDP-11\/40 used by subsequent UNIXes. <\/p>\n<\/blockquote>\n<p>\u0414\u0430, \u044d\u0442\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0439 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u0434\u0432\u0443\u0445 \u043c\u0430\u0448\u0438\u043d PDP-7 \u0438 PDP-11\/40 \u0438\u0437 <a href=\"https:\/\/en.wikipedia.org\/wiki\/PDP-11\" rel=\"noopener noreferrer nofollow\">\u043e\u043e\u043e\u0447\u0435\u043d\u044c \u0434\u0430\u043b\u0435\u043a\u0438\u0445 \u0432\u0440\u0435\u043c\u0435\u043d<\/a>, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0442\u0440\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 (\u0432 \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u043f\u043b\u0430\u043d\u0435) \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b.<\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0432\u044b \u0438\u043c\u0435\u043b\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430\u0445 \u0442\u0435\u0445 \u043b\u0435\u0442, <a href=\"https:\/\/gunkies.org\/wiki\/PDP-7\" rel=\"noopener noreferrer nofollow\">DEC PDP-7<\/a> \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u041a\u043e\u0433\u0434\u0430\u2011\u0442\u043e \u044d\u0442\u043e \u0447\u0443\u0434\u043e\u0432\u0438\u0449\u0435 \u043d\u0430\u0437\u044b\u0432\u0430\u043b\u043e\u0441\u044c \u00abmini\u2011computer\u00bb.<\/figcaption><\/div>\n<\/figure>\n<p>\u0421\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044e \u0430\u0432\u0442\u043e\u0440\u0430, \u044d\u043c\u0443\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u0436\u0435\u043b\u0435\u0437\u043e:<\/p>\n<ul>\n<li>\n<p>PDP-7 Central Processor.<\/p>\n<\/li>\n<li>\n<p>Core Memory Module Type 147 \u2013 extends the core to 8,192 18-bit words.<\/p>\n<\/li>\n<li>\n<p>Extended Arithmetic Element Type 177 \u2013 adds one\u2019s-complement multiplication, division and shifting.<\/p>\n<\/li>\n<li>\n<p>Real Time Clock.<\/p>\n<\/li>\n<li>\n<p>Teletype Model 33 KSR.<\/p>\n<\/li>\n<li>\n<p>Perforated Tape Reader Type 444.<\/p>\n<\/li>\n<li>\n<p>RB09 Fixed Disk Controller.<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0435\u0433\u043e \u0430\u043d\u0442\u0443\u0440\u0430\u0436\u0430, \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e \u043a\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b <a href=\"https:\/\/kbd.news\/Teletype-Model-33-1274.html\" rel=\"noopener noreferrer nofollow\">Teletype Model 33<\/a>:<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u00ab\u041c\u0435\u0445\u0430\u043d\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430\u00bb \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0435?<\/figcaption><\/div>\n<\/figure>\n<p>\u0410 \u0432\u043e\u0442 \u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b <a href=\"https:\/\/gunkies.org\/wiki\/PDP-11\/40\" rel=\"noopener noreferrer nofollow\">DEC PDP-11\/40<\/a>:<\/p>\n<figure class=\"\"><\/figure>\n<p>\u0421 \u043d\u0438\u043c \u0443 \u0430\u0432\u0442\u043e\u0440\u0430 \u0432\u0441\u0435 \u0435\u0449\u0435 \u0432\u0435\u0441\u0435\u043b\u0435\u0435:<\/p>\n<blockquote>\n<p>So if I have a PDP-7 emulator, how do I run operating systems that expect a PDP-11? Simple\u2026 <em>I emulate a PDP-11\/40 on the PDP-7<\/em>.<\/p>\n<\/blockquote>\n<p>\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u0434\u0430\u0436\u0435 \u043d\u0435 \u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0439\u0442\u0435 <strong>\u043a\u0430\u043a<\/strong> \u0442\u0430\u043a\u043e\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u044d\u0442\u043e <s>\u044d\u0442\u0430 \u0434\u0438\u0447\u044c<\/s> \u0443\u0436\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u0437\u0430 \u0433\u0440\u0430\u043d\u044c\u044e \u043c\u043e\u0438\u0445 \u0437\u043d\u0430\u043d\u0438\u0439 \u043e \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430\u0445.<\/p>\n<p>\u042d\u043c\u0443\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u0436\u0435\u043b\u0435\u0437\u043e:<\/p>\n<ul>\n<li>\n<p>PDP-11\/40 (KD11-A).<\/p>\n<\/li>\n<li>\n<p>EIS instruction set (KE11-E).<\/p>\n<\/li>\n<li>\n<p>Memory management unit (KJ11-A).<\/p>\n<\/li>\n<li>\n<p>Line time clock (KT11-D).<\/p>\n<\/li>\n<li>\n<p>124 Kwords of memory (244 Kbytes).<\/p>\n<\/li>\n<li>\n<p>RK05 fixed disk drive (RK11).<\/p>\n<\/li>\n<li>\n<p>Console TTY (DL11).<\/p>\n<\/li>\n<\/ul>\n<p>\u0412\u043e\u0442 \u0442\u0430\u043a \u0434\u043b\u044f\u00a0\u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0432\u00a0\u0436\u0438\u0432\u0443\u044e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u00ab<a href=\"https:\/\/en.wikipedia.org\/wiki\/RK05\" rel=\"noopener noreferrer nofollow\">RK05<\/a> fixed disk drive\u00bb:<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u041e\u0446\u0435\u043d\u0438\u0442\u0435 \u0440\u0430\u0437\u043c\u0435\u0440 \u0441\u0430\u043b\u0430\u0437\u043e\u043a!<\/figcaption><\/div>\n<\/figure>\n<p>\u0418 \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u044c \u044d\u0442\u043e\u0433\u043e \u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0441\u043c\u043e\u0433 \u044d\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u0435 \u044d\u0442\u0438\u0445 \u043c\u0430\u0448\u0438\u043d\u044b, \u0443\u043b\u043e\u0436\u0438\u0432\u0448\u0438\u0441\u044c \u0432 <strong>3636<\/strong> \u0431\u0430\u0439\u0442 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u043d\u0430 \u0421! <\/p>\n<p>\u041d\u0435\u00a0\u0431\u0443\u0434\u0443 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u00ab\u0430\u00a0\u0432\u0430\u043c \u0441\u043b\u0430\u0431\u043e\u00bb, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u00ab\u0441\u043b\u0430\u0431\u043e\u00bb \u0438 \u043c\u043d\u0435 \u0438\u00a0\u0432\u0441\u0435\u043c \u043c\u043e\u0438\u043c \u043a\u043e\u043b\u043b\u0435\u0433\u0430\u043c \u0438 \u0432\u0441\u0435\u043c \u0437\u043d\u0430\u043a\u043e\u043c\u044b\u043c \u0438 \u0432\u0441\u0435\u043c \u0437\u043d\u0430\u043a\u043e\u043c\u044b\u043c \u0437\u043d\u0430\u043a\u043e\u043c\u044b\u0445, \u0434\u0430\u0436\u0435 \u0436\u0438\u0432\u0443\u0449\u0438\u0445 \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u0442\u0440\u0430\u043d\u0430\u0445 \u0438 \u0432 \u0442\u043e\u0439 \u0441\u0430\u043c\u043e\u0439 \u041a\u0430\u043b\u0438\u0444\u043e\u0440\u043d\u0438\u0438.<\/p>\n<p>\u041d\u043e \u044d\u043c\u0443\u043b\u044f\u0446\u0438\u044f \u0441\u0442\u043e\u043b\u044c \u0441\u0442\u0430\u0440\u043e\u0433\u043e \u0436\u0435\u043b\u0435\u0437\u0430\u00a0\u2014 \u043b\u0438\u0448\u044c \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u044b, \u0434\u0440\u0443\u0433\u0430\u044f \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 \u044d\u0442\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c:<\/p>\n<ul>\n<li>\n<p>UNIX v0 for the PDP-7 (circa 1969)<\/p>\n<\/li>\n<li>\n<p>Research UNIX Version 6 (circa 1975)<\/p>\n<\/li>\n<li>\n<p>BSD 2.9 (circa 1983)<\/p>\n<\/li>\n<\/ul>\n<p>\u00abCirca\u00bb \u044d\u0442\u043e \u00ab\u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e\u00bb, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0440\u0435\u0447\u044c \u043f\u0440\u043e\u00a0\u043f\u0435\u0440\u0432\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438, R&amp;D \u0438 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0435 \u0441\u0431\u043e\u0440\u043a\u0438, \u0442\u043e\u0447\u043d\u044b\u0445 \u0440\u0435\u043b\u0438\u0437\u043d\u044b\u0445 \u0434\u0430\u0442 \u0442\u0443\u0442\u00a0\u0431\u044b\u0442\u044c \u043d\u0435\u00a0\u043c\u043e\u0436\u0435\u0442.<\/p>\n<p><strong>UNIX v0<\/strong> \u044d\u0442\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u0430\u044f \u0438\u00a0\u0447\u0443\u0434\u043e\u043c \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u0430\u044f <em>\u0441\u00a0\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u044b\u0445 \u0440\u0430\u0441\u043f\u0435\u0447\u0430\u0442\u043e\u043a<\/em> (!) \u043a\u043e\u043f\u0438\u044f \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b UNIX. \u041c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u00ab\u0430\u043b\u044c\u0444\u0430-\u0432\u0435\u0440\u0441\u0438\u044f\u00bb, \u043f\u043e\u043b\u044c\u0437\u0443\u044f\u0441\u044c \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0442\u0435\u0440\u043c\u0438\u043d\u043e\u043b\u043e\u0433\u0438\u0435\u0439. <\/p>\n<p>\u041a\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a\u0430\u044f \u0440\u0430\u0441\u043f\u0435\u0447\u0430\u0442\u043a\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 \u0440\u043e\u043b\u0438\u043a\u0435 \u043d\u0438\u0436\u0435.<\/p>\n<p>\u0412\u0441\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u0441 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430\u043c\u0438 \u0438 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0441\u0441\u044b\u043b\u043a\u0430\u043c\u0438 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f <a href=\"https:\/\/retrocomputingforum.com\/t\/restoring-unix-v0-on-a-pdp-7-a-look-behind-the-scenes\/826\/2\" rel=\"noopener noreferrer nofollow\">\u0442\u0443\u0442<\/a>, \u0430 <a href=\"https:\/\/github.com\/DoctorWkt\/pdp7-unix?tab=readme-ov-file\" rel=\"noopener noreferrer nofollow\">\u0442\u0443\u0442<\/a> \u0432\u044b\u043b\u043e\u0436\u0435\u043d\u044b \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0441 \u0442\u0430\u043a\u0438\u043c \u0442\u0440\u0443\u0434\u043e\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438, \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u043e\u043c.<\/p>\n<p>\u042d\u0442\u043e\u0442 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u044f \u0442\u0430\u043a\u0436\u0435 \u0443\u0441\u043f\u0435\u043b \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c:<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0423\u0447\u0435\u0442\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u00abken\u00bb, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0430\u044f \u0434\u043b\u044f \u0432\u0445\u043e\u0434\u0430\u00a0\u2014 \u0442\u043e\u0433\u043e \u0441\u0430\u043c\u043e\u0433\u043e Ken Tompson, \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0430\u0432\u0442\u043e\u0440\u0430 UNIX, \u0441\u043f\u0440\u0430\u0432\u0430 \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0441\u043a\u0430\u043d \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0441\u043f\u0435\u0447\u0430\u0442\u043a\u0438 \u0441\u00a0\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u044b\u043c \u043b\u0438\u0441\u0442\u0438\u043d\u0433\u043e\u043c \u0438\u00a0\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u043c\u0438, \u0441\u0434\u0435\u043b\u0430\u043d\u043d\u044b\u043c\u0438 \u043b\u0438\u0447\u043d\u043e \u0440\u0443\u043a\u0430\u043c\u0438 \u041a\u0435\u043d\u0430 \u0422\u043e\u043c\u043f\u0441\u043e\u043d\u0430 (!).<\/p>\n<p>\u0420\u043e\u043b\u0438\u043a \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u043c\u043e\u0436\u043d\u043e <a href=\"https:\/\/t.me\/alex0x09\/1403\" rel=\"noopener noreferrer nofollow\">\u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c<\/a> \u043d\u0430 \u043d\u0430\u0448\u0435\u043c Telegram-\u043a\u0430\u043d\u0430\u043b\u0435, \u0430 \u0432\u043e\u0442 <a href=\"https:\/\/doc.cat-v.org\/unix\/v0\/\" rel=\"noopener noreferrer nofollow\">\u0442\u0443\u0442<\/a> \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0442\u0430\u043a\u0436\u0435 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0439 \u0447\u0435\u0440\u043d\u043e\u0432\u0438\u043a (draft) \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430 \u043f\u043e UNIX v0:<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u0418\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442 \u0431\u0435\u0448\u0435\u043d\u043e\u0439 \u043c\u043e\u0449\u0438, \u0434\u0430\u0435\u0442 +100500 \u043a \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u043c\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e.<\/figcaption><\/div>\n<\/figure>\n<p>\u041d\u043e \u043e\u0442\u043e\u0440\u0432\u0435\u043c\u0441\u044f \u043d\u0430 \u0432\u0440\u0435\u043c\u044f \u043e\u0442 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432 \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 <a href=\"https:\/\/github.com\/ioccc-src\/winner\/blob\/master\/2018\/mills\/prog.c\" rel=\"noopener noreferrer nofollow\">\u043a\u043e\u0434<\/a> \u0441\u0435\u0433\u043e \u0447\u0443\u0434\u0430:<\/p>\n<pre><code class=\"cpp\">#include&lt;fcntl.h&gt; #include&lt;unistd.h&gt; #include&lt;termios.h&gt; #include &lt;sys\/time.h&gt; #include  &lt;sys\/mman.h&gt; # define L } if(!i -- ){ struct timeval F,G; struct termios H,U={ T} ; enum{ N=64,a=N&lt;&lt;7,b=a-1,c=a*32,d =c-1,    e=c\/    2,f=    a*2,    g=a\/2,h =g\/2,j =h\/ 2,Q=V*j*5} ; char*s=P,K,M; int*      p,      l[      a]      ,m,n,J,o=A,    O=j,E,R,i,k,t,r,q,u,v,w,x,y,z ,B,C,    *D,Z    ;int    main    (){ for(D=mmap(D,4*Q,3,W,open(I,2 ),K); *s; o ++[ l]=k|=* s++%N){ k=* s++%N&lt;&lt;12; k|=*s++% N*N; } tcgetattr(q,&amp; H); tcsetattr (y,2,    &amp;U);    for(    fcntl(B,4,4); ; o&amp;=b){ if(k&amp;    c){ q=- --k%N; if(!q) k-=c      ;i      =k      \/N&amp;7; { L L if(J&amp;1)    m+=      t; J|=m%N*c; J\/=2; m \/= 2;    if(!    q&amp;&amp;r    ^n){ m^=d; J^= d; n=0; } L L    J+=J; J|=m&gt;=0; if(q){ m+=m; m|=J\/c; m+=m&lt;0?t:-t; } else{ m+=(m&lt;0)*t; if(r)m^=d; if(n^r)J^= d; n=0; } L if(    (m^2    *m)\/    e%2)    k&amp;=d; else{ J+=J; m+=m; m|=J\/c; } L m|=n*c; J |= m      %N      *c      ;m      \/=2; J \/=2;    L m+=m; J+=J; J|=n; m|=J\/c; L m+=m;    m|=n    ;  }    J&amp;=d    ; } else{ i=k\/f; t=i?k&amp;b:16; p=l+t; if(k&amp;a)p= l+((*p+=13&gt;i&amp;&amp;7&lt;t&amp;&amp;16&gt;t)&amp;b); { L i=1; L*p=m; L*p++=o|n*e; o=p-l; L*p=0; L m=*p ; L m ^=*p ; L t=m; m    +=*p; m+=d&lt;m    ; n|=((m^t)&amp;    (m^*p))\/e; L    m+=*p ; n=m\/c; L k=*p; if(      !Z||k\/f-8)      \/*$    %*\/      continue ;      k=-k ; L++*p; o +=!(*p&amp;=d)    ; L m&amp;=*p; L     if(m!=*p)++    o; L o=p -l;    L if( k&amp;a)n=m\/e; if(k&amp;g)J= 0; r=k&amp;h&amp;&amp;m&amp;e; if(k&amp;j)J|=m; else if(r)m^=d; if(k&amp;512)m=0; i=k\/N    &amp;7; { L if(k    &amp;4)J    ^=d; if(k&amp;2)m|=J; if    (k&amp;1    )m|=    q;  } else      { if(k%N)k      +=      c; { L t =o    ++[      l]      ;       if(r )J^=d;   L L t=o++[l];   if(r    )J^=d; m-=t; if(m&gt;=0    ){ k    -=c;     n=1; ++o; } } i=2; } L if(Z)k=-1; else{ if(k&amp;8)m=0; t=r=0; i=k\/N%N; if(i==27){ if(k &amp;2)u=v=w=Z=0;    } if    (i==57){ i=k\/16&amp;3; { L w =1;    if(k&amp;1)x =0;    if(k&amp; 2) { t= z\/N;      t=      t\/80*\/*\/*\/100+t% 80;   r=0      ; while(t)      {  r +=t%10*w; t\/=    10;w    &lt;&lt;=4; } m|=r; } if(k&amp;4){ r=m    ; t=0; while    (r) { t+=r%16*w; w*=10; r&gt;&gt;=4; } r=t\/100; t%=100; if(V&lt;=r||79&lt;t)x|=c\/8; else z=(r*80 +t)*N    ;  }    w=0;    L if(k&amp; 1&amp;&amp;x    &amp;(e|g) )++o;    if(k&amp; 2)m|=x    |y;if (k&amp;4      )C      =-      m&amp;65535; L      if(    k&amp;1      )x=y=0; if      (k&amp;2 )B=m;    if (    k&amp;4)    { y^=m&amp;(h|j|    j\/2); if(y&amp;j    ){ y^=j;x|=g    ; do{ B&amp;=b; if(y&amp;j\/2)z[D]=B[l]; else B[l]=z[D]; ++z; z%=Q; ++B; } while(-- C); } } } x%=e;    if(x    \/a)x    |=e;    if(x&amp;(e|g)&amp;&amp;y&amp;h)u|=c    ; else u%=c;    L if( k&amp;1)      t=      h;      if      (k&amp;2 )r= e;    if(      k&amp;4){ r=j;      u&amp;=~ h ; }    if(k    &amp;16)    Z=f*    2; L L L t=f; if(k&amp;2    )m|=M|Y; if(    k&amp;4)m |=u|v; L t=a; if(k&amp;4){ K=m&amp;~Y; write(1,&amp;K,1); u|=t; t=0; } } i=2; if(t){ if(k&amp; 1&amp;&amp;u&amp;t)++ o; if(k&amp;2)u    &amp;=~ t; } if(    r){ if(k&amp;32)    w=r;    else v&amp;=~r; } } L if(k&amp;a)m=k; else      { t=0; if(      k &amp;    N)t      |=      m\/e%2; if(k&amp; 128)t|=!m; if(k&amp;256)t    |= n; if( k&amp;    512 )t=!t; o    +=t;    if(k&amp; h)n =0; if(k&amp;g)m=0; if(k&amp;1)m^=d; if(k&amp;2)n^=1; if(k&amp;4)m|=S; if(k&amp;8){ m|=n*c; m+=m; if(k &amp; j)m    +=m;    m|=m    \/a\/N    ; n=m\/c; } if(k&amp;16){ m|=n*c;    m|=m    *2%N* c; m      \/=      2;      if      (k&amp;j) m\/=2;    n=m\/c; } if      (k      &amp;32) { if(    Z)k=    -1 ;    else    break; } } } } n&amp;=1; if(k&lt;c)    {  m    &amp;= d; o &amp;=b; if(!R--){ if (~u&amp;f &amp;&amp;read(0, &amp;M,1)&gt;0){ if(X&amp;&amp; M== X)break; R=0; u|=f; } gettimeofday(&amp;G,0); G.tv_usec\/=16667; if(G.tv_sec&gt;F.tv_sec||F.tv_usec&lt;G. tv_usec){ F=G; if(v&amp;j){ p=l+7; ++*p; *p&amp;=d; if(!*p)u|=h; } R=0; } if (!R){ E=O\/4; O=4; } O+=R=E; } if(!++k||(v&amp;e&amp;&amp;u)){ *l=o|n*e|Z;v%= e; o=1+!k; Z=0; } v|=w; w=0; k=o++[l]; } }tcsetattr(w,1,&amp;H); }<\/code><\/pre>\n<p>\u0414\u043b\u044f \u044e\u043d\u043e\u0433\u043e \u043f\u043e\u043a\u043e\u043b\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u044d\u0442\u043e \u043d\u0435\u00a0\u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u043d\u043e\u00a0\u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u0434\u0430 \u0442\u0443\u0442 \u0441\u0442\u0438\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e \u043f\u043e\u0434 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9F%D0%B5%D1%80%D1%84%D0%BE%D0%BA%D0%B0%D1%80%D1%82%D0%B0\" rel=\"noopener noreferrer nofollow\">\u043f\u0435\u0440\u0444\u043e\u043a\u0430\u0440\u0442\u0443<\/a>, \u043e\u0442\u0441\u044e\u0434\u0430 \u0438\u00a0\u0442\u0430\u043a\u0438\u0435 \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u00ab\u0434\u044b\u0440\u043a\u0438\u00bb:<\/p>\n<blockquote>\n<p>The ASCII art represents a torn piece of <a href=\"https:\/\/en.wikipedia.org\/wiki\/Punched_tape\" rel=\"noopener noreferrer nofollow\">paper tape<\/a>.<\/p>\n<\/blockquote>\n<p>\u0418 \u0434\u0430, \u044d\u0442\u043e <strong>\u0432\u0435\u0441\u044c<\/strong> \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434, \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044e\u0449\u0438\u0439 \u0437\u0430\u043f\u0443\u0441\u043a \u0430\u0436 \u0442\u0440\u0435\u0445 \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u041e\u0421 \u043d\u0430 \u044d\u043c\u0443\u043b\u0438\u0440\u0443\u0435\u043c\u043e\u043c \u0436\u0435\u043b\u0435\u0437\u0435 \u0434\u0432\u0443\u0445 \u0440\u0430\u0437\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043e\u0432 \u0438\u0437 1980\u0445: PDP-7 \u0438 PDP-11.<\/p>\n<h3>\u0421\u0431\u043e\u0440\u043a\u0430<\/h3>\n<p>\u0421\u0431\u043e\u0440\u043a\u0430 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a \u043d\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0432 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u043c \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0438 \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043d\u0435\u0442 \u0430 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u044b\u0439.<\/p>\n<blockquote>\n<p>\u0410\u0432\u0442\u043e\u0440 \u0441\u043e\u0431\u0438\u0440\u0430\u043b \u043d\u0430 FreeBSD 14 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e GCC 13, \u0442\u0430\u043a \u0447\u0442\u043e \u043d\u0430 \u043b\u044e\u0431\u043e\u043c Linux \u0442\u043e\u0447\u043d\u043e \u0441\u043e\u0431\u0435\u0440\u0435\u0442\u0441\u044f \u0431\u0435\u0437 \u043f\u0440\u043e\u0431\u043b\u0435\u043c.<\/p>\n<\/blockquote>\n<p>\u0412\u0441\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u044b-\u043f\u043e\u0431\u0435\u0434\u0438\u0442\u0435\u043b\u0438 IOCCC \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 <a href=\"https:\/\/github.com\/ioccc-src\/winner\" rel=\"noopener noreferrer nofollow\">\u043e\u0434\u043d\u043e\u043c \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438<\/a> \u043d\u0430 Github, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0437\u0430\u0431\u0438\u0440\u0430\u0442\u044c \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0442\u0430\u043a\u0436\u0435 \u0432\u0441\u0435 \u0446\u0435\u043b\u0438\u043a\u043e\u043c:<\/p>\n<pre><code class=\"bash\">git clone https:\/\/github.com\/ioccc-src\/winner.git<\/code><\/pre>\n<p>\u041d\u0443\u0436\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 <code>2018\/mills<\/code>.<\/p>\n<p>\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u044b \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0430\u0440\u0445\u0438\u0432 \u0441\u043e <a href=\"https:\/\/www.ioccc.org\/2018\/mills\/\" rel=\"noopener noreferrer nofollow\">\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b<\/a> \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 IOCCC, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u043e\u0439 \u044d\u0442\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u0435 (\u0441\u0441\u044b\u043b\u043a\u0438 \u0432 \u0441\u0430\u043c\u043e\u043c \u043d\u0438\u0437\u0443).<\/p>\n<p>\u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u0431\u043e\u0440\u043a\u0438 \u043f\u043e\u0434 FreeBSD \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0432 \u0444\u0430\u0439\u043b\u0435 <a href=\"http:\/\/var.mk\" rel=\"noopener noreferrer nofollow\"><strong>var.mk<\/strong><\/a> \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 GCC:<\/p>\n<pre><code class=\"bash\">GCC=gcc13<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432 FreeBSD gcc \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u043c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u043c \u0438 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441 \u043f\u043e\u0441\u0442\u0444\u0438\u043a\u0441\u043e\u043c \u0432\u0435\u0440\u0441\u0438\u0438.<\/p>\n<p>\u0421\u0430\u043c\u0430 \u0441\u0431\u043e\u0440\u043a\u0430 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e GNU Make:<\/p>\n<pre><code class=\"bash\">gmake<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b, \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043f\u043e\u044f\u0432\u044f\u0442\u0441\u044f \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0438 <code>prog<\/code>, <code>v0<\/code> \u0438 <code>v6<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0438 \u0431\u0443\u0434\u0435\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c:<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0422\u0440\u0438 \u0440\u0430\u0437\u043d\u044b\u0445 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0430 \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043e\u0434\u043d\u043e \u0438 \u0442\u043e \u0436\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c\u043e\u0435 \u0441 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430\u043c\u0438 \u0438 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u044b\u043c\u0438 \u043e\u0431\u0440\u0430\u0437\u0430\u043c\u0438, \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u043c\u0438 \u0432 \u043a\u043e\u0434 \u043f\u0440\u0438 \u0441\u0431\u043e\u0440\u043a\u0435.<\/p>\n<h3>UNIX v0<\/h3>\n<p>\u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 PDP-7 \u0441 \u043d\u0443\u043b\u0435\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0435\u0439 Unix \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c:<\/p>\n<pre><code class=\"bash\">.\/v0<\/code><\/pre>\n<p>\u0427\u0435\u0440\u0435\u0437 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438, \u0433\u0434\u0435 \u043d\u0430\u0434\u043e \u0432\u0432\u0435\u0441\u0442\u0438 <code>dmr<\/code> \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043b\u043e\u0433\u0438\u043d\u0430 \u0438 \u043f\u0430\u0440\u043e\u043b\u044f.<\/p>\n<p>\u0414\u0430, \u044d\u0442\u043e \u0443\u0447\u0435\u0442\u043a\u0430 \u0442\u043e\u0433\u043e \u0441\u0430\u043c\u043e\u0433\u043e <a href=\"https:\/\/en.wikipedia.org\/wiki\/Dennis_Ritchie\" rel=\"noopener noreferrer nofollow\">Dennis Ritchie<\/a>, \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u0430\u0432\u0442\u043e\u0440\u043e\u0432 UNIX, \u0447\u044c\u044e \u043f\u043e\u0434\u043f\u0438\u0441\u044c \u0432\u044b \u043c\u043e\u0433\u043b\u0438 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u0432\u044b\u0448\u0435 \u043d\u0430 \u0441\u043a\u0430\u043d\u0435 \u0447\u0435\u0440\u043d\u043e\u0432\u0438\u043a\u0430 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430.<\/p>\n<figure class=\"full-width\">\n<div><figcaption><strong>Dennis MacAlistair Ritchie<\/strong> (September 9, 1941 \u2013 c. October 12, 2011)<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u0441\u0435 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u0435 \u0448\u0430\u0433\u0438 \u043f\u043e\u00a0\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u00abHello World\u00bb \u043d\u0430\u00a0\u043f\u0440\u0435\u0434\u043a\u0435 \u0421\u00a0\u2014 <a href=\"https:\/\/en.wikipedia.org\/wiki\/B_(programming_language)\" rel=\"noopener noreferrer nofollow\">\u044f\u0437\u044b\u043a\u0435 B<\/a>\u00a0\u0432\u00a0<em>\u043d\u0443\u043b\u0435\u0432\u043e\u0439<\/em> \u0432\u0435\u0440\u0441\u0438\u0438 UNIX \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0432 \u0437\u0430\u043f\u0438\u0441\u0438 \u043d\u0438\u0436\u0435: <\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0414\u043b\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0438 \u0430\u0442\u043c\u043e\u0441\u0444\u0435\u0440\u043d\u043e\u0441\u0442\u0438, \u043f\u043e\u043a\u0430\u0436\u0443 \u043a\u0430\u043a \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b\u043e \u043d\u0430 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u043c PDP-7:<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u041f\u0440\u0438\u0434\u0435\u043b\u0430\u0442\u044c \u043a \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0443 \u043c\u043e\u043d\u0438\u0442\u043e\u0440 \u0434\u043e\u0433\u0430\u0434\u0430\u043b\u0438\u0441\u044c \u0434\u0430\u043b\u0435\u043a\u043e \u043d\u0435 \u0441\u0440\u0430\u0437\u0443.<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u043d\u0435\u0437\u0430\u043f\u043d\u043e \u0432\u0441\u043f\u043b\u044b\u0432\u0430\u0435\u0442 \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 \u043d\u044e\u0430\u043d\u0441:<\/p>\n<blockquote>\n<p>Thompson\u2019s assembler <\/p>\n<\/blockquote>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-469419","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/469419","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=469419"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/469419\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=469419"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=469419"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=469419"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}