QEMU ಅನ್ನು ಮೀರಿಸುವ ಭರವಸೆ ನೀಡುವ x86-64 ಎಮ್ಯುಲೇಟರ್ ಅನ್ನು ಬ್ಲಿಂಕ್ ಮಾಡಿ

ಬ್ಲಿಂಕ್-ಜಿಸಿಸಿ

ಬ್ಲಿಂಕ್ ರನ್ನಿಂಗ್‌ನ ಸ್ಕ್ರೀನ್‌ಶಾಟ್

ಇತ್ತೀಚೆಗಷ್ಟೇ ಪ್ರಾಜೆಕ್ಟ್ ಎಂಬ ಸುದ್ದಿ ಹೊರಬಿದ್ದಿತ್ತು ಬ್ಲಿಂಕ್ ಹೊಸ ಎಮ್ಯುಲೇಟರ್ ಅನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುತ್ತಿದೆ x86-64 ಪ್ರೊಸೆಸರ್ ಕಂಪೈಲ್ ಮಾಡಿದ ಲಿನಕ್ಸ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಚಲಾಯಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ ಅನುಕರಣೀಯ ಪ್ರೊಸೆಸರ್ನೊಂದಿಗೆ ವರ್ಚುವಲ್ ಯಂತ್ರದಲ್ಲಿ ಸ್ಥಿರವಾಗಿ.

ಇ ಎಂದು ಉಲ್ಲೇಖಿಸಲಾಗಿದೆಮುಖ್ಯ ಉದ್ದೇಶ ಯೋಜನೆಯ ಇತರ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್‌ಗಳಲ್ಲಿ x86-64 ಆರ್ಕಿಟೆಕ್ಚರ್‌ಗಾಗಿ ಸಂಕಲಿಸಲಾದ ಲಿನಕ್ಸ್ ಪ್ರೋಗ್ರಾಂಗಳನ್ನು ಚಲಾಯಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಒದಗಿಸುವುದು (macOS, FreeBSD, NetBSD, OpenBSD) ಮತ್ತು ಬೇರೆ ಹಾರ್ಡ್‌ವೇರ್ ಆರ್ಕಿಟೆಕ್ಚರ್ ಹೊಂದಿರುವ ಕಂಪ್ಯೂಟರ್‌ಗಳಲ್ಲಿ (x86, ARM, RISC-V, MIPS, PowerPC, s390x).

ಪ್ರಾಜೆಕ್ಟ್ ರೆಪೊಸಿಟರಿಯಲ್ಲಿ ಅವರು ಮಿಟುಕಿಸುವಿಕೆಯನ್ನು ಈ ಕೆಳಗಿನಂತೆ ವಿವರಿಸುತ್ತಾರೆ:

ಬ್ಲಿಂಕ್ ಎನ್ನುವುದು ಒಂದು ವರ್ಚುವಲ್ ಯಂತ್ರವಾಗಿದ್ದು ಅದು ವಿಭಿನ್ನ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್‌ಗಳು ಮತ್ತು ಹಾರ್ಡ್‌ವೇರ್ ಆರ್ಕಿಟೆಕ್ಚರ್‌ಗಳಲ್ಲಿ ಸ್ಥಿರವಾಗಿ ಸಂಕಲಿಸಲಾದ x86-64-ಲಿನಕ್ಸ್ ಪ್ರೋಗ್ರಾಂಗಳನ್ನು ರನ್ ಮಾಡುತ್ತದೆ. qemu-x86_64 ಆಜ್ಞೆಯಂತೆಯೇ ಇದನ್ನು ಮಾಡಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ, ಅದನ್ನು ಹೊರತುಪಡಿಸಿ (a) 4mb ಬೈನರಿ ಬದಲಿಗೆ, ಬ್ಲಿಂಕ್ ಕೇವಲ ~160kb ಹೆಜ್ಜೆಗುರುತನ್ನು ಹೊಂದಿದೆ; ಮತ್ತು (b) GCC ಅನ್ನು ಅನುಕರಿಸುವಂತಹ ಕೆಲವು ಮಾನದಂಡಗಳಲ್ಲಿ Qemu ಗಿಂತ ಬ್ಲಿಂಕ್ 2x ವೇಗವಾಗಿರುತ್ತದೆ. ಟ್ರೇಡ್‌ಆಫ್ ಎಂದರೆ ಬ್ಲಿಂಕ್‌ನಲ್ಲಿ ಕ್ಯೂಮು ಇರುವಷ್ಟು ವೈಶಿಷ್ಟ್ಯಗಳಿಲ್ಲ. ನೀವು ಅತ್ಯಂತ ಚಿಕ್ಕದಾದ ಮತ್ತು ಅಲ್ಪಕಾಲಿಕ ಕಾರ್ಯಕ್ರಮಗಳನ್ನು ಹೆಚ್ಚು ವೇಗವಾಗಿ ನಡೆಸುವ ವರ್ಚುವಲ್ ಯಂತ್ರವನ್ನು ಬಯಸಿದಾಗ ಬ್ಲಿಂಕ್ ಪರಿಪೂರ್ಣ ಫಿಟ್ ಆಗಿದೆ. ಈ ಪರಿಕರಕ್ಕಾಗಿ ಪ್ರೇರಣೆಗಳ ಕುರಿತು ಹೆಚ್ಚಿನ ವಿವರಗಳಿಗಾಗಿ, ದಯವಿಟ್ಟು https://justine.lol/ape.html ಓದಿ.

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

ಕ್ರಿಯಾತ್ಮಕತೆಯ ದೃಷ್ಟಿಯಿಂದ, ಬ್ಲಿಂಕ್ qemu-x86_64 ಆಜ್ಞೆಯಂತೆ ಕಾಣುತ್ತದೆ, ಆದರೆ ಹೆಚ್ಚು ಕಾಂಪ್ಯಾಕ್ಟ್ ವಿನ್ಯಾಸ ಮತ್ತು ಕಾರ್ಯಕ್ಷಮತೆಯ ಗಮನಾರ್ಹ ಹೆಚ್ಚಳದಲ್ಲಿ QEMU ನಿಂದ ಭಿನ್ನವಾಗಿದೆ. ಉದಾಹರಣೆಗೆ, qemu-x157_4 ಗಾಗಿ 86 MB ಬದಲಿಗೆ ಬ್ಲಿಂಕ್ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ 64 KB, ಮತ್ತು ಕಾರ್ಯಕ್ಷಮತೆಯ ವಿಷಯದಲ್ಲಿ GCC ಎಮ್ಯುಲೇಟರ್‌ನಲ್ಲಿ ಪರೀಕ್ಷಾರ್ಥದಲ್ಲಿ, ಬ್ಲಿಂಕ್ ಎರಡು ಬಾರಿ QEMU ಅನ್ನು ಸೋಲಿಸುತ್ತದೆ.

ಹೆಚ್ಚಿನ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು, JIT ಕಂಪೈಲರ್ ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ, ಫ್ಲೈನಲ್ಲಿ ಗುರಿ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗಾಗಿ ಮೂಲ ಸೂಚನೆಗಳನ್ನು ಯಂತ್ರ ಕೋಡ್‌ಗೆ ಪರಿವರ್ತಿಸುತ್ತದೆ (ಇದುವರೆಗೆ ಕೇವಲ x86_64 ಮತ್ತು aarch64 JIT ಅನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ).

ELF, PE (ಪೋರ್ಟಬಲ್ ಎಕ್ಸಿಕ್ಯೂಟಬಲ್ಸ್) ಮತ್ತು ಬಿನ್ (ಫ್ಲಾಟ್ ಎಕ್ಸಿಕ್ಯೂಟಬಲ್) ಫಾರ್ಮ್ಯಾಟ್‌ಗಳಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್‌ಗಳ ಎಮ್ಯುಲೇಟರ್‌ನಲ್ಲಿ ನೇರ ಉಡಾವಣೆ, ಪ್ರಮಾಣಿತ C ಲೈಬ್ರರಿಗಳೊಂದಿಗೆ ಕಾಸ್ಮೋಪಾಲಿಟನ್, Glibc ಮತ್ತು Musl ಅನ್ನು ಸಂಕಲಿಸಲಾಗಿದೆ.

ಅದರ ಪಕ್ಕದಲ್ಲಿ, ಇದು ಲಿನಕ್ಸ್ ಸಿಸ್ಟಮ್‌ಗೆ ನೂರಕ್ಕೂ ಹೆಚ್ಚು ಕರೆಗಳಿಗೆ ಸಮಗ್ರ ಬೆಂಬಲವನ್ನು ಹೊಂದಿದೆ ಎಂಬುದು ಎದ್ದು ಕಾಣುತ್ತದೆ, ಫೋರ್ಕ್ () ಮತ್ತು ಕ್ಲೋನ್ () ಸೇರಿದಂತೆ. i8086, i386, SSE2, x86_64, SSE3, SSSE3, CLMUL, POPCNT, ADX, BMI2 (MULX, PDEP, PEXT), X87, RDRND, RDSEED, ಮತ್ತು RDTSCP ಸೂಚನಾ ಸೆಟ್‌ಗಳ ಅನುಕರಣೆ ಬೆಂಬಲಿತವಾಗಿದೆ.

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

blinkenlights ಒಂದು TUI ಇಂಟರ್ಫೇಸ್ ಆಗಿದ್ದು ಇದನ್ನು ಎಲ್ಲಾ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗಳಲ್ಲಿ x86_64-ಲಿನಕ್ಸ್ ಪ್ರೋಗ್ರಾಂಗಳನ್ನು ಡೀಬಗ್ ಮಾಡಲು ಬಳಸಬಹುದು. GDB ಗಿಂತ ಭಿನ್ನವಾಗಿ, Blinkenlights ಕಾರ್ಯಕ್ರಮದ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯನ್ನು ದೃಶ್ಯೀಕರಿಸುವಲ್ಲಿ ಕೇಂದ್ರೀಕರಿಸುತ್ತದೆ. ಇದು ಬೈನರಿ ಮೆಮೊರಿ ಪ್ಯಾನೆಲ್‌ಗಳನ್ನು ಪ್ರದರ್ಶಿಸಲು UNICODE IBM ಕೋಡ್ ಪುಟ 437 ಅಕ್ಷರಗಳನ್ನು ಬಳಸುತ್ತದೆ, ನಿಮ್ಮ ಪ್ರೋಗ್ರಾಂನ ಅಸೆಂಬ್ಲಿ ಕೋಡ್ ಮೂಲಕ ನೀವು ಚಲಿಸುವಾಗ ಅದು ಬದಲಾಗುತ್ತದೆ. ಈ ಮೆಮೊರಿ ಪ್ಯಾನೆಲ್‌ಗಳನ್ನು ಮೌಸ್ ಚಕ್ರದಿಂದ ಸ್ಕ್ರಾಲ್ ಮಾಡಬಹುದು ಮತ್ತು ಹಿಗ್ಗಿಸಬಹುದು. ಬ್ಲಿಂಕೆನ್‌ಲೈಟ್‌ಗಳು ರಿವರ್ಸ್ ಡೀಬಗ್ ಮಾಡುವಿಕೆಯನ್ನು ಸಹ ಬೆಂಬಲಿಸುತ್ತದೆ, ಅಲ್ಲಿ ಅಸೆಂಬ್ಲಿ ಪರದೆಯಲ್ಲಿ ಚಕ್ರವನ್ನು ಸ್ಕ್ರೋಲ್ ಮಾಡುವುದರಿಂದ ನೀವು ಎಕ್ಸಿಕ್ಯೂಶನ್ ಇತಿಹಾಸವನ್ನು ರಿವೈಂಡ್ ಮಾಡಲು ಅನುಮತಿಸುತ್ತದೆ.

ಅಂತಿಮವಾಗಿ, ಈ ಯೋಜನೆಯ ಬಗ್ಗೆ ಇನ್ನಷ್ಟು ತಿಳಿದುಕೊಳ್ಳಲು ಆಸಕ್ತಿ ಹೊಂದಿರುವವರಿಗೆ, ಪ್ರಾಜೆಕ್ಟ್ ಕೋಡ್ ಅನ್ನು C (ANSI C11) ನಲ್ಲಿ ಬರೆಯಲಾಗಿದೆ ಮತ್ತು ISC ಪರವಾನಗಿ ಅಡಿಯಲ್ಲಿ ವಿತರಿಸಲಾಗಿದೆ ಎಂದು ಅವರು ತಿಳಿದಿರಬೇಕು. ಅವಲಂಬನೆಗಳಲ್ಲಿ, ಕೇವಲ libc (POSIX.1-2017) ಅಗತ್ಯವಿದೆ.

ಮಿಟುಕಿಸಿ

ಮಿಟುಕಿಸಲು ಪ್ರಯತ್ನಿಸಲು ಆಸಕ್ತಿ ಹೊಂದಿರುವವರಿಗೆ, ಅದರ ಸಂಕಲನವು ಅತ್ಯಂತ ಸರಳವಾಗಿದೆ ಎಂದು ಅವರು ತಿಳಿದಿರಬೇಕು, ಅವರು ಅದರ ಮೂಲ ಕೋಡ್ ಅನ್ನು ಮಾತ್ರ ಪಡೆಯಬೇಕು, ಅವರು ಈ ಕೆಳಗಿನ ಆಜ್ಞೆಯನ್ನು ಟೈಪ್ ಮಾಡುವ ಮೂಲಕ ಕೆಳಗಿನ ಲಿಂಕ್‌ನಿಂದ ಅಥವಾ ಟರ್ಮಿನಲ್‌ನಿಂದ ಅದನ್ನು ಮಾಡಬಹುದು :

git https://github.com/jart/blink.git

ಮತ್ತು ಅದರೊಂದಿಗೆ, ನೀವು ಬ್ಲಿಕ್ ಡೈರೆಕ್ಟರಿಯನ್ನು ನಮೂದಿಸಬೇಕು ಮತ್ತು ಕಂಪೈಲ್ ಮಾಡಬೇಕು:

cd blink

make -j4

ಬ್ಲಿಂಕ್ ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂಬುದರ ಕುರಿತು ನೀವು ಇನ್ನಷ್ಟು ತಿಳಿದುಕೊಳ್ಳಲು ಬಯಸಿದರೆ, ನೀವು ಇದನ್ನು ಮಾಡಬಹುದು ಕೆಳಗಿನ ಲಿಂಕ್.


ನಿಮ್ಮ ಅಭಿಪ್ರಾಯವನ್ನು ಬಿಡಿ

ನಿಮ್ಮ ಈಮೇಲ್ ವಿಳಾಸ ಪ್ರಕಟವಾದ ಆಗುವುದಿಲ್ಲ. ಅಗತ್ಯವಿರುವ ಜಾಗ ಗುರುತಿಸಲಾಗಿದೆ *

*

*

  1. ಡೇಟಾಗೆ ಜವಾಬ್ದಾರಿ: AB ಇಂಟರ್ನೆಟ್ ನೆಟ್ವರ್ಕ್ಸ್ 2008 SL
  2. ಡೇಟಾದ ಉದ್ದೇಶ: ನಿಯಂತ್ರಣ SPAM, ಕಾಮೆಂಟ್ ನಿರ್ವಹಣೆ.
  3. ಕಾನೂನುಬದ್ಧತೆ: ನಿಮ್ಮ ಒಪ್ಪಿಗೆ
  4. ಡೇಟಾದ ಸಂವಹನ: ಕಾನೂನುಬದ್ಧ ಬಾಧ್ಯತೆಯನ್ನು ಹೊರತುಪಡಿಸಿ ಡೇಟಾವನ್ನು ಮೂರನೇ ವ್ಯಕ್ತಿಗಳಿಗೆ ಸಂವಹನ ಮಾಡಲಾಗುವುದಿಲ್ಲ.
  5. ಡೇಟಾ ಸಂಗ್ರಹಣೆ: ಆಕ್ಸೆಂಟಸ್ ನೆಟ್‌ವರ್ಕ್‌ಗಳು (ಇಯು) ಹೋಸ್ಟ್ ಮಾಡಿದ ಡೇಟಾಬೇಸ್
  6. ಹಕ್ಕುಗಳು: ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ನೀವು ನಿಮ್ಮ ಮಾಹಿತಿಯನ್ನು ಮಿತಿಗೊಳಿಸಬಹುದು, ಮರುಪಡೆಯಬಹುದು ಮತ್ತು ಅಳಿಸಬಹುದು.