xv6

    1

    2答えて

    システムコール "clone()"を使用してxv6でスレッドを作成したいが、スレッドを作成したい場合はスタックの作成について混乱している。 ebp、esp、eipなどの対応するレジスタポインタを作成します。しかし、私はこれらのレジスタポインタの値を設定する方法を知らない。ここで は(クローンのコードです)私たちは、このようなレジスタポインタの値を設定する必要がある理由xv6で、私にはわからない..

    0

    1答えて

    私はxv6のコードを読んでいて、Makefileを読むのが難しいと思っています。 1. "CFLAGS += $(shell $(CC) -fno-stack-protector -E -x c /dev/null >/dev/null 2>&1 && echo -fno-stack-protector)" 2. "LDFLAGS += -m $(shell $(LD) -V | grep el

    5

    2答えて

    私はxv6に基づいているOSクラスをやっていて、それを実行する必要のあるプログラムを書いています。 私はmake qemu-gdbでカーネルコードをデバッグできますが、自分のユーザープログラムをデバッグする方法がわかりません。 私はcatをデバッグしたいと言いますが、どうしたらいいですか? ありがとう P.S. xv6タグはありませんか?この質問はここに行かなければならないのでしょうか?

    -4

    1答えて

    私は、コンパイルとビルドが可能で、最終的に別のCファイルからCファイルを実行できるのではないかと思っていました(このCファイルは最終的にシステムコールファイルになります)。 すなわち ... // Calling gcc(?) or something to compile and build the executable /* running the executable */ // Ex

    -2

    1答えて

    私は初心者であり、自分自身でシステムコマンドを書くことについて何も知らない。これは私のクラス割り当てです。どんな助けも素晴らしいだろう。おかげさまで

    0

    2答えて

    実際のプロセスの数を返すgetprocs()というシステムコールを実装しようとしています。私はすでに新しいシステムコールを追加するためのすべての必要性を実装しました。このシステムコールは、テーブル内のプロセスを取得し、それらを構造体の配列にコピーします。構造体はuprocと呼ばれ、メンバーはint pid、int ppid、およびchar nameです。その後、プロセスをツリー形式で印刷しようとす

    1

    1答えて

    XV6をコンパイルする前に、私は自分のコンパイラツールチェーンを構築するためにthis pageを読みました。結果は似ています。 ➜ xv6-public git:(master) ✗ i386-jos-elf-objdump -i BFD header file version (GNU Binutils) 2.27 elf32-i386 (header little endian, da

    1

    2答えて

    ここに私の 'translate()'がproc.cにあります 私はポインタの仮想アドレスを与えられた物理アドレスを取得したいと思いますが、 proc.h.に住んでいるグローバル変数procあります int translate(void* vaddr) { cprintf("vaddr = %p\n",vaddr); int paddr; pde_t *pgdir; pte_t

    -1

    1答えて

    qemuエミュレータを使用してgdbカーネルでxv6をデバッグしようとしています。 これまでどおり、gdbはファイルに対してどのような追加も認識しません。例えば、それは文句を言わない、たとえば、新しいファイル、または既存のファイルでも、新しい行を認識: static inline void lcr3(uint val) { asm volatile("movl %0,%%cr3" :

    2

    1答えて

    いずれかを見ることができる理由を以下IFS、行、 が使用されているxv6-rev6コードで3279から3285: int num; num = proc−>tf−>eax; if (num >= 0 && num < SYS_open && syscalls[num]) { proc−>tf−>eax = syscalls[num](); } else if (num >= SYS