0

对于一个项目,我必须更改零驱动程序以产生无限量的“a”而不是通常的零。所以我修改了/usr/src/drivers/memory/memory.c

这是原来的:

/* Initialize /dev/zero. Simply write zeros into the buffer. */
for (i=0; i<ZERO_BUF_SIZE; i++) {
    dev_zero[i] = '\0'; //This is line 247
}

这是我的修改:

/* Initialize /dev/zero. Simply write zeros into the buffer. */
for (i=0; i<ZERO_BUF_SIZE; i++) {
    dev_zero[i] = 'a'; //This is line 247
}

所以我保存并关闭并重新编译 memory.c 但我说的时候没有任何变化cat /dev/zero。我什至尝试删除 /dev/zero 并使用mknod /dev/zero c 1 5它来创建一个新的。但仍然没有任何变化。我也试过重启。

我是在更改错误的文件还是没有编译正确的文件?

4

2 回答 2

0

假设您正在编辑内核源代码,您可能需要重新启动才能看到您的更改生效。

于 2015-08-24T16:25:55.117 回答
0

好的,我发现执行以下操作可以解决问题:

cd /usr/src/drivers/memory/
make
cd ..
make clean
make build
make install
cd ..
make world
make install
cd kernel
make clean
make
shutdown

所以基本上重新编译了几个目录,然后重新启动操作系统。

于 2015-08-24T17:23:31.270 回答