当前位置: 技术问答>linux和unix
读kernel0.11版本的一点感触:都是为了追求效率?
来源: 互联网 发布时间:2015-09-07
本文导语: 这几天看了一下kernel0.11版本中内存管理memory.c 我功底比较差,所以看其中的一个函数free_page_tables()中的地址变换时,刚开始时搞得我 晕头转向。 line 114: size = (size + 0x3fffff) >> 22; line 115: dir = (unsigned...
这几天看了一下kernel0.11版本中内存管理memory.c
我功底比较差,所以看其中的一个函数free_page_tables()中的地址变换时,刚开始时搞得我
晕头转向。
line 114: size = (size + 0x3fffff) >> 22;
line 115: dir = (unsigned long *) ((from>>20) & 0xffc);
其中line114似乎可以改为size=size>>22+1,其中+1的原因似乎是因为目录表中第0项不用的原因。
但是原著的写法让人有点难懂;
line115中最直观的写法应该是dir=(unsigned long *) ((from>>22) 22 等价于 size>>22
而不是size>>22 + 1
我功底比较差,所以看其中的一个函数free_page_tables()中的地址变换时,刚开始时搞得我
晕头转向。
line 114: size = (size + 0x3fffff) >> 22;
line 115: dir = (unsigned long *) ((from>>20) & 0xffc);
其中line114似乎可以改为size=size>>22+1,其中+1的原因似乎是因为目录表中第0项不用的原因。
但是原著的写法让人有点难懂;
line115中最直观的写法应该是dir=(unsigned long *) ((from>>22) 22 等价于 size>>22
而不是size>>22 + 1
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。