makepp_sandboxes - ອອນລາຍໃນຄລາວ

ນີ້ແມ່ນຄໍາສັ່ງ makepp_sandboxes ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator

ໂຄງການ:

NAME


makepp_sandboxes -- ວິທີແບ່ງສ່ວນສ້າງ makepp

ລາຍລະອຽດ


D: --ເຮັດ​ສ້າງ​,
--ບໍ່​ສ້າງ​,
--ຢ່າອ່ານ,
-- ອ່ານ, I: -- ໃນ sandbox,
--inside-sandbox, O: --ນອກ​ຊາຍ​ແດນ​ຕິດ​, S: -- sandbox,
--sandbox-ເຕືອນ,
--sandbox-ເຕືອນ, V: --virtual-sandbox

ມີສອງສາມເຫດຜົນທີ່ເຈົ້າອາດຈະຕ້ອງການແບ່ງສ່ວນຕົ້ນໄມ້ໄຟລ໌ສໍາລັບ makepp
ສ້າງ:

1. ຖ້າທ່ານຮູ້ວ່າຕົ້ນໄມ້ສ່ວນໃຫຍ່ບໍ່ໄດ້ຮັບຜົນກະທົບຈາກການປ່ຽນແປງໃດໆ
ແຫຼ່ງໄຟລ໌ນັບຕັ້ງແຕ່ການກໍ່ສ້າງທີ່ຜ່ານມາ, ຫຼັງຈາກນັ້ນທ່ານສາມາດບອກ makepp ໃຫ້ສົມມຸດວ່າໄຟລ໌ນັ້ນ
ໃນສ່ວນຂອງຕົ້ນໄມ້ເຫຼົ່ານັ້ນແມ່ນທັນສະໄຫມແລ້ວ, ຊຶ່ງຫມາຍຄວາມວ່າບໍ່ແມ່ນແຕ່ implicitly
ການໂຫຼດ makefiles ຂອງເຂົາເຈົ້າ, ປ່ອຍໃຫ້ຜູ້ດຽວກັບຄອມພິວເຕີ້ແລະການກວດສອບຄວາມຂຶ້ນກັບຂອງເຂົາເຈົ້າ. (ຫມາຍ​ເຫດ​
ໄຟລ໌ makefiles ທີ່ໂຫລດຢ່າງຊັດເຈນແມ່ນຍັງຖືກໂຫລດ, ແນວໃດກໍ່ຕາມ.)

2. ຖ້າຫາກວ່າທ່ານມີຫຼາຍຂະບວນການ makepp ເຂົ້າເຖິງຕົ້ນໄມ້ດຽວກັນ, ຫຼັງຈາກນັ້ນທ່ານຕ້ອງການທີ່ຈະຍົກສູງບົດບາດ
ຄວາມ​ຜິດ​ພາດ​ຖ້າ​ຫາກ​ວ່າ​ທ່ານ​ກວດ​ພົບ​ວ່າ​ສອງ​ຂະ​ບວນ​ການ​ພ້ອມ​ກັນ​ແມ່ນ​ການ​ຂຽນ​ສ່ວນ​ດຽວ​ກັນ​ຂອງ​
ຕົ້ນໄມ້, ຫຼືຂະບວນການຫນຶ່ງແມ່ນອ່ານສ່ວນຫນຶ່ງຂອງຕົ້ນໄມ້ທີ່ເປັນຂະບວນການພ້ອມກັນ
ການ​ຂຽນ. ໃນກໍລະນີໃດກໍ່ຕາມ, ທ່ານມີເງື່ອນໄຂເຊື້ອຊາດທີ່ລໍາດັບເຫດການທີ່ກ່ຽວຂ້ອງ
ໃນສອງຂະບວນການພ້ອມກັນ (ທີ່ບໍ່ສາມາດຮັບປະກັນໄດ້) ອາດຈະສົ່ງຜົນກະທົບຕໍ່ຜົນໄດ້ຮັບ.

Makepp ມີສະຖານທີ່ sandboxing ທີ່ແກ້ໄຂຄວາມກັງວົນທັງສອງ.

Sandboxing ທາງເລືອກໃນການ
ຕົວເລືອກ makepp ຕໍ່ໄປນີ້ອາດຈະຖືກນໍາໃຊ້ເພື່ອກໍານົດຄຸນສົມບັດ sandboxing ຂອງຕົ້ນໄມ້ຍ່ອຍ
ມອບ​ໃຫ້​ໂດຍ ເສັ້ນທາງ ແລະໄຟລ໌ທັງໝົດຂອງມັນ ແລະໄຟລ໌ທີ່ເປັນໄປໄດ້:

-- dont-build ເສັ້ນທາງ
--ເຮັດ-ສ້າງ ເສັ້ນທາງ
ຕັ້ງຄ່າຫຼືປັບຄຸນສົມບັດ "ບໍ່ສ້າງ". ໄຟລ໌ໃດໆທີ່ມີຊຸດຄຸນສົມບັດນີ້ແມ່ນສົມມຸດວ່າ
ມີຄວາມທັນສະໄຫມຢູ່ແລ້ວ, ແລະບໍ່ມີການກວດສອບການກໍ່ສ້າງໃດໆ. ຄ່າເລີ່ມຕົ້ນຖືກຣີເຊັດ
(ie "do-build"), ຍົກເວັ້ນຖ້າທ່ານມີ "RootMakeppfile", ໃນກໍລະນີນີ້ທຸກສິ່ງທຸກຢ່າງ
ຢູ່ນອກ id ຕົ້ນໄມ້ຍ່ອຍຂອງມັນ "dont-build".

-- sandbox ເສັ້ນທາງ
--in-sandbox ເສັ້ນທາງ
--inside-sandbox ເສັ້ນທາງ
-- ອອກຈາກ sandbox ເສັ້ນທາງ
ຕັ້ງຄ່າຫຼືປັບຄຸນສົມບັດ "in-sandbox". ຄວາມຜິດພາດຖືກຍົກຂຶ້ນມາຖ້າ makepp ເປັນຖ້າບໍ່ດັ່ງນັ້ນ
ຂຽນໄຟລ໌ທີ່ມີຄຸນສົມບັດນີ້ reset. ການກໍ່ສ້າງຍັງດໍາເນີນການກວດສອບ, ເວັ້ນເສຍແຕ່ວ່າ
ຊັບສິນ "ບໍ່ສ້າງ" ຍັງຖືກກໍານົດ. ຄ່າເລີ່ມຕົ້ນຖືກຕັ້ງ (ເຊັ່ນ "in-sandbox"), ເວັ້ນເສຍແຕ່
ມີອັນໃດ -- sandbox ທາງເລືອກ, ໃນກໍລະນີນີ້ຄ່າເລີ່ມຕົ້ນຂອງໄຟລ໌ອື່ນໆທັງຫມົດແມ່ນ
reset (ie "out-of-sandbox").

--sandbox-ເຕືອນ
--sandbox-ເຕືອນ
ດາວເກຣດການລະເມີດ "in-sandbox" ແລະ "dont-read" ເປັນຄໍາເຕືອນແທນທີ່ຈະເປັນຄວາມຜິດພາດ.
ນີ້ແມ່ນເປັນປະໂຫຍດເມື່ອມີການລະເມີດຫຼາຍຮ້ອຍຄັ້ງ, ດັ່ງນັ້ນທ່ານສາມາດເກັບກໍາຂໍ້ມູນທັງຫມົດ
ເຂົາເຈົ້າຢູ່ໃນໄລຍະດຽວ ແລະດໍາເນີນການແກ້ໄຂທີ່ເຫມາະສົມ. ຖ້າບໍ່ດັ່ງນັ້ນ, ເຈົ້າເຫັນເທົ່ານັ້ນ
ການລະເມີດຫນຶ່ງຕໍ່ການຮຽກຮ້ອງ makepp, ແລະທ່ານບໍ່ຮູ້ວ່າມີຈໍານວນເທົ່າໃດທີ່ຍັງເຫຼືອຈົນກ່ວາ
ພວກ​ເຂົາ​ເຈົ້າ​ກໍາ​ລັງ​ແກ້​ໄຂ​ທັງ​ຫມົດ​.

--ຢ່າອ່ານ ເສັ້ນທາງ
--ອ່ານ ເສັ້ນທາງ
ຕັ້ງຄ່າຫຼືປັບຄຸນສົມບັດ "ບໍ່ໄດ້ອ່ານ". ຄວາມຜິດພາດຖືກຍົກຂຶ້ນມາຖ້າ makepp ເປັນຖ້າບໍ່ດັ່ງນັ້ນ
ອ່ານໄຟລ໌ທີ່ມີຊຸດຄຸນສົມບັດນີ້. ຄ່າເລີ່ມຕົ້ນຖືກຕັ້ງຄືນໃໝ່ (ເຊັ່ນ: "ເຮັດ-ອ່ານ").

--virtual-sandbox
ຢ່າຂຽນຄືນຂໍ້ມູນການກໍ່ສ້າງຂອງໄຟລ໌ທີ່ບໍ່ໄດ້ຖືກສ້າງຂື້ນໂດຍຂະບວນການ makepp ນີ້. ນີ້
ເປັນປະໂຫຍດໃນເວລາທີ່ແລ່ນຂະບວນການ makepp ພ້ອມກັນກັບ sandboxes ທັບຊ້ອນ, ແລະທ່ານ
ແນ່ນອນວ່າບໍ່ມີສອງຂະບວນການທີ່ຈະພະຍາຍາມສ້າງເປົ້າຫມາຍດຽວກັນ. Makepp ຈະ
ຫຼັງ​ຈາກ​ນັ້ນ​ລະ​ເວັ້ນ​ຈາກ​ການ​ເກັບ​ຂໍ້​ມູນ​ເພີ່ມ​ເຕີມ​ກ່ຽວ​ກັບ​ໄຟລ​໌​ທີ່​ມັນ​ອ່ານ​, ເນື່ອງ​ຈາກ​ວ່າ​
ອາດຈະມີຜູ້ອ່ານອື່ນໆພ້ອມໆກັນ.

ແຕ່ລະຄຸນສົມບັດ 3 ເຫຼົ່ານີ້ໃຊ້ກັບຕົ້ນໄມ້ຍ່ອຍທັງໝົດ, ລວມທັງໄຟລ໌ທີ່ບໍ່ມີ
ຍັງມີຢູ່. ເສັ້ນທາງສະເພາະຫຼາຍຈະຂ້າມເສັ້ນທາງສະເພາະໜ້ອຍລົງ. ເສັ້ນທາງທີ່ລະບຸອາດຈະເປັນ
ໄຟລ໌ສ່ວນບຸກຄົນ, ເຖິງແມ່ນວ່າໄຟລ໌ດັ່ງກ່າວຍັງບໍ່ທັນມີ.

ຖ້າຊັບສິນຖືກຕັ້ງແລະຕັ້ງໃຫມ່ຢູ່ໃນເສັ້ນທາງດຽວກັນທີ່ແນ່ນອນ, ຫຼັງຈາກນັ້ນທາງເລືອກທີ່ປາກົດ
ທີ່ຢູ່ໄກສຸດໄປທາງຂວາໃນເສັ້ນຄໍາສັ່ງແມ່ນເປັນອັນດັບຫນຶ່ງ.

Sandboxing ສໍາລັບການ ການເລັ່ງ
ຖ້າ​ຫາກ​ວ່າ​ທ່ານ​ຕ້ອງ​ການ​ເພື່ອ​ປ້ອງ​ກັນ makepp ຈາກ​ການ​ເສຍ​ເວ​ລາ​ການ​ປຸງ​ແຕ່ງ​ໄຟລ​໌​ທີ່​ທ່ານ​ຮູ້​ຈັກ​ແລ້ວ​
ທັນສະໄໝ (ໂດຍສະເພາະ, ໄຟລ໌ທີ່ສ້າງຂຶ້ນໂດຍເຄື່ອງມືສ້າງອື່ນນອກຈາກ makepp),
ຫຼັງຈາກນັ້ນ -- dont-build ເປັນ​ທາງ​ເລືອກ​ສໍາ​ລັບ​ທ່ານ​.

ໂດຍໄກກໍລະນີທົ່ວໄປທີ່ສຸດສໍາລັບການເພີ່ມປະສິດທິພາບດັ່ງກ່າວແມ່ນວ່າທ່ານຮູ້ວ່າທຸກສິ່ງທຸກຢ່າງບໍ່ແມ່ນ
ຢູ່ ຫຼື ລຸ່ມສຸດໄດເລກະທໍລີເລີ່ມຕົ້ນແມ່ນອັບເດດແລ້ວ. ນີ້ສາມາດຕິດຕໍ່ກັບ
makepp ໃຊ້ "-- dont-build /. --ເຮັດ-ສ້າງ .".

Sandboxing ສໍາລັບການ ພ້ອມກັນ ຂະບວນການ
ເຕັກນິກຫນຶ່ງທີ່ສາມາດຫຼຸດຜ່ອນການສ້າງ latency ແມ່ນການມີຂະບວນການ makepp ຫຼາຍເຮັດວຽກ
ຢູ່ເທິງຕົ້ນດຽວກັນ. ນີ້ແມ່ນຂ້ອນຂ້າງມີຄວາມຫຍຸ້ງຍາກໃນການຄຸ້ມຄອງຫຼາຍກ່ວາການນໍາໃຊ້ -j ທາງເລືອກ,
ແຕ່ມັນຍັງສາມາດມີປະສິດທິພາບຫຼາຍກວ່າເກົ່າເພາະວ່າ:

· ດ້ວຍ sandboxing, ຂະບວນການອາດຈະເຮັດວຽກຢູ່ໃນຫຼາຍ host, ຕົວຢ່າງ, ຜ່ານວຽກ
ລະບົບຄິວ. ເພີ່ມຂຶ້ນ -j limit ໃນທີ່ສຸດຊັບພະຍາກອນ CPU ຂອງ a
ເຈົ້າພາບດຽວ, ແລະແມ້ກະທັ້ງສາມາດຊັກຊ້າການກໍ່ສ້າງເນື່ອງຈາກຂະບວນການ forking ຫຼາຍເກີນໄປ.

· -j ໃນປັດຈຸບັນບໍ່ໄດ້ຂະຫນານບາງສ່ວນຂອງວຽກງານທີ່ໃຊ້ເວລາຂອງ makepp ເຊັ່ນການໂຫຼດ
makefiles, scanning, ການກໍ່ສ້າງ implicit dependencies ໃນຂະນະທີ່ scanning, ແລະການກວດສອບ
ການເພິ່ງພາອາໄສ.

ຄວາມສ່ຽງທີ່ໃຫຍ່ທີ່ສຸດກັບວິທີການນີ້ແມ່ນວ່າການກໍ່ສ້າງສາມາດກາຍເປັນ nondeterministic ຖ້າ
ຂະບວນການທີ່ອາດຈະໂຕ້ຕອບກັບກັນແລະກັນ. ນີ້ນໍາໄປສູ່ການສ້າງລະບົບ
ທີ່ຜະລິດຜົນໄດ້ຮັບທີ່ບໍ່ຖືກຕ້ອງເປັນໄລຍະໆ, ແລະບໍ່ມີກົນໄກງ່າຍໆທີ່ຈະກໍານົດວ່າເປັນຫຍັງ
ມັນ​ເກີດ​ຂື້ນ.

ເພື່ອແກ້ໄຂຄວາມສ່ຽງນີ້, ແນະນໍາໃຫ້ແບ່ງຕົ້ນໄມ້ລະຫວ່າງຂະບວນການພ້ອມກັນ
ເຊັ່ນວ່າຖ້າຂະບວນການໃດເຂົ້າເຖິງລະບົບໄຟລ໌ບໍ່ຖືກຕ້ອງ, ຄວາມຜິດພາດແມ່ນ
​ໄດ້​ຍົກ​ຂຶ້ນ​ຢ່າງ​ທັນ​ການ. ໂດຍປົກກະຕິ, ນີ້ແມ່ນສໍາເລັດໂດຍການມອບຫມາຍໃຫ້ແຕ່ລະຄົນ
ຂະບວນການພ້ອມໆກັນເປັນ "sandbox" ທີ່ມັນຖືກອະນຸຍາດໃຫ້ຂຽນ, ບ່ອນທີ່ sandboxes ທີ່ບໍ່ມີ
ສອງຂະບວນການພ້ອມກັນອາດຈະທັບຊ້ອນກັນ.

ນອກຈາກນັ້ນ, ແຕ່ລະຂະບວນການຫມາຍໃສ່ກ່ອງຊາຍຂອງຂະບວນການອື່ນໆທີ່ອາດຈະສອດຄ່ອງກັນ
ເປັນ "ບໍ່ອ່ານ." ຖ້າຂະບວນການໃດນຶ່ງອ່ານໄຟລ໌ທີ່ຂະບວນການພ້ອມກັນນັ້ນຮັບຜິດຊອບ
ສໍາ​ລັບ​ການ​ຂຽນ (ແລະ​ເພາະ​ສະ​ນັ້ນ​ຈຶ່ງ​ຍັງ​ບໍ່​ທັນ​ໄດ້​ຮັບ​ການ​ຂຽນ​)​, ຫຼັງ​ຈາກ​ນັ້ນ​ຄວາມ​ຜິດ​ພາດ​ໄດ້​ຖືກ​ຍົກ​ຂຶ້ນ​ມາ​
ທັນທີທັນໃດ.

Sandboxing ສໍາລັບການ Sequential ຂະບວນການ
ໃນເວລາທີ່ການກໍ່ສ້າງໄດ້ຖືກແບ່ງສ່ວນສໍາລັບຂະບວນການ makepp ພ້ອມກັນ, ປົກກະຕິແລ້ວຍັງມີ a
ການພົວພັນຕາມລໍາດັບລະຫວ່າງຄູ່ຂະບວນການຕ່າງໆ. ຕົວຢ່າງ, ອາດຈະມີ a
ອາຍແກັສຂະບວນການລວບລວມພ້ອມໆກັນ, ຕິດຕາມດ້ວຍຂະບວນການເຊື່ອມຕໍ່ດຽວທີ່ບໍ່ສາມາດເລີ່ມຕົ້ນໄດ້
ຈົນກ່ວາທັງຫມົດຂອງຂະບວນການລວບລວມໄດ້ສໍາເລັດ. ການພົວພັນຕາມລໍາດັບດັ່ງກ່າວຈະຕ້ອງເປັນ
ການບັງຄັບໃຊ້ໂດຍກົນໄກໃດກໍ່ຕາມແມ່ນ orchestrating ຂະບວນການ makepp ຕ່າງໆ (ຕົວຢ່າງ,
ລະບົບການຈັດແຖວວຽກ).

ໃນເວລາທີ່ຂະບວນການມີຄວາມສໍາພັນຕາມລໍາດັບທີ່ຮູ້ຈັກ, ປົກກະຕິແລ້ວບໍ່ຈໍາເປັນຕ້ອງຍົກຂຶ້ນມາ
ຄວາມຜິດພາດໃນເວລາທີ່ພວກເຂົາເຂົ້າເຖິງສ່ວນດຽວກັນຂອງຕົ້ນໄມ້, ເພາະວ່າຜົນໄດ້ຮັບແມ່ນຢ່າງໃດກໍ່ຕາມ
ກໍານົດ.

ຢ່າງໃດກໍ່ຕາມ, ໂດຍທົ່ວໄປແລ້ວມັນເປັນປະໂຫຍດທີ່ຈະລະບຸ -- dont-build ທາງ​ເລືອກ​ທີ່​ຂຶ້ນ​ກັບ​
process (ຂະບວນການເຊື່ອມຕໍ່ໃນຕົວຢ່າງຂອງພວກເຮົາ) ທີ່ແຈ້ງໃຫ້ມັນກ່ຽວກັບພື້ນທີ່ທີ່ມີແລ້ວ
ໄດ້​ຮັບ​ການ​ປັບ​ປຸງ​ໂດຍ​ຂະ​ບວນ​ການ prerequisite (ການ​ສັງ​ລວມ​ວຽກ​ເຮັດ​ງານ​ທໍາ​ໃນ​ຕົວ​ຢ່າງ​ຂອງ​ພວກ​ເຮົາ​)​. ໃນ​ນີ້
ລັກສະນະ, ພວກເຮົາຫຼີກເວັ້ນສ່ວນໃຫຍ່ຂອງການເຮັດວຽກທີ່ບໍ່ຈໍາເປັນຂອງເປົ້າຫມາຍການກໍ່ສ້າງ null ທີ່ພຽງແຕ່
ປັບປຸງ

ໃຊ້ makepp_sandboxes ອອນລາຍໂດຍໃຊ້ບໍລິການ onworks.net



ລ່າສຸດ Linux ແລະ Windows ໂຄງການອອນໄລນ໌