{"id":252179,"date":"2015-03-02T13:37:03","date_gmt":"2015-03-02T09:37:03","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=252179"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=252179","title":{"rendered":"\u041a\u0430\u043a \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0431\u0435\u0437 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b: \u0447\u0430\u0441\u0442\u044c 6. \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0438\u0441\u043a\u0430\u043c\u0438 \u0441 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 FAT"},"content":{"rendered":"<p>     \t\u0412 \u043f\u044f\u0442\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043d\u0430\u0448\u0435\u0439 \u0441\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0442\u0435\u0439 \u043c\u044b \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0438, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f BIOS&#8217;\u0430 \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u0432 \u0437\u0430\u0449\u0438\u0449\u0435\u043d\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c, \u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b\u0438 \u0440\u0430\u0437\u043c\u0435\u0440 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043c\u044b \u0440\u0430\u0437\u043e\u0432\u044c\u0435\u043c \u044d\u0442\u043e\u0442 \u0443\u0441\u043f\u0435\u0445 \u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u0443\u044e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0438\u0441\u043a\u0430\u043c\u0438 \u0441 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 FAT16 \u0438 FAT32. \u0420\u0430\u0431\u043e\u0442\u0443 \u0441 \u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u043d\u0430 \u0434\u0438\u0441\u043a\u0435 \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0431\u0438\u0442\u044c \u043d\u0430 2 \u0447\u0430\u0441\u0442\u0438: \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u0438 \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u0434\u0438\u0441\u043a\u043e\u043c \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0447\u0442\u0435\u043d\u0438\u044f\/\u0437\u0430\u043f\u0438\u0441\u0438 \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432. \u041c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u00ab\u0434\u0440\u0430\u0439\u0432\u0435\u0440\u00bb \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 \u00ab\u0434\u0440\u0430\u0439\u0432\u0435\u0440\u00bb \u0434\u0438\u0441\u043a\u0430.<\/p>\n<p>  \u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0434\u0438\u0441\u043a\u043e\u043c \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0447\u0442\u0435\u043d\u0438\u044f\/\u0437\u0430\u043f\u0438\u0441\u0438 \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432<br \/>\n  \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430\u0443\u0447\u0438\u043c\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0434\u0438\u0441\u043a\u043e\u043c.<br \/>\n  \u0418\u0442\u0430\u043a, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f BIOS&#8217;\u0430. \u041f\u043e\u043c\u0438\u043c\u043e \u043f\u0440\u043e\u0447\u0438\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439, BIOS \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0438\u0441\u043a\u043e\u043c, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u2014 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 int 0x13. \u0421\u043e \u0441\u043f\u0438\u0441\u043a\u043e\u043c \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0445 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435\u043c, \u043c\u043e\u0436\u043d\u043e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u0432\u0438\u043a\u0438\u043f\u0435\u0434\u0438\u0438. \u041d\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0442 \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u0447\u0442\u0435\u043d\u0438\u044f \u0438 \u0437\u0430\u043f\u0438\u0441\u0438 \u0434\u0438\u0441\u043a\u043e\u0432.<\/p>\n<p>  \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0434\u0432\u0430 \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u0438 \u0441\u0435\u043a\u0442\u043e\u0440\u0430 \u043d\u0430 \u0434\u0438\u0441\u043a\u0435, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 BIOS \u2013 CHS(cylinder-head-sector) \u0438 LBA(logical block addressing). \u0410\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u044f CHS \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0430 \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0438 \u0434\u0438\u0441\u043a\u0430, \u0438 \u0430\u0434\u0440\u0435\u0441\u043e\u043c \u0441\u0435\u043a\u0442\u043e\u0440\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u043e\u0432\u043e\u043a\u0443\u043f\u043d\u043e\u0441\u0442\u044c \u0442\u0440\u0435\u0445 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442: \u0446\u0438\u043b\u0438\u043d\u0434\u0440, \u0433\u043e\u043b\u043e\u0432\u043a\u0430, \u0441\u0435\u043a\u0442\u043e\u0440. \u0421\u043f\u043e\u0441\u043e\u0431 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0430\u0434\u0440\u0435\u0441\u043e\u0432\u0430\u0442\u044c \u0434\u043e 8\u0413\u0431. \u041f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 int0x13 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0447\u0438\u0442\u0430\u0442\u044c  \u0438  \u043f\u0438\u0441\u0430\u0442\u044c  \u043d\u0430 \u0434\u0438\u0441\u043a \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u044d\u0442\u043e\u0439 \u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u0438.<\/p>\n<p>  \u041f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e 8\u0413\u0431 \u2014 \u044d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043c\u0430\u043b\u043e, \u0438 \u0434\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u043c, \u0430 \u0432\u0441\u0435 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 (\u0438 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c) \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u044b \u0436\u0435\u0441\u0442\u043a\u0438\u0445 \u0434\u0438\u0441\u043a\u043e\u0432 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442 \u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u044e LBA. \u0410\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u044f LBA \u0430\u0431\u0441\u0442\u0440\u0430\u0433\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043e\u0442 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0438 \u0434\u0438\u0441\u043a\u0430 \u0438 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u0442 \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0441\u0435\u043a\u0442\u043e\u0440\u0443 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043d\u043e\u043c\u0435\u0440. \u041d\u0443\u043c\u0435\u0440\u0430\u0446\u0438\u044f \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 \u043d\u0443\u043b\u044f. LBA \u0434\u043b\u044f \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u043d\u043e\u043c\u0435\u0440\u0430 \u0431\u043b\u043e\u043a\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 48 \u0431\u0438\u0442, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0430\u0434\u0440\u0435\u0441\u043e\u0432\u0430\u0442\u044c 128 \u041f\u0438\u0411, \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0441\u0435\u043a\u0442\u043e\u0440\u0430 \u0432 512 \u0431\u0430\u0439\u0442. \u041f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 int0x13 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u0432\u0430 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f \u0438 \u0437\u0430\u043f\u0438\u0441\u0438 \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u043d\u0430 \u0434\u0438\u0441\u043a \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c LBA. \u0418\u0445 \u043c\u044b \u0438 \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c. \u0414\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f \u0441\u0435\u043a\u0442\u043e\u0440\u0430 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 in0x13 \u043e\u0436\u0438\u0434\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b:<\/p>\n<p>  \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 DAP:<\/p>\n<p>  \u041f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:<\/p>\n<p>  \u041e\u0434\u0438\u043d \u0438\u0437 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u2013 \u043d\u043e\u043c\u0435\u0440 \u0434\u0438\u0441\u043a\u0430. \u041d\u0443\u0436\u043d\u043e \u043a\u0430\u043a-\u0442\u043e \u0443\u0437\u043d\u0430\u0442\u044c \u043d\u043e\u043c\u0435\u0440 \u0434\u0438\u0441\u043a\u0430, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043c\u044b \u0441\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c. \u041d\u0443\u043c\u0435\u0440\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c: \u0444\u043b\u043e\u043f\u043f\u0438-\u0434\u0438\u0441\u043a\u0438 (fdd), \u0438 \u0432\u0441\u0435, \u0447\u0442\u043e \u044d\u043c\u0443\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0444\u043b\u043e\u043f\u043f\u0438, \u043d\u0443\u043c\u0435\u0440\u0443\u044e\u0442\u0441\u044f \u0441 \u043d\u0443\u043b\u044f, \u0430 \u0436\u0435\u0441\u0442\u043a\u0438\u0435 \u0434\u0438\u0441\u043a\u0438 (hdd), \u0438 \u0432\u0441\u0435, \u0447\u0442\u043e \u044d\u043c\u0443\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u043e\u043d\u0438(usb-\u0444\u043b\u0435\u0448\u043a\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440), \u043d\u0443\u043c\u0435\u0440\u0443\u044e\u0442\u0441\u044f \u0441 0x80. \u042d\u0442\u043e\u0442 \u043d\u043e\u043c\u0435\u0440 \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u0441\u0432\u044f\u0437\u0430\u043d \u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 BIOS\u2019\u0430. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0434\u0438\u0441\u043a, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043c\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u0435\u043c \u0434\u0438\u0441\u043a\u043e\u043c, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u044b \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043b\u0438\u0441\u044c. <\/p>\n<p>  \u041a\u043e\u0433\u0434\u0430 BIOS \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 MBR, \u043e\u043d \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0435\u0433\u043e \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 0000h:7C00h, \u0430 \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435 DL \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442 \u043d\u0443\u0436\u043d\u044b\u0439 \u043d\u0430\u043c \u043d\u043e\u043c\u0435\u0440 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \u042d\u0442\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u044c\u044e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430  \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043c\u0435\u0436\u0434\u0443 BIOS \u0438 MBR. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u044d\u0442\u043e\u0442 \u043d\u043e\u043c\u0435\u0440 \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u0432 GRUB, \u0433\u0434\u0435 \u0434\u0430\u043b\u0435\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0438\u0441\u043a\u043e\u043c. GRUB, \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442 \u044d\u0442\u043e\u0442 \u043d\u043e\u043c\u0435\u0440 \u041e\u0421 \u043a\u0430\u043a \u0447\u0430\u0441\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b Multiboot information. <\/p>\n<p>  \u0421\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0442 GRUB\u2019\u0430 \u043a \u041e\u0421 \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435 EBX \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u044d\u0442\u0443 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443. \u041f\u0435\u0440\u0432\u043e\u0435 \u043f\u043e\u043b\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u2013 \u044d\u0442\u043e flags, \u0438 \u0435\u0441\u043b\u0438 \u0432 \u043d\u0435\u043c \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d 2-\u0439 \u0431\u0438\u0442, \u0442\u043e \u043f\u043e\u043b\u0435 boot_device \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e. \u042d\u0442\u043e \u043f\u043e\u043b\u0435 \u0442\u0430\u043a \u0436\u0435 \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0438\u0442 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 Multiboot information \u0438 \u0432 \u0435\u0433\u043e \u0441\u0442\u0430\u0440\u0448\u0435\u043c \u0431\u0430\u0439\u0442\u0435 (\u0440\u0430\u0437\u043c\u0435\u0440 \u043f\u043e\u043b\u044f \u2013 4 \u0431\u0430\u0439\u0442\u0430) \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u043d\u0443\u0436\u043d\u044b\u0439 \u043d\u0430\u043c \u043d\u043e\u043c\u0435\u0440 \u0434\u0438\u0441\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 int0x13. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f GRUB, \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u044e\u0449\u0438\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f\/\u0437\u0430\u043f\u0438\u0441\u0438 \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u043d\u0430 \u0434\u0438\u0441\u043a.<\/p>\n<p>  \u041c\u044b \u043d\u0430\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u0447\u0438\u0442\u0430\u0442\u044c \u0438 \u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0435\u043a\u0442\u043e\u0440\u0430 \u043d\u0430 \u0434\u0438\u0441\u043a, \u044d\u0442\u043e, \u0431\u0435\u0437\u0443\u0441\u043b\u043e\u0432\u043d\u043e, \u0432\u0430\u0436\u043d\u043e. \u041d\u043e \u0444\u0430\u0439\u043b\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u0430 \u043d\u0435 \u043a \u0446\u0435\u043b\u043e\u043c\u0443 \u0434\u0438\u0441\u043a\u0443, \u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u043a \u0435\u0433\u043e \u0447\u0430\u0441\u0442\u0438 \u2013 \u0440\u0430\u0437\u0434\u0435\u043b\u0443. \u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0441\u0435\u043a\u0442\u043e\u0440, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u0434\u0435\u043b, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u043d\u0430 \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f. \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u0431 \u0438\u043c\u0435\u044e\u0449\u0438\u0445\u0441\u044f \u043d\u0430 \u0434\u0438\u0441\u043a\u0435 \u0441\u0435\u043a\u0442\u043e\u0440\u0430\u0445 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u0441\u0435\u043a\u0442\u043e\u0440\u0435 \u0434\u0438\u0441\u043a\u0430, \u0442\u0430\u043c \u0436\u0435, \u0433\u0434\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f MBR. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0432 MBR, \u043d\u043e \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043d\u0438\u0445 \u0432\u0435\u0440\u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430:<\/p>\n<p>  \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430\u0445 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u043e\u0432. \u041d\u0430 \u0434\u0438\u0441\u043a\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e 4 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u044b\u0445 \u0440\u0430\u0437\u0434\u0435\u043b\u0430, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c\u0441\u044f. \u041d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c \u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f 8 \u0431\u0430\u0439\u0442. \u041f\u0435\u0440\u0432\u044b\u0439 \u0431\u0430\u0439\u0442 \u2014 \u044d\u0442\u043e \u0444\u043b\u0430\u0433\u0438, \u0435\u0441\u043b\u0438 \u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 0x80, \u0442\u043e \u0440\u0430\u0437\u0434\u0435\u043b \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u044b\u0439. \u041a\u043e\u0434 MBR \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0441\u0432\u043e\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u043e\u0431\u0435\u0433\u0430\u0435\u0442 \u043f\u043e \u044d\u0442\u0438\u043c 4-\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0430\u043c \u0432 \u043f\u043e\u0438\u0441\u043a\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430. \u041f\u043e\u0441\u043b\u0435 \u0435\u0433\u043e \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f, MBR \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0441\u0435\u043a\u0442\u043e\u0440\u0430 \u044d\u0442\u043e\u0433\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430 \u043d\u0430 \u0430\u0434\u0440\u0435\u0441 0000h:7C00h \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442 \u0442\u0443\u0434\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435. \u041d\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442 LBA \u0430\u0434\u0440\u0435\u0441 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0441\u0435\u043a\u0442\u043e\u0440\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430, \u0442\u0430\u043a \u043a\u0430\u043a \u0438\u043c\u0435\u043d\u043d\u043e \u043d\u0430 \u043d\u0435\u043c \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0448\u0435 \u044f\u0434\u0440\u043e, \u0438 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0444\u0430\u0439\u043b\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0447\u0438\u0442\u0430\u0442\u044c. \u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0430\u0434\u0440\u0435\u0441, \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0439 \u0441\u0435\u043a\u0442\u043e\u0440 \u0434\u0438\u0441\u043a\u0430, \u043d\u0430\u0439\u0442\u0438 \u043d\u0430 \u043d\u0435\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0440\u0430\u0437\u0434\u0435\u043b\u043e\u0432, \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u043e\u0432 \u043d\u0430\u0439\u0442\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u044b\u0439 \u0440\u0430\u0437\u0434\u0435\u043b, \u0430 \u0438\u0437 \u0435\u0433\u043e \u0437\u0430\u043f\u0438\u0441\u0438 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043d\u0443\u0436\u043d\u043e\u0435 \u043f\u043e\u043b\u0435.<\/p>\n<p>  \u0418\u0442\u0430\u043a, \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f \u0441\u0435\u043a\u0442\u043e\u0440\u0430 \u0441 \u0434\u0438\u0441\u043a\u0430 \u0438 \u0437\u043d\u0430\u043d\u0438\u0435 \u043e \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u043d\u0430\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0430 \u043d\u0430 \u0434\u0438\u0441\u043a\u0435. \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043d\u0430\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u043d\u0430 \u044d\u0442\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435.<\/p>\n<p>  \u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439<br \/>\n  \u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 fat_io_lib. \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u043f\u043e\u0434 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439 GPL. \u041e\u043d\u0430 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u0438 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f\u043c\u0438, \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0439 \u0438\u043c\u0435\u044e\u0449\u0435\u043c\u0443\u0441\u044f \u0432 libc. \u0420\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u0442\u0430\u043a\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043a\u0430\u043a fopen(), fgets(), fputc(), fread(), fwrite() \u0438 \u0442.\u0434. \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u0441\u0432\u043e\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u0434\u0432\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438: \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0435\u043a\u0442\u043e\u0440 \u0438 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0441\u0435\u043a\u0442\u043e\u0440, \u043f\u0440\u0438\u0447\u0435\u043c \u043f\u0435\u0440\u0432\u0430\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439. \u0424\u0443\u043d\u043a\u0446\u0438\u0438 \u0438\u043c\u0435\u044e\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f:<\/p>\n<p>  int media_read(uint32 sector, uint8 *buffer, uint32 sector_count);<br \/>\n  int media_write(uint32 sector, uint8 *buffer, uint32 sector_count);<br \/>\n  Return:  int, 1 = success, 0 = failure.<\/p>\n<p>  \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u043d\u0430 \u0447\u0438\u0441\u0442\u043e\u043c \u0421, \u0447\u0442\u043e \u043e\u043f\u044f\u0442\u044c-\u0442\u0430\u043a\u0438 \u043d\u0430\u043c \u043d\u0430 \u0440\u0443\u043a\u0443. \u0414\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u0441\u0432\u043e\u0435\u0439 \u043c\u0438\u043d\u0438-\u041e\u0421 \u043d\u0430\u043c \u043d\u0435 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043c\u0435\u043d\u044f\u0442\u044c \u0432 \u043d\u0435\u0439 \u043d\u0438 \u0441\u0442\u0440\u043e\u0447\u043a\u0438. \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043e\u0436\u0438\u0434\u0430\u0435\u0442, \u0447\u0442\u043e \u0447\u0442\u0435\u043d\u0438\u0435 \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0440\u0430\u0437\u0434\u0435\u043b\u0430 \u0441 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439.<\/p>\n<p>  \u0418\u0442\u0430\u043a, \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0447\u0442\u0435\u043d\u0438\u044f\/\u0437\u0430\u043f\u0438\u0441\u0438 \u0441\u0435\u043a\u0442\u043e\u0440\u0430 \u043d\u0430 \u0440\u0430\u0437\u0434\u0435\u043b \u0438 \u0435\u0441\u0442\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 FAT16\/32, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u044d\u0442\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0432\u0441\u0435 \u0432\u043e\u0435\u0434\u0438\u043d\u043e \u0438 \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442. \u041d\u043e \u043f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u043a\u043e\u0434\u0443, \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u043f\u043e\u0434\u0445\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c, \u0432\u043f\u043e\u043b\u043d\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0436\u0438\u0437\u043d\u0438. \u041d\u0438\u0436\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0447\u0430\u0441\u0442\u044c VBR windows 7, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0447\u0442\u0435\u043d\u0438\u0435 \u0441\u0435\u043a\u0442\u043e\u0440\u0430 \u0434\u0438\u0441\u043a\u0430 \u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f int0x13. \u042d\u0442\u043e\u0442 \u043a\u043e\u0434 \u043c\u043d\u043e\u0433\u043e\u043a\u0440\u0430\u0442\u043d\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u0432\u043f\u043b\u043e\u0442\u044c \u0434\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0439 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438.<\/p>\n<p>  \u0414\u043b\u044f \u0432\u044b\u0437\u043e\u0432\u0430 \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u0434\u0430, Windows 7, \u043f\u043e\u0434\u043e\u0431\u043d\u043e \u0442\u043e\u043c\u0443, \u043a\u0430\u043a \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u043c \u043c\u044b, \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u0438\u0437 \u0437\u0430\u0449\u0438\u0449\u0435\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u0436\u0438\u043c\u0430 \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439, \u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u043e. \u042d\u0442\u043e \u043d\u0435\u0441\u043b\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0432 Windows 7 \u0432 QEMU. QEMU \u0434\u043e\u043b\u0436\u0435\u043d \u043e\u0436\u0438\u0434\u0430\u0442\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a\u0430. \u041f\u043e\u0441\u043b\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a\u0430 (gdb) \u0441\u0442\u0430\u0432\u0438\u043c breakpoint \u043d\u0430 \u0430\u0434\u0440\u0435\u0441 (0x7c00 + 0x11d). \u0421\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u0435 breakpoint\u2019\u0430 \u0431\u0443\u0434\u0435\u0442 \u043e\u0437\u043d\u0430\u0447\u0430\u0442\u044c \u0432\u044b\u0437\u043e\u0432 \u044d\u0442\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u041a\u0441\u0442\u0430\u0442\u0438 \u0432 Windows XP \u044d\u0442\u043e\u0442 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442, \u0434\u043b\u044f \u0432\u044b\u0437\u043e\u0432\u0430 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439 BIOS&#8217;\u0430 \u0442\u0430\u043c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044f\u0442 \u0432 \u0440\u0435\u0436\u0438\u043c VM86.<\/p>\n<p>  ! \u0412\u0410\u0416\u041d\u041e! \u0412\u0441\u0435 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043c\u043e\u0433\u0443\u0442 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0445 \u0448\u0430\u0433\u043e\u0432 \u0438\u0437 \u043f\u044f\u0442\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043d\u0430\u0448\u0435\u0439 \u0441\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0442\u0435\u0439<\/p>\n<p>  \u0428\u0430\u0433 1. \u0418\u0437\u043c\u0435\u043d\u0438\u043c \u043e\u0441\u043d\u043e\u0432\u043d\u0443\u044e \u043b\u043e\u0433\u0438\u043a\u0443 \u0432 kernel.c<\/p>\n<p>  1. \u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0432 \u0444\u0430\u0439\u043b\u0435 kernel.c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f:<\/p>\n<p>   &lt;code&gt;#include &quot;multiboot.h&quot;<br \/>\n  #include &quot;fat_io_lib\/fat_filelib.h&quot;<br \/>\n   \/\/ \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b \u0432 loader.s<br \/>\n  extern u32 mbd;<br \/>\n  extern u32 magic;<\/p>\n<p>  \u041a\u043e\u0434, \u043f\u0435\u0447\u0430\u0442\u0430\u044e\u0449\u0438\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438<\/p>\n<p>   u64 ram_size = GetRamsize();<br \/>\n  printf(&quot;ram_size = %llu(%lluMb)\\n&quot;, ram_size, ram_size \/ 0x100000);<\/p>\n<p>  \u0437\u0430\u043c\u0435\u043d\u0438\u043c \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0434:<\/p>\n<p>  \/\/ \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0447\u0442\u043e \u0431\u044b\u043b\u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u044b grub-\u043e\u043c<br \/>\n      if (magic != MULTIBOOT_BOOTLOADER_MAGIC)<br \/>\n      {<br \/>\n          printf(&quot;Invalid magic number: 0x%x\\n&quot;, magic);<br \/>\n    return;<br \/>\n      }<br \/>\n     multiboot_info_t *p_multiboot_info = (multiboot_info_t*)mbd;<\/p>\n<p>    \/\/ Is boot_device valid?<br \/>\n      if ((p_multiboot_info-&gt;flags &#038; 2) == 0)<br \/>\n      {<br \/>\n          printf(&quot;Error: boot_device(2) flag is clear\\n&quot;);<br \/>\n          return;<br \/>\n      }<\/p>\n<p>    \/\/ \u0438\u0449\u0435\u043c \u043f\u0435\u0440\u0432\u044b\u0439 \u0441\u0435\u043a\u0442\u043e\u0440 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430<br \/>\n      if (InitBootMedia(p_multiboot_info-&gt;boot_device &gt;&gt; 24) == 0)<br \/>\n      {<br \/>\n          printf(&quot;Error: InitBootMedia failed.\\n&quot;);<br \/>\n        return;<br \/>\n      }<\/p>\n<p>  \/\/ \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 fat_io_lib<br \/>\n      fl_init();<br \/>\n    if (fl_attach_media(ReadBootMedia, WriteBootMedia) != FAT_INIT_OK)<br \/>\n     {<br \/>\n          printf(&quot;Error: Media attach failed.\\n&quot;);<br \/>\n          return;<br \/>\n      }<\/p>\n<p>      \/\/ \u0432\u044b\u0432\u043e\u0434\u0438\u043c \u0441\u043f\u0438\u0441\u043e\u043a \u0444\u0430\u0439\u043b\u043e\u0432 \u0432 \u043f\u0430\u043f\u043a\u0435 \/boot\/grub<br \/>\n      fl_listdirectory(&quot;\/boot\/grub&quot;);<\/p>\n<p>      \/\/ \u0432\u044b\u0432\u043e\u0434\u0438\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \/boot\/grub\/menu.lst \u043d\u0430 \u044d\u043a\u0440\u0430\u043d<br \/>\n    char str[64];<br \/>\n    void *file = fl_fopen(&quot;\/boot\/grub\/menu.lst&quot;, &quot;r&quot;);<br \/>\n      if (file == 0)<br \/>\n      {<br \/>\n     printf(&quot;Error: can not open file.\\n&quot;);<br \/>\n     return;<br \/>\n      }<br \/>\n    printf(&quot;\\nConntent of the file \/boot\/grub\/menu.lst:\\n&quot;);<br \/>\n    while (fl_fgets(str, sizeof(str), file))<br \/>\n    {<br \/>\n      printf(&quot;%s&quot;, str);<br \/>\n      }<\/p>\n<p>  \u041f\u0430\u043c\u044f\u0442\u044c \u043f\u043e\u0434 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 mbd \u0438 magic \u0437\u0430\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u0432 \u0444\u0430\u0439\u043b\u0435 loader.s, \u0442\u0430\u043a \u0447\u0442\u043e \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c \u0438\u0437 \u043a\u043e\u0434\u0430 \u043d\u0430 \u0421. \u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f magic \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u0443, \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u044e\u0449\u0443\u044e, \u0447\u0442\u043e \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442 Multiboot, \u044d\u0442\u0430\u043b\u043e\u043d\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f GRUB. \u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f mbd \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 multiboot_info_t, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0430 \u0432 multiboot.h. \u041d\u043e\u043c\u0435\u0440 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0433\u043e \u0434\u0438\u0441\u043a\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c \u2014 p_multiboot_info-&gt;boot_device &gt;&gt; 24. \u0424\u0443\u043d\u043a\u0446\u0438\u044f InitBootMedia \u0437\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442 \u043d\u043e\u043c\u0435\u0440 \u0434\u0438\u0441\u043a\u0430 \u0438 \u0438\u0449\u0435\u0442 \u043f\u0435\u0440\u0432\u044b\u0439 \u0441\u0435\u043a\u0442\u043e\u0440 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0442\u0435\u043c \u0432\u0441\u0435 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043e\u0442 \u043d\u0435\u0433\u043e. <\/p>\n<p>  \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 fat_io_lib \u0434\u043b\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0432\u044b\u0437\u043e\u0432\u0430 \u0434\u0432\u0443\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439: fl_init \u0438 fl_attach_media. \u041f\u0435\u0440\u0432\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u0431\u043d\u0443\u043b\u044f\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u0430 \u0432\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0447\u0442\u0435\u043d\u0438\u044f \u0438 \u0437\u0430\u043f\u0438\u0441\u0438 \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u043d\u0430 \u0434\u0438\u0441\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u0430\u0442\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a \u0444\u0430\u0439\u043b\u0430\u043c. \u0414\u0430\u043b\u0435\u0435 \u0438\u0434\u0435\u0442 \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439: \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0441\u043f\u0438\u0441\u043e\u043a \u0444\u0430\u0439\u043b\u043e\u0432 \u0432 \u043f\u0430\u043f\u043a\u0435 \/boot\/grub \u0438 \u0440\u0430\u0441\u043f\u0435\u0447\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0444\u0430\u0439\u043b\u0430 menu.lst.<\/p>\n<p>  2. \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0444\u0430\u0439\u043b multiboot.h \u0432 \u043f\u0430\u043f\u043a\u0443 include. \u0421\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0444\u0430\u0439\u043b\u0430 \u0431\u0435\u0440\u0435\u043c \u0441 \u0441\u0430\u0439\u0442\u0430 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438.<\/p>\n<p>  \u0428\u0430\u0433 2. \u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0438\u0441\u043a\u043e\u043c<\/p>\n<p>  1. \u0412 \u0444\u0430\u0439\u043b include\\callrealmode.h \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u044b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439:<\/p>\n<p>  u32 InitBootMedia(u8 bootDevice);<br \/>\n  int ReadBootMedia(unsigned long sector, unsigned char *buffer, unsigned long sectorCount);<br \/>\n  int WriteBootMedia(unsigned long sector, unsigned char *buffer, unsigned long sectorCount);<\/p>\n<p>  2. \u0412 \u0444\u0430\u0439\u043b\u0435 include\\callrealmode_asm.h \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0432 enum callrealmode_Func \u043d\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<p>  enum callrealmode_Func<br \/>\n  {<br \/>\n      CALLREALMODE_FUNC_GETSYSMEMMAP = 0,<br \/>\n      CALLREALMODE_FUNC_READ_DISK    = 1<br \/>\n  };<\/p>\n<p>  \u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a \u0434\u0438\u0441\u043a\u0443:<\/p>\n<p>  struct callrealmode_read_disk<br \/>\n  {<br \/>\n      u64 start_sector_lba;<br \/>\n      u32 buff_addr;<br \/>\n      u32 sectors_count;<br \/>\n      u16 disk_number;<br \/>\n      u8 ret_code;<br \/>\n  } __attribute__ ((packed));<\/p>\n<p>  \u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0432 union \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b callrealmode_Data \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u043d\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 callrealmode_read_disk. \u0414\u043e\u043b\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<p>  struct callrealmode_Data<br \/>\n  {<br \/>\n      enum callrealmode_Func func : 16;<br \/>\n      union<br \/>\n    {<br \/>\n          struct callrealmode_GetSysMemMap getsysmemmap;<br \/>\n          struct callrealmode_read_disk readdisk;<br \/>\n      };<br \/>\n  } __attribute__ ((packed)); <\/p>\n<p>  3. \u0412 \u0444\u0430\u0439\u043b include\\string.h \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 strncmp \u0438 strncpy, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 fat_io_lib.<\/p>\n<p>  static inline int strncmp ( const char * str1, const char * str2, unsigned int num ) {<br \/>\n  \tfor ( ; num &gt; 0; str1++, str2++, &#8212;num)<br \/>\n   {<br \/>\n   \tif (*str1 != *str2)<br \/>\n   \treturn ((*(unsigned char *)str1 &lt; *(unsigned char *)str2) ? -1 : +1);<br \/>\n   else if (*str1 == &#8216;\\0&#8217;)<br \/>\n   return 0;<br \/>\n   }<br \/>\n      return 0;<br \/>\n  }<\/p>\n<p>  static inline char* strncpy ( char * dst, const char * src, unsigned int num )<br \/>\n  {<br \/>\n   if (num != 0)<br \/>\n   {<br \/>\n   char *d = dst;<br \/>\n   const char *s = src;<br \/>\n   do<br \/>\n   {<br \/>\n   \tif ((*d++ = *s++) == 0)<br \/>\n   {<br \/>\n   while (&#8212;num)<br \/>\n   *d++ = 0;<br \/>\n   break;<br \/>\n   }<br \/>\n   }<br \/>\n   while (&#8212;num);<br \/>\n   }<br \/>\n   return dst;<br \/>\n  }<\/p>\n<p>  4. \u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0432 \u0444\u0430\u0439\u043b callrealmode.c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f:<\/p>\n<p>  #include &quot;fat_io_lib\/fat_opts.h&quot;<br \/>\n  #include &quot;mbr.h&quot;<\/p>\n<p>  u64 g_BootPartitionStart = 0;   \/\/ \u043d\u043e\u043c\u0435\u0440 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0441\u0435\u043a\u0442\u043e\u0440\u0430 \u0440\u0430\u0437\u0434\u0435\u043b\u0430 \u0441 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439<br \/>\n  u32 g_BootDeviceInt13Num = 0;   \/\/ \u043d\u043e\u043c\u0435\u0440 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0433\u043e \u0434\u0438\u0441\u043a\u0430<\/p>\n<p>  \u0418 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0439:<\/p>\n<p>  \/\/ \u0427\u0442\u0435\u043d\u0438\u0435 \u0441\u0435\u043a\u0442\u043e\u0440\u0430 \u0441 \u0434\u0438\u0441\u043a\u0430<br \/>\n  int ReadBootMedia(unsigned long sector, unsigned char *buffer, unsigned long sectorCount)<br \/>\n  {<br \/>\n      struct callrealmode_Data param; \/\/ \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b<br \/>\n   \/\/ \u0434\u043b\u044f \u043a\u043e\u0434\u0430 \u0432 RM, \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442<br \/>\n      param.func = CALLREALMODE_FUNC_READ_DISK;<\/p>\n<p>      \/\/ \u0427\u0442\u0435\u043d\u0438\u0435 \u0441\u0435\u043a\u0442\u043e\u0440\u0430 \u0441 \u0434\u0438\u0441\u043a\u0430 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u0443\u0442\u0435\u043c \u0432\u044b\u0437\u043e\u0432\u0430 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f int13.<br \/>\n      \/\/ \u041d\u043e \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043d\u043d\u044b\u0439 \u0441\u0435\u043a\u0442\u043e\u0440 \u0442\u043e\u043b\u044c\u043a\u043e \u0432<br \/>\n      \/\/ \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u043f\u0430\u043c\u044f\u0442\u0438 \u043d\u0438\u0436\u0435 1Mb, \u043d\u043e \u0430\u0434\u0440\u0435\u0441 &quot;buffer&quot; \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u044b\u0448\u0435 \u044d\u0442\u043e\u0439 \u0433\u0440\u0430\u043d\u0438\u0446\u044b.<br \/>\n      \/\/ \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 &quot;low_mem_buff&quot;,<br \/>\n      \/\/ \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0430 \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 RM \u043a\u043e\u0434\u0430, \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 CALLREALMODE_OFFSET &lt; 1Mb<br \/>\n      int i;<br \/>\n      void *low_mem_buff = CALLREALMODE_OFFSET + (&#038;callrealmode_end &#8212; &#038;callrealmode_start);<br \/>\n      for (i = 0; i &lt; sectorCount; i++)<br \/>\n   {<br \/>\n          param.readdisk.start_sector_lba = sector + g_BootPartitionStart + i;<br \/>\n      param.readdisk.buff_addr        = (u32)low_mem_buff;<br \/>\n          param.readdisk.disk_number      = g_BootDeviceInt13Num;<br \/>\n     param.readdisk.sectors_count    = 1;<\/p>\n<p>       callrealmode_Call(&#038;param);  \/\/ int 0x13 \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u0438\u0437 &quot;param&quot;<\/p>\n<p>    if (param.readdisk.ret_code)<br \/>\n   {<br \/>\n             return 0;   \/\/ error<br \/>\n    }<\/p>\n<p>          memcpy(buffer + i * FAT_SECTOR_SIZE, low_mem_buff, FAT_SECTOR_SIZE);<br \/>\n    }<br \/>\n      return 1;   \/\/ success<br \/>\n  }<\/p>\n<p>  \/\/ \u0417\u0430\u043f\u0438\u0441\u044c \u0441\u0435\u043a\u0442\u043e\u0440\u0430 \u043d\u0430 \u0434\u0438\u0441\u043a. \u0417\u0430\u0433\u043b\u0443\u0448\u043a\u0430<br \/>\n  int WriteBootMedia(unsigned long sector, unsigned char *buffer, unsigned long sectorCount)<br \/>\n  {<br \/>\n      return 0;   \/\/ error<br \/>\n  }<\/p>\n<p>  \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438<br \/>\n  u32 InitBootMedia(u8 bootDevice)<br \/>\n  {<br \/>\n      g_BootDeviceInt13Num = bootDevice;<\/p>\n<p>      \/\/ \u0427\u0438\u0442\u0430\u0435\u043c \u043f\u0435\u0440\u0432\u044b\u0439 \u0441\u0435\u043a\u0442\u043e\u0440 \u0434\u0438\u0441\u043a\u0430<br \/>\n      MBRSector_t mbr;<br \/>\n      if (ReadBootMedia(0, (u8*)&#038;mbr, 1) == 0)<br \/>\n     {<br \/>\n          return 0;<br \/>\n    }<\/p>\n<p>      \/\/ \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u0443<br \/>\n      if (mbr.mbr_sign[0] != 0x55 ||<br \/>\n          mbr.mbr_sign[1] != 0xaa)<br \/>\n   {<br \/>\n          return 0;<br \/>\n   }<\/p>\n<p>      \/\/ \u0438\u0449\u0435\u043c \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u044b\u0439 \u0440\u0430\u0437\u0434\u0435\u043b<br \/>\n      int i;<br \/>\n      for (i = 0; i &lt; 4; i++)<br \/>\n    {<br \/>\n         if (mbr.part[i].boot_indicator == 0x80)<br \/>\n        break;<br \/>\n    }<br \/>\n      if (i == 4)<br \/>\n   {<br \/>\n        return 0;<br \/>\n      }<\/p>\n<p>      \/\/ \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u043d\u043e\u043c\u0435\u0440 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0441\u0435\u043a\u0442\u043e\u0440\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430<br \/>\n      g_BootPartitionStart = mbr.part[i].start_lva;<\/p>\n<p>   printf(&quot;start sector = %lld boot dev int13 num = 0x%x\\n&quot;,<br \/>\n        g_BootPartitionStart, g_BootDeviceInt13Num);<br \/>\n    return 1;<br \/>\n  }<\/p>\n<p>  \u0424\u0443\u043d\u043a\u0446\u0438\u0438 ReadBootMedia \u0438 WriteBootMedia \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439 fat_io_lib \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f\/\u0437\u0430\u043f\u0438\u0441\u0438 \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432. \u0424\u0443\u043d\u043a\u0446\u0438\u044f WriteBootMedia \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0437\u0430\u0433\u043b\u0443\u0448\u043a\u043e\u0439, \u0442\u0430\u043a \u043a\u0430\u043a \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043d\u0435\u0442 \u0437\u0430\u043f\u0438\u0441\u0438 \u043d\u0430 \u0434\u0438\u0441\u043a. \u0415\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b\u0430 \u0431\u044b \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 ReadBootMedia. \u0424\u0443\u043d\u043a\u0446\u0438\u044f ReadBootMedia \u043f\u043e\u0445\u043e\u0436\u0430 \u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044e GetRamsize \u0438\u0437 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u0441 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c\u044e \u0434\u043e \u0442\u0438\u043f\u0430 param.func, \u0430 \u0432\u043c\u0435\u0441\u0442\u043e param.getsysmemmap \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f param.readdisk. \u0424\u0443\u043d\u043a\u0446\u0438\u044f InitBootMedia \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0432\u044b\u0437\u0432\u0430\u043d\u0430 \u0440\u0430\u043d\u044c\u0448\u0435 \u0434\u0432\u0443\u0445 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u043d\u0430 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f g_BootPartitionStart \u0438 g_BootDeviceInt13Num.<\/p>\n<p>  5. \u0418\u0437\u043c\u0435\u043d\u0438\u043c callrealmode_asm.s. \u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u0442\u0438\u043f CALLREALMODE_FUNC_READ_DISK \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u0434\u043e\u043b\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<p>  # \u044d\u0442\u043e \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u0437 enum callrealmode_Func<br \/>\n  CALLREALMODE_FUNC_GETSYSMEMMAP = 0x0<br \/>\n   CALLREALMODE_FUNC_READ_DISK    = 0x1<\/p>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0435\u0449\u0435 \u043e\u0434\u043d\u0443 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u043d\u0430 \u0442\u0438\u043f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043a\u043e\u0434, \u0447\u0438\u0442\u0430\u044e\u0449\u0438\u0439 \u0441 \u0434\u0438\u0441\u043a\u0430. \u0414\u043e\u043b\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<p>  callrealmode_switch:<br \/>\n      OFF_FUNC = 44   # \u043d\u0430 \u0442\u0430\u043a\u043e\u043c \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0438 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e %bp<br \/>\n     # \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u043e\u043b\u0435 func \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b callrealmode_Data<\/p>\n<p>      # Which function?<br \/>\n   movw OFF_FUNC(%bp),%ax<br \/>\n      cmp  $CALLREALMODE_FUNC_GETSYSMEMMAP,%ax<br \/>\n      je   getsysmemmap<br \/>\n    cmp  $CALLREALMODE_FUNC_READ_DISK,%ax<br \/>\n      je   readdisk<br \/>\n   ret<\/p>\n<p>  readdisk:<br \/>\n    OFF_START_SECTOR  = 50  # \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0434\u043e \u043f\u043e\u043b\u044f start_sector_lba \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b callrealmode_Data<br \/>\n    OFF_BUFFER_ADDR   = 58  # \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0434\u043e \u043f\u043e\u043b\u044f buff_addr \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b callrealmode_Data<br \/>\n     OFF_SECTORS_COUNT = 62  # \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0434\u043e \u043f\u043e\u043b\u044f sectors_count \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b callrealmode_Data<br \/>\n     OFF_DISK_NUMBER   = 66  # \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0434\u043e \u043f\u043e\u043b\u044f disk_number \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b callrealmode_Data<br \/>\n     OFF_RETURN_CODE   = 68  # \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0434\u043e \u043f\u043e\u043b\u044f ret_code \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b callrealmode_Data<\/p>\n<p>      push %bp<br \/>\n    mov %sp,%bp<\/p>\n<p>   # \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c \u043d\u0430 \u0441\u0442\u0435\u043a\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 DAP<br \/>\n    pushl OFF_START_SECTOR+4(%bp)<br \/>\n     pushl OFF_START_SECTOR+0(%bp)<br \/>\n    pushl OFF_BUFFER_ADDR(%bp)<br \/>\n      pushw OFF_SECTORS_COUNT(%bp)<br \/>\n    pushw $0x10<br \/>\n     mov   %sp,%si                   # ds:si \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043d\u0430 \u0432\u0435\u0440\u0448\u0438\u043d\u0443 \u0441\u0442\u0435\u043a\u0430, \u0442.\u0435. \u043d\u0430 DAP<br \/>\n   mov   OFF_DISK_NUMBER(%bp),%dl  # \u043d\u043e\u043c\u0435\u0440 \u0434\u0438\u0441\u043a\u0430 \u0432 dl<br \/>\n   mov   $0x42,%ah                 # EXTENDED READ<br \/>\n    int   $0x13                     # CALL DISK BIOS<br \/>\n      mov   %ah,OFF_RETURN_CODE(%bp)  # \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442<br \/>\n    add   $0x10,%sp                 # \u043e\u0447\u0438\u0449\u0430\u0435\u043c \u0441\u0442\u0435\u043a \u043e\u0442 DAP<\/p>\n<p>   pop %bp<br \/>\n     ret<\/p>\n<p>  \u041c\u0435\u0442\u043a\u0430 readdisk \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u043a\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 DAP \u0438\u0437 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b callrealmode_Data \u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 int0x13. \u0412 \u043a\u043e\u0434\u0435 \u043f\u043e\u0441\u043b\u0435 \u043c\u0435\u0442\u043a\u0438 callrealmode_switch \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u043e\u0441\u044c 2 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e\u0449\u0438\u0435, \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043b\u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c readdisk.<\/p>\n<p>  6. \u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0444\u0430\u0439\u043b include\\mbr.h, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 MBR. \u0415\u0433\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435:<\/p>\n<p>  #ifndef _MBR_H_<br \/>\n  #define _MBR_H_<\/p>\n<p>  #include &quot;types.h&quot;<\/p>\n<p>  struct MBRPartitionEntry<br \/>\n  {<br \/>\n      unsigned char  boot_indicator;<br \/>\n   unsigned char  start_head;<br \/>\n    unsigned short start_sector   : 6;<br \/>\n   unsigned short start_cylinder : 10;<br \/>\n   unsigned char  sys_id;<br \/>\n   unsigned char  end_head;<br \/>\n   unsigned short end_sector   : 6;<br \/>\n     unsigned short end_cylinder : 10;<br \/>\n   unsigned int   start_lva;<br \/>\n   unsigned int   size_in_sectors;<br \/>\n  } __attribute__ ((packed));<br \/>\n  typedef struct MBRPartitionEntry MBRPartitionEntry_t;<\/p>\n<p>  struct MBRSector<br \/>\n  {<br \/>\n     u8 code[446];<br \/>\n   MBRPartitionEntry_t part[4];<br \/>\n   u8 mbr_sign[2];<br \/>\n  } __attribute__ ((packed));<br \/>\n  typedef struct MBRSector MBRSector_t;<\/p>\n<p>  #endif<\/p>\n<p>  \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 MBRSector \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 InitBootMedia.<\/p>\n<p>  \u0428\u0430\u0433 3. \u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 fat_io_lib \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c<\/p>\n<p>  1. \u0421\u043a\u0430\u0447\u0430\u0435\u043c \u0430\u0440\u0445\u0438\u0432 fat_io_lib.zip \u0438 \u0440\u0430\u0441\u043f\u0430\u043a\u0443\u0435\u043c \u0435\u0433\u043e \u0432 \u043f\u0430\u043f\u043a\u0443 fat_io_lib \u0432 \u043a\u043e\u0440\u043d\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430.<br \/>\n  2. \u0414\u043e\u0431\u0430\u0432\u0438\u043c \u043f\u0443\u0441\u0442\u044b\u0435 \u0444\u0430\u0439\u043b\u044b assert.h \u0438 stdlib.h \u0432 \u043f\u0430\u043f\u043a\u0443 include. \u041e\u043d\u0438 \u043d\u0443\u0436\u043d\u044b, \u0447\u0442\u043e \u0431\u044b \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043b\u0430\u0441\u044c.<br \/>\n  3. \u0418\u0441\u043f\u0440\u0430\u0432\u0438\u043c Makefile. \u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0444\u0430\u0439\u043b\u044b \u0438\u0437 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0432 \u0441\u043f\u0438\u0441\u043e\u043a \u0446\u0435\u043b\u0435\u0439 \u0434\u043b\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438. \u0414\u043e\u043b\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<p>  FAT_LIB_OBJFILES = \\<br \/>\n  \t.\/fat_io_lib\/fat_access.o    \\<br \/>\n   .\/fat_io_lib\/fat_cache.o     \\<br \/>\n   .\/fat_io_lib\/fat_filelib.o   \\<br \/>\n   .\/fat_io_lib\/fat_format.o    \\<br \/>\n   .\/fat_io_lib\/fat_misc.o      \\<br \/>\n   .\/fat_io_lib\/fat_string.o    \\<br \/>\n   .\/fat_io_lib\/fat_table.o     \\<br \/>\n   .\/fat_io_lib\/fat_write.o<\/p>\n<p>  OBJFILES = \\<br \/>\n   loader.o  \\<br \/>\n   common\/printf.o  \\<br \/>\n   common\/screen.o  \\<br \/>\n   common\/string.o  \\<br \/>\n   kernel.o \\<br \/>\n   callrealmode.o \\<br \/>\n   callrealmode_asm.o \\<br \/>\n   descriptor.o \\<br \/>\n   $(FAT_LIB_OBJFILES)<\/p>\n<p>  \u0417\u0430\u043c\u0435\u043d\u0438\u043c \u0441\u0442\u0440\u043e\u0447\u043a\u0443<br \/>\n  @dd if=\/dev\/zero of=.\/hdd.img bs=512 count=16065 1&gt;\/dev\/null 2&gt;&#038;1<br \/>\n  \u041d\u0430<br \/>\n  @dd if=\/dev\/zero of=.\/hdd.img bs=1M count=10 1&gt;\/dev\/null 2&gt;&#038;1<\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u043e\u0431\u0440\u0430\u0437\u0430 \u0440\u0430\u0432\u0435\u043d 10Mb. \u042d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043a\u043e\u043c\u0430\u043d\u0434\u0430 mkdosfs \u043e\u0442\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0430 \u0440\u0430\u0437\u0434\u0435\u043b \u0432 FAT16 \u0432\u043c\u0435\u0441\u0442\u043e FAT12. FAT12 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439 fat_io_lib.<\/p>\n<p>  \u0417\u0430\u043c\u0435\u043d\u0438\u043c \u0441\u0442\u0440\u043e\u0447\u043a\u0443 <\/p>\n<p>  $(CC) -Iinclude $(CFLAGS) -o $@ -c $&lt;<\/p>\n<p>  \u041d\u0430 <\/p>\n<p>  $(CC) -Iinclude -DFAT_PRINTF_NOINC_STDIO $(CFLAGS) -o $@ -c $&lt;<\/p>\n<p>  \u0421 \u044d\u0442\u0438\u043c \u0434\u0435\u0444\u0430\u0439\u043d\u043e\u043c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c stdio.h, \u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 printf, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u043d\u0430\u0448\u0438\u043c, \u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u0436\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d.<\/p>\n<p>  4. \u041f\u0435\u0440\u0435\u0441\u043e\u0431\u0435\u0440\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442<\/p>\n<p>  make rebuild<br \/>\n  sudo make image<\/p>\n<p>  5. \u0417\u0430\u043f\u0443\u0441\u0442\u0438\u043c<\/p>\n<p>  sudo qemu-system-i386 -hda hdd.img<\/p>\n<p>  \u0414\u043e\u043b\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<p>  \u041a\u0430\u043a \u0438 \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0447\u0430\u0441\u0442\u044f\u0445, \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c dd \u043e\u0431\u0440\u0430\u0437\u0430 hdd.img \u043d\u0430 \u0444\u043b\u0435\u0448\u043a\u0443 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043a\u043e\u0434 \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0436\u0435\u043b\u0435\u0437\u0435, \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0432\u0448\u0438\u0441\u044c \u0441 \u043d\u0435\u0435.<\/p>\n<p>  \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043c\u044b \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b\u0438 \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u043c\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c\u0438 FAT16 \u0438 FAT32. \u041c\u044b \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0441\u0445\u0438\u0442\u0440\u0438\u043b\u0438, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0432 \u0433\u043e\u0442\u043e\u0432\u0443\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443, \u043d\u043e \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0432 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 FAT&#8217;\u0430 \u0431\u044b\u043b\u043e \u0431\u044b \u043c\u0435\u043d\u0435\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0434\u0430 \u0438 \u0432\u0440\u044f\u0434 \u043b\u0438 \u0431\u044b \u043c\u044b \u0442\u043e\u0433\u0434\u0430 \u0443\u043b\u043e\u0436\u0438\u043b\u0438\u0441\u044c \u0432 1 \u0441\u0442\u0430\u0442\u044c\u044e. \u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u0432\u0430\u043c \u0431\u044b\u043b\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0447\u0438\u0442\u0430\u0442\u044c. \u041f\u0438\u0448\u0438\u0442\u0435 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445, \u0435\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0432 \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0438 \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u0448\u0430\u0433\u043e\u0432!<\/p>\n<p>  \u041f\u043e\u0434\u0431\u043e\u0440\u043a\u0430 \u0441\u0441\u044b\u043b\u043e\u043a \u043d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0435 \u0447\u0430\u0441\u0442\u0438:<br \/>\n    \u041a\u0430\u043a \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0431\u0435\u0437 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b  \u041a\u0430\u043a \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0431\u0435\u0437 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b: \u0447\u0430\u0441\u0442\u044c 2  \u041a\u0430\u043a \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0431\u0435\u0437 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b: \u0447\u0430\u0441\u0442\u044c 3: \u0413\u0440\u0430\u0444\u0438\u043a\u0430  \u041a\u0430\u043a \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0431\u0435\u0437 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b: \u0447\u0430\u0441\u0442\u044c 4. \u041f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f  \u041a\u0430\u043a \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0431\u0435\u0437 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b: \u0447\u0430\u0441\u0442\u044c 5. \u041e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043a BIOS \u0438\u0437 \u041e\u0421        \t \t   \thttp:\/\/habrahabr.ru\/post\/203706\/<\/p>\n","protected":false},"excerpt":{"rendered":"<p>     \t\u0412 \u043f\u044f\u0442\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043d\u0430\u0448\u0435\u0439 \u0441\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0442\u0435\u0439 \u043c\u044b \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0438, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f BIOS&#8217;\u0430 \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u0432 \u0437\u0430\u0449\u0438\u0449\u0435\u043d\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c, \u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b\u0438 \u0440\u0430\u0437\u043c\u0435\u0440 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043c\u044b \u0440\u0430\u0437\u043e\u0432\u044c\u0435\u043c \u044d\u0442\u043e\u0442 \u0443\u0441\u043f\u0435\u0445 \u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u0443\u044e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0438\u0441\u043a\u0430\u043c\u0438 \u0441 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 FAT16 \u0438 FAT32. \u0420\u0430\u0431\u043e\u0442\u0443 \u0441 \u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u043d\u0430 \u0434\u0438\u0441\u043a\u0435 \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0431\u0438\u0442\u044c \u043d\u0430 2 \u0447\u0430\u0441\u0442\u0438: \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u0438 \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u0434\u0438\u0441\u043a\u043e\u043c \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0447\u0442\u0435\u043d\u0438\u044f\/\u0437\u0430\u043f\u0438\u0441\u0438 \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432. \u041c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u00ab\u0434\u0440\u0430\u0439\u0432\u0435\u0440\u00bb \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 \u00ab\u0434\u0440\u0430\u0439\u0432\u0435\u0440\u00bb \u0434\u0438\u0441\u043a\u0430.<\/p>\n<p>  \u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0434\u0438\u0441\u043a\u043e\u043c \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0447\u0442\u0435\u043d\u0438\u044f\/\u0437\u0430\u043f\u0438\u0441\u0438 \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432<br \/>\n  \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430\u0443\u0447\u0438\u043c\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0434\u0438\u0441\u043a\u043e\u043c.<br \/>\n  \u0418\u0442\u0430\u043a, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f BIOS&#8217;\u0430. \u041f\u043e\u043c\u0438\u043c\u043e \u043f\u0440\u043e\u0447\u0438\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439, BIOS \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0438\u0441\u043a\u043e\u043c, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u2014 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 int 0x13. \u0421\u043e \u0441\u043f\u0438\u0441\u043a\u043e\u043c \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0445 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435\u043c, \u043c\u043e\u0436\u043d\u043e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u0432\u0438\u043a\u0438\u043f\u0435\u0434\u0438\u0438. \u041d\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0442 \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u0447\u0442\u0435\u043d\u0438\u044f \u0438 \u0437\u0430\u043f\u0438\u0441\u0438 \u0434\u0438\u0441\u043a\u043e\u0432.<\/p>\n<p>  \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0434\u0432\u0430 \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u0438 \u0441\u0435\u043a\u0442\u043e\u0440\u0430 \u043d\u0430 \u0434\u0438\u0441\u043a\u0435, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 BIOS \u2013 CHS(cylinder-head-sector) \u0438 LBA(logical block addressing). \u0410\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u044f CHS \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0430 \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0438 \u0434\u0438\u0441\u043a\u0430, \u0438 \u0430\u0434\u0440\u0435\u0441\u043e\u043c \u0441\u0435\u043a\u0442\u043e\u0440\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u043e\u0432\u043e\u043a\u0443\u043f\u043d\u043e\u0441\u0442\u044c \u0442\u0440\u0435\u0445 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442: \u0446\u0438\u043b\u0438\u043d\u0434\u0440, \u0433\u043e\u043b\u043e\u0432\u043a\u0430, \u0441\u0435\u043a\u0442\u043e\u0440. \u0421\u043f\u043e\u0441\u043e\u0431 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0430\u0434\u0440\u0435\u0441\u043e\u0432\u0430\u0442\u044c \u0434\u043e 8\u0413\u0431. \u041f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 int0x13 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0447\u0438\u0442\u0430\u0442\u044c  \u0438  \u043f\u0438\u0441\u0430\u0442\u044c  \u043d\u0430 \u0434\u0438\u0441\u043a \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u044d\u0442\u043e\u0439 \u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u0438.<\/p>\n<p>  \u041f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e 8\u0413\u0431 \u2014 \u044d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043c\u0430\u043b\u043e, \u0438 \u0434\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u043c, \u0430 \u0432\u0441\u0435 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 (\u0438 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c) \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u044b \u0436\u0435\u0441\u0442\u043a\u0438\u0445 \u0434\u0438\u0441\u043a\u043e\u0432 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442 \u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u044e LBA. \u0410\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u044f LBA \u0430\u0431\u0441\u0442\u0440\u0430\u0433\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043e\u0442 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0438 \u0434\u0438\u0441\u043a\u0430 \u0438 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u0442 \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0441\u0435\u043a\u0442\u043e\u0440\u0443 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043d\u043e\u043c\u0435\u0440. \u041d\u0443\u043c\u0435\u0440\u0430\u0446\u0438\u044f \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 \u043d\u0443\u043b\u044f. LBA \u0434\u043b\u044f \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u043d\u043e\u043c\u0435\u0440\u0430 \u0431\u043b\u043e\u043a\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 48 \u0431\u0438\u0442, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0430\u0434\u0440\u0435\u0441\u043e\u0432\u0430\u0442\u044c 128 \u041f\u0438\u0411, \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0441\u0435\u043a\u0442\u043e\u0440\u0430 \u0432 512 \u0431\u0430\u0439\u0442. \u041f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 int0x13 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u0432\u0430 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f \u0438 \u0437\u0430\u043f\u0438\u0441\u0438 \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u043d\u0430 \u0434\u0438\u0441\u043a \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c LBA. \u0418\u0445 \u043c\u044b \u0438 \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c. \u0414\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f \u0441\u0435\u043a\u0442\u043e\u0440\u0430 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 in0x13 \u043e\u0436\u0438\u0434\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b:<\/p>\n<p>  \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 DAP:<\/p>\n<p>  \u041f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:<\/p>\n<p>  \u041e\u0434\u0438\u043d \u0438\u0437 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u2013 \u043d\u043e\u043c\u0435\u0440 \u0434\u0438\u0441\u043a\u0430. \u041d\u0443\u0436\u043d\u043e \u043a\u0430\u043a-\u0442\u043e \u0443\u0437\u043d\u0430\u0442\u044c \u043d\u043e\u043c\u0435\u0440 \u0434\u0438\u0441\u043a\u0430, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043c\u044b \u0441\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c. \u041d\u0443\u043c\u0435\u0440\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c: \u0444\u043b\u043e\u043f\u043f\u0438-\u0434\u0438\u0441\u043a\u0438 (fdd), \u0438 \u0432\u0441\u0435, \u0447\u0442\u043e \u044d\u043c\u0443\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0444\u043b\u043e\u043f\u043f\u0438, \u043d\u0443\u043c\u0435\u0440\u0443\u044e\u0442\u0441\u044f \u0441 \u043d\u0443\u043b\u044f, \u0430 \u0436\u0435\u0441\u0442\u043a\u0438\u0435 \u0434\u0438\u0441\u043a\u0438 (hdd), \u0438 \u0432\u0441\u0435, \u0447\u0442\u043e \u044d\u043c\u0443\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u043e\u043d\u0438(usb-\u0444\u043b\u0435\u0448\u043a\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440), \u043d\u0443\u043c\u0435\u0440\u0443\u044e\u0442\u0441\u044f \u0441 0x80. \u042d\u0442\u043e\u0442 \u043d\u043e\u043c\u0435\u0440 \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u0441\u0432\u044f\u0437\u0430\u043d \u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 BIOS\u2019\u0430. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0434\u0438\u0441\u043a, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043c\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u0435\u043c \u0434\u0438\u0441\u043a\u043e\u043c, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u044b \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043b\u0438\u0441\u044c. <\/p>\n<p>  \u041a\u043e\u0433\u0434\u0430 BIOS \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 MBR, \u043e\u043d \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0435\u0433\u043e \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 0000h:7C00h, \u0430 \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435 DL \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442 \u043d\u0443\u0436\u043d\u044b\u0439 \u043d\u0430\u043c \u043d\u043e\u043c\u0435\u0440 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \u042d\u0442\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u044c\u044e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430  \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043c\u0435\u0436\u0434\u0443 BIOS \u0438 MBR. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u044d\u0442\u043e\u0442 \u043d\u043e\u043c\u0435\u0440 \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u0432 GRUB, \u0433\u0434\u0435 \u0434\u0430\u043b\u0435\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0438\u0441\u043a\u043e\u043c. GRUB, \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442 \u044d\u0442\u043e\u0442 \u043d\u043e\u043c\u0435\u0440 \u041e\u0421 \u043a\u0430\u043a \u0447\u0430\u0441\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b Multiboot information. <\/p>\n<p>  \u0421\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0442 GRUB\u2019\u0430 \u043a \u041e\u0421 \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435 EBX \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u044d\u0442\u0443 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443. \u041f\u0435\u0440\u0432\u043e\u0435 \u043f\u043e\u043b\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u2013 \u044d\u0442\u043e flags, \u0438 \u0435\u0441\u043b\u0438 \u0432 \u043d\u0435\u043c \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d 2-\u0439 \u0431\u0438\u0442, \u0442\u043e \u043f\u043e\u043b\u0435 boot_device \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e. \u042d\u0442\u043e \u043f\u043e\u043b\u0435 \u0442\u0430\u043a \u0436\u0435 \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0438\u0442 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 Multiboot information \u0438 \u0432 \u0435\u0433\u043e \u0441\u0442\u0430\u0440\u0448\u0435\u043c \u0431\u0430\u0439\u0442\u0435 (\u0440\u0430\u0437\u043c\u0435\u0440 \u043f\u043e\u043b\u044f \u2013 4 \u0431\u0430\u0439\u0442\u0430) \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u043d\u0443\u0436\u043d\u044b\u0439 \u043d\u0430\u043c \u043d\u043e\u043c\u0435\u0440 \u0434\u0438\u0441\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 int0x13. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f GRUB, \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u044e\u0449\u0438\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f\/\u0437\u0430\u043f\u0438\u0441\u0438 \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u043d\u0430 \u0434\u0438\u0441\u043a.<\/p>\n<p>  \u041c\u044b \u043d\u0430\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u0447\u0438\u0442\u0430\u0442\u044c \u0438 \u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0435\u043a\u0442\u043e\u0440\u0430 \u043d\u0430 \u0434\u0438\u0441\u043a, \u044d\u0442\u043e, \u0431\u0435\u0437\u0443\u0441\u043b\u043e\u0432\u043d\u043e, \u0432\u0430\u0436\u043d\u043e. \u041d\u043e \u0444\u0430\u0439\u043b\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u0430 \u043d\u0435 \u043a \u0446\u0435\u043b\u043e\u043c\u0443 \u0434\u0438\u0441\u043a\u0443, \u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u043a \u0435\u0433\u043e \u0447\u0430\u0441\u0442\u0438 \u2013 \u0440\u0430\u0437\u0434\u0435\u043b\u0443. \u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0441\u0435\u043a\u0442\u043e\u0440, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u0434\u0435\u043b, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u043d\u0430 \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f. \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u0431 \u0438\u043c\u0435\u044e\u0449\u0438\u0445\u0441\u044f \u043d\u0430 \u0434\u0438\u0441\u043a\u0435 \u0441\u0435\u043a\u0442\u043e\u0440\u0430\u0445 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u0441\u0435\u043a\u0442\u043e\u0440\u0435 \u0434\u0438\u0441\u043a\u0430, \u0442\u0430\u043c \u0436\u0435, \u0433\u0434\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f MBR. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0432 MBR, \u043d\u043e \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043d\u0438\u0445 \u0432\u0435\u0440\u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430:<\/p>\n<p>  \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430\u0445 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u043e\u0432. \u041d\u0430 \u0434\u0438\u0441\u043a\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e 4 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u044b\u0445 \u0440\u0430\u0437\u0434\u0435\u043b\u0430, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c\u0441\u044f. \u041d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c \u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f 8 \u0431\u0430\u0439\u0442. \u041f\u0435\u0440\u0432\u044b\u0439 \u0431\u0430\u0439\u0442 \u2014 \u044d\u0442\u043e \u0444\u043b\u0430\u0433\u0438, \u0435\u0441\u043b\u0438 \u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 0x80, \u0442\u043e \u0440\u0430\u0437\u0434\u0435\u043b \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u044b\u0439. \u041a\u043e\u0434 MBR \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0441\u0432\u043e\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u043e\u0431\u0435\u0433\u0430\u0435\u0442 \u043f\u043e \u044d\u0442\u0438\u043c 4-\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0430\u043c \u0432 \u043f\u043e\u0438\u0441\u043a\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430. \u041f\u043e\u0441\u043b\u0435 \u0435\u0433\u043e \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f, MBR \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0441\u0435\u043a\u0442\u043e\u0440\u0430 \u044d\u0442\u043e\u0433\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430 \u043d\u0430 \u0430\u0434\u0440\u0435\u0441 0000h:7C00h \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442 \u0442\u0443\u0434\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435. \u041d\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442 LBA \u0430\u0434\u0440\u0435\u0441 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0441\u0435\u043a\u0442\u043e\u0440\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430, \u0442\u0430\u043a \u043a\u0430\u043a \u0438\u043c\u0435\u043d\u043d\u043e \u043d\u0430 \u043d\u0435\u043c \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0448\u0435 \u044f\u0434\u0440\u043e, \u0438 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0444\u0430\u0439\u043b\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0447\u0438\u0442\u0430\u0442\u044c. \u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0430\u0434\u0440\u0435\u0441, \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0439 \u0441\u0435\u043a\u0442\u043e\u0440 \u0434\u0438\u0441\u043a\u0430, \u043d\u0430\u0439\u0442\u0438 \u043d\u0430 \u043d\u0435\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0440\u0430\u0437\u0434\u0435\u043b\u043e\u0432, \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u043e\u0432 \u043d\u0430\u0439\u0442\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u044b\u0439 \u0440\u0430\u0437\u0434\u0435\u043b, \u0430 \u0438\u0437 \u0435\u0433\u043e \u0437\u0430\u043f\u0438\u0441\u0438 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043d\u0443\u0436\u043d\u043e\u0435 \u043f\u043e\u043b\u0435.<\/p>\n<p>  \u0418\u0442\u0430\u043a, \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f \u0441\u0435\u043a\u0442\u043e\u0440\u0430 \u0441 \u0434\u0438\u0441\u043a\u0430 \u0438 \u0437\u043d\u0430\u043d\u0438\u0435 \u043e \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u043d\u0430\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0430 \u043d\u0430 \u0434\u0438\u0441\u043a\u0435. \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043d\u0430\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u043d\u0430 \u044d\u0442\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435.<\/p>\n<p>  \u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439<br \/>\n  \u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 fat_io_lib. \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u043f\u043e\u0434 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439 GPL. \u041e\u043d\u0430 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u0438 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f\u043c\u0438, \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0439 \u0438\u043c\u0435\u044e\u0449\u0435\u043c\u0443\u0441\u044f \u0432 libc. \u0420\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u0442\u0430\u043a\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043a\u0430\u043a fopen(), fgets(), fputc(), fread(), fwrite() \u0438 \u0442.\u0434. \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u0441\u0432\u043e\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u0434\u0432\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438: \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0435\u043a\u0442\u043e\u0440 \u0438 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0441\u0435\u043a\u0442\u043e\u0440, \u043f\u0440\u0438\u0447\u0435\u043c \u043f\u0435\u0440\u0432\u0430\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439. \u0424\u0443\u043d\u043a\u0446\u0438\u0438 \u0438\u043c\u0435\u044e\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f:<\/p>\n<p>  int media_read(uint32 sector, uint8 *buffer, uint32 sector_count);<br \/>\n  int media_write(uint32 sector, uint8 *buffer, uint32 sector_count);<br \/>\n  Return:  int, 1 = success, 0 = failure.<\/p>\n<p>  \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u043d\u0430 \u0447\u0438\u0441\u0442\u043e\u043c \u0421, \u0447\u0442\u043e \u043e\u043f\u044f\u0442\u044c-\u0442\u0430\u043a\u0438 \u043d\u0430\u043c \u043d\u0430 \u0440\u0443\u043a\u0443. \u0414\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u0441\u0432\u043e\u0435\u0439 \u043c\u0438\u043d\u0438-\u041e\u0421 \u043d\u0430\u043c \u043d\u0435 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043c\u0435\u043d\u044f\u0442\u044c \u0432 \u043d\u0435\u0439 \u043d\u0438 \u0441\u0442\u0440\u043e\u0447\u043a\u0438. \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043e\u0436\u0438\u0434\u0430\u0435\u0442, \u0447\u0442\u043e \u0447\u0442\u0435\u043d\u0438\u0435 \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0440\u0430\u0437\u0434\u0435\u043b\u0430 \u0441 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439.<\/p>\n<p>  \u0418\u0442\u0430\u043a, \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0447\u0442\u0435\u043d\u0438\u044f\/\u0437\u0430\u043f\u0438\u0441\u0438 \u0441\u0435\u043a\u0442\u043e\u0440\u0430 \u043d\u0430 \u0440\u0430\u0437\u0434\u0435\u043b \u0438 \u0435\u0441\u0442\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 FAT16\/32, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u044d\u0442\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0432\u0441\u0435 \u0432\u043e\u0435\u0434\u0438\u043d\u043e \u0438 \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442. \u041d\u043e \u043f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u043a\u043e\u0434\u0443, \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u043f\u043e\u0434\u0445\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c, \u0432\u043f\u043e\u043b\u043d\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0436\u0438\u0437\u043d\u0438. \u041d\u0438\u0436\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0447\u0430\u0441\u0442\u044c VBR windows 7, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0447\u0442\u0435\u043d\u0438\u0435 \u0441\u0435\u043a\u0442\u043e\u0440\u0430 \u0434\u0438\u0441\u043a\u0430 \u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f int0x13. \u042d\u0442\u043e\u0442 \u043a\u043e\u0434 \u043c\u043d\u043e\u0433\u043e\u043a\u0440\u0430\u0442\u043d\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u0432\u043f\u043b\u043e\u0442\u044c \u0434\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0439 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438.<\/p>\n<p>  \u0414\u043b\u044f \u0432\u044b\u0437\u043e\u0432\u0430 \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u0434\u0430, Windows 7, \u043f\u043e\u0434\u043e\u0431\u043d\u043e \u0442\u043e\u043c\u0443, \u043a\u0430\u043a \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u043c \u043c\u044b, \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u0438\u0437 \u0437\u0430\u0449\u0438\u0449\u0435\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u0436\u0438\u043c\u0430 \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439, \u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u043e. \u042d\u0442\u043e \u043d\u0435\u0441\u043b\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0432 Windows 7 \u0432 QEMU. QEMU \u0434\u043e\u043b\u0436\u0435\u043d \u043e\u0436\u0438\u0434\u0430\u0442\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a\u0430. \u041f\u043e\u0441\u043b\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a\u0430 (gdb) \u0441\u0442\u0430\u0432\u0438\u043c breakpoint \u043d\u0430 \u0430\u0434\u0440\u0435\u0441 (0x7c00 + 0x11d). \u0421\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u0435 breakpoint\u2019\u0430 \u0431\u0443\u0434\u0435\u0442 \u043e\u0437\u043d\u0430\u0447\u0430\u0442\u044c \u0432\u044b\u0437\u043e\u0432 \u044d\u0442\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u041a\u0441\u0442\u0430\u0442\u0438 \u0432 Windows XP \u044d\u0442\u043e\u0442 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442, \u0434\u043b\u044f \u0432\u044b\u0437\u043e\u0432\u0430 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439 BIOS&#8217;\u0430 \u0442\u0430\u043c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044f\u0442 \u0432 \u0440\u0435\u0436\u0438\u043c VM86.<\/p>\n<p>  ! \u0412\u0410\u0416\u041d\u041e! \u0412\u0441\u0435 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043c\u043e\u0433\u0443\u0442 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0445 \u0448\u0430\u0433\u043e\u0432 \u0438\u0437 \u043f\u044f\u0442\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043d\u0430\u0448\u0435\u0439 \u0441\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0442\u0435\u0439<\/p>\n<p>  \u0428\u0430\u0433 1. \u0418\u0437\u043c\u0435\u043d\u0438\u043c \u043e\u0441\u043d\u043e\u0432\u043d\u0443\u044e \u043b\u043e\u0433\u0438\u043a\u0443 \u0432 kernel.c<\/p>\n<p>  1. \u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0432 \u0444\u0430\u0439\u043b\u0435 kernel.c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f:<\/p>\n<p>   &lt;code&gt;#include &quot;multiboot.h&quot;<br \/>\n  #include &quot;fat_io_lib\/fat_filelib.h&quot;<br \/>\n   \/\/ \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b \u0432 loader.s<br \/>\n  extern u32 mbd;<br \/>\n  extern u32 magic;<\/p>\n<p>  \u041a\u043e\u0434, \u043f\u0435\u0447\u0430\u0442\u0430\u044e\u0449\u0438\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438<\/p>\n<p>   u64 ram_size = GetRamsize();<br \/>\n  printf(&quot;ram_size = %llu(%lluMb)\\n&quot;, ram_size, ram_size \/ 0x100000);<\/p>\n<p>  \u0437\u0430\u043c\u0435\u043d\u0438\u043c \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0434:<\/p>\n<p>  \/\/ \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0447\u0442\u043e \u0431\u044b\u043b\u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u044b grub-\u043e\u043c<br \/>\n      if (magic != MULTIBOOT_BOOTLOADER_MAGIC)<br \/>\n      {<br \/>\n          printf(&quot;Invalid magic number: 0x%x\\n&quot;, magic);<br \/>\n    return;<br \/>\n      }<br \/>\n     multiboot_info_t *p_multiboot_info = (multiboot_info_t*)mbd;<\/p>\n<p>    \/\/ Is boot_device valid?<br \/>\n      if ((p_multiboot_info-&gt;flags &#038; 2) == 0)<br \/>\n      {<br \/>\n          printf(&quot;Error: boot_device(2) flag is clear\\n&quot;);<br \/>\n          return;<br \/>\n      }<\/p>\n<p>    \/\/ \u0438\u0449\u0435\u043c \u043f\u0435\u0440\u0432\u044b\u0439 \u0441\u0435\u043a\u0442\u043e\u0440 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430<br \/>\n      if (InitBootMedia(p_multiboot_info-&gt;boot_device &gt;&gt; 24) == 0)<br \/>\n      {<br \/>\n          printf(&quot;Error: InitBootMedia failed.\\n&quot;);<br \/>\n        return;<br \/>\n      }<\/p>\n<p>  \/\/ \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 fat_io_lib<br \/>\n      fl_init();<br \/>\n    if (fl_attach_media(ReadBootMedia, WriteBootMedia) != FAT_INIT_OK)<br \/>\n     {<br \/>\n          printf(&quot;Error: Media attach failed.\\n&quot;);<br \/>\n          return;<br \/>\n      }<\/p>\n<p>      \/\/ \u0432\u044b\u0432\u043e\u0434\u0438\u043c \u0441\u043f\u0438\u0441\u043e\u043a \u0444\u0430\u0439\u043b\u043e\u0432 \u0432 \u043f\u0430\u043f\u043a\u0435 \/boot\/grub<br \/>\n      fl_listdirectory(&quot;\/boot\/grub&quot;);<\/p>\n<p>      \/\/ \u0432\u044b\u0432\u043e\u0434\u0438\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \/boot\/grub\/menu.lst \u043d\u0430 \u044d\u043a\u0440\u0430\u043d<br \/>\n    char str[64];<br \/>\n    void *file = fl_fopen(&quot;\/boot\/grub\/menu.lst&quot;, &quot;r&quot;);<br \/>\n      if (file == 0)<br \/>\n      {<br \/>\n     printf(&quot;Error: can not open file.\\n&quot;);<br \/>\n     return;<br \/>\n      }<br \/>\n    printf(&quot;\\nConntent of the file \/boot\/grub\/menu.lst:\\n&quot;);<br \/>\n    while (fl_fgets(str, sizeof(str), file))<br \/>\n    {<br \/>\n      printf(&quot;%s&quot;, str);<br \/>\n      }<\/p>\n<p>  \u041f\u0430\u043c\u044f\u0442\u044c \u043f\u043e\u0434 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 mbd \u0438 magic \u0437\u0430\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u0432 \u0444\u0430\u0439\u043b\u0435 loader.s, \u0442\u0430\u043a \u0447\u0442\u043e \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c \u0438\u0437 \u043a\u043e\u0434\u0430 \u043d\u0430 \u0421. \u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f magic \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u0443, \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u044e\u0449\u0443\u044e, \u0447\u0442\u043e \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442 Multiboot, \u044d\u0442\u0430\u043b\u043e\u043d\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f GRUB. \u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f mbd \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 multiboot_info_t, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0430 \u0432 multiboot.h. \u041d\u043e\u043c\u0435\u0440 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0433\u043e \u0434\u0438\u0441\u043a\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c \u2014 p_multiboot_info-&gt;boot_device &gt;&gt; 24. \u0424\u0443\u043d\u043a\u0446\u0438\u044f InitBootMedia \u0437\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442 \u043d\u043e\u043c\u0435\u0440 \u0434\u0438\u0441\u043a\u0430 \u0438 \u0438\u0449\u0435\u0442 \u043f\u0435\u0440\u0432\u044b\u0439 \u0441\u0435\u043a\u0442\u043e\u0440 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0442\u0435\u043c \u0432\u0441\u0435 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043e\u0442 \u043d\u0435\u0433\u043e. <\/p>\n<p>  \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 fat_io_lib \u0434\u043b\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0432\u044b\u0437\u043e\u0432\u0430 \u0434\u0432\u0443\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439: fl_init \u0438 fl_attach_media. \u041f\u0435\u0440\u0432\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u0431\u043d\u0443\u043b\u044f\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u0430 \u0432\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0447\u0442\u0435\u043d\u0438\u044f \u0438 \u0437\u0430\u043f\u0438\u0441\u0438 \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u043d\u0430 \u0434\u0438\u0441\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u0430\u0442\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0434\u043b\u044f <\/p>\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-252179","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/252179","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=252179"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/252179\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=252179"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=252179"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=252179"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}