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

Rust-for-Linux ಯೋಜನೆಯ ಲೇಖಕರಾದ Miguel Ojeda, Linux ಕರ್ನಲ್ ಡೆವಲಪರ್‌ಗಳ ಪರಿಗಣನೆಗಾಗಿ Rust ಭಾಷೆಯಲ್ಲಿ ಸಾಧನ ಡ್ರೈವರ್‌ಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಲು v8 ಘಟಕಗಳ ಬಿಡುಗಡೆಯನ್ನು ಪ್ರಸ್ತಾಪಿಸಿದರು. ಇದು ಪ್ಯಾಚ್‌ಗಳ ಪರಿಷ್ಕೃತ ಆವೃತ್ತಿಯಾಗಿದೆ, ಮೊದಲ ಆವೃತ್ತಿಯನ್ನು ಗಣನೆಗೆ ತೆಗೆದುಕೊಂಡು, ಆವೃತ್ತಿ ಸಂಖ್ಯೆ ಇಲ್ಲದೆ ಪ್ರಕಟಿಸಲಾಗಿದೆ. ರಸ್ಟ್ ಬೆಂಬಲವನ್ನು ಪ್ರಾಯೋಗಿಕವೆಂದು ಪರಿಗಣಿಸಲಾಗುತ್ತದೆ, ಆದರೆ ಈಗಾಗಲೇ ಲಿನಕ್ಸ್-ಮುಂದಿನ ಶಾಖೆಯಲ್ಲಿ ಸೇರಿಸಲಾಗಿದೆ, ಪತನದ 5.20/6.0 ಬಿಡುಗಡೆಗೆ ಸಂಯೋಜಿಸಲಾಗಿದೆ ಎಂದು ಹೇಳುತ್ತದೆ ಮತ್ತು ಕರ್ನಲ್ ಉಪವ್ಯವಸ್ಥೆಗಳ ಮೇಲೆ ಅಮೂರ್ತ ಪದರಗಳನ್ನು ರಚಿಸುವ ಕೆಲಸವನ್ನು ಪ್ರಾರಂಭಿಸಲು ಸಾಕಷ್ಟು ಪ್ರಬುದ್ಧವಾಗಿದೆ, ಹಾಗೆಯೇ ಡ್ರೈವರ್‌ಗಳು ಮತ್ತು ಬರೆಯುವುದು ಮಾಡ್ಯೂಲ್‌ಗಳು. ಅಭಿವೃದ್ಧಿಯು Google ಮತ್ತು ISRG (ಇಂಟರ್ನೆಟ್ ಸೆಕ್ಯುರಿಟಿ ರಿಸರ್ಚ್ ಗ್ರೂಪ್) ನಿಂದ ಧನಸಹಾಯ ಪಡೆದಿದೆ, ಇದು ಲೆಟ್ಸ್ ಎನ್‌ಕ್ರಿಪ್ಟ್ ಯೋಜನೆಯ ಸಂಸ್ಥಾಪಕವಾಗಿದೆ ಮತ್ತು ಇಂಟರ್ನೆಟ್ ಸುರಕ್ಷತೆಯನ್ನು ಸುಧಾರಿಸಲು HTTPS ಮತ್ತು ತಂತ್ರಜ್ಞಾನಗಳ ಅಭಿವೃದ್ಧಿಯನ್ನು ಉತ್ತೇಜಿಸುತ್ತದೆ.

ಹೊಸ ಆವೃತ್ತಿಯಲ್ಲಿ:

  • ಟೂಲ್‌ಕಿಟ್ ಮತ್ತು ಅಲೋಕ್ ಲೈಬ್ರರಿಯ ರೂಪಾಂತರ, ದೋಷಗಳು ಸಂಭವಿಸಿದಾಗ "ಪ್ಯಾನಿಕ್" ಸ್ಥಿತಿಯ ಸಂಭವನೀಯ ಪೀಳಿಗೆಯಿಲ್ಲದೆ, ರಸ್ಟ್ 1.62 ಬಿಡುಗಡೆಗಾಗಿ ನವೀಕರಿಸಲಾಗಿದೆ. ಹಿಂದೆ ಬಳಸಿದ ಆವೃತ್ತಿಗೆ ಹೋಲಿಸಿದರೆ, ರಸ್ಟ್ ಟೂಲ್ಕಿಟ್ ಕರ್ನಲ್ ಪ್ಯಾಚ್‌ಗಳಲ್ಲಿ ಬಳಸಲಾದ const_fn_trait_bound ಕಾರ್ಯನಿರ್ವಹಣೆಗೆ ಬೆಂಬಲವನ್ನು ಸ್ಥಿರಗೊಳಿಸಿದೆ.
  • ಬೈಂಡಿಂಗ್ ಕೋಡ್ ಅನ್ನು ಪ್ರತ್ಯೇಕ ಕ್ರೇಟ್ ಪ್ಯಾಕೇಜ್ "ಬೈಂಡಿಂಗ್ಸ್" ಆಗಿ ಪ್ರತ್ಯೇಕಿಸಲಾಗಿದೆ, ಇದು ಮುಖ್ಯ ಪ್ಯಾಕೇಜ್ "ಕರ್ನಲ್" ಗೆ ಮಾತ್ರ ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡಿದರೆ ಪುನರ್ನಿರ್ಮಾಣವನ್ನು ಸರಳಗೊಳಿಸುತ್ತದೆ.
  • ಮ್ಯಾಕ್ರೋ "ಕಾನ್ಕಾಟ್_ಐಡೆಂಟ್ಸ್!" ಕಾನ್ಕಾಟ್_ಐಡೆಂಟ್ಸ್ ಕಾರ್ಯನಿರ್ವಹಣೆಗೆ ಸಂಬಂಧಿಸದ ಕಾರ್ಯವಿಧಾನದ ಮ್ಯಾಕ್ರೋ ರೂಪದಲ್ಲಿ ಪುನಃ ಬರೆಯಲಾಗಿದೆ ಮತ್ತು ಸ್ಥಳೀಯ ವೇರಿಯಬಲ್‌ಗಳಿಗೆ ಉಲ್ಲೇಖಗಳ ಬಳಕೆಯನ್ನು ಅನುಮತಿಸುತ್ತದೆ.
  • "static_assert!" ಮ್ಯಾಕ್ರೋ ಅನ್ನು ಪುನಃ ಬರೆಯಲಾಗಿದೆ, ಸ್ಥಿರಾಂಕಗಳ ಬದಲಿಗೆ ಯಾವುದೇ ಸಂದರ್ಭದಲ್ಲಿ "core:: assert!()" ಅನ್ನು ಬಳಸಲು ಅನುಮತಿಸುತ್ತದೆ.
  • ಮ್ಯಾಕ್ರೋ "ಬಿಲ್ಡ್_ಎರರ್!" ಮಾಡ್ಯೂಲ್‌ಗಳಿಗಾಗಿ "RUST_BUILD_ASSERT_{WARN,ALLOW}" ಮೋಡ್ ಅನ್ನು ಹೊಂದಿಸಿದಾಗ ಕೆಲಸ ಮಾಡಲು ಹೊಂದಿಕೊಳ್ಳುತ್ತದೆ.
  • "kernel/configs/rust.config" ಸೆಟ್ಟಿಂಗ್‌ಗಳೊಂದಿಗೆ ಪ್ರತ್ಯೇಕ ಫೈಲ್ ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • ಮ್ಯಾಕ್ರೋ ಬದಲಿಗಳಲ್ಲಿ ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲಾದ “*.i” ಫೈಲ್‌ಗಳನ್ನು “*.rsi” ಎಂದು ಮರುಹೆಸರಿಸಲಾಗಿದೆ.
  • C ಕೋಡ್‌ಗೆ ಬಳಸುವುದಕ್ಕಿಂತ ವಿಭಿನ್ನವಾದ ಆಪ್ಟಿಮೈಸೇಶನ್ ಹಂತಗಳೊಂದಿಗೆ ರಸ್ಟ್ ಘಟಕಗಳನ್ನು ನಿರ್ಮಿಸಲು ಬೆಂಬಲವನ್ನು ನಿಲ್ಲಿಸಲಾಗಿದೆ.
  • ಫೈಲ್ ಸಿಸ್ಟಮ್‌ಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ಬೈಂಡಿಂಗ್‌ಗಳನ್ನು ಒದಗಿಸುವ fs ಮಾಡ್ಯೂಲ್ ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ. ರಸ್ಟ್ನಲ್ಲಿ ಬರೆಯಲಾದ ಸರಳ ಫೈಲ್ ಸಿಸ್ಟಮ್ನ ಉದಾಹರಣೆಯನ್ನು ಒದಗಿಸಲಾಗಿದೆ.
  • ಸಿಸ್ಟಮ್ ಕ್ಯೂಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ವರ್ಕ್‌ಕ್ಯೂ ಮಾಡ್ಯೂಲ್ ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ (ವರ್ಕ್_ಸ್ಟ್ರಕ್ಟ್ ಮತ್ತು ವರ್ಕ್‌ಕ್ಯೂ_ಸ್ಟ್ರಕ್ಟ್ ಕರ್ನಲ್ ರಚನೆಗಳ ಮೇಲೆ ಬೈಂಡಿಂಗ್‌ಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ).
  • ಅಸಮಕಾಲಿಕ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ವಿಧಾನಗಳ (ಅಸಿಂಕ್) ಅಳವಡಿಕೆಯೊಂದಿಗೆ kasync ಮಾಡ್ಯೂಲ್ನ ಅಭಿವೃದ್ಧಿ ಮುಂದುವರೆಯಿತು. ರಸ್ಟ್‌ನಲ್ಲಿ ಬರೆಯಲಾದ ಕೋರ್-ಲೆವೆಲ್ TCP ಸರ್ವರ್‌ನ ಉದಾಹರಣೆಯನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • [ಥ್ರೆಡ್] ಹ್ಯಾಂಡ್ಲರ್ ಪ್ರಕಾರಗಳು ಮತ್ತು [ಥ್ರೆಡ್] ನೋಂದಣಿ` ಪ್ರಕಾರಗಳನ್ನು ಬಳಸಿಕೊಂಡು ರಸ್ಟ್ ಭಾಷೆಯಲ್ಲಿ ಅಡಚಣೆಗಳನ್ನು ನಿರ್ವಹಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • ಫೈಲ್_ಆಪರೇಷನ್ಸ್ ರಚನೆಯಂತಹ ಫಂಕ್ಷನ್ ಪಾಯಿಂಟರ್‌ಗಳ ಕೋಷ್ಟಕಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ಸುಲಭವಾಗಿಸಲು ಕಾರ್ಯವಿಧಾನದ ಮ್ಯಾಕ್ರೋ "#[vtable]" ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • "unsafe_list::List" ದ್ವಿಮುಖ ಲಿಂಕ್ ಪಟ್ಟಿಗಳ ಅನುಷ್ಠಾನವನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • ಪ್ರಸ್ತುತ ಥ್ರೆಡ್‌ಗೆ ರೀಡ್ ಲಾಕ್ ಬದ್ಧವಾಗಿದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸಲು ಆರ್‌ಸಿಯು (ರೀಡ್-ಕಾಪಿ-ಅಪ್‌ಡೇಟ್) ಮತ್ತು ಗಾರ್ಡ್ ಪ್ರಕಾರಕ್ಕೆ ಆರಂಭಿಕ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • ಕರ್ನಲ್ ಥ್ರೆಡ್‌ಗಳನ್ನು ರಚಿಸಲು ಮತ್ತು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಪ್ರಾರಂಭಿಸಲು Task ::spawn() ಕಾರ್ಯವನ್ನು ಸೇರಿಸಲಾಗಿದೆ. Task ::wake_up() ವಿಧಾನವನ್ನು ಸಹ ಸೇರಿಸಲಾಗಿದೆ.
  • ವಿಳಂಬವನ್ನು ಬಳಸಲು ನಿಮಗೆ ಅನುಮತಿಸುವ ವಿಳಂಬ ಮಾಡ್ಯೂಲ್ ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ (msleep() ಮೇಲೆ ಹೊದಿಕೆ).

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

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

ಮೂಲ: opennet.ru

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