Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос

Какой язык программирования ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для написания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ BIOS?

Как я понимаю, ΠΊΠΎΠ΄ BIOS /Π±ΠΈΡ‚-ΠΏΠΎΡ‚ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ хранится Π² ΠŸΠ—Π£, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠΌ (Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ вмСстС с нСсколькими Ρ‚ΠΈΠΏΠ°ΠΌΠΈ процСссоров ΠΈΠ»ΠΈ ISA). ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, я Π²ΠΈΠ΄Π΅Π» Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ свой ΠΊΠΎΠ΄ (ΠΈ Β«Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΒ» Π΅Π³ΠΎ).

Π˜Ρ‚Π°ΠΊ, Π² ΠΊΠ°ΠΊΠΎΠΌ языкС, Π½Π°Π±ΠΎΡ€Π΅ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈΠ»ΠΈ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… ΠΊΠΎΠ΄Π°Ρ… это написано? Π Π°Π·Π²Π΅ Π½Π΅ Π½ΡƒΠΆΠ΅Π½ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ процСссор для выполнСния своих ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ? Если это Ρ‚Π°ΠΊ, я ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡŽ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ внСшний процСссор, Ρ‚ΠΎ ΠΊΠ°ΠΊ ΠΎΠ½ ΡƒΠ·Π½Π°Π΅Ρ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ?

ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, Ρƒ Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ процСссор?

3 ΠΎΡ‚Π²Π΅Ρ‚Π°

BIOS использовались для написания ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π° языкС ассСмблСра, Π½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π±Ρ‹Π» сдСлан Π΄Π°Π²Π½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ языкС Π±ΠΎΠ»Π΅Π΅ высокого уровня ΠΈ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ написанным Π½Π° сборкС ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ нСсколько Π΅Π³ΠΎ частСй, ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ bootstrapper (ΠΏΠ΅Ρ€Π²Ρ‹Π΅ нСсколько сотСн инструкций, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ CPU пСрСскакиваСт послС запуска /сброса), ΠΈ Π»ΡŽΠ±Ρ‹Π΅ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ относятся ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ ΠΏΡ€ΠΈΡ‡ΡƒΠ΄Π°ΠΌ Π±Π°Π·ΠΎΠ²ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹.

BIOS ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΈ написаны Π² основном Π½Π° C ΡƒΠΆΠ΅ Π² Π½Π°Ρ‡Π°Π»Π΅ дСвяностых. (Π― написал BIOS Π² 90% C, 10% сборки Π² Π½Π°Ρ‡Π°Π»Π΅ дСвяностых.)

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ сильно ΠΏΠΎΠΌΠΎΠ³Π»ΠΎ Π² этом Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ:

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ C, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹, ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с особСнностями этой Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для чтСния /записи Π±Π°ΠΉΡ‚ΠΎΠ² Π² /ΠΈΠ· ΠΏΠΎΡ€Ρ‚ΠΎΠ² Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ x86. Microsoft C всСгда ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π»Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ².

C компиляторы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ†Π΅Π»Π΅Π½Ρ‹ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ процСссора, Π½ΠΎ Π΄Π°ΠΆΠ΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ для языка C, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для написания ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ЦП. НапримСр, Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° x86 ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, извСстныС ΠΊΠ°ΠΊ прСрывания, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, извСстныС ΠΊΠ°ΠΊ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ, ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ ΠΈΠΌΠ΅Π»ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ Π²Π²ΠΎΠ΄Π° /Π²Ρ‹Π²ΠΎΠ΄Π°. Π‘ самого Ρ€Π°Π½Π½Π΅Π³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Microsoft C ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π»Π° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для обозначСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² качСствС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ, поэтому Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ нСпосрСдствСнно с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ прСрывания CPU, поэтому Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊΡƒΡŽ-Π»ΠΈΠ±ΠΎ сборку для Π½Π΅Π΅.

Π’ настоящСС врСмя я ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡŽ, Ρ‡Ρ‚ΠΎ большая Ρ‡Π°ΡΡ‚ΡŒ BIOS написана Π½Π° C ++, Ссли Π½Π΅ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ языкС Π±ΠΎΠ»Π΅Π΅ высокого уровня.

ΠŸΠΎΠ΄Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΊΠΎΠ΄Π°, ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ BIOS, относится ΠΊ Π±Π°Π·ΠΎΠ²ΠΎΠΌΡƒ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΡŽ, поэтому Π΅Π³ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΡ‚ΡŒ: гарантируСтся, Ρ‡Ρ‚ΠΎ ΠΎΠ½ всСгда Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈ Ρ‚ΠΎΠΌ ΠΆΠ΅ процСссорС. ΠŸΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒΡΡ, Π½ΠΎ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌΠΈ вСрсиями, ΠΎΠ½ всС Ρ€Π°Π²Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²Ρ‹ всСгда ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ части BIOS, написанныС Π½Π° C, для запуска ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π½Π° любом Π½ΠΎΠ²ΠΎΠΌ процСссорС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, Ссли Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ такая Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ.

ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ пишСм BIOSes Π½Π° языках Π±ΠΎΠ»Π΅Π΅ высокого уровня, Ρ‡Π΅ΠΌ сборка, состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΡ… Π»Π΅Π³Ρ‡Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π° Π½Π΅ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ пСрСносимыми.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡΡΡŒ ΠΊ BIOS, я Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π²Π°ΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ экономику Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ языка программирования. BIOS ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ записываСтся ΠΊΠ°ΠΊ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ΄Π°ΠΆΠΈ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ обСспСчСния. Π˜Π·Π²Π΅ΡΡ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎ соврСмСнныС систСмы BIOS Π² основном написаны Π½Π° C ΠΈ /ΠΈΠ»ΠΈ сборкС. ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ инструмСнту ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π·Π°Ρ‚Ρ€Π°Ρ‚Π°ΠΌ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ считаСтся Ρ‚ΠΎΠ²Π°Ρ€Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½ΠΎ ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ Π½Π° ΠΏΡ€ΠΎΠ΄Π°ΠΆΠΈ. НС вдаваясь Π² экономику 101, я ΠΌΠΎΠ³Ρƒ Π·Π°Π²Π΅Ρ€ΠΈΡ‚ΡŒ вас, Ρ‡Ρ‚ΠΎ, вСроятно, Π½Π΅ стоит OEM-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ ΠΎΡ‚ΠΊΠ»ΠΎΠ½ΡΡ‚ΡŒΡΡ ΠΎΡ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Ρ… ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Ρ… инструмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Π΄ΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ дСсятилСтий.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π΅ΡΡ‚ΡŒ ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Ρ…ΠΎΠ±Π±ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΈΡΠ°Ρ‚ΡŒ BIOS. Они Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΊΠ° Ρ‡Ρ‚ΠΎ Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ C ΠΈ /ΠΈΠ»ΠΈ сборку. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π² ΠΎΠ΄ΠΈΠ½ прСкрасный дСнь Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ. Но сСгодня Π²Ρ‹Π±ΠΎΡ€ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½.

ЀактичСский BIOS для ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° Π±ΡƒΠ΄Π΅Ρ‚ написан Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ языкС (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, C ΠΈΠ»ΠΈ сборкС), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ скомпилирован для Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, зависящСго ΠΎΡ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹; этот ΠΊΠΎΠ΄ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ (ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π° самом Π΄Π΅Π»Π΅ Π½Π΅ Π½ΡƒΠΆΠ΅Π½, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ ΡƒΠΆΠ΅ ΠΎΡ‡Π΅Π½ΡŒ спСцифичСн для ΠΌΠ°ΡˆΠΈΠ½Ρ‹, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½).

Но Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠŸΠ—Π£ (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ BIOSΠ°ΠΌΠΈ, ΠΊΠ°ΠΊ Π² ” Video BIOS “для Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠŸΠ—Π£ GPU)?

Для Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ…, ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ… BIOS совмСстимых ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠŸΠ—Π£ ΠΎΠ½ΠΈ, вСроятно, Π±ΡƒΠ΄ΡƒΡ‚ исполняСмым ΠΊΠΎΠ΄ΠΎΠΌ, зависящим ΠΎΡ‚ ISA (снова созданным Π½Π° любом языкС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ скомпилирован для Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹); PCI Ρ‚Π°ΠΊΠΆΠ΅ позволяСт Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ для Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ISA ΠΈ позволяСт хосту Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΎ врСмя процСсса Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.

Для ΠŸΠ—Π£, совмСстимых с UEFI, сущСствуСт Ρ‚Π°ΠΊΠΆΠ΅ нСзависимый ΠΎΡ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ…, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠ΄, зависящий ΠΎΡ‚ ISA.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Какой язык программирования ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для написания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ BIOS?

Как я понимаю, ΠΊΠΎΠ΄ / ​​битовый ΠΏΠΎΡ‚ΠΎΠΊ BIOS, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТится Π² ΠŸΠ—Π£, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠΌ (Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ вмСстС с нСсколькими Ρ‚ΠΈΠΏΠ°ΠΌΠΈ процСссоров ΠΈΠ»ΠΈ ISA). ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, я ΡƒΠ²ΠΈΠ΄Π΅Π» упомянутоС Π² сСти, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΊΠΎΠ΄ (ΠΈ Β«Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΒ» Π΅Π³ΠΎ).

Π˜Ρ‚Π°ΠΊ, Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС, Π² Π½Π°Π±ΠΎΡ€Π΅ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈΠ»ΠΈ Π² машинном ΠΊΠΎΠ΄Π΅ написано? Π Π°Π·Π²Π΅ Π΅ΠΌΡƒ Π½Π΅ Π½ΡƒΠΆΠ΅Π½ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ процСссор для выполнСния своих ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ? Если Π΄Π°, Ρ‚ΠΎ я ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡŽ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ внСшний процСссор, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ ΠΎΠ½ ΡƒΠ·Π½Π°Π΅Ρ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ?

ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, Ρƒ Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ процСссор?

Π‘Π˜ΠžΠ‘Ρ‹ Π±Ρ‹Π»ΠΈ написаны ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π° ассСмблСрС, Π½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π±Ρ‹Π» сдСлан Π΄Π°Π²Π½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ языкС Π±ΠΎΠ»Π΅Π΅ высокого уровня, ΠΈ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½Π° ассСмблСрС ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ мСньшС Π΅Π³ΠΎ частСй, ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ, (ΠΏΠ΅Ρ€Π²Ρ‹Π΅ нСсколько сотСн инструкций, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ процСссор ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ послС запуска / сброса) ΠΈ всС ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, связанныС с ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌΠΈ особСнностями Π±Π°Π·ΠΎΠ²ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹.

BIOS ΡƒΠΆΠ΅ писались Π² основном Π½Π° C Π΅Ρ‰Π΅ Π² Π½Π°Ρ‡Π°Π»Π΅ дСвяностых. (Π― написал BIOS Π½Π° 90% C, сборка 10% Π² Π½Π°Ρ‡Π°Π»Π΅ дСвяностых.)

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠΌΠΎΠ³Π»ΠΎ Π² этом Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ:

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ C, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с особСнностями этой Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для чтСния / записи Π±Π°ΠΉΡ‚ΠΎΠ² Π² / ΠΈΠ· ΠΏΠΎΡ€Ρ‚ΠΎΠ² Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ x86. Microsoft C всСгда ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π» Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° Π²Π΅Ρ‰Π΅ΠΉ.

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€Ρ‹ C, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ†Π΅Π»Π΅Π½Ρ‹ Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ ЦП, Π½ΠΎ Π΄Π°ΠΆΠ΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ для языка Π‘, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для написания ΠΊΠΎΠ΄Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅Π³ΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ЦП. НапримСр, Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° x86 ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π²Π΅Ρ‰ΠΈ, извСстныС ΠΊΠ°ΠΊ прСрывания, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, извСстныС ΠΊΠ°ΠΊ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ, ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ ΠΈΠΌΠ΅Π»ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ Π²Ρ…ΠΎΠ΄Π° / Π²Ρ‹Ρ…ΠΎΠ΄Π°. Π‘ самого Π½Π°Ρ‡Π°Π»Π° Microsoft C ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π» ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для обозначСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊΠ°ΠΊ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° ΠΌΠΎΠ³Π»Π° Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ нСпосрСдствСнно ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ΠΌ ЦП, поэтому Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ для Π½Π΅Π΅ ΠΊΠ°ΠΊΡƒΡŽ-Π»ΠΈΠ±ΠΎ сборку.

Π’ настоящСС врСмя я ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡŽ, Ρ‡Ρ‚ΠΎ большая Ρ‡Π°ΡΡ‚ΡŒ BIOS написана Π½Π° C ++, Ссли Π½Π΅ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ языкС Π±ΠΎΠ»Π΅Π΅ высокого уровня.

ΠŸΠΎΠ΄Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΊΠΎΠ΄Π°, ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ BIOS, относится ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΌΡƒ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΡŽ, поэтому Π΅Π³ΠΎ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΡ‚ΡŒ: гарантируСтся, Ρ‡Ρ‚ΠΎ ΠΎΠ½ всСгда Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈ Ρ‚ΠΎΠΌ ΠΆΠ΅ Ρ‚ΠΈΠΏΠ΅ CPU. ΠŸΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒΡΡ, Π½ΠΎ ΠΏΠΎΠΊΠ° ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌΠΈ вСрсиями, ΠΎΠ½ всС Π΅Ρ‰Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с BIOS Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²Ρ‹ всСгда ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ части BIOS, написанныС Π½Π° C, для СстСствСнной Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π° любом Π½ΠΎΠ²ΠΎΠΌ процСссорС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ появится, Ссли Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ такая Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ.

ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ пишСм BIOS Π½Π° языках Π±ΠΎΠ»Π΅Π΅ высокого уровня, Ρ‡Π΅ΠΌ Π½Π° ассСмблСрС, Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΡ… ΠΏΡ€ΠΎΡ‰Π΅, Π° Π½Π΅ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ пСрСносимыми.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡΡΡŒ ΠΊ BIOS, я Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π²Π°ΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ экономику Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ языка программирования. BIOS ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ΄Π°ΠΆΠΈ оборудования. Π˜Π·Π²Π΅ΡΡ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎ соврСмСнныС систСмы BIOS Π² основном написаны Π½Π° C ΠΈ / ΠΈΠ»ΠΈ Π½Π° ассСмблСрС. ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ инструмСнту ΠΏΡ€ΠΈΠ²Π΅Π» Π±Ρ‹ ΠΊ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π·Π°Ρ‚Ρ€Π°Ρ‚Π°ΠΌ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ считаСтся Ρ‚ΠΎΠ²Π°Ρ€Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠ΅ΠΉ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½ΠΎ ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ Π½Π° ΠΏΡ€ΠΎΠ΄Π°ΠΆΠΈ. НС вдаваясь Π² экономику 101, я ΠΌΠΎΠ³Ρƒ Π·Π°Π²Π΅Ρ€ΠΈΡ‚ΡŒ вас, Ρ‡Ρ‚ΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠžΠ•Πœ-ΠΈΠ·Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚Π΅Π»ΡŽ Π½Π΅ стоит ΠΎΡ‚ΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Ρ… Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ инструмСнтов, ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Ρ… дСсятилСтиями.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π΅ΡΡ‚ΡŒ ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ для Π»ΡŽΠ±ΠΈΡ‚Π΅Π»Π΅ΠΉ ΠΏΠΈΡΠ°Ρ‚ΡŒ BIOS. ΠŸΠΎΡ…ΠΎΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Ρ‚ΠΎΠΆΠ΅ Π΄ΠΎ сих ΠΏΠΎΡ€ Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ C ΠΈ / ΠΈΠ»ΠΈ сборку. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΎΠ΄Π½Π°ΠΆΠ΄Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ. Но сСгодня Π²Ρ‹Π±ΠΎΡ€ Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π½Π° Ρ‡Ρ‘ΠΌ написан BIOS ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ½ΠΎ “ΠΏΠΎΠΊΠΎΡ†Π°Ρ‚ΡŒ&

Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. Π€ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос

18 Π»Π΅Ρ‚ Π½Π° сайтС
ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ #5422

20 Π»Π΅Ρ‚ Π½Π° сайтС
ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ #1281

Π‘ Ρ‚Π°ΠΊΠΈΠΌΠΈ вопросами Ρ‚Π΅Π±Π΅ Π΅Π³ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ плоскогубцами “ΠΊΠΎΡ†Π°Ρ‚ΡŒ”.

19 Π»Π΅Ρ‚ Π½Π° сайтС
ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ #2148

ΡƒΡ‡ΠΈΡ‚Π΅ ассСмблСр, товарисчи, Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. Π€ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос

19 Π»Π΅Ρ‚ Π½Π° сайтС
ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ #1595

20 Π»Π΅Ρ‚ Π½Π° сайтС
ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ #525

Π£ мСня ΠΌΠΎΠΆΠ½ΠΎ Π£Π€ ΠΏΠΎΠΊΠΎΡ†Π°Ρ‚ΡŒ, Π΄Π° Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΈ вовсС Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚

18 Π»Π΅Ρ‚ Π½Π° сайтС
ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ #5422

Π° я Π³Π΄Π΅Ρ‚ΠΎ Π²ΠΈΠ΄Π΅Π» Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π° Π‘ ΠΊΠ°ΠΊΠΎΠΌΡ‚ΠΎ написан Π½ΠΎ ΡΡ‚Ρ€Π°ΡˆΠ½ΠΎ Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½ ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½Π΅ помню источникак!

Kamkad3,e Π° Ρ‚Ρ‹ ΡƒΠ²Π΅Ρ€Π΅Π½?

19 Π»Π΅Ρ‚ Π½Π° сайтС
ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ #2887

ΠžΡ…. Ну люди, Π²Ρ‹ Ρ‚Π°ΠΊΠΈΠΌΠΈ вопросами ΠΈΠ½ΠΎΠ³Π΄Π° просто ΡƒΠ±ΠΈΠ²Π°Π΅Ρ‚Π΅.

Написан ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π° Ρ‡Π΅ΠΌ ΡƒΠ³ΠΎΠ΄Π½ΠΎ. ВсС Ρ€Π°Π²Π½ΠΎ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ компилируСтся. Π₯отя, учитывая спСцифику выполняСмых ΠΈΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΅Π³ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ Π½Π° ассСмблСрС. ΠŸΠΎΠΊΠΎΡ†Π°Ρ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ. Для этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π‘Π˜ΠžΠ‘ хранился Π½Π° ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… микросхСмах (Π² старых ΠΌΠ°ΠΌΠ°Ρ… Π±Ρ‹Π»ΠΈ ΠΈΠ»ΠΈ совсСм Π½Π΅ ΠΏΠ΅Ρ€Π΅ΡˆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅, ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΡˆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ Ρ‚ΠΎΠ»ΡŒΠΎΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ΠΎΠΌ). Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΊ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ FlashBIOS ΠΈΡ‰ΠΈΡ‚Π΅ Π½Π° сайтС Intel. По ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ Π΄Π²Π° Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄ я Ρ‚Π°ΠΊΠΎΠ΅ Ρ‚Π°ΠΌ Π²ΠΈΠ΄Π΅Π».

Волько Π·Π°Ρ‡Π΅ΠΌ всС это? ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ Π’ΠΈΠ½ ЧИΠ₯?

19 Π»Π΅Ρ‚ Π½Π° сайтС
ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ #2148

люди ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ Π½Π° Ρ„ΠΏΠΌΠΈ, Ρ‚Π°ΠΌ Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΌ курсС ассСмблСр Ρ‡ΠΈΡ‚Π°Π΅Ρ‚, ΡΡ‚Ρ€Π°ΡˆΠ½Ρ‹ΠΉ дядка, ΠΊΠΎΡ‚ΠΎΡ€ΠΎ Π·ΡƒΠΊΠΎΠΉ ΠΊΠ»ΠΈΡ‡ΡƒΡ‚, Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. Π€ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос

19 Π»Π΅Ρ‚ Π½Π° сайтС
ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ #4841

20 Π»Π΅Ρ‚ Π½Π° сайтС
ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ #1254

19 Π»Π΅Ρ‚ Π½Π° сайтС
ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ #2148

Π½Π΅Ρ‚, Ρ‚Π°ΠΌ тСбя Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ заставляСт, Π½ΠΎ Ссли Ρ‚Ρ‹ сам Ρ…ΠΎΡ‡Π΅ΡˆΡŒ Ρ‚Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ ΡƒΠ·Π½Π°Π΅ΡˆΡŒ, Π° ΠΏΡ€Π΅ΠΏΠΎΠ΄Ρ‹ Ρ‚Π΅Π±Π΅ Π² этом ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚, Ρ‚Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°ΠΉ Ρƒ Π½ΠΈΡ…,

. ΠΊΠ°ΠΊ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ†Ρ†Π° Π­ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅. Π­

19 Π»Π΅Ρ‚ Π½Π° сайтС
ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ #3813

kamkad3e, Ρƒ нас Π”ΡƒΠ±ΠΊΠΎΠ² Ρ‡ΠΈΡ‚Π°Π». мСня Π½Π΅ сильно ΠΏΡ€ΠΈΠΊΠΎΠ»ΠΎΠ».

19 Π»Π΅Ρ‚ Π½Π° сайтС
ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ #1641

Π° я Π³Π΄Π΅Ρ‚ΠΎ Π²ΠΈΠ΄Π΅Π» Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π° Π‘ ΠΊΠ°ΠΊΠΎΠΌΡ‚ΠΎ написан

Какой Π‘ΠΈ? Π£ΠΆΠ΅ Π΄Π°Π²Π½ΠΎ биусы Π½Π° Π’ΠΈΠΆΡƒΠ°Π» БэйсикС ΠΏΠΈΡˆΡƒΡ‚ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. Π€ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос

19 Π»Π΅Ρ‚ Π½Π° сайтС
ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ #5333

Π”Π°, Π±Ρ€Π°Ρ‚Ρ†Ρ‹, Π΄Π΅Π»Π° Ρƒ вас ΠΏΠ»ΠΎΡ…ΠΈ!

Π›Π°Π΄Π½ΠΎ. Π˜Ρ‚Π°ΠΊ, Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π· BIOS-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (написанной Π½Π΅ Π²Π°ΠΆΠ½ΠΎ Π½Π° Ρ‡Π΅ΠΌ) хранится Π½Π° BIOS-ИМБ. Если ΠΎΠ½Π° Flash ΠΈΠ»ΠΈ EEPROM, Ρ‚ΠΎ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΡˆΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ спСцпрограмм ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Π°. ΠšΠΎΡ€ΠΎΡ‡Π΅, сначала этот ΠΎΠ±Ρ€Π°Π· Π½ΡƒΠΆΠ½ΠΎ

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ПишСм для UEFI BIOS Π² Visual Studio. Π§Π°ΡΡ‚ΡŒ 1 β€” Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π½ΠΈΠ΅ срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, компиляция ΠΈ запуск Π½Π° ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

ЦСль ΡΡ‚Π°Ρ‚ΡŒΠΈ β€” провСсти Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰Π΅Π³ΠΎ Π·Π° Ρ€ΡƒΠΊΡƒ ΠΏΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ UEFI ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ, ΠΎΡΡ‚Π°Π²Π°ΡΡΡŒ Π² ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½ΠΎΠΉ Π΅ΠΌΡƒ срСдС. Для Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… людСй, надСюсь, Π±ΡƒΠ΄Π΅Ρ‚ интСрСсным ΠΏΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² VS вмСсто ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΈΠ»ΠΈ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΈ пСрСнСсти Π΅Π³ΠΎ Π² Π»ΡŽΠ±ΠΈΠΌΡ‹ΠΉ Eclipse.

НачнСм с простых Π²Π΅Ρ‰Π΅ΠΉ, Π²Ρ‹Π²ΠΎΠ΄Π° строки Π½Π° консоль ΠΈ русификации (довольно вострСбованная Π²Π΅Ρ‰ΡŒ, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ простая Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ), ΠΏΠΎΡ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π° с Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ Π² HII (Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π°Π·Ρ‹Π²Π°Π»ΠΎΡΡŒ Π² ΠΎΠ±ΠΈΡ…ΠΎΠ΄Π΅ страницами BIOS Setup), ΠΏΠΎΡ‚ΠΎΠΌ Π³Ρ€Π°Ρ„ΠΈΠΊΠ°, ΠΏΠΎΡ‚ΠΎΠΌ Boot Manager, Π° ΠΏΠΎΡ‚ΠΎΠΌ Π²ΠΈΠ΄Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ (с).

Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. Π€ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос

Π–Π΅Π»Π°ΡŽΡ‰ΠΈΠ΅ β€” ΠΏΡ€ΠΎΡˆΡƒ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ ΠΊΠ°Ρ‚.

БСйчас Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, ΠΎΠ½ΠΎ Π²Π°ΠΌ Π½Π°Π΄ΠΎ ΠΈΠ»ΠΈ Π½Π΅Ρ‚. ΠŸΠΎΡ‚Ρ€Π°Ρ‚ΠΈΠΌ Π½Π° это ΠΏΠΎΠ»-страницы Π½Π° стартС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΏΠΎΠ»-дня ΠΈ Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½Π°Π΄ΠΎ совсСм Π΄Ρ€ΡƒΠ³ΠΎΠ΅. Или, надСюсь, Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚ β€” Π·Π°Π³ΠΎΡ€Π΅Ρ‚ΡŒΡΡ энтузиазмом ΠΈ Π²Ρ‹ΠΊΡ€ΠΎΠΈΡ‚ΡŒ врСмя Π½Π° ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ.

Π’Π½Π°Ρ‡Π°Π»Π΅ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅

2) Π Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π±ΡƒΠ΄Π΅ΠΌ со всСми возмоТностями Visual Studio, Ρ‚.Π΅. доступны breakpoints, watch, step execution ΠΈ ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅. ΠŸΠ΅Ρ€Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ ΠΈ запуск нСслоТного модуля Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 8-10 сСкунд.

3) Ѐайловая систСма Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠΈ доступна Π½Π° Windows-машинС для записи-чтСния. ΠžΡ‡Π΅Π½ΡŒ пригодится, Ссли Π½Π°Π΄ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ скрипты UEFI Shell, послС запуска ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Ρ‹ ΠΈ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈ срСдствами Windows.

4) Никакого ассСмблСра, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π‘/Π‘++.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ

1) ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² DXE (Π³Π΄Π΅ ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ UEFI Shell) ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΈΡ… Ρ„Π°Π·Π°Ρ…. Π’ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΠ΅ Ρ„Π°Π·Ρ‹ Π½Π΅ ΠΏΠΎΠ»Π΅Π·Π΅ΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ нас Ρ‚ΡƒΠ΄Π° Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ пустит, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ – для Intel-процСссоров. ПозТС Π±ΡƒΠ΄Π΅Ρ‚ объяснСниС, ΠΏΠΎΡ‡Π΅ΠΌΡƒ. Если Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ», ΠΎΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π΄ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ОБ, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ быстро ΠΈ Π½Π΅ забивая Π³ΠΎΠ»ΠΎΠ²Ρƒ ΠΊΡƒΡ‡Π΅ΠΉ Π½Π΅Π½ΡƒΠΆΠ½ΠΎΠΉ ΠΈ нСинтСрСсной Π²Π°ΠΌ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ, Π° Ρ€ΡƒΡ‡Π½ΠΎΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ систСмы Π²Π°ΠΌ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½Π΅ трСбуСтся – дальшС Π½Π΅ Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅, Π° Π½Π°Π±Π΅Ρ€ΠΈΡ‚Π΅ Π² Π“ΡƒΠ³Π»Π΅ Β«corebootΒ».

2) «ГрафичСского» UEFI с ΠΌΡ‹ΡˆΠΊΠΎΠΉ ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ, ΠΊΠ°ΠΊ Ρƒ Dell, MSI ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ…, здСсь Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚. Π­Ρ‚ΠΎ ΠΏΠ»Π°Ρ‚Π½Ρ‹Π΅ срСды, для использования Π² ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… компаниях. Π•ΡΡ‚ΡŒ, разумССтся, энтузиасты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сами ΡΠΎΠ·Π΄Π°ΡŽΡ‚ ΠΈΡ… своими Ρ€ΡƒΠΊΠ°ΠΌΠΈ, Π½Π΅ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΠ² ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π° вопрос Β«Π—Π°Ρ‡Π΅ΠΌ?Β», Π½ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡ… энтузиазм заканчиваСтся Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ с ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ.

3) ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с компилятором Visual Studio. Π–Π΅Π»Π°ΡŽΡ‰ΠΈΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ gcc Π² cygwin, ΠΈΠ»ΠΈ icc, Π½ΠΎ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ стоит Π·Π°Π΄Π°Ρ‡Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ быстрый ΠΊΠΎΠ΄, Π° стоит Π·Π°Π΄Π°Ρ‡Π° быстро ΠΏΡ€ΠΎΠΉΡ‚ΠΈ ΠΏΡƒΡ‚ΡŒ ΠΊ Π½Π°Ρ‡Π°Π»Ρƒ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

ВсС, ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Π°Π½Ρ†Ρ‹ Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Ρ‹, ΠΊΡ‚ΠΎ Π½Π°Π΄ΠΎ – Π²ΠΎΠΎΠ΄ΡƒΡˆΠ΅Π²Π»Π΅Π½, ΠΊΡ‚ΠΎ Π½Π°Π΄ΠΎ – Π½Π°ΠΏΡƒΠ³Π°Π½.

ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ Π΄Π΅Π»Ρƒ

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ Π΄Π΅Π»ΠΎΠΌ, скачиваСм Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π² ΠΊΠΎΡ€Π΅Π½ΡŒ диска. РазвСрнСтся ΠΎΠ½ Π² с:/FW. Если ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ FW Π² ΠΊΠΎΡ€Π½Π΅ диска ΡƒΠΆΠ΅ наличСствуСт, Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ Π±Ρ‹ Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ всС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΈ настроСны ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΡƒΠ΄Π° Π² Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹Ρ… путях. НС ΠΏΠΎ фэн-ΡˆΡƒΠΉ, Π½ΠΎ пСрфСкционисты всСгда ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ Π½Π° ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅, написав ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ скрипт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ это Π΄Π΅Π»Π°Π΅Ρ‚.

Π˜Ρ‚Π°ΠΊ, Ρƒ ΠΊΠΎΠ³ΠΎ Π½Π° машинС Π΅ΡΡ‚ΡŒ git Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π² cmd ΠΎΠΊΠ½Π΅ (ΠΈΠ»ΠΈ Π² Far Commander, Π½Π΅ ΡΡƒΡ‚ΡŒ) ΠΈΠ· ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°:

git clone https://github.com/ProgrammingInUEFI/FW

Π° Ρ‚Π΅, Ρƒ ΠΊΠΎΠ³ΠΎ Π½Π΅Ρ‚, ΠΈΠ΄ΡƒΡ‚ ΠΏΠΎ ссылкС Π½Π° github, ΡΠΊΠ°Ρ‡ΠΈΠ²Π°ΡŽΡ‚ zip-Ρ„Π°ΠΉΠ» ΠΈ Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ Π΅Π³ΠΎ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ с:/FW.

Как Π±Ρ‹Π»ΠΎ Ρ€Π°Π½Π΅Π΅ ΠΎΠ±Π΅Ρ‰Π°Π½ΠΎ, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ подсказку ΠΈΠ· Π˜Π½Ρ‚Π΅Π»ΠΎΠ²ΡΠΊΠΎΠ³ΠΎ Ρ‚Ρ€Π΅Π½ΠΈΠ½Π³Π° ΠΏΠΎ использованию Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠΉ ΠΎΡ‚ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π² Π½Π°Ρ‡Π°Π»Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ. Π˜Ρ‰ΠΈΡ‚Π΅ своС сочСтаниС Π² Ρ‚Π°Π±Π»ΠΈΡ‡ΠΊΠ΅, Ссли ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΠΎΠ΅ ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ-Ρ‚ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚:

Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. Π€ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ срСды для вСрсии, ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠΉ ΠΎΡ‚ VS2010

ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Ρ„Π°ΠΉΠ» c:\FW\edk2\Conf\target.txt ΠΈ Π² строчкС
TOOL_CHAIN_TAG = VS2010x86

ЗамСняСм VS2010x86 Π½Π° тэг установлСнной Ρƒ вас вСрсии Visual Studio. Для Visual Studio 2010 тэг останСтся ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒ, для Π΄Ρ€ΡƒΠ³ΠΈΡ… вСрсий VS – смотритС ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π²Ρ‹ΡˆΠ΅, ΠΈΠ»ΠΈ список Π² Π½Π°Ρ‡Π°Π»Π΅ Ρ„Π°ΠΉΠ»Π° c:\FW\edk2\Conf\tools_def.txt

БобствСнно, срСда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ edk2 Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚Π° ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈ Π² Π½Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки. НСкоторыС Ρ‚Π°ΠΊ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ всю Тизнь (Β«ΡƒΠ³ΠΎΡ€Π°Ρ‚ΡŒ ΠΏΠΎ Ρ…Π°Ρ€Π΄ΠΊΠΎΡ€Ρƒ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π΄ΡƒΡ… старой ΡˆΠΊΠΎΠ»Ρ‹ ΠΈ всё Ρ‚Π°ΠΊΠΎΠ΅Β» β€” (с) CodeRush Π² своСй ΡΡ‚Π°Π²ΡˆΠ΅ΠΉ классичСской ΡΡ‚Π°Ρ‚ΡŒΠ΅). Но ΠΌΡ‹ всС ΠΆΠ΅ ΠΏΠΎΠΉΠ΄Π΅ΠΌ дальшС, ΠΏΠ΅Ρ€Π΅ΡΠ°ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° ΠΈΠ· MSVS ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку β€” Π½Π΅Π³ΡƒΠΌΠ°Π½Π½ΠΎ, особСнно Π² 2017.

НастраиваСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² Visual Studio

ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Visual Studio, Π² Π½Π΅ΠΌ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Solution NT32.sln ΠΈΠ· ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° C:\FW\VS\NT32. Π’ цСлях ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π²Ρ…ΠΎΠ΄Π° Π² Ρ‚Π΅ΠΌΡƒ, Π² solution ΡƒΠΆΠ΅ создан ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ NT32, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΡƒΠΆΠ΅ сдСланы описанныС Π½ΠΈΠΆΠ΅ настройки. Π­Ρ‚ΠΎ Ссли Π½Π΅ получится ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ самим – Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ настройки ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ сильно сократит врСмя поиска источника ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π² случаС ΠΈΡ… появлСния. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ описанный Π½ΠΈΠΆΠ΅ ΠΏΡƒΡ‚ΡŒ самим, ΠΈ ΠΏΠΎΠ½ΡΡ‚ΡŒ смысл настроСк – это ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ настройку ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².

ПолСзно Π±ΡƒΠ΄Π΅Ρ‚ сразу Π² Tools->Options Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π½Π° c:\FW\VS, Π½ΠΎ Ссли Π² VS вСдСтся Π΄Ρ€ΡƒΠ³ΠΎΠΉ, Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Ρ‚ΠΎ Ρ‚Π°ΠΊ Π΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ Π½Π°Π΄ΠΎ:

Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. Π€ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π² Solution NT32 Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ для Visual C++ (ΠΏΡ€Π°Π²ΠΎΠΉ клавишСй Π½Π° Solution NT32, Add->New Project, Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ ΠΎΠΏΡ†ΠΈΡŽ Makefile Project), ΠΈ Π½Π°Π·ΠΎΠ²Π΅ΠΌ Π΅Π³ΠΎ MyFirstUEFIProject (ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΡƒΠ³ΠΎΠ΄Π½ΠΎ Π΅Ρ‰Π΅). Π–ΠΌΠ΅ΠΌ Finish.

Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. Π€ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос

Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Π² Solution ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ NT32, Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ ΠΈΠ· контСкстного мСню Project->Properties ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌ настройки ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Настройка NMake ΠΎΠΏΡ†ΠΈΠΉ

Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Π² ΠΎΠΊΠ½Π΅ слСва строку Configurarion Properties β†’ NMake, Π² ΠΎΠΊΠ½Π΅ справа β€” строку Build Command Line

Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. Π€ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос

Π–ΠΌΠ΅ΠΌ Edit… ΠΈ Π² ΠΎΡ‚ΠΊΡ€Ρ‹Π²ΡˆΠ΅ΠΌΡΡ тСкстовом ΠΎΠΊΠ½Π΅ Π²Π²ΠΎΠ΄ΠΈΠΌ:

БСйчас стоит Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ. По сути, ΠΌΡ‹ пишСм Π² этом ΠΎΠΊΠ½Π΅ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ bat-Ρ„Π°ΠΉΠ» вмСсто makefile.

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкС устанавливаСтся пСрСмСнная окруТСния ассСмблСра NASM_PREFIX Π² Ρ‚ΠΎΠΌ Π²ΠΈΠ΄Π΅, ΠΊΠ°ΠΊ Π΅Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ edk2, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡƒΡ‚ΡŒ, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π»Π΅ΠΆΠΈΡ‚ Ρ„Π°ΠΉΠ» nasm.exe. На ассСмблСрС ΠΌΡ‹ сами ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ, Π½ΠΎ нашСй систСмС сборки ассСмблСр Π½ΡƒΠΆΠ΅Π½ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ.

Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ строкС вызываСтся скрипт настройки срСды edk2 ΠΈ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния для Π΄Π°Π½Π½ΠΎΠ³ΠΎ сСанса компиляции ΠΈ запуска (Π²Π½Π΅ VS эти ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π½Π΅ ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ). ΠšΠ»ΡŽΡ‡ –nt32 ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ систСмС сборки, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ исходники Π½Π°Π΄ΠΎ для ΠΏΠ°ΠΊΠ΅Ρ‚Π° (package) Nt32Pkg, располоТСнного Π² C:\FW\edk2\Nt32Pkg. Π­Ρ‚ΠΈΡ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Ρ‚Π°ΠΌ ΠΌΠ½ΠΎΠ³ΠΎ, ΠΌΡ‹ ΠΈΡ… рассмотрим, Π½ΠΎ Π½Π΅ сСйчас.

Π’ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ строкС ΠΌΡ‹ Π΄Π°Π΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ Π² Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ настроСнной срСдС (build.exe Π»Π΅ΠΆΠΈΡ‚ Π² C:\FW\edk2\BaseTools\Bin\Win32, этот ΠΏΡƒΡ‚ΡŒ прописываСтся Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ строчкС, Π² edksetup.bat)

Π˜Ρ‚Π°ΠΊ, Π²ΠΎΡ‚ Ρ‡Ρ‚ΠΎ Ρƒ нас Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ Π² ΠΈΡ‚ΠΎΠ³Π΅ Π² тСкстовом ΠΎΠΊΠ½Π΅ Build Command Line:

Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. Π€ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос

Π—Π°Ρ‚Π΅ΠΌ Π²Π²ΠΎΠ΄ΠΈΠΌ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строкС Rebuild Command Line Π² ΠΎΡ‚ΠΊΡ€Ρ‹Π²ΡˆΠ΅Π΅ΡΡ ΠΏΠΎ Edit … ΠΎΠΊΠ½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ тСкст

Команда build clean ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ‚ΠΎ самоС, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚Π΅. Она Π΄Π΅Π»Π°Π΅Ρ‚ ΠΏΠΎΠ»Π½ΡƒΡŽ пСрСстройку ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° с пСрСкомпиляциСй всСх ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ.

Π§Ρ‚ΠΎ ΠΌΡ‹ Π²Π²ΠΎΠ΄ΠΈΠΌ Π² ΠΎΠΊΠ½Π΅ ΠΈΠ· Clean Command Line, Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, всС ΡƒΠΆΠ΅ догадались:

ЧСстно говоря, особо эта опция Π½Π΅ Π½ΡƒΠΆΠ½Π°, Π² 99% случаСв Ρ…Π²Π°Ρ‚ΠΈΡ‚ Rebuild, Π½ΠΎ пускай Π±ΡƒΠ΄Π΅Ρ‚ – Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ срСду для Π΅Π΅ пСрСноса Π² Π΄Ρ€ΡƒΠ³ΠΎΠ΅ мСсто ΠΈΠ»ΠΈ Π·Π°Π»ΠΈΠ²ΠΊΠΈ Π½Π° github.
Π’ ΠΈΡ‚ΠΎΠ³Π΅, Ρƒ нас Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠΊΠ½ΠΎ:

Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. Π€ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос

ВсС с настройкой NMake.

Настройка ΠΎΠΏΡ†ΠΈΠΈ Debugging

Π˜Ρ‚Π°ΠΊ, ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ строчку Debugging ΠΈ Π²Π²ΠΎΠ΄ΠΈΠΌ:
Π’ строчкС Command:

Π’ строчкС β€œWorking Directory”:

SecMain.exe – ΠΎΠ±ΡŠΡΡΠ½ΡΡ‚ΡŒ сСйчас, Ρ‡Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅ – Π΄ΠΎΠ»Π³ΠΎ, Ссли ΠΎΡ‡Π΅Π½ΡŒ ΠΊΡ€Π°Ρ‚ΠΊΠΎ ΠΈ ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΠΎ – Ρ‚ΠΎ это Π°Π½Π°Π»ΠΎΠ³ bootloader-a, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ запускаСт всС ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅.

Π Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ – сюда Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ всС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ созданныС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, ΠΈ доступны ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ всС сразу ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки.

Π˜Ρ‚Π°ΠΊ, Π²ΠΎΡ‚ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ послС настроСк Π² этом ΠΎΠΊΠ½Π΅:

Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. Π€ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос

На этом всС с настройками ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Π’Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ Build Solution, смотрим Π½Π° экран ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΠΌΠΈΠ½ΡƒΡ‚Ρƒ, Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΅ΡΡ‚ΡŒ наибольший риск Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Ρ€ΡƒΠ³Π°Π½Π½Ρ‹ΠΌ компилятором, ΠΈ ΠΈΠ΄Π΅ΠΌ ΠΏΠΈΡ‚ΡŒ ΠΊΠΎΡ„Π΅ – ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒΡΡ это всС Π±ΡƒΠ΄Π΅Ρ‚ 10-15 ΠΌΠΈΠ½, Π² зависимости ΠΎΡ‚ рСсурсов вашСго ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. Ничто Π½ΡƒΠ΄Π½ΠΎΠ΅ Π½Π΅ Π²Π΅Ρ‡Π½ΠΎ, ΠΈ Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ² ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ сообщСниС:

========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

Если ΠΆΠ΅ вмСсто этого ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΈΠ½ΠΎΠ΅, смотритС, ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π»ΠΈ Π²Ρ‹ ΠΏΡ€ΠΎΡˆΠ»ΠΈ всС шаги. НаиболСС тяТСлый случай – ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ:

LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt

это Π±Π°Π³ срСды VS2010 ΠΈ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ VS2010 установлСн Π±Π΅Π· SP1. ΠŸΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ SP1, ΠΈΠ»ΠΈ ΠΈΡ‰ΠΈΡ‚Π΅ способы затыкания этой ошибки Π² ΠΈΠ½Π΅Ρ‚Π΅.

Если ΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΈ ΠΈΠ· сообщСний компилятора Π½Π΅ понятно, Ρ‡Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅ – ΠΏΠ΅Ρ€Π΅ΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π΄Π΅Ρ„ΠΎΠ»Ρ‚Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° NT32 ΠΈ запуститС Π΅Π³ΠΎ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ с ΠΎΡ‚Π»Π°Π΄ΠΊΠΎΠΉ. Если ΠΈ Ρ‚Π°ΠΌ ошибка – ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π΅Ρ‰Π΅ Ρ€Π°Π· соотвСтствиС TOOL_CHAIN_TAG ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ значСниям, описанным Π² tools_def.txt. Π‘ΠΎΠ»ΡŒΡˆΠ΅ Π½ΠΈΡ‡Π΅Π³ΠΎ Ρ‚Π°ΠΌ ΡƒΠΏΠΈΡ€Π°Ρ‚ΡŒΡΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚, Ρ€Π°Π·Π²Π΅ Ρ‡Ρ‚ΠΎ сам Visual Studio установлСн, Ρ…ΠΌ, Π½Π΅ Π²ΠΏΠΎΠ»Π½Π΅ стандартно, ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ сторонний компилятор.

Π Π°Π±ΠΎΡ‚Π° Π² UEFI Shell

Π˜Ρ‚Π°ΠΊ, всС скомпилялось Ρ…ΠΎΡ€ΠΎΡˆΠΎ, ΠΈ Π²Ρ‹ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ эти строки. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΆΠΌΠ΅ΠΌ Π½Π° Π»ΡŽΠ±ΠΈΠΌΡƒΡŽ F5 ΠΈ послС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΠΌΠΈΠ½ΡƒΡ‚Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с диском (Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅ сократим ΠΈ это врСмя) ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π²ΠΎΡ‚ Ρ‚Π°ΠΊΡƒΡŽ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ:

Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. Π€ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос

БобствСнно, это ΠΈ Π΅ΡΡ‚ΡŒ UEFI Shell. Как Π² Π½Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ – написана ΠΊΡƒΡ‡Π° руководств, посмотритС Π² Π“ΡƒΠ³Π»Π΅, Π° ΠΌΡ‹ ΠΏΠΎΠΊΠ° сдСлаСм Π² Π½Π΅ΠΌ нСсколько Π²Π΅Ρ‰Π΅ΠΉ.

1. Π‘ΠΌΠΎΡ‚Ρ€ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ‚Π°ΠΌ накомпиляли Π·Π° эти 10 ΠΌΠΈΠ½ΡƒΡ‚. Π’Π²ΠΎΠ΄ΠΈΠΌ fs0: (UEFI Shell нСчувствитСлСн ΠΊ рСгистру) ΠΈ Π·Π°Ρ‚Π΅ΠΌ ls –b, Π³Π΄Π΅ опция –b ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ наТатия Enter для ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ страницы, ΠΈΠ±ΠΎ список Ρ‚Π°ΠΌ большой, Π½Π΅ Π½Π° ΠΎΠ΄ΠΈΠ½ экран.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ стало понятно, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π» ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ β€œWorking Directory” Π² настройкС ΠΎΠΏΡ†ΠΈΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Visual Studio β€” C:\FW\edk2\Build\NT32IA32\DEBUG_VS2010x86\IA32\. Π’Π°ΠΌ этот ΠΆΠ΅ самый список Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΈ Π»ΡƒΡ‡ΡˆΠ΅ Π΅Π³ΠΎ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ (ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ скрипты) Ρ‡Π΅Ρ€Π΅Π· Ρ€Π°Π·Π²ΠΈΡ‚ΡƒΡŽ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ Far Commander (ΠΈΠ»ΠΈ Total Commander), Ρ‡Π΅ΠΌ с ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Π² UEFI Shell.

2. Π’ UEFI Shell ΠΈ Π½Π°Π±ΠΈΡ€Π°Π΅ΠΌ β€œhel”, ΠΆΠΌΠ΅ΠΌ Tab ΠΈ Π²ΠΈΠ΄ΠΈΠΌ Π½Π° экранС Helloworld.efi. НС Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΡ‹ совсСм Π½Π΅ Π΄ΠΎΠ³Π°Π΄Ρ‹Π²Π°Π»ΠΈΡΡŒ, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚, Ссли Π½Π°ΠΆΠ°Ρ‚ΡŒ послС этого Enter, Π½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ-Ρ‚ΠΎ Π½Π°Π΄ΠΎ! Π–ΠΌΠ΅ΠΌ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ‚Ρ€ΠΎΠ΅ΠΊΡ€Π°Ρ‚Π½ΠΎΠ΅ UEFI Hello World!. Число ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠΉ – это ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ Π² настройках срСды (Π° Π½Π΅ Π² исходниках) внСшний ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΈ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ эту ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ ΠΏΠΎΡ‚ΠΎΠΌ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒ.

3. НабираСм exit ΠΈ ΠΏΠΎΠΏΠ°Π΄Π°Π΅ΠΌ Π² нашС любимоС ΠΈ Π·Π½Π°ΠΊΠΎΠΌΠΎΠ΅ ΠΎΠΊΠ½ΠΎ:

Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. Π€ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос

Ну Π²ΠΎΡ‚, ΠΌΠΎΠΆΠ½ΠΎ Π»ΡŽΠ±ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π° ΠΏΠ»ΠΎΠ΄Ρ‹ своих Ρ‚Ρ€ΡƒΠ΄ΠΎΠ². ПослС этого стрСлками Π³ΠΎΠ½ΠΈΠΌ фокус Π½Π° Reset ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠ° закрываСтся, возвращая нас Π² Π·Π½Π°ΠΊΠΎΠΌΠΎΠ΅ ΠΎΠΊΠ½ΠΎ MSVC.

Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ свою строку

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ своСго прилоТСния ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ достаточно ΠΌΠ½ΠΎΠ³ΠΎ настроСк, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π»ΡƒΡ‡ΡˆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ β€” ΠΈΠ½Π°Ρ‡Π΅ получится большой объСм, Π° Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ простыни Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚. Однако ΠΆΠ΅ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ этой ΡΡ‚Π°Ρ‚ΡŒΠΈ написано Β«ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅Β», Π° ΠΌΡ‹ ΠΏΠΎΠΊΠ° занимались Ρ‚ΠΎΠ»ΡŒΠΊΠΎ настройкой. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΎΠ±Π΅Ρ‰Π°Π½ΠΈΠ΅, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ сдСлаСм ΠΎΡ‡Π΅Π½ΡŒ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ прилоТСния HelloWorld, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π΅Π³ΠΎ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉΡΡ Π½Π°Π±ΠΎΡ€ Ρ„Π°ΠΉΠ»ΠΎΠ², Π° Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ создадим свой, ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π˜Π½Ρ‚Π΅Π»ΠΎΠ²ΡΠΊΠΎΠΉ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ UEFI Driver Wizard, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΡ€ΠΎΠ³ΠΎΠ½ΡΡ‚ΡŒ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… ΠΏΠΎ ΠΏΠΎΠ»Π½ΠΎΠΌΡƒ Ρ†ΠΈΠΊΠ»Ρƒ создания Π½Π°Π±ΠΎΡ€Π° Ρ„Π°ΠΉΠ»ΠΎΠ² для UEFI Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° (ΠΈΠ»ΠΈ прилоТСния) β€” это Π½Π΅Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΠ»ΡŽΠ±ΠΈΠ²ΠΎ, Π΄ΠΈΠΊΠΎ Ρ€ΡƒΡ‚ΠΈΠ½Π½ΠΎ ΠΈ нСсСт риск ΠΏΠΎΡ‚Π΅Ρ€ΠΈ 90% Π°ΡƒΠ΄ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. Если Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° Π·Π°Ρ†Π΅ΠΏΠΈΡ‚ β€” ΠΎΠ½ сам ΠΊ этому ΠΏΡ€ΠΈΠ΄Π΅Ρ‚ со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ, Π° Ссли хочСтся просто ΠΏΠΎΠΈΠ³Ρ€Π°Ρ‚ΡŒΡΡ β€” Π½Π΅Ρ‚ смысла Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π½Π° это ΠΊΡƒΡ‡Ρƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π±Π»Π°Π³ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Π°Π²Π½ΠΎ ΡƒΠΆΠ΅ дСлаСтся автоматичСски Ρ‡Π΅Ρ€Π΅Π· UEFI Driver Wizard, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΠΏΠΎ фэн-ΡˆΡƒΠΉ, Ρ‡Π΅Π³ΠΎ ΠΎΡ‚ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ° ΠΆΠ΄Π°Ρ‚ΡŒ Π½Π°ΠΈΠ²Π½ΠΎ.

Π˜Ρ‚Π°ΠΊ, ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Π² Visual Studio Ρ„Π°ΠΉΠ»
C:\FW\edk2\MdeModulePkg\Application\HelloWorld\HelloWorld.c

И Π΄ΠΎΠ±Π°Π²ΠΈΠΌ свою ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ строчку, сразу послС объявлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² СдинствСнной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

РазумССтся, тСкст ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π° Ρ‡Ρ‚ΠΎ ΡƒΠ³ΠΎΠ΄Π½ΠΎ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ английскими Π±ΡƒΠΊΠ²Π°ΠΌΠΈ β€” русский ΡˆΡ€ΠΈΡ„Ρ‚ edk2 Π΅Ρ‰Π΅ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚, ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π΅Π³ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΡΡ‚Π°Ρ‚ΡŒΡΡ…. ΠœΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½Π° эту строку ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ breakpoint ΠΈ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ сСбя ΠΏΠΎΠ²Π΅Π΄Π΅Ρ‚ Visual Studio.

Π–ΠΌΠ΅ΠΌ F5, послС компиляции ΠΈ устранСния ошибок Π²Π²ΠΎΠ΄ΠΈΠΌ Β«fs0:Β», HelloWorld.efi ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Ρ‚Π°ΠΊΠΎΠΉ Π²Ρ‹Π²ΠΎΠ΄:

Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос. Π€ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ языкС написан биос

На этом всС. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ Π² UEFI Shell, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒΡΡ, ΠΈ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Leave a Reply

Your email address will not be published. Required fields are marked *