Change the blocked method from mmap() to read()

Now mmap() won't be block and read() will be blocked.If there are enough data
read() just return and then hope that the userspace program will call mmap() to
read the data. Otherwise, read will be blocked.
This method fix a bug that will blcok the landscape_sys when opening a new shell
window.