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

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

1
srcバージョン3. *と3。*-genericの違い
私のローカルLinux / Ubuntuには、Linux src用の2つのディレクトリーがあります。 /usr/src/linux-3.16.0 /usr/src/linux-3.16.0-generic 3.16.0のコードは3.16.0-genericのコードよりはるかに多いことがわかりました。これらの2つのディレクトリがなぜ、どのように異なるのか(そしてそれらが何を表しているのか)

2
ワイヤレスツールバージョン30が永続的なベータ版になったのはなぜですか?
このQ / Aで、ワイヤレスツールに関する良い情報を見つけました。どうやら、1997年にHewlett Packardが後援するJean TourrhilesによってLinuxカーネルに導入されたようです。 編集:WE(Wireless Extensions)は、ワイヤレスツール自体ではなく、Tourrhilesによってカーネルに追加されたようです。ツールは、WEと通信する主要な方法として、ほとんどのディストリビューションで使用できます。WEはカーネルで確認できます/proc/net/wireless。 リリース最後のバージョンがいたv2914&16が含まれているように見えるまだUbuntuのv30ベータ版を(iwconfig -v)。 このパッケージに何が起こったのか知りたいのですが?なぜ「ベータ」バージョン30が使用される事実上の標準バージョンになったのですか? HPはJean Tourrhilesへの資金提供を停止したため、開発は中止されましたか?それとも、開発を停止するのに十分安定していると判断されたのかもしれませんが、そうであれば、まだベータ版である理由は何ですか? 私はこのGithubページを見つけましたが、これは歴史的な参照のみのようです。 バージョン履歴

2
ファイルレスマルウェアはLinuxでどのように機能しますか?
ファイルレスマルウェアの定義を理解しています。 ファイルベースではないがメモリにのみ存在する悪意のあるコード…特に、ファイルレスの悪意のあるコードは…メモリ内のアクティブなプロセスに自分自身を追加します… 誰かがメモリ内のアクティブなプロセスにそれ自体を追加する方法を説明できますか? また、そのような攻撃に対してどのような(カーネル)保護/強化を利用できますか?

1
ユーザー空間アプリにカーネルヘッダーが必要なのはなぜですか?
私は組み込みデバイス用のビジーボックスとiptablesを構築しています。それらの依存関係の1つはカーネルヘッダーです。 ファイルシステム全体で* .koファイルを検索しましたが、見つかりませんでした。したがって、アプリがロード可能なドライバー(カーネルモジュール)を作成していないと結論付けました。 ユーザー空間アプリケーションがカーネルヘッダーを要求する他のケースは何ですか?

2
printkは内部的にどのように機能しますか?
私printfはその仕事をするためにOSの助けが必要であることを知っています。 printfライブラリがないため、Linuxソースコードでは機能しないことも知っています。そしてprintkデバッグのためにあります。 printkOSがまだ起動している場合、どのように機能しますか?

2
Linuxカーネルが、実際にはiノードが不足しているのに、「ディスク領域不足」を報告するのはなぜですか
Linux環境でのプログラミングは好きだが、Linuxの管理についてはよく知らない私の友人が、最近彼のOS(Ubuntu)が「XXXボリュームのディスク容量不足」を報告していた問題に遭遇しました。しかし、彼がボリュームをチェックしに行ったとき、まだ700 GBが残っていました。多くの時間を浪費した後、彼は最終的に自分がiノードの外にあることを理解することができました。(彼はこのボリュームにバックアップシステムからの小さな増分更新をたくさん保存し、彼のすべてのiノードを焼き付けていました。) Linuxカーネルがエラーメッセージ(「ディスク容量不足」)を適切に報告(「inode不足」)するのではなく、なぜ報告したのかと彼は私に尋ねました。私は知らなかったので、StackExchangeに質問すると思いました。 なぜこれが起こるのか誰でも知っていますか?そしてなぜそれがこれらすべての年月の後でまだ修正されていないのですか?(1995年に別の友人がこの問題について教えてくれたのを覚えています。)

3
Linuxカーネルのビルド構成を自動化するスクリプトmake menuconfigの方法は?
Linuxビルドを自動化したいのですが、最終的には非常に手動のステップのように見えるものを実行する必要がありますmake menuconfig。これは、OSとカーネル構成の間で構成を同期しているようですか? cp git-tracked-config .config make defconfig make menuconfig # <- how to automate/script this? make V=s 基本的に、make menuconfigビルドスクリプトの呼び出しを削除するにはどうすればよいですか? 余談ですが、これはmake menuconfigを呼び出さずに実行したときに発生するように見えるビルドエラーに対する反応です。 make[1]: *** No rule to make target `include/config/auto.conf', needed by `include/config/kernel.release'. Stop. おそらくメイクファイル自体が存在しないか、メイクファイルがそのルールを含むように生成/モーフィングされていないために、メイクファイルにルールがないようですが、それは別の質問です。 これをまとめて取り組むためのよりスマートな方法があるかもしれません。追跡していないけれどもすべき他の設定はありますか(例:oldconfig)?


1
PCIの癖とは何ですか?
Linuxカーネルについて読んでいるとき、PCIの癖についてよく聞きますが、PCIの癖を説明したり定義したりするWebサイトはありません。PCIの癖とは何ですか?
10 linux-kernel  pci 


1
カーネルスレッドはプロセスとデーモンですか?
MauererのLinuxカーネルアーキテクチャから、 カーネルスレッドは、カーネル自体によって直接開始されるプロセスです。カーネル機能を別のプロセスに委任し、そこでシステムの他のプロセスと「並列」で(そして実際には、カーネル自体の実行と並列に)実行します。カーネルスレッドは、しばしば(カーネル)デーモンと呼ばれます。たとえば、以下のタスクを実行するために使用されます。 変更されたメモリページを、ページの作成元のブロックデバイス(たとえば、mmapを使用してマップされたファイル)と定期的に同期します。 めったに使用されないメモリページをスワップ領域に書き込むため。 遅延アクションを管理するため。 ファイルシステムのトランザクションジャーナルを実装します。 基本的に、カーネルスレッドには2つのタイプがあります。 タイプ1 —スレッドは開始され、特定のアクションを実行するようカーネルから要求されるまで待機します。 タイプ2 —開始されると、スレッドは定期的な間隔で実行され、特定のリソースの使用率をチェックし、使用率が設定された制限値を超えるか下回ったときにアクションを実行します。カーネルは、このタイプのスレッドを継続的な監視タスクに使用します。 Mauererの本には、カーネルスレッドはプロセスであると記載されているため、カーネルモードではなく、ユーザーモードで実行する必要があると思います。(または私は間違っていますか?プロセスは、ユーザーモードまたはカーネルモードのいずれかで異なる時間に実行できますか、それとも1つのモードだけで実行できますか?) しかし、BovetのLinuxカーネルの理解によると、カーネルスレッドはカーネルモードでのみ実行されます(下の引用を参照)。2冊の「カーネルスレッド」の概念は同じ概念ですか? 従来のUnixシステムは、ディスクキャッシュのフラッシュ、未使用のページの交換、ネットワーク接続のサービスなど、いくつかの重要なタスクを断続的に実行するプロセスに委任しています。実際、これらのタスクを厳密に直線的に実行することは効率的ではありません。それらの機能とエンドユーザープロセスの両方がバックグラウンドでスケジュールされていると、応答が向上します。一部のシステムプロセスはカーネルモードでのみ実行されるため、最近のオペレーティングシステムは、不要なユーザーモードコンテキストに邪魔されないカーネルスレッドに機能を委任します。Linuxでは、カーネルスレッドは次の点で通常のプロセスと異なります。 カーネルスレッドはカーネルモードでのみ実行されますが、通常のプロセスはカーネルモードとユーザーモードで交互に実行されます。 カーネルスレッドはカーネルモードでのみ実行されるため、PAGE_OFFSETより大きい線形アドレスのみを使用します。一方、通常のプロセスは、ユーザーモードまたはカーネルモードのいずれかで、4ギガバイトのリニアアドレスをすべて使用します。 Mauererの本は、カーネルスレッドはカーネルによって直接開始されると述べており、デーモンはカーネルスレッドの同義語であるとも言われているようです。したがって、デーモンはカーネルによって直接開始される必要があると思います。 しかし、https://unix.stackexchange.com/a/193918/674によると、screenデーモンはscreenユーザーインターフェイスによって起動されます(下の引用を参照)。screenユーザーインターフェースはカーネルではなくプロセスだと思います。概念であるdaemonMauererの本の中で、リンクされた回答では、同じ概念? を最初に起動するとscreen、実際にはユーザーインターフェイス(ui)が開始されます。これにより、デフォルトでデーモン(セッションマネージャー)が作成されます。 一般的に、「カーネルスレッド」、「プロセス」、および「デーモン」の概念、それらの関係および違いをどのように理解しますか?

3
LinuxがCPU温度を非常に多くのファイルに保存するのはなぜですか?
2 CPUのラップトップ(thinkpad)を持っています。現在、cat(1)を使用して以下のファイルからCPU温度を読み取ることができます。 cat /sys/class/thermal/thermal_zone0/temp cat /sys/class/thermal/thermal_zone1/temp cat /sys/devices/platform/coretemp.0/hwmon/hwmon1/temp2_input cat /sys/devices/platform/coretemp.0/hwmon/hwmon1/temp3_input cat /sys/devices/LNXSYSTM:00/LNXCPU:00/thermal_cooling/subsystem/thermal_zone1/temp cat /sys/devices/LNXSYSTM:00/LNXCPU:01/thermal_cooling/subsystem/thermal_zone0/temp 私の質問は、カーネルがこの情報を非常に多くの異なる場所に保存する理由と、CPUの温度を読み取るための「標準」ファイルはどれですか? これはsystemd(私はArch Linuxを使用しています)またはSlackwareのような非systemd Linuxディストリビューションが原因で起こっているのですか?

2
Linuxバージョン番号の規則
Linuxの最初のバージョンでは、正しいバージョン番号は0.01(タネンバウムのOSブックで見られる)ですか、それとも最初のバージョンはドットを含めて0.0.1と書く必要がありますか?

7
Linuxカーネル4.9.0、Debian 9で休止状態の再開が失敗する
最近、カーネルを3.16.4(Debian jessie)から4.9.0(Debian Stretch)にアップグレードしました。「ハイバネート」(ディスクにサスペンド)するまで、すべてが順調でした。 LXDEでHibernateオプションを使用すると、休止状態のように見えます。ディスクのスピンドルがカチカチとデータを書き込んでいるのが聞こえます。しかし、休止状態から再開するときに問題が発生します。カーネルはスワップからイメージを正常に復元しますが、フリーズして再起動し、すべての作業が失われます。インターネットのどこにも答えが見つかりませんでした。人々は/etc/initramfs-tools/conf.d/resumeを設定しない、またはカーネルパラメータを設定していない、または/ etc / fstabに間違ったエントリがあることに関するいくつかの間違いを解決しています。これらは正しいです。/etc/initramfs-tools/conf.d/resume内のUUIDを修正し、fstabを修正し、再開カーネルパラメータを設定しない。 スワップパーティションを拡張パーティションの外のプライマリに移動しました。UUIDが保存され、新しいスワップに適用されました。 システムは「イメージの復元100%」に達し、次に「コンソールの一時停止」に達した後、すべての作業が失われた状態で電源がオフになり、通常どおりに起動します。 クリーンインストールを試みましたが、運がありませんでした。 i386(32ビットx86)でのみ発生し、amd64(64ビットx86)は影響を受けません。 ディスクパーティションテーブルのレイアウト: NAME FSTYPE LABEL UUID MOUNTPOINT sda ├─sda1 ext4 HDD <ROOT-UUID> / └─sda2 swap HDD-SWAP <SW-UUID> [SWAP] sr0 アップグレード前は、sda2は論理的(内部拡張)でした。 Fstab: UUID=<ROOT-UUID> / ext4 errors=remount-ro 0 1 UUID=<SW-UUID> none swap sw 0 0 /etc/initramfs-tools/conf.d/resume RESUME=UUID=<SW-UUID> カーネルコマンドライン BOOT_IMAGE=/boot/vmlinuz-4.9.0-3-686-pae root=UUID=<ROOT-UUID> ro quiet …

1
汎用ソケットとは何ですか?それはネットワークデバイスとどのように関係しますか?
Linuxでネットワークドライバーがどのように機能するかを理解しようとしています。このQ&Aは、Linuxのネットワークデバイスがデバイスファイルで表されていないことを示しました。これは、ネットワークドライバーがで動作することを示していますsockets。 たとえば、これioctlは通話を通じてネットワークデバイスをセットアップする方法を参照します。ioctlただし、ネットワークドライバー用のデバイスファイルがない場合、ファイル記述子が必要です。渡すことができるファイル記述子は、ソケットからのものだけです。 これは私に質問のポイントをもたらします。これまでのところ、物理ネットワークカードのソフトウェア表現であるネットワークインターフェイスは、実際にはソケットよりも劣っているオブジェクトのようです。 しかし、この抽象的な意味でのソケットとは何ですか、それはプッシュ通知をサポートするデバイスファイルの別の名前ですか?ユーザースペースアプリによってネットワークインターフェースのアドレス:ポートのペアにバインドされた接続ポイントに関して、TCPソケットについて理解しています。ソケットをネットワークインターフェイスをセットアップするための前提条件として理解していません。 (のようなLinuxのネットワークインタフェースすることができますeth0によって記載されているがifconfig)ソケットなしでは存在しますか? DOES ifconfigまたはいくつかのネットワーク・マネージャ・デーモンは、私たちはネットワーク・インタフェース・オプションを設定できるように開いたソケットを保ちますか?

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