返回列表 发帖

[原创]Linux内核2.4.20升级至2.6.0

[watermark]做好一切备份准备后,去下载内核。linux-2.6.0.tar.gz
  1. #tar zvxf /linux-2.6.0.tar.gz
  2. #cd linux-2.6.0
  3. #make mrproper
  4. #make menuconfig
  5. #make
  6. #make modules-install
  7. #make install
  8. #reboot
复制代码
不过安装好后,有点郁闷,grub进不去2.6的内核,2.4.20的内核还是可以进去的。明天解决了,困了。。  :em25: [/watermark]

[原创]Linux内核2.4.20升级至2.6.0

写的不错,好帖子不要沉了,UP

TOP

[原创]Linux内核2.4.20升级至2.6.0

那天没有写完,其实是2.6内核需要把ext3也编译进去,还要升级module-init-tools
有空了再写下去。。

TOP

[原创]Linux内核2.4.20升级至2.6.0

struct ext3_super_block {
    __u32   s_inodes_count;     
    __u32   s_blocks_count;     
    __u32   s_r_blocks_count;   
    __u32   s_free_blocks_count;   
    __u32   s_free_inodes_count;   
    __u32   s_first_data_block;
        …
};
在 super block 中,Ext2和Ext3文件系统的magic签名,都等于 0xEF53。如果不等的话,则硬盘分区上肯定不是一个正常的Ext2或Ext3 文件系统。Ext2和Ext3 的兼容性很好

索引节点数据结构
struct ext3_inode {
    __u16   i_mode;     
    __u16   i_uid;      
    __u32   i_size;   
};

在 inode 里面,可以存放 EXT3_N_BLOCKS(= 15)个 block 指针。用户数据就从这些 block 里面获得。15 个 blocks 不一定能存放全部的用户数据,所以采取了一种分层的结构。
测试性能读文件操作时间自编代码
void read_files(int n, int sz){
    …
for(i = 0; i < n; i++) {
        struct timeval start, end;
        gettimeofday(&start, NULL);
        for (pos = 0; pos < (sz * 1024 * 1024); pos += BSIZE) {
            if (read(fd, buf, BSIZE) != BSIZE) {  
               fprintf(stderr, "Problem reading file\n");
                exit(2);
             }
         }
         gettimeofday(&end, NULL);
         display_rate(start, end, sz);
    }
    …
}

文件系统性能,K值在1的左右波动不大,在2.6内核下,两种文件系统的性能差别不大。2.6内核下,Ext3文件系统的写性能均比Ext2文件系统略差,二者的读性能几乎相等,甚至Ext3有更好的表现。在Ext3文件系统中,所有的文件系统的变化、添加和改变都被记录到“日志"每隔一定时间,文件系统会将更新后的文件metadata及文件内容写入磁盘,之后删除这部分日志,重新开始新日志记录。而在对元数据做任何改变以前,文件系统驱动程序会向日志中写入一个条目,这个条目描述了它将要做些什么。然后,它继续并修改元数据。

TOP

[原创]Linux内核2.4.20升级至2.6.0

不知道新的内核有什么新的特性?

TOP

返回列表 回复 发帖