{"id":316268,"date":"2021-01-12T15:02:10","date_gmt":"2021-01-12T15:02:10","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=316268"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=316268","title":{"rendered":"\u041f\u0438\u0448\u0435\u043c \u043c\u0430\u043a\u0435\u0442 16-\u0431\u0438\u0442\u043d\u043e\u0433\u043e \u044f\u0434\u0440\u0430 \u043d\u0430 C\/C++"},"content":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\"><a href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/535982\/\"><\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/i5\/sj\/8e\/i5sj8et-ud2o21hmws-261nxxsy.png\"><\/div>\n<p><\/a><\/p>\n<p>  \u0412 <a href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/536132\/\">\u043f\u0435\u0440\u0432\u043e\u0439 <\/a>\u0438 <a href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/536156\/\">\u0432\u0442\u043e\u0440\u043e\u0439<\/a> \u0441\u0442\u0430\u0442\u044c\u044f\u0445 \u044f \u043b\u0438\u0448\u044c \u043a\u043e\u0440\u043e\u0442\u043a\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430 \u043d\u0430 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0435 \u0438 C. \u0414\u043b\u044f \u043c\u0435\u043d\u044f \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u0445\u043e\u0442\u044c \u0438 \u043d\u0435\u043f\u0440\u043e\u0441\u0442\u043e, \u043d\u043e \u0432 \u0442\u043e \u0436\u0435 \u0432\u0440\u0435\u043c\u044f \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0442\u0430\u043a \u0447\u0442\u043e \u044f \u043e\u0441\u0442\u0430\u043b\u0441\u044f \u0434\u043e\u0432\u043e\u043b\u0435\u043d. \u041e\u0434\u043d\u0430\u043a\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430 \u043c\u043d\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043c\u0430\u043b\u043e, \u0438 \u044f \u0443\u0432\u043b\u0435\u043a\u0441\u044f \u0438\u0434\u0435\u0435\u0439 \u0435\u0433\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e. \u041d\u043e \u0442\u0430\u043a \u043a\u0430\u043a \u0432 \u0438\u0442\u043e\u0433\u0435 \u0440\u0430\u0437\u043c\u0435\u0440 \u0433\u043e\u0442\u043e\u0432\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043f\u0440\u0435\u0432\u044b\u0441\u0438\u043b 512 \u0431\u0430\u0439\u0442, \u0442\u043e \u043f\u0440\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0441 \u043d\u0435\u0441\u0443\u0449\u0435\u0433\u043e \u0435\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0433\u043e \u0434\u0438\u0441\u043a\u0430 \u044f \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u0441 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043e\u0439 \u201cThis is not a bootable disk\u201d.<a name=\"habracut\"><\/a>  <\/p>\n<h2><font color=\"#3AC1EF\">\u041e \u0447\u0435\u043c \u044d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f?<\/font><\/h2>\n<p>  \u0412 \u043d\u0435\u0439 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0437\u043d\u0430\u0447\u0438\u043c\u043e\u0441\u0442\u044c \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u043c\u0430\u043a\u0435\u0442 \u044f\u0434\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044f \u0432\u0432\u043e\u0434 \u0442\u0435\u043a\u0441\u0442\u0430. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u044f \u043f\u043e\u044f\u0441\u043d\u044e, \u043f\u043e\u0447\u0435\u043c\u0443 \u0432\u043d\u0435\u0434\u0440\u044f\u044e \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a \u0432 \u0434\u0438\u0441\u043a\u0435\u0442\u0443, \u043e\u0442\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0432 FAT. \u0418 \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u0434\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u043a\u0440\u044b\u0442\u0438\u044f \u0442\u0435\u043c\u044b \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u044f \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u044e\u0441\u044c \u043f\u0440\u0438\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u0440\u0430\u0442\u043a\u043e\u0441\u0442\u0438 \u0438 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b \u0438\u0437\u043b\u043e\u0436\u0435\u043d\u0438\u044f.<\/p>\n<h2><font color=\"#3AC1EF\">\u041d\u0443\u0436\u0435\u043d \u043b\u0438 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043e\u043f\u044b\u0442?<\/font><\/h2>\n<p>  \u0421\u0442\u0430\u0442\u044c\u044f \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u0435\u0435 \u0442\u0435\u043c, \u0443 \u043a\u043e\u0433\u043e \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u043e\u043f\u044b\u0442 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0435\u0435 \u0447\u0438\u0441\u0442\u043e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439, \u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0431\u044b, \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u043d\u0430 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0435 \u0438 C \u043c\u043e\u0436\u0435\u0442 \u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u043b\u043e\u0436\u043d\u044b\u043c. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u043e\u0432\u0438\u0447\u043a\u0430\u043c \u044f \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0432\u0432\u043e\u0434\u043d\u044b\u043c\u0438 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430\u043c\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0443\u0436\u0435 \u043f\u043e\u0442\u043e\u043c \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a \u044d\u0442\u043e\u043c\u0443 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0443. <\/p>\n<p>  \u041a\u0430\u043a \u0438 \u0440\u0430\u043d\u0435\u0435, \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0438\u0437\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d \u043f\u043e \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0443 \u0432\u043e\u043f\u0440\u043e\u0441-\u043e\u0442\u0432\u0435\u0442, \u0447\u0442\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c \u0432\u043e\u0441\u043f\u0440\u0438\u044f\u0442\u0438\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438. <\/p>\n<h2><font color=\"#3AC1EF\">\u041f\u043b\u0430\u043d \u0441\u0442\u0430\u0442\u044c\u0438<\/font><\/h2>\n<p>  <\/p>\n<ul>\n<li>\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430<\/li>\n<li>\u0412\u044b\u0437\u043e\u0432 \u0438\u0437 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430 \u0434\u0440\u0443\u0433\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0434\u0438\u0441\u043a\u0430<\/li>\n<li>\u0424\u0430\u0439\u043b\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 FAT<\/li>\n<li>\u041f\u0440\u0438\u043d\u0446\u0438\u043f \u0440\u0430\u0431\u043e\u0442\u044b FAT<\/li>\n<li>\u0421\u0440\u0435\u0434\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438<\/li>\n<li>\u041d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430 \u0434\u043b\u044f FAT<\/li>\n<li>\u041c\u0438\u043d\u0438-\u043f\u0440\u043e\u0435\u043a\u0442: \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 16-\u0431\u0438\u0442\u043d\u043e\u0433\u043e \u044f\u0434\u0440\u0430<\/li>\n<li>\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u044f\u0434\u0440\u0430<\/li>\n<\/ul>\n<p>  <\/p>\n<h2><font color=\"#3AC1EF\">\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430<\/font><\/h2>\n<p>  \u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0441\u0442\u0430\u0442\u044c\u044f\u0445 \u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a \u0438, \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0432 \u0441 \u0435\u0433\u043e \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0432\u044b\u0432\u043e\u0434 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d \u0446\u0432\u0435\u0442\u043d\u044b\u0445 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432, \u0437\u0430\u0445\u043e\u0442\u0435\u043b \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c. \u041e\u0434\u043d\u0430\u043a\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u044f \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u0441 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0441\u0435\u043a\u0442\u043e\u0440\u0430 \u0432 512 \u0431\u0430\u0439\u0442, \u0447\u0442\u043e \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u043e \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u0436\u0435\u043b\u0430\u0435\u043c\u043e\u0433\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c \u043f\u0443\u0442\u0435\u043c. <\/p>\n<p>  \u0412 \u0438\u0442\u043e\u0433\u0435 \u043f\u0435\u0440\u0435\u0434\u043e \u043c\u043d\u043e\u0439 \u0441\u0442\u043e\u0438\u0442 \u0434\u0432\u0435 \u0437\u0430\u0434\u0430\u0447\u0438:<\/p>\n<ul>\n<li>\u0420\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a \u043a\u043e\u0434\u043e\u043c, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u043c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c.<\/li>\n<li>\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0440\u0430\u0437\u043c\u0435\u0440 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430 \u0432 512 \u0431\u0430\u0439\u0442.<\/li>\n<\/ul>\n<p>  <\/p>\n<h3><font color=\"#3AC1EF\">\u041a\u0430\u043a \u044f \u0431\u0443\u0434\u0443 \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c?<\/font><\/h3>\n<p>  <b>\u042d\u0442\u0430\u043f 1:<\/b><\/p>\n<ul>\n<li>\u041d\u0430\u043f\u0438\u0448\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 <i>kernel.c<\/i> \u043d\u0430 C, \u0432\u043d\u0435\u0434\u0440\u0438\u0432 \u0432 \u043d\u0435\u0435 \u0432\u0441\u044e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c.<\/li>\n<li>\u0421\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u044e \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044e \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0439 \u0444\u0430\u0439\u043b \u043a\u0430\u043a <i>kernel.bin<\/i>.<\/li>\n<li>\u0421\u043a\u043e\u043f\u0438\u0440\u0443\u044e \u044d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0441\u0435\u043a\u0442\u043e\u0440 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0433\u043e \u0434\u0438\u0441\u043a\u0430.<\/li>\n<\/ul>\n<p>  <b>\u042d\u0442\u0430\u043f 2:<\/b><\/p>\n<p>  \u0412 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0435 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0432\u0442\u043e\u0440\u043e\u0439 \u0441\u0435\u043a\u0442\u043e\u0440, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 <i>kernel.bin<\/i>, \u0432 RAM \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443, \u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443, <code>0x1000<\/code>, \u0430 \u0437\u0430\u0442\u0435\u043c \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u044d\u0442\u043e\u043c\u0443 \u0430\u0434\u0440\u0435\u0441\u0443 \u0438\u0437 <code>0x7\u044100<\/code> \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c <i>kernel.bin<\/i>.<\/p>\n<p>  \u0412\u043e\u0442 \u0441\u0445\u0435\u043c\u0430 \u0434\u043b\u044f \u043b\u0443\u0447\u0448\u0435\u0433\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u0438\u0434\u0435\u0438:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/9m\/s5\/ze\/9ms5zetqen6cayirl6bmv7614nk.png\"><\/div>\n<p>  <\/p>\n<h2><font color=\"#3AC1EF\">\u0417\u0430\u043f\u0443\u0441\u043a \u0438\u0437 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430 \u0434\u0440\u0443\u0433\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0434\u0438\u0441\u043a\u0430<\/font><\/h2>\n<p>  \u041a\u0430\u043a \u043c\u044b \u0442\u0435\u043f\u0435\u0440\u044c \u0437\u043d\u0430\u0435\u043c, \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430 (<code>0x7c00<\/code>) \u0432 \u0434\u0440\u0443\u0433\u0443\u044e \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u043f\u0430\u043c\u044f\u0442\u0438, \u0433\u0434\u0435 \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430\u0448 <i>kernel.bin<\/i>, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435. \u041d\u043e \u0437\u0434\u0435\u0441\u044c \u0443 \u043c\u0435\u043d\u044f \u044f \u0445\u043e\u0447\u0443 \u043a\u043e\u0435-\u0447\u0442\u043e \u0443\u0442\u043e\u0447\u043d\u0438\u0442\u044c.<\/p>\n<h3><font color=\"#3AC1EF\">\u041a\u0430\u043a \u0443\u0437\u043d\u0430\u0442\u044c \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432 <i>kernel.bin<\/i> \u0437\u0430\u0439\u043c\u0435\u0442 \u043d\u0430 \u0434\u0438\u0441\u043a\u0435?<\/font><\/h3>\n<p>  \u041d\u0443 \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0432\u043e\u043f\u0440\u043e\u0441. \u0414\u043b\u044f \u043e\u0442\u0432\u0435\u0442\u0430 \u043d\u0430 \u043d\u0435\u0433\u043e \u043d\u0430\u043c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043d\u0435\u0441\u043b\u043e\u0436\u043d\u0443\u044e \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u0443, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 <i>kernel.bin<\/i> \u043d\u0430 \u0440\u0430\u0437\u043c\u0435\u0440 \u0441\u0435\u043a\u0442\u043e\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 512 \u0431\u0430\u0439\u0442. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 <i>kernel.bin<\/i> \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0432\u0435\u043d 1024 \u0431\u0430\u0439\u0442\u0430, \u0442\u043e \u0438 \u0437\u0430\u0439\u043c\u0435\u0442 \u043e\u043d 2 \u0441\u0435\u043a\u0442\u043e\u0440\u0430. <\/p>\n<p>  \u0412 \u0441\u0432\u044f\u0437\u0438 \u0441 \u044d\u0442\u0438\u043c \u0432\u0430\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0437\u0430\u0445\u0430\u0440\u0434\u043a\u043e\u0434\u0438\u0442\u044c \u0432 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0435 \u0434\u043b\u044f \u044f\u0434\u0440\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432, \u0438 \u043f\u0440\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u0435\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u043d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u0442\u044c \u043e \u0432\u043d\u0435\u0441\u0435\u043d\u0438\u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u043f\u0440\u0430\u0432\u043e\u043a. \u0412 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0440\u0438 \u043d\u0435\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e \u0438 \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u044f\u0434\u0440\u0430 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0432\u0430\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f. <\/p>\n<h3><font color=\"#3AC1EF\">\u041c\u043e\u0436\u043d\u043e \u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u043c\u0438\u043c\u043e <i>kernel.bin<\/i> \u0434\u0440\u0443\u0433\u0438\u0435 \u0444\u0430\u0439\u043b\u044b, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 office.bin, entertainment.bin, drivers.bin?<\/font><\/h3>\n<p>  \u0412 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u0434\u0430. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u043d\u0430 \u0434\u0438\u0441\u043a\u0435\u0442\u0443, \u043d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u044f \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439 \u043e\u0431 \u0438\u0445 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0438, \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u043c\u043e\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u0438 \u043f\u0440\u043e\u0447\u0435\u043c. \u041d\u043e \u0442\u0443\u0442 \u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0441\u043a\u0430\u0436\u0443, \u0447\u0442\u043e \u0432 \u0438\u0442\u043e\u0433\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0441\u0438\u043b\u044c\u043d\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f, \u0438 \u0432 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0441\u0447\u0435\u0442\u0435 \u043c\u043d\u0435 \u0442\u0430\u043a\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u0441\u044f.<\/p>\n<h3><font color=\"#3AC1EF\">\u041e\u0442\u043a\u0443\u0434\u0430 \u043c\u044b \u0437\u043d\u0430\u0435\u043c, \u0447\u0442\u043e \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0433\u043e \u0441\u0435\u043a\u0442\u043e\u0440\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u0438\u043c\u0435\u043d\u043d\u043e \u0436\u0435\u043b\u0430\u0435\u043c\u044b\u0435 \u0444\u0430\u0439\u043b\u044b?<\/font><\/h3>\n<p>  \u0425\u043e\u0440\u043e\u0448\u0438\u0439 \u0432\u043e\u043f\u0440\u043e\u0441, \u0442\u0430\u043a \u043a\u0430\u043a \u043c\u044b, \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e, \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0441\u0435\u043a\u0442\u043e\u0440 \u0432 \u043f\u0430\u043c\u044f\u0442\u044c \u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0435\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435. \u042d\u0442\u043e \u043d\u0435 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442, \u0438 \u0432 \u043d\u0435\u043c \u043a\u043e\u0435-\u0447\u0435\u0433\u043e \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442. <\/p>\n<h3><font color=\"#3AC1EF\">\u0427\u0435\u0433\u043e \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442?<\/font><\/h3>\n<p>  \u0417\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a \u0432\u0441\u043b\u0435\u043f\u0443\u044e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0441\u0435\u043a\u0442\u043e\u0440\u0430 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u043e\u0434\u0438\u043d \u0437\u0430 \u0434\u0440\u0443\u0433\u0438\u043c \u0438 \u0437\u0430\u0442\u0435\u043c \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u044d\u0442\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432. \u041d\u043e \u0434\u0430\u0436\u0435 \u0434\u043e \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043e\u043d \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0444\u0430\u0439\u043b\u044b \u0432 \u043f\u0430\u043c\u044f\u0442\u044c, \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0441\u043f\u043e\u0441\u043e\u0431 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u043b\u0438 \u043e\u043d\u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0430 \u0434\u0438\u0441\u043a\u0435.<\/p>\n<h3><font color=\"#3AC1EF\">\u0427\u0442\u043e \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0435\u0442, \u0435\u0441\u043b\u0438 \u043f\u043e \u043e\u0448\u0438\u0431\u043a\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0441\u0435\u043a\u0442\u043e\u0440 \u043d\u0435 \u0442\u043e\u0442 \u0444\u0430\u0439\u043b, \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a \u0438 \u043d\u0430\u0447\u0430\u0442\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435?<\/font><\/h3>\n<p>  \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u0430\u0435\u0442 \u0441\u0431\u043e\u0439. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0430 \u0434\u0438\u0441\u043a\u0435 \u0434\u043e\u043b\u0436\u043d\u0430 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043e\u0431\u043b\u0430\u0441\u0442\u044c, \u0433\u0434\u0435 \u043f\u043e\u0434\u043e\u0431\u043d\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443 \u0432 \u043a\u043d\u0438\u0433\u0435 \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u043d\u044b \u0432\u0441\u0435 \u0438\u043c\u0435\u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432. <br \/>  \u0422\u043e\u0433\u0434\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044c \u0438\u043d\u0434\u0435\u043a\u0441 \u044d\u0442\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u043d\u0430 \u0434\u0438\u0441\u043a\u0435, \u0438 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0442\u0430\u043a\u043e\u0432\u043e\u0439 \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u2013 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u044d\u0442\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0432 \u043f\u0430\u043c\u044f\u0442\u044c. <\/p>\n<p>  \u041c\u043d\u0435 \u0442\u0430\u043a\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043e\u0447\u0435\u043d\u044c \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u043d \u0438\u0437\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0442 \u043b\u0438\u0448\u043d\u0438\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439.<\/p>\n<p>  \u0417\u0434\u0435\u0441\u044c \u043c\u044b \u0438\u0437\u0431\u0435\u0433\u0430\u0435\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c. \u0414\u043e \u044d\u0442\u043e\u0433\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a \u0432\u0441\u043b\u0435\u043f\u0443\u044e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u043b \u0436\u0435\u0441\u0442\u043a\u043e \u0437\u0430\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0441\u0435\u043a\u0442\u043e\u0440\u0430. \u041d\u043e \u0437\u0430\u0447\u0435\u043c \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0444\u0430\u0439\u043b, \u043d\u0435 \u0431\u0443\u0434\u0443\u0447\u0438 \u0443\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u043c \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u044d\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u043d\u0443\u0436\u043d\u044b\u0439 \u0444\u0430\u0439\u043b, \u0438 \u0447\u0442\u043e \u043e\u043d \u0432\u043e\u043e\u0431\u0449\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442?<\/p>\n<h3><font color=\"#3AC1EF\">\u041a\u0430\u043a \u044d\u0442\u043e \u0440\u0435\u0448\u0430\u0435\u0442\u0441\u044f?<\/font><\/h3>\n<p>  \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043d\u0430 \u0434\u0438\u0441\u043a\u0435, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u043f\u0435\u0440\u0435\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a, \u043f\u043e\u0432\u044b\u0441\u0438\u0432 \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u0435\u0433\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0444\u0430\u0439\u043b\u043e\u0432. <\/p>\n<p>  \u0422\u0430\u043a\u043e\u0439 \u0432\u0438\u0434 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043c\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u043e\u0432 \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c, \u0441\u0440\u0435\u0434\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0435\u0441\u0442\u044c \u043a\u0430\u043a \u043a\u043e\u043c\u043c\u0435\u0440\u0447\u0435\u0441\u043a\u0438\u0435, \u0442\u0430\u043a \u0438 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0435. \u0412\u043e\u0442 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u043d\u0438\u0445:<\/p>\n<ul>\n<li>FAT<\/li>\n<li>FAT16<\/li>\n<li>FAT32<\/li>\n<li>NTFS<\/li>\n<li>EXT<\/li>\n<li>EXT2<\/li>\n<li>EXT3<\/li>\n<li>EXT4<\/li>\n<\/ul>\n<p>  <\/p>\n<h2><font color=\"#3AC1EF\">FAT<\/font><\/h2>\n<p>  \u0414\u043b\u044f \u043b\u0443\u0447\u0448\u0435\u0433\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0432\u0430\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0437\u043d\u0430\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043d\u044e\u0430\u043d\u0441\u044b.<\/p>\n<p>  \u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0435\u0434\u0438\u043d\u0438\u0446\u0435\u0439 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 FAT \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043b\u0430\u0441\u0442\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 1 \u0441\u0435\u043a\u0442\u043e\u0440 \u043d\u0430\u043a\u043e\u043f\u0438\u0442\u0435\u043b\u044f. \u0418\u043d\u0430\u0447\u0435 \u0433\u043e\u0432\u043e\u0440\u044f, \u043d\u0430 \u0434\u0438\u0441\u043a\u0435\u0442\u0435, \u043e\u0442\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0432 FAT, 1 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u0435\u043d 1 \u0441\u0435\u043a\u0442\u043e\u0440\u0443 \u0438, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0440\u0430\u0432\u0435\u043d 512 \u0431\u0430\u0439\u0442.<\/p>\n<p>  \u0414\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u0447\u0435\u0442\u044b\u0440\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043e\u0431\u043b\u0430\u0441\u0442\u0438:<\/p>\n<ul>\n<li>\u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u044b\u0439 \u0441\u0435\u043a\u0442\u043e\u0440 (boot sector);<\/li>\n<li>\u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432 (file allocation table);<\/li>\n<li>\u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 (root directory);<\/li>\n<li>\u043e\u0431\u043b\u0430\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0445 (data area).<\/li>\n<\/ul>\n<p>  \u042f \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u043b\u0441\u044f \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u044d\u0442\u0443 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0432 \u0432\u0438\u0434\u0435 \u0441\u0445\u0435\u043c\u044b:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/je\/sg\/jo\/jesgjo8i1m3c2hdvjcugzpjmx8m.png\"><\/div>\n<p>  \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0430\u0436\u0434\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435.<\/p>\n<h3><font color=\"#3AC1EF\">\u0417\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u044b\u0439 \u0441\u0435\u043a\u0442\u043e\u0440<\/font><\/h3>\n<p>  \u0417\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u044b\u0439 \u0441\u0435\u043a\u0442\u043e\u0440 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0441\u043b\u0443\u0436\u0435\u0431\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e, \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u041e\u0421 \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0435\u0442 \u0442\u0438\u043f \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0434\u0438\u0441\u043a\u0430, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0443\u0436\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u043a \u0447\u0442\u0435\u043d\u0438\u044e \u0435\u0433\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e.<\/p>\n<p>  \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 FAT, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0430\u044f\u0441\u044f \u0432 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u043c \u0441\u0435\u043a\u0442\u043e\u0440\u0435, \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0431\u043b\u043e\u043a\u043e\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 BIOS.<\/p>\n<h3><font color=\"#3AC1EF\">\u0411\u043b\u043e\u043a \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 BIOS<\/font><\/h3>\n<p>  \u041d\u0438\u0436\u0435 \u044f \u043f\u0440\u0438\u0432\u0435\u043b \u043f\u0440\u0438\u043c\u0435\u0440 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/mt\/b-\/ed\/mtb-edquy0atubwr1qvjrov1fva.png\"><\/div>\n<h3><font color=\"#3AC1EF\">\u0422\u0430\u0431\u043b\u0438\u0446\u0430 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432<\/font><\/h3>\n<p>  \u042d\u0442\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u0432\u043e\u0435\u0433\u043e \u0440\u043e\u0434\u0430 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043a\u0430\u0436\u0434\u0430\u044f \u044f\u0447\u0435\u0439\u043a\u0430, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0430\u044f \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0443 \u0444\u0430\u0439\u043b\u0430, \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430, \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u044f \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u0443\u044e \u0446\u0435\u043f\u043e\u0447\u043a\u0443 \u0432\u0441\u0435\u0445 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432 \u044d\u0442\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430.<\/p>\n<p>  \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0441\u043b\u0443\u0436\u0438\u0442 \u0434\u043b\u044f:<\/p>\n<ul>\n<li>\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430. \u0415\u0441\u043b\u0438 \u043e\u043d\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043c\u0435\u0436\u0434\u0443 <code>0x0ff8 <\/code>\u0438 <code>0x0fff<\/code>, \u0437\u043d\u0430\u0447\u0438\u0442 \u0444\u0430\u0439\u043b \u043d\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u0435\u043a\u0442\u043e\u0440\u0430\u0445, \u0442.\u0435. \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0443\u0442 \u0435\u0433\u043e \u043a\u043e\u043d\u0435\u0446.<\/li>\n<li>\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u044d\u0442\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430. <\/li>\n<\/ul>\n<p>  <b>\u041a \u0441\u0432\u0435\u0434\u0435\u043d\u0438\u044e:<\/b> \u043d\u0430 \u0441\u0445\u0435\u043c\u0435 \u0432\u044b\u0448\u0435 \u044f \u043e\u0442\u043c\u0435\u0442\u0438\u043b \u0434\u0432\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b FAT. \u0412\u0442\u043e\u0440\u0430\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0435\u0439 \u043f\u0435\u0440\u0432\u043e\u0439 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0435\u0435 \u043f\u043e\u0432\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f.<\/p>\n<h3><font color=\"#3AC1EF\">\u041a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433<\/font><\/h3>\n<p>  \u041a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0435\u0442 \u0432 \u0440\u043e\u043b\u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u0430 \u0432\u0441\u0435\u0445 \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0438\u0445\u0441\u044f \u043d\u0430 \u0434\u0438\u0441\u043a\u0435 \u0444\u0430\u0439\u043b\u043e\u0432. \u0418\u043c\u0435\u043d\u043d\u043e \u0437\u0434\u0435\u0441\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a \u0438\u0449\u0435\u0442 \u0438\u043c\u044f \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0438 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u043a \u0435\u0433\u043e \u043f\u0435\u0440\u0432\u043e\u043c\u0443 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0443 \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438. <\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0438 \u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e FAT \u043d\u0430\u0445\u043e\u0434\u0438\u0442 \u0432\u0441\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u043c\u044b\u0435 \u0444\u0430\u0439\u043b\u043e\u043c \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u044b. <\/p>\n<h3><font color=\"#3AC1EF\">\u041e\u0431\u043b\u0430\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0445<\/font><\/h3>\n<p>  \u0417\u0434\u0435\u0441\u044c \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c\u0441\u044f \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u043e\u0432. <br \/>  \u041a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0432\u0430\u0435\u0442 \u0438\u0441\u043a\u043e\u043c\u044b\u0439 \u0441\u0435\u043a\u0442\u043e\u0440 \u0444\u0430\u0439\u043b\u0430, \u0438\u043c\u0435\u043d\u043d\u043e \u0438\u0437 \u044d\u0442\u043e\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u044e\u0442\u0441\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435. <\/p>\n<h3><font color=\"#3AC1EF\">\u041f\u0440\u0438\u043d\u0446\u0438\u043f \u0440\u0430\u0431\u043e\u0442\u044b FAT<\/font><\/h3>\n<p>  \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u043c \u043d\u0430\u0448 \u043f\u0440\u0438\u043c\u0435\u0440 \u0441 <i>kernel.bin<\/i>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u0442 \u0432 \u043f\u0430\u043c\u044f\u0442\u044c \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f. \u0422\u0435\u043f\u0435\u0440\u044c \u0432 \u044d\u0442\u043e\u043c \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438 \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c: <\/p>\n<ul>\n<li>\u0421\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0435 11 \u0431\u0430\u0439\u0442 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 <i>kernel.bin<\/i>, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441\u043e \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f 0 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0433\u043e \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430. <\/li>\n<li>\u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u2013 \u0438\u0437\u0432\u043b\u0435\u0447\u044c \u043f\u0435\u0440\u0432\u044b\u0439 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 <i>kernel.bin<\/i> \u0438\u0437 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f 26 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0433\u043e \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430. <\/li>\n<li>\u0414\u0430\u043b\u0435\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0441\u0435\u043a\u0442\u043e\u0440 \u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0435\u0433\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u043f\u0430\u043c\u044f\u0442\u044c.<\/li>\n<li>\u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0441\u0435\u043a\u0442\u043e\u0440\u0430 \u0432 \u043f\u0430\u043c\u044f\u0442\u044c \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u043f\u043e\u0438\u0441\u043a\u0443 \u0432 FAT \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0444\u0430\u0439\u043b\u0430 \u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u043d \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043c, \u0438\u043b\u0438 \u0435\u0441\u0442\u044c \u0435\u0449\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430\u0445.<\/li>\n<\/ul>\n<p>  \u041d\u0438\u0436\u0435 \u044f \u043f\u0440\u0438\u0432\u0435\u043b \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u0443\u044e \u0441\u0445\u0435\u043c\u0443.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/xb\/fn\/db\/xbfndboroljn5yvwgdrv3bwhr6e.png\"><\/div>\n<h2><font color=\"#3AC1EF\">\u0421\u0440\u0435\u0434\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438<\/font><\/h2>\n<p>  \u0414\u043b\u044f \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u044d\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0438\u043c\u0435\u0442\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c. \u0411\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043f\u043e \u044d\u0442\u0438\u043c \u043f\u0443\u043d\u043a\u0442\u0430\u043c \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0439\u0442\u0438 \u0432 \u0434\u0432\u0443\u0445 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0441\u0442\u0430\u0442\u044c\u044f\u0445.<\/p>\n<ul>\n<li>\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 (GNU Linux).<\/li>\n<li>\u0410\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440 (GNU Assembler).<\/li>\n<li>\u041d\u0430\u0431\u043e\u0440 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 (x86).<\/li>\n<li>\u041d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u0434\u043b\u044f \u043c\u0438\u043a\u0440\u043e\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 x86 \u043d\u0430 GNU Assembler.<\/li>\n<li>\u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 (GNU C \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 GCC).<\/li>\n<li>\u041a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u0449\u0438\u043a (GNU linker ld)<\/li>\n<li>\u042d\u043c\u0443\u043b\u044f\u0442\u043e\u0440, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 bochs, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/li>\n<\/ul>\n<p>  <\/p>\n<h2><font color=\"#3AC1EF\">\u041d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430 FAT<\/font><\/h2>\n<p>  \u041d\u0438\u0436\u0435 \u044f \u043f\u0440\u0438\u0432\u043e\u0436\u0443 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u043a\u043e\u0434\u0430 \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430 <i>kernel.bin<\/i> \u043d\u0430 FAT-\u0434\u0438\u0441\u043a\u0435.<\/p>\n<p>  \u0412\u043e\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a.<\/p>\n<h3><font color=\"#3AC1EF\">\u0424\u0430\u0439\u043b: stage0.S<\/font><\/h3>\n<p>  <\/p>\n<pre><code class=\"bash\">\/*********************************************************************************  *                                                                               *  *                                                                               *  *    Name       : stage0.S                                                      *  *    Date       : 23-Feb-2014                                                   *  *    Version    : 0.0.1                                                         *  *    Source     : assembly language                                             *  *    Author     : Ashakiran Bhatter                                             *  *                                                                               *  *    \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435: \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u043f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u0435\u0442 \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u0430 kernel.bin      *  *                 \u043d\u0430 \u0434\u0438\u0441\u043a\u0435\u0442\u0435 fat12 \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443 \u044d\u0442\u043e\u043c\u0443 \u0444\u0430\u0439\u043b\u0443 \u043f\u0440\u0430\u0432\u0430                 *  *                 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.                                                   *  *    \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435: \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0432 \u0444\u0430\u0439\u043b\u0435 readme.txt                              *  *                                                                               *  *                                                                               *  *********************************************************************************\/ .code16 .text .globl _start; _start:      jmp _boot      nop      \/*\u0431\u043b\u043e\u043a \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 BIOS                           \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438      *\/      \/*--------------------                           --------------------------    *\/      .byte 0x6b,0x69,0x72,0x55,0x58,0x30,0x2e,0x31    \/* \u043c\u0435\u0442\u043a\u0430 OEM                  *\/      .byte 0x00,0x02                                  \/* \u0431\u0430\u0439\u0442\u043e\u0432 \u0432 \u0441\u0435\u043a\u0442\u043e\u0440\u0435           *\/      .byte 0x01                                       \/* \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435        *\/      .byte 0x01,0x00                                  \/* \u0437\u0430\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432 *\/      .byte 0x02                                       \/* \u0442\u0430\u0431\u043b\u0438\u0446 fat                 *\/      .byte 0xe0,0x00                                  \/* \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435         *\/      .byte 0x40,0x0b                                  \/* \u0432\u0441\u0435\u0433\u043e \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432             *\/      .byte 0xf0                                       \/* \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0441\u0440\u0435\u0434\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438    *\/      .byte 0x09,0x00                                  \/* \u0440\u0430\u0437\u043c\u0435\u0440 \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 fat    *\/      .byte 0x02,0x01                                  \/* \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u0432 \u0434\u043e\u0440\u043e\u0436\u043a\u0435         *\/      .byte 0x02,0x00                                  \/* \u0433\u043e\u043b\u043e\u0432\u043e\u043a \u043d\u0430 \u0446\u0438\u043b\u0438\u043d\u0434\u0440         *\/      .byte 0x00,0x00, 0x00, 0x00                      \/* \u0441\u043a\u0440\u044b\u0442\u044b\u0445 \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432           *\/      .byte 0x00,0x00, 0x00, 0x00                      \/* \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432           *\/      .byte 0x00                                       \/* \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0433\u043e \u0434\u0438\u0441\u043a\u0430*\/      .byte 0x00                                       \/* \u043d\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432    *\/      .byte 0x29                                       \/* \u0432\u043d\u0435\u0448\u043d\u044f\u044f \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 *\/      .byte 0x22,0x62,0x79,0x20                        \/* \u0441\u0435\u0440\u0438\u0439\u043d\u044b\u0439 \u043d\u043e\u043c\u0435\u0440             *\/      .byte 0x41,0x53,0x48,0x41,0x4b,0x49              \/* \u043c\u0435\u0442\u043a\u0430 \u0442\u043e\u043c\u0430 6 \u0431\u0430\u0439\u0442 \u0438\u0437 11    *\/      .byte 0x52,0x41,0x4e,0x20,0x42                   \/* \u043c\u0435\u0442\u043a\u0430 \u0442\u043e\u043c\u0430 5 \u0431\u0430\u0439\u0442 \u0438\u0437 11    *\/      .byte 0x48,0x41,0x54,0x54,0x45,0x52,0x22         \/* \u0442\u0438\u043f \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b       *\/       \/* \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043c\u0430\u043a\u0440\u043e\u0441\u043e\u0432 *\/      #include &quot;macros.S&quot;  \/* \u043d\u0430\u0447\u0430\u043b\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 *\/ _boot:      \/* \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u0440\u0435\u0434\u044b *\/      initEnvironment        \/* \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 stage2 *\/      loadFile $fileStage2   \/* \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0446\u0438\u043a\u043b *\/ _freeze:      jmp _freeze  \/* \u043d\u0435\u043f\u0440\u0435\u0434\u0432\u0438\u0434\u0435\u043d\u043d\u043e\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b *\/ _abort:      writeString $msgAbort      jmp _freeze       \/* \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 *\/      #include &quot;routines.S&quot;       \/* \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 *\/      bootDrive : .byte 0x0000      msgAbort  : .asciz &quot;* * * F A T A L  E R R O R * * *&quot;      #fileStage2: .ascii &quot;STAGE2  BIN&quot;      fileStage2: .ascii  &quot;KERNEL  BIN&quot;      clusterID : .word 0x0000       \/* \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043e\u0442 \u043d\u0430\u0447\u0430\u043b\u0430 \u043a 510-\u043c\u0443 \u0431\u0430\u0439\u0442\u0443 *\/      . = _start + 0x01fe       \/* \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u044b \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438             *\/      .word BOOT_SIGNATURE<\/code><\/pre>\n<p>  \u0412 \u044d\u0442\u043e\u043c \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442:<\/p>\n<ul>\n<li>\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0432\u0441\u0435\u0445 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0441\u0442\u0435\u043a\u0430 \u0432\u044b\u0437\u043e\u0432\u043e\u043c \u043c\u0430\u043a\u0440\u043e\u0441\u0430 <code>initEnvironment<\/code>.<\/li>\n<li>\u0412\u044b\u0437\u043e\u0432 \u043c\u0430\u043a\u0440\u043e\u0441\u0430 <code>loadFile <\/code>\u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 <i>kernel.bin<\/i> \u0432 \u043f\u0430\u043c\u044f\u0442\u044c \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>0x1000:0000<\/code> \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0435\u043c\u0443 \u043f\u0440\u0430\u0432\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.<\/li>\n<\/ul>\n<p>  <\/p>\n<h3><font color=\"#3AC1EF\">\u0424\u0430\u0439\u043b: macros.S<\/font><\/h3>\n<p>  \u042d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432\u0441\u0435 \u043f\u0440\u0435\u0434\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u043c\u0430\u043a\u0440\u043e\u0441\u044b \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438.<\/p>\n<pre><code class=\"bash\">\/*********************************************************************************          *                                                                               *  *                                                                               *  *    Name       : macros.S                                                      *  *    Date       : 23-Feb-2014                                                   *  *    Version    : 0.0.1                                                         *  *    Source     : assembly language                                             *  *    Author     : Ashakiran Bhatter                                             *  *                                                                               *  *                                                                               *  *********************************************************************************\/ \/* \u043f\u0440\u0435\u0434\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u043c\u0430\u043a\u0440\u043e\u0441: \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a                         *\/ #define BOOT_LOADER_CODE_AREA_ADDRESS                 0x7c00 #define BOOT_LOADER_CODE_AREA_ADDRESS_OFFSET          0x0000  \/* \u043f\u0440\u0435\u0434\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u043c\u0430\u043a\u0440\u043e\u0441: \u0441\u0435\u0433\u043c\u0435\u043d\u0442 \u0441\u0442\u0435\u043a\u0430                       *\/ #define BOOT_LOADER_STACK_SEGMENT                     0x7c00  #define BOOT_LOADER_ROOT_OFFSET                       0x0200 #define BOOT_LOADER_FAT_OFFSET                        0x0200  #define BOOT_LOADER_STAGE2_ADDRESS                    0x1000 #define BOOT_LOADER_STAGE2_OFFSET                     0x0000   \/* \u043f\u0440\u0435\u0434\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u043c\u0430\u043a\u0440\u043e\u0441: \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0430 \u0434\u0438\u0441\u043a\u0435\u0442\u044b                  *\/ #define BOOT_DISK_SECTORS_PER_TRACK                   0x0012 #define BOOT_DISK_HEADS_PER_CYLINDER                  0x0002 #define BOOT_DISK_BYTES_PER_SECTOR                    0x0200 #define BOOT_DISK_SECTORS_PER_CLUSTER                 0x0001  \/* \u043f\u0440\u0435\u0434\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u043c\u0430\u043a\u0440\u043e\u0441: \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b                  *\/ #define FAT12_FAT_POSITION                            0x0001 #define FAT12_FAT_SIZE                                0x0009 #define FAT12_ROOT_POSITION                           0x0013 #define FAT12_ROOT_SIZE                               0x000e #define FAT12_ROOT_ENTRIES                            0x00e0 #define FAT12_END_OF_FILE                             0x0ff8  \/* \u043f\u0440\u0435\u0434\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u043c\u0430\u043a\u0440\u043e\u0441: \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a                         *\/ #define BOOT_SIGNATURE                                0xaa55  \/* \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u043c\u0430\u043a\u0440\u043e\u0441\u044b *\/ \/* \u043c\u0430\u043a\u0440\u043e\u0441 \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0441\u0440\u0435\u0434\u044b *\/ .macro initEnvironment      call _initEnvironment .endm \/* \u043c\u0430\u043a\u0440\u043e\u0441 \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0441\u0442\u0440\u043e\u043a\u0438 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435.   *\/ \/* \u0414\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043e\u043d \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044e _writeString *\/ \/* \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440: \u0432\u0432\u043e\u0434\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430                *\/ .macro writeString message      pushw \\message      call  _writeString .endm \/* \u043c\u0430\u043a\u0440\u043e\u0441 \u0434\u043b\u044f \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0441\u0435\u043a\u0442\u043e\u0440\u0430 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438  *\/ \/* \u0412\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044e _readSector \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438   *\/ \/* \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \u043d\u043e\u043c\u0435\u0440 \u0441\u0435\u043a\u0442\u043e\u0440\u0430               *\/ \/*            \u0430\u0434\u0440\u0435\u0441 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438                *\/ \/*            \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0430\u0434\u0440\u0435\u0441\u0430          *\/ \/*            \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c\u044b\u0445 \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432      *\/ .macro readSector sectorno, address, offset, totalsectors      pushw \\sectorno      pushw \\address      pushw \\offset      pushw \\totalsectors      call  _readSector      addw  $0x0008, %sp .endm \/* \u043c\u0430\u043a\u0440\u043e\u0441 \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u0444\u0430\u0439\u043b\u0430 \u043d\u0430 FAT-\u0434\u0438\u0441\u043a\u0435.   *\/ \/* \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043e\u043d \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u043c\u0430\u043a\u0440\u043e\u0441 readSector *\/ \/* \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \u0430\u0434\u0440\u0435\u0441 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0433\u043e \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430     *\/ \/*               \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u0430\u0434\u0440\u0435\u0441             *\/ \/*               \u0446\u0435\u043b\u0435\u0432\u043e\u0435 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435          *\/ \/*               \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0433\u043e \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 *\/ .macro findFile file      \/* \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b FAT \u0432 \u043f\u0430\u043c\u044f\u0442\u044c *\/      readSector $FAT12_ROOT_POSITION, $BOOT_LOADER_CODE_AREA_ADDRESS, $BOOT_LOADER_ROOT_OFFSET, $FAT12_ROOT_SIZE      pushw \\file      call  _findFile      addw  $0x0002, %sp .endm \/* \u043c\u0430\u043a\u0440\u043e\u0441 \u0434\u043b\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0432 \u043d\u043e\u043c\u0435\u0440 \u0441\u0435\u043a\u0442\u043e\u0440\u0430 *\/ \/* \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043e\u043d \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 _clusterToLinearBlockAddress *\/ \/* \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440: \u043d\u043e\u043c\u0435\u0440 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 *\/ .macro clusterToLinearBlockAddress cluster      pushw \\cluster      call  _clusterToLinearBlockAddress      addw  $0x0002, %sp .endm \/* \u043c\u0430\u043a\u0440\u043e\u0441 \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0432 \u043f\u0430\u043c\u044f\u0442\u044c.  *\/ \/* \u041e\u043d \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 findFile \u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0432 \u043f\u0430\u043c\u044f\u0442\u044c *\/ \/* \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 0x1000:0x0000 *\/ \/* \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440: \u0438\u043c\u044f \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 *\/ .macro loadFile file      \/* \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u0444\u0430\u0439\u043b\u0430 *\/      findFile \\file       pushw %ax      \/* \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b FAT \u0432 \u043f\u0430\u043c\u044f\u0442\u044c *\/      readSector $FAT12_FAT_POSITION, $BOOT_LOADER_CODE_AREA_ADDRESS, $BOOT_LOADER_FAT_OFFSET, $FAT12_FAT_SIZE       popw  %ax      movw  $BOOT_LOADER_STAGE2_OFFSET, %bx _loadCluster:      pushw %bx      pushw %ax        clusterToLinearBlockAddress %ax      readSector %ax, $BOOT_LOADER_STAGE2_ADDRESS, %bx, $BOOT_DISK_SECTORS_PER_CLUSTER       popw  %ax      xorw %dx, %dx      movw $0x0003, %bx      mulw %bx      movw $0x0002, %bx      divw %bx       movw $BOOT_LOADER_FAT_OFFSET, %bx      addw %ax, %bx      movw $BOOT_LOADER_CODE_AREA_ADDRESS, %ax      movw %ax, %es      movw %es:(%bx), %ax      orw  %dx, %dx      jz   _even_cluster _odd_cluster:      shrw $0x0004, %ax      jmp  _done  _even_cluster:      and $0x0fff, %ax _done:      popw %bx      addw $BOOT_DISK_BYTES_PER_SECTOR, %bx      cmpw $FAT12_END_OF_FILE, %ax      jl  _loadCluster       \/* \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u044f\u0434\u0440\u0430 *\/      initKernel      .endm \/* \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \u0438\u043c\u044f \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 *\/ \/* \u043c\u0430\u043a\u0440\u043e\u0441 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u043f\u0440\u0430\u0432\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0443, \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u043c\u0443 *\/ \/* \u0432 \u043f\u0430\u043c\u044f\u0442\u044c \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 0x1000:0x0000                     *\/ \/* \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: none                       *\/ .macro initKernel      \/* \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u044f\u0434\u0440\u0430 *\/      movw  $(BOOT_LOADER_STAGE2_ADDRESS), %ax      movw  $(BOOT_LOADER_STAGE2_OFFSET) , %bx      movw  %ax, %es      movw  %ax, %ds      jmp   $(BOOT_LOADER_STAGE2_ADDRESS), $(BOOT_LOADER_STAGE2_OFFSET) .endm <\/code><\/pre>\n<p>  <\/p>\n<h3><font color=\"#3AC1EF\">\u041e\u0431\u0449\u0430\u044f \u0441\u0432\u043e\u0434\u043a\u0430<\/font><\/h3>\n<p>  <b>initEnvironment:<\/b><\/p>\n<ul>\n<li>\u041c\u0430\u043a\u0440\u043e\u0441 \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043d\u044b\u0445 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432.<\/li>\n<li>\u0410\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442.<\/li>\n<\/ul>\n<p>  \u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435: <code>initEnvironment<\/code><\/p>\n<p>  <b>writeString:<\/b><\/p>\n<ul>\n<li>\u041c\u0430\u043a\u0440\u043e\u0441 \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0441 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u044e\u0449\u0438\u043c \u043d\u0443\u043b\u0435\u043c. <\/li>\n<li>\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0441 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u044e\u0449\u0438\u043c \u043d\u0443\u043b\u0435\u043c.<\/li>\n<\/ul>\n<p>  \u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435: <code>writeString &lt;\u0441\u0442\u0440\u043e\u043a\u043e\u0432\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f&gt;<\/code><\/p>\n<p>  <b>readSector:<\/b><\/p>\n<ul>\n<li>\u041c\u0430\u043a\u0440\u043e\u0441 \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f \u0441 \u0434\u0438\u0441\u043a\u0430 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0441\u0435\u043a\u0442\u043e\u0440\u0430 \u0438 \u0435\u0433\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0432 \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u0430\u0434\u0440\u0435\u0441 \u043f\u0430\u043c\u044f\u0442\u0438.<\/li>\n<li>\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432: 4.<\/li>\n<\/ul>\n<p>  \u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435: <code>readSector &lt;\u043d\u043e\u043c\u0435\u0440 \u0441\u0435\u043a\u0442\u043e\u0440\u0430&gt;, &lt;\u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u0430\u0434\u0440\u0435\u0441&gt;, &lt;\u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430&gt;, &lt;\u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c\u044b\u0445 \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432&gt;<\/code><\/p>\n<p>  <b>findFile:<\/b><\/p>\n<ul>\n<li>\u041c\u0430\u043a\u0440\u043e\u0441 \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u0444\u0430\u0439\u043b\u0430.<\/li>\n<li>\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432: 1.<\/li>\n<\/ul>\n<p>   \u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435: <code>findFile &lt;\u0438\u043c\u044f \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430&gt;<\/code><\/p>\n<p>  <b>clusterToLinearBlockAddress:<\/b><\/p>\n<ul>\n<li>\u041c\u0430\u043a\u0440\u043e\u0441 \u0434\u043b\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0432 \u043d\u043e\u043c\u0435\u0440 \u0441\u0435\u043a\u0442\u043e\u0440\u0430.<\/li>\n<li>\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432: 1.<\/li>\n<\/ul>\n<p>  \u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435: <code><\/p>\n<pre>clusterToLinearBlockAddress &lt;ID \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430&gt;<\/pre>\n<p><\/code><\/p>\n<p>  <b>loadFile:<\/b><\/p>\n<ul>\n<li>\u041c\u0430\u043a\u0440\u043e\u0441 \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0432 \u043f\u0430\u043c\u044f\u0442\u044c \u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435\u0439 \u0435\u043c\u0443 \u043f\u0440\u0430\u0432\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.<\/li>\n<li>\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432: 1.<\/li>\n<\/ul>\n<p>  \u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435: <code><\/p>\n<pre>loadFile &lt;\u0438\u043c\u044f \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430&gt;<\/pre>\n<p><\/code><\/p>\n<p>  <b>initKernel:<\/b><\/p>\n<ul>\n<li>\u041c\u0430\u043a\u0440\u043e\u0441 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u043f\u0440\u0430\u0432\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u043c\u0443 \u0430\u0434\u0440\u0435\u0441\u0443 \u043f\u0430\u043c\u044f\u0442\u0438 \u0432 RAM.<\/li>\n<li>\u0410\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442.<\/li>\n<\/ul>\n<p>  \u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435: <code>initKernel<\/code><\/p>\n<h3><font color=\"#3AC1EF\">\u0424\u0430\u0439\u043b: routines.S<\/font><\/h3>\n<p>  <\/p>\n<pre><code class=\"bash\">\/*********************************************************************************  *                                                                               *  *                                                                               *  *    Name       : routines.S                                                    *  *    Date       : 23-Feb-2014                                                   *  *    Version    : 0.0.1                                                         *  *    Source     : assembly language                                             *  *    Author     : Ashakiran Bhatter                                             *  *                                                                               *  *                                                                               *  *********************************************************************************\/ \/* \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b. *\/ \/* \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0434\u043b\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u0438 \u0441\u0442\u0435\u043a\u0430 *\/ \/* \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: none                  *\/ _initEnvironment:      pushw %bp      movw  %sp, %bp _initEnvironmentIn:      cli      movw  %cs, %ax      movw  %ax, %ds      movw  %ax, %es      movw  %ax, %ss      movw  $BOOT_LOADER_STACK_SEGMENT, %sp      sti _initEnvironmentOut:      movw  %bp, %sp      popw  %bp ret  \/* \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0441\u0442\u0440\u043e\u043a\u0438 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 *\/ \/* \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440: \u0432\u0432\u043e\u0434\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430                *\/ _writeString:      pushw %bp      movw  %sp   , %bp      movw 4(%bp) , %si      jmp  _writeStringCheckByte _writeStringIn:      movb $0x000e, %ah      movb $0x0000, %bh      int  $0x0010      incw %si _writeStringCheckByte:      movb (%si)  , %al      orb  %al    , %al      jnz  _writeStringIn _writeStringOut:      movw %bp    , %sp      popw %bp ret  \/* \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0434\u043b\u044f \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0441\u0435\u043a\u0442\u043e\u0440\u0430 \u0432 \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u0430\u0434\u0440\u0435\u0441 \u043f\u0430\u043c\u044f\u0442\u0438 *\/ \/* \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \u043d\u043e\u043c\u0435\u0440 \u0441\u0435\u043a\u0442\u043e\u0440\u0430                              *\/ \/*            \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u0430\u0434\u0440\u0435\u0441                              *\/ \/*            \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0430\u0434\u0440\u0435\u0441\u0430                            *\/ \/*            \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c\u044b\u0445 \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432            *\/ _readSector:      pushw %bp      movw %sp    , %bp       movw 10(%bp), %ax      movw $BOOT_DISK_SECTORS_PER_TRACK, %bx      xorw %dx    , %dx      divw %bx       incw %dx      movb %dl    , %cl       movw $BOOT_DISK_HEADS_PER_CYLINDER, %bx      xorw %dx    , %dx      divw %bx       movb %al    , %ch      xchg %dl    , %dh       movb $0x02  , %ah      movb 4(%bp) , %al      movb bootDrive, %dl      movw 8(%bp) , %bx      movw %bx    , %es      movw 6(%bp) , %bx      int  $0x13      jc   _abort      cmpb 4(%bp) , %al      jc   _abort       movw %bp    , %sp      popw %bp ret  \/* \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u0444\u0430\u0439\u043b\u0430 \u043d\u0430 \u0434\u0438\u0441\u043a\u0435\u0442\u0435         *\/ \/* \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \u0430\u0434\u0440\u0435\u0441 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0433\u043e \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430     *\/ \/*               \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u0430\u0434\u0440\u0435\u0441             *\/ \/*               \u0446\u0435\u043b\u0435\u0432\u043e\u0435 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435          *\/ \/*               \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0433\u043e \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 *\/ _findFile:      pushw %bp      movw  %sp   , %bp       movw  $BOOT_LOADER_CODE_AREA_ADDRESS, %ax      movw  %ax   , %es      movw  $BOOT_LOADER_ROOT_OFFSET, %bx      movw  $FAT12_ROOT_ENTRIES, %dx      jmp   _findFileInitValues  _findFileIn:      movw  $0x000b  , %cx      movw  4(%bp)   , %si      leaw  (%bx)    , %di      repe  cmpsb      je    _findFileOut _findFileDecrementCount:      decw  %dx      addw  $0x0020, %bx _findFileInitValues:      cmpw  $0x0000, %dx      jne   _findFileIn      je    _abort _findFileOut:      addw  $0x001a  , %bx      movw  %es:(%bx), %ax      movw  %bp, %sp      popw  %bp ret  \/* \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0434\u043b\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0432 \u043d\u043e\u043c\u0435\u0440 \u0441\u0435\u043a\u0442\u043e\u0440\u0430 *\/ \/* \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \u043d\u043e\u043c\u0435\u0440 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430                                     *\/ _clusterToLinearBlockAddress:      pushw %bp      movw  %sp    , %bp      movw  4(%bp) , %ax _clusterToLinearBlockAddressIn:      subw  $0x0002, %ax      movw  $BOOT_DISK_SECTORS_PER_CLUSTER, %cx      mulw  %cx      addw  $FAT12_ROOT_POSITION, %ax      addw  $FAT12_ROOT_SIZE, %ax _clusterToLinearBlockAddressOut:      movw  %bp    , %sp      popw  %bp ret<\/code><\/pre>\n<p>  <\/p>\n<h3><font color=\"#3AC1EF\">\u041e\u0431\u0449\u0430\u044f \u0441\u0432\u043e\u0434\u043a\u0430<\/font><\/h3>\n<p>  <b>_initEnvironment:<\/b><\/p>\n<ul>\n<li>\u0424\u0443\u043d\u043a\u0446\u0438\u044f, \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0449\u0430\u044f \u0437\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043d\u044b\u0445 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432.<\/li>\n<li>\u0410\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442.<\/li>\n<\/ul>\n<p>  \u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435: <code>call _initEnvironment<\/code><\/p>\n<p>  <b>_writeString:<\/b><\/p>\n<ul>\n<li>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0441 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u044e\u0449\u0438\u043c \u043d\u0443\u043b\u0435\u043c.<\/li>\n<li>\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u0443\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0441 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u044e\u0449\u0438\u043c \u043d\u0443\u043b\u0435\u043c.<\/li>\n<\/ul>\n<p>  \u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435:<br \/>  <code>pushw &lt;\u0441\u0442\u0440\u043e\u043a\u043e\u0432\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f&gt;<br \/>  call _writeString<br \/>  addw $0x02, %sp<\/code><\/p>\n<p>  <b>readSector:<\/b><\/p>\n<ul>\n<li>\u041c\u0430\u043a\u0440\u043e\u0441 \u0434\u043b\u044f \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0441\u0435\u043a\u0442\u043e\u0440\u0430 \u0441 \u0434\u0438\u0441\u043a\u0430 \u0438 \u0435\u0433\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0432 \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u0430\u0434\u0440\u0435\u0441 \u043f\u0430\u043c\u044f\u0442\u0438.<\/li>\n<li>\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432: 4.<\/li>\n<\/ul>\n<p>  \u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435:<\/p>\n<p>  <code>pushw &lt;\u043d\u043e\u043c\u0435\u0440 \u0441\u0435\u043a\u0442\u043e\u0440\u0430&gt;<br \/>  pushw &lt;\u0430\u0434\u0440\u0435\u0441&gt;<br \/>  pushw &lt;\u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435&gt;<br \/>  pushw &lt;\u0432\u0441\u0435\u0433\u043e \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432&gt;<br \/>  call _readSector<br \/>  addw $0x0008, %sp<br \/>  <\/code><\/p>\n<p>  <b>findFile:<\/b><\/p>\n<ul>\n<li>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u0444\u0430\u0439\u043b\u0430.<\/li>\n<li>\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432: 1<\/li>\n<\/ul>\n<p>  \u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435:<\/p>\n<p>  <code><\/p>\n<pre>pushw &lt;target file variable&gt; call _findFile addw $0x02, %sp <\/pre>\n<p><\/code><\/p>\n<p>  <b>clusterToLinearBlockAddress:<\/b><\/p>\n<ul>\n<li>\u041c\u0430\u043a\u0440\u043e\u0441 \u0434\u043b\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f ID \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0432 \u043d\u043e\u043c\u0435\u0440 \u0441\u0435\u043a\u0442\u043e\u0440\u0430.<\/li>\n<li>\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432: 1<\/li>\n<\/ul>\n<p>  \u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435:<\/p>\n<p>  <code><\/p>\n<pre>pushw &lt;ID \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430&gt; call _clusterToLinearBlockAddress addw $0x02, %sp<\/pre>\n<p><\/code><\/p>\n<p>  <b>loadFile:<\/b><\/p>\n<ul>\n<li>\u041c\u0430\u043a\u0440\u043e\u0441 \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0432 \u043f\u0430\u043c\u044f\u0442\u044c \u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435\u0439 \u0435\u043c\u0443 \u043f\u0440\u0430\u0432\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.<\/li>\n<li>\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432: 1<\/li>\n<\/ul>\n<p>  \u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435:<\/p>\n<p>  <code><\/p>\n<pre>pushw &lt;\u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u0444\u0430\u0439\u043b&gt; call _loadFile addw $0x02, %sp<\/pre>\n<p><\/code><\/p>\n<h3><font color=\"#3AC1EF\">\u0424\u0430\u0439\u043b: stage0.ld<\/font><\/h3>\n<p>  \u042d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b \u0441\u043b\u0443\u0436\u0438\u0442 \u0434\u043b\u044f \u043b\u0438\u043d\u043a\u043e\u0432\u043a\u0438 \u0444\u0430\u0439\u043b\u0430 <code>stage0.object<\/code>.<\/p>\n<pre><code class=\"bash\">\/*********************************************************************************  *                                                                               *  *                                                                               *  *    Name       : stage0.ld                                                     *  *    Date       : 23-Feb-2014                                                   *  *    Version    : 0.0.1                                                         *  *    Source     : assembly language                                             *  *    Author     : Ashakiran Bhatter                                             *  *                                                                               *  *                                                                               *  *********************************************************************************\/ SECTIONS {      . = 0x7c00;      .text :      {           _ftext = .;      } = 0 } <\/code><\/pre>\n<p>  <\/p>\n<h3><font color=\"#3AC1EF\">\u0424\u0430\u0439\u043b: bochsrc.txt<\/font><\/h3>\n<p>  \u0424\u0430\u0439\u043b-\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 bochs.<\/p>\n<pre><code class=\"bash\">megs: 32 floppya: 1_44=..\/iso\/stage0.img, status=inserted boot: a log: ..\/log\/bochsout.txt mouse: enabled=0 <\/code><\/pre>\n<p>  <\/p>\n<h2><font color=\"#3AC1EF\">\u041c\u0438\u043d\u0438-\u043f\u0440\u043e\u0435\u043a\u0442: \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 16-\u0431\u0438\u0442\u043d\u043e\u0433\u043e \u044f\u0434\u0440\u0430<\/font><\/h2>\n<p>  \u041d\u0438\u0436\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u043c\u0430\u043a\u0435\u0442\u0430 \u044f\u0434\u0440\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0433\u043e \u043a\u0430\u043a \u0447\u0430\u0441\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u041d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u043a\u043e\u0434, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f <code>make file<\/code> \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442 \u043b\u0438 \u0435\u0433\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a.<\/p>\n<p>  \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c\u0441\u044f \u0437\u0430\u0441\u0442\u0430\u0432\u043a\u0430 \u0441 \u0433\u043e\u043b\u043e\u0432\u043e\u0439 \u0434\u0440\u0430\u043a\u043e\u043d\u0430, \u0441\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0430\u0435\u043c\u0430\u044f \u044d\u043a\u0440\u0430\u043d\u043e\u043c \u043f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f, \u043f\u043e\u0441\u043b\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043e\u0442\u043a\u0440\u043e\u0435\u0442\u0441\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430.<\/p>\n<p>  \u0423\u0447\u0442\u0438\u0442\u0435, \u0447\u0442\u043e \u0437\u0434\u0435\u0441\u044c \u043d\u0435 \u0437\u0430\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u043a\u043e\u043c\u0430\u043d\u0434 \u0438\u043b\u0438 \u0443\u0442\u0438\u043b\u0438\u0442 \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f. \u042d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043c\u0430\u043a\u0435\u0442 \u044f\u0434\u0440\u0430, \u0437\u0430\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432 \u0446\u0435\u043b\u044f\u0445 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<h3><font color=\"#3AC1EF\">\u0424\u0430\u0439\u043b: kernel.c<\/font><\/h3>\n<p>  <\/p>\n<pre><code class=\"bash\">\/*********************************************************************************  *                                                                               *  *                                                                               *  *    Name       : kernel.c                                                      *  *    Date       : 23-Feb-2014                                                   *  *    Version    : 0.0.1                                                         *  *    Source     : C                                                             *  *    Author     : Ashakiran Bhatter                                             *  *                                                                               *  *    \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435: \u0417\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u044d\u0442\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 stage0.bin, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442    *  *                 \u0435\u043c\u0443 \u043f\u0440\u0430\u0432\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f. \u0415\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c                    *  *                 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0438 \u044d\u043a\u0440\u0430\u043d\u0430-\u0437\u0430\u0441\u0442\u0430\u0432\u043a\u0438 \u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438. *  *    \u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435   : \u0412\u0432\u043e\u0434\u0438\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0431\u0435\u0441\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u043e, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u043d\u0438 \u043d\u0435 \u0437\u0430\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u044b*                                                                             *                                                                               *  *********************************************************************************\/ \/* \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 16-\u0431\u0438\u0442\u043d\u044b\u0439 \u043a\u043e\u0434                                  *\/ __asm__(&quot;.code16\\n&quot;); \/* \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043a \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438                                *\/ __asm__(&quot;jmpl $0x1000, $main\\n&quot;);  #define TRUE  0x01 #define FALSE 0x00  char str[] = &quot;$&gt; &quot;;  \/* \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u0438 \u0441\u0442\u0435\u043a\u0430 *\/ \/* \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: none                     *\/ void initEnvironment() {      __asm__ __volatile__(           &quot;cli;&quot;           &quot;movw $0x0000, %ax;&quot;           &quot;movw %ax, %ss;&quot;           &quot;movw $0xffff, %sp;&quot;           &quot;cld;&quot;      );       __asm__ __volatile__(           &quot;movw $0x1000, %ax;&quot;           &quot;movw %ax, %ds;&quot;           &quot;movw %ax, %es;&quot;           &quot;movw %ax, %fs;&quot;           &quot;movw %ax, %gs;&quot;      ); }  \/* VGA-\u0444\u0443\u043d\u043a\u0446\u0438\u0438. *\/ \/* \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0440\u0435\u0436\u0438\u043c\u0430 VGA \u043d\u0430 80*24   *\/ void setResolution() {      __asm__ __volatile__(           &quot;int $0x10&quot; : : &quot;a&quot;(0x0003)      ); }  \/* \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u0447\u0438\u0441\u0442\u043a\u0438 \u0431\u0443\u0444\u0435\u0440\u0430 \u044d\u043a\u0440\u0430\u043d\u0430 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u044e\u0449\u0438\u043c\u0438 \u043f\u0440\u043e\u0431\u0435\u043b\u0430\u043c\u0438 *\/ void clearScreen() {      __asm__ __volatile__ (           &quot;int $0x10&quot; : : &quot;a&quot;(0x0200), &quot;b&quot;(0x0000), &quot;d&quot;(0x0000)      );      __asm__ __volatile__ (           &quot;int $0x10&quot; : : &quot;a&quot;(0x0920), &quot;b&quot;(0x0007), &quot;c&quot;(0x2000)      ); }  \/* \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u043a\u0443\u0440\u0441\u043e\u0440\u0430 \u043d\u0430 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0438 \u0441\u0442\u0440\u043e\u043a\u0443 *\/  void setCursor(short col, short row) {      __asm__ __volatile__ (           &quot;int $0x10&quot; : : &quot;a&quot;(0x0200), &quot;d&quot;((row &lt;&lt;= 8) | col)      ); }  \/* \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a\u0443\u0440\u0441\u043e\u0440\u0430 *\/ void showCursor(short choice) {      if(choice == FALSE) {           __asm__ __volatile__(                &quot;int $0x10&quot; : : &quot;a&quot;(0x0100), &quot;c&quot;(0x3200)           );      } else {           __asm__ __volatile__(                &quot;int $0x10&quot; : : &quot;a&quot;(0x0100), &quot;c&quot;(0x0007)           );      } }  \/* \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0435\u0436\u0438\u043c\u0430 VGA \u043d\u0430 80*25,            *\/ \/* \u043e\u0447\u0438\u0441\u0442\u043a\u0438 \u044d\u043a\u0440\u0430\u043d\u0430 \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043a\u0443\u0440\u0441\u043e\u0440\u0430 \u043d\u0430 (0,0) *\/ void initVGA() {      setResolution();      clearScreen();      setCursor(0, 0); }  \/* I\/O-\u0444\u0443\u043d\u043a\u0446\u0438\u0438. *\/ \/* \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0441\u0438\u043c\u0432\u043e\u043b\u0430 \u0441 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b \u0431\u0435\u0437 \u044d\u0445\u0430*\/ void getch() {      __asm__ __volatile__ (           &quot;xorw %ax, %ax\\n&quot;           &quot;int $0x16\\n&quot;      ); }  \/* \u044d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u0430 getch(),                                 *\/ \/* \u043d\u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u043a\u0430\u043d-\u043a\u043e\u0434 \u043a\u043b\u0430\u0432\u0438\u0448\u0438 \u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 ascii *\/ short getchar() {      short word;       __asm__ __volatile__(           &quot;int $0x16&quot; : : &quot;a&quot;(0x1000)      );       __asm__ __volatile__(           &quot;movw %%ax, %0&quot; : &quot;=r&quot;(word)      );       return word; }  \/* \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043d\u0430\u0436\u0430\u0442\u044b\u0445 \u043a\u043b\u0430\u0432\u0438\u0448 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435*\/ void putchar(short ch) {      __asm__ __volatile__(           &quot;int $0x10&quot; : : &quot;a&quot;(0x0e00 | (char)ch)      ); }  \/* \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d \u0441\u0442\u0440\u043e\u043a\u0438 \u0441 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u044e\u0449\u0438\u043c \u043d\u0443\u043b\u0435\u043c *\/ void printString(const char* pStr) {      while(*pStr) {           __asm__ __volatile__ (                &quot;int $0x10&quot; : : &quot;a&quot;(0x0e00 | *pStr), &quot;b&quot;(0x0002)           );           ++pStr;      } }  \/* \u0444\u0443\u043d\u043a\u0446\u0438\u044f, \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0449\u0430\u044f \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0443 \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434 *\/ void delay(int seconds) {      __asm__ __volatile__(           &quot;int $0x15&quot; : : &quot;a&quot;(0x8600), &quot;c&quot;(0x000f * seconds), &quot;d&quot;(0x4240 * seconds)      ); }  \/* \u0421\u0442\u0440\u043e\u043a\u043e\u0432\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f. *\/ \/* \u044d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u0434\u043b\u0438\u043d\u0443 \u0441\u0442\u0440\u043e\u043a\u0438 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0435\u0435 *\/ int strlength(const char* pStr) {      int i = 0;       while(*pStr) {           ++i;      }      return i; }  \/* \u0424\u0443\u043d\u043a\u0446\u0438\u044f UI. *\/ \/*\u044d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u043b\u043e\u0433\u043e\u0442\u0438\u043f *\/ void splashScreen(const char* pStr) {      showCursor(FALSE);      clearScreen();      setCursor(0, 9);      printString(pStr);      delay(10); }  \/* \u041e\u0431\u043e\u043b\u043e\u0447\u043a\u0430. *\/ \/* \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0444\u0438\u043a\u0442\u0438\u0432\u043d\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438.                  *\/ \/* \u041f\u0440\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u0438 \u043a\u043b\u0430\u0432\u0438\u0448\u0438 \u0412\u0432\u043e\u0434 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443     *\/ void shell() {      clearScreen();      showCursor(TRUE);      while(TRUE) {           printString(str);           short byte;           while((byte = getchar())) {                if((byte &gt;&gt; 8)  == 0x1c) {                     putchar(10);                     putchar(13);                     break;                } else {                     putchar(byte);                }           }      } }  \/* \u0442\u043e\u0447\u043a\u0430 \u0432\u0445\u043e\u0434\u0430 \u0432 \u044f\u0434\u0440\u043e *\/ void main() {      const char msgPicture[] =               &quot;                     ..                                              \\n\\r&quot;              &quot;                      ++`                                            \\n\\r&quot;              &quot;                       :ho.        `.-\/++\/.                          \\n\\r&quot;              &quot;                        `\/hh+.         ``:sds:                       \\n\\r&quot;              &quot;                          `-odds\/-`        .MNd\/`                    \\n\\r&quot;              &quot;                             `.+ydmdyo\/:--\/yMMMMd\/                   \\n\\r&quot;              &quot;                                `:+hMMMNNNMMMddNMMh:`                \\n\\r&quot;              &quot;                   `-:\/+++\/:-:ohmNMMMMMMMMMMMm+-+mMNd`               \\n\\r&quot;              &quot;                `-+oo+osdMMMNMMMMMMMMMMMMMMMMMMNmNMMM\/`              \\n\\r&quot;              &quot;                ```   .+mMMMMMMMMMMMMMMMMMMMMMMMMMMMMNmho:.`         \\n\\r&quot;              &quot;                    `omMMMMMMMMMMMMMMMMMMNMdydMMdNMMMMMMMMdo+-       \\n\\r&quot;              &quot;                .:oymMMMMMMMMMMMMMNdo\/hMMd+ds-:h\/-yMdydMNdNdNN+      \\n\\r&quot;              &quot;              -oosdMMMMMMMMMMMMMMd:`  `yMM+.+h+.-  \/y `\/m.:mmmN      \\n\\r&quot;              &quot;             -:`  dMMMMMMMMMMMMMd.     `mMNo..+y\/`  .   .  -\/.s      \\n\\r&quot;              &quot;             `   -MMMMMMMMMMMMMM-       -mMMmo-.\/s\/.`         `      \\n\\r&quot;              &quot;                `+MMMMMMMMMMMMMM-        .smMy:.``-+oo+\/\/:-.`        \\n\\r&quot;              &quot;               .yNMMMMMMMMMMMMMMd.         .+dmh+:.  `-::\/+:.        \\n\\r&quot;              &quot;               y+-mMMMMMMMMMMMMMMm\/`          .\/o+-`       .         \\n\\r&quot;              &quot;              :-  :MMMMMMMMMMMMMMMMmy\/.`                             \\n\\r&quot;              &quot;              `   `hMMMMMMMMMMMMMMMMMMNds\/.`                         \\n\\r&quot;              &quot;                  sNhNMMMMMMMMMMMMMMMMMMMMNh+.                       \\n\\r&quot;              &quot;                 -d. :mMMMMMMMMMMMMMMMMMMMMMMNh:`                    \\n\\r&quot;              &quot;                 \/.   .hMMMMMMMMMMMMMMMMMMMMMMMMh.                   \\n\\r&quot;              &quot;                 .     `sMMMMMMMMMMMMMMMMMMMMMMMMN.                  \\n\\r&quot;              &quot;                         hMMMMMMMMMMMMMMMMMMMMMMMMy                  \\n\\r&quot;              &quot;                         +MMMMMMMMMMMMMMMMMMMMMMMMh                      &quot;;      const char msgWelcome[] =               &quot;              *******************************************************\\n\\r&quot;              &quot;              *                                                     *\\n\\r&quot;              &quot;              *        Welcome to kirUX Operating System            *\\n\\r&quot;              &quot;              *                                                     *\\n\\r&quot;              &quot;              *******************************************************\\n\\r&quot;              &quot;              *                                                     *\\n\\r&quot;               &quot;              *                                                     *\\n\\r&quot;              &quot;              *        Author : Ashakiran Bhatter                   *\\n\\r&quot;              &quot;              *        Version: 0.0.1                               *\\n\\r&quot;              &quot;              *        Date   : 01-Mar-2014                         *\\n\\r&quot;              &quot;              *                                                     *\\n\\r&quot;              &quot;              ******************************************************&quot;;      initEnvironment();       initVGA();      splashScreen(msgPicture);      splashScreen(msgWelcome);       shell();        while(1); }<\/code><\/pre>\n<p>  <\/p>\n<h3><font color=\"#3AC1EF\">\u041e\u0431\u0449\u0430\u044f \u0441\u0432\u043e\u0434\u043a\u0430<\/font><\/h3>\n<p>  <b>initEnvironment():<\/b>  <\/p>\n<ul>\n<li>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043d\u044b\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b \u0438 \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u0441\u0442\u0435\u043a.<\/li>\n<li>\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432: none<\/li>\n<\/ul>\n<p>  \u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435: initEnvironment();<\/p>\n<p>  <b>setResolution():<\/b><\/p>\n<ul>\n<li>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u044d\u043a\u0440\u0430\u043d\u0430 80*25.<\/li>\n<li>\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432: none. <\/li>\n<\/ul>\n<p>  \u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435: setResolution();<\/p>\n<p>  <b>clearScreen():<\/b><\/p>\n<ul>\n<li>\u0417\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0431\u0443\u0444\u0435\u0440 \u044d\u043a\u0440\u0430\u043d\u0430 \u043f\u0440\u043e\u0431\u0435\u043b\u0430\u043c\u0438.<\/li>\n<li>\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432: none <\/li>\n<\/ul>\n<p>  \u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435: clearScreen();<\/p>\n<p>  <b>setCursor():<\/b><\/p>\n<ul>\n<li>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u043a\u0443\u0440\u0441\u043e\u0440 \u0432 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0435 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435.<\/li>\n<li>\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432: 2.<\/li>\n<\/ul>\n<p>  \u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435: setCursor(\u0441\u0442\u043e\u043b\u0431\u0435\u0446, \u0441\u0442\u0440\u043e\u043a\u0430);<\/p>\n<p>  <b>showCursor():<\/b><\/p>\n<ul>\n<li>\u041f\u043e \u0436\u0435\u043b\u0430\u043d\u0438\u044e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u0442 \u0438\u043b\u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043a\u0443\u0440\u0441\u043e\u0440.<\/li>\n<li>\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432: 1. <\/li>\n<\/ul>\n<p>  \u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435: showCursor(1);<\/p>\n<p>  <b>initVGA():<\/b><\/p>\n<ul>\n<li>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 80*25, \u043e\u0447\u0438\u0449\u0430\u0435\u0442 \u044d\u043a\u0440\u0430\u043d \u0438 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u043a\u0443\u0440\u0441\u043e\u0440 \u0432 \u043f\u043e\u0437\u0438\u0446\u0438\u044e (0,0).<\/li>\n<li>\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432: none<\/li>\n<\/ul>\n<p>  \u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435: initVGA();<\/p>\n<p>  <b>getch():<\/b><\/p>\n<ul>\n<li>\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442 \u043d\u0430\u0436\u0430\u0442\u0438\u044f \u043a\u043b\u0430\u0432\u0438\u0448 \u0431\u0435\u0437 \u044d\u0445\u0430.<\/li>\n<li>\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432: none<\/li>\n<\/ul>\n<p>  \u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435: getch();<\/p>\n<p>  <b>getchar():<\/b><\/p>\n<ul>\n<li>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u043a\u0430\u043d-\u043a\u043e\u0434 \u043d\u0430\u0436\u0430\u0442\u043e\u0439 \u043a\u043b\u0430\u0432\u0438\u0448\u0438 \u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 ascii.<\/li>\n<li>\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432: none.<\/li>\n<\/ul>\n<p>  \u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435: getchar();<\/p>\n<p>  <b>putchar():<\/b><\/p>\n<ul>\n<li>\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u0441\u0438\u043c\u0432\u043e\u043b\u044b \u043d\u0430\u0436\u0430\u0442\u044b\u0445 \u043a\u043b\u0430\u0432\u0438\u0448 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435.<\/li>\n<li>\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432: 1. <\/li>\n<\/ul>\n<p>  \u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435: putchar(\u0441\u0438\u043c\u0432\u043e\u043b);<\/p>\n<p>  <b>printString():<\/b><\/p>\n<ul>\n<li>\u0412\u044b\u0432\u043e\u0434\u0438\u0442 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d \u0441\u0442\u0440\u043e\u043a\u0443 \u0441 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u044e\u0449\u0438\u043c \u043d\u0443\u043b\u0435\u043c.<\/li>\n<li>\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432: 1.<\/li>\n<\/ul>\n<p>  \u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435: printString();<\/p>\n<p>  <b>delay():<\/b><\/p>\n<ul>\n<li>\u0412\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0443 \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434.<\/li>\n<li>\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432: 1.<\/li>\n<\/ul>\n<p>  \u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435: printString(\u0441\u0442\u0440\u043e\u043a\u043e\u0432\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0441 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u044e\u0449\u0438\u043c \u043d\u0443\u043b\u0435\u043c);<\/p>\n<p>  <b>strlength():<\/b><\/p>\n<ul>\n<li>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u043b\u0438\u043d\u044b \u0441\u0442\u0440\u043e\u043a\u0438 \u0441 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u044e\u0449\u0438\u043c \u043d\u0443\u043b\u0435\u043c.<\/li>\n<li>\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432: 1.<\/li>\n<\/ul>\n<p>  \u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435: strlength(\u0441\u0442\u0440\u043e\u043a\u043e\u0432\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0441 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u044e\u0449\u0438\u043c \u043d\u0443\u043b\u0435\u043c);<\/p>\n<p>  <b>splashScreen():<\/b><\/p>\n<ul>\n<li>\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u0437\u0430\u0434\u0430\u043d\u043d\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f.<\/li>\n<li>\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432: 1.<\/li>\n<\/ul>\n<p>  \u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435: splashScreen(\u0441\u0442\u0440\u043e\u043a\u043e\u0432\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0441 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u044e\u0449\u0438\u043c \u043d\u0443\u043b\u0435\u043c);<\/p>\n<p>  <b>shell():<\/b><\/p>\n<ul>\n<li>\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443.<\/li>\n<li> \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432: none.<\/li>\n<\/ul>\n<p>  \u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435: shell();<\/p>\n<h3><font color=\"#3AC1EF\">\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u044f\u0434\u0440\u0430<\/font><\/h3>\n<p>  \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430:<br \/>  \u0412 \u043f\u0440\u0438\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u043d\u043e\u043c \u0430\u0440\u0445\u0438\u0432\u0435 <code>sourcecode.tar.gz<\/code> \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432\u0441\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0438 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0438, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432.<\/p>\n<p>  \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0432\u044b \u044f\u0432\u043b\u044f\u0435\u0442\u0435\u0441\u044c \u0441\u0443\u043f\u0435\u0440-\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0440\u0430\u0441\u043f\u0430\u043a\u0443\u0439\u0442\u0435 \u0430\u0440\u0445\u0438\u0432.<br \/>  \u0414\u043b\u044f \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043a \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u043a\u043e\u0434\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440 bochs-x64 \u0438 GNU bin-utils.<br \/>  \u041f\u043e\u0441\u043b\u0435 \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432 \u0432\u044b \u0443\u0432\u0438\u0434\u0438\u0442\u0435 5 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432:<\/p>\n<ul>\n<li>bin<\/li>\n<li>iso<\/li>\n<li>kernel<\/li>\n<li>log<\/li>\n<li>src<\/li>\n<\/ul>\n<p>  \u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0432 \u0441\u0440\u0435\u0434\u0443, \u043e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b:<\/p>\n<ul>\n<li><code>cd $(DIRECTORY)\/src<\/code><\/li>\n<li><code>make -f Makefile test<\/code><\/li>\n<li><code>bochs<\/code><\/li>\n<\/ul>\n<p>  <\/p>\n<h2><font color=\"#3AC1EF\">\u0421\u0440\u0438\u043d\u0448\u043e\u0442\u044b<\/font><\/h2>\n<p>  <b>\u042d\u043a\u0440\u0430\u043d 1:<\/b><br \/>  \u042d\u0442\u043e \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043a\u0440\u0430\u043d, \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c\u044b\u0439 \u043f\u0440\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u044f\u0434\u0440\u0430.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/i5\/sj\/8e\/i5sj8et-ud2o21hmws-261nxxsy.png\"><\/div>\n<p>  <b>\u042d\u043a\u0440\u0430\u043d 2:<\/b><br \/>  \u0414\u0430\u043b\u044c\u0448\u0435 \u0438\u0434\u0435\u0442 \u044d\u043a\u0440\u0430\u043d \u043f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/qp\/6f\/ki\/qp6fkitrpbwifgjwgxttpbgwsw8.png\"><\/div>\n<p>  <b>\u042d\u043a\u0440\u0430\u043d 3:<\/b><br \/>  \u042d\u0442\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u043e\u0436\u043d\u043e \u0432\u0432\u0435\u0441\u0442\u0438 \u0442\u0435\u043a\u0441\u0442.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ow\/2z\/fj\/ow2zfjrk1avglhr3th1afz0qkzc.png\"><\/div>\n<p>  <b>\u042d\u043a\u0440\u0430\u043d 4:<\/b><br \/>  \u0417\u0434\u0435\u0441\u044c \u044f \u043f\u0440\u0438\u0432\u043e\u0436\u0443 \u043f\u0440\u0438\u043c\u0435\u0440 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043a\u043e\u043c\u0430\u043d\u0434 \u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u0441\u0442\u0440\u043e\u043a\u0438 \u043f\u0440\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u0438 \u0412\u0432\u043e\u0434\u0430.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/m9\/18\/ns\/m918nsjwkuiiqytdscohli7tgx8.png\"><\/div>\n<p>  \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442 \u043a\u0430\u043a\u0438\u0435-\u043b\u0438\u0431\u043e \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u0441\u043c\u0435\u043b\u043e \u043f\u0438\u0448\u0438\u0442\u0435 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445 (<a href=\"https:\/\/www.codeproject.com\/Articles\/737545\/Writing-a-bit-dummy-kernel-in-C-Cplusplus\">\u0441\u0441\u044b\u043b\u043a\u0430 <\/a>\u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438), \u0431\u0443\u0434\u0443 \u0440\u0430\u0434 \u043f\u043e\u043c\u043e\u0447\u044c \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f.<\/p>\n<h2><font color=\"#3AC1EF\">\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/font><\/h2>\n<p>  \u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u0447\u0442\u043e \u044d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u043c\u043e\u0433\u043b\u0430 \u0432\u0430\u043c \u043f\u043e\u043d\u044f\u0442\u044c \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u0440\u0430\u0431\u043e\u0442\u044b \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e\u0441\u0432\u043e\u0438\u0442\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430 \u0434\u043b\u044f \u0435\u0435 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u043d\u0438\u044f. \u0422\u0435\u043f\u0435\u0440\u044c \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u043c\u0435\u043b\u043e \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0442\u044c \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441 \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u0435\u043c \u0432 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0435 \u043d\u0430\u043c\u0438 \u044f\u0434\u0440\u043e \u0434\u0440\u0443\u0433\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>  <a href=\"http:\/\/ruvds.com\/ru-rub?utm_source=habr&amp;utm_medium=perevod&amp;utm_campaign=bright_translate&amp;utm_content=cicplusplus#order\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ou\/g5\/kh\/oug5kh6sjydt9llengsiebnp40w.png\"><\/a><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/536336\/\"> https:\/\/habr.com\/ru\/company\/ruvds\/blog\/536336\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\"><a href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/535982\/\"><\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/i5\/sj\/8e\/i5sj8et-ud2o21hmws-261nxxsy.png\"><\/div>\n<p><\/a><\/p>\n<p>  \u0412 <a href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/536132\/\">\u043f\u0435\u0440\u0432\u043e\u0439 <\/a>\u0438 <a href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/536156\/\">\u0432\u0442\u043e\u0440\u043e\u0439<\/a> \u0441\u0442\u0430\u0442\u044c\u044f\u0445 \u044f \u043b\u0438\u0448\u044c \u043a\u043e\u0440\u043e\u0442\u043a\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430 \u043d\u0430 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0435 \u0438 C. \u0414\u043b\u044f \u043c\u0435\u043d\u044f \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u0445\u043e\u0442\u044c \u0438 \u043d\u0435\u043f\u0440\u043e\u0441\u0442\u043e, \u043d\u043e \u0432 \u0442\u043e \u0436\u0435 \u0432\u0440\u0435\u043c\u044f \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0442\u0430\u043a \u0447\u0442\u043e \u044f \u043e\u0441\u0442\u0430\u043b\u0441\u044f \u0434\u043e\u0432\u043e\u043b\u0435\u043d. \u041e\u0434\u043d\u0430\u043a\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430 \u043c\u043d\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043c\u0430\u043b\u043e, \u0438 \u044f \u0443\u0432\u043b\u0435\u043a\u0441\u044f \u0438\u0434\u0435\u0435\u0439 \u0435\u0433\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e. \u041d\u043e \u0442\u0430\u043a \u043a\u0430\u043a \u0432 \u0438\u0442\u043e\u0433\u0435 \u0440\u0430\u0437\u043c\u0435\u0440 \u0433\u043e\u0442\u043e\u0432\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043f\u0440\u0435\u0432\u044b\u0441\u0438\u043b 512 \u0431\u0430\u0439\u0442, \u0442\u043e \u043f\u0440\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0441 \u043d\u0435\u0441\u0443\u0449\u0435\u0433\u043e \u0435\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0433\u043e \u0434\u0438\u0441\u043a\u0430 \u044f \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u0441 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043e\u0439 \u201cThis is not a bootable disk\u201d.<\/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-316268","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/316268","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=316268"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/316268\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=316268"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=316268"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=316268"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}