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

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

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

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

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

  • ರಸ್ಟ್ 1.57 ರ ಸ್ಥಿರ ಬಿಡುಗಡೆಯನ್ನು ರೆಫರೆನ್ಸ್ ಕಂಪೈಲರ್ ಆಗಿ ಬಳಸಲು ಒಂದು ಪರಿವರ್ತನೆಯನ್ನು ಮಾಡಲಾಗಿದೆ ಮತ್ತು ರಸ್ಟ್ 2021 ಭಾಷೆಯ ಸ್ಥಿರ ಆವೃತ್ತಿಗೆ ಲಿಂಕ್ ಅನ್ನು ಈ ಹಿಂದೆ ಒದಗಿಸಲಾಗಿದೆ, ಪ್ಯಾಚ್‌ಗಳನ್ನು ರಸ್ಟ್‌ನ ಬೀಟಾ ಶಾಖೆಗೆ ಜೋಡಿಸಲಾಗಿದೆ ಮತ್ತು ಕೆಲವು ಭಾಷಾ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಬಳಸಲಾಗಿದೆ ಅಸ್ಥಿರ ಎಂದು ವರ್ಗೀಕರಿಸಲಾಗಿದೆ. ರಸ್ಟ್ 2021 ವಿವರಣೆಗೆ ಪರಿವರ್ತನೆಯು const_fn_transmute, const_panic, const_unavailable_unchecked ಮತ್ತು core_panic ಮತ್ತು try_reserve ನಂತಹ ಅಸ್ಥಿರ ವೈಶಿಷ್ಟ್ಯಗಳ ಬಳಕೆಯನ್ನು ತಪ್ಪಿಸಲು ಕೆಲಸವನ್ನು ಪ್ರಾರಂಭಿಸಲು ನಮಗೆ ಅವಕಾಶ ಮಾಡಿಕೊಟ್ಟಿತು.
  • ಪ್ಯಾಚ್‌ಗಳಲ್ಲಿ ಸೇರಿಸಲಾದ ರಸ್ಟ್ ಅಲೋಕ್ ಲೈಬ್ರರಿಯ ಆವೃತ್ತಿಯ ಅಭಿವೃದ್ಧಿಯು ಮುಂದುವರೆದಿದೆ, ಮೆಮೊರಿ ಅಲೌೇಶನ್ ಕಾರ್ಯಗಳನ್ನು ದೋಷಗಳು ಸಂಭವಿಸಿದಾಗ "ಪ್ಯಾನಿಕ್" ಸ್ಥಿತಿಯ ಸಂಭವನೀಯ ಪೀಳಿಗೆಯ ಮೆಮೊರಿ ಹಂಚಿಕೆ ಕಾರ್ಯಗಳನ್ನು ತೊಡೆದುಹಾಕಲು ಮಾರ್ಪಡಿಸಲಾಗಿದೆ. ಹೊಸ ಆವೃತ್ತಿಯು ಕರ್ನಲ್ ರಸ್ಟ್ ಕೋಡ್‌ನಲ್ಲಿ ಬಳಸದ ಕಾರ್ಯವನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು “no_rc” ಮತ್ತು “no_sync” ಆಯ್ಕೆಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ, ಇದು ಲೈಬ್ರರಿಯನ್ನು ಹೆಚ್ಚು ಮಾಡ್ಯುಲರ್ ಮಾಡುತ್ತದೆ. ಮುಖ್ಯ ಹಂಚಿಕೆ ಡೆವಲಪರ್‌ಗಳೊಂದಿಗೆ ಕೆಲಸವು ಮುಂದುವರಿಯುತ್ತದೆ, ಕರ್ನಲ್‌ಗೆ ಅಗತ್ಯವಿರುವ ಬದಲಾವಣೆಗಳನ್ನು ಮುಖ್ಯ ಗ್ರಂಥಾಲಯಕ್ಕೆ ವರ್ಗಾಯಿಸುವ ಗುರಿಯನ್ನು ಹೊಂದಿದೆ. ಕರ್ನಲ್ ಮಟ್ಟದಲ್ಲಿ ಕೆಲಸ ಮಾಡಲು ಗ್ರಂಥಾಲಯಕ್ಕೆ ಅಗತ್ಯವಿರುವ “no_fp_fmt_parse” ಆಯ್ಕೆಯನ್ನು ರಸ್ಟ್ ಬೇಸ್ ಲೈಬ್ರರಿಗೆ (ಕೋರ್) ಸರಿಸಲಾಗಿದೆ.
  • CONFIG_WERROR ಮೋಡ್‌ನಲ್ಲಿ ಕರ್ನಲ್ ಅನ್ನು ನಿರ್ಮಿಸುವಾಗ ಸಂಭವನೀಯ ಕಂಪೈಲರ್ ಎಚ್ಚರಿಕೆಗಳನ್ನು ತೊಡೆದುಹಾಕಲು ಕೋಡ್ ಅನ್ನು ಸ್ವಚ್ಛಗೊಳಿಸಲಾಗಿದೆ. ರಸ್ಟ್‌ನಲ್ಲಿ ಕೋಡ್ ಅನ್ನು ನಿರ್ಮಿಸುವಾಗ, ಹೆಚ್ಚುವರಿ ಕಂಪೈಲರ್ ಡಯಾಗ್ನೋಸ್ಟಿಕ್ ಮೋಡ್‌ಗಳು ಮತ್ತು ಕ್ಲಿಪ್ಪಿ ಲಿಂಟರ್ ಎಚ್ಚರಿಕೆಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗುತ್ತದೆ.
  • Seqlocks (ಸೀಕ್ವೆನ್ಸ್ ಲಾಕ್‌ಗಳು), ಪವರ್ ಮ್ಯಾನೇಜ್‌ಮೆಂಟ್‌ಗಾಗಿ ಕಾಲ್‌ಬ್ಯಾಕ್ ಕರೆಗಳು, I/O ಮೆಮೊರಿ (readX/writeX), ಇಂಟರಪ್ಟ್ ಮತ್ತು ಥ್ರೆಡ್ ಹ್ಯಾಂಡ್ಲರ್‌ಗಳು, GPIO, ಸಾಧನಗಳಿಗೆ ಪ್ರವೇಶ, ಡ್ರೈವರ್‌ಗಳು ಮತ್ತು ರುಜುವಾತುಗಳಿಗಾಗಿ ರಸ್ಟ್ ಕೋಡ್‌ನಲ್ಲಿ ಬಳಸಲು ಅಮೂರ್ತತೆಗಳನ್ನು ಪ್ರಸ್ತಾಪಿಸಲಾಗಿದೆ.
  • ಸ್ಥಳಾಂತರಿಸಬಹುದಾದ ಮ್ಯೂಟೆಕ್ಸ್‌ಗಳು, ಬಿಟ್ ಪುನರಾವರ್ತಕಗಳು, ಸರಳೀಕೃತ ಪಾಯಿಂಟರ್ ಬೈಂಡಿಂಗ್‌ಗಳು, ಸುಧಾರಿತ ದೋಷ ರೋಗನಿರ್ಣಯ ಮತ್ತು ಡೇಟಾ ಬಸ್-ಸ್ವತಂತ್ರ ಮೂಲಸೌಕರ್ಯಗಳನ್ನು ಸೇರಿಸಲು ಚಾಲಕ ಅಭಿವೃದ್ಧಿಯ ಸಾಧನಗಳನ್ನು ವಿಸ್ತರಿಸಲಾಗಿದೆ.
  • ಉಲ್ಲೇಖಗಳನ್ನು ಎಣಿಸಲು ಅದೇ ಹೆಸರಿನ ಕರ್ನಲ್ API ಅನ್ನು ಬಳಸುವ refcount_t ಬ್ಯಾಕೆಂಡ್ ಅನ್ನು ಆಧರಿಸಿ, ಸರಳೀಕೃತ Ref ಪ್ರಕಾರವನ್ನು ಬಳಸಿಕೊಂಡು ಲಿಂಕ್‌ಗಳೊಂದಿಗೆ ಸುಧಾರಿತ ಕೆಲಸ. ಪ್ರಮಾಣಿತ ಅಲೋಕ್ ಲೈಬ್ರರಿಯಲ್ಲಿ ಒದಗಿಸಲಾದ ಆರ್ಕ್ ಮತ್ತು ಆರ್‌ಸಿ ಪ್ರಕಾರಗಳಿಗೆ ಬೆಂಬಲವನ್ನು ತೆಗೆದುಹಾಕಲಾಗಿದೆ ಮತ್ತು ಕರ್ನಲ್ ಮಟ್ಟದಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸಲಾದ ಕೋಡ್‌ನಲ್ಲಿ ಲಭ್ಯವಿಲ್ಲ (ಈ ಪ್ರಕಾರಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುವ ಆಯ್ಕೆಗಳನ್ನು ಲೈಬ್ರರಿಗೆ ಸಿದ್ಧಪಡಿಸಲಾಗಿದೆ).
  • ಪ್ಯಾಚ್‌ಗಳು PL061 GPIO ಡ್ರೈವರ್‌ನ ಆವೃತ್ತಿಯನ್ನು ಒಳಗೊಂಡಿವೆ, ರಸ್ಟ್‌ನಲ್ಲಿ ಪುನಃ ಬರೆಯಲಾಗಿದೆ. ಡ್ರೈವರ್‌ನ ವಿಶೇಷ ಲಕ್ಷಣವೆಂದರೆ ಅದರ ಅನುಷ್ಠಾನವು ಬಹುತೇಕ ಸಾಲಿನ ಮೂಲಕ ಸಿ ಭಾಷೆಯಲ್ಲಿ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ GPIO ಡ್ರೈವರ್ ಅನ್ನು ಪುನರಾವರ್ತಿಸುತ್ತದೆ. ರಸ್ಟ್‌ನಲ್ಲಿ ಡ್ರೈವರ್‌ಗಳನ್ನು ರಚಿಸುವುದರೊಂದಿಗೆ ಪರಿಚಯ ಮಾಡಿಕೊಳ್ಳಲು ಬಯಸುವ ಡೆವಲಪರ್‌ಗಳಿಗಾಗಿ, ಸಿ ಕೋಡ್ ಅನ್ನು ರಸ್ಟ್‌ನಲ್ಲಿ ಯಾವ ರಚನೆಗಳನ್ನು ಪರಿವರ್ತಿಸಲಾಗಿದೆ ಎಂಬುದನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಅನುವು ಮಾಡಿಕೊಡುವ ಲೈನ್-ಬೈ-ಲೈನ್ ಹೋಲಿಕೆಯನ್ನು ಸಿದ್ಧಪಡಿಸಲಾಗಿದೆ.
  • ಮುಖ್ಯ ರಸ್ಟ್ ಕೋಡ್‌ಬೇಸ್ rustc_codegen_gcc ಅನ್ನು ಅಳವಡಿಸಿಕೊಂಡಿದೆ, ಇದು GCC ಗಾಗಿ rustc ಬ್ಯಾಕೆಂಡ್ ಆಗಿದ್ದು ಅದು libgccjit ಲೈಬ್ರರಿಯನ್ನು ಬಳಸಿಕೊಂಡು ಸಮಯಕ್ಕೆ ಮುಂಚಿತವಾಗಿ (AOT) ಸಂಕಲನವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ. ಬ್ಯಾಕೆಂಡ್‌ನ ಸರಿಯಾದ ಅಭಿವೃದ್ಧಿಯೊಂದಿಗೆ, GCC ಬಳಸಿಕೊಂಡು ಕರ್ನಲ್‌ನಲ್ಲಿ ಒಳಗೊಂಡಿರುವ ರಸ್ಟ್ ಕೋಡ್ ಅನ್ನು ಸಂಗ್ರಹಿಸಲು ಇದು ನಿಮ್ಮನ್ನು ಅನುಮತಿಸುತ್ತದೆ.
  • ARM, ಗೂಗಲ್ ಮತ್ತು ಮೈಕ್ರೋಸಾಫ್ಟ್ ಜೊತೆಗೆ, ಕರ್ನಲ್‌ನಲ್ಲಿ ರಸ್ಟ್ ಭಾಷೆಯನ್ನು ಬಳಸುವಲ್ಲಿ ಆಸಕ್ತಿ ಇದೆ. Linux Red Hat ಹೇಳಿದೆ. ಜ್ಞಾಪನೆಯಾಗಿ, Google ನೇರವಾಗಿ ರಸ್ಟ್ ಯೋಜನೆಯನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ Linux, ರಸ್ಟ್‌ನಲ್ಲಿ ಬೈಂಡರ್ ಇಂಟರ್‌ಪ್ರೊಸೆಸ್ ಸಂವಹನ ಕಾರ್ಯವಿಧಾನದ ಹೊಸ ಅನುಷ್ಠಾನವನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುತ್ತಿದೆ ಮತ್ತು ರಸ್ಟ್‌ನಲ್ಲಿ ವಿವಿಧ ಡ್ರೈವರ್‌ಗಳನ್ನು ಪುನಃ ಬರೆಯುವುದನ್ನು ಪರಿಗಣಿಸುತ್ತಿದೆ. ಮೈಕ್ರೋಸಾಫ್ಟ್ ರಸ್ಟ್‌ನಲ್ಲಿ ಹೈಪರ್-ವಿ ಗಾಗಿ ಡ್ರೈವರ್‌ಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಪ್ರಾರಂಭಿಸಿದೆ. ARM ಪ್ರೊಸೆಸರ್‌ಗಳನ್ನು ಆಧರಿಸಿದ ವ್ಯವಸ್ಥೆಗಳಿಗೆ ರಸ್ಟ್ ಬೆಂಬಲವನ್ನು ಸುಧಾರಿಸುವಲ್ಲಿ ARM ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿದೆ. IBM ಪವರ್‌ಪಿಸಿ ವ್ಯವಸ್ಥೆಗಳಿಗಾಗಿ ಕರ್ನಲ್‌ನಲ್ಲಿ ರಸ್ಟ್ ಬೆಂಬಲವನ್ನು ಜಾರಿಗೆ ತಂದಿದೆ.

ಮೂಲ: opennet.ru

DDoS ರಕ್ಷಣೆ, VPS VDS ಸರ್ವರ್‌ಗಳೊಂದಿಗೆ ಸೈಟ್‌ಗಳಿಗೆ ವಿಶ್ವಾಸಾರ್ಹ ಹೋಸ್ಟಿಂಗ್ ಅನ್ನು ಖರೀದಿಸಿ 🔥 DDoS ರಕ್ಷಣೆ, VPS VDS ಸರ್ವರ್‌ಗಳೊಂದಿಗೆ ವಿಶ್ವಾಸಾರ್ಹ ವೆಬ್‌ಸೈಟ್ ಹೋಸ್ಟಿಂಗ್ ಅನ್ನು ಖರೀದಿಸಿ | ProHoster