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

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

7
Linuxカーネルシステムコールの実装を見つけるにはどうすればよいですか?
私はmkdir、カーネルのソースを見ることで、関数がどのように機能するかを理解しようとしています。これは、カーネル内部を理解し、さまざまな機能間を移動しようとする試みです。mkdirで定義されていることを知っていsys/stat.hます。プロトタイプを見つけました: /* Create a new directory named PATH, with permission bits MODE. */ extern int mkdir (__const char *__path, __mode_t __mode) __THROW __nonnull ((1)); 次に、この関数が実装されているCファイルを確認する必要があります。ソースディレクトリから、私は試しました ack "int mkdir" 表示した security/inode.c 103:static int mkdir(struct inode *dir, struct dentry *dentry, int mode) tools/perf/util/util.c 4:int mkdir_p(char *path, mode_t mode) tools/perf/util/util.h 259:int mkdir_p(char *path, …

6
Linuxが公式のGNUカーネルとして受け入れられないのはなぜですか?
Hurdの存在と公式のGNUオペレーティングシステムカーネルとしてのその使命をかなり長い間知っていましたが、Linuxが長年にわたって公式のGNUカーネルとして受け入れられないのはなぜかと思っていました。ハードよりも? Linuxはこれまで20年以上もこの役割を果たしてきましたが、Linux に関してはGNUプロジェクトがその距離を保っていることがわかります。なぜこうなった?Hurdが(将来のある時点で)生産品質レベルになるのは夢のせいですか?それは、GNUプロジェクトがその使命をLinuxで望んでいるほど反映していないからでしょうか?他の政治的理由によるものですか?
128 linux-kernel  gnu  hurd 

3
カーネル3.11のLinuxロゴのWindowsフラグは何を意味しますか?
Fedora 19のインストール用にkernel-3.11.0-1.fc20をインストールしました。再起動の進行中に、Windowsフラグが付いたLinuxロゴが表示されましたが、どういう意味ですか? Fedora 19はASUS TX300CAノートブックにインストールされ、セキュアブートはオフ、CSM(BIOS互換性サポートモジュール)モードはオンです。

6
Linuxがカーネルのみの場合、最初のバージョンはどのように使用されましたか(ディストリビューションなし)?
Linuxは単なるカーネルであり、ユーザーがそれを使用する場合は、完全なディストリビューションが必要です。そうは言っても、Linuxディストリビューションがなかったとき、Linuxの最初のバージョンはどのように使用されましたか?

6
Linuxカーネルが1500万行を超えるコードなのはなぜですか?[閉まっている]
このモノリシックコードベースの内容は何ですか? プロセッサアーキテクチャのサポート、セキュリティ、および仮想化は理解していますが、60万行を超えることは想像できません。 カーネルコードベースにドライバーが含まれている歴史的および現在の理由は何ですか? これらの1500万本以上のラインには、これまでにあらゆるハードウェアのすべての単一ドライバーが含まれていますか?もしそうなら、それは質問を頼みます、なぜドライバーがカーネルに埋め込まれ、自動検出され、ハードウェアIDからインストールされる個別のパッケージではないのですか? コードベースのサイズは、ストレージが制限されたデバイスまたはメモリが制限されたデバイスの問題ですか? すべてが埋め込まれている場合、スペースに制約のあるARMデバイスのカーネルサイズが大きくなるようです。プリプロセッサによって多くの行が選択されていますか?クレイジーと呼びますが、カーネルの役割であると理解していることを実行するためにそれほど多くのロジックを必要とするマシンを想像することはできません。 サイズが成長し続けているように見えるため、50年以上後にサイズが問題になるという証拠はありますか? ドライバーを含めることは、ハードウェアが作成されるにつれて大きくなることを意味します。 編集:これはカーネルの性質であると考えている人にとっては、いくつかの研究の後、それは常にではないことに気づきました。カーネギーメロンのマイクロカーネルマッハは「通常10,000行未満のコード」の例としてリストされているため、カーネルはこれほど大きくする必要はありません。
109 linux-kernel 

1
Linuxの汚染されたカーネルとは何ですか?
特定の条件下では、Linuxカーネルが汚染される可能性があります。たとえば、専用のビデオドライバーをカーネルにロードすると、カーネルが汚染されます。この状態は、システムログ、カーネルエラーメッセージ(oopsおよびパニック)、およびなどのツールで表示されlsmod、システムが再起動されるまで維持されます。 これは何を意味するのでしょうか?システムを使用する能力に影響しますか?また、サポートオプションにどのように影響しますか?

2
Linuxシステム上の「WannaCry」:どうやって自分を守るのですか?
rapid7の記事によると、 Linuxシステムでのリモートコード実行を許可する脆弱なSambaバージョンがいくつかあります。 一方でWannaCryの ransomwormは、Windowsシステムに影響を与え、容易に識別し、明確な修復手順で、Sambaの脆弱性は、LinuxおよびUnixシステムに影響を与えますし、適切な是正を取得するか、展開に重要な技術的障害を提示することができます。 CVE-2017-7494 3.5.0以降のSambaのすべてのバージョンは、リモートコード実行の脆弱性に対して脆弱であり、悪意のあるクライアントが共有ライブラリを書き込み可能な共有にアップロードし、サーバーにロードして実行させることができます。 可能な攻撃シナリオ: 2つの要素から始めます。 Sambaの脆弱性は、一部のLinuxディストリビューションではまだ修正されていません。 一部のLinuxカーネルバージョン(たとえば、4.8.0-41-generic UbuntuカーネルのCVE-2017-7308)には、パッチが適用されていないローカル権限昇格の脆弱性があります。 攻撃者はLinuxマシンにアクセスし、ローカルエクスプロイトの脆弱性を使用して特権を昇格させ、ルートアクセスを取得し、このモックアップLinux用WannaCryランサムウェアと同様に、将来の可能性のあるランサムウェアをインストールできます 。 更新 最新の記事「警告!ハッカーは「SambaCryの欠陥」を使用してLinuxシステムをハックし始めました」は、Sambacryの欠陥を使用してLinuxマシンに感染する方法を示しています。 Kaspersky Labの研究者チームによって設定されたハニーポットは、SambaCryの脆弱性を悪用してマルウェア暗号化マイニングソフトウェアをLinuxコンピューターに感染させるマルウェアキャンペーンを捕捉したため、予測は非常に正確であることが判明しました。 別のセキュリティ研究者であるOmri Ben Bassatは、同じキャンペーンを独自に発見し、「EternalMiner」と名付けました。 研究者によると、Sambaの欠陥が公表されてから1週間後に、未知のハッカーグループがLinux PCのハイジャックを開始し、「Monero」デジタル通貨をマイニングする暗号通貨マイニングソフトウェア「CPUminer」のアップグレードバージョンをインストールしました。 SambaCryの脆弱性を使用して脆弱なマシンを侵害した後、攻撃者は標的のシステムで2つのペイロードを実行します。 INAebsGB.so —攻撃者へのリモートアクセスを提供する逆シェル。 cblRWuoCc.so —暗号通貨マイニングユーティリティを含むバックドア– CPUminer。 2017年7月18日に投稿されたTrendLabレポート:LinuxユーザーはSambaCryを悪用して新しい脅威として更新することを求めている 攻撃を受けるのを防ぐためにLinuxシステムを保護するにはどうすればよいですか?

3
アイドルCPUプロセスは何をしますか?
strace私のソースを見ると、CLONE_IDLETASKそこに記述されているクローンフラグの使用が見つかりました: #define CLONE_IDLETASK 0x00001000 /* kernel-only flag */ さらに詳しく調べたところ、このフラグはカバーされman cloneていませんが、実際にはブートプロセス中にカーネルによって使用され、マシン上の各CPUのアイドルプロセス(すべてPID 0が必要)を作成します。つまり、8個のCPUを搭載したマシンには、少なくとも7個(以下の質問を参照)のようなプロセスが「実行中」になります(引用符に注意してください)。 さて、これは私がその「アイドル」プロセスが実際に何をするかについてのいくつかの質問につながります。私の想定では、タイムフレームが終了するまでNOP操作を継続的に実行し、カーネルが実際のプロセスを割り当てて実行するか、アイドルプロセスを再度割り当てます(CPUが使用されていない場合)。しかし、それは完全な推測です。そう: たとえば、8個のCPUを搭載したマシンでは、7個のそのようなアイドルプロセスが作成されますか?(そして、1つのCPUはカーネル自体によって保持され、ユーザースペースの作業は実行されませんか?) アイドルプロセスは、実際にはNOP操作の無限ストリームですか?(または同じことを行うループ)。 CPU使用率(たとえばuptime)は、アイドルプロセスがCPU上にあった時間と、特定の期間中に存在しなかった時間によって単純に計算されますか? PSこの質問のかなりの部分は、CPUがどのように機能するかを完全に理解していないという事実によるものと思われます。すなわち、アセンブリ、タイムフレーム、割り込みは理解していますが、たとえば、CPUが実行している内容に応じて、どの程度エネルギーを消費するかはわかりません。誰かがそれについても私を啓発できるなら、私は感謝するでしょう。
73 linux-kernel  cpu 

2
現在のブートに指定されたLinuxカーネルコマンドラインパラメーターを表示する方法
ではgrub.conf、設定ファイルI、すなわち、カーネルが使用するコマンドラインパラメータを指定することができます。 kernel /boot/kernel-3-2-1-gentoo root=/dev/sda1 vga=791 特定のカーネルを起動した後、最初にカーネルに渡されたコマンドラインパラメーターを表示する方法はありますか?sysctlを見つけました。 sysctl --all ただし、sysctlはすべての可能なカーネルパラメーターを表示します。

1
Linuxカーネルのビルドに「bc」が必要なのはなぜですか?
Linuxカーネルの最小ビルド要件では、bcカーネルv4.10をビルドするために計算機が必要であることが指定されています1.06.95。ツールの最小バージョンはです。 bcこのコンテキストではどのような用途があり、なぜbcこれらの操作ではなくC言語が直接使用されないのですか?
66 linux-kernel  bc 

7
スレッドはLinuxのプロセスとして実装されていますか?
私は通過つもりだこの本マーク・ミッチェル、ジェフリー・オールダム、そしてアレックス・サミュエルことにより、高度なLinuxのプログラミング。2001年からですので、少し古いです。しかし、とにかくかなり良いと思います。 しかし、シェル出力でLinuxが生成するものとは異なる点に到達しました。92ページ(ビューアでは116ページ)の4.5 GNU / Linuxスレッド実装の章は、次の文を含む段落から始まります。 GNU / LinuxでのPOSIXスレッドの実装は、他の多くのUNIX系システムでのスレッド実装とは重要な点で異なります。GNU/ Linuxでは、スレッドはプロセスとして実装されます。 これは重要なポイントのようで、後でCコードで説明します。本の出力は次のとおりです。 main thread pid is 14608 child thread pid is 14610 そして、私のUbuntu 16.04では: main thread pid is 3615 child thread pid is 3615 ps 出力はこれをサポートします。 2001年から現在までに何かが変わったに違いないと思います。 次のページの次のサブセクション4.5.1シグナル処理は、前のステートメントに基づいています。 シグナルとスレッド間の相互作用の動作は、UNIXに似たシステムごとに異なります。GNU / Linuxでは、スレッドはプロセスとして実装されるという事実によって動作が決定されます。 そして、これはこの本の後半でさらに重要になるようです。誰かがここで何が起こっているのか説明できますか? 私はこれを見ましたLinuxカーネルスレッドは本当にカーネルプロセスですか?、しかしそれはあまり役に立ちません。よくわかりません。 これはCコードです: #include <pthread.h> #include <stdio.h> #include <unistd.h> void* thread_function …

4
すべてのロード可能なカーネルモジュールをリストする方法
私はロードするために、いくつかのカーネルモジュールを探していますi2c-devとi2c-bcm2708。ただし、modprobeコマンドは以下を返します。 sudo modprobe i2c-dev modprobe: module i2c-dev not found in modules.dep システムで利用可能なすべてのモジュールを一覧表示するにはどうすればよいですか?それらはどのディレクトリにありますか?

5
Linuxカーネルが「イメージ」と呼ばれるのはなぜですか?
LinuxカーネルがLinuxカーネルイメージと呼ばれることをよく耳にしますが、検索エンジンでイメージと呼ばれる理由についての答えを見つけることができないようです。 イメージについて考えるとき、ディスクのコピーまたは写真の2つのことしか考えられません。地獄は写真画像ではないので、なぜ画像と呼ばれるのでしょうか?

2
Linuxでのロギングを理解する
私が理解しているように、Linuxカーネルは/proc/kmsgファイル(主にハードウェア関連のメッセージ)と/dev/logソケットにログを記録しますか?どこか他の?他のアプリケーションも/proc/kmsgまたはにメッセージを送信できますか/dev/log?ではなく、少なくとも最後に、私はそれがsyslogデーモンであることを修正しています(rsyslogの、のsyslog-ngの)その後、これら二つの場所からのメッセージをチェックするなど、様々なファイルにそれらの配布/var/log/messagesや/var/log/kern.log、あるいは中央のsyslogサーバーは?


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.