問題タブ [kernel]

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.

0 投票する
2 に答える
1097 参照

windows - Windows プロセス構造: ユーザー情報の保存方法

Windows NT カーネルのプロセスの EPROCESS 構造に情報を保存したいと考えています。私の目的は、winlogon が呼び出されたときに、どのユーザーがログインしているかに基づいて、次のプロセスに一意の値を割り当てたいということです。しかし、この一意の ID を保存する場所がわかりません。私は、プロセスの EPROCESS ブロック内の一部の情報 (トークンなど) をカーネル オブジェクトの直接変更の方法で変更することに成功しました。

ps EPROCESS ブロックを変更するために、デバイス ドライバーを使用しました。

0 投票する
3 に答える
12854 参照

linux - Linux カーネルのキュー

私は、キューの一般的なカーネル実装、つまり先入れ先出しデータ構造に関する情報を探していました。おそらく一般的に使用されるものであり、リンクされたリストの標準(list_head構造の形式)があるため、あるかもしれないと思いました。私が見つけられない標準的なキューの実装がありますか、それともリンクされたリストをキューとして使用し、最善を尽くすのが一般的な方法ですか?

0 投票する
2 に答える
16350 参照

linux - Linux ドライバーモジュールの呼び出しを作成する方法/別のドライバーモジュールを使用する方法は?

Linux ドライバーのローダブル モジュールを開発していますが、ドライバーで別のデバイスを使用する必要があります (別のドライバーにスタックされたドライバーのようなもの)。

ドライバーで別のドライバーを呼び出す/使用するにはどうすればよいですか? どちらもカーネルにあると思うので、別のドライバーを直接使用できる方法があるかもしれません。

0 投票する
4 に答える
6371 参照

linux - マルチスレッド アプリケーションを実行する新しいクアッド コア プロセッサの Linux カーネルはどれくらい優れているか

新しいクアッド コア プロセッサでマルチスレッド アプリケーションを実行する Linux スレッド スケジューラの経験がある人はいますか? そのような人がいる場合は、さまざまなスレッドを管理するカーネルのパフォーマンスについての経験をここに書いてください。

ありがとうございました。

0 投票する
6 に答える
4344 参照

linux - Linuxカーネルに潜在的なパッチをどのように提出しますか?

現在変更されている別の(非常に一般的に使用されている)アプリケーションの特定の動作に依存するソフトウェアがいくつかあり、現在の実装は実行可能ですが、最適とは言えません。

この変更は、特にパフォーマンス監視の分野で、他の多くのアプリケーションに影響を与えた可能性があると考えており、他の多くの潜在的な問題を改善すると思われる解決策を見つけました。

残念ながら、この解決策はカーネルの変更であり(比較的単純ですが、詰め込むと影響が大きくなります)、レビューのためにカーネルパッチを提出した経験はありません。

SOの誰かが実際にパッチを提出しましたか(すべての回答に感謝しますが、プロセスを経て失敗したものから最高のものが得られると思います)?あなたはそれを受け入れましたか(アランコックスらがSOにぶら下がっている可能性は何ですか)?

従うべき正しいプロセスは何ですか?Linusには、あなたが彼に届く前に通過することになっている保護者の幹部がいることを知っているので、私はLinusに電子メールを送信するつもりはありません。カーネルの特定のセクションの責任者を見つけるにはどうすればよいですか。

カーネルの世界で聞いたことのない人が貢献できると思うのは楽観的すぎるかもしれませんが、知りたいと思います。


詳細を編集:

この変更は、実際にはパフォーマンスのバグによるものではなく、プロセスの終了時に書き込まれる(現在の)プロセスアカウンティングエントリの改善(私の見解では)です。

Websphere App Server(ああ、IBM、彼らの小さな心を祝福する)はそれが行うことを変えました。JVMは、エントリが書き込まれるように定期的に終了し、それをチャージバックに使用できました。これで、JVMが数か月間放置されます。つまり、定期的にWASを強制的に停止しない限り、データをタイムリーに利用できなくなります。どういうわけか、IBMのソフトウェアグループが私たちのためにソフトウェアを修正するつもりはないと思います:-)。いずれにせよ、他の長期的なプロセスに役立つ機能かもしれないと私は信じています。

現在、タイプ3プロセスアカウンティングレコードは、プロセスの終了時に書き込まれます。私たちが見ているのは、プロセスがまだアクティブである間にタイプNレコードを定期的に書き込むメカニズムであり、最後の書き込み以降の数値を示します(または、これが初めて)。チャージバックまたはパフォーマンス監視アプリケーションは、タイプ3レコード(完全に変更されていない)または暫定タイプNレコードのいずれかを使用することを選択できます。現在の回避策は、特定のプロセスについて/ proc / PID / statを監視することですが、実際のプロセスアカウンティングとうまく統合されていないため、これは恐ろしい問題です。

頻繁である必要はありませんが(24時間で満足です)、現在プロセスexit()でのみ実行されている作業は、プロセスコンテキストスイッチで時折実行する必要があるため、パフォーマンスに影響を与える可能性があります。Linus et alは、コードの影響が大きい領域である可能性があるため、そのアイデアを好まない可能性があります(最後の書き込みから24時間経過したかどうかを確認する場合でも、書き込みが遅すぎる可能性があります)。

それでも、これまでのすべての回答に感謝します。数日お待ちください。ベストアンサーを受け入れます。

0 投票する
1 に答える
5001 参照

linux - タスクレット内から wake_up_interruptible() を実行しても安全ですか?

read() を介してユーザーランド プロセスにデータを提供するカーネル モジュールがあります。そのプロセスは、データが利用可能になるまで読み取り時にブロックされます。read メソッドの wait_event_interruptible() を使用してこれを実現します。

データは割り込みハンドラから取得され、メモリに吸い込まれ、それを処理するタスクレットをスケジュールします。元のコードは、タスクレットをスケジュールし、wake_up_interruptible() を呼び出して、ブロックされた読み取りを再度有効にします。ただし、読み取りがユーザー プロセスにデータを渡そうとする前に、タスクレットがデータの処理を完了していない可能性があるため、競合状態が発生します。

問題は、wake_up_interruptible() への呼び出しをタスクレットの最後に移動しても安全かということです。

0 投票する
6 に答える
16799 参照

amazon-web-services - Amazon EC2インスタンスはどのようにカーネルを選択しますか?

Amazonが提供するFedora864ビットAMIを使用するAmazonEC2インスタンスがあり、Fedora10にアップグレードしたいと思います。

「yumupdate」を実行してカーネルとすべてのパッケージをアップグレードして、これを実行してみました。これは正常に機能しているようで、fc10カーネルがインストールされており、インストールされているすべてのパッケージもFedora10バージョンに更新されていることがわかります。

ただし、fc8カーネルがまだインストールされていることにも気付きました。イメージを再起動すると、fc10カーネルではなくfc8カーネルが実行されて戻ってきます(これは「uname-a」の出力から推測されます)。

イメージをfc10カーネルで起動するために必要な追加の手順はありますか?それとも可能ですか?アマゾンのドキュメントは私にとって有用なものを何も見つけませんでした。

0 投票する
7 に答える
62386 参照

linux - Linuxカーネルモジュールを使用しているものを把握する方法はありますか?

カーネル モジュールをロードし、ロードされたモジュールを で一覧表示すると、モジュールlsmodの「使用回数」(モジュールへの参照を持つ他のモジュールの数) を取得できます。しかし、モジュールを使用しているものを把握する方法はありますか?

問題は、私が開発しているモジュールがその使用カウントが 1 であると主張しているためrmmod、それをアンロードするために使用できないが、その「by」列が空であることです。これは、モジュールを再コンパイルして再ロードするたびに、マシンを再起動する必要があることを意味します (または、少なくとも、それをアンロードする他の方法がわかりません)。