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

したがって、基本的にいくつかのディレクトリを再コンパイルしてから、OSを再起動します。

于 2015-08-24T17:23:31.270 に答える