Theo De Raadt
W^X တွင် အလုပ်စတင်ချိန်မှစ၍ JIT ကို အသုံးပြုသည့် အက်ပ်လီကေးရှင်းများစွာရှိသဖြင့် ဤလမ်းသည် ရှည်လျားကြောင်း ထင်ရှားပါသည်။ JIT အကောင်အထည်ဖော်မှုများကို အမျိုးအစားသုံးမျိုး ခွဲခြားနိုင်သည်။
- စနစ်ခေါ်ဆိုမှု၏ "ကုန်ကျစရိတ်" ကို လက်ခံခြင်းဖြင့် W နှင့် X ပြည်နယ်များအကြား မမ်မိုရီကို ပြောင်းခြင်း။
အကာအကွယ် . - တူညီသောမှတ်ဉာဏ်၏ W နှင့် X မြေပုံတွဲများကြားတွင် နာမည်တူများဖန်တီးခြင်း။
- အများဆုံး "ညစ်ပတ်သော" ရွေးချယ်မှုသည် တစ်ပြိုင်နက်တည်း ရိုက်ကူးခြင်းနှင့် လုပ်ဆောင်ခြင်းတို့ကို ခွင့်ပြုသည့် W|X memory model လိုအပ်သည်။
လောလောဆယ်တွင်၊ တတိယရွေးချယ်မှုကို အသုံးပြုသည့် ပရိုဂရမ်များ သိသိသာသာနည်းပါးလာပြီး ပထမနှင့် ဒုတိယကို အသုံးပြုမှုပိုများသည်။ သို့သော်လည်း၊ W|X JIT (အဓိကအားဖြင့် Chromium နှင့် Iridum) ဖြင့် ပရိုဂရမ်များကို run ရန် လိုအပ်သောကြောင့်၊ "wxallowed" filesystem mount option ကို ထည့်သွင်းထားပြီး၊ လုပ်ဆောင်နိုင်သော ELF ဖြစ်ပါက၊ executable ELF နှစ်ခုလုံးအတွက် memory ကို တစ်ပြိုင်နက်အသုံးပြုနိုင်စေရန် ခွင့်ပြုထားသည်။ ဖိုင်ကို “wxneeded” အမှတ်အသားဖြင့် အမှတ်အသားပြုထားပြီး အပလီကေးရှင်းများကိုယ်တိုင် ယန္တရားများကို အသုံးပြု၍ ထပ်မံကာကွယ်ထားသည်။
ယင်းကဲ့သို့သော အပလီကေးရှင်းများတွင် အားနည်းချက်များကို အသုံးချခြင်းအား ပိုမိုရှုပ်ထွေးစေရန် ယန္တရားအပြင် အဆိုပြုထားသည်။
Chrome/Iridium လုပ်ငန်းစဉ်များသည် ကတိစကားနှင့်ထုတ်ဖော်ပြသခြင်းတို့ကို အသုံးပြု၍ စိတ်ချယုံကြည်စွာကာကွယ်ထားပြီးဖြစ်သော်လည်း၊ ဥပမာအားဖြင့်၊ write(2) စနစ်ခေါ်ဆိုမှုကို ဖယ်ရှားခြင်းသည် တိုက်ခိုက်သူအတွက် နောက်ထပ်အခက်အခဲများကို ဖန်တီးပေးသည့်အတွက် အားသာချက်အချို့ရှိပါသည်။ သို့သော် JIT အကောင်အထည်ဖော်မှုသည် W|X မမ်မိုရီမှ မူရင်းစနစ်ခေါ်ဆိုမှုများကို အသုံးပြုပါက အခက်အခဲများလည်း ဖြစ်ပေါ်လာနိုင်သည်။ သို့သော်လည်း ABI ကို အကြိမ်များစွာ ပြောင်းလဲခဲ့သော်လည်း ပြဿနာများကို မည်သူမျှ အစီရင်ခံခြင်း မရှိခဲ့သဖြင့် ဤကဲ့သို့ ဖြစ်လာမည်မဟုတ်ဟု မျှော်လင့်ရန် အကြောင်းရှိပါသည်။
အပြောင်းအလဲများကို OpenBSD-Current ဌာနခွဲ၏ ပုံမှန်လျှပ်တစ်ပြက်ပုံများတွင် ရရှိနေပြီဖြစ်ပြီး စိတ်ပါဝင်စားသူတိုင်းကို စမ်းသပ်ရန် ဖိတ်ခေါ်အပ်ပါသည်။
Chrome/Iridium ရှိ မုဒ်၏ အသွင်အပြင်နှင့် ပတ်သက်သည့် သတင်းများသည် Theo ထံမှ သီးခြားမှတ်ချက်ပေးထိုက်သည်။
source: opennet.ru