áá»áœááºá¯ááºá¡ááœáẠáááºá
áá¬áá±á¬ááºážáá±á¬ á¡ááŒá±á¡áá±áá
áºáá¯ááŸáá·áº áá¬áááºááŒá®ážááá±á¬áá»ááºáá
áºáá¯á¡ááœáẠáá¶á·ááá¯ážáá°ááŒá
áºáá¬áá¯á¶ááá¯á·ááᯠááŒá±á¬ááŒáá«áááºá
áááŒá¬áá±ážáá®á áá»áœááºá¯ááºááẠUEFI á០Linux ááᯠááá¯ááºááá¯áẠboot áá¯ááºááẠá
áááºáá°ážáá
áºáᯠááœá±ážáá±áá«áááºá
á¡áá¯ááºáá®áá¬ááẠá¡áá
áºááá¯ááºáá«á á€á¡ááŒá±á¬ááºážá¡áá¬á¡ááœáẠáááºá
áœá²á
á¬á¡á¯ááºáá»á¬ážá
áœá¬ááŸááááºá áá°ááá¯á·áá²á áá
áºáá±á¬ááºááᯠáááºááœá±á·ááá¯ááºáááºá
ááááºáá±á¬á· áá®ááŒá¿áá¬ááᯠááŒá±ááŸááºážááá¯á· áá»áœááºáá±á¬á·áºáá²á· ááŸá
áºááŸááºááá»á¬áž ááŒáá¯ážá
á¬ážááŸá¯ááœá±á áá¯á¶ážá ááá¬ážáááºááŒá
áºááœá¬ážáááºá
UEFI-Boot á á¡ááŸá áºáá¬áááŸá¬ ESP (EFI System Partition) á¡áááºážááá·áºááᯠ/boot directory ááŸáá·áº áá±á«ááºážá ááºáá¬ážáááºá á¡á²áá«ááœá±á kernels ááŸáá·áº bootstrap áá¯á¶áá»á¬ážá¡á¬ážáá¯á¶áž (initrd) ááẠUEFI ááẠexecutable files áá»á¬ážááá¯ááœáá·áºááá¯ááºááŒá®áž á¡áá°ážáááŒáá·áº system boot loaders áá»á¬ážááá¯ááœáá·áºááá¯ááºááá·áºáá°áá®áá±á¬ partition ááœááºáááºááŸááááºá ááá¯á·áá±á¬áº ááŒáá·áºáá»á®ááŸá¯áá»á¬ážá áœá¬ááœáẠLinux kernel ááá¯ááºááá¯ááºá UEFISTUB ááœá±ážáá»ááºááŸá¯ááŒáá·áº á á¯á ááºážáá¬ážááŒá®ážááŒá áºááŒá®ážá kernel ááá¯ááºááá¯ááºá UEFI á០á áááºááá¯ááºáááºááŒá áºáááºá
á€ááŒá±ááŸááºážáá»ááºááœáẠáááŸá áºááŒáá¯á·ááœááºá¡ááá¯ááºá¡ááá·áºáá áºáá¯ááŸáááẠ- ESP á¡áááºážááá·áºááᯠFAT32 ááœááºáá±á¬áºáááºááŒá¯áá¯ááºáá¬ážááŒá®ážá áááºážááẠhard links áá»á¬ážááá¯áááºáá®ážáááºáááŒá áºááá¯áẠ(initrd ááá¯ááœááºážáá¶ááá·áºá¡áá«ááœááºá áá áºááá¯á¶ááŸááºáááºáá®ážáá±ážááá·áº hard links áá»á¬áž) ááá¯áááºáá®ážáá¬ážáááºá áááºážááŸáá·áºáááºáááºááŒá®áž á¡áá°ážáááẠáá¬ááááºááŸá¯ áá áºá á¯á¶áá áºáᬠáááŸááá±ážáá±á¬áºáááºáž kernel á¡á áááºá¡ááá¯ááºážáá»á¬ážááᯠá¡ááºááááºáá¯ááºááá·áºá¡áá« á áá áºááááá±ážáá»ááºáá»á¬ážááᯠááŒááºááœá±á·ááááºááŸá¬ á¡ááœááºáá¬áá¬áááºááá¯ááºáá«...
áá±á¬ááºáá áºáááºážááŸááá«áá±ážáááºá
UEFI boot manager (OS bootloader ááᯠááŸááºáá¯á¶áááºááẠááá¯á¡ááºááá·áº áá áºáá¯áááºážáá±á¬) ááẠbootloaders/Linux kernels áá»á¬ážá¡ááŒáẠáááá¯ááºáá¬áá»á¬ážááá¯áááºáž áááºááá¯ááºáááºá ááá¯á·ááŒá±á¬áá·áº ááá·áºááœáẠ/boot ááŸáááá·áº ááá¯ááºá áá áºá¡ááœáẠdriver ááᯠáááºááá¯ááºááŒá®áž UEFI ááᯠá¡áá¯á¶ážááŒá¯á kernel ááᯠááá¯áá±áá¬á០ááá¯ááºááá¯ááºáááºááá¯ááºáááºá áá¬ááºáá±á¬ááºážááᯠESP partition ááœááºáá¬ážááŸáááẠááá¯á¡ááºáá«áááºá áá«á á¡ááŒááºážáá»ááºážá¡á¬ážááŒáá·áº GRUB ááá¯áá»áá¯áž bootloaders ááœá±áá¯ááºáá¬áá«á ááá¯á·áá±á¬áº áááºááŸá¬ážáááºááŸá¬ áááŒá¬ááá¡áá¯á¶ážááŒá¯ááá·áº GRUB áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážá¡á¬ážáá¯á¶ážááẠUEFI ááœááºááŸáááŒá®ážáá¬ážááŒá áºáááºá áááºážá áá±á«ááºážáá¯ááºáááºáá±áá»á¬ááœáẠááá¯ááááá»áá«áááºá ááá¯áá»ááºážááá¯á·áá±á¬ááºážáá¬á UEFI boot manager ááŸá¬ ááá»áá¯á·ááá á¹á ááœá±ááŸá¬ ááá¯ááá¯á·áá±á¬áẠá áœááºážáá±á¬ááºááá¯ááºáá«áá±ážáááºá
áá«áᬠááŸááá²á·ááŒá±ááŸááºážáá»ááºááá¯á·áááºááá±ááá·áº âBUTâ áá áºáá¯ááŸáááẠ(áá«ááŸááá¯ááºá á¡á²áá«á áá±á¬ááºááá¯ááºážááŸá¬ ááá¯ááŒá áºáá²á·áááº)á ááááºáá±á¬á· UEFI áá¬ááºáá±á¬ááºážá áá áºá á¡áá±á¬áºáá±ážááá¯ážááŸááºážáá«áááºá ááá¯ááºá áá áºáá áºáá¯ááᯠáááºáááºááŒááºáž ááá¯á·ááá¯áẠáá®ážááá·áºá ááºáá á¹á ááºážáá áºáá¯ááŸáá·áº áááá¯ááºáá¬ááᯠáá»áááºáááºááŒááºážáá²á·ááá¯á·áá±á¬ á¡áá¬áá»áá¯ážáááŸááá«á ááá¬ážááá¯ážáá»á¡ááẠMap ááŒáá·áº á áá áºáá±á«áºááá¯ááŸá¯áá áºáᯠááŸáááŒá®ážá áá¬ááºáá±á¬ááºážáá áºáŠážá á®ááᯠá¡ááŸáá·áºáá»áá±á«áºáᬠá¡áááºážáá¯á¶áž ááá·áºáá»á±á¬áºáá±á¬ á ááºáááááá¬áá»á¬ážá¡á¬ážáá¯á¶ážááŸáá·áº áá»áááºáááºááẠááŒáá¯ážá á¬ážáááºá áá¬ááºáá±á¬ááºážááẠá ááºáá á¹á ááºážááᯠáá±á¬ááºáá°ááá¯ááºáá²á·áá«á áá»áááºáááºááŸá¯ ááŸááºáááºážáá áºáᯠáááºáá®ážááŒá®áž ááŒá±áá¯á¶ááœá²ááŒááºážááᯠááŒá¯áá¯ááºáááºááŒá áºáááºá á€áááºááŸá¬ á¡áá áºáááºáá¬ážáá±á¬ áááá¯ááºáá¬ááᯠá¡ááŒá¬ážá¡áá¬á¡á¬ážáá¯á¶ážááŸáá·áº áá¯á¶á¡á á¯á¡áá±ážááœáẠá¡á ááŒá¯ááá·áºááẠá áááºááá¯á¡ááºááá»áŸááŸá¬ driver boot record ááœáẠ1 bit (LOAD_OPTION_FORCE_RECONNECT) ááᯠáááºááŸááºááŒá®áž UEFI ááẠáááºážááᯠloading áá¯ááºááŒá®ážáá±á¬áẠဠglobal remap ááᯠáá¯ááºáá±á¬ááºáááºááŒá áºáá«áááºá
áá«áá±ááá·áº áá®ááá¯áá¯ááºááá¯á·á ááááºáááœááºáá«áá°ážá standard efibootmgr utility (UEFI offload manager ááᯠconfigure áá¯ááºáááºá¡áá¯á¶ážááŒá¯áááº) ááẠဠbit ááᯠáááºááá¯á·áááºááŸááºáááẠ(ááá¯á·ááá¯ááºá áááºááá¯á·ááááá²á·áá«) ááẠááááá«á á¡áá±á¬áºáá±áž ááŸá¯ááºááœá±ážááŒá®áž á¡áá¹ááá¬ááºáá»á¬ážáá²á· áá¯ááºáááºážá ááºáá áºáá¯áá²á· áá»áœááºáá±á¬áºááá¯ááºááá¯áẠáááºáááºáá²á·ááá«áááºá
áá
áºááẠáááºááŒáá·áºáá¯ááºááẠááŒáá¯ážá
á¬ážáááŒáá·áº áááºážááá¶ááá¯ááºáá±á¬á·áá² ááá¬ážáááºááŒá
áºáá²á·áááºá
áááºáá±á«ááºážáá»á¬ážá áœá¬ áá¯ááºááœááºááœá¬ážáá±á¬áºáááºáž áá»áœááºá¯ááºááá±á¬ááºážááá¯ááŸá¯ááᯠáááºáá°áá»áŸ ááá¯áá áá¯ááºáá«á áááá»ááºá áááºááŒá±á¬áá·áº á¡áááºážá¡ááŒá áºáá¯ááºááᯠááŒáá·áºááá¯ááºáá±á¬á· ... á¡á²áá«ááᯠááœá²ááá¯ááºááŒá®áž áá®á¡ááºá¹áá«áááºááᯠáááºááá¯ááá·áºáááá²ááá¯áᬠáá°ážáá±á¬ááºááá¯ááºáááááº... "áá«á·áá°ážáá±á«áºááŸá¬" ááá¯á· áá®ááá¯áá»áá¯áž áá¬áá áºáá¯á០áááá·áºááœááºážáá² á¡áááºážá¡ááŒá áºááᯠáááºážááŒááºáá¬ážáá¬ááŒá±á¬áá·áºá browser ááœááºááá¯ááºááá¯ááºáá¯ááºá
áá« C (áááá¯ááááºážáááºážáá¬áá¬á
áá¬áž) ááᯠá¡áá±á«áºáá¶áá»áá» áááá±ááá·áº á¡áá®ážá
ááºáá¯á¶áž á¡ááŒá±áá
áºáᯠ( á¡áá»á¬ážá¡á¬ážááŒáá·áº copy-paste ) ááᯠáá¯á¶áá¯ááºáá²á·áááº... ááŒá®ážáá±á¬á· ááœá±ážááááẠ- á¡áááºážáá¯á¶ážáá±á¬á· á¡á²áá®á·ááŸá¬ á¡ááŸá¬ážá¡ááœááºážááœá± á¡áá»á¬ážááŒá®áž ááŸááá±á¬ááºážááŸáááá¯ááºááẠ(á¡ááŒá¬ážáá°áá²á· áááºážááŒááºááá¯á· áá«á¡áááºá ááŒáá¯ážá
á¬ážáá²á·áá¬á C code 10th áá±á¬ááºááŸá¬ ááŒá®ážááœá¬ážáá«ááŒá®) Pull Request áá¯ááºáá±ážáá«á·áááºá áá±á¬ááºážááŒá®á
ááá¯áá±áá¬ááœáẠTravis CI ááẠááœá²áá¯ááºáá±á¬ááºážááá¯ááŸá¯áá»á¬ážááᯠá á áºáá±ážáááºá¡ááœáẠáá°ážááœá²áá«ááŸááá¬áááºá ááŒá®ážáá±á¬á· áá«á·á¡ááŸá¬ážááœá±á¡á¬ážáá¯á¶ážááᯠáá¯á¶á·áá áá¯ááºáá¯ááºááŒá±á¬ááŒáááºá áá±á¬ááºážááŒá®á áááá¬ážáá±á¬á¡ááŸá¬ážáá»á¬ážááŸááá«áá áááºážááá¯ááŒá¯ááŒááºáááºáááá¯á¡ááºáá«- áá áºáááºá ááá±á¬ááºáá¬ááœááºá ááŸáá·áºá áá¯áá¹áá¡ááŒáááºááŒáá¯ážá á¬ážááŸá¯ááœááºáá¯ááºáááºá¡áá¯ááºáá¯ááºáá²á·ááẠ(áá«á·á¡ááœááºá¡á±á¬ááºááŒááºááŸá¯áá áºáá¯) á
ááá¯áááºážáááºážáá±á¬ááºážáááºá ááá±á¬ááºáá¬á០áááœááºáá²á áá±ááºáá® Linux ááŒáá·áºááŒá°ážááŸá¯á¡á¬ážáá¯á¶ážáá®ážáá«ážááœáẠá¡áá¯á¶ážááŒá¯ááá·áº á¡áá¯á¶ážáááºááŸá¯áá áºáá¯á¡ááŒá Ạá¡ááœááºááŸááºáááºáá±á¬ Pull Request ááᯠáá±á¬áºáááºáá¯ááºáá²á·áááºá
áá¬áá¬á áá¬ážááᯠááááºááááá²á áá¬ááá¯á០ááááºááŸááºáá² (ááŸá®ááá¯ááŸá¯ááœá±áᬠá á¯á ááºážááŸá¯á¡ááœáẠá á¬ááŒáá·áºááá¯ááºá¡áááºážááẠááá¯á¡ááºáá«áááº)á compiler ááᯠáááºáá±á¬á·á០ááááºáááºá á±áá²á ááá¯ážááŸááºážá áœá¬ á¡áá¯ááºáá¯ááºááŒá®áž á¡áá¯á¶ážáááºáá²á· á¡ááºá¹áá«áááºáá áºáá¯ááᯠááá¯ážááá¯ážááŸááºážááŸááºáž âáá¯ááºáá¯ááºááŒááºážâ ááá¯áá²á·á¡áá»ááºááŒá±á¬áá·áº áá»áœááºá á¡á¶á·á¡á¬ážááá·áºáááá«áááºá ááá±á¬ááºáá¬
ááá¯á·áá±á¬áºáááºážá áá»áœááºá¯ááºááá±á¬ááºážááá¯áá»ááºááẠáááºá 19 áááºá 2019 áá¯ááŸá áºááááºážá áá¯á¶á·ááŒááºááŸá¯áááŸááá±ážáá²á áááºážááᯠáá»áœááºá¯ááºá áááºáá±á·áá±ááŒá®ááŒá áºáááºá
áá«áá±ááá·áº ááá±á·á áá®áá±á¬ááºážááá¯áá»ááºááᯠáá¬á áá¬ááᯠááá·áºáá±ážááá¯ááºáááºá
áá«ááᯠáá«á·áá¬ááºáááºážá áá¬áá²á ááá¯á·á¡ááŒááºá áá±ááºáá®áááºážááá¬áá»á¬ážááá±á¬ááºá¡ááœááºážá ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯áááááá¬áá»á¬ážááŸáá·áº ááŸá®ááá¯ááŸá¯áá»á¬ážá¡á¬áž ááŒááºááœááºážááœáẠá¡áá¯á¶ážáááŒá¯áá² ááá±á¬ááºáá¬ááœáẠáá¯ááºá¡á á áºá¡ááŸááºááᯠáá±ážáá¬ážááá¯ááºáá±ááŒá®ááŒá áºáááºáá°áá±á¬á¡áá»ááºááᯠáá°ááŒá±á¬áá±áá«áááºá
ááá¯á·á¡ááŒááºá áá«áááºáá¶ááááºá á€áááºááŸá¬ áá°áááá»á¬ážáá±á¬ (á¡áááºážáá¯á¶áž áá»ááºážááŒá±á¬ááºážáá±á¬ á ááºááá¯ááºážáá»á¬ážááœááº) á¡áá¯á¶ážáááºááŸá¯áá»á¬ážá¡ááœáẠáá»áœááºá¯ááºá áá¯áááááŒá±á¬áẠáá±á¬ááºážááá¯áá»ááºááŒá áºáá±ááŒá®ááŒá áºáááºá áá±á¬ááºáá¯á¶ážá¡ááŒáááºá SyncThing áááºá¡ááºáá¬áá±á·á áºááŸá áááºáááºá¡áá»áá¯á·á áá±á¬áºááŒááŸá¯ááᯠááŒááºááẠáá»áœááºá¯ááºááá±á¬ááºážááá¯ááŸá¯ááẠáá»áœááºá¯ááºáá¯á¶ážáááááá±á¬ áááºáááºážáá»ááºááœáẠáá áºááŒá±á¬ááºážáááºážáááºážááŒááºááŸá¯ááᯠááŒá áºáá±á«áºá á±áá«áááºá
á
á¬áááºážááœááºážá¡áá¯á¶ážááŒá¯áá°áá»á¬ážáᬠá
á
áºáááºážááœáẠáá«áááºááá¯ááºáá«áááºá
ááá¯áá±ážááá·áºáá¬áž ááá±ážáá°ážáá¬ážá
-
áá¯ááºáá²á·
-
áááá»áá¯ážáááºáá
á¡áá¯á¶ážááŒá¯áá° 294 áŠáž áá²áá±ážáá²á·áááºá áá¯á¶ážá
áœá²áá° áá áŠáž ááŸá±á¬ááºáá±áá²á·áá«áááºá
source: www.habr.com