ಲಿನಕ್ಸ್ ಕರ್ನಲ್‌ಗೆ ರಸ್ಟ್ ಡೆವಲಪ್‌ಮೆಂಟ್ ಟೂಲ್‌ಗಳನ್ನು ಸೇರಿಸುವ ಸಮಸ್ಯೆಯನ್ನು ಚರ್ಚಿಸುವ ಪ್ರಸ್ತಾಪ

ನಿಕ್ ಡೆಸಾಗ್ನಿಯರ್ (ನಿಕ್ ಡೆಸಾಲ್ನಿಯರ್ಸ್), ಒದಗಿಸಲು Google ನಲ್ಲಿ ಕೆಲಸ ಮಾಡುವವರು ಬೆಂಬಲ ಕ್ಲಾಂಗ್ ಕಂಪೈಲರ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಲಿನಕ್ಸ್ ಕರ್ನಲ್ ಅನ್ನು ನಿರ್ಮಿಸುವುದು ಮತ್ತು ಸಹಾಯ ಮಾಡುತ್ತಿದೆ ರಸ್ಟ್ ಕಂಪೈಲರ್‌ನಲ್ಲಿ ದೋಷಗಳನ್ನು ಸರಿಪಡಿಸಿ, ಸೂಚಿಸಲಾಗಿದೆ ಸಮ್ಮೇಳನದಲ್ಲಿ ಹಿಡಿದಿಟ್ಟುಕೊಳ್ಳಿ ಲಿನಕ್ಸ್ ಪ್ಲಂಬರ್ಸ್ ಕಾನ್ಫರೆನ್ಸ್ 2020 ರಸ್ಟ್‌ನಲ್ಲಿ ಕರ್ನಲ್ ಘಟಕಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಲು ಸಾಧ್ಯವಾಗುವಂತೆ ಚರ್ಚಿಸಲು ಅಧಿವೇಶನ. ನಿಕ್ LLVM ಗೆ ಮೀಸಲಾಗಿರುವ ಮೈಕ್ರೋ-ಕಾನ್ಫರೆನ್ಸ್ ಅನ್ನು ಆಯೋಜಿಸುತ್ತಿದ್ದಾರೆ ಮತ್ತು ಕರ್ನಲ್‌ಗೆ ರಸ್ಟ್ ಬೆಂಬಲದ ಸಂಭವನೀಯ ಏಕೀಕರಣದ ತಾಂತ್ರಿಕ ಅಂಶಗಳನ್ನು ಚರ್ಚಿಸುವುದು ಒಳ್ಳೆಯದು ಎಂದು ನಂಬುತ್ತಾರೆ (ಅವರು ಈಗಾಗಲೇ KBuild ಗಾಗಿ ಕೆಲಸ ಮಾಡುವ ಮೂಲಮಾದರಿಯನ್ನು ಸಿದ್ಧಪಡಿಸಿದ್ದಾರೆ) ಮತ್ತು ಅಂತಹ ಬೆಂಬಲವು ಅಗತ್ಯವಿದೆಯೇ ಎಂಬುದನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಿ. ಎಲ್ಲವನ್ನೂ ಸೇರಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ರಸ್ಟ್ ಬಳಕೆಯ ಮೇಲೆ ಯಾವ ನಿರ್ಬಂಧಗಳನ್ನು ಒಪ್ಪಿಕೊಳ್ಳಬೇಕು.

ಓಪನ್ ಸೋರ್ಸ್ ಶೃಂಗಸಭೆ ಮತ್ತು ಎಂಬೆಡೆಡ್ ಲಿನಕ್ಸ್ ಸಮ್ಮೇಳನದಲ್ಲಿ ಇತ್ತೀಚಿನ ಚರ್ಚೆಯಲ್ಲಿ, ಲಿನಸ್ ಟೊರ್ವಾಲ್ಡ್ಸ್ ಅನ್ನು ನಾವು ನೆನಪಿಸಿಕೊಳ್ಳೋಣ ಅದನ್ನು ತಳ್ಳಿಹಾಕಲಿಲ್ಲ ರಸ್ಟ್‌ನಂತಹ ಭಾಷೆಗಳಲ್ಲಿ ಕೋರ್ ಅಲ್ಲದ ಕರ್ನಲ್ ಉಪವ್ಯವಸ್ಥೆಗಳ (ಉದಾಹರಣೆಗೆ, ಡ್ರೈವರ್‌ಗಳು) ಅಭಿವೃದ್ಧಿಗಾಗಿ ಬೈಂಡಿಂಗ್‌ಗಳ ಹೊರಹೊಮ್ಮುವಿಕೆ. ರಸ್ಟ್‌ನಲ್ಲಿ ಡ್ರೈವರ್‌ಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುವ ಸಾಮರ್ಥ್ಯವು ಕಡಿಮೆ ಪ್ರಯತ್ನದೊಂದಿಗೆ ಸುರಕ್ಷಿತ ಮತ್ತು ಉತ್ತಮ ಡ್ರೈವರ್‌ಗಳನ್ನು ರಚಿಸಲು ನಮಗೆ ಅನುಮತಿಸುತ್ತದೆ, ಮುಕ್ತಗೊಳಿಸಿದ ನಂತರ ಮೆಮೊರಿ ಪ್ರವೇಶ, ಶೂನ್ಯ ಪಾಯಿಂಟರ್ ಡಿರೆಫರೆನ್ಸ್ ಮತ್ತು ಬಫರ್ ಓವರ್‌ರನ್‌ಗಳಂತಹ ಸಮಸ್ಯೆಗಳಿಲ್ಲ. ಈ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಈಗಾಗಲೇ ಹಲವಾರು ಮೂರನೇ ವ್ಯಕ್ತಿಯ ಯೋಜನೆಗಳಿವೆ:

  • "ಫಿಶ್ ಇನ್ ಎ ಬ್ಯಾರೆಲ್" ಕಂಪನಿಯ ಡೆವಲಪರ್‌ಗಳು ತಯಾರಾದ ರಸ್ಟ್ ಭಾಷೆಯಲ್ಲಿ Linux ಕರ್ನಲ್‌ಗಾಗಿ ಲೋಡ್ ಮಾಡಬಹುದಾದ ಮಾಡ್ಯೂಲ್‌ಗಳನ್ನು ಬರೆಯಲು ಟೂಲ್‌ಕಿಟ್, ಸುರಕ್ಷತೆಯನ್ನು ಹೆಚ್ಚಿಸಲು ಇಂಟರ್‌ಫೇಸ್‌ಗಳು ಮತ್ತು ಕರ್ನಲ್ ರಚನೆಗಳ ಮೇಲೆ ಅಮೂರ್ತ ಪದರಗಳ ಗುಂಪನ್ನು ಬಳಸುತ್ತದೆ. ಉಪಯುಕ್ತತೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಕರ್ನಲ್ ಹೆಡರ್ ಫೈಲ್‌ಗಳ ಆಧಾರದ ಮೇಲೆ ಲೇಯರ್‌ಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ರಚಿಸಲಾಗುತ್ತದೆ ಬೈಂಡ್ಜೆನ್. ಪದರಗಳನ್ನು ನಿರ್ಮಿಸಲು ಕ್ಲಾಂಗ್ ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಇಂಟರ್‌ಲೇಯರ್‌ಗಳ ಜೊತೆಗೆ, ಜೋಡಿಸಲಾದ ಮಾಡ್ಯೂಲ್‌ಗಳು ಸ್ಟ್ಯಾಟಿಕ್ಲಿಬ್ ಪ್ಯಾಕೇಜ್ ಅನ್ನು ಬಳಸುತ್ತವೆ.
  • ಹಾಂಗ್ ಕಾಂಗ್‌ನ ಚೀನೀ ವಿಶ್ವವಿದ್ಯಾಲಯದ ಸಂಶೋಧಕರು ಅಭಿವೃದ್ಧಿ ರಸ್ಟ್‌ನಲ್ಲಿ ಎಂಬೆಡೆಡ್ ಸಿಸ್ಟಮ್‌ಗಳು ಮತ್ತು ಇಂಟರ್ನೆಟ್ ಆಫ್ ಥಿಂಗ್ಸ್ ಸಾಧನಗಳಿಗಾಗಿ ಡ್ರೈವರ್‌ಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುವ ಯೋಜನೆಯಾಗಿದೆ, ಇದು ಕರ್ನಲ್ ಹೆಡರ್ ಫೈಲ್‌ಗಳ ಆಧಾರದ ಮೇಲೆ ಲೇಯರ್‌ಗಳನ್ನು ರಚಿಸಲು ಬೈಂಡ್ಜೆನ್ ಅನ್ನು ಸಹ ಬಳಸುತ್ತದೆ. ಕರ್ನಲ್‌ನಲ್ಲಿ ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡದೆಯೇ ಚಾಲಕ ಸುರಕ್ಷತೆಯನ್ನು ಸುಧಾರಿಸಲು ಫ್ರೇಮ್‌ವರ್ಕ್ ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ - ಕರ್ನಲ್‌ನಲ್ಲಿ ಡ್ರೈವರ್‌ಗಳಿಗೆ ಹೆಚ್ಚುವರಿ ಪ್ರತ್ಯೇಕತೆಯ ಮಟ್ಟವನ್ನು ರಚಿಸುವ ಬದಲು, ಹೆಚ್ಚು ಸುರಕ್ಷಿತವಾದ ರಸ್ಟ್ ಭಾಷೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಸಂಕಲನ ಹಂತದಲ್ಲಿ ಸಮಸ್ಯೆಗಳನ್ನು ನಿರ್ಬಂಧಿಸಲು ಪ್ರಸ್ತಾಪಿಸಲಾಗಿದೆ. ಸರಿಯಾದ ಲೆಕ್ಕಪರಿಶೋಧನೆ ನಡೆಸದೆ ಆತುರದಲ್ಲಿ ಸ್ವಾಮ್ಯದ ಚಾಲಕಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುವ ಸಲಕರಣೆ ತಯಾರಕರಿಂದ ಇಂತಹ ವಿಧಾನವು ಬೇಡಿಕೆಯಲ್ಲಿರಬಹುದು ಎಂದು ಊಹಿಸಲಾಗಿದೆ.
  • ಫ್ರೇಮ್ವರ್ಕ್ ಡೆವಲಪರ್ಗಳು ಸಿ 2 ರಸ್ಟ್ ಸಿ ಕೋಡ್ ಅನ್ನು ರಸ್ಟ್‌ಗೆ ಪ್ರಸಾರ ಮಾಡಲು, ಖರ್ಚು ಕನಿಷ್ಠ ಹಸ್ತಚಾಲಿತ ಸಂಪಾದನೆಗಳೊಂದಿಗೆ ಕರ್ನಲ್ ಮಾಡ್ಯೂಲ್‌ಗಳನ್ನು ಪರಿವರ್ತಿಸುವ ಪ್ರಯೋಗಗಳು. C2Rust ನಲ್ಲಿ ಇನ್ನೂ ಬೆಂಬಲಿತವಾಗಿಲ್ಲದ GCC ವಿಸ್ತರಣೆಗಳನ್ನು ಬಳಸುವ ಕೋಡ್‌ನ ಕರ್ನಲ್‌ನ ಹಲವು ಭಾಗಗಳಲ್ಲಿನ ಬಳಕೆಯನ್ನು ಗಮನಿಸಲಾದ ಸಮಸ್ಯೆಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ. ಈ ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸಲು, C2Rust GCC ಗುಣಲಕ್ಷಣಗಳ ಇನ್‌ಲೈನ್, ಶೀತ, ಅಲಿಯಾಸ್, ಬಳಸಿದ ಮತ್ತು ವಿಭಾಗಕ್ಕೆ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲು ಯೋಜಿಸಿದೆ, ಜೊತೆಗೆ ಇನ್‌ಲೈನ್ ಅಸೆಂಬ್ಲರ್‌ನ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ವಿಸ್ತರಿಸುತ್ತದೆ ಮತ್ತು ಜೋಡಿಸಲಾದ ಮತ್ತು ಪ್ಯಾಕ್ ಮಾಡಲಾದ ರಚನೆಗಳೊಂದಿಗೆ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸುತ್ತದೆ (ಉದಾಹರಣೆಗೆ, xregs_state) . ಹಸ್ತಚಾಲಿತ ಕೆಲಸದ ಅಗತ್ಯವಿರುವ ಗಮನಾರ್ಹ ಸಮಸ್ಯೆಗಳೆಂದರೆ ಕ್ಷುಲ್ಲಕವಲ್ಲದ C ಮ್ಯಾಕ್ರೋಗಳನ್ನು ರಸ್ಟ್ ಮ್ಯಾಕ್ರೋಗಳಾಗಿ ಭಾಷಾಂತರಿಸಲು ಅಸಮರ್ಥತೆ ಮತ್ತು ಪ್ರಕಾರಗಳನ್ನು ಮರುವ್ಯಾಖ್ಯಾನಿಸುವ ಅಗತ್ಯವನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ, ಏಕೆಂದರೆ C2Rust ಸಿ ಪ್ರಕಾರಗಳನ್ನು libc ಪ್ಯಾಕೇಜ್‌ನಲ್ಲಿ ವ್ಯಾಖ್ಯಾನಗಳಾಗಿ ಭಾಷಾಂತರಿಸುತ್ತದೆ, ಆದರೆ ಈ ಪ್ಯಾಕೇಜ್ ಅನ್ನು ಕರ್ನಲ್ ಮಾಡ್ಯೂಲ್‌ಗಳಲ್ಲಿ ಬಳಸಲಾಗುವುದಿಲ್ಲ.

ಮೂಲ: opennet.ru

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ