{"id":471083,"date":"2025-08-18T09:00:45","date_gmt":"2025-08-18T09:00:45","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=471083"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=471083","title":{"rendered":"<span>\u0422\u0435\u0440\u044f\u0435\u043c \u043d\u0435\u0432\u0438\u043d\u043d\u043e\u0441\u0442\u044c \u0441 \u0422\u0430\u043d\u0435\u043d\u0431\u0430\u0443\u043c\u043e\u043c: Amsterdam Compiler Kit<\/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\u043e\u043a\u0430 \u0432\u044b\u00a0\u0440\u043e\u0436\u0434\u0430\u043b\u0438\u0441\u044c, \u0445\u043e\u0434\u0438\u043b\u0438 \u0432\u00a0\u0448\u043a\u043e\u043b\u0443, \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u043b\u0438 \u0443\u0447\u0435\u0431\u0443 \u0438\u00a0\u0432\u044b\u0445\u043e\u0434\u0438\u043b\u0438 \u043d\u0430 \u0441\u0432\u043e\u044e \u043f\u0435\u0440\u0432\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443,\u00a0\u043d\u0430\u00a0\u0441\u0432\u0435\u0442\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043b \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u044b\u0439 <a href=\"https:\/\/tack.sourceforge.net\/about.html\" rel=\"noopener noreferrer nofollow\">\u043d\u0430\u0431\u043e\u0440 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u0432<\/a>, \u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043a\u0440\u0430\u0439\u043d\u0435 \u043c\u0430\u043b\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e \u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u043e\u0440\u0430\u0445 \u0420\u0424. <\/p>\n<p>\u0418\u043c\u0435\u043d\u043d\u043e \u043e \u043d\u0435\u043c \u043f\u043e\u0439\u0434\u0435\u0442 \u0441\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u0438\u0439 \u0440\u0430\u0441\u0441\u043a\u0430\u0437.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/329\/20a\/34a\/32920a34a41d1f5a3778520fcd6795da.gif\" alt=\"\u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u0421\u0438 \u0438\u0437-\u043f\u043e\u0434 FreeBSD \u0432.. MS-DOS. \u0412 2025\u043c \u0433\u043e\u0434\u0443.\" title=\"\u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u0421\u0438 \u0438\u0437-\u043f\u043e\u0434 FreeBSD \u0432.. MS-DOS. \u0412 2025\u043c \u0433\u043e\u0434\u0443.\" width=\"800\" height=\"450\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/329\/20a\/34a\/32920a34a41d1f5a3778520fcd6795da.gif 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/329\/20a\/34a\/32920a34a41d1f5a3778520fcd6795da.gif 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u0421\u0438 \u0438\u0437-\u043f\u043e\u0434 FreeBSD \u0432.. MS-DOS. \u0412 2025\u043c \u0433\u043e\u0434\u0443.<\/figcaption><\/div>\n<\/figure>\n<h3>Amsterdam Compiler Kit<\/h3>\n<p>\u0412\u0440\u044f\u0434\u043b\u0438 \u0441\u0440\u0435\u0434\u0438 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442\u0441\u044f <s>\u0430\u043a\u0441\u0430\u043a\u0430\u043b<\/s> \u0436\u0438\u0432\u043e\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\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:<\/p>\n<blockquote>\n<p>The Amsterdam Compiler Kit is a venerable piece of software that dates back to the early 1980s. It was originally written by <a href=\"http:\/\/www.cs.vu.nl\/%7East\" rel=\"noopener noreferrer nofollow\">Andrew Tanenbaum<\/a> and <a href=\"http:\/\/www.cs.vu.nl\/%7Eceriel\" rel=\"noopener noreferrer nofollow\">Ceriel Jacobs<\/a> as a commercial product; for many years it was also used as Minix\u2019 native toolchain. After eventually failing as a commercial project, it was made open source under a BSD license in 2003 when it looked like it was going to be abandoned and the code lost.<\/p>\n<\/blockquote>\n<p>\u0421\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u0435 \u00ab\u043d\u0430\u0447\u0430\u043b\u043e 80\u0445\u00bb \u0438\u00a0\u00ab\u043a\u043e\u043c\u043c\u0435\u0440\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u00bb \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043c\u0430\u043b\u043e \u0448\u0430\u043d\u0441\u043e\u0432 \u043d\u0430\u00a0\u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 ACK \u0432 \u0440\u043e\u0434\u043d\u044b\u0445 \u043a\u0440\u0430\u044f\u0445, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432\u00a080\u0435 \u0435\u0449\u0435 \u0432\u043e\u0432\u0441\u044e \u0436\u0438\u043b \u0421\u0421\u0421\u0420 \u0438 \u0432\u043e\u043f\u0440\u043e\u0441 \u043f\u043e\u043a\u0443\u043f\u043a\u0438 <em>\u0438\u043d\u043e\u0441\u0442\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f<\/em>\u00a0\u0431\u044b\u043b \u043c\u044f\u0433\u043a\u043e \u0433\u043e\u0432\u043e\u0440\u044f \u043d\u0435\u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435, \u0447\u0442\u043e \u0442\u0430\u043c \u0432\u043d\u0443\u0442\u0440\u0438 \u0438 \u043f\u043e\u0447\u0435\u043c\u0443 \u043e\u043d\u043e \u0434\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 <s>\u0448\u0435\u0432\u0435\u043b\u0438\u0442\u0441\u044f<\/s> \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441:<\/p>\n<blockquote>\n<p>The ACK contains compilers for ANSI C, K&amp;R C, Pascal, Modula-2, Occam 1, and a primitive Basic. It contains code generators for a large number of architectures, mostly 8 and 16 bit machines; there are also a set of generic optimisation, linker and librarian tools. <\/p>\n<\/blockquote>\n<p>\u0412 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u044f\u0437\u044b\u043a\u043e\u0432 \u0434\u043b\u044f \u0442\u0435\u0445 \u043b\u0435\u0442, \u043d\u043e \u0435\u0441\u0442\u044c <strong>\u043d\u044e\u0430\u043d\u0441<\/strong>:<\/p>\n<blockquote>\n<p>It contains assembler and linker support for: 6500, 6800, 6805, 6809, ARM, i80, Z80, Z8000, i86, i386, 68000, 68020, NS32016, S2650, SPARC, VAX, PDP11 and VideoCore IV.<\/p>\n<\/blockquote>\n<p>\u042d\u0442\u043e \u0443\u0436\u0435 \u043d\u0435\u0441\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u00ab\u0432\u0430\u0443-\u044d\u0444\u0444\u0435\u043a\u0442\u00bb, \u043f\u0440\u0438\u0447\u0435\u043c \u043a\u0430\u043a \u0434\u043b\u044f \u0442\u0435\u0445 \u0442\u0430\u043a \u0438\u00a0\u0434\u043b\u044f \u044d\u0442\u0438\u0445\u00a0\u043b\u0435\u0442, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0434\u0430\u0436\u0435 \u0434\u043b\u044f \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 <code>clang<\/code> \u0438 <code>gcc<\/code> \u0441\u0442\u043e\u043b\u044c \u0448\u0438\u0440\u043e\u043a\u0430\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440 \u0440\u0435\u0448\u0430\u0435\u0442\u0441\u044f \u043f\u0443\u0442\u0435\u043c \u0444\u043e\u0440\u043a\u043e\u0432 \u0438 \u043d\u0435\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0430\u0442\u0447\u0435\u0439.<\/p>\n<p>\u0412\u00a0\u043c\u0435\u0439\u043d\u0441\u0442\u0440\u0438\u043c\u0435 \u0438 \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u043f\u0430\u043a\u0435\u0442\u0430\u0445 \u0441\u0442\u043e\u043b\u044c \u0434\u0438\u043a\u043e\u0433\u043e \u043d\u0430\u0431\u043e\u0440\u0430 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440 \u0440\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f \u043d\u0435\u0442, \u043f\u0440\u0438\u00a0\u044d\u0442\u043e\u043c \u0441\u0438\u043b\u044c\u043d\u043e \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0435 \u0435\u0449\u0435 \u0438 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e \u043b\u043e\u043c\u0430\u044e\u0442, \u0430\u00a0\u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435\u00a0\u0432\u043e\u043e\u0431\u0449\u0435 \u0443\u0434\u0430\u043b\u044f\u044e\u0442.<\/p>\n<p>\u0421\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f ACK, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441 2003 \u0433\u043e\u0434\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b: <\/p>\n<blockquote>\n<p>pc86, linux386, linux68k, linuxppc, linuxmips, cpm, rpi (VideoCore IV), pdpv7, msdos86 and msdos386.<\/p>\n<\/blockquote>\n<p>\u041b\u0438\u0447\u043d\u043e \u0443\u00a0\u043c\u0435\u043d\u044f \u0433\u043b\u0430\u0437 \u043d\u0430\u0447\u0430\u043b \u0434\u0435\u0440\u0433\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0441\u043b\u0435 <code>cpm<\/code> \u0438\u00a0<code>pdpv7<\/code>, <code>msdos86<\/code> \u043f\u043e\u00a0\u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441\u00a0\u044d\u0442\u0438\u043c\u00a0\u0443\u0436\u0435 \u0442\u0432\u043e\u0440\u0447\u0435\u0441\u043a\u0438\u0435 \u043c\u0435\u043b\u043e\u0447\u0438.<\/p>\n<p>\u0414\u043b\u044f \u044e\u043d\u044b\u0445 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439, \u043d\u0435 \u0437\u0430\u0441\u0442\u0430\u0432\u0448\u0438\u0445 \u0434\u0430\u0436\u0435 \u0434\u0438\u0441\u043a\u0435\u0442 \u0441\u0442\u043e\u0438\u0442 \u043f\u043e\u044f\u0441\u043d\u0438\u0442\u044c, \u0447\u0442\u043e <a href=\"https:\/\/en.wikipedia.org\/wiki\/CP\/M\" rel=\"noopener noreferrer nofollow\">CP\/M<\/a> \u044d\u0442\u043e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0438\u0437 1970\u0445, \u0434\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a\u0438\u0445 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043e\u0432:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/6bc\/6a8\/627\/6bc6a86275abd2d9ca9f1a29da54d6fd.jpeg\" alt=\"\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0448\u0438\u0440\u0438\u043d\u0443 \u0434\u0438\u0441\u043a\u043e\u0432\u043e\u0434\u0430, \u044d\u0442\u043e \u0435\u0449\u0435 3'5 \u0434\u0438\u0441\u043a\u0435\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u0434\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0430 1'44\" title=\"\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0448\u0438\u0440\u0438\u043d\u0443 \u0434\u0438\u0441\u043a\u043e\u0432\u043e\u0434\u0430, \u044d\u0442\u043e \u0435\u0449\u0435 3'5 \u0434\u0438\u0441\u043a\u0435\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u0434\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0430 1'44\" width=\"800\" height=\"450\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/6bc\/6a8\/627\/6bc6a86275abd2d9ca9f1a29da54d6fd.jpeg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/6bc\/6a8\/627\/6bc6a86275abd2d9ca9f1a29da54d6fd.jpeg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0448\u0438\u0440\u0438\u043d\u0443 \u0434\u0438\u0441\u043a\u043e\u0432\u043e\u0434\u0430, \u044d\u0442\u043e \u0435\u0449\u0435 3&#8217;5 \u0434\u0438\u0441\u043a\u0435\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u0434\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0430 1&#8217;44<\/figcaption><\/div>\n<\/figure>\n<p>\u041a\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 <a href=\"https:\/\/en.wikipedia.org\/wiki\/PDP-7\" rel=\"noopener noreferrer nofollow\">PDP-7<\/a> \u0443\u0436\u0435 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u043b \u0432 <a href=\"https:\/\/habr.com\/ru\/articles\/933526\/\" rel=\"noopener noreferrer nofollow\">\u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435<\/a>, \u043d\u043e \u043d\u0430 \u0432\u0441\u044f\u043a\u0438\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 \u043d\u0430\u043f\u043e\u043c\u043d\u044e:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/78c\/49a\/74b\/78c49a74b11ab542b279d8939a5ddde2.jpeg\" alt=\"\u041a\u043e\u0433\u0434\u0430-\u0442\u043e \u044d\u0442\u043e \u043d\u0430\u0437\u044b\u0432\u0430\u043b\u0438 &quot;\u043c\u0438\u043d\u0438-\u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043e\u043c&quot;\" title=\"\u041a\u043e\u0433\u0434\u0430-\u0442\u043e \u044d\u0442\u043e \u043d\u0430\u0437\u044b\u0432\u0430\u043b\u0438 &quot;\u043c\u0438\u043d\u0438-\u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043e\u043c&quot;\" width=\"800\" height=\"600\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/78c\/49a\/74b\/78c49a74b11ab542b279d8939a5ddde2.jpeg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/78c\/49a\/74b\/78c49a74b11ab542b279d8939a5ddde2.jpeg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u041a\u043e\u0433\u0434\u0430-\u0442\u043e \u044d\u0442\u043e \u043d\u0430\u0437\u044b\u0432\u0430\u043b\u0438 &#171;\u043c\u0438\u043d\u0438-\u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043e\u043c&#187;<\/figcaption><\/div>\n<\/figure>\n<p>\u0418 ACK \u0434\u0430\u0435\u0442 \u0432\u0430\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u043c \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0438 \u0432 2025\u043c \u0433\u043e\u0434\u0443, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430 <strong>\u044d\u0442\u043e\u043c<\/strong>.<\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0443 \u0432\u0430\u0441 \u043d\u0435 \u0441\u043b\u043e\u0436\u0438\u043b\u043e\u0441\u044c \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u0435\u043d\u0438\u0435, \u0431\u0443\u0434\u0442\u043e ACK \u044d\u0442\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043b\u0438\u0448\u044c \u043f\u0440\u043e <s>\u043f\u043b\u0435\u0448\u0438\u0432\u044b\u0445 \u0434\u0435\u0434\u043e\u0432<\/s> \u043f\u043e\u0436\u0438\u043b\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432 \u0438 \u0438\u0445 \u0434\u0440\u0435\u0432\u043d\u0438\u0435 \u0438\u0433\u0440\u0443\u0448\u043a\u0438, \u043f\u043e\u043a\u0430\u0436\u0443 \u043a\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0437\u0430\u044f\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0432\u044b\u0448\u0435 <a href=\"https:\/\/en.wikipedia.org\/wiki\/VideoCore\" rel=\"noopener noreferrer nofollow\">VideoCore IV<\/a>:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/dab\/47b\/add\/dab47badd57b35bdb373e93bc75b2369.jpeg\" width=\"1024\" height=\"813\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/dab\/47b\/add\/dab47badd57b35bdb373e93bc75b2369.jpeg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/dab\/47b\/add\/dab47badd57b35bdb373e93bc75b2369.jpeg 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435 \u044d\u0442\u043e \u0443\u0436\u0435 \u0432\u043f\u043e\u043b\u043d\u0435 \u0441\u0435\u0431\u0435 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u043f\u043b\u0430\u0442\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0430\u044f \u0432 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445.<\/p>\n<h4>Minix<\/h4>\n<p>\u041e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0441\u0442\u043e\u0438\u0442 \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044c \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0441\u00a0<a href=\"https:\/\/www.minix3.org\/\" rel=\"noopener noreferrer nofollow\">Minix<\/a>\u00a0\u2014 \u0442\u043e\u0439\u00a0\u0441\u0430\u043c\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439, <a href=\"https:\/\/minix1.woodhull.com\/osdi2\/\" rel=\"noopener noreferrer nofollow\">\u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0439 \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u0422\u0430\u043d\u0435\u043d\u0431\u0430\u0443\u043c\u043e\u043c<\/a> \u0434\u043b\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043d\u0435\u0440\u0430\u0434\u0438\u0432\u044b\u0445 \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432 \u0441\u043b\u043e\u0436\u043d\u043e\u0439 \u0442\u0435\u043c\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c.<\/p>\n<blockquote>\n<p>\u0412 \u043f\u043e\u0447\u0442\u043e\u0432\u043e\u0439 \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0435, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u043e\u0439 \u044d\u0442\u043e\u0439 \u041e\u0421 \u043a\u043e\u0433\u0434\u0430-\u0442\u043e \u0434\u0430\u0432\u043d\u043e \u043d\u0435\u043a\u0438\u0439 \u041b\u0438\u043d\u0443\u0441 \u0422\u043e\u0440\u0432\u0430\u043b\u044c\u0434\u0441 \u0432\u043f\u0435\u0440\u0432\u044b\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u0441\u0432\u043e\u0439 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442, \u0432\u044b\u0437\u0432\u0430\u0432\u0448\u0438\u0439 \u044d\u043f\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u044b\u0439 <s>\u0441\u0440\u0430\u0447<\/s> \u0434\u0438\u0441\u043a\u0443\u0440\u0441, \u043d\u044b\u043d\u0435 \u044f\u0432\u043b\u044f\u044e\u0449\u0438\u0439\u0441\u044f <a href=\"https:\/\/en.wikipedia.org\/wiki\/Tanenbaum%E2%80%93Torvalds%5C_debate\" rel=\"noopener noreferrer nofollow\">\u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0441\u043e\u0431\u044b\u0442\u0438\u0435\u043c<\/a>.<\/p>\n<\/blockquote>\n<p>\u0414\u0435\u043b\u043e \u0432\u00a0\u0442\u043e\u043c, \u0447\u0442\u043e ACK \u043a\u043e\u0433\u0434\u0430-\u0442\u043e \u0431\u044b\u043b \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u043c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u043c \u0432\u00a0Minix, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u044f\u0432\u043b\u044f\u044f\u0441\u044c \u043a\u043e\u043c\u043c\u0435\u0440\u0447\u0435\u0441\u043a\u0438\u043c \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u043c\u00a0\u2014 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u043b\u0441\u044f \u0432\u00a0\u0432\u0438\u0434\u0435 \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u043e\u0432:<\/p>\n<blockquote>\n<p>The ACK has been used as the standard Minix compiler for years. While the ACK was still commercial, this was done by distributing binaries; when it get opened, a version was forked off and is now used as part of the Minix base build.<\/p>\n<\/blockquote>\n<p>\u0424\u043e\u0440\u043a \u0441\u00a0\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 Minix \u043c\u043d\u0435 \u0431\u044b\u043b \u043d\u0435\u00a0\u043e\u0441\u043e\u0431\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0435\u043d, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438\u0441\u043a\u0430\u0442\u044c \u043d\u0435\u00a0\u0441\u0442\u0430\u043b, \u0442\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u0447\u0442\u043e \u0432\u00a0\u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 Minix 3 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432\u043f\u043e\u043b\u043d\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 clang. <\/p>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e \u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0435 \u0441\u0442\u043e\u043b\u044c \u0448\u0438\u0440\u043e\u043a\u043e\u0433\u043e \u043d\u0430\u0431\u043e\u0440\u0430 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 ACK \u043d\u0435 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0438 \u0447\u0442\u043e\u0431\u044b \u0434\u043e\u0431\u0438\u0442\u044c \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u0436\u043d\u0443\u044e \u043f\u0441\u0438\u0445\u0438\u043a\u0443 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \u043f\u0440\u043e\u0446\u0438\u0442\u0438\u0440\u0443\u044e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0430\u0431\u0437\u0430\u0446:<\/p>\n<blockquote>\n<p>Each language comes with its own runtime, so if you\u2019re a C programmer you also get a libc. Compared to gcc, it is far smaller, faster and easier to port.<\/p>\n<\/blockquote>\n<p>\u0421\u0442\u043e\u0438\u043b\u043e \u0434\u043e\u0433\u0430\u0434\u0430\u0442\u044c\u0441\u044f \u043e\u0431 \u044d\u0442\u043e\u043c, \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0432 \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440 \u0438 \u043f\u0440\u0438\u043a\u0438\u043d\u0443\u0432 \u043a\u0430\u043a \u043e\u043d\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u043d\u043e \u0442\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435.<\/p>\n<p>\u0422\u0430\u043a \u0447\u0442\u043e ACK \u044d\u0442\u043e \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439, \u0440\u0435\u0434\u043a\u0438\u0439 \u0438 \u043d\u0435\u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u0442\u0432\u043e\u0440\u0438\u0442\u044c \u0437\u0430\u043f\u0440\u0435\u0434\u0435\u043b\u044c\u043d\u0443\u044e \u0434\u0438\u0447\u044c \u0432\u0440\u043e\u0434\u0435 \u043a\u0440\u043e\u0441\u0441-\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0438\u0437 FreeBSD \u0432 MS-DOS \u043f\u043e\u0434\u0440\u0443\u0447\u043d\u044b\u043c\u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0432\u044b \u043c\u043e\u0433\u043b\u0438 \u0432\u0438\u0434\u0435\u0442\u044c \u0432 \u0448\u0430\u043f\u043a\u0435 \u0441\u0442\u0430\u0442\u044c\u0438.<\/p>\n<p>\u041d\u0438\u0436\u0435 \u044f \u043e\u043f\u0438\u0448\u0443 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0441\u0431\u043e\u0440\u043a\u0438 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430.<\/p>\n<h3>\u0421\u0431\u043e\u0440\u043a\u0430<\/h3>\n<p>\u0421\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0431\u0443\u0434\u0443 <s>\u043f\u043e \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u0438<\/s> \u043d\u0430 FreeBSD 14, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0447\u0430\u0441\u0442\u044c \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0445 \u0448\u0430\u0433\u043e\u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445.<\/p>\n<p>\u041f\u0440\u043e\u0435\u043a\u0442 \u0441\u0442\u0430\u0440\u044b\u0439, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0432 git \u0432\u0435\u0434\u0435\u0442\u0441\u044f \u0434\u0430\u0432\u043d\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u043d\u0443\u0442\u0440\u0438 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0440\u0430\u0437\u043d\u044b\u0445 \u0432\u0435\u0442\u043e\u043a, \u043d\u0435 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u0434\u043b\u044f \u043e\u0431\u044b\u0432\u0430\u0442\u0435\u043b\u044f. <\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u043d\u0435 \u0432\u044b\u043a\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u0432\u0441\u044e \u044d\u0442\u0443 \u0434\u0438\u0447\u044c, \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u043a\u043b\u044e\u0447 <code>--depth -1<\/code>, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u0440\u0443\u0436\u0435\u043d\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u0435\u0442\u043a\u0430 \u043f\u043e-\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e:<\/p>\n<pre><code class=\"bash\">git clone --depth 1 https:\/\/github.com\/davidgiven\/ack.git<\/code><\/pre>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0443\u044e 6.0 \u0432\u0435\u0440\u0441\u0438\u044e:<\/p>\n<blockquote>\n<p>ACK 6.0 is a ground-up reworking of the whole compiler suite, with a lot of the more archaic features removed.<\/p>\n<\/blockquote>\n<p>\u0421\u0431\u043e\u0440\u043a\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430.. \u0432\u0435\u0441\u044c\u043c\u0430 \u0441\u0432\u043e\u0435\u043e\u0431\u0440\u0430\u0437\u043d\u0430, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0430 \u043d\u0430 \u0441\u043a\u0440\u0438\u043f\u0442\u0430\u0445 Python \u0438 \u043d\u0435\u043c\u043d\u043e\u0433\u043e Lua. \u041a\u0430\u043a \u0433\u043b\u0430\u0441\u0438\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435:<\/p>\n<blockquote>\n<p>The version 5.0 build mechanism has been completely rewritten (twice).<\/p>\n<\/blockquote>\n<p>\u0418 \u0432\u0438\u0434\u0438\u043c\u043e \u044d\u0442\u043e \u0435\u0449\u0435 \u043d\u0435 \u043a\u043e\u043d\u0435\u0446.<\/p>\n<p>\u0414\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u043d\u0443\u0436\u0435\u043d \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u0430\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432:<\/p>\n<ul>\n<li>\n<p>\u043b\u044e\u0431\u043e\u0439 ANSI C \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 (\u0430\u0432\u0442\u043e\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b GCC)<\/p>\n<\/li>\n<li>\n<p>flex \u0438 yacc<\/p>\n<\/li>\n<li>\n<p>GNU make (gmake)<\/p>\n<\/li>\n<li>\n<p>Lua \u0441 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439 <code>lua-posix<\/code> <\/p>\n<\/li>\n<li>\n<p>Python 3.4 \u0438 \u0432\u044b\u0448\u0435<\/p>\n<\/li>\n<li>\n<p>~2\u0413\u0431 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430 <\/p>\n<\/li>\n<\/ul>\n<p>\u0412 \u0442\u0440\u0435\u043a\u0435\u0440\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0438 \u043f\u0443\u043b-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u0430\u0445 \u0435\u0441\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0442 \u043a\u043e\u043c\u0440\u0430\u0434\u043e\u0432, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0445 ACK \u043d\u0430 OpenBSD, \u0442\u0430\u043a \u0447\u0442\u043e \u0432\u0440\u044f\u0434\u043b\u0438 \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0432 \u043a\u0443\u0434\u0430 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 Linux, Windows \u0438 MacOS.<\/p>\n<p>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0441\u0431\u043e\u0440\u043a\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c\u00a0\u2014 \u0432\u044b\u0437\u043e\u0432\u043e\u043c <code>GNU Make<\/code> \u0432\u00a0\u043a\u043e\u0440\u043d\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430:<\/p>\n<pre><code class=\"bash\">gmake<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0430\u0432\u0442\u043e\u0440 \u0441\u043e\u0431\u0438\u0440\u0430\u043b \u043d\u0430 FreeBSD, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0438\u043c\u0435\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u0443\u044e \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0443 \u0432 \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0442\u0430\u043a\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5e9\/259\/7c6\/5e92597c69cf771810b7f33dab59d9bd.png\" width=\"810\" height=\"82\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/5e9\/259\/7c6\/5e92597c69cf771810b7f33dab59d9bd.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5e9\/259\/7c6\/5e92597c69cf771810b7f33dab59d9bd.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u044d\u0442\u043e \u0438\u0437-\u0437\u0430 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a <code>lua<\/code> \u0432\u043e FreeBSD \u0438\u043c\u0435\u0435\u0442 \u043f\u043e\u0441\u0442\u0444\u0438\u043a\u0441 \u0432\u0435\u0440\u0441\u0438\u0438:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4de\/e48\/003\/4dee4800336a89f50dc461855b4e383f.png\" width=\"963\" height=\"422\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/4de\/e48\/003\/4dee4800336a89f50dc461855b4e383f.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4de\/e48\/003\/4dee4800336a89f50dc461855b4e383f.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0422\u0430\u043a \u0447\u0442\u043e \u043d\u0430\u0434\u043e \u043e\u0442\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c <code>Makefile<\/code> \u0432 \u043a\u043e\u0440\u043d\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0438 \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 <code>LUA=<\/code>, \u0434\u043e\u0431\u0430\u0432\u0438\u0432 \u0432\u0435\u0440\u0441\u0438\u044e:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/cda\/f73\/b6d\/cdaf73b6d6c695a2ccb133e51e403f6c.png\" width=\"963\" height=\"422\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/cda\/f73\/b6d\/cdaf73b6d6c695a2ccb133e51e403f6c.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/cda\/f73\/b6d\/cdaf73b6d6c695a2ccb133e51e403f6c.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u0430 \u0434\u043b\u044f FreeBSD, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 <code>gcc<\/code> \u0443 \u043d\u0430\u0441 \u0442\u043e\u0436\u0435 \u0441 \u043f\u043e\u0441\u0442\u0444\u0438\u043a\u0441\u043e\u043c \u0432\u0435\u0440\u0441\u0438\u0438:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/364\/e13\/224\/364e13224298a1914f48d56f4db021e6.png\" width=\"963\" height=\"422\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/364\/e13\/224\/364e13224298a1914f48d56f4db021e6.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/364\/e13\/224\/364e13224298a1914f48d56f4db021e6.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442 \u0447\u0442\u043e \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u043e\u0434\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f <code>CC=<\/code>, \u043d\u0430\u0448\u043b\u043e\u0441\u044c \u043c\u0435\u0441\u0442\u043e \u0432 \u0441\u043a\u0440\u0438\u043f\u0442\u0430\u0445 \u0441\u0431\u043e\u0440\u043a\u0438, \u0433\u0434\u0435 \u0431\u044b\u043b\u0438 \u043f\u0440\u044f\u043c\u043e \u0437\u0430\u0431\u0438\u0442\u044b \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u043e\u0432:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b11\/4a4\/328\/b114a43281e44e1b8c9dd45f2be95ad7.png\" width=\"963\" height=\"382\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/b11\/4a4\/328\/b114a43281e44e1b8c9dd45f2be95ad7.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b11\/4a4\/328\/b114a43281e44e1b8c9dd45f2be95ad7.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041d\u0443\u0436\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <code>ack\/build\/<\/code><a href=\"http:\/\/ab.mk\" rel=\"noopener noreferrer nofollow\"><code>ab.mk<\/code><\/a> \u0438\u00a0\u043f\u043e\u0447\u0435\u043c\u0443-\u0442\u043e \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430\u00a0\u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0438\u00a0\u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u00a0\u2014 \u043d\u0435\u00a0\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u044b\u043c.<\/p>\n<p>\u041f\u043e \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0438 \u0441 <code>lua<\/code>, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u043e\u0441\u0442\u0444\u0438\u043a\u0441 \u0432\u0435\u0440\u0441\u0438\u0438 \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a40\/28b\/51f\/a4028b51f173f8c1c014fe797cc52840.png\" width=\"963\" height=\"382\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/a40\/28b\/51f\/a4028b51f173f8c1c014fe797cc52840.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a40\/28b\/51f\/a4028b51f173f8c1c014fe797cc52840.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0437\u0430\u043d\u043e\u0432\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0441\u0431\u043e\u0440\u043a\u0443 \u0438 \u0436\u0434\u0435\u043c, \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0434\u0440\u0443\u0433\u0438\u0445 \u043e\u0448\u0438\u0431\u043e\u043a \u043f\u0440\u0438 \u0441\u0431\u043e\u0440\u043a\u0435 \u0437\u0430\u043c\u0435\u0447\u0435\u043d\u043e \u043d\u0435 \u0431\u044b\u043b\u043e.<\/p>\n<p>\u0418\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0441\u0431\u043e\u0440\u043a\u0438, \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438 \u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u0432 <code>1.7\u0413\u0431<\/code>, \u0447\u0442\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u0437\u0430\u044f\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0432 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u0445:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/564\/3b9\/9b8\/5643b99b8a015556b59e803f81a814da.png\" width=\"963\" height=\"382\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/564\/3b9\/9b8\/5643b99b8a015556b59e803f81a814da.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/564\/3b9\/9b8\/5643b99b8a015556b59e803f81a814da.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041f\u043e-\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e ACK \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 <code>\/opt\/pkg\/ack<\/code>, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0438\u0437 \u043a\u043e\u0440\u043d\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430:<\/p>\n<pre><code class=\"bash\">mkdir -p \/opt\/pkg\/ack gmake install<\/code><\/pre>\n<p>\u041f\u0435\u0440\u0435\u0434 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u044b \u0442\u0435\u0441\u0442\u044b, \u043d\u043e \u0434\u0430\u043b\u0435\u043a\u043e \u043d\u0435 \u0432\u0441\u0435:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ebe\/fbb\/f5c\/ebefbbf5cd208c5374224a593e6acde6.png\" width=\"963\" height=\"382\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/ebe\/fbb\/f5c\/ebefbbf5cd208c5374224a593e6acde6.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ebe\/fbb\/f5c\/ebefbbf5cd208c5374224a593e6acde6.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0418\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 <code>bin<\/code> \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/184\/29b\/6a8\/18429b6a8a20e64d121a92307b51b6ef.png\" width=\"963\" height=\"382\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/184\/29b\/6a8\/18429b6a8a20e64d121a92307b51b6ef.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/184\/29b\/6a8\/18429b6a8a20e64d121a92307b51b6ef.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0425\u043e\u0442\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0438 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 <code>ack\/lib\/ack<\/code>:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d34\/a10\/3d8\/d34a103d8ef85a835b79965aa607ce13.png\" width=\"963\" height=\"705\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/d34\/a10\/3d8\/d34a103d8ef85a835b79965aa607ce13.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d34\/a10\/3d8\/d34a103d8ef85a835b79965aa607ce13.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a\u00a0\u0441\u0430\u043c\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u043c\u0443\u00a0\u2014 \u043a\u00a0\u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u0438\u00a0\u0440\u0430\u0431\u043e\u0442\u0435 \u0441\u00a0ACK, \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u0435\u0441\u0435\u043b\u043e.<\/p>\n<blockquote>\n<p>\u0412 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043a\u0430\u0442\u0430\u043b\u043e\u0433 <a href=\"https:\/\/github.com\/davidgiven\/ack\/tree\/default\/examples\" rel=\"noopener noreferrer nofollow\"><code>examples<\/code><\/a>, \u0433\u0434\u0435 \u043b\u0435\u0436\u0430\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0431\u043e\u043b\u0435\u0435-\u043c\u0435\u043d\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u0439 \u043b\u043e\u0433\u0438\u043a\u0438 \u043d\u0430 <a href=\"https:\/\/github.com\/davidgiven\/ack\/blob\/default\/examples\/startrek.c\" rel=\"noopener noreferrer nofollow\">\u0421\u0438<\/a>, <a href=\"https:\/\/github.com\/davidgiven\/ack\/blob\/default\/examples\/hilo.p\" rel=\"noopener noreferrer nofollow\">\u041f\u0430\u0441\u043a\u0430\u043b\u0435<\/a> \u0438 <a href=\"https:\/\/github.com\/davidgiven\/ack\/blob\/default\/examples\/hilo.bas\" rel=\"noopener noreferrer nofollow\">\u0411\u0435\u0439\u0441\u0438\u043a\u0435<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0442\u043e\u0447\u043d\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e ACK.<\/p>\n<\/blockquote>\n<p>\u041e\u0434\u0438\u043d \u0438\u0437 \u0442\u0430\u043a\u0438\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c <a href=\"https:\/\/github.com\/davidgiven\/ack\/blob\/default\/examples\/mandelbrot.c\" rel=\"noopener noreferrer nofollow\">mandelbrot.c<\/a> , \u0432\u044b\u0432\u043e\u0434\u044f\u0449\u0438\u0439 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u0438\u043c\u0432\u043e\u043b\u0430 <code>*<\/code> <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9C%D0%BD%D0%BE%D0%B6%D0%B5%D1%81%D1%82%D0%B2%D0%BE%5C_%D0%9C%D0%B0%D0%BD%D0%B4%D0%B5%D0%BB%D1%8C%D0%B1%D1%80%D0%BE%D1%82%D0%B0\" rel=\"noopener noreferrer nofollow\">\u0444\u0440\u0430\u043a\u0442\u0430\u043b \u041c\u0430\u043d\u0434\u0435\u043b\u044c\u0431\u0440\u043e\u0442\u0430<\/a> \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043b\u0438\u0446\u0435\u0437\u0440\u0435\u0442\u044c \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 \u043d\u0430 \u0437\u0430\u0433\u043b\u0430\u0432\u043d\u043e\u0439 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u043a \u0441\u0442\u0430\u0442\u044c\u0435.<\/p>\n<p>\u041d\u043e \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043c\u043d\u0435 \u0431\u044b\u043b \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0435\u0435 \u0441\u0430\u043c <em>\u043f\u0440\u043e\u0446\u0435\u0441\u0441<\/em> \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u044d\u043a\u0437\u043e\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430\u0445 \u0438\u0437\u00a0\u0434\u0440\u0435\u0432\u043d\u0438\u0445 \u0432\u0440\u0435\u043c\u0435\u043d \u043d\u0435\u0436\u0435\u043b\u0438 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b, \u043d\u0435\u00a0\u0441\u0442\u0430\u043b \u0437\u0430\u043c\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0439 \u043b\u043e\u0433\u0438\u043a\u043e\u0439, \u0432\u0437\u044f\u0432 \u0432\u00a0\u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u044d\u0442\u0430\u043b\u043e\u043d\u0430 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u00abHello world!\u00bb \u043d\u0430\u00a0\u0421\u0438: <\/p>\n<pre><code class=\"cpp\">#include &lt;stdio.h&gt;  int main(void) {   printf(\"Hello, alex0x08 \\n\");   return 0; }<\/code><\/pre>\n<p>\u0418 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043d\u0438\u0436\u0435 \u043f\u043e\u043a\u0430\u0436\u0443 \u0441\u0431\u043e\u0440\u043a\u0443 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a \u044d\u0442\u043e\u0439 \u043d\u0435\u0441\u0442\u0430\u0440\u0435\u044e\u0449\u0435\u0439 \u043a\u043b\u0430\u0441\u0441\u0438\u043a\u0438 \u043f\u043e\u0434 \u043a\u0440\u0430\u0439\u043d\u0435 \u044d\u043a\u0437\u043e\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 (\u043f\u043e \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c \u043c\u0435\u0440\u043a\u0430\u043c) \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b.<\/p>\n<h3>\u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f FreeBSD-&gt;MS-DOS<\/h3>\n<p>\u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044e \u0432 COM-\u0444\u0430\u0439\u043b \u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043d\u0430 \u0437\u0430\u0433\u043b\u0430\u0432\u043d\u043e\u0439 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0438\u0436\u0435 \u043f\u043e\u043a\u0430\u0436\u0443 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044e \u0432 <code>EXE<\/code> \u043f\u043e\u0434 DOS:<\/p>\n<pre><code class=\"bash\">\/opt\/pkg\/ack\/bin\/ack -mmsdos386 -O hello.c -o hello.exe<\/code><\/pre>\n<p>\u0426\u0438\u0442\u0438\u0440\u0443\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e:<\/p>\n<blockquote>\n<p>msdos386      produces i386 MS-DOS 32-bit DPMI .EXE files<\/p>\n<\/blockquote>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0443\u0436\u0435\u043d \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0439 <a href=\"https:\/\/en.wikipedia.org\/wiki\/DOS%5C_Protected%5C_Mode%5C_Interface\" rel=\"noopener noreferrer nofollow\">DPMI-\u0440\u0435\u0437\u0438\u0434\u0435\u043d\u0442<\/a>\u00a0\u2014 \u0442.\u00a0\u043d. \u00ab\u0440\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u0435\u043b\u044c \u043f\u0430\u043c\u044f\u0442\u0438\u00bb, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0432\u0437\u044f\u0442\u044c \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 <a href=\"https:\/\/www.dosgames.com\/utilities.php\" rel=\"noopener noreferrer nofollow\">\u0442\u0443\u0442<\/a>.<\/p>\n<p>\u0422\u0430\u043a \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0432 \u0437\u0430\u043f\u0438\u0441\u0438:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/fc3\/b87\/b85\/fc3b87b85b40c6c2f4e8c012fda6d807.gif\" width=\"800\" height=\"450\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/fc3\/b87\/b85\/fc3b87b85b40c6c2f4e8c012fda6d807.gif 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/fc3\/b87\/b85\/fc3b87b85b40c6c2f4e8c012fda6d807.gif 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435 \u0437\u0430\u043f\u0443\u0441\u043a \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u043b\u0441\u044f \u0432 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u043c \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0435 DOS \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c <a href=\"https:\/\/www.dosbox.com\/\" rel=\"noopener noreferrer nofollow\">Dosbox<\/a>, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u043c \u0438\u0437 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 FreeBSD.<\/p>\n<h3>\u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u0434\u043b\u044f CP\/M<\/h3>\n<p>\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0443\u0433\u0430\u0440, \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e \u0441\u0431\u043e\u0440\u043a\u0443 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a \u043f\u043e\u0434 <a href=\"https:\/\/en.wikipedia.org\/wiki\/CP\/M\" rel=\"noopener noreferrer nofollow\">CP\/M<\/a>, \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u044e \u0447\u0442\u043e \u044d\u0442\u043e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0438\u0437 1970\u0445 (\u0441\u0442\u0430\u0440\u0448\u0435 \u0430\u0432\u0442\u043e\u0440\u0430) \u0430 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u044b, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b\u0438 <a href=\"https:\/\/itsfoss.com\/cp-m-os-history\/\" rel=\"noopener noreferrer nofollow\">\u0442\u0430\u043a<\/a>:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/10d\/71c\/82b\/10d71c82bc63d4a8223cc148221d9a72.jpeg\" alt=\"Kaypro II\" title=\"Kaypro II\" width=\"1000\" height=\"1000\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/10d\/71c\/82b\/10d71c82bc63d4a8223cc148221d9a72.jpeg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/10d\/71c\/82b\/10d71c82bc63d4a8223cc148221d9a72.jpeg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>Kaypro II<\/figcaption><\/div>\n<\/figure>\n<p>\u0422\u0443\u0442 \u043d\u0430\u0434\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043e\u0442\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435 \u0438\u00a0\u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0440\u043e \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440 CP\/M, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0435\u0433\u043e \u0432\u00a0\u043f\u0430\u043a\u0435\u0442\u0430\u0445 FreeBSD \u043d\u0435\u00a0\u043d\u0430\u0448\u043b\u043e\u0441\u044c\u00a0\u2014 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0440\u0443\u043a\u0430\u043c\u0438. <\/p>\n<h4>RunCPM &#8212; Z80 CP\/M emulator<\/h4>\n<p>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0432\u0435\u0434\u0435\u0442\u0441\u044f \u043d\u0430 Github, \u0437\u0430\u0431\u0438\u0440\u0430\u0435\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438: <\/p>\n<pre><code class=\"bash\">git clone https:\/\/github.com\/MockbaTheBorg\/RunCPM.git<\/code><\/pre>\n<p>\u041f\u0440\u0438 \u0441\u0431\u043e\u0440\u043a\u0435 \u0431\u0443\u0434\u0435\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u0430\u044f \u0432\u044b\u0448\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441\u00a0\u043d\u043e\u043c\u0435\u0440\u043e\u043c \u0432\u0435\u0440\u0441\u0438\u0438 \u0432\u00a0\u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 GCC\u00a0\u2014 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f \u0434\u043b\u044f FreeBSD, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u00a0\u0444\u0430\u0439\u043b\u0435 <code>RunCPM\/Makefile.posix<\/code> \u0432\u00a0\u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e <code>\u0421\u0421=<\/code> \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u043e\u043c\u0435\u0440 \u0432\u0435\u0440\u0441\u0438\u0438:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/975\/e65\/1a3\/975e651a3dacc0ef852a68f178e6e3ed.png\" width=\"963\" height=\"422\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/975\/e65\/1a3\/975e651a3dacc0ef852a68f178e6e3ed.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/975\/e65\/1a3\/975e651a3dacc0ef852a68f178e6e3ed.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0421\u0430\u043c\u0430 \u0441\u0431\u043e\u0440\u043a\u0430 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439:<\/p>\n<pre><code class=\"bash\">gmake posix build<\/code><\/pre>\n<p>\u041d\u043e\u00a0\u044d\u0442\u043e \u0435\u0449\u0435 \u043d\u0435\u00a0\u0432\u0441\u0435 \u043f\u0440\u0438\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f, \u043f\u043e\u0441\u043b\u0435 \u0441\u0431\u043e\u0440\u043a\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0447\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e\u00a0\u2014 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0438\u0437\u00a0\u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440:<\/p>\n<pre><code class=\"bash\">mkdir disk unzip ..\/..\/DISK\/A0.ZIP cp ..\/RunCPM .<\/code><\/pre>\n<p>\u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u043a\u0430\u0442\u0430\u043b\u043e\u0433 <code>A\/0<\/code>, \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0443\u0434\u0443\u0442 \u0432\u0441\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b CP\/M, \u0432 \u043a\u043e\u0440\u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c\u044b\u0439 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a \u0441\u0430\u043c\u043e\u0433\u043e \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430.<\/p>\n<p>\u0412\u0441\u0435 \u0433\u043e\u0442\u043e\u0432\u043e \u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e, \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/927\/9ac\/ec3\/9279acec3d831d09e3b08878e4588eec.png\" width=\"963\" height=\"498\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/927\/9ac\/ec3\/9279acec3d831d09e3b08878e4588eec.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/927\/9ac\/ec3\/9279acec3d831d09e3b08878e4588eec.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0414\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0430 \u0448\u0430\u043f\u043a\u0430 \u0441 \u0432\u0435\u0440\u0441\u0438\u0435\u0439 \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0430 <code>DIR<\/code>. \u0414\u043b\u044f \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u0432\u0432\u0435\u0434\u0438\u0442\u0435 <code>EXIT<\/code>.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442\u044c \u043a \u0441\u0431\u043e\u0440\u043a\u0435 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f.<\/p>\n<h4>\u00abHello world\u00bb \u0434\u043b\u044f CP\/M<\/h4>\n<p>\u0414\u043b\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u043f\u043e\u0434 \u044d\u0442\u0443 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043a\u043b\u044e\u0447 <code>-mcpm<\/code>:<\/p>\n<pre><code class=\"bash\"> \/opt\/pkg\/ack\/bin\/ack -mcpm -O hello.c -o hello.com<\/code><\/pre>\n<p>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0448\u0430\u0433\u043e\u043c \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a, \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0441 \u0438\u043c\u0435\u043d\u0435\u043c \u0432 \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435:<\/p>\n<pre><code class=\"bash\">cp ~\/hello.com .\/A\/0\/HELLO.COM<\/code><\/pre>\n<p>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u0438 \u0432\u0432\u043e\u0434\u0438\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 <code>hello<\/code>:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/90e\/2cb\/fb9\/90e2cbfb936fa441f95f93ea30dfed6d.png\" width=\"963\" height=\"422\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/90e\/2cb\/fb9\/90e2cbfb936fa441f95f93ea30dfed6d.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/90e\/2cb\/fb9\/90e2cbfb936fa441f95f93ea30dfed6d.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041a\u0440\u0443\u0442\u043e?<\/p>\n<p>\u041a\u0440\u0443\u0442\u043e, \u043d\u043e \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0441\u0440\u0435\u0434\u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0445 ACK \u0441\u0438\u0441\u0442\u0435\u043c \u0435\u0441\u0442\u044c:<\/p>\n<pre><code>pdpv7         produces PDP\/11 V7 Unix binaries<\/code><\/pre>\n<p>\u0414\u0443\u043c\u0430\u044e \u0432\u044b \u0434\u043e\u0433\u0430\u0434\u044b\u0432\u0430\u0435\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u043f\u0440\u043e\u0439\u0442\u0438 \u043c\u0438\u043c\u043e <strong>\u0442\u0430\u043a\u043e\u0433\u043e<\/strong> \u0431\u044b\u043b\u043e \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 <s>\u0430\u0432\u0442\u043e\u0440 \u0443\u0431\u0438\u043b \u0435\u0449\u0435 \u043d\u0435\u0434\u0435\u043b\u044e<\/s> \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e \u043d\u0435\u0447\u0442\u043e <em>\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e<\/em> \u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435.<\/p>\n<h3>\u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u0434\u043b\u044f Unix v7 \u0438 PDP-11 \u0432 2025\u043c \u0433\u043e\u0434\u0443 (!)<\/h3>\n<blockquote>\n<p>\u0427\u0442\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u0430\u0431\u0437\u0430\u0446\u0430 \u043f\u0440\u0438\u0431\u0430\u0432\u043b\u044f\u0435\u0442 100 \u0431\u0430\u043b\u043b\u043e\u0432 \u043a \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043d\u044b\u043c \u043d\u0430\u0432\u044b\u043a\u0430\u043c.<\/p>\n<\/blockquote>\n<p>\u041d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u044e \u043a\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b PDP-11:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/432\/aa5\/c73\/432aa5c7371e5dbbf1f178daf1775a7c.jpeg\" width=\"680\" height=\"449\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/432\/aa5\/c73\/432aa5c7371e5dbbf1f178daf1775a7c.jpeg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/432\/aa5\/c73\/432aa5c7371e5dbbf1f178daf1775a7c.jpeg 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0412\u043e\u0442 \u0442\u0430\u043a \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u0438\u0437 ACK \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0434\u0440\u0435\u0432\u043d\u0435\u0433\u043e \u043c\u043e\u043d\u0441\u0442\u0440\u0430:<\/p>\n<pre><code class=\"bash\"> \/opt\/pkg\/ack\/bin\/ack -mpdpv7 -O hello.c -o hello<\/code><\/pre>\n<p>\u041a\u0430\u043a \u043d\u0438 \u0441\u0442\u0440\u0430\u043d\u043d\u043e \u0438 \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u043e, \u043d\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f \u0443\u0442\u0438\u043b\u0438\u0442\u0430 file, \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0430\u044f \u0432\u043e \u0432\u0441\u0435\u0445 UNIX-\u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u0441 \u043d\u0435\u0437\u0430\u043f\u0430\u043c\u044f\u0442\u043d\u044b\u0445 \u0432\u0440\u0435\u043c\u0435\u043d \u0447\u0435\u0441\u0442\u043d\u043e \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0442\u0438\u043f:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/40a\/ac1\/ccb\/40aac1ccb0be63f1a7b5d4a1c4a168d2.png\" width=\"667\" height=\"154\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/40a\/ac1\/ccb\/40aac1ccb0be63f1a7b5d4a1c4a168d2.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/40a\/ac1\/ccb\/40aac1ccb0be63f1a7b5d4a1c4a168d2.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<h4>Apout \u2014 Simulate PDP-11 Unix a.out binaries<\/h4>\n<p>\u0414\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u044f \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a \u043d\u0430 <a href=\"https:\/\/github.com\/tsupplis\/apout\" rel=\"noopener noreferrer nofollow\">\u044d\u0442\u043e\u043c<\/a>:<\/p>\n<blockquote>\n<p>This program is a user-level simulator for UNIX a.out binaries. Binaries for V1, V2, V5, V6, V7, 2.9BSD and 2.11BSD can be run with this simulator. The user-mode PDP-11 instructions are simulated, and TRAP instructions are emulated by calling equivalent native-mode system calls.<\/p>\n<\/blockquote>\n<p>\u0421\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u043e\u043d\u043e \u043f\u043e\u0434 FreeBSD \u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u043d\u0435\u0442:<\/p>\n<pre><code class=\"bash\">export CC=gcc13 gmake<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0441\u0431\u043e\u0440\u043a\u0438 \u0432\u00a0\u043a\u043e\u0440\u043d\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a <code>apout<\/code>, \u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0432\u00a0\u0440\u0430\u0431\u043e\u0442\u0435 \u0437\u0430\u043f\u0443\u0441\u043a \u043d\u0430\u0448\u0435\u0433\u043e \u00abHello world\u00bb:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/88c\/f0c\/014\/88cf0c014e5723f3f065ff0c8cb8ff44.png\" width=\"667\" height=\"439\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/88c\/f0c\/014\/88cf0c014e5723f3f065ff0c8cb8ff44.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/88c\/f0c\/014\/88cf0c014e5723f3f065ff0c8cb8ff44.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041d\u043e \u0440\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f \u0441\u0438\u043b\u044c\u043d\u043e \u043a\u0440\u0443\u0447\u0435 \u0431\u044b\u043b\u043e \u0431\u044b \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0435 PDP \u0441 Unix v7 \u043d\u0430 \u0431\u043e\u0440\u0442\u0443, \u0447\u0442\u043e \u044f \u0438 \u0441\u0434\u0435\u043b\u0430\u043b.<\/p>\n<h4>SIMH<\/h4>\n<p>\u042d\u043c\u0443\u043b\u044f\u0446\u0438\u044e PDP \u043a\u0430\u043a \u0432\u043f\u0440\u043e\u0447\u0435\u043c \u0438 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u0434\u0440\u0443\u0433\u0438\u0445 \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 <a href=\"https:\/\/opensimh.org\/\" rel=\"noopener noreferrer nofollow\">Open SIMH<\/a>. \u041d\u0443\u0436\u043d\u044b\u0439 \u043d\u0430\u043c Unix v7 \u0437\u0430\u044f\u0432\u043b\u0435\u043d \u043d\u0430 \u0433\u043b\u0430\u0432\u043d\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0430:<\/p>\n<blockquote>\n<p>For example Version 7 Unix, released in 1979, runs unchanged today on SimH.<\/p>\n<\/blockquote>\n<p>\u0412 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u043b \u0432 \u0433\u043e\u0442\u043e\u0432\u043e\u043c \u0432\u0438\u0434\u0435 \u0441\u0440\u0435\u0434\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 FreeBSD, \u0442\u0430\u043a \u0447\u0442\u043e \u0445\u043e\u0442\u044f-\u0431\u044b \u0435\u0433\u043e \u043d\u0435 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432. <\/p>\n<p>\u041d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437.<\/p>\n<p>\u0417\u0430\u0431\u0438\u0440\u0430\u0435\u043c <a href=\"https:\/\/simh.trailing-edge.com\/kits\/uv7swre.zip\" rel=\"noopener noreferrer nofollow\">\u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u043e\u0431\u0440\u0430\u0437 \u0434\u0438\u0441\u043a\u0430<\/a> \u0441 Unix v7 \u0434\u043b\u044f PDP-11 <a href=\"http:\/\/simh.trailing-edge.com\/software.html\" rel=\"noopener noreferrer nofollow\">\u043e\u0442\u0441\u044e\u0434\u0430<\/a>, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 <a href=\"https:\/\/gunkies.org\/wiki\/Installing%5C_v7%5C_on%5C_SIMH\" rel=\"noopener noreferrer nofollow\">\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f<\/a> \u043f\u043e \u043f\u043e\u043b\u043d\u043e\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u0432 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u0447\u043d\u043e\u0439 \u043b\u0435\u043d\u0442\u044b:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/3fa\/c5d\/c58\/3fac5dc58aa2a55552a0b0bd27be9d61.jpeg\" alt=\"\u041d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u043b\u044e\u0434\u0438 \u043d\u0430 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0448\u0430\u043b\u0438 \u043c\u0443\u0437\u044b\u043a\u0443, \u043d\u0435\u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0435 - \u0445\u0440\u0430\u043d\u0438\u043b\u0438 \u0431\u0435\u043a\u0430\u043f\u044b.\" title=\"\u041d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u043b\u044e\u0434\u0438 \u043d\u0430 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0448\u0430\u043b\u0438 \u043c\u0443\u0437\u044b\u043a\u0443, \u043d\u0435\u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0435 - \u0445\u0440\u0430\u043d\u0438\u043b\u0438 \u0431\u0435\u043a\u0430\u043f\u044b.\" width=\"1183\" height=\"871\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/3fa\/c5d\/c58\/3fac5dc58aa2a55552a0b0bd27be9d61.jpeg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/3fa\/c5d\/c58\/3fac5dc58aa2a55552a0b0bd27be9d61.jpeg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u041d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u043b\u044e\u0434\u0438 \u043d\u0430 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0448\u0430\u043b\u0438 \u043c\u0443\u0437\u044b\u043a\u0443, \u043d\u0435\u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0435 &#8212; \u0445\u0440\u0430\u043d\u0438\u043b\u0438 \u0431\u0435\u043a\u0430\u043f\u044b.<\/figcaption><\/div>\n<\/figure>\n<blockquote>\n<p>\u041d\u043e \u0430\u0432\u0442\u043e\u0440 \u0440\u0435\u0448\u0438\u043b <s>\u043d\u0435 \u0443\u0431\u0438\u0432\u0430\u0442\u044c \u0435\u0449\u0435 \u043d\u0435\u0434\u0435\u043b\u044e<\/s> \u0447\u0442\u043e \u044d\u0442\u043e \u0443\u0436\u0435 \u043f\u0435\u0440\u0435\u0431\u043e\u0440, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u043e\u0431\u0440\u0430\u0437 \u0434\u0438\u0441\u043a\u0430 \u0441 Unix v7.<\/p>\n<\/blockquote>\n<p>\u0412 \u0430\u0440\u0445\u0438\u0432\u0435 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 \u0431\u0443\u0434\u0435\u0442 \u0444\u0430\u0439\u043b <code>unix_v7_rl.dsk<\/code> , \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0430\u0442\u044c:<\/p>\n<pre><code class=\"bash\">mkdir v7 cd v7 unzip ~\/uv7swre.zip<\/code><\/pre>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430:<\/p>\n<pre><code>set cpu u18 set cpu idle attach rl0 unix_v7_rl.dsk attach rl1 hello.tar boot rl0<\/code><\/pre>\n<p>\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0435 \u0444\u0430\u0439\u043b \u043a\u0430\u043a <code>simh-pdp11.ini<\/code>, \u0432 \u0442\u043e\u043c \u0436\u0435 \u0441\u0430\u043c\u043e\u043c \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 <code>v7<\/code> , \u043a\u0443\u0434\u0430 \u0431\u044b\u043b \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0430\u043d \u043e\u0431\u0440\u0430\u0437 \u0434\u0438\u0441\u043a\u0430.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0434\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c tar-\u0444\u0430\u0439\u043b \u0441 \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u043c \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u043e\u043c &#171;Hello world&#187; \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f:<\/p>\n<pre><code class=\"bash\">cd ~ tar cvf hello.tar hello cp hello.tar ~\/v7\/<\/code><\/pre>\n<p>\u0418\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u0444\u0430\u0439\u043b\u043e\u0432 \u0434\u043e\u043b\u0436\u0435\u043d \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043a\u0430\u043a-\u0442\u043e \u0442\u0430\u043a:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e87\/a69\/57c\/e87a6957c86c4aef1e4852f95c0afecc.png\" width=\"667\" height=\"329\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/e87\/a69\/57c\/e87a6957c86c4aef1e4852f95c0afecc.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e87\/a69\/57c\/e87a6957c86c4aef1e4852f95c0afecc.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440:<\/p>\n<pre><code class=\"bash\">pdp11 simh-pdp11.ini<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f \u0432 \u0432\u0438\u0434\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u0430 <code>@<\/code> \u0432\u0432\u043e\u0434\u0438\u043c:<\/p>\n<pre><code>boot<\/code><\/pre>\n<p>\u041f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0434\u0440\u0435\u0432\u043d\u0438\u0439 \u043f\u0440\u0435\u0434\u043e\u043a \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e Grub, \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d4c\/77a\/831\/d4c77a831f6545d892497849284fdd4b.png\" width=\"667\" height=\"329\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/d4c\/77a\/831\/d4c77a831f6545d892497849284fdd4b.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d4c\/77a\/831\/d4c77a831f6545d892497849284fdd4b.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0412\u0432\u043e\u0434\u0438\u043c:<\/p>\n<pre><code>rl(0,0)rl2unix<\/code><\/pre>\n<p>\u041f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435 \u0432 \u0432\u0438\u0434\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u0430 <code>#<\/code> , \u0447\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u043a Unix v7 \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<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/acd\/fcd\/9ae\/acdfcd9aeefc605819385ee589557962.png\" width=\"667\" height=\"329\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/acd\/fcd\/9ae\/acdfcd9aeefc605819385ee589557962.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/acd\/fcd\/9ae\/acdfcd9aeefc605819385ee589557962.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041d\u0430\u0436\u043c\u0438\u0442\u0435 <code>Ctrl<\/code> &#8212; <code>D<\/code> \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u0432 \u043c\u043d\u043e\u0433\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<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c5e\/720\/6d4\/c5e7206d49d09ccbe50507bb46edd742.png\" width=\"667\" height=\"329\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/c5e\/720\/6d4\/c5e7206d49d09ccbe50507bb46edd742.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c5e\/720\/6d4\/c5e7206d49d09ccbe50507bb46edd742.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0445\u043e\u0440\u043e\u0448\u043e \u0437\u043d\u0430\u043a\u043e\u043c\u043e\u0435 \u043b\u044e\u0431\u043e\u043c\u0443 \u044e\u043d\u0438\u043a\u0441\u043e\u0438\u0434\u0443 \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<p>\u0412\u0432\u0435\u0434\u0438\u0442\u0435 <code>root<\/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<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ced\/eec\/1bd\/cedeec1bd5d63ea673b244e50400cca9.png\" width=\"667\" height=\"329\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/ced\/eec\/1bd\/cedeec1bd5d63ea673b244e50400cca9.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ced\/eec\/1bd\/cedeec1bd5d63ea673b244e50400cca9.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0440\u044f\u0434 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0448\u0430\u0433\u043e\u0432.<\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0434\u043b\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432:<\/p>\n<pre><code class=\"bash\">mkdir \/tmp<\/code><\/pre>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430:<\/p>\n<pre><code class=\"bash\">cd \/dev make rl<\/code><\/pre>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u043e\u0439 \u0432 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0435 Unix v7 \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e, \u044d\u043c\u0443\u043b\u0438\u0440\u0443\u044e\u0449\u0435\u0435 \u043b\u0435\u043d\u0442\u0443 \u0438 \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u043d\u0430\u043a\u043e\u043d\u0435\u0446 \u0434\u043e \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u043d\u0430 \u0445\u043e\u0441\u0442\u0435 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0430:<\/p>\n<pre><code class=\"bash\">cd \/tmp tar xvf \/dev\/rrl1<\/code><\/pre>\n<p>\u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0432 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0442\u043e\u0442 \u0441\u0430\u043c\u044b\u0439 \u0444\u0430\u0439\u043b <code>hello<\/code>, \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 FreeBSD \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e ACK:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2e3\/0f2\/297\/2e30f22979e8d078d92e3f468e8b2107.png\" width=\"667\" height=\"329\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/2e3\/0f2\/297\/2e30f22979e8d078d92e3f468e8b2107.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2e3\/0f2\/297\/2e30f22979e8d078d92e3f468e8b2107.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041d\u0430\u043a\u043e\u043d\u0435\u0446 \u0441\u0430\u043c \u0437\u0430\u043f\u0443\u0441\u043a:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/04f\/3e7\/721\/04f3e7721430b7ac249d2ac96d7666a8.png\" width=\"1600\" height=\"900\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/04f\/3e7\/721\/04f3e7721430b7ac249d2ac96d7666a8.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/04f\/3e7\/721\/04f3e7721430b7ac249d2ac96d7666a8.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041d\u0443 \u043a\u0442\u043e \u0435\u0449\u0435 \u0432\u0430\u043c \u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u043a\u0430\u0436\u0435\u0442 \u0442\u0430\u043a\u0443\u044e \u043a\u0440\u0430\u0441\u043e\u0442\u0443?<\/p>\n<h3>\u042d\u043f\u0438\u043b\u043e\u0433<\/h3>\n<p>ACK \u0438\u043c\u0435\u0435\u0442 \u043e\u0442\u043b\u0438\u0447\u043d\u0443\u044e \u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c\u043e\u0441\u0442\u044c \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u043c\u043e\u0441\u0442\u044c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0441\u0442\u043e\u043b\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 <a href=\"https:\/\/github.com\/kej715\/ack\" rel=\"noopener noreferrer nofollow\">\u0444\u043e\u0440\u043a<\/a> \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430:<\/p>\n<blockquote>\n<p>This fork of the Amsterdam Compiler Kit supports the Cray X-MP supercomputer and the COS operating system platform.<\/p>\n<\/blockquote>\n<p>\u0415\u0433\u043e \u0442\u043e\u0436\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c, \u043d\u043e \u0432\u0432\u0438\u0434\u0443 \u043d\u0435\u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0439 <s>\u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438<\/s> \u0441\u0430\u043c\u043e\u0431\u044b\u0442\u043d\u043e\u0441\u0442\u0438 COS, \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u0443\u0436\u0435 \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435.<\/p>\n<p>\u0421\u043b\u0435\u0434\u0438\u0442\u0435 \u0437\u0430 \u0430\u043d\u043e\u043d\u0441\u0430\u043c\u0438, \u043a\u0430\u043a \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0441\u044f.<\/p>\n<p>P.\u00a0S. \u0411\u043e\u043b\u0435\u0435 \u0432\u043e\u043b\u044c\u043d\u044b\u0439 <a href=\"https:\/\/blog.0x08.ru\/amsterdam-compiler-kit\" rel=\"noopener noreferrer nofollow\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b<\/a> \u043a\u0430\u043a\u00a0\u043e\u0431\u044b\u0447\u043d\u043e \u0432\u00a0\u043d\u0430\u0448\u0435\u043c \u0431\u043b\u043e\u0433\u0435, \u0432\u0441\u0435\u00a0\u0436\u0435\u043b\u0430\u044e\u0449\u0438\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0431\u043e\u0438 <s>\u0441\u00a0\u0430\u0432\u0442\u043e\u0433\u0440\u0430\u0444\u043e\u043c<\/s> (\u0438 \u043d\u0435\u00a0\u0443\u043c\u0435\u044e\u0449\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u044f\u043c\u0438) \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c \u0432\u0441\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u0432\u00a0\u0441\u0442\u0430\u0442\u044c\u0435 \u0448\u0430\u0433\u0438 \u0438 \u043f\u0440\u0438\u0441\u043b\u0430\u0442\u044c \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442 \u0441\u00a0\u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u043c \u00abHello &lt;username&gt;\u00bb \u043f\u043e\u0434\u00a0Unix v7\u00a0\u043d\u0430 PDP, \u0433\u0434\u0435 username\u00a0\u2014 \u0432\u0430\u0448 \u043d\u0438\u043a \u043d\u0430\u00a0\u0425\u0430\u0431\u0440\u0435.<\/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\/938120\/\"> https:\/\/habr.com\/ru\/articles\/938120\/<\/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\u043e\u043a\u0430 \u0432\u044b\u00a0\u0440\u043e\u0436\u0434\u0430\u043b\u0438\u0441\u044c, \u0445\u043e\u0434\u0438\u043b\u0438 \u0432\u00a0\u0448\u043a\u043e\u043b\u0443, \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u043b\u0438 \u0443\u0447\u0435\u0431\u0443 \u0438\u00a0\u0432\u044b\u0445\u043e\u0434\u0438\u043b\u0438 \u043d\u0430 \u0441\u0432\u043e\u044e \u043f\u0435\u0440\u0432\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443,\u00a0\u043d\u0430\u00a0\u0441\u0432\u0435\u0442\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043b \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u044b\u0439 <a href=\"https:\/\/tack.sourceforge.net\/about.html\" rel=\"noopener noreferrer nofollow\">\u043d\u0430\u0431\u043e\u0440 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u0432<\/a>, \u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043a\u0440\u0430\u0439\u043d\u0435 \u043c\u0430\u043b\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e \u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u043e\u0440\u0430\u0445 \u0420\u0424. <\/p>\n<p>\u0418\u043c\u0435\u043d\u043d\u043e \u043e \u043d\u0435\u043c \u043f\u043e\u0439\u0434\u0435\u0442 \u0441\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u0438\u0439 \u0440\u0430\u0441\u0441\u043a\u0430\u0437.<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u0421\u0438 \u0438\u0437-\u043f\u043e\u0434 FreeBSD \u0432.. MS-DOS. \u0412 2025\u043c \u0433\u043e\u0434\u0443.<\/figcaption><\/div>\n<\/figure>\n<h3>Amsterdam Compiler Kit<\/h3>\n<p>\u0412\u0440\u044f\u0434\u043b\u0438 \u0441\u0440\u0435\u0434\u0438 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442\u0441\u044f <s>\u0430\u043a\u0441\u0430\u043a\u0430\u043b<\/s> \u0436\u0438\u0432\u043e\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\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:<\/p>\n<blockquote>\n<p>The Amsterdam Compiler Kit is a venerable piece of software that dates back to the early 1980s. It was originally written by <a href=\"http:\/\/www.cs.vu.nl\/%7East\" rel=\"noopener noreferrer nofollow\">Andrew Tanenbaum<\/a> and <a href=\"http:\/\/www.cs.vu.nl\/%7Eceriel\" rel=\"noopener noreferrer nofollow\">Ceriel Jacobs<\/a> as a commercial product; for many years it was also used as Minix\u2019 native toolchain. After eventually failing as a commercial project, it was made open source under a BSD license in 2003 when it looked like it was going to be abandoned and the code lost.<\/p>\n<\/blockquote>\n<p>\u0421\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u0435 \u00ab\u043d\u0430\u0447\u0430\u043b\u043e 80\u0445\u00bb \u0438\u00a0\u00ab\u043a\u043e\u043c\u043c\u0435\u0440\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u00bb \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043c\u0430\u043b\u043e \u0448\u0430\u043d\u0441\u043e\u0432 \u043d\u0430\u00a0\u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 ACK \u0432 \u0440\u043e\u0434\u043d\u044b\u0445 \u043a\u0440\u0430\u044f\u0445, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432\u00a080\u0435 \u0435\u0449\u0435 \u0432\u043e\u0432\u0441\u044e \u0436\u0438\u043b \u0421\u0421\u0421\u0420 \u0438 \u0432\u043e\u043f\u0440\u043e\u0441 \u043f\u043e\u043a\u0443\u043f\u043a\u0438 <em>\u0438\u043d\u043e\u0441\u0442\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f<\/em>\u00a0\u0431\u044b\u043b \u043c\u044f\u0433\u043a\u043e \u0433\u043e\u0432\u043e\u0440\u044f \u043d\u0435\u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435, \u0447\u0442\u043e \u0442\u0430\u043c \u0432\u043d\u0443\u0442\u0440\u0438 \u0438 \u043f\u043e\u0447\u0435\u043c\u0443 \u043e\u043d\u043e \u0434\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 <s>\u0448\u0435\u0432\u0435\u043b\u0438\u0442\u0441\u044f<\/s> \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441:<\/p>\n<blockquote>\n<p>The ACK contains compilers for ANSI C, K&amp;R C, Pascal, Modula-2, Occam 1, and a primitive Basic. It contains code generators for a large number of architectures, mostly 8 and 16 bit machines; there are also a set of generic optimisation, linker and librarian tools. <\/p>\n<\/blockquote>\n<p>\u0412 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u044f\u0437\u044b\u043a\u043e\u0432 \u0434\u043b\u044f \u0442\u0435\u0445 \u043b\u0435\u0442, \u043d\u043e \u0435\u0441\u0442\u044c <strong>\u043d\u044e\u0430\u043d\u0441<\/strong>:<\/p>\n<blockquote>\n<p>It contains assembler and linker support for: 6500, 6800, 6805, 6809, ARM, i80, Z80, Z8000, i86, i386, 68000, 68020, NS32016, S2650, SPARC, VAX, PDP11 and VideoCore IV.<\/p>\n<\/blockquote>\n<p>\u042d\u0442\u043e \u0443\u0436\u0435 \u043d\u0435\u0441\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u00ab\u0432\u0430\u0443-\u044d\u0444\u0444\u0435\u043a\u0442\u00bb, \u043f\u0440\u0438\u0447\u0435\u043c \u043a\u0430\u043a \u0434\u043b\u044f \u0442\u0435\u0445 \u0442\u0430\u043a \u0438\u00a0\u0434\u043b\u044f \u044d\u0442\u0438\u0445\u00a0\u043b\u0435\u0442, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0434\u0430\u0436\u0435 \u0434\u043b\u044f \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 <code>clang<\/code> \u0438 <code>gcc<\/code> \u0441\u0442\u043e\u043b\u044c \u0448\u0438\u0440\u043e\u043a\u0430\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440 \u0440\u0435\u0448\u0430\u0435\u0442\u0441\u044f \u043f\u0443\u0442\u0435\u043c \u0444\u043e\u0440\u043a\u043e\u0432 \u0438 \u043d\u0435\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0430\u0442\u0447\u0435\u0439.<\/p>\n<p>\u0412\u00a0\u043c\u0435\u0439\u043d\u0441\u0442\u0440\u0438\u043c\u0435 \u0438 \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u043f\u0430\u043a\u0435\u0442\u0430\u0445 \u0441\u0442\u043e\u043b\u044c \u0434\u0438\u043a\u043e\u0433\u043e \u043d\u0430\u0431\u043e\u0440\u0430 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440 \u0440\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f \u043d\u0435\u0442, \u043f\u0440\u0438\u00a0\u044d\u0442\u043e\u043c \u0441\u0438\u043b\u044c\u043d\u043e \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0435 \u0435\u0449\u0435 \u0438 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e \u043b\u043e\u043c\u0430\u044e\u0442, \u0430\u00a0\u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435\u00a0\u0432\u043e\u043e\u0431\u0449\u0435 \u0443\u0434\u0430\u043b\u044f\u044e\u0442.<\/p>\n<p>\u0421\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f ACK, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441 2003 \u0433\u043e\u0434\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b: <\/p>\n<blockquote>\n<p>pc86, linux386, linux68k, linuxppc, linuxmips, cpm, rpi (VideoCore IV), pdpv7, msdos86 and msdos386.<\/p>\n<\/blockquote>\n<p>\u041b\u0438\u0447\u043d\u043e \u0443\u00a0\u043c\u0435\u043d\u044f \u0433\u043b\u0430\u0437 \u043d\u0430\u0447\u0430\u043b \u0434\u0435\u0440\u0433\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0441\u043b\u0435 <code>cpm<\/code> \u0438\u00a0<code>pdpv7<\/code>, <code>msdos86<\/code> \u043f\u043e\u00a0\u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441\u00a0\u044d\u0442\u0438\u043c\u00a0\u0443\u0436\u0435 \u0442\u0432\u043e\u0440\u0447\u0435\u0441\u043a\u0438\u0435 \u043c\u0435\u043b\u043e\u0447\u0438.<\/p>\n<p>\u0414\u043b\u044f \u044e\u043d\u044b\u0445 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439, \u043d\u0435 \u0437\u0430\u0441\u0442\u0430\u0432\u0448\u0438\u0445 \u0434\u0430\u0436\u0435 \u0434\u0438\u0441\u043a\u0435\u0442 \u0441\u0442\u043e\u0438\u0442 \u043f\u043e\u044f\u0441\u043d\u0438\u0442\u044c, \u0447\u0442\u043e <a href=\"https:\/\/en.wikipedia.org\/wiki\/CP\/M\" rel=\"noopener noreferrer nofollow\">CP\/M<\/a> \u044d\u0442\u043e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0438\u0437 1970\u0445, \u0434\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a\u0438\u0445 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043e\u0432:<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0448\u0438\u0440\u0438\u043d\u0443 \u0434\u0438\u0441\u043a\u043e\u0432\u043e\u0434\u0430, \u044d\u0442\u043e \u0435\u0449\u0435 3&#8217;5 \u0434\u0438\u0441\u043a\u0435\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u0434\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0430 1&#8217;44<\/figcaption><\/div>\n<\/figure>\n<p>\u041a\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 <a href=\"https:\/\/en.wikipedia.org\/wiki\/PDP-7\" rel=\"noopener noreferrer nofollow\">PDP-7<\/a> \u0443\u0436\u0435 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u043b \u0432 <a href=\"https:\/\/habr.com\/ru\/articles\/933526\/\" rel=\"noopener noreferrer nofollow\">\u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435<\/a>, \u043d\u043e \u043d\u0430 \u0432\u0441\u044f\u043a\u0438\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 \u043d\u0430\u043f\u043e\u043c\u043d\u044e:<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u041a\u043e\u0433\u0434\u0430-\u0442\u043e \u044d\u0442\u043e \u043d\u0430\u0437\u044b\u0432\u0430\u043b\u0438 &#171;\u043c\u0438\u043d\u0438-\u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043e\u043c&#187;<\/figcaption><\/div>\n<\/figure>\n<p>\u0418 ACK \u0434\u0430\u0435\u0442 \u0432\u0430\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u043c \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0438 \u0432 2025\u043c \u0433\u043e\u0434\u0443, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430 <strong>\u044d\u0442\u043e\u043c<\/strong>.<\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0443 \u0432\u0430\u0441 \u043d\u0435 \u0441\u043b\u043e\u0436\u0438\u043b\u043e\u0441\u044c \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u0435\u043d\u0438\u0435, \u0431\u0443\u0434\u0442\u043e ACK \u044d\u0442\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043b\u0438\u0448\u044c \u043f\u0440\u043e <s>\u043f\u043b\u0435\u0448\u0438\u0432\u044b\u0445 \u0434\u0435\u0434\u043e\u0432<\/s> \u043f\u043e\u0436\u0438\u043b\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432 \u0438 \u0438\u0445 \u0434\u0440\u0435\u0432\u043d\u0438\u0435 \u0438\u0433\u0440\u0443\u0448\u043a\u0438, \u043f\u043e\u043a\u0430\u0436\u0443 \u043a\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0437\u0430\u044f\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0432\u044b\u0448\u0435 <a href=\"https:\/\/en.wikipedia.org\/wiki\/VideoCore\" rel=\"noopener noreferrer nofollow\">VideoCore IV<\/a>:<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435 \u044d\u0442\u043e \u0443\u0436\u0435 \u0432\u043f\u043e\u043b\u043d\u0435 \u0441\u0435\u0431\u0435 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u043f\u043b\u0430\u0442\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0430\u044f \u0432 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445.<\/p>\n<h4>Minix<\/h4>\n<p>\u041e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0441\u0442\u043e\u0438\u0442 \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044c \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0441\u00a0<a href=\"https:\/\/www.minix3.org\/\" rel=\"noopener noreferrer nofollow\">Minix<\/a>\u00a0\u2014 \u0442\u043e\u0439\u00a0\u0441\u0430\u043c\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439, <a href=\"https:\/\/minix1.woodhull.com\/osdi2\/\" rel=\"noopener noreferrer nofollow\">\u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0439 \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u0422\u0430\u043d\u0435\u043d\u0431\u0430\u0443\u043c\u043e\u043c<\/a> \u0434\u043b\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043d\u0435\u0440\u0430\u0434\u0438\u0432\u044b\u0445 \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432 \u0441\u043b\u043e\u0436\u043d\u043e\u0439 \u0442\u0435\u043c\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c.<\/p>\n<blockquote>\n<p>\u0412 \u043f\u043e\u0447\u0442\u043e\u0432\u043e\u0439 \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0435, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u043e\u0439 \u044d\u0442\u043e\u0439 \u041e\u0421 \u043a\u043e\u0433\u0434\u0430-\u0442\u043e \u0434\u0430\u0432\u043d\u043e \u043d\u0435\u043a\u0438\u0439 \u041b\u0438\u043d\u0443\u0441 \u0422\u043e\u0440\u0432\u0430\u043b\u044c\u0434\u0441 \u0432\u043f\u0435\u0440\u0432\u044b\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u0441\u0432\u043e\u0439 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442, \u0432\u044b\u0437\u0432\u0430\u0432\u0448\u0438\u0439 \u044d\u043f\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u044b\u0439 <s>\u0441\u0440\u0430\u0447<\/s> \u0434\u0438\u0441\u043a\u0443\u0440\u0441, \u043d\u044b\u043d\u0435 \u044f\u0432\u043b\u044f\u044e\u0449\u0438\u0439\u0441\u044f <a href=\"https:\/\/en.wikipedia.org\/wiki\/Tanenbaum%E2%80%93Torvalds%5C_debate\" rel=\"noopener noreferrer nofollow\">\u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0441\u043e\u0431\u044b\u0442\u0438\u0435\u043c<\/a>.<\/p>\n<\/blockquote>\n<p>\u0414\u0435\u043b\u043e \u0432\u00a0\u0442\u043e\u043c, \u0447\u0442\u043e ACK \u043a\u043e\u0433\u0434\u0430-\u0442\u043e \u0431\u044b\u043b \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u043c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u043c \u0432\u00a0Minix, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u044f\u0432\u043b\u044f\u044f\u0441\u044c \u043a\u043e\u043c\u043c\u0435\u0440\u0447\u0435\u0441\u043a\u0438\u043c \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u043c\u00a0\u2014 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u043b\u0441\u044f \u0432\u00a0\u0432\u0438\u0434\u0435 \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u043e\u0432:<\/p>\n<blockquote>\n<p>The ACK has been used as the standard Minix compiler for years. While the ACK was still commercial, this was done by distributing binaries; when it get opened, a version was forked off and is now used as part of the Minix base build.<\/p>\n<\/blockquote>\n<p>\u0424\u043e\u0440\u043a \u0441\u00a0\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 Minix \u043c\u043d\u0435 \u0431\u044b\u043b \u043d\u0435\u00a0\u043e\u0441\u043e\u0431\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0435\u043d, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438\u0441\u043a\u0430\u0442\u044c \u043d\u0435\u00a0\u0441\u0442\u0430\u043b, \u0442\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u0447\u0442\u043e \u0432\u00a0\u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 Minix 3 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432\u043f\u043e\u043b\u043d\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 clang. <\/p>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e \u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0435 \u0441\u0442\u043e\u043b\u044c \u0448\u0438\u0440\u043e\u043a\u043e\u0433\u043e \u043d\u0430\u0431\u043e\u0440\u0430 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 ACK \u043d\u0435 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0438 \u0447\u0442\u043e\u0431\u044b \u0434\u043e\u0431\u0438\u0442\u044c \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u0436\u043d\u0443\u044e \u043f\u0441\u0438\u0445\u0438\u043a\u0443 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \u043f\u0440\u043e\u0446\u0438\u0442\u0438\u0440\u0443\u044e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0430\u0431\u0437\u0430\u0446:<\/p>\n<blockquote>\n<p>Each language comes with its own runtime, so if you\u2019re a C programmer you also get a libc. Compared to gcc, it is far smaller, faster and easier to port.<\/p>\n<\/blockquote>\n<p>\u0421\u0442\u043e\u0438\u043b\u043e \u0434\u043e\u0433\u0430\u0434\u0430\u0442\u044c\u0441\u044f \u043e\u0431 \u044d\u0442\u043e\u043c, \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0432 \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440 \u0438 \u043f\u0440\u0438\u043a\u0438\u043d\u0443\u0432 \u043a\u0430\u043a \u043e\u043d\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u043d\u043e \u0442\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435.<\/p>\n<p>\u0422\u0430\u043a \u0447\u0442\u043e ACK \u044d\u0442\u043e \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439, \u0440\u0435\u0434\u043a\u0438\u0439 \u0438 \u043d\u0435\u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u0442\u0432\u043e\u0440\u0438\u0442\u044c \u0437\u0430\u043f\u0440\u0435\u0434\u0435\u043b\u044c\u043d\u0443\u044e \u0434\u0438\u0447\u044c \u0432\u0440\u043e\u0434\u0435 \u043a\u0440\u043e\u0441\u0441-\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0438\u0437 FreeBSD \u0432 MS-DOS \u043f\u043e\u0434\u0440\u0443\u0447\u043d\u044b\u043c\u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0432\u044b \u043c\u043e\u0433\u043b\u0438 \u0432\u0438\u0434\u0435\u0442\u044c \u0432 \u0448\u0430\u043f\u043a\u0435 \u0441\u0442\u0430\u0442\u044c\u0438.<\/p>\n<p>\u041d\u0438\u0436\u0435 \u044f \u043e\u043f\u0438\u0448\u0443 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0441\u0431\u043e\u0440\u043a\u0438 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430.<\/p>\n<h3>\u0421\u0431\u043e\u0440\u043a\u0430<\/h3>\n<p>\u0421\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0431\u0443\u0434\u0443 <s>\u043f\u043e \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u0438<\/s> \u043d\u0430 FreeBSD 14, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0447\u0430\u0441\u0442\u044c \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0445 \u0448\u0430\u0433\u043e\u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445.<\/p>\n<p>\u041f\u0440\u043e\u0435\u043a\u0442 \u0441\u0442\u0430\u0440\u044b\u0439, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0432 git \u0432\u0435\u0434\u0435\u0442\u0441\u044f \u0434\u0430\u0432\u043d\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u043d\u0443\u0442\u0440\u0438 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0440\u0430\u0437\u043d\u044b\u0445 \u0432\u0435\u0442\u043e\u043a, \u043d\u0435 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u0434\u043b\u044f \u043e\u0431\u044b\u0432\u0430\u0442\u0435\u043b\u044f. <\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u043d\u0435 \u0432\u044b\u043a\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u0432\u0441\u044e \u044d\u0442\u0443 \u0434\u0438\u0447\u044c, \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u043a\u043b\u044e\u0447 <code>--depth -1<\/code>, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u0440\u0443\u0436\u0435\u043d\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u0435\u0442\u043a\u0430 \u043f\u043e-\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e:<\/p>\n<pre><code class=\"bash\">git clone --depth 1 https:\/\/github.com\/davidgiven\/ack.git<\/code><\/pre>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0443\u044e 6.0 \u0432\u0435\u0440\u0441\u0438\u044e:<\/p>\n<blockquote>\n<p>ACK 6.0 is a ground-up reworking of the whole compiler suite, with a lot of the more archaic features removed.<\/p>\n<\/blockquote>\n<p>\u0421\u0431\u043e\u0440\u043a\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430.. \u0432\u0435\u0441\u044c\u043c\u0430 \u0441\u0432\u043e\u0435\u043e\u0431\u0440\u0430\u0437\u043d\u0430, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0430 \u043d\u0430 \u0441\u043a\u0440\u0438\u043f\u0442\u0430\u0445 Python \u0438 \u043d\u0435\u043c\u043d\u043e\u0433\u043e Lua. \u041a\u0430\u043a \u0433\u043b\u0430\u0441\u0438\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435:<\/p>\n<blockquote>\n<p>The version 5.0 build mechanism has been completely rewritten (twice).<\/p>\n<\/blockquote>\n<p>\u0418 \u0432\u0438\u0434\u0438\u043c\u043e \u044d\u0442\u043e \u0435\u0449\u0435 \u043d\u0435 \u043a\u043e\u043d\u0435\u0446.<\/p>\n<p>\u0414\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u043d\u0443\u0436\u0435\u043d \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u0430\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432:<\/p>\n<ul>\n<li>\n<p>\u043b\u044e\u0431\u043e\u0439 ANSI C \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 (\u0430\u0432\u0442\u043e\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b GCC)<\/p>\n<\/li>\n<li>\n<p>flex \u0438 yacc<\/p>\n<\/li>\n<li>\n<p>GNU make (gmake)<\/p>\n<\/li>\n<li>\n<p>Lua \u0441 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439 <code>lua-posix<\/code> <\/p>\n<\/li>\n<li>\n<p>Python 3.4 \u0438 \u0432\u044b\u0448\u0435<\/p>\n<\/li>\n<li>\n<p>~2\u0413\u0431 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430 <\/p>\n<\/li>\n<\/ul>\n<p>\u0412 \u0442\u0440\u0435\u043a\u0435\u0440\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0438 \u043f\u0443\u043b-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u0430\u0445 \u0435\u0441\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0442 \u043a\u043e\u043c\u0440\u0430\u0434\u043e\u0432, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0445 ACK \u043d\u0430 OpenBSD, \u0442\u0430\u043a \u0447\u0442\u043e \u0432\u0440\u044f\u0434\u043b\u0438 \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0432 \u043a\u0443\u0434\u0430 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 Linux, Windows \u0438 MacOS.<\/p>\n<p>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0441\u0431\u043e\u0440\u043a\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c\u00a0\u2014 \u0432\u044b\u0437\u043e\u0432\u043e\u043c <code>GNU Make<\/code> \u0432\u00a0\u043a\u043e\u0440\u043d\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430:<\/p>\n<pre><code class=\"bash\">gmake<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0430\u0432\u0442\u043e\u0440 \u0441\u043e\u0431\u0438\u0440\u0430\u043b \u043d\u0430 FreeBSD, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0438\u043c\u0435\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u0443\u044e \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0443 \u0432 \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0442\u0430\u043a\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430:<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u041f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u044d\u0442\u043e \u0438\u0437-\u0437\u0430 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a <code>lua<\/code> \u0432\u043e FreeBSD \u0438\u043c\u0435\u0435\u0442 \u043f\u043e\u0441\u0442\u0444\u0438\u043a\u0441 \u0432\u0435\u0440\u0441\u0438\u0438:<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0422\u0430\u043a \u0447\u0442\u043e \u043d\u0430\u0434\u043e \u043e\u0442\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c <code>Makefile<\/code> \u0432 \u043a\u043e\u0440\u043d\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0438 \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 <code>LUA=<\/code>, \u0434\u043e\u0431\u0430\u0432\u0438\u0432 \u0432\u0435\u0440\u0441\u0438\u044e:<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u0430 \u0434\u043b\u044f FreeBSD, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 <code>gcc<\/code> \u0443 \u043d\u0430\u0441 \u0442\u043e\u0436\u0435 \u0441 \u043f\u043e\u0441\u0442\u0444\u0438\u043a\u0441\u043e\u043c \u0432\u0435\u0440\u0441\u0438\u0438:<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442 \u0447\u0442\u043e \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u043e\u0434\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f <code>CC=<\/code>, \u043d\u0430\u0448\u043b\u043e\u0441\u044c \u043c\u0435\u0441\u0442\u043e \u0432 \u0441\u043a\u0440\u0438\u043f\u0442\u0430\u0445 \u0441\u0431\u043e\u0440\u043a\u0438, \u0433\u0434\u0435 \u0431\u044b\u043b\u0438 \u043f\u0440\u044f\u043c\u043e \u0437\u0430\u0431\u0438\u0442\u044b \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u043e\u0432:<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u041d\u0443\u0436\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <code>ack\/build\/<\/code><a href=\"http:\/\/ab.mk\" rel=\"noopener noreferrer nofollow\"><code>ab.mk<\/code><\/a> \u0438\u00a0\u043f\u043e\u0447\u0435\u043c\u0443-\u0442\u043e \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430\u00a0\u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0438\u00a0\u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u00a0\u2014 \u043d\u0435\u00a0\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u044b\u043c.<\/p>\n<p>\u041f\u043e \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0438 \u0441 <code>lua<\/code>, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u043e\u0441\u0442\u0444\u0438\u043a\u0441 \u0432\u0435\u0440\u0441\u0438\u0438 \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c:<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0437\u0430\u043d\u043e\u0432\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0441\u0431\u043e\u0440\u043a\u0443 \u0438 \u0436\u0434\u0435\u043c, \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0434\u0440\u0443\u0433\u0438\u0445 \u043e\u0448\u0438\u0431\u043e\u043a \u043f\u0440\u0438 \u0441\u0431\u043e\u0440\u043a\u0435 \u0437\u0430\u043c\u0435\u0447\u0435\u043d\u043e \u043d\u0435 \u0431\u044b\u043b\u043e.<\/p>\n<p>\u0418\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0441\u0431\u043e\u0440\u043a\u0438, \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438 \u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u0432 <code>1.7\u0413\u0431<\/code>, \u0447\u0442\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u0437\u0430\u044f\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0432 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u0445:<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u041f\u043e-\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e ACK \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 <code>\/opt\/pkg\/ack<\/code>, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0438\u0437 \u043a\u043e\u0440\u043d\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430:<\/p>\n<pre><code class=\"bash\">mkdir -p \/opt\/pkg\/ack gmake install<\/code><\/pre>\n<p>\u041f\u0435\u0440\u0435\u0434 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u044b \u0442\u0435\u0441\u0442\u044b, \u043d\u043e \u0434\u0430\u043b\u0435\u043a\u043e \u043d\u0435 \u0432\u0441\u0435:<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0418\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 <code>bin<\/code> \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0425\u043e\u0442\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0438 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 <code>ack\/lib\/ack<\/code>:<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a\u00a0\u0441\u0430\u043c\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u043c\u0443\u00a0\u2014 \u043a\u00a0\u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u0438\u00a0\u0440\u0430\u0431\u043e\u0442\u0435 \u0441\u00a0ACK, \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u0435\u0441\u0435\u043b\u043e.<\/p>\n<blockquote>\n<p>\u0412 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043a\u0430\u0442\u0430\u043b\u043e\u0433 <a href=\"https:\/\/github.com\/davidgiven\/ack\/tree\/default\/examples\" rel=\"noopener noreferrer nofollow\"><code>examples<\/code><\/a>, \u0433\u0434\u0435 \u043b\u0435\u0436\u0430\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0431\u043e\u043b\u0435\u0435-\u043c\u0435\u043d\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u0439 \u043b\u043e\u0433\u0438\u043a\u0438 \u043d\u0430 <a href=\"https:\/\/github.com\/davidgiven\/ack\/blob\/default\/examples\/startrek.c\" rel=\"noopener noreferrer nofollow\">\u0421\u0438<\/a>, <a href=\"https:\/\/github.com\/davidgiven\/ack\/blob\/default\/examples\/hilo.p\" rel=\"noopener noreferrer nofollow\">\u041f\u0430\u0441\u043a\u0430\u043b\u0435<\/a> \u0438 <a href=\"https:\/\/github.com\/davidgiven\/ack\/blob\/default\/examples\/hilo.bas\" rel=\"noopener noreferrer nofollow\">\u0411\u0435\u0439\u0441\u0438\u043a\u0435<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0442\u043e\u0447\u043d\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e ACK.<\/p>\n<\/blockquote>\n<p>\u041e\u0434\u0438\u043d \u0438\u0437 \u0442\u0430\u043a\u0438\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c <a href=\"https:\/\/github.com\/davidgiven\/ack\/blob\/default\/examples\/mandelbrot.c\" rel=\"noopener noreferrer nofollow\">mandelbrot.c<\/a> , \u0432\u044b\u0432\u043e\u0434\u044f\u0449\u0438\u0439 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u0438\u043c\u0432\u043e\u043b\u0430 <code>*<\/code> <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9C%D0%BD%D0%BE%D0%B6%D0%B5%D1%81%D1%82%D0%B2%D0%BE%5C_%D0%9C%D0%B0%D0%BD%D0%B4%D0%B5%D0%BB%D1%8C%D0%B1%D1%80%D0%BE%D1%82%D0%B0\" rel=\"noopener noreferrer nofollow\">\u0444\u0440\u0430\u043a\u0442\u0430\u043b \u041c\u0430\u043d\u0434\u0435\u043b\u044c\u0431\u0440\u043e\u0442\u0430<\/a> \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043b\u0438\u0446\u0435\u0437\u0440\u0435\u0442\u044c \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 \u043d\u0430 \u0437\u0430\u0433\u043b\u0430\u0432\u043d\u043e\u0439 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u043a \u0441\u0442\u0430\u0442\u044c\u0435.<\/p>\n<p>\u041d\u043e \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043c\u043d\u0435 \u0431\u044b\u043b \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0435\u0435 \u0441\u0430\u043c <em>\u043f\u0440\u043e\u0446\u0435\u0441\u0441<\/em> \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u044d\u043a\u0437\u043e\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430\u0445 \u0438\u0437\u00a0\u0434\u0440\u0435\u0432\u043d\u0438\u0445 \u0432\u0440\u0435\u043c\u0435\u043d \u043d\u0435\u0436\u0435\u043b\u0438 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b, \u043d\u0435\u00a0\u0441\u0442\u0430\u043b \u0437\u0430\u043c\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0439 \u043b\u043e\u0433\u0438\u043a\u043e\u0439, \u0432\u0437\u044f\u0432 \u0432\u00a0\u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u044d\u0442\u0430\u043b\u043e\u043d\u0430 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u00abHello world!\u00bb \u043d\u0430\u00a0\u0421\u0438: <\/p>\n<pre><code class=\"cpp\">#include &lt;stdio.h&gt;  int main(void) {   printf(\"Hello, alex0x08 \\n\");   return 0; }<\/code><\/pre>\n<p>\u0418 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043d\u0438\u0436\u0435 \u043f\u043e\u043a\u0430\u0436\u0443 \u0441\u0431\u043e\u0440\u043a\u0443 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a \u044d\u0442\u043e\u0439 \u043d\u0435\u0441\u0442\u0430\u0440\u0435\u044e\u0449\u0435\u0439 \u043a\u043b\u0430\u0441\u0441\u0438\u043a\u0438 \u043f\u043e\u0434 \u043a\u0440\u0430\u0439\u043d\u0435 \u044d\u043a\u0437\u043e\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 (\u043f\u043e \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c \u043c\u0435\u0440\u043a\u0430\u043c) \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b.<\/p>\n<h3>\u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f FreeBSD-&gt;MS-DOS<\/h3>\n<p>\u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044e \u0432 COM-\u0444\u0430\u0439\u043b \u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043d\u0430 \u0437\u0430\u0433\u043b\u0430\u0432\u043d\u043e\u0439 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0438\u0436\u0435 \u043f\u043e\u043a\u0430\u0436\u0443 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044e \u0432 <code>EXE<\/code> \u043f\u043e\u0434 DOS:<\/p>\n<pre><code class=\"bash\">\/opt\/pkg\/ack\/bin\/ack -mmsdos386 -O hello.c -o hello.exe<\/code><\/pre>\n<p>\u0426\u0438\u0442\u0438\u0440\u0443\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e:<\/p>\n<blockquote>\n<p>msdos386      produces i386 MS-DOS 32-bit DPMI .EXE files<\/p>\n<\/blockquote>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0443\u0436\u0435\u043d \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0439 <a href=\"https:\/\/en.wikipedia.org\/wiki\/DOS%5C_Protected%5C_Mode%5C_Interface\" rel=\"noopener noreferrer nofollow\">DPMI-\u0440\u0435\u0437\u0438\u0434\u0435\u043d\u0442<\/a>\u00a0\u2014 \u0442.\u00a0\u043d. \u00ab\u0440\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u0435\u043b\u044c \u043f\u0430\u043c\u044f\u0442\u0438\u00bb, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0432\u0437\u044f\u0442\u044c \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 <a href=\"https:\/\/www.dosgames.com\/utilities.php\" rel=\"noopener noreferrer nofollow\">\u0442\u0443\u0442<\/a>.<\/p>\n<p>\u0422\u0430\u043a \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0432 \u0437\u0430\u043f\u0438\u0441\u0438:<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435 \u0437\u0430\u043f\u0443\u0441\u043a \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u043b\u0441\u044f \u0432 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u043c \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0435 DOS \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c <a href=\"https:\/\/www.dosbox.com\/\" rel=\"noopener noreferrer nofollow\">Dosbox<\/a>, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u043c \u0438\u0437 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 FreeBSD.<\/p>\n<h3>\u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u0434\u043b\u044f CP\/M<\/h3>\n<p>\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0443\u0433\u0430\u0440, \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e \u0441\u0431\u043e\u0440\u043a\u0443 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a \u043f\u043e\u0434 <a href=\"https:\/\/en.wikipedia.org\/wiki\/CP\/M\" rel=\"noopener noreferrer nofollow\">CP\/M<\/a>, \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u044e \u0447\u0442\u043e \u044d\u0442\u043e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0438\u0437 1970\u0445 (\u0441\u0442\u0430\u0440\u0448\u0435 \u0430\u0432\u0442\u043e\u0440\u0430) \u0430 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u044b, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b\u0438 <a href=\"https:\/\/itsfoss.com\/cp-m-os-history\/\" rel=\"noopener noreferrer nofollow\">\u0442\u0430\u043a<\/a>:<\/p>\n<figure class=\"full-width\">\n<div><figcaption>Kaypro II<\/figcaption><\/div>\n<\/figure>\n<p>\u0422\u0443\u0442 \u043d\u0430\u0434\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043e\u0442\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435 \u0438\u00a0\u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0440\u043e \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440 CP\/M, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0435\u0433\u043e \u0432\u00a0\u043f\u0430\u043a\u0435\u0442\u0430\u0445 FreeBSD \u043d\u0435\u00a0\u043d\u0430\u0448\u043b\u043e\u0441\u044c\u00a0\u2014 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0440\u0443\u043a\u0430\u043c\u0438. <\/p>\n<h4>RunCPM &#8212; Z80 CP\/M emulator<\/h4>\n<p>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0432\u0435\u0434\u0435\u0442\u0441\u044f \u043d\u0430 Github, \u0437\u0430\u0431\u0438\u0440\u0430\u0435\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438: <\/p>\n<pre><code class=\"bash\">git clone https:\/\/github.com\/MockbaTheBorg\/RunCPM.git<\/code><\/pre>\n<p>\u041f\u0440\u0438 \u0441\u0431\u043e\u0440\u043a\u0435 \u0431\u0443\u0434\u0435\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u0430\u044f \u0432\u044b\u0448\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441\u00a0\u043d\u043e\u043c\u0435\u0440\u043e\u043c \u0432\u0435\u0440\u0441\u0438\u0438 \u0432\u00a0\u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 GCC\u00a0\u2014 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f \u0434\u043b\u044f FreeBSD, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u00a0\u0444\u0430\u0439\u043b\u0435 <code>RunCPM\/Makefile.posix<\/code> \u0432\u00a0\u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e <code>\u0421\u0421=<\/code> \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u043e\u043c\u0435\u0440 \u0432\u0435\u0440\u0441\u0438\u0438:<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0421\u0430\u043c\u0430 \u0441\u0431\u043e\u0440\u043a\u0430 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439:<\/p>\n<pre><code class=\"bash\">gmake posix build<\/code><\/pre>\n<p>\u041d\u043e\u00a0\u044d\u0442\u043e \u0435\u0449\u0435 \u043d\u0435\u00a0\u0432\u0441\u0435 \u043f\u0440\u0438\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f, \u043f\u043e\u0441\u043b\u0435 \u0441\u0431\u043e\u0440\u043a\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0447\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e\u00a0\u2014 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0438\u0437\u00a0\u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440:<\/p>\n<pre><code class=\"bash\">mkdir disk unzip ..\/..\/DISK\/A0.ZIP cp ..\/RunCPM .<\/code><\/pre>\n<p>\u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u043a\u0430\u0442\u0430\u043b\u043e\u0433 <code>A\/0<\/code>, \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0443\u0434\u0443\u0442 \u0432\u0441\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b CP\/M, \u0432 \u043a\u043e\u0440\u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c\u044b\u0439 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a \u0441\u0430\u043c\u043e\u0433\u043e \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430.<\/p>\n<p>\u0412\u0441\u0435 \u0433\u043e\u0442\u043e\u0432\u043e \u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e, \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440:<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0414\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0430 \u0448\u0430\u043f\u043a\u0430 \u0441 \u0432\u0435\u0440\u0441\u0438\u0435\u0439 \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0430 <code>DIR<\/code>.<\/p>\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-471083","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/471083","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=471083"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/471083\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=471083"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=471083"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=471083"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}