X เจจเจพเจฒ เจธเจผเฉเจฐเฉ‚ เจนเฉ‹เจฃ เจตเจพเจฒเฉ€เจ†เจ‚ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†เจตเจพเจ‚ เจฒเจˆ เจตเจฟเจตเจนเจพเจฐ-เจฌเจฆเจฒเจฃ เจตเจพเจฒเฉ‡ เจ•เฉ‹เจก เจฆเฉ‡ เจฒเฉ€เจจเจ•เจธ เจ•เจฐเจจเจฒ เจคเฉ‹เจ‚ เจ›เฉเจŸเจ•เจพเจฐเจพ เจชเจพเจ‰เจฃเจพ

เจœเฉ‡เจธเจจ เจ. เจกเฉ‹เจจเฉ‡เจจเจซเฉ€เจฒเจก, VPN เจตเจพเจ‡เจฐเจ—เจพเจฐเจก เจฆเฉ‡ เจฒเฉ‡เจ–เจ•, เจจเฉ‡ เจกเจฟเจตเฉˆเจฒเจชเจฐเจพเจ‚ เจฆเจพ เจงเจฟเจ†เจจ เจฒเฉ€เจจเจ•เจธ เจ•เจฐเจจเจฒ เจ•เฉ‹เจก เจตเจฟเฉฑเจš เจฎเฉŒเจœเฉ‚เจฆ เจ‡เฉฑเจ• เจ—เฉฐเจฆเฉ‡ เจนเฉˆเจ• เจตเฉฑเจฒ เจ–เจฟเฉฑเจšเจฟเจ† เจœเฉ‹ เจ‰เจนเจจเจพเจ‚ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†เจตเจพเจ‚ เจฒเจˆ เจตเจฟเจตเจนเจพเจฐ เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฆเจพ เจนเฉˆ เจœเจฟเจธเจฆเจพ เจจเจพเจฎ "X" เจ…เฉฑเจ–เจฐ เจจเจพเจฒ เจธเจผเฉเจฐเฉ‚ เจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค เจชเจนเจฟเจฒเฉ€ เจจเจœเจผเจฐ 'เจคเฉ‡, เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฆเฉ‡ เจซเจฟเจ•เจธ เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจฌเจพเจˆเจกเจฟเฉฐเจ— เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจ›เฉเจชเฉ€ เจนเฉ‹เจˆ เจ•เจฎเฉ€ เจจเฉ‚เฉฐ เจ›เฉฑเจกเจฃ เจฒเจˆ เจฐเฉ‚เจŸเจ•เจฟเฉฑเจŸเจพเจ‚ เจตเจฟเฉฑเจš เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเฉ‡ เจœเจพเจ‚เจฆเฉ‡ เจนเจจ, เจชเจฐ เจตเจฟเจธเจผเจฒเฉ‡เจธเจผเจฃ เจจเฉ‡ เจฆเจฟเจ–เจพเจ‡เจ† เจ•เจฟ เจ‡เจน เจคเจฌเจฆเฉ€เจฒเฉ€ 2019 เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจ‰เจชเจญเฉ‹เจ—เจคเจพ-เจธเจชเฉ‡เจธ เจ…เจจเฉเจ•เฉ‚เจฒเจคเจพ เจ‰เจฒเฉฐเจ˜เจฃเจพ เจจเฉ‚เฉฐ เจ…เจธเจฅเจพเจˆ เจคเฉŒเจฐ 'เจคเฉ‡ เจ เฉ€เจ• เจ•เจฐเจจ เจฒเจˆ เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจธเฉ€, เจœเฉ‹ เจ•เจฟ เจธเจฟเจงเจพเจ‚เจค เจฆเฉ‡ เจ…เจจเฉเจธเจพเจฐ เจธเจพเจนเจฎเจฃเฉ‡ เจ†เจˆ เจธเฉ€เฅค เจ•เจฐเจจเจฒ เจตเจฟเฉฑเจš เจคเจฌเจฆเฉ€เจฒเฉ€เจ†เจ‚ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจ…เจจเฉเจ•เฉ‚เจฒเจคเจพ เจจเฉ‚เฉฐ เจจเจนเฉ€เจ‚ เจคเฉ‹เฉœเจฆเฉ€เจ†เจ‚เฅค

X.Org เจธเจฐเจตเจฐ เจตเจฟเฉฑเจš เจตเจฐเจคเฉ‡ เจœเจพเจฃ เจตเจพเจฒเฉ‡ xf86-เจตเฉ€เจกเฉ€เจ“-เจฎเฉ‹เจกเจธเฉ‡เจŸเจฟเฉฐเจ— DDX เจกเจฐเจพเจˆเจตเจฐ เจตเจฟเฉฑเจš เจชเจฐเจฎเจพเจฃเฉ‚ เจตเฉ€เจกเฉ€เจ“ เจฎเฉ‹เจก เจคเจฌเจฆเฉ€เจฒเฉ€ เจตเจฟเจงเฉ€ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจชเฉˆเจฆเจพ เจนเฉ‹เจˆเจ†เจ‚, เจœเจฟเจธ เจจเจพเจฒ "X" เจ…เฉฑเจ–เจฐ เจจเจพเจฒ เจธเจผเฉเจฐเฉ‚ เจนเฉ‹เจฃ เจตเจพเจฒเฉ€เจ†เจ‚ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†เจตเจพเจ‚ เจจเฉ‚เฉฐ เจฌเจพเจˆเจกเจฟเฉฐเจ— เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€ (เจ‡เจน เจฎเฉฐเจจเจฟเจ† เจœเจพเจ‚เจฆเจพ เจธเฉ€ เจ•เจฟ เจนเฉฑเจฒ เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€เฅค "xorg" เจจเฉ‚เฉฐ)เฅค เจฒเจ—เจญเจ— เจคเฉเจฐเฉฐเจค, X.Org เจตเจฟเฉฑเจš เจธเจฎเฉฑเจธเจฟเจ† เจนเฉฑเจฒ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจธเฉ€ (เจชเจฐเจฎเจพเจฃเฉ‚ API เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจจเฉ‚เฉฐ เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจ…เจฏเฉ‹เจ— เจ•เจฐ เจฆเจฟเฉฑเจคเจพ เจ—เจฟเจ† เจธเฉ€), เจชเจฐ เจ…เฉฐเจคเจฐเจฟเจฎ เจซเจฟเจ•เจธ เจจเฉ‚เฉฐ เจ•เจฐเจจเจฒ เจคเฉ‹เจ‚ เจนเจŸเจพเจ‰เจฃเจพ เจญเฉเฉฑเจฒ เจ—เจฟเจ† เจธเฉ€, เจ…เจคเฉ‡ เจฎเฉ‹เจก เจจเฉ‚เฉฐ เจชเฉเจฐเจฎเจพเจฃเฉ‚ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจฌเจฆเจฒเจฃ เจฒเจˆ เจ‡เฉฑเจ• ioctl เจญเฉ‡เจœเจฃ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจธเฉ€เฅค เจ…เฉฑเจ–เจฐ "X" เจจเจพเจฒ เจธเจผเฉเจฐเฉ‚ เจนเฉ‹เจฃ เจตเจพเจฒเฉ€เจ†เจ‚ เจธเจพเจฐเฉ€เจ†เจ‚ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†เจตเจพเจ‚ เจ…เจœเฉ‡ เจตเฉ€ เจ‡เฉฑเจ• เจ—เจฒเจคเฉ€ เจตเจพเจชเจธ เจ•เจฐเจจ เจฒเจˆ เจจเจคเฉ€เจœเฉ‡ เจตเจœเฉ‹เจ‚ เจœเจพเจฐเฉ€ เจฐเจนเจฟเฉฐเจฆเฉ€เจ†เจ‚ เจนเจจเฅค เจœเฉ‡เจ•เจฐ (เจตเจฐเจคเจฎเจพเจจ->เจ•เฉŒเจฎ[0] == 'X' && req->เจฎเฉเฉฑเจฒ == 1) { pr_info("เจŸเฉเฉฑเจŸเจฟเจ† เจชเจฐเจฎเจพเจฃเฉ‚ เจฎเฉ‹เจกเจธเฉˆเฉฑเจŸ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจธเจชเฉ‡เจธ เจ–เฉ‹เจœเจฟเจ† เจ—เจฟเจ†, เจชเจฐเจฎเจพเจฃเฉ‚ เจจเฉ‚เฉฐ เจ…เจธเจฎเจฐเฉฑเจฅ เจ•เจฐเจจเจพ\n"); เจตเจพเจชเจธเฉ€ -EOPNOTSUPP; }

เจธเจฐเฉ‹เจค: opennet.ru

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹