Linux kernel 5.18 เบงเบฒเบ‡เปเบœเบ™เบ—เบตเปˆเบˆเบฐเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เปƒเบŠเป‰เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบžเบฒเบชเบฒ C C11

ะ’ ะฟั€ะพั†ะตััะต ะพะฑััƒะถะดะตะฝะธั ะฝะฐะฑะพั€ะฐ ะฟะฐั‚ั‡ะตะน ั ะธัะฟั€ะฐะฒะปะตะฝะธะตะผ ัะฒัะทะฐะฝะฝั‹ั… ั ัƒัะทะฒะธะผะพัั‚ัะผะธ ะบะปะฐััะฐ Spectre ะฟั€ะพะฑะปะตะผ ะฒ ะบะพะดะต ะดะปั ั€ะฐะฑะพั‚ั‹ ัะพ ัะฒัะทะฐะฝะฝั‹ะผะธ ัะฟะธัะบะฐะผะธ, ัั‚ะฐะปะพ ััะฝะพ, ั‡ั‚ะพ ะฟั€ะพะฑะปะตะผัƒ ัƒะดะฐะปะพััŒ ะฑั‹ ั€ะตัˆะธั‚ัŒ ะฑะพะปะตะต ะธะทัั‰ะฝะพ, ะตัะปะธ ะฑั‹ ะฒ ัะดั€ะพ ะดะพะฟัƒัะบะฐะปัั ะบะพะด ะฝะฐ ัะทั‹ะบะต ะกะธ, ัะพะพั‚ะฒะตั‚ัั‚ะฒัƒัŽั‰ะธะน ะฑะพะปะตะต ะฝะพะฒะพะน ะฒะตั€ัะธะธ ัั‚ะฐะฝะดะฐั€ั‚ะฐ. ะ’ ะฝะฐัั‚ะพัั‰ะตะต ะฒั€ะตะผั ะดะพะฑะฐะฒะปัะตะผั‹ะน ัะดั€ะพ ะบะพะด ะดะพะปะถะตะฝ ัะพะพั‚ะฒะตั‚ัั‚ะฒะพะฒะฐั‚ัŒ ัะฟะตั†ะธั„ะธะบะฐั†ะธะธ ANSI C (ะก89), ัั„ะพั€ะผะธั€ะพะฒะฐะฝะฝะพะน ะตั‰ั‘ ะฒ 1989 ะณะพะดัƒ.

ะกะฒัะทะฐะฝะฝะฐั ัะพ Spectre ะฟั€ะพะฑะปะตะผะฐ ะฒ ะบะพะดะต ะฑั‹ะปะฐ ะฒั‹ะทะฒะฐะฝะฐ ะฟั€ะพะดะพะปะถะตะฝะธะตะผ ะธัะฟะพะปัŒะทะพะฒะฐะฝะธั ะพั‚ะดะตะปัŒะฝะพ ะพะฟั€ะตะดะตะปัะตะผะพะณะพ ะธั‚ะตั€ะฐั‚ะพั€ะฐ ะฟะพัะปะต ั†ะธะบะปะฐ โ€” ะดะปั ะฟะตั€ะตะฑะพั€ะฐ ัะปะตะผะตะฝั‚ะพะฒ ัะฒัะทะฐะฝะฝะพะณะพ ัะฟะธัะบะฐ ะธัะฟะพะปัŒะทัƒะตั‚ัั ะผะฐะบั€ะพั ะธ ั‚ะฐะบ ะบะฐะบ ะธั‚ะตั€ะฐั‚ะพั€ ั†ะธะบะปะฐ ะฟะตั€ะตะดะฐั‘ั‚ัั ะฒ ัั‚ะพั‚ ะผะฐะบั€ะพั, ะพะฝ ะพะฟั€ะตะดะตะปัะตั‚ัั ะฒะฝะต ัะฐะผะพะณะพ ั†ะธะบะปะฐ ะธ ะพัั‚ะฐั‘ั‚ัั ะดะพัั‚ัƒะฟะตะฝ ะฟะพัะปะต ั†ะธะบะปะฐ. ะ˜ัะฟะพะปัŒะทะพะฒะฐะฝะธะต ัั‚ะฐะฝะดะฐั€ั‚ะฐ C99 ะฟะพะทะฒะพะปะธะปะพ ะฑั‹ ะพะฟั€ะตะดะตะปัั‚ัŒ ะฟะตั€ะตะผะตะฝะฝั‹ะต ะดะปั ั†ะธะบะปะฐ ะฒ ะฑะปะพะบะต for(), ั‡ั‚ะพ ั€ะตัˆะธะปะพ ะฑั‹ ะฟั€ะพะฑะปะตะผัƒ ะฑะตะท ะฟั€ะธะดัƒะผั‹ะฒะฐะฝะธั ะพะฑั…ะพะดะฝั‹ั… ะฟัƒั‚ะตะน.

ะ›ะธะฝัƒั ะขะพั€ะฒะฐะปัŒะดั ัะพะณะปะฐัะธะปัั ั ะธะดะตะตะน ั€ะตะฐะปะธะทะฐั†ะธะธ ะฟะพะดะดะตั€ะถะบะธ ะฑะพะปะตะต ะฝะพะฒั‹ั… ัะฟะตั†ะธั„ะธะบะฐั†ะธะน ะธ ะฟั€ะตะดะปะพะถะธะป ะฟะตั€ะตะนั‚ะธ ะฒ ัะดั€ะต 5.18 ะฝะฐ ะธัะฟะพะปัŒะทะพะฒะฐะฝะธะต ัั‚ะฐะฝะดะฐั€ั‚ะฐ C11, ะพะฟัƒะฑะปะธะบะพะฒะฐะฝะฝะพะณะพ ะฒ 2011 ะณะพะดัƒ. ะŸั€ะธ ะฟั€ะตะดะฒะฐั€ะธั‚ะตะปัŒะฝะพะน ะฟั€ะพะฒะตั€ะบะต ัะฑะพั€ะบะฐ ะฒ GCC ะธ Clang ะฒ ะฝะพะฒะพะผ ั€ะตะถะธะผะต ะฟั€ะพัˆะปะฐ ะฑะตะท ะพั‚ะบะปะพะฝะตะฝะธะน. ะ•ัะปะธ ะฟั€ะธ ะฑะพะปะตะต ั‚ั‰ะฐั‚ะตะปัŒะฝะพะผ ั‚ะตัั‚ะธั€ะพะฒะฐะฝะธะธ ะฝะต ะฒะพะทะฝะธะบะฝะตั‚ ะฝะตะฟั€ะตะดะฒะธะดะตะฝะฝั‹ั… ะฟั€ะพะฑะปะตะผ, ะฒ ัะฑะพั€ะพั‡ะฝั‹ั… ัะบั€ะธะฟั‚ะฐั… ัะดั€ะฐ 5.18 ะพะฟั†ะธั โ€˜โ€”std=gnu89โ€™ ะฑัƒะดะตั‚ ะทะฐะผะตะฝะตะฝะฐ ะฝะฐ โ€˜โ€”std=gnu11 -Wno-shift-negative-valueโ€™. ะ ะฐััะผะฐั‚ั€ะธะฒะฐะปะฐััŒ ะฒะพะทะผะพะถะฝะพัั‚ัŒ ะธ ะธัะฟะพะปัŒะทะพะฒะฐะฝะธั ัั‚ะฐะฝะดะฐั€ั‚ะฐ C17, ะฝะพ ะฒ ัั‚ะพะผ ัะปัƒั‡ะฐะต ะฟั€ะธัˆะปะพััŒ ะฑั‹ ะฟะพะฒั‹ัˆะฐั‚ัŒ ะผะธะฝะธะผะฐะปัŒะฝะพ ะฟะพะดะดะตั€ะถะธะฒะฐะตะผัƒัŽ ะฒะตั€ัะธัŽ GCC. ะ’ะบะปัŽั‡ะตะฝะธะต ะถะต ะฟะพะดะดะตั€ะถะบะธ C11 ัƒะบะปะฐะดั‹ะฒะฐัŽั‚ัั ะฒ ั‚ะตะบัƒั‰ะธะต ั‚ั€ะตะฑะพะฒะฐะฝะธั ะบ ะฒะตั€ัะธะธ GCC (5.1).

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

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