#include #include #include #include #include #include #include #include #define SIZE 16384 int main(void) { int fd = open("/dev/mem", O_RDWR); if (fd < 0) error(1, errno, "open"); char *vmem = mmap(0, SIZE, PROT_READ, MAP_SHARED, fd, 0xB8000); if (vmem == MAP_FAILED) error(1, errno, "mmap"); #if 1 for (int j = 0; j < 25; j++) { for (int i = 0; i < 80; i++) { printf("%c", vmem[j*80*2+i*2]); } } #endif //static char t[16384] __attribute__((aligned(4096))); char *t = malloc(4096); printf("%p\n", t); memcpy(t+16, vmem, 32); return 0; }