ಈ ದಿನಗಳಲ್ಲಿ ನಡೆಯುತ್ತಿರುವ ಲಿನಕ್ಸ್ ಪ್ಲಂಬರ್ಸ್ 2022 ಸಮ್ಮೇಳನದಲ್ಲಿ, ವೆಸ್ಟರ್ನ್ ಡಿಜಿಟಲ್ನ ಎಂಜಿನಿಯರ್ಗಳು ಎಸ್ಎಸ್ಡಿ ಡ್ರೈವ್ಗಳಿಗಾಗಿ ಎನ್ವಿಎಂ-ಎಕ್ಸ್ಪ್ರೆಸ್ (ಎನ್ವಿಎಂ) ಇಂಟರ್ಫೇಸ್ನೊಂದಿಗೆ ಪ್ರಾಯೋಗಿಕ ಚಾಲಕವನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುವ ಕುರಿತು ಪ್ರಸ್ತುತಿಯನ್ನು ನೀಡಿದರು, ಇದನ್ನು ರಸ್ಟ್ ಭಾಷೆಯಲ್ಲಿ ಬರೆಯಲಾಗಿದೆ ಮತ್ತು ಲಿನಕ್ಸ್ ಕರ್ನಲ್ನಲ್ಲಿ ಚಾಲನೆಯಲ್ಲಿದೆ. ಮಟ್ಟದ. ಯೋಜನೆಯು ಇನ್ನೂ ಅಭಿವೃದ್ಧಿಯ ಆರಂಭಿಕ ಹಂತದಲ್ಲಿದೆ ಎಂಬ ವಾಸ್ತವದ ಹೊರತಾಗಿಯೂ, ರಸ್ಟ್ ಭಾಷೆಯಲ್ಲಿ NVMe ಡ್ರೈವರ್ನ ಕಾರ್ಯಕ್ಷಮತೆಯು ಕರ್ನಲ್ನಲ್ಲಿ ಲಭ್ಯವಿರುವ C ಭಾಷೆಯಲ್ಲಿ ಬರೆಯಲಾದ NVMe ಡ್ರೈವರ್ಗೆ ಅನುರೂಪವಾಗಿದೆ ಎಂದು ಪರೀಕ್ಷೆಯು ತೋರಿಸಿದೆ.


C ಯಲ್ಲಿ ಪ್ರಸ್ತುತ NVMe ಡ್ರೈವರ್ ಡೆವಲಪರ್ಗಳಿಗೆ ಸಂಪೂರ್ಣವಾಗಿ ತೃಪ್ತಿಕರವಾಗಿದೆ ಎಂದು ವರದಿ ಹೇಳುತ್ತದೆ, ಆದರೆ NVMe ಉಪವ್ಯವಸ್ಥೆಯು ರಸ್ಟ್ನಲ್ಲಿ ಡ್ರೈವರ್ಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುವ ಕಾರ್ಯಸಾಧ್ಯತೆಯನ್ನು ಅನ್ವೇಷಿಸಲು ಉತ್ತಮ ವೇದಿಕೆಯಾಗಿದೆ, ಏಕೆಂದರೆ ಇದು ತುಂಬಾ ಸರಳವಾಗಿದೆ, ವ್ಯಾಪಕವಾಗಿ ಬಳಸಲ್ಪಟ್ಟಿದೆ, ಹೆಚ್ಚಿನ ಕಾರ್ಯಕ್ಷಮತೆಯ ಅವಶ್ಯಕತೆಗಳನ್ನು ಹೊಂದಿದೆ ಮತ್ತು ಹೊಂದಿದೆ ಹೋಲಿಕೆಗಾಗಿ ಸಾಬೀತಾಗಿರುವ ಉಲ್ಲೇಖದ ಅನುಷ್ಠಾನ ಮತ್ತು ವಿವಿಧ ಇಂಟರ್ಫೇಸ್ಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ (dev, pci, dma, blk-mq, gendisk, sysfs).
Rust ಗಾಗಿ PCI NVMe ಡ್ರೈವರ್ ಈಗಾಗಲೇ ಕಾರ್ಯಾಚರಣೆಗೆ ಅಗತ್ಯವಾದ ಕಾರ್ಯವನ್ನು ಒದಗಿಸುತ್ತದೆ, ಆದರೆ ವ್ಯಾಪಕ ಬಳಕೆಗೆ ಇನ್ನೂ ಸಿದ್ಧವಾಗಿಲ್ಲ, ಏಕೆಂದರೆ ಇದು ವೈಯಕ್ತಿಕ ಸುಧಾರಣೆಗಳ ಅಗತ್ಯವಿರುತ್ತದೆ. ಭವಿಷ್ಯದ ಯೋಜನೆಗಳು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಅಸುರಕ್ಷಿತ ಬ್ಲಾಕ್ಗಳ ಕೋಡ್ ಅನ್ನು ತೊಡೆದುಹಾಕುವುದು, ಸಾಧನ ತೆಗೆಯುವಿಕೆ ಮತ್ತು ಚಾಲಕವನ್ನು ಇಳಿಸುವ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಬೆಂಬಲಿಸುವುದು, sysfs ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಬೆಂಬಲಿಸುವುದು, ಲೇಜಿ ಇನಿಶಿಯಲೈಸೇಶನ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವುದು, blk-mq ಗಾಗಿ ಚಾಲಕವನ್ನು ರಚಿಸುವುದು ಮತ್ತು queue_rq ಗಾಗಿ ಅಸಮಕಾಲಿಕ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಮಾದರಿಯನ್ನು ಬಳಸುವ ಪ್ರಯೋಗವನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ.

ಹೆಚ್ಚುವರಿಯಾಗಿ, ಫ್ರೀಬಿಎಸ್ಡಿ ಕರ್ನಲ್ಗಾಗಿ ರಸ್ಟ್ ಭಾಷೆಯಲ್ಲಿ ಡ್ರೈವರ್ಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಲು ಎನ್ಸಿಸಿ ಗ್ರೂಪ್ ನಡೆಸಿದ ಪ್ರಯೋಗಗಳನ್ನು ನಾವು ಗಮನಿಸಬಹುದು. ಉದಾಹರಣೆಯಾಗಿ, ಫೈಲ್ /dev/rustmodule ಗೆ ಬರೆದ ಡೇಟಾವನ್ನು ಹಿಂದಿರುಗಿಸುವ ಸರಳ ಪ್ರತಿಧ್ವನಿ ಚಾಲಕವನ್ನು ನಾವು ವಿವರವಾಗಿ ಪರಿಶೀಲಿಸುತ್ತೇವೆ. ಮುಂದಿನ ಹಂತದ ಪ್ರಯೋಗದಲ್ಲಿ, NCC ಗ್ರೂಪ್ ನೆಟ್ವರ್ಕ್ ಮತ್ತು ಫೈಲ್ ಕಾರ್ಯಾಚರಣೆಗಳ ಸುರಕ್ಷತೆಯನ್ನು ಸುಧಾರಿಸಲು ರಸ್ಟ್ ಭಾಷೆಯಲ್ಲಿ ಕರ್ನಲ್ನ ಪ್ರಮುಖ ಘಟಕಗಳನ್ನು ಮರುಕೆಲಸ ಮಾಡುವ ಸಾಧ್ಯತೆಯನ್ನು ಪರಿಗಣಿಸುತ್ತಿದೆ.
ಆದಾಗ್ಯೂ, ರಸ್ಟ್ ಭಾಷೆಯಲ್ಲಿ ಸರಳ ಮಾಡ್ಯೂಲ್ಗಳನ್ನು ರಚಿಸುವುದು ಸಾಧ್ಯ ಎಂದು ತೋರಿಸಲಾಗಿದ್ದರೂ, FreeBSD ಕರ್ನಲ್ಗೆ ರಸ್ಟ್ನ ಬಿಗಿಯಾದ ಏಕೀಕರಣಕ್ಕೆ ಹೆಚ್ಚುವರಿ ಕೆಲಸದ ಅಗತ್ಯವಿರುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಲಿನಕ್ಸ್ ಪ್ರಾಜೆಕ್ಟ್ಗಾಗಿ ರಸ್ಟ್ ಸಿದ್ಧಪಡಿಸಿದ ಆಡ್-ಆನ್ಗಳಂತೆಯೇ ಉಪವ್ಯವಸ್ಥೆಗಳು ಮತ್ತು ಕರ್ನಲ್ ರಚನೆಗಳ ಮೇಲೆ ಅಮೂರ್ತ ಪದರಗಳ ಗುಂಪನ್ನು ರಚಿಸುವ ಅಗತ್ಯವನ್ನು ಅವರು ಉಲ್ಲೇಖಿಸುತ್ತಾರೆ. ಭವಿಷ್ಯದಲ್ಲಿ, ನಾವು Illumos ಕರ್ನಲ್ನೊಂದಿಗೆ ಇದೇ ರೀತಿಯ ಪ್ರಯೋಗಗಳನ್ನು ನಡೆಸಲು ಯೋಜಿಸುತ್ತೇವೆ ಮತ್ತು Linux, BSD ಮತ್ತು Illumos ಗಾಗಿ Rust ನಲ್ಲಿ ಬರೆಯಲಾದ ಡ್ರೈವರ್ಗಳಲ್ಲಿ ಬಳಸಬಹುದಾದ Rust ನಲ್ಲಿ ಸಾಮಾನ್ಯ ಅಮೂರ್ತತೆಯನ್ನು ಗುರುತಿಸುತ್ತೇವೆ.
ಮೈಕ್ರೋಸಾಫ್ಟ್ ಮತ್ತು ಗೂಗಲ್ ಪ್ರಕಾರ, ಅವರ ಸಾಫ್ಟ್ವೇರ್ ಉತ್ಪನ್ನಗಳಲ್ಲಿನ ಸುಮಾರು 70% ದುರ್ಬಲತೆಗಳು ಅಸುರಕ್ಷಿತ ಮೆಮೊರಿ ನಿರ್ವಹಣೆಯಿಂದ ಉಂಟಾಗುತ್ತವೆ. ರಸ್ಟ್ ಭಾಷೆಯ ಬಳಕೆಯು ಮೆಮೊರಿಯೊಂದಿಗೆ ಅಸುರಕ್ಷಿತ ಕೆಲಸದಿಂದ ಉಂಟಾಗುವ ದುರ್ಬಲತೆಗಳ ಅಪಾಯವನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ ಮತ್ತು ಮೆಮೊರಿ ಪ್ರದೇಶವನ್ನು ಮುಕ್ತಗೊಳಿಸಿದ ನಂತರ ಪ್ರವೇಶಿಸುವುದು ಮತ್ತು ಬಫರ್ ಅನ್ನು ಅತಿಕ್ರಮಿಸುವಂತಹ ದೋಷಗಳ ಸಂಭವವನ್ನು ನಿವಾರಿಸುತ್ತದೆ ಎಂದು ನಿರೀಕ್ಷಿಸಲಾಗಿದೆ.
ಕಂಪೈಲ್ ಸಮಯದಲ್ಲಿ ಕಂಪೈಲ್ ಸಮಯದಲ್ಲಿ ಮೆಮೊರಿ-ಸುರಕ್ಷಿತ ನಿರ್ವಹಣೆಯನ್ನು ಒದಗಿಸಲಾಗುತ್ತದೆ, ಆಬ್ಜೆಕ್ಟ್ ಮಾಲೀಕತ್ವ ಮತ್ತು ಆಬ್ಜೆಕ್ಟ್ ಜೀವಿತಾವಧಿಯನ್ನು (ವ್ಯಾಪ್ತಿ) ಟ್ರ್ಯಾಕ್ ಮಾಡುವುದು, ಹಾಗೆಯೇ ಕೋಡ್ ಎಕ್ಸಿಕ್ಯೂಶನ್ ಸಮಯದಲ್ಲಿ ಮೆಮೊರಿ ಪ್ರವೇಶದ ಸರಿಯಾದ ಮೌಲ್ಯಮಾಪನದ ಮೂಲಕ. ರಸ್ಟ್ ಪೂರ್ಣಾಂಕದ ಉಕ್ಕಿ ಹರಿಯುವಿಕೆಯ ವಿರುದ್ಧ ರಕ್ಷಣೆ ನೀಡುತ್ತದೆ, ಬಳಕೆಗೆ ಮೊದಲು ವೇರಿಯಬಲ್ ಮೌಲ್ಯಗಳ ಕಡ್ಡಾಯ ಆರಂಭದ ಅಗತ್ಯವಿರುತ್ತದೆ, ಪ್ರಮಾಣಿತ ಗ್ರಂಥಾಲಯದಲ್ಲಿ ದೋಷಗಳನ್ನು ಉತ್ತಮವಾಗಿ ನಿರ್ವಹಿಸುತ್ತದೆ, ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಬದಲಾಗದ ಉಲ್ಲೇಖಗಳು ಮತ್ತು ವೇರಿಯೇಬಲ್ಗಳ ಪರಿಕಲ್ಪನೆಯನ್ನು ಅನ್ವಯಿಸುತ್ತದೆ, ತಾರ್ಕಿಕ ದೋಷಗಳನ್ನು ಕಡಿಮೆ ಮಾಡಲು ಬಲವಾದ ಸ್ಥಿರ ಟೈಪಿಂಗ್ ಅನ್ನು ನೀಡುತ್ತದೆ.
ಮೂಲ: opennet.ru
