Linus Torvalds ಅವರು Linux ಕರ್ನಲ್‌ಗಾಗಿ ZFS ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವಲ್ಲಿನ ಸಮಸ್ಯೆಗಳನ್ನು ವಿವರಿಸಿದರು

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

ಲಿನಕ್ಸ್ ಪ್ರಾಜೆಕ್ಟ್‌ನಲ್ಲಿನ ZFS ಗಾಗಿ, CDDL ಮತ್ತು GPLv2 ಪರವಾನಗಿಗಳ ಅಸಾಮರಸ್ಯದಿಂದಾಗಿ ಲಿನಸ್ zfs ಮಾಡ್ಯೂಲ್ ಅನ್ನು ಬಳಸಲು ಶಿಫಾರಸು ಮಾಡಲಿಲ್ಲ. ಒರಾಕಲ್‌ನ ಪರವಾನಗಿ ನೀತಿಯಿಂದಾಗಿ, ZFS ಮುಖ್ಯ ಕರ್ನಲ್‌ಗೆ ಪ್ರವೇಶಿಸಲು ಸಾಧ್ಯವಾಗುವ ಸಾಧ್ಯತೆಗಳು ತುಂಬಾ ಚಿಕ್ಕದಾಗಿದೆ. ಕರ್ನಲ್ ಕಾರ್ಯಗಳಿಗೆ ಪ್ರವೇಶವನ್ನು ಬಾಹ್ಯ ಕೋಡ್‌ಗೆ ಭಾಷಾಂತರಿಸುವ ಪರವಾನಗಿ ಅಸಾಮರಸ್ಯವನ್ನು ಬೈಪಾಸ್ ಮಾಡಲು ಪ್ರಸ್ತಾಪಿಸಲಾದ ಲೇಯರ್‌ಗಳು ಸಂಶಯಾಸ್ಪದ ಪರಿಹಾರವಾಗಿದೆ - ವಕೀಲರು ಮುಂದುವರಿಸುತ್ತಾರೆ ವಾದಿಸುತ್ತಾರೆ ರ್ಯಾಪರ್‌ಗಳ ಮೂಲಕ GPL ಕರ್ನಲ್ ಕಾರ್ಯಗಳನ್ನು ಮರು-ರಫ್ತು ಮಾಡುವುದರಿಂದ GPL ಅಡಿಯಲ್ಲಿ ವಿತರಿಸಬೇಕಾದ ವ್ಯುತ್ಪನ್ನ ಕಾರ್ಯವನ್ನು ರಚಿಸಲಾಗುತ್ತದೆ.

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

ZFS ಕೋಡ್ ಅನ್ನು ಉಚಿತ CDDL ಪರವಾನಗಿ ಅಡಿಯಲ್ಲಿ ವಿತರಿಸಲಾಗಿದೆ ಎಂದು ನಾವು ನಿಮಗೆ ನೆನಪಿಸೋಣ, ಇದು GPLv2 ಗೆ ಹೊಂದಿಕೆಯಾಗುವುದಿಲ್ಲ, ಇದು GPLv2 ಮತ್ತು CDDL ಪರವಾನಗಿಗಳ ಅಡಿಯಲ್ಲಿ ಕೋಡ್ ಅನ್ನು ಮಿಶ್ರಣ ಮಾಡುವುದರಿಂದ Linux ನಲ್ಲಿ ZFS ಅನ್ನು Linux ಕರ್ನಲ್‌ನ ಮುಖ್ಯ ಶಾಖೆಗೆ ಸಂಯೋಜಿಸಲು ಅನುಮತಿಸುವುದಿಲ್ಲ. ಸ್ವೀಕಾರಾರ್ಹವಲ್ಲ. ಈ ಪರವಾನಗಿ ಅಸಾಮರಸ್ಯವನ್ನು ತಪ್ಪಿಸಲು, ಲಿನಕ್ಸ್ ಪ್ರಾಜೆಕ್ಟ್‌ನಲ್ಲಿನ ZFS ಸಂಪೂರ್ಣ ಉತ್ಪನ್ನವನ್ನು ಸಿಡಿಡಿಎಲ್ ಪರವಾನಗಿಯ ಅಡಿಯಲ್ಲಿ ಪ್ರತ್ಯೇಕವಾಗಿ ಲೋಡ್ ಮಾಡಲಾದ ಮಾಡ್ಯೂಲ್ ರೂಪದಲ್ಲಿ ವಿತರಿಸಲು ನಿರ್ಧರಿಸಿತು, ಅದನ್ನು ಕರ್ನಲ್‌ನಿಂದ ಪ್ರತ್ಯೇಕವಾಗಿ ಸರಬರಾಜು ಮಾಡಲಾಗುತ್ತದೆ.

ವಿತರಣಾ ಕಿಟ್‌ಗಳ ಭಾಗವಾಗಿ ಸಿದ್ಧ-ಸಿದ್ಧ ZFS ಮಾಡ್ಯೂಲ್ ಅನ್ನು ವಿತರಿಸುವ ಸಾಧ್ಯತೆಯು ವಕೀಲರಲ್ಲಿ ವಿವಾದಾಸ್ಪದವಾಗಿದೆ. ಸಾಫ್ಟ್‌ವೇರ್ ಫ್ರೀಡಂ ಕನ್ಸರ್ವೆನ್ಸಿ (SFC) ನಿಂದ ವಕೀಲರು ಪರಿಗಣಿಸಿವಿತರಣೆಯಲ್ಲಿ ಬೈನರಿ ಕರ್ನಲ್ ಮಾಡ್ಯೂಲ್‌ನ ವಿತರಣೆಯು GPL ನೊಂದಿಗೆ ಸಂಯೋಜಿಸಲ್ಪಟ್ಟ ಉತ್ಪನ್ನವನ್ನು ರೂಪಿಸುತ್ತದೆ ಮತ್ತು ಪರಿಣಾಮವಾಗಿ ಕೆಲಸವನ್ನು GPL ಅಡಿಯಲ್ಲಿ ವಿತರಿಸಲಾಗುತ್ತದೆ. ಅಂಗೀಕೃತ ವಕೀಲರು ಒಪ್ಪುವುದಿಲ್ಲ ಮತ್ತು ಕರ್ನಲ್ ಪ್ಯಾಕೇಜ್‌ನಿಂದ ಪ್ರತ್ಯೇಕವಾದ ಘಟಕವನ್ನು ಸ್ವಯಂ-ಒಳಗೊಂಡಿರುವ ಮಾಡ್ಯೂಲ್‌ನಂತೆ ಸರಬರಾಜು ಮಾಡಿದರೆ zfs ಮಾಡ್ಯೂಲ್‌ನ ವಿತರಣೆಯು ಸ್ವೀಕಾರಾರ್ಹವಾಗಿದೆ ಎಂದು ತಿಳಿಸಿ. NVIDIA ಡ್ರೈವರ್‌ಗಳಂತಹ ಸ್ವಾಮ್ಯದ ಡ್ರೈವರ್‌ಗಳನ್ನು ಪೂರೈಸಲು ವಿತರಣೆಗಳು ಒಂದೇ ರೀತಿಯ ವಿಧಾನವನ್ನು ದೀರ್ಘಕಾಲ ಬಳಸಿಕೊಂಡಿವೆ ಎಂದು ಅಂಗೀಕೃತ ಟಿಪ್ಪಣಿಗಳು.

ಜಿಪಿಎಲ್ ಪರವಾನಗಿ ಅಡಿಯಲ್ಲಿ ವಿತರಿಸಲಾದ ಸಣ್ಣ ಪದರವನ್ನು ಪೂರೈಸುವ ಮೂಲಕ ಸ್ವಾಮ್ಯದ ಡ್ರೈವರ್‌ಗಳಲ್ಲಿನ ಕರ್ನಲ್ ಹೊಂದಾಣಿಕೆಯ ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸಲಾಗುತ್ತದೆ ಎಂದು ಇನ್ನೊಂದು ಬದಿಯು ಪ್ರತಿವಾದಿಸುತ್ತದೆ (ಜಿಪಿಎಲ್ ಪರವಾನಗಿ ಅಡಿಯಲ್ಲಿ ಮಾಡ್ಯೂಲ್ ಅನ್ನು ಕರ್ನಲ್‌ಗೆ ಲೋಡ್ ಮಾಡಲಾಗಿದೆ, ಅದು ಈಗಾಗಲೇ ಸ್ವಾಮ್ಯದ ಘಟಕಗಳನ್ನು ಲೋಡ್ ಮಾಡುತ್ತದೆ). ZFS ಗಾಗಿ, Oracle ನಿಂದ ಪರವಾನಗಿ ವಿನಾಯಿತಿಗಳನ್ನು ಒದಗಿಸಿದರೆ ಮಾತ್ರ ಅಂತಹ ಪದರವನ್ನು ಸಿದ್ಧಪಡಿಸಬಹುದು. ಒರಾಕಲ್ ಲಿನಕ್ಸ್‌ನಲ್ಲಿ, ಒರಾಕಲ್ ಲೈಸೆನ್ಸ್ ವಿನಾಯಿತಿಯನ್ನು ಒದಗಿಸುವ ಮೂಲಕ ಜಿಪಿಎಲ್‌ನೊಂದಿಗಿನ ಅಸಾಮರಸ್ಯವನ್ನು ಪರಿಹರಿಸಲಾಗುತ್ತದೆ, ಅದು ಸಿಡಿಡಿಎಲ್ ಅಡಿಯಲ್ಲಿ ಸಂಯೋಜಿತ ಕೆಲಸಕ್ಕೆ ಪರವಾನಗಿ ನೀಡುವ ಅಗತ್ಯವನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ, ಆದರೆ ಈ ವಿನಾಯಿತಿಯು ಇತರ ವಿತರಣೆಗಳಿಗೆ ಅನ್ವಯಿಸುವುದಿಲ್ಲ.

ವಿತರಣೆಯಲ್ಲಿ ಮಾಡ್ಯೂಲ್‌ನ ಮೂಲ ಕೋಡ್ ಅನ್ನು ಮಾತ್ರ ಪೂರೈಸುವುದು ಒಂದು ಪರಿಹಾರವಾಗಿದೆ, ಇದು ಬಂಡಲಿಂಗ್‌ಗೆ ಕಾರಣವಾಗುವುದಿಲ್ಲ ಮತ್ತು ಎರಡು ಪ್ರತ್ಯೇಕ ಉತ್ಪನ್ನಗಳ ವಿತರಣೆ ಎಂದು ಪರಿಗಣಿಸಲಾಗುತ್ತದೆ. ಡೆಬಿಯನ್‌ನಲ್ಲಿ, DKMS (ಡೈನಾಮಿಕ್ ಕರ್ನಲ್ ಮಾಡ್ಯೂಲ್ ಸಪೋರ್ಟ್) ವ್ಯವಸ್ಥೆಯನ್ನು ಇದಕ್ಕಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ, ಇದರಲ್ಲಿ ಮಾಡ್ಯೂಲ್ ಅನ್ನು ಮೂಲ ಕೋಡ್‌ನಲ್ಲಿ ಸರಬರಾಜು ಮಾಡಲಾಗುತ್ತದೆ ಮತ್ತು ಪ್ಯಾಕೇಜ್ ಅನ್ನು ಸ್ಥಾಪಿಸಿದ ತಕ್ಷಣ ಬಳಕೆದಾರರ ಸಿಸ್ಟಮ್‌ನಲ್ಲಿ ಜೋಡಿಸಲಾಗುತ್ತದೆ.

ಮೂಲ: opennet.ru

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