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

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

7
マウントにルート権限が必要なのはなぜですか?
Linuxでは、何かをマウントするために、rootであるか、sudoを使用しているか、マウントごとに特別に許可されている必要があるのですか?ユーザーが何かをマウントできるようにするかどうかは、ソースボリューム/ネットワーク共有およびマウントポイントへのアクセス権に基づいて決定する必要があるようです。非ルートマウントのいくつかの用途は、ファイルシステムイメージをユーザーが所有する方向にマウントすることと、ネットワーク共有をユーザーが所有するディレクトリにマウントすることです。ユーザーがマウント方程式の両側を制御できれば、すべてがクールになるはずです。 アクセス制限の明確化: そうでなければ、ユーザーが所有者であるマウントポイントにアクセスできるユーザーなら何でもマウントできるはずです。 たとえば、私のコンピューターでは、/ dev / sda1はユーザーrootとグループディスクdiskに所有権がありbrw-rw----ます。したがって、非rootユーザーは/ dev / sda1を台無しにすることはできず、明らかにマウントを許可しないでください。ただし、ユーザーが/home/my_user/my_imagefile.imgとマウントポイント/ home / my_user / my_image /を所有している場合、次の方法でそのマウントポイントにそのイメージファイルをマウントできないのはなぜですか。 mount /home/my_user/my_imagefile.img /home/my_user/my_image/ -o loop kormacが指摘したように、suidの問題があります。したがって、suidが問題になるのを防ぐために、いくつかの制限を追加する必要があります。おそらくこれを行う1つの方法は、OSがすべてのファイルをマウントを行ったユーザーに属するものとして扱うようにすることです。ただし、単純な読み取り/書き込み/実行の場合、これが問題になる理由はわかりません。 使用事例: 自宅のスペースが8GBに制限されているラボにアカウントを持っています。これは小さく、非常に迷惑です。パーソナルサーバーからnfsボリュームをマウントして、必要なスペースを本質的に増やしたいと思います。ただし、Linuxではそのようなことが許可されていないため、8 GBの制限を超えないようにファイルをscpすることで行き詰まってしまいます。

3
Linuxでは、「アップタイム」はいつからカウントされますか?
私のコンピューターは言う: $ uptime 10:20:35 up 1:46, 3 users, load average: 0,03, 0,10, 0,13 そして、私がチェックするlastと、私は見る: reboot system boot 3.19.0-51-generi Tue Apr 12 08:34 - 10:20 (01:45) そして、私はチェックします: $ ls -l /var/log/boot.log -rw-r--r-- 1 root root 4734 Apr 12 08:34 boot.log それから私/var/log/syslogは今日の最初の行にあることがわかります: Apr 12 08:34:39 PC... rsyslogd: [origin software="rsyslogd" swVersion="7.4.4" x-pid="820" x-info="http://www.rsyslog.com"] …

3
カーネルにはmain()関数がありますか?[閉まっている]
デバイスドライバーとカーネルプログラミングを学んでいます。Jonathan Corbetの本によるとmain()、デバイスドライバーには機能がありません。 だから私は2つの質問: main()デバイスドライバーに関数が必要ないのはなぜですか? カーネル自体にmain()機能はありますか? 誰かがこれを私に説明できますか?


7
Linuxカーネルだけをインストールすることはできますか?
Linuxカーネルを単独でインストールできるのか、それともフレーバーの1つを使用する必要があるのか​​、興味があります。可能であれば、どうしますか?詳細なチュートリアルは必要ありません。概念的にどのように行われるかを知りたいだけです。私は低レベルのものが苦手なので、OSをどのようにコンピューターに取り込むか知りたいです。MBRと関係があると思います。 ああ、私は多くの答えが最小のLinuxの特定のディストリビューションを示唆していることに気づきました。たぶん、私は最小限の、または必要最低限​​のLinuxをインストールするつもりはないと述べたはずです。この質問は純粋に理論的なものです。それでも、私は本当にすべての答えに感謝し、本当にパーソナライズされたLinuxをインストールしたいと思うなら、すぐにそれらを参照します。



3
ユーザー空間を壊さないLinuxカーネルポリシーがあるのはなぜですか?
Linux Kernel Mailing listのエチケットの文脈でこの問題について考え始めました。世界で最もよく知られ、ほぼ間違いなく最も成功している重要なフリーソフトウェアプロジェクトとして、Linuxカーネルは多くの報道を受けています。そして、プロジェクトの創設者でありリーダーであるLinus Torvaldsは、ここで紹介する必要はないことは明らかです。 ライナスは時折、LKMLの炎で論争を呼び起こします。これらの炎は、彼自身の容認により、ユーザー空間の破壊に関係していることが多い。それは私の質問に私をもたらします。 ユーザー空間を壊すことがなぜそんなに悪いことなのか、歴史的な見方をすることはできますか?私が理解しているように、ユーザースペースを壊すにはアプリケーションレベルでの修正が必要になりますが、カーネルコードを改善する場合、これはそんなに悪いことですか? 私が理解しているように、Linusのポリシーは、ユーザー空間を壊さないことがコード品質を含む他のすべてよりも優先するというものです。なぜこれがそんなに重要なのか、そしてそのようなポリシーの長所と短所は何ですか? (Linusは時折、まさにこのトピックに関するLKMLのトップ中euと「意見の相違」を持っているため、一貫して適用されるこのようなポリシーには明らかにいくつかの短所があります。


1
CPUガバナーをオンデマンドまたは保守的に設定する
cpupowerArchLinuxで苦労しています。私は知事をに、ondemandまたはさらにはに設定しconservativeます。 最初にするなら$ sudo cpupower frequency-info --governors、私は得るだけですperformance powersave。 だから私はこのような利用可能なモジュールを探します ls -1 /lib/modules/`uname -r`/kernel/drivers/cpufreq/ ...そして私は得る acpi-cpufreq.ko.gz amd_freq_sensitivity.ko.gz cpufreq_conservative.ko.gz cpufreq_powersave.ko.gz cpufreq_stats.ko.gz cpufreq_userspace.ko.gz p4-clockmod.ko.gz pcc-cpufreq.ko.gz powernow-k8.ko.gz speedstep-lib.ko.gz そのため、まず「オンデマンド」用のモジュールは利用できないようです。私は何が恋しいですか? 次に、少なくとも保守的に有効にしようとします: $ sudo modprobe cpufreq_conservative 次に、モジュールが実際にロードされていることを確認します $ lsmod | grep cpufreq そして、それが現在利用可能かどうかを確認します $ sudo cpupower frequency-info --governors しかし、残念ながら、私はまだ同じものを手に入れます:performance powersaveだけで、保守的なものを有効にしようとすると $ sudo cpupower frequency-set -g conservative モジュールは利用できないと書かれています。 …

2
悪い `rm`でファイルを保存した後、マシンの電源を切るのはなぜですか?
古典的な状況:私は悪い実行し、rmすぐに間違ったファイルを削除したことを実現しました。(重要なことは何もありませんでしたが、最近のバックアップは許容範囲内でしたが、まだ迷惑です。) extundeleteまたはそのようなツールを使用してファイルを回復したい場合、さらなるディスクアクティビティが敵であることがわかったので、すぐに物理的にマシンの電源を切りました(つまり、haltコマンドではなく、電源ボタンで)。これは重要なタスクが実行されていない、または何も開いていないラップトップであるため、許容できる操作でした。(ところで、そのような状況で最初にすることは、プロセスhttps://unix.stackexchange.com/a/101247によって見つからないファイルがまだ開かれている可能性がある場合、最初に推定することであることをその後学びました-存在する場合、マシンの電源を切るのではなく、この方法で回復する必要があります。) それでも、マシンの電源を切った後、しばらく考えて、ファイルが適切なフォレンジックのためにライブシステムを起動する時間投資に見合わないと判断しました。そこで、マシンの電源を入れました。そして、ファイルがまだディスクに残っていることを発見しましrmた。電源を切る前にファイルがディスクに伝播されていませんでした。私は少しダンスをし、システム管理者の神に彼の予期せぬ許しに感謝しました。 私の質問は、これがどのように可能だったか、そしてrm実際にディスクに伝播されるまでの典型的な遅延とは何かを理解することです。ディスクIOはすぐにはフラッシュされず、しばらくの間メモリ内に置かれることはわかっていますが、ディスクジャーナルにより、保留中の操作が完全に失われないようにすばやく確認できると考えました。https://unix.stackexchange.com/a/78766は、ダーティページをフラッシュし、ジャーナル操作をフラッシュする別のメカニズムを示唆しているように見えますが、ジャーナルがa rmにどのように関与するかについての十分な詳細と、操作がフラッシュされます。 いくつかの詳細:データはLUKSボリューム内のext4パーティションにあり、マシンを起動してバックアップしたとき、次のことがわかりましたsyslog: Sep 24 10:24:58 gamma kernel: [ 11.457007] EXT4-fs (dm-0): 1 orphan inode deleted Sep 24 10:24:58 gamma kernel: [ 11.458393] EXT4-fs (dm-0): recovery complete Sep 24 10:24:58 gamma kernel: [ 11.482475] EXT4-fs (dm-0): mounted filesystem with ordered data mode. Opts: (null) しかし、私はそれがに関連していると確信していませんrm。 別の質問は、マシンの電源を落とすのではなく、保留中のディスク操作を実行しないようにカーネルに指示する方法があるかどうかです(ただし、どこかにダンプするなど)。(もちろん、保留中の操作を実行しないのは危険に思えますが、これはとにかくマシンの電源を切ったときに起こることであり、場合によってはそれがあなたを救う可能性があります。)たとえば、物理的な電源切断が簡単なオプションではないリモートサーバーの場合。

5
FIFO、パイプ、UnixドメインソケットはLinuxカーネルでも同じですか?
FIFOは名前付きパイプだと聞きました。そして、それらはまったく同じセマンティクスを持っています。一方、Unixドメインソケットはパイプに非常に似ていると思います(使用したことはありませんが)。だから、彼らはすべてLinuxカーネルの同じ実装を参照しているのだろうか。何か案が?

2
UEFI / EFIブートでカーネル引数としてadd_efi_memmapを指定する必要があるのはいつですか?
LinuxカーネルをEFIスタブ(efistub)でロードする方法のチュートリアルを読んでいます。これらの手順では、多くの場合、カーネルブートパラメーターを使用しますadd_efi_memmap。対象のハードウェアは、8GBのRAMを搭載したIntel x64です。現在のセットアップでは、grub-efiブートローダーとカーネルv3.13を実行しています。 ブート引数なしのGRUBブートadd_efi_memmap: 23BIOS-E820のラインによってカウントdmesg | grep BIOS-e820: | wc -l 243EFIメモリラインによってカウントdmesg | grep efi:\ mem | wc -l DMAゾーン:24予約済みページ メモリ:7840568K / 8283384Kが利用可能 442816K予約済み GRUBブートと add_efi_memmap EFIメモリマップサイズは異なるようです: 23 BIOS-e820ライン 57 EFIメモリライン DMAゾーン:22予約済みページ メモリ:7885076K / 8283384Kが利用可能 398308K予約済み なしの EFIスタブブートadd_efi_memmap: 22 BIOS-e820ライン 60 EFIメモリライン DMAゾーン:21予約済みページ メモリ:7885012K / 8283384Kが利用可能 EFIスタブブートと add_efi_memmap: 22 BIOS-e820ライン 66 …

2
ip vs ifconfigコマンドの長所と短所
ある時点で、私が出会ったLinuxに関するいくつかの教材(Linux Foundationから)で、次のことが言及されています。 ipこのコマンドは、ioctlシステムコールではなくnetlinkソケットをifconfig使用するため、より汎用的で効率的です。 私はボンネットの下で何が起こっているのか理解できないので、誰もこれについて少し詳しく説明できますか? PS私はそれらのツールに関するこのトピックを知っていますが、それらが動作する方法に関するこの特定の違いに対処していません

2
Linuxカーネルのシステムシャットダウンは内部でどのように機能しますか?
システムのシャットダウン時に、ユーザー空間とinit-system(従来のinit sysV / upstart / systemdである)がどのように機能するかについての大まかな考えがあります。(本質的には、「Stop!」、「本当に今すぐ停止してください」、「停止するためにあなたを殺す必要があるプロセス」の順番の連続があり、待っています...事が起こっています)。 私はとにかくカーネルでシステムのシャットダウンがどのように機能するのか非常に知りません(確かに多くのこともあります)? 私は、カーネルのドキュメントに見てみましたhttps://www.kernel.org/doc/htmldocs/も使用NSAのPAL検索ツールを私にそれがどのように動作するかを見つけ出すのヘッドスタートを与えます。 また、SE U + Lを検索しても何も見つかりませんでした(見落としていませんか?) とにかく、質問は少し難しいかもしれませんが、シャットダウン時にLinuxカーネルで何が起こるかについてより多くの人が興味を持っていると思うので、このQ&Aネットワークでは答えに値します。 さらに詳細な説明にリンクする変更もある可能性があります。 答えには、どのシステムコールとどのカーネル信号が使用されているかが含まれる場合がありますか? https://github.com/torvalds/linux/blob/b3a3a9c441e2c8f6b6760de9331023a7906a4ac6/arch/x86/kernel/reboot.c はリブートに関連するx86使用ファイルのようです(すでにシャットダウンに近いですか?) ここにあるスニペットhttp://lxr.free-electrons.com/source/kernel/reboot.c#L176 を使用して説明することができます 176 void kernel_power_off(void) 177 { 178 kernel_shutdown_prepare(SYSTEM_POWER_OFF); 179 if(pm_power_off_prepare) 180 pm_power_off_prepare(); 181 migrate_to_reboot_cpu(); 182 syscore_shutdown(); 183 pr_emerg( "Power down \ n"); 184 kmsg_dump(KMSG_DUMP_POWEROFF); 185 machine_power_off(); 186} 187 EXPORT_SYMBOL_GPL(kernel_power_off);

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