|  | #!/bin/ash | 
|  | cat '#V/clone' | 
|  | ls '#V' | 
|  | #cp /bin/hlt '#r' | 
|  | #cp /bin/POR '#r' | 
|  | #cp /bin/POR1M '#r' | 
|  | #cp /bin/JMP1B1M '#r' | 
|  | # our kernel. | 
|  | #echo mapmem '#r/hlt' 1 0 0 0x2001 > '#V/vm0/ctl' | 
|  | # also drop it on top of the reset vector. | 
|  |  | 
|  | #echo mapmem '#r/POR' 1 0 0xff000 0x1000 > '#V/vm0/ctl' | 
|  | # just fill the first 1M with hlt instructions. | 
|  |  | 
|  | #echo mapmem '#r/JMP1B1M' 1 0 0  0x100000 > '#V/vm0/ctl' | 
|  | echo "READ" | 
|  | read i | 
|  | # this works because the region code poisons each page as follows: | 
|  | # 2048 of xorl %rax, %rax | 
|  | # and then a 1: jmp 1b | 
|  | # loop. Reading files is NOT working but I'll try to see why | 
|  | # that is. | 
|  | echo region  1 0 0xff000  0x1000 > '#V/vm0/ctl' | 
|  | #echo mapmem '#r/JMP1B1M' 1 0 0xff000  0x1000 > '#V/vm0/ctl' | 
|  | echo "READ" | 
|  | read i | 
|  | echo 'run 0 0 0' > '#V/vm0/ctl' | 
|  |  | 
|  |  |