問題タブ [linux-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 投票する
10 に答える
175419 参照

linux - Linuxカーネルの可能性の高い/可能性の低いマクロはどのように機能し、それらの利点は何ですか?

Linuxカーネルのいくつかの部分を調べてみたところ、次のような呼び出しが見つかりました。

また

私はそれらの定義を見つけました:

それらが最適化のためのものであることは知っていますが、どのように機能しますか?そして、それらを使用することで、どのくらいのパフォーマンス/サイズの低下が期待できますか?そして、少なくともボトルネックコード(もちろんユーザースペース)では、面倒な(そしておそらく移植性を失う)価値があります。

0 投票する
8 に答える
115006 参照

c - vmalloc と kmalloc の違いは何ですか?

kmallocグーグルで検索したところ、メモリの連続した物理ブロックを取得することが保証されているため、ほとんどの人が の使用を主張していることがわかりました。ただし、kmalloc必要な連続した物理ブロックが見つからない場合は失敗する可能性もあるようです。
メモリの連続したブロックを持つことの利点は何ですか? 具体的には、システム コールでメモリの連続した物理ブロックが必要になるのはなぜですか? 使えなかった理由はありますか? 最後に、システム コールの処理中にメモリを割り当てる場合、指定する必要がありますか? システムコールはアトミックコンテキストで実行されますか?vmalloc
GFP_ATOMIC

GFP_ATOMIC
割り当ては優先度が高く、スリープしません。これは、割り込みハンドラー、下半分、およびスリープできないその他の状況で使用するフラグです。

GFP_KERNEL これは通常の割り当てであり、ブロックされる可能性があります。これは、スリープしても安全な場合にプロセス コンテキスト コードで使用するフラグです。

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

file-io - Linux カーネル モジュールでのファイル I/O

ファイルを開いて読み取る必要がある Linux カーネル モジュールを作成しています。それを達成するための最良の方法は何ですか?

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

c - 仮想領域からページへ

Linux カーネルでは、 を指定すると、プロセスの のリストにアクセスできtask_structます。これらの が与えられた場合、実際にこの vma に対応するを取得するにはどうすればよいですか?mmvm_area_structvm_area_structstruct page

mm/memory.c などで関数を探してみましたが、途方にくれました。

編集: アイデアは、vma 内のどのページが現在メモリ内にあり、どのページがそうでないかを見つけることです。しかし、これは宿題の小さな部分であり、自分で解決する必要があるため、誰かにこの方法を教えてもらいたくありません。しかし、この vma に対応するページを見つける方法がわかりません。ページを見つけることができれば、有効な pfn があるかどうかを確認できると思います。

0 投票する
13 に答える
66653 参照

c - Linuxカーネルで関数のポインタから関数の名前を取得する方法は?

Cで関数のポインタから関数の名前を取得する方法は?

編集:実際のケースは次のとおりです。Linuxカーネルモジュールを作成していて、カーネル関数を呼び出しています。これらの関数の一部はポインターであり、カーネル ソースでその関数のコードを検査したいと考えています。しかし、それがどの関数を指しているのかわかりません。システムが失敗すると(カーネルパニック)、現在のコールスタックと関数の名前が画面に出力されるため、それができると思いました。でも、私は間違っていたと思います... 私ですか?

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

linux - Linux での TCP/IP 接続の最大数の増加

サーバーをプログラミングしていますが、接続数を「無制限」に設定しても帯域幅が飽和していないため、接続数が制限されているようです。

Ubuntu Linux ボックスが一度に開くことができる接続の最大数を増やしたり、削除したりするにはどうすればよいですか? OSがこれを制限していますか、それともルーターまたはISPですか?それとも別のものですか?

0 投票する
9 に答える
2548 参照

c - Linuxカーネル(またはその他の低レベルのもの)は、Cの書き方の「良い」例ですか

「Cの最適な用途は何ですか」という質問に続きます。

Linux カーネルは有名でよく考えられた C プログラムのようです。しかし、それは主流の「ベストプラクティス」C の良い例ですか?

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

c++ - Ubuntu Eee でカーネルをコンパイルするには何が必要ですか?

LinuxでカスタムUSBドライバーを作成するためのチュートリアルに従っています.g ++を使用して、Ubuntu Eeeを搭載したEee PCでこのことを開発したいと考えています。残念ながら、チュートリアルに従うには、linux/module.h ヘッダー ファイルが必要です。私が理解していることから、これを機能させるにはカーネルをコンパイルする必要があります。以前にカーネルをコンパイルしたことがなく、見つけたすべての指示はデスクトップ Ubuntu 用です。

これを実行してクラス プロジェクトで使用できれば、クラスで追加の単位を取得できるため、Eee でこれを実行しています。

私がフォローしているチュートリアルはここにあります: http://www.linuxjournal.com/article/7353 とここ: http://www.linuxjournal.com/article/4786

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

linux - unistd.hなしで現在のプロセスのプロセスIDを取得する

私はデッドロック検出アルゴリズムに取り組んでおり、カーネルレベルのライブラリのみが提供されて#include <linux/somelibrary>います。getpid()と同様の現在のプロセスのpidを取得できるカーネルレベルの機能はありunistd.hますか?