เป„เบฅเบเบฐเป€เบงเบฅเบฒเปเบฅเปˆเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบ„เบงเบšเบ„เบธเบกเป„เบกเป‚เบ„เบฃเบ„เบญเบ™เป‚เบ—เบฅเปเบกเปˆเบ™เปเบ™เบฐเบ™เปเบฒเบชเปเบฒเบฅเบฑเบšเบžเบฒเบชเบฒ D

ะ”ะธะปะฐะฝ ะ“ั€ัะผ (Dylan Graham) ะฟั€ะตะดัั‚ะฐะฒะธะป ะปะตะณะบะพะฒะตัะฝั‹ะน runtime LWDR ะดะปั ะฟั€ะพะณั€ะฐะผะผะธั€ะพะฒะฐะฝะธั ะฝะฐ ัะทั‹ะบะต D ะผะธะบั€ะพะบะพะฝั‚ั€ะพะปะปะตั€ะพะฒ, ะพัะฝะฐั‰ั‘ะฝะฝั‹ั… ะžะก ั€ะตะฐะปัŒะฝะพะณะพ ะฒั€ะตะผะตะฝะธ (RTOS). ะขะตะบัƒั‰ะฐั ะฒะตั€ัะธั ะฝะฐั†ะตะปะตะฝะฐ ะฝะฐ ะผะธะบั€ะพะบะพะฝั‚ั€ะพะปะปะตั€ั‹ ARM Cortex-M. ะ ะฐะทั€ะฐะฑะพั‚ะบะฐ ะฝะต ัั‚ะฐะฒะธั‚ ั†ะตะปัŒัŽ ะฟะพะปะฝะพะต ะฟะพะบั€ั‹ั‚ะธะต ะฒัะตั… ะฒะพะทะผะพะถะฝะพัั‚ะตะน D, ะฝะพ ะฟั€ะตะดะพัั‚ะฐะฒะปัะตั‚ ะฑะฐะทะพะฒั‹ะต ัั€ะตะดัั‚ะฒะฐ. ะ ะฐัะฟั€ะตะดะตะปะตะฝะธะต ะฟะฐะผัั‚ะธ ะฟั€ะพะธะทะฒะพะดะธั‚ัั ะฒั€ัƒั‡ะฝัƒัŽ (new / delete), ัะฑะพั€ั‰ะธะบ ะผัƒัะพั€ะฐ ะฝะต ั€ะตะฐะปะธะทะพะฒะฐะฝ, ะฝะพ ะธะผะตะตั‚ัั ั€ัะด ั…ัƒะบะพะฒ ะดะปั ะธัะฟะพะปัŒะทะพะฒะฐะฝะธั ัั€ะตะดัั‚ะฒ RTOS.

ะ’ ะฟั€ะตะดัั‚ะฐะฒะปะตะฝะฝะพะน ะฒะตั€ัะธะธ ะฟะพะดะดะตั€ะถะฐะฝั‹:

  • ะฒั‹ะดะตะปะตะฝะธะต ะธ ั€ะฐะทั€ัƒัˆะตะฝะธะต ัะบะทะตะผะฟะปัั€ะพะฒ ะบะปะฐััะพะฒ ะธ ะบัƒั‡ะธ ะดะปั ัั‚ั€ัƒะบั‚ัƒั€;
  • ะธะฝะฒะฐั€ะธะฐะฝั‚ั‹;
  • assert-ั‹;
  • ะบะพะฝั‚ั€ะฐะบั‚ั‹, ะฑะฐะทะพะฒั‹ะต ัั€ะตะดัั‚ะฒะฐ RTTI (ะทะฐ ัั‡ั‘ั‚ ัั€ะตะดัั‚ะฒ Typeinfo);
  • ะธะฝั‚ะตั€ั„ะตะนัั‹;
  • ะฒะธั€ั‚ัƒะฐะปัŒะฝั‹ะต ั„ัƒะฝะบั†ะธะธ;
  • ะฐะฑัั‚ั€ะฐะบั‚ะฝั‹ะต ะธ ัั‚ะฐั‚ะธั‡ะตัะบะธะต ะบะปะฐััั‹;
  • ัั‚ะฐั‚ะธั‡ะตัะบะธะต ะผะฐััะธะฒั‹;
  • ะฒั‹ะดะตะปะตะฝะธะต, ะพัะฒะพะฑะพะถะดะตะฝะธะต ะธ ะธะทะผะตะฝะตะฝะธะต ั€ะฐะทะผะตั€ะฐ ะดะธะฝะฐะผะธั‡ะตัะบะธั… ะผะฐััะธะฒะพะฒ;
  • ะดะพะฑะฐะฒะปะตะฝะธะต ัะปะตะผะตะฝั‚ะพะฒ ะฒ ะดะธะฝะฐะผะธั‡ะตัะบะธะน ะผะฐััะธะฒ ะธ ะบะพะฝะบะฐั‚ะตะฝะฐั†ะธั ะดะธะฝะฐะผะธั‡ะตัะบะธั… ะผะฐััะธะฒะพะฒ.

ะ’ ัั‚ะฐั‚ัƒัะต ัะบัะฟะตั€ะธะผะตะฝั‚ะฐะปัŒะฝั‹ั… ะฒะพะทะผะพะถะฝะพัั‚ะตะน: ะธัะบะปัŽั‡ะตะฝะธั ะธ Throwables (ั‚ะฐะบ ะบะฐะบ ั‚ั€ะตะฑัƒัŽั‚ ะฟะพะดะดะตั€ะถะบัƒ ะผัƒัะพั€ั‰ะธะบะฐ).

ะะต ั€ะตะฐะปะธะทะพะฒะฐะฝั‹:

  • ะบะพะฝัั‚ั€ัƒะบั‚ะพั€ั‹ ะธ ะดะตัั‚ั€ัƒะบั‚ะพั€ั‹ ะผะพะดัƒะปะตะน;
  • ModuleInfo;
  • ะปะพะบะฐะปัŒะฝั‹ะต ะฟะตั€ะตะผะตะฝะฝั‹ะต ะฟะพั‚ะพะบะฐ (TLS);
  • ะดะตะปะตะณะฐั‚ั‹ ะธ ะทะฐะผั‹ะบะฐะฝะธั;
  • ะฐััะพั†ะธะฐั‚ะธะฒะฝั‹ะต ะผะฐััะธะฒั‹;
  • ั€ะฐะทะดะตะปัะตะผั‹ะต ะธ ัะธะฝั…ั€ะพะฝะธะทะธั€ะพะฒะฐะฝะฝั‹ะต ะดะฐะฝะฝั‹ะต;
  • ั…ััˆะธั€ะพะฒะฐะฝั‹ะต ะพะฑัŠะตะบั‚ั‹.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™