[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: how could i get the hexadecimal content in memory at address FFFF0000-FFFFFFF0?





2008/7/15 Star Liu <minxinjianxin@gmail.com>:
2008/7/14 Taishan <taishan1982@gmail.com>:
> 另外向你推荐一件模拟器软件bochs。
> vmware这类偏向应用的模拟器软件为了最大化发挥机器的性能,利用CPU的保护模
> 式下的虚拟机技术拦截中断及IO操作,但各个指令还是要放到真正的CPU上执行
> 的,是一种"部分"的模拟。
> 而bochs是一个完完全全的软件模拟器,每一个指令都被bochs程序进行解释并执
> 行,而不是放到CPU上直接执行,这样作虽然牺牲了性能,但可以做到很多vmware
> 这类模拟器不能做到的事情,你甚至可以像调试程序那样单步运行和在运行时改变
> 内存的内容以及CPU的寄存器状态等。因此bochs非常适合作为学习研究之用,或者
> 说bochs是一个"玩具"更为恰当,呵呵。

这东西确实挺伟大的,软件行业真是人才济济啊,呵呵
不过有个牛人建议我这种基础薄弱的人(不懂操作系统原理)先多学学理论,再去搞代码,我也觉得挺对的。把他的建议贴出来供大家参考吧


Star Liu wrote:

   I'm a self-learner of computer software, I hope I can know software
   very clearly from the first instrction to the end applications. I have
   read Intel IA32 and 64 architecture manuals, so I know some theories
   about CPU execution environment, now I'm willing to read the real
   code, my idea is to get the binary code, then follow its execution to
   figure out the very basis of software, then i may continue to figure
   out kernel....


I tend to believe this is the wrong path for learning. It is wrong
because PCs are becoming very complex systems, and because to learn
something you need some simpler & pedagogical stuff (ie some good
abstractions)

I would suggest instead:

 before all, read carefully all the web pages I referenced before!

 first read a good book on operating systems. http://www.prenhall.com/tanenbaum/
http://www.cs.vu.nl/~ast/books/mos2/

 Then read a good book on the internals of some kernel, in particular
on linux or minix
http://www.amazon.com/Linux-Kernel-Internals-Michael-Beck/dp/0201331438
http://tldp.org/LDP/tlk/tlk.html
http://kernelbook.sourceforge.net/
http://kniggit.net/wwol26.html
http://books.regehr.org/reviews/understandingthelinuxkernel.html
http://www.kroah.com/lkn/
http://www.informit.com/store/product.aspx?isbn=0131181637
http://www.minix3.org/
http://www.pearsonhighered.com/educator/academic/product/0,,0131429388,00%2ben-USS_01DBC.html

 Read a good book on the internals of microprocessors
http://computer.howstuffworks.com/microprocessor.htm

 Read some academic stuff on non Posix ways of designing an operating system.
http://www.coyotos.org/
http://tunes.org/

eventually, code some kernel code, either a Linux module, or a small
kernel. This is very time consuming (I did try myself), mostly because
of very low level devices details.
Also read stuff describing PC hardware, like
http://oreilly.com/catalog/9780596005139/


I really and strongly suggest you to spend much more time on reading &
learning, before coding.

--
Regards!
Star
Shanghai, China

如果真正的把这些资料读完,也要花费好长时间。。。

--
Border
Blog: http://b0rder.com/
Mail: borderj {at} gmail.com

Reply to: