問題タブ [os161]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - OS/161 で新しいシステム コールを追加するにはどうすればよいですか?
OS/161 コードに新しいシステム コールを追加しようとしていますが、プロトタイプを追加する場所がわかりません。カーネル空間とユーザー空間に追加することになっていると思いますが、プロトタイプをどのファイルに配置すればよいか正確にはわかりません.OS/161でサンプルシステムコールを追加する方法を説明するガイドはどこかにありますか. ?
printone()
テストとして、ユーザーがそのプログラムを実行すると、「1」が出力されるという関数を追加しようとしています。
operating-system - ページ番号とオフセット
私はさまざまな種類のメモリ管理を学んでいます。仮想アドレスにオフセットビットがあることのポイントがわかりません。また、なぜページサイズが力になるの2
でしょうか。
私の主な混乱は次のとおりです。特定の仮想アドレスにアクセスするための命令で使用されているオフセットの例を教えてください。
私の2番目の混乱は次のとおりです。通常のステートメントは、論理アドレスのサイズがで
2^m
、ページサイズが2^n
である場合、論理アドレスの上位mnビットがページ番号を指定するというものです。
operating-system - os161 のアドレス空間とページ テーブルの関係は何ですか?
アドレス空間とページテーブルの関係は? 各プロセスには、仮想アドレスと物理アドレスをマップするページテーブルが必要であることを知っています。しかし、アドレス空間は何をするのでしょうか? os161 では、アドレス空間は次のようになります。
以下を使用して、仮想アドレス (vaddr) を物理アドレスに変換します: (セグメント 1 の vaddr を想定)
アドレス空間を使用して、仮想アドレスから物理アドレスを取得できるようです。addrespace を使用して仮想メモリから物理メモリへのマッピングを実行できる場合、なぜページ テーブルが必要なのでしょうか?
あなたの助けを楽しみにしています!ありがとう!
repository - os161はcvsを介して変更をコミットしています
cvs にコミットしているときに、サーバーへの接続がリセットされ、接続を取り戻した後、ウィンドウを閉じなければなりませんでした。もう一度変更を cvs にコミットしようとすると
cvs commit: [14:18:31] waiting for MYUSERNAME lock in /home/USER..my folder path
、cvs abort なども検索したと表示され続けます。コマンドがありますが、何もありません。
私は今どうすればいい?
c - cでメモリを構造体に宣言する
1つのファイルに構造体abcがあります
次のように、この構造体を他のファイルで使用しています:
struct abc *t = kmalloc(sizeof(struct abc));
kmalloc は malloc と同等です
次に、次のエラーが発生します。
どこが間違っているのですか?
registry - prog 名と argv の trapframe レジスタ値
私はos161で作業しており、char *program nameとchar **argvのレジスタ値を見つけて、traframe構造からexecvシステムコールに渡したいと思っています
trapframe->tf_a1 は argv 値を格納しますが、trapframe のすべてのデータ型は u_int32 です
どうすればそれらを見つけることができますか?
ありがとう