問題タブ [procfs]
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.
linux-kernel - カーネル空間でカーネルパラメータにアクセスする方法
これは私のラボの割り当ての1つです。ここでprocエントリを作成する必要があります:/ proc / sys / kernel /そして、追加したprocエントリのさまざまな値のユーザースペース変数を操作するシステムコールを作成する必要があります。たとえば、ユーザースペース変数が1で、procエントリが0または1の場合、システムコールはユーザースペース変数を1だけインクリメントするか(procエントリが0 / offの場合)、2を掛けます(procエントリが1の場合)。 /の上)
procエントリを追加するために、次のことを行いました。kernel /sysctl.cのファイルのkernelctlテーブルセクションの下に構造体を追加して、エントリxxxを作成しました。カーネルをコンパイルすると、システムはこのカーネルで正常に起動します。エントリは、/ proc / sys / kernel/xxxとしてprocディレクトリにも追加されます。これで、ユーザースペースから読み取りまたは書き込みを行うことができます。私は猫とエコーの両方を実行して、それぞれの読み取りと書き込みを行いました。
システムコールで次のことを行いました。ユーザースペース変数を読み取るためのシステムコールを作成しました。また、access_ok、copy_from user、copy_to_userなどすべてを完了してテストしました。また、ユーザースペース変数を操作して常にインクリメントするようにしました(今のところ)。
私が直面している問題:ここで、if条件を追加して、「xxx」値をチェックし、ユーザースペース変数をインクリメントするか乗算するかを決定する必要があります。これは私が立ち往生しているところです。システムコールを書いていない。このprocエントリ「xxx」の読み方がわかりません。
- ファイル処理を使用できますか?
- その場合、システムコール内でopen()システムコールを使用する必要がありますか?それは機能しますか?
チェックしたところ、sysctlシステムコールがありましたが、現在は非推奨のようです。このIBMチュートリアルでは、procエントリの読み取りについて説明しています。しかし、create_proc_entryは/ proc / sys / kernelディレクトリ内のパラメータには適用されませんよね?もしそうなら、どうすればread proc entry関数を使用できますか?
linux - / proc / $ PID / pmapsに表示されるライブラリはどれですか?
Linuxでは、/ proc / $ PID / pmapsを調べて特定のプログラムによってロードされたライブラリを確認でき、プログラムは/ proc / self/pmapsを開いて自分自身がロードしたライブラリを確認できます。
pmapにはダイナミックライブラリのみが含まれることはわかっています。カーネルは、後でdlopenする可能性のあるライブラリを予測できないため、それらは/ proc / self/mapsに含まれないと思います。しかし、他のいくつかのシナリオがわかりません。
ビルド時にリンクされているが、まだ関数を呼び出していないライブラリは含まれていますか?私の理解では、Linuxはシンボルのリンクを最初に使用するまで遅らせるので、シンボルが表示されるかどうかはわかりません。
pmapには、再帰的に使用されるすべてのライブラリが含まれていますか?たとえば、pmapで各ライブラリを確認し、その上でlddを実行してから、それらに対してlddを実行すると、元のpmapになかった新しいライブラリが見つからないはずです。私はこれをいくつかのバイナリで試しましたが、そうであるように見えますが、運が良かったのかもしれません。
c++ - root 以外のユーザーとしてプログラムで Linux キャッシュを削除する
テスト目的で、Linux の procfs の下にある drop_caches ファイルに書き込むことで、キャッシュされたメモリを削除できます。これはルートとしてのみ実行できます。これは組み込み Linux 上にあるため、sudo はありません。
投稿から何かを行うことで、C ++でプログラムでファイルに書き込むことができます-> LinuxシステムでC ++でファイルシステムメモリキャッシュをプログラムでクリアする方法は?
課題は、root 以外のユーザーとしてアプリを実行しているときにこれを行うことです。再起動すると、アクセス許可は次のようになります。
そして、root であっても、これらの権限を変更できないようです。
Linuxでこれを達成するにはどうすればよいですか? procfs ファイルのパーミッションを変更することはできますか? 必要に応じて、カーネルを完全にカスタマイズできます。ありがとう -
android - APIまたは何か不足しているAndroidの奇妙なBluetoothの問題
私の問題は、自分の Bluetooth デバイスのデバイス クラスとデバイス サービスを見つけることができないことです。を使用して接続状態、MACアドレス、およびその他の情報を見つけることはできますが
sys>devices>virtual path で Bluetooth フォルダーにアクセスしようとしましたが、このフォルダーはすべてのデバイスにあるわけではありません。
proc ファイル システムにアクセスして Bluetooth 情報を取得する方法はありますか? はいの場合は、助けてください。
をフェッチすることでリモートデバイスのBluetoothクラスにアクセスできるのは本当に奇妙です
btAdapter.getBondedDevices();// BluetoothDevice クラスのセットを返します
しかし、デフォルト(独自の)Bluetoothのデバイスクラスを取得できません。
linux - Linux での TCP RTT の取得
TCP フローの RTT を取得する必要があります。proc ファイル システムを調べましたが、TCP の RTT 値を取得できませんでした。RTT がどのファイルに保存されるかについて何か考えがある場合は、共有してください。
前もって感謝します。
c - Linuxスケジューラのタイムスライスを知るには?
Linux カーネルのタイム スライス (またはクォンタム) の値を探しています。
具体的な質問:
/proc
そのような情報を公開するファイルはありますか?- (または) ディストリビューションの Linux ヘッダーで明確に定義されていますか?
- (または) この値を公開する Linux API (おそらく sysinfo) の C 関数はありますか?