タグ付けされた質問 「linux-kernel」

Linuxカーネルお​​よびLinuxカーネル関連のトピックに関する質問。システムコール、カーネルのカスタマイズなどの実装の詳細。カーネルの詳細を含まないLinuxユーザー空間のトピックには、[linux]または配布タグの方が適しています。

1
Linuxおよびx32-ABI-使用方法
イントロ 私はちょうど64ビットのインストールに移動し、私は(特にクロム、Firefoxの、MySQLとJavaアプリケーションのようなアプリケーションのための)メモリ使用量に大きな差を経験しています: 以前は4GBで十分でしたが、すぐに使い果たされました! これは64ビットOSのよく知られた副作用であり、64ビットは他の利点ももたらします。 RAMが非常に安価であることに加えて、1 / 2GB RAMを搭載したネットブックがいくつかあります... ...そしてここに来るx32 ABI:この問題を制限することを意図したカーネル機能です。 x32 ABIとは:このpdfに よれば、64ビットの通常のOSと比較してメモリが大幅に向上しています(40%の強化でさえ)。 今私がx32-ABIが必要とすることを理解したならば: CONFIG_X86_X32 = yでコンパイルされたLinuxカーネル3.4 Gcc 4.7 Binutils 2.22 glibc 2.16 アプリケーションに必要なすべてのシステムライブラリをgcc -mx32で再コンパイルする Debianと他のディストリビューションが実際に32x-ABIサポートを備えたlibを出荷していることを知っていますが、この機能を設定するためのドキュメントが見つかりません(Ubuntu 14.04 64ビットを使用しています) これは非常に興味深い機能だと思うので、私や他の人が情報を収集するのを助けるためにこの質問を使用したいと思います。 特に私の目標は、x32-ABIを使用して1つのアプリ(chromeやfirefoxやmysqlなど)を実行することです。

1
「ノースブリッジエラー(ノード0):プローブフィルターディレクトリのECCエラー」
ユーザーの1人のサーバーでの以下のエラーは深刻な問題を示していると心配するメールを受け取りました。トラブルは、以下のエラーがあるされ、すべて私が行かなければならないということ。私は通常、きちんとしたGoogle社員だと思っていますが、この場合、ユーザーが「プローブフィルターディレクトリ」に関するこのエラーに遭遇したインシデントは1つしか見つかりません。 [1044 snapshots @ abc]$ Message from syslogd@abc at Sep 8 02:51:51 ... kernel:[Hardware Error]: CPU:0 MC4_STATUS[Over|CE|MiscV|-|AddrV|-|Poison|CECC]: 0xdc0248d0001f010b Message from syslogd@abc at Sep 8 02:51:51 ... kernel:[Hardware Error]: MC4_ADDR: 0x0000000000010f40 Message from syslogd@abc at Sep 8 02:51:51 ... kernel:[Hardware Error]: Northbridge Error (node 0): ECC Error in the Probe Filter …

1
ACPIエラー/例外、なぜスパムか、それを知り、修正する方法?
私はこれらのエラーが私のdmesgを汚染している: [21720.400079] ACPI Error: [\_TZ_.THRM] Namespace lookup failure, AE_NOT_FOUND (20130328/psargs-359) [21720.400093] ACPI Error: Method parse/execution failed [\_GPE._L1C] (Node f584ec80), AE_NOT_FOUND (20130328/psparse-537) [21720.400112] ACPI Exception: AE_NOT_FOUND, while evaluating GPE method [_L1C] (20130328/evgpe-580) [21960.800116] ACPI Error: [\_TZ_.THRM] Namespace lookup failure, AE_NOT_FOUND (20130328/psargs-359) [21960.800130] ACPI Error: Method parse/execution failed [\_GPE._L1C] (Node f584ec80), AE_NOT_FOUND …

1
カーネルプログラミングを最初から学ぶには?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 6年前休業。 最近卒業しました。また、私はCの基本的な知識しか持っていません。しかし、Linuxカーネルで作業し、必要に応じてカスタマイズしたいと思っています。カスタマイズするだけでなく、自分のアイデアをLinuxカーネルに貢献したいです。 でも今は0から始めています!だから私に開始方法と開始位置を教えてください!

2
Linuxでの奇妙な一時的なネットワーク停止
今から1週間後に気づき、答えが見つからないという非常に迷惑な問題に直面しています。ネットワークが突然応答を停止し、通常はちょうど25秒後に戻ってきます。私はカーネル3.10.4を使用していましたが、3.11-rc4に移行して何かが変更されたかどうかを確認しましたが、動作は同じです。また、通常のWebサーフィンは「バースト」状態であり、停止は完全にランダムであるため、問題を特定するのは難しいため、この問題が以前のカーネルにも存在していたとは本当に言えません(常にカスタムを使用しますが、 kernel.orgからのパッチされていないカーネル、すべて自分でコンパイルしたもの) 私は、カーネルがいずれかの犯人である伝えることはできませんが、私は、システムログには何の手がかりがないと言うことができます(私は両方を確認/var/log/syslogし、/var/log/messagesそして珍しい何もありません)、そのハードウェアは、問題のショーのために、故障していないようです私のネットワークカードのいずれかを使用してアップ: lspci output: 02:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5751 Gigabit Ethernet PCI Express (rev 01) 04:00.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX [Cyclone] (rev 30) 私はすでにイーサネットスイッチポートを交換しようとしましたが、私以外は誰も問題を抱えていません(私たちが同様のマシンを使用していますが、私がLinuxを使用しているのは私だけなので、それについて悪名高い冗談を言わなければなりませんでした)まあ... hehe)。 私は自分のマシンでWiresharkを実行し、ゲートウェイと同じネットワークセグメント上の別のマシンにpingを送信し続けました。次に、ネットワーク障害の最初の兆候でそれをチェックし、ゲートウェイがpingの応答を停止したことを確認しましたが、他のマシンはまだ正常に応答していました。他の場合には、他のマシンが応答を停止し、ゲートウェイが正常である場合もあれば、両方が応答を停止する場合もあります。他に何をすべきかわからないので、システムログは完全に正常であるため、これをさらにデバッグする方法についていくつかのヘルプまたはヒントをお願いします。 私は自分のカーネル構成ファイルと、wiresharkからのキャプチャファイルを使用して、状況を示しています。誰かがケースを理解するのに便利だと思う場合は、ここまたはペーストビンサイトに投稿できます。使用する詳細レベルを教えてください(生データなしのパケットレベルで十分でしょう)。

2
lkmlに送信されたパッチについて、ツリー管理者からのフィードバックをどのように求めればよいですか?
私はLinuxカーネルにパッチを提出しましたが、これはいくつかのレビューを受け、メーリングリストで何度か繰り返されました。2人の開発者によってACKとレビューが行われましたが、パッチを承認するのは特定の開発者次第であると彼らは言います。この開発者は、メーリングリストに比較的欠席しています。私は彼に個人的に嫌がらせをしたくありませんが、パッチを受け入れることができるか、または受け入れられないことのある種の謝辞をお願いします。この開発者からフィードバックを求めるための最良の方法は何ですか?彼またはレビュアーの1人にプライベートメールを送信することは許容されますか、それともメーリングリストを通じてすべてのコミュニケーションを公開することが重要ですか?

4
RHEL 6 128 TBの理論上のRAM制限はなぜですか?これはどのように決定されますか?
私はRHCSAのために勉強していて、いくつかのトレーニング資料で出くわした言葉に混乱しています: 理論的には、RHEL 6で128 TBのRAMを実行できるので、実用的な最大RAMはありませんが、それは単なる理論です。RHEL 6上のRed Hatがサポートする最大RAMは、32ビットシステムでは16 GB、64ビットシステムでは2 TBです。 128 TBの理論上の制限がどこから来ているのか誰かが説明できますか?RHEL 6が他の最大制限を明確に定義している場合、著者が理論上の制限が存在することをどのようにして知るかについて、私は混乱しています。これは64ビットアーキテクチャの理論上の制限を考慮に入れているだけですか?それともここに他の理由がありますか?

2
Linuxカーネルは、割り当てられたinitramfs / initrdにどのようにアクセスできますか?
電源ボタンを押してからマシン全体の起動プロセスを理解しようとしています。ブートローダーからinitramfsステージに至るまで、これは私が他のいくつかの小さなビットの中でまったく理解していない部分があります。 最近のUbuntuのデフォルトインストールから取得した、エントリのこのGrub構成を考えると、次のようになります。 insmod gzio insmod part_msdos insmod ext2 set root='(hd0,msdos1)' search --no-floppy --fs-uuid --set=root 96fb7310-5adb-4f66-bf59-04acd08d76a3 echo 'Loading Linux x.y.z ...' linux /vmlinuz-x.y.z root=/dev/mapper/some-device-name ro nomodeset echo 'Loading initial ramdisk ...' initrd /initrd.img-x.y.z システム状態とメモリの観点から、これは実際に何をしますか?Grubのタスクは「カーネルをロードして実行する」ことであり、デバイス(またはネットワーク)上のファイルにアクセスしてそれらにアクセスするための独自のモジュールセットがあることを理解しています。ここinsmodの例では、set rootそしてsearch-これは単にGrubの観点からであり、カーネルと共有されていませんよね? また、Grubがカーネルのカーネルにコピー(コピー?)を読み込んで(linuxcommand)、キックして実行を開始していると推測しています。(2つの異なるステップ-どうやって、どうやって?) このinitrdオプションも表示されます。これは、で指定された実際のルートデバイスを起動するために必要なgzip圧縮されたinitramfsを指しますroot=。しかし、このinitramfsはカーネルにどのように提供されますか?カーネルが起動する前にすでにロードされているため、ロードできる場所にメモリアドレスが渡されることはなく、それ自体にアクセスすることもできません。一部のカーネルのドキュメントでは、このinitramfsファイルシステム「デバイス」にからアクセスできる/dev/ram0と記載されていますが、それがどのようにして最初からアクセス可能なデバイスファイルになるかわかりません。見えない水中で何かが起こっていると思います。 また、これがU-boot / Corebootを使用するなど、組み込みプラットフォームを含む他のブートローダーにどのように関係するかもわかりません。これはGrubと同じことをしていますか(同じ標準メモリアドレス?)、カーネル/ initrdのロードに関してこれらはGrubとどの程度比較されますか? 私の質問を明確にするために、私はさまざまなブートステージが存在する理由とどのような移行が行われるのかを理解していると思いますが、それらがどのように行われるか、および各ステージに対する正確な責任はわかりません。私はこれがすべての「標準」に欠けていると感じています。 これについていくつか説明をいただければ幸いです。

2
QEMUでのbzImageの実行:unknown-block(0.0)にルートfsをマウントできません
私は実行してカーネルをコンパイルmake menuconfigしてmake。私はqemuでbzImageを実行しようとしましqemu -kernel bzImageたが、エラーメッセージが出てうまくいきませんでした: Unable to mount root fs on unknown-block(0.0) どうすれば修正できますか?qemuでbzImageを実行するにはどうすればよいですか?

4
起動可能なパーティションと起動不可能なパーティションの違い
起動可能なパーティションと起動不可能なパーティションの違いは何ですか?ユーザーは、起動不可とマークされたパーティションからシステムを起動できず、起動可能とマークされたパーティションからシステムを起動できないことを知っています。 これらのパーティションフラグの根本的な違いについて知りたいのですが。

3
Linuxカーネルヘッダーの構成
システムコールの読み取りを行っているときに、「syscalls.h」を検索して、LXRのヘッダーファイルを見つけました。検索結果に戸惑いました。「arch / _arch_name_ / include / asm」の下のディレクトリにある「syscalls.h」ファイルが多数あります。これらは問題ありません。それらはアーキテクチャ固有の定義など、必要なものです。問題は、なぜ/ include / linuxと/ include / asm-genericの両方に2つの異なる「syscalls.h」ヘッダーがあるのか​​ということです。 また、/ include / linuxヘッダーとは何か、/ include / asm-genericヘッダーとは何かを知りたいです。彼らはどのようにお互いを区別しますか?2つの別個のヘッダーフォルダーを使用する背後にあるロジックは何ですか?それらはどのように互いに関係していますか? ありがとう
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.