ພາບລວມຂອງ Fedora Linux Kernel
ກຳນົດການອັບເດດ
Fedora Linux kernel ແມ່ນຕິດຕາມ kernel ຕົ້ນສະບັບ (upstream releases) ຢ່າງໃກ້ຊິດ. ເພື່ອເບິ່ງເວີຊັນປະຈຸບັນໃນ Fedora, ກວດເບິ່ງໄດ້ທີ່ແອັບພລິເຄຊັນແພັກເກດ.
ເວີຊັນທີ່ໝັ້ນຄົງ (Stable Releases)
ເວີຊັນທີ່ໝັ້ນຄົງຂອງ Fedora ຈະໄດ້ຮັບການອັບເດດ kernel ສອງຮູບແບບ.
ການອັບເດດ kernel ແບບໝັ້ນຄົງ
ຊຸມຊົນ kernel ຕົ້ນສະບັບ (upstream) ຈະສະໜັບສະໜູນເວີຊັນຫຼັກຫຼ້າສຸດດ້ວຍການອັບເດດແບບໝັ້ນຄົງ (ເວີຊັນ 6.y.z). ການອັບເດດເຫຼົ່ານີ້ຈະຖືກປ່ອຍອອກມາປະມານອາທິດລະຄັ້ງ, ແຕ່ບາງຄັ້ງອາດຈະຖີ່ ຫຼື ຫ່າງກວ່ານັ້ນ. ເມື່ອຊຸມຊົນ kernel ຕົ້ນສະບັບປ່ອຍເວີຊັນທີ່ໝັ້ນຄົງແລ້ວ, Fedora ຈະທຳການບິວດ໌ ແລະ ສົ່ງມັນເປັນການອັບເດດໃນ Bodhi. ໂດຍປົກກະຕິແລ້ວ ການອັບເດດເຫຼົ່ານີ້ຈະຢູ່ໃນ Bodhi ເພື່ອທົດສອບເປັນເວລາຫຼາຍມື້ ກ່ອນທີ່ຈະຖືກສົ່ງໄປຍັງຄັງເກັບການອັບເດດແບບໝັ້ນຄົງ.
ການອັບເດດ kernel ເວີຊັນຫຼັກ
Linux kernel ຈະປ່ອຍເວີຊັນຫຼັກໃໝ່ (ເວີຊັນ 6.y) ທຸກໆສອງສາມເດືອນ. ເມື່ອມີການປ່ອຍ, Fedora ຈະອັບເດດເປັນເວີຊັນຫຼັກໃໝ່ ຫຼັງຈາກທີ່ມີເວີຊັນໝັ້ນຄົງຈາກຕົ້ນສະບັບອອກມາສອງສາມຄັ້ງ. ເມື່ອສົ່ງການອັບເດດໄປທີ່ Bodhi, ຈະໃຫ້ເວລາໃນການທົດສອບຫຼາຍກວ່າການອັບເດດແບບໝັ້ນຄົງ ເພື່ອໃຫ້ແນ່ໃຈວ່າຈະບໍ່ມີບັນຫາການຖົດຖອຍ (regression) ທີ່ຮ້າຍແຮງ.
ເວີຊັນສຳລັບການພັດທະນາ
ເວີຊັນສຳລັບການພັດທະນາຂອງ Fedora ປະກອບມີ Rawhide ແລະ Branched release.
Rawhide
Rawhide kernel ແມ່ນ git snapshot ຫຼ້າສຸດຈາກ kernel.org tree ຂອງ Linus. ໂດຍຈະມີການບິວດ໌ snapshot ໃໝ່ເປັນປະຈຳ (ເກືອບທຸກມື້).
Branched
Branched releases ຈະໄດ້ຮັບການອັບເດດໃນໄລຍະທີ່ຫ່າງກວ່າ Rawhide. ໃນໄລຍະທຳອິດຂອງ Branched release, ໂດຍປົກກະຕິແລ້ວມັນຈະໃຊ້ kernel ເວີຊັນກ່ອນການປ່ອຍ (pre-release), ດັ່ງນັ້ນແຕ່ລະ Release Candidate (RC) ຈະຖືກບິວດ໌ສຳລັບ Branched releases. ເມື່ອ kernel ຖືກປ່ອຍອອກມາແລ້ວ, ມັນຈະໄດ້ຮັບການອັບເດດແບບໝັ້ນຄົງ ຄືກັນກັບເວີຊັນ Fedora ທີ່ໝັ້ນຄົງທົ່ວໄປ.
Debug Kernels
Linux kernel ມີຕົວເລືອກການຕັ້ງຄ່າຈຳນວນໜຶ່ງເພື່ອເຮັດໃຫ້ການກວດສອບບັນຫາ (debugging) ງ່າຍຂຶ້ນ. ເຖິງຢ່າງໃດກໍຕາມ, ບາງຕົວເລືອກເຫຼົ່ານີ້ອາດສົ່ງຜົນຕໍ່ປະສິດທິພາບ ດັ່ງນັ້ນ Fedora ຈຶ່ງບໍ່ໄດ້ເປີດໃຊ້ງານພວກມັນສະເໝີໄປ. ເມື່ອຕົວເລືອກການ debug ຖືກປິດໄວ້ໃນແພັກເກດ kernel, ຈະມີແພັກເກດ kernel-debug ແຍກຕ່າງຫາກທີ່ເປີດໃຊ້ງານຕົວເລືອກເຫຼົ່ານັ້ນ.
Rawhide
Rawhide kernels ຈະເປີດໃຊ້ງານຕົວເລືອກ debugging. ເຖິງຢ່າງໃດກໍຕາມ, ແຕ່ລະ release candidate kernel ຈະຖືກບິວດ໌ໂດຍປິດຕົວເລືອກ debugging ໄວ້. Release candidate kernels ສາມາດສັງເກດໄດ້ຈາກຊ່ອງ release ຂອງພວກມັນ. ຕົວຢ່າງ: kernel-5.19.0-0.rc7.20220722git68e77ffbfd06.56.fc37 ແມ່ນ release candidate kernel ສຳລັບ Fedora 37.
ນະໂຍບາຍ
ໄດຣເວີທີ່ຢູ່ນອກ Tree (Out-of-tree Drivers)
ວິທີທີ່ງ່າຍທີ່ສຸດຄືການເຮັດໃຫ້ໄດຣເວີຖືກລວມເຂົ້າໃນ kernel ຕົ້ນສະບັບຂອງ Linus. Fedora ຈະທຳການ rebase ໄປຫາເວີຊັນຕົ້ນສະບັບໃໝ່ໆຢູ່ສະເໝີ, ດັ່ງນັ້ນຈຶ່ງໄດ້ຮັບການປ່ຽນແປງເຫຼົ່ານີ້ "ແບບຟຣີໆ" ໂດຍບໍ່ຕ້ອງເພີ່ມພາລະໃຫ້ກັບຜູ້ເບິ່ງແຍງ Fedora kernel.
ການເພີ່ມໄດຣເວີພາຍນອກເຂົ້າໃນ Fedora kernel ທີ່ບໍ່ໄດ້ຮັບການຍອມຮັບໃນຕົ້ນສະບັບ (upstream) ນັ້ນ ຕ້ອງໃຊ້ຄວາມພະຍາຍາມຢ່າງຕໍ່ເນື່ອງຈາກທີມງານ Fedora kernel, ດັ່ງນັ້ນ ຖ້າເປັນໄປໄດ້ ພວກເຮົາຈະພະຍາຍາມຫຼີກລ່ຽງການເຮັດແບບນັ້ນ. ໃນບາງກໍລະນີທີ່ຈຳເປັນ, ຕ້ອງມີເງື່ອນໄຂຫຼາຍຢ່າງທີ່ຕ້ອງປະຕິບັດຕາມ.
-
ຕ້ອງມີຄວາມຕ້ອງການທີ່ສົມເຫດສົມຜົນສຳລັບຟີເຈີນັ້ນ ເພື່ອໃຫ້ພວກເຮົາຮັບພາລະໃນການເບິ່ງແຍງໂຄ້ດ ຈົນກວ່າມັນຈະຖືກລວມເຂົ້າໃນຕົ້ນສະບັບ.
-
ຜ່ານການກວດສອບຄວາມຖືກຕ້ອງຂັ້ນພື້ນຖານ (ໄດ້ຮັບການກວດສອບໂດຍຜູ້ເບິ່ງແຍງ Fedora kernel ຢ່າງໜ້ອຍໜຶ່ງຄົນ).
-
ມີນັກພັດທະນາຕົ້ນສະບັບ (upstream) ທີ່ກຳລັງພະຍາຍາມເຮັດໃຫ້ໂຄ້ດຂອງພວກເຂົາຖືກລວມເຂົ້າໃນ tree ຂອງ Linus ຢ່າງຈິງຈັງ.
-
ມີນັກພັດທະນາ Fedora ທີ່ຮັບຜິດຊອບໃນການເບິ່ງແຍງໃຫ້ມັນທັນສະໄໝຢູ່ສະເໝີໃນ Fedora.
-
ບໍ່ສ້າງພາລະເພີ່ມເຕີມໃຫ້ກັບຜູ້ເບິ່ງແຍງ Fedora kernel ຢ່າງເຫັນໄດ້ຊັດ. ໂຄ້ດທີ່ຕ້ອງໄດ້ຮັບການແກ້ໄຂຢູ່ເລື້ອຍໆ ມັກຈະຖືກຍົກເລີກໃນທີ່ສຸດ.
-
ບໍ່ມີການເພີ່ມ system calls ໃໝ່ ຫຼື ຄຸນລັກສະນະທີ່ກຳນົດ ABI ທີ່ຄ້າຍຄືກັນ. ອັນນີ້ແມ່ນເພື່ອຫຼີກລ່ຽງສະຖານະການທີ່ອາດຈະເກີດຄວາມບໍ່ເຂົ້າກັນລະຫວ່າງ distros ແລະ ຕົ້ນສະບັບ.
-
ວິທີການສົ່ງອອກ (export) ສັນຍະລັກ (symbol) ຕ້ອງໄດ້ຮັບການຍອມຮັບຈາກຕົ້ນສະບັບກ່ອນ. ເຊິ່ງລວມມີ:
-
ການເພີ່ມ EXPORT_SYMBOL ເພື່ອສົ່ງອອກບາງຢ່າງທີ່ກ່ອນໜ້ານີ້ບໍ່ໄດ້ຖືກສົ່ງອອກ
-
ການປ່ຽນ EXPORT_SYMBOL_GPL ເປັນ EXPORT_SYMBOL
-
ການປ່ຽນ EXPORT_SYMBOL ເປັນ EXPORT_SYMBOL_GPL
-
-
ໃນກໍລະນີທີ່ຫາຍາກທີ່ພວກເຮົາເພີ່ມການ export ທີ່ບໍ່ໄດ້ຢູ່ໃນຕົ້ນສະບັບ, ພວກເຮົາຈະໃຊ້ EXPORT_SYMBOL_GPL ເພື່ອຄວາມປອດໄພ. ອັນນີ້ເຮັດຂຶ້ນສ່ວນໜຶ່ງເພື່ອເປັນການປ້ອງກັນບໍ່ໃຫ້ໂມດູນຈາກພາກສ່ວນທີສາມນຳພວກມັນໄປໃຊ້ (ເນື່ອງຈາກພວກມັນອາດຈະຖືກຖອນອອກໃນອະນາຄົດ). ຂໍ້ຍົກເວັ້ນດຽວສຳລັບທຸກຂໍ້ທີ່ກ່າວມາຂ້າງເທິງ ຄືໃນກໍລະນີຂອງໂຄ້ດໃໝ່ທີ່ຍັງບໍ່ທັນຖືກລວມເຂົ້າໃນຕົ້ນສະບັບທີ່ກຳລັງຖືກເພີ່ມເຂົ້າໄປ. ສັນຍະລັກໃໝ່ຈະຖືກສົ່ງອອກຕາມຄວາມຕັ້ງໃຈຂອງຜູ້ຂຽນ.
Staging
ໄດຣເວີໃນໄດເຣັກທໍຣີ staging ຂອງ Linux kernel ເປັນທີ່ຮູ້ກັນດີວ່າຢູ່ໃນສະຖານະທີ່ຍັງບໍ່ສົມບູນ. ສຳລັບໄດຣເວີສ່ວນໃຫຍ່ເຫຼົ່ານີ້, ທີມງານ kernel ຖືວ່າມັນບໍ່ປອດໄພທີ່ຈະບິວດ໌ ແລະ ສົ່ງມອບໃຫ້ຜູ້ໃຊ້. ພວກເຮົາບໍ່ມີຄວາມໝັ້ນໃຈໃນໂຄ້ດທີ່ມີຢູ່ ແລະ ບໍ່ມີເວລາໃນການກວດສອບບັນຫາໃນໄດຣເວີທີ່ຮູ້ກັນວ່າມີບັນຫາ.
ເຊັ່ນດຽວກັບທຸກໆນະໂຍບາຍ, ຍ່ອມມີຂໍ້ຍົກເວັ້ນ. Fedora ໄດ້ສົ່ງມອບໄດຣເວີ staging ບາງຕົວໃນເວລານີ້ສຳລັບອຸປະກອນຮາດແວຕ່າງໆ. ເພື່ອໃຫ້ທີມງານ Fedora kernel ເປີດໃຊ້ງານໄດຣເວີ staging, ຕ້ອງປະຕິບັດຕາມເງື່ອນໄຂດັ່ງຕໍ່ໄປນີ້:
-
ຕ້ອງມີການກວດສອບ ແລະ ປັບປຸງໂຄ້ດຢ່າງຈິງຈັງໃນຕົ້ນສະບັບ. ນີ້ໝາຍເຖິງການແກ້ໄຂຕົວຈິງ, ບໍ່ແມ່ນພຽງແຕ່ການປ່ຽນແປງຮູບແບບຂອງໂຄ້ດ.
-
ຕ້ອງມີຜູ້ປະກອບສ່ວນທີ່ເຕັມໃຈຈະຮັບຜິດຊອບລາຍງານບັນຫາ (bug reports) ແລະ ປະສານງານກັບຕົ້ນສະບັບ.
-
ຜູ້ປະກອບສ່ວນຕ້ອງມີສ່ວນຮ່ວມຢ່າງຈິງຈັງໃນການປັບປຸງໄດຣເວີໃນຕົ້ນສະບັບ.
-
ໄດຣເວີຕ້ອງບໍ່ສ້າງພາລະທີ່ບໍ່ຈຳເປັນໃຫ້ກັບທີມງານ kernel. ນີ້ໝາຍຄວາມວ່າ ຫາກມີລາຍງານບັນຫາຈຳນວນຫຼາຍທີ່ເກີດຈາກໄດຣເວີ, ແຕ່ການແກ້ໄຂໃນຕົ້ນສະບັບບໍ່ເກີດຂຶ້ນໄວພໍ.
-
ຕ້ອງເຂົ້າໃຈວ່າ ຫາກບໍ່ສາມາດປະຕິບັດຕາມເງື່ອນໄຂເຫຼົ່ານີ້ໄດ້, ຫຼື ໃນທີ່ສຸດກໍບໍ່ສາມາດເຮັດຕາມໄດ້, ໄດຣເວີຈະຖືກປິດໃຊ້ງານ.
ຟີເຈີທີ່ຕິດຕາມາ (Builtin Features)
ໃນບາງຄັ້ງ, ຜູ້ເບິ່ງແຍງ Fedora kernel ຈະໄດ້ຮັບການຮ້ອງຂໍໃຫ້ບິວດ໌ບາງຢ່າງເຂົ້າໄປໃນ kernel ເລີຍ. ນັ້ນໝາຍຄວາມວ່າ ຟັງຊັນນັ້ນຈະຖືກລວມເຂົ້າໃນໄຟລ໌ vmlinux ທີ່ທຸກເຄື່ອງຂອງ Fedora ໃຊ້, ແທນທີ່ຈະຖືກບິວດ໌ເປັນໂມດູນທີ່ຈະຖືກໂຫຼດເມື່ອຈຳເປັນເທົ່ານັ້ນ. ເນື່ອງຈາກວ່າມັນຈະຖືກໂຫຼດໃນທຸກໆເຄື່ອງ, ພວກເຮົາຈຶ່ງພະຍາຍາມບິວດ໌ຟັງຊັນຕ່າງໆເປັນໂມດູນໃຫ້ຫຼາຍທີ່ສຸດເທົ່າທີ່ຈະເຮັດໄດ້. ໃນຂະນະທີ່ຄົນໜຶ່ງອາດຕ້ອງການໄດຣເວີສຳລັບກາດ ATI, ອີກຄົນໜຶ່ງອາດຈະບໍ່ຕ້ອງການ, ແລະ ການມີສິ່ງນັ້ນບິວດ໌ເຂົ້າໃນ kernel ຈະເປັນການສິ້ນເປືອງໂດຍບໍ່ມີເຫດຜົນ.
ບໍ່ມີເກນທີ່ກຳນົດໄວ້ຕາຍຕົວວ່າສິ່ງໃດຄວນຈະເປັນ built-in ຫຼື ບໍ່, ແຕ່ໂດຍທົ່ວໄປແລ້ວຈະປະຕິບັດຕາມແນວທາງດັ່ງນີ້:
-
ຕົວເລືອກນັ້ນບໍ່ສາມາດບິວດ໌ເປັນໂມດູນໄດ້ ແລະ ມີການໃຊ້ງານຢ່າງແຜ່ຫຼາຍ
-
ຕົວເລືອກນັ້ນບໍ່ແມ່ນໄດຣເວີ/ລະບົບໄຟລ໌ ແລະ ຖືກໃຊ້ໂດຍບາງຢ່າງທີ່ເປັນຄ່າເລີ່ມຕົ້ນຂອງ Fedora
-
ຕົວເລືອກນັ້ນແມ່ນໄດຣເວີ ແລະ ຖືກໃຊ້ໂດຍເຄື່ອງຫຼາກຫຼາຍປະເພດ (ໄດຣເວີຄີບອດ/ເມົ້າ, ການຮອງຮັບ VT)
-
ຕົວເລືອກນັ້ນແມ່ນລະບົບໄຟລ໌ ແລະ ຖືກໃຊ້ໂດຍທຸກເຄື່ອງ ຫຼື ເປັນລະບົບໄຟລ໌ເລີ່ມຕົ້ນຂອງ Fedora (tmpfs, ext4).
ອີກເທື່ອໜຶ່ງ, ສິ່ງທີ່ກ່າວມາຂ້າງເທິງແມ່ນແນວທາງທົ່ວໄປ, ແຕ່ສ່ວນໃຫຍ່ແລ້ວ ພວກເຮົາພະຍາຍາມຈຳກັດຂະໜາດໂດຍລວມຂອງ vmlinux ທີ່ຖືກໂຫຼດໃຫ້ມີພຽງແຕ່ຊຸດຟັງຊັນຫຼັກເທົ່ານັ້ນ.
ຫາກທ່ານພົບວ່າຕົວເລືອກການຕັ້ງຄ່າຂອງ Fedora ບໍ່ພຽງພໍກັບຄວາມຕ້ອງການຂອງທ່ານ, ທ່ານສາມາດບິວດ໌ kernel ໃໝ່ ແລະ ປ່ຽນຕົວເລືອກໄດ້ຕາມທີ່ທ່ານເຫັນສົມຄວນ. ເບິ່ງເອກະສານກ່ຽວກັບ ການບິວດ໌ custom kernel.
ການມີສ່ວນຮ່ວມ
ຫາກທ່ານສົນໃຈທີ່ຈະປະກອບສ່ວນເຂົ້າໃນການພັດທະນາ ແລະ ການເບິ່ງແຍງ Fedora kernel, ສາມາດເບິ່ງຂໍ້ມູນເພີ່ມເຕີມໄດ້ທີ່ kernel wiki.
ລາຍຊື່ຜູ້ຮັບເມລ (Mailing Lists)
ລາຍຊື່ຜູ້ຮັບເມລ Fedora kernel ແມ່ນສຳລັບຫົວຂໍ້ kernel ທີ່ກ່ຽວຂ້ອງກັບ Fedora ເທົ່ານັ້ນ. ເຊິ່ງລວມເຖິງການຈັດການແພັກເກດສະເພາະຂອງ Fedora ແລະ ການຕັ້ງຄ່າ kernel. ສຳລັບການສົນທະນາກ່ຽວກັບ Linux ໂດຍທົ່ວໄປ, ໃຫ້ເບິ່ງທີ່ Kernelnewbies mailing lists ຫຼື Linux Kernel mailing lists.
ທ່ານສາມາດສະໝັກຮັບຂໍ້ມູນຈາກລາຍຊື່ຜູ້ຮັບເມລ Fedora kernel ແລະ ເບິ່ງບ່ອນເກັບຂໍ້ມູນເກົ່າໄດ້ທີ່ Hyperkitty.
IRC
ຜູ້ໃຊ້ທີ່ສົນໃຈໃນ Fedora kernel ສາມາດເຂົ້າຮ່ວມໄດ້ທີ່ຊ່ອງ #fedora-kernel ໃນ freenode.
ເຫັນຄຳຜິດ, ມີບາງຢ່າງຂາດຫາຍໄປ ຫຼື ຫຼ້າສະໄໝ, ຫຼື ມີສິ່ງອື່ນໃດທີ່ສາມາດປັບປຸງໄດ້ບໍ່? ແກ້ໄຂເອກະສານນີ້ໄດ້ທີ່ https://forge.fedoraproject.org/docs/quick-docs.
Want to help? Learn how to contribute to Fedora Docs ›