問題タブ [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.
linux - ユーザー空間プログラムの 1 つで「デマンド ページング」を無効にするにはどうすればよいですか?
専用のテストでは、ユーザー空間プログラムの 1 つだけで「デマンド ページング」を無効にする必要があります。
どうすればこれを行うことができますか?(組み込み Linux アプライアンス、2.6 カーネル)
linux - Linuxカーネルをgcc以外でコンパイルすることは可能ですか?
誰かが Linux カーネルを gcc 以外のコンパイラでコンパイルできたのではないかと思います。または、誰かが試したことがある場合は?質問はばかげているか学術的なように思えるかもしれませんが、次の質問への回答を考えたときに浮かびました。
一部の操作の原子性は、CPU アーキテクチャだけでなく、使用するコンパイラにも依存しているようです。では、Linux の世界には gcc 以外のコンパイラが存在するのだろうか。
licensing - GPL カーネル モジュールを使用した非 GPL カーネル モジュール
私が働いている会社は、クローズド ソースのカーネル モジュール (.ko ファイル) を開発しています。このモジュールは、gpl2 モジュールに含まれている関数を呼び出す必要があります。基本的に、次のような状況があります。
これは合法ですか?この例では GPL2 ライセンスに違反していますか? closed.c には gpl2 ヘッダー ファイルが含まれていないことに注意してください。
multithreading - 1024 CPU のカーネル スケジューリング
Azul Systems には、何千ものキャッシュ コヒーレント CPU をサポートするアプライアンスがあります。何千もの同時実行スレッドをスケジュールするために、オペレーティング システムにどのような変更を加える必要があるかについての洞察が欲しいです。
linux - 信頼できるUDP
UDP を信頼できるものにするために Linux カーネル モジュールを開発するにはどうすればよいですか? これは私の大学の課題であり、どのように進めればよいかわかりません。新しいカーネル モジュールをロードして、Linux カーネルのデフォルトの UDP 動作を変更するにはどうすればよいですか? そのようなカーネルモジュールをどのようにプログラムするのですか?
c - カーネルモジュールのプロセス記述子
カーネルモジュール内のプロセスのプロセス記述子へのポインタを取得することは可能ですか?可能であれば、plsはどのように投稿しますか?プロセスによって開かれたすべてのファイルと、各ファイル記述子のそれらのオフセット値を見つける必要があります。
open-source - SANOS オペレーティング システム カーネルの使用経験はありますか?
オープン ソース カーネルをブラウジングしていたときに、SANOSに出くわしました。これは、オープン ソースとして存続させる価値のあるもののように感じます。最新の標準に合わせるには、次の機能強化が必要です。
- 複数の CPU/コアのサポート
- IPv6 を追加 (現在は IPv4 のみをサポート)
- 8192 の同時スレッドを実行する機能
- JDK 1.6 に必要な追加のエミュレーションをサポートする機能
そこで、次の質問があります。
- サノスを使って共有したい経験を持っている人はいますか?
- より良いものにするために時間を提供したい人を引き付ける最も適切な方法は何ですか?
- BSD や Linux で使用されているカーネルよりも優れている点は何ですか?
- このプラットフォームに Ruby を移植するメリットはありますか?
linux - プロセスがブロック/実行に費やす時間の決定
さて、私が持っているプログラミングの割り当てについては (はい、私たちは皆、ヘルプに適していると思われる情報源に目を向けることができます)、プロセスがブロック/スリープ/実行にどれだけの時間を費やしているかを調べなければなりません。
私の最初の試みは、次のような bash スクリプトを作成することでした。
しかし、その後、すべての問題がスリープ状態を報告しています。さらに、この方法では狂ったようにポーリングする必要があります...したがって、テストを実行すると結果が変わる可能性があります... (うーん)
現在、syscalls を使用して Linux の新しいバージョンをコンパイルするか、プロセスの状態を追跡し続ける方法は問題外ではありません。私の唯一の心配は、変化するプロセス状態を追跡し、何も見逃さないようにする方法を見つけようとすることです...
c - open() は「そのようなデバイスはありません」というエラーを返しますが、そのようなデバイスはあります (Linux)
少し古いDAQを使用しようとしていますが、コンパイルするために古い(2004年頃)デバイスドライバーを取得するためにいくつかのフープをジャンプする必要がありました(DTI-DT340 Linux-DAQ-PCI)。
コンパイル、カーネル モジュールのロード、カードの検出、mknod を使用したキャラクター デバイスの作成ができるようになりました。
しかし、これらのデバイスを開くことができず、しようとするとerrno 19 (ENODEV) 'No such device'が表示され続けます。
しかし、mknod はそれを作成することに何の不満もありませんでした。
私が怠っていることはありますか?オープンが失敗する理由は何ですか?
ドライバーをロードしてデバイスを作成するために使用するスクリプトを次に示します。
いくつかの追加情報:
回答: printk は、-ENODEV が open() の内部からスローされたことを確認しました。オールドスタイルを踏襲
(これは非推奨です)、if(!pdev)
最終的に true になり、-ENODEV を返します。
私は少しずつ近づいています-より現代的なメカニズムを使用するには、pciコードを修正して更新する必要があると思います...