ರಸ್ಟ್ ಭಾಷೆಯ ಬೆಂಬಲದೊಂದಿಗೆ Linux ಕರ್ನಲ್‌ಗಾಗಿ ಪ್ಯಾಚ್‌ಗಳ ಎರಡನೇ ಆವೃತ್ತಿ

Rust-for-Linux ಯೋಜನೆಯ ಲೇಖಕರಾದ Miguel Ojeda, Linux ಕರ್ನಲ್ ಡೆವಲಪರ್‌ಗಳ ಪರಿಗಣನೆಗಾಗಿ ರಸ್ಟ್ ಭಾಷೆಯಲ್ಲಿ ಸಾಧನ ಡ್ರೈವರ್‌ಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಲು ಘಟಕಗಳ ನವೀಕರಿಸಿದ ಆವೃತ್ತಿಯನ್ನು ಪ್ರಸ್ತಾಪಿಸಿದರು. ರಸ್ಟ್ ಬೆಂಬಲವನ್ನು ಪ್ರಾಯೋಗಿಕವೆಂದು ಪರಿಗಣಿಸಲಾಗುತ್ತದೆ, ಆದರೆ ಲಿನಕ್ಸ್-ಮುಂದಿನ ಶಾಖೆಯಲ್ಲಿ ಸೇರಿಸಲು ಈಗಾಗಲೇ ಒಪ್ಪಿಗೆ ನೀಡಲಾಗಿದೆ. ಹೊಸ ಆವೃತ್ತಿಯು ಪ್ಯಾಚ್‌ಗಳ ಮೊದಲ ಆವೃತ್ತಿಯ ಚರ್ಚೆಯ ಸಮಯದಲ್ಲಿ ಮಾಡಿದ ಕಾಮೆಂಟ್‌ಗಳನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ. ಲಿನಸ್ ಟೊರ್ವಾಲ್ಡ್ಸ್ ಈಗಾಗಲೇ ಚರ್ಚೆಗೆ ಸೇರಿಕೊಂಡಿದ್ದಾರೆ ಮತ್ತು ಕೆಲವು ಬಿಟ್ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು ತರ್ಕವನ್ನು ಬದಲಾಯಿಸಲು ಪ್ರಸ್ತಾಪಿಸಿದ್ದಾರೆ.

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

ಕಂಪೈಲ್ ಸಮಯದಲ್ಲಿ ಕಂಪೈಲ್ ಸಮಯದಲ್ಲಿ ಮೆಮೊರಿ-ಸುರಕ್ಷಿತ ನಿರ್ವಹಣೆಯನ್ನು ಒದಗಿಸಲಾಗುತ್ತದೆ, ಆಬ್ಜೆಕ್ಟ್ ಮಾಲೀಕತ್ವ ಮತ್ತು ಆಬ್ಜೆಕ್ಟ್ ಜೀವಿತಾವಧಿಯನ್ನು (ವ್ಯಾಪ್ತಿ) ಟ್ರ್ಯಾಕ್ ಮಾಡುವುದು, ಹಾಗೆಯೇ ಕೋಡ್ ಎಕ್ಸಿಕ್ಯೂಶನ್ ಸಮಯದಲ್ಲಿ ಮೆಮೊರಿ ಪ್ರವೇಶದ ಸರಿಯಾದ ಮೌಲ್ಯಮಾಪನದ ಮೂಲಕ. ರಸ್ಟ್ ಪೂರ್ಣಾಂಕದ ಉಕ್ಕಿ ಹರಿಯುವಿಕೆಯ ವಿರುದ್ಧ ರಕ್ಷಣೆ ನೀಡುತ್ತದೆ, ಬಳಕೆಗೆ ಮೊದಲು ವೇರಿಯಬಲ್ ಮೌಲ್ಯಗಳ ಕಡ್ಡಾಯ ಆರಂಭದ ಅಗತ್ಯವಿರುತ್ತದೆ, ಪ್ರಮಾಣಿತ ಗ್ರಂಥಾಲಯದಲ್ಲಿ ದೋಷಗಳನ್ನು ಉತ್ತಮವಾಗಿ ನಿರ್ವಹಿಸುತ್ತದೆ, ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಬದಲಾಗದ ಉಲ್ಲೇಖಗಳು ಮತ್ತು ವೇರಿಯೇಬಲ್‌ಗಳ ಪರಿಕಲ್ಪನೆಯನ್ನು ಅನ್ವಯಿಸುತ್ತದೆ, ತಾರ್ಕಿಕ ದೋಷಗಳನ್ನು ಕಡಿಮೆ ಮಾಡಲು ಬಲವಾದ ಸ್ಥಿರ ಟೈಪಿಂಗ್ ಅನ್ನು ನೀಡುತ್ತದೆ.

ಪ್ಯಾಚ್‌ಗಳ ಹೊಸ ಆವೃತ್ತಿಯಲ್ಲಿ ಅತ್ಯಂತ ಗಮನಾರ್ಹ ಬದಲಾವಣೆಗಳು:

  • ಮೆಮೊರಿ ಅಲೊಕೇಶನ್ ಕೋಡ್ ಅನ್ನು "ಪ್ಯಾನಿಕ್" ಸ್ಥಿತಿಯನ್ನು ಸಂಭಾವ್ಯವಾಗಿ ಉತ್ಪಾದಿಸುವುದರಿಂದ ಮೆಮೊರಿಯ ಕೊರತೆಯಂತಹ ದೋಷಗಳು ಸಂಭವಿಸಿದಾಗ ಮುಕ್ತಗೊಳಿಸಲಾಗುತ್ತದೆ. ರಸ್ಟ್ ಅಲೋಕ್ ಲೈಬ್ರರಿಯ ಒಂದು ರೂಪಾಂತರವನ್ನು ಸೇರಿಸಲಾಗಿದೆ, ಇದು ವೈಫಲ್ಯಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಕೋಡ್ ಅನ್ನು ಪುನಃ ಕೆಲಸ ಮಾಡುತ್ತದೆ, ಆದರೆ ಕರ್ನಲ್‌ಗೆ ಅಗತ್ಯವಿರುವ ಎಲ್ಲಾ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಅಲಾಕ್‌ನ ಮುಖ್ಯ ಆವೃತ್ತಿಗೆ ವರ್ಗಾಯಿಸುವುದು ಅಂತಿಮ ಗುರಿಯಾಗಿದೆ (ಬದಲಾವಣೆಗಳನ್ನು ಈಗಾಗಲೇ ಸಿದ್ಧಪಡಿಸಲಾಗಿದೆ ಮತ್ತು ಪ್ರಮಾಣಿತಕ್ಕೆ ವರ್ಗಾಯಿಸಲಾಗಿದೆ ರಸ್ಟ್ ಲೈಬ್ರರಿ).
  • ರಾತ್ರಿಯ ಬಿಲ್ಡ್‌ಗಳ ಬದಲಿಗೆ, ರಸ್ಟ್ ಬೆಂಬಲದೊಂದಿಗೆ ಕರ್ನಲ್ ಅನ್ನು ಕಂಪೈಲ್ ಮಾಡಲು ನೀವು ಈಗ ಬೀಟಾ ಬಿಡುಗಡೆಗಳು ಮತ್ತು rustc ಕಂಪೈಲರ್‌ನ ಸ್ಥಿರ ಬಿಡುಗಡೆಗಳನ್ನು ಬಳಸಬಹುದು. ಪ್ರಸ್ತುತ, rustc 1.54-beta1 ಅನ್ನು ಉಲ್ಲೇಖ ಕಂಪೈಲರ್ ಆಗಿ ಬಳಸಲಾಗುತ್ತದೆ, ಆದರೆ 1.54 ಬಿಡುಗಡೆಯು ತಿಂಗಳ ಕೊನೆಯಲ್ಲಿ ಬಿಡುಗಡೆಯಾದ ನಂತರ, ಅದನ್ನು ಉಲ್ಲೇಖ ಕಂಪೈಲರ್ ಆಗಿ ಬೆಂಬಲಿಸಲಾಗುತ್ತದೆ.
  • ರಸ್ಟ್‌ಗಾಗಿ ಪ್ರಮಾಣಿತ “#[ಪರೀಕ್ಷೆ]” ಗುಣಲಕ್ಷಣವನ್ನು ಬಳಸಿಕೊಂಡು ಪರೀಕ್ಷೆಗಳನ್ನು ಬರೆಯಲು ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ ಮತ್ತು ಪರೀಕ್ಷೆಗಳನ್ನು ದಾಖಲಿಸಲು ಡಾಕ್ಟೆಸ್ಟ್‌ಗಳನ್ನು ಬಳಸುವ ಸಾಮರ್ಥ್ಯ.
  • ಹಿಂದೆ ಬೆಂಬಲಿಸಿದ x32_86 ಮತ್ತು ARM64 ಜೊತೆಗೆ ARM64 ಮತ್ತು RISCV ಆರ್ಕಿಟೆಕ್ಚರ್‌ಗಳಿಗೆ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • GCC ರಸ್ಟ್ (ರಸ್ಟ್‌ಗಾಗಿ GCC ಮುಂಭಾಗ) ಮತ್ತು rustc_codegen_gcc (GCC ಗಾಗಿ rustc ಬ್ಯಾಕೆಂಡ್) ನ ಸುಧಾರಿತ ಅನುಷ್ಠಾನಗಳು, ಇದು ಈಗ ಎಲ್ಲಾ ಮೂಲಭೂತ ಪರೀಕ್ಷೆಗಳಲ್ಲಿ ಉತ್ತೀರ್ಣವಾಗಿದೆ.
  • ಕೆಂಪು-ಕಪ್ಪು ಮರಗಳು, ಉಲ್ಲೇಖ-ಎಣಿಕೆಯ ವಸ್ತುಗಳು, ಫೈಲ್ ಡಿಸ್ಕ್ರಿಪ್ಟರ್ ರಚನೆ, ಕಾರ್ಯಗಳು, ಫೈಲ್‌ಗಳು ಮತ್ತು I/O ವೆಕ್ಟರ್‌ಗಳಂತಹ C ನಲ್ಲಿ ಬರೆಯಲಾದ ಕರ್ನಲ್ ಕಾರ್ಯವಿಧಾನಗಳ ರಸ್ಟ್ ಪ್ರೋಗ್ರಾಂಗಳಲ್ಲಿ ಬಳಕೆಗಾಗಿ ಹೊಸ ಮಟ್ಟದ ಅಮೂರ್ತತೆಯನ್ನು ಪ್ರಸ್ತಾಪಿಸಲಾಗಿದೆ.
  • ಡ್ರೈವರ್ ಡೆವಲಪ್‌ಮೆಂಟ್ ಕಾಂಪೊನೆಂಟ್‌ಗಳು ಫೈಲ್_ಆಪರೇಷನ್ಸ್ ಮಾಡ್ಯೂಲ್, ಮಾಡ್ಯೂಲ್ ಮ್ಯಾಕ್ರೋ, ಮ್ಯಾಕ್ರೋ ರಿಜಿಸ್ಟ್ರೇಶನ್ ಮತ್ತು ರೂಡಿಮೆಂಟರಿ ಡ್ರೈವರ್‌ಗಳಿಗೆ (ತನಿಖೆ ಮತ್ತು ತೆಗೆದುಹಾಕಿ) ಬೆಂಬಲವನ್ನು ಸುಧಾರಿಸಿದೆ.
  • ಬೈಂಡರ್ ಈಗ ಹಾದುಹೋಗುವ ಫೈಲ್ ಡಿಸ್ಕ್ರಿಪ್ಟರ್‌ಗಳು ಮತ್ತು LSM ಕೊಕ್ಕೆಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ.
  • ರಸ್ಟ್ ಡ್ರೈವರ್‌ನ ಹೆಚ್ಚು ಕ್ರಿಯಾತ್ಮಕ ಉದಾಹರಣೆಯನ್ನು ಪ್ರಸ್ತಾಪಿಸಲಾಗಿದೆ - ರಾಸ್ಪ್ಬೆರಿ ಪೈ ಬೋರ್ಡ್‌ಗಳ ಹಾರ್ಡ್‌ವೇರ್ ಯಾದೃಚ್ಛಿಕ ಸಂಖ್ಯೆಯ ಜನರೇಟರ್‌ಗಾಗಿ bcm2835-rng.

ಹೆಚ್ಚುವರಿಯಾಗಿ, ಕರ್ನಲ್‌ನಲ್ಲಿ ರಸ್ಟ್ ಬಳಕೆಗೆ ಸಂಬಂಧಿಸಿದ ಕೆಲವು ಕಂಪನಿಗಳ ಯೋಜನೆಗಳನ್ನು ಉಲ್ಲೇಖಿಸಲಾಗಿದೆ:

  • ಮೈಕ್ರೋಸಾಫ್ಟ್ ಲಿನಕ್ಸ್ ಕರ್ನಲ್‌ಗೆ ರಸ್ಟ್ ಬೆಂಬಲವನ್ನು ಸಂಯೋಜಿಸುವ ಕೆಲಸದಲ್ಲಿ ಭಾಗವಹಿಸಲು ಆಸಕ್ತಿಯನ್ನು ವ್ಯಕ್ತಪಡಿಸಿದೆ ಮತ್ತು ಮುಂಬರುವ ತಿಂಗಳುಗಳಲ್ಲಿ ರಸ್ಟ್‌ನಲ್ಲಿ ಹೈಪರ್-ವಿ ಗಾಗಿ ಡ್ರೈವರ್ ಅಳವಡಿಕೆಗಳನ್ನು ಒದಗಿಸಲು ಸಿದ್ಧವಾಗಿದೆ.
  • ARM ಆಧಾರಿತ ವ್ಯವಸ್ಥೆಗಳಿಗೆ ರಸ್ಟ್ ಬೆಂಬಲವನ್ನು ಸುಧಾರಿಸಲು ARM ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿದೆ. ರಸ್ಟ್ ಯೋಜನೆಯು ಈಗಾಗಲೇ 64-ಬಿಟ್ ARM ಸಿಸ್ಟಮ್‌ಗಳನ್ನು ಶ್ರೇಣಿ 1 ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ಮಾಡುವ ಬದಲಾವಣೆಗಳನ್ನು ಪ್ರಸ್ತಾಪಿಸಿದೆ.
  • ರಸ್ಟ್ ಫಾರ್ ಲಿನಕ್ಸ್ ಪ್ರಾಜೆಕ್ಟ್‌ಗೆ Google ನೇರವಾಗಿ ಬೆಂಬಲವನ್ನು ನೀಡುತ್ತದೆ, ರಸ್ಟ್‌ನಲ್ಲಿ ಬೈಂಡರ್ ಇಂಟರ್‌ಪ್ರೊಸೆಸ್ ಕಮ್ಯುನಿಕೇಶನ್ ಮೆಕ್ಯಾನಿಸಂನ ಹೊಸ ಅಳವಡಿಕೆಯನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುತ್ತಿದೆ ಮತ್ತು ರಸ್ಟ್‌ನಲ್ಲಿ ವಿವಿಧ ಡ್ರೈವರ್‌ಗಳನ್ನು ಪುನಃ ಕೆಲಸ ಮಾಡುವ ಸಾಧ್ಯತೆಯನ್ನು ಪರಿಗಣಿಸುತ್ತಿದೆ. ISRG (ಇಂಟರ್ನೆಟ್ ಸೆಕ್ಯುರಿಟಿ ರಿಸರ್ಚ್ ಗ್ರೂಪ್) ಮೂಲಕ, ಲಿನಕ್ಸ್ ಕರ್ನಲ್ಗೆ ರಸ್ಟ್ ಬೆಂಬಲವನ್ನು ಸಂಯೋಜಿಸಲು ಕೆಲಸಕ್ಕಾಗಿ Google ಹಣವನ್ನು ಒದಗಿಸಿತು.
  • IBM ಪವರ್‌ಪಿಸಿ ಸಿಸ್ಟಮ್‌ಗಳಿಗಾಗಿ ರಸ್ಟ್‌ಗಾಗಿ ಕರ್ನಲ್ ಬೆಂಬಲವನ್ನು ಜಾರಿಗೆ ತಂದಿದೆ.
  • LSE (ಸಿಸ್ಟಮ್ಸ್ ರಿಸರ್ಚ್ ಲ್ಯಾಬೊರೇಟರಿ) ಪ್ರಯೋಗಾಲಯವು ರಸ್ಟ್‌ನಲ್ಲಿ SPI ಡ್ರೈವರ್ ಅನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಿದೆ.

ಮೂಲ: opennet.ru

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