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

UNIXカーネルに関するすべて:開発、構成、コンパイル、設計など


1
FreeBSDはどのようにメモリを割り当てますか?
私は、これは単純化/一般説明、しかしであることを認識していますtop(1)6 pools-へのFreeBSDにおける有用性が分裂メモリActive、Inactive、Wired、Cache、BuffersとFree。top(1)出力の例: Mem: 130M Active, 42M Inact, 51M Wired, 14M Cache, 34M Buf, 648K Free Swap: 512M Total, 512M Free Active実行中のプロセスによってWired使用され、主にカーネルに使用されます。Inactive閉じたプロセスのメモリであり、再利用が必要な場合に備えてCacheキャッシュされます。データはキャッシュされ、Buffersディスクバッファー(cachedLinuxのfree(1)出力(?)と同様)で、Free完全に未使用のメモリです。FreeBSDがから自動的に割り当てカーネル空間というアム私は正しいInactive、CacheとBuffersプールにActiveまたはWired必要に応じて?
9 kernel  freebsd 

2
modinfoが「モジュールが見つかりませんでした」と言うのに、lsmodはモジュールがロードされていると主張するのはなぜですか?
lsmodコマンドのマニュアルページによると、「現在ロードされているカーネルモジュール」が表示されます。 modinfo実際に使用されているカーネルオブジェクト(.ko)ファイルを示すために使用するスクリプトを作成しました。 #!/bin/sh for i in `lsmod | awk '{print $1}' | sed -n '1!p'`; do echo "###############################$i###############################" echo "" modinfo $i echo "" echo "" done 今、私modinfo nvidiaはそれが次の出力を示すことを発見しました: ERROR: modinfo: could not find module nvidia これについて何か説明はありますか?


4
libusbで制御できるように、usbhidによる新規USBデバイスの要求を防止しますか?
で試してみたいUSBロケットランチャーを持っていlibusbます。ただし、libusbはインターフェースを要求できません。おそらくusb-devices、デバイスのドライバーとして「usbhid」が出力されるためです。 インターネットで読んだところ、このドライバーをデバイスから切り離してlibusbで使用できるようにする必要があるという結論に達しました。ただし、それを行うための唯一の決定的な方法は見つかりませんでした。いくつかの異なるアイデアとバグレポートのみです。 それで、Ubuntu 11.04で提供されるカーネルとツールに関連するデバイスからusbhidドライバーを切り離す方法はありますか? 編集: ファイルを作成してみました /etc/udev/rules.d/10-usbhid.rules そして以下を書く: ATTRS{idVendor}=="0a81", ATTRS{idProduct}=="0701", OPTIONS=="ignore_device" 保存してから再起動します。ファイルはまだ残っていますが、まったく機能していないようです。 編集: さて、私はこれを試しました: sudo -i echo -n "0003:0A81:0701.0006" > /sys/bus/hid/drivers/generic-usb/unbind その後、/ sys / bus / hid / devices / 0003:0A81:0701.0006およびlsに移動すると、次のようになります。 drwxr-xr-x 2 root root 0 2011-05-29 15:46 power lrwxrwxrwx 1 root root 0 2011-05-29 13:19 subsystem -> ../../../../../../../../../bus/hid -rw-r--r-- …
9 ubuntu  kernel  usb  devices 


1
なぜユーザープログラムはカーネルスペースを台無しにする必要があるのですか?
私は問題が何であるかさえわかりませんが、ここで説明されているカーネル攻撃について話しています。このコメントのリストの下で、誰かがプロセスを再利用することについて尋ねました。トリックは状況を改善しませんでした(マシンはまだ非常に遅い方法で実行されます)、そしてコメントの返事はカーネル空間とユーザー空間について何かを述べています。 まず、返信コメントは正しいですか?もしそうなら、なぜreniceはカーネル空間ではなくユーザー空間で機能するのですか?また、私が読んだことによると、ユーザーが自分で開始するすべてのプログラムはユーザー空間にあるはずですが、何を見逃しましたか? それが正しくない場合、なぜreniceは状況を改善しないのですか?
9 kernel 

1
非決定的グラフィックカードのデバイス名
私のシステムには3つのグラフィックカード、1つのradeonと2つのnvidiaが含まれています。 マルチシートセットアップを設定しようとしていますが、グラフィックカードの「デバイス名」が安定しておらず、ブートごとに変更されます。 例 ブート1 Radeonカード /sys/devices/pci0000:00/0000:00:03.0/0000:01:00.0/drm/card1 NVIDIA 1カード /sys/devices/pci0000:00/0000:00:1c.0/0000:02:00.0/drm/card0 Nvidia 2カード /sys/devices/pci0000:00/0000:00:1c.4/0000:04:00.0/drm/card2 ブーツ2 Radeonカード /sys/devices/pci0000:00/0000:00:03.0/0000:01:00.0/drm/card0 NVIDIA 1カード /sys/devices/pci0000:00/0000:00:1c.0/0000:02:00.0/drm/card1 Nvidia 2カード /sys/devices/pci0000:00/0000:00:1c.4/0000:04:00.0/drm/card2 等... この問題は、デバイスのシートへの割り当てがこれらのデバイス名に基づいているため、マルチシート構成を不安定にします(私はloginctlを使用します)。別の実際の問題は、これがカーネルレベルとXorgレベルの両方でグラフィックカードのコネクタ名を変更する(つまり、VGA-1がVGA-2になるなど)ため、xorg.confを介してモニター構成を実行したり、「 video = "カーネルオプション。これは、セットアップでEDIDのない古いcrtモニターを強制的に有効にするために必要です。 この「card0」「card1 ...」が非決定的であるのは正常ですか、バグまたは構成可能なもの(udevまたはそのようなもの)ですか? 編集: ユーザー@dirktがコメントで言ったように、systemdレベルではこれは非決定的であり、実際にはマルチシート構成自体は問題ありません。私の主な問題は、出力名の信頼性の低さです。カーネルレベルで「video = VGA-1:e」を指定して出力を強制的に有効にする必要があります。そして、私はxorgレベルで使用する必要があります Option "Monitor-VGA-1" "Monitor-x"。

2
プログラムによるLinuxカーネル構成の安全な変更
入力ファイルに基づいていくつかのLinuxカーネル構成オプションを自動的に変更する必要があるスクリプトを書いています。 もちろん、これを行う最も簡単な方法は、.configファイルを直接編集することですが、これは推奨されず、問題が発生する可能性があります。 私はこれを「正しい方法」で行う方法を見つけることができないようです。 「ヘルプを作成」は、単一のオプションを変更する方法も、。/ scripts / kconfig / conf --helpも表示しません。kernel.orgのこのファイルにも方法がないようです。 GentooのGenkernel でさえ、手動で .configファイルを変更します。 それで、基本的に: カーネル構成オプションをプログラムで変更したり、依存関係の追跡を完了したりする安全な方法はありますか? これを達成するためにKconfigを手動で実行できますか?

2
Debian 8でLinuxカーネル3を4にアップグレードする
私のサウンドとワイヤレスハードウェアは、Debian 8システムの現在の3.16.xカーネルでは動作しません。私が実行した: apt-cache search linux-image 4.xバージョンのlinuxカーネルでこれを修正しようとする意図(ハードウェアはUbuntu 16.04で正常に動作するため)。 ただし、カーネルの選択は次のように制限されているようです。 linux-image-3.16.0-4-amd64 - Linux 3.16 for 64-bit PCs 4.xバージョンをインストールし、現在のカーネルと4.xバージョンを切り替えるオプションを使用したいと思います。手動でコンパイルする必要がない簡単な方法またはそれ を使用してこれを行うにはどうすればよいapt-getですか?
8 debian  kernel  apt  upgrade 

2
Linuxカーネルのスクリプト構成
カーネル機能のリストを考慮して、指定されたすべての機能(および対応する依存関係)のみをサポートする最小限のLinux構成を作成します。 allnoconfigと機能を1つずつ有効にするツールを作成する方法はありますか? (.configファイルを編集することはできますが、依存関係が正しくありません。を使用することはできますがmake *config、私が知る限り、これらは対話型でのみ機能するか、デフォルトの構成を作成します。)
8 linux  kernel 

1
4.0以降のLinuxカーネルのUSBドライバーで何が変更されましたか?
3.19までのカーネルで、私のUSBデバイスはすべて完全に動作します。 4.0以降にアップグレードすると、一部のUSBデバイスが機能しなくなり、カーネルが次のようなエラーを生成します。 [ 3.369436] usb 9-1: device descriptor read/64, error -62 [ 3.593543] usb 9-1: new full-speed USB device number 4 using ohci-pci [ 3.997572] usb 9-1: device not accepting address 4, error -62 [ 4.120602] usb 9-1: new full-speed USB device number 5 using ohci-pci [ 4.524792] usb 9-1: …
8 linux  kernel  usb  dvb 

2
カーネルパニックがログファイルをダンプしない
Steamでゲームをプレイしていたところ、突然カーネルパニックが発生しました。手動でコンピューターをシャットダウンしてLinux Mint 17.1(Cinnamon)64ビットで再起動し、でログファイルを確認しに行ったが/var/log/、カーネルパニックに関連する参照やメッセージは見つからなかった。起こりました。 コアをダンプしたり、ログファイルに記録したりしないのは奇妙です。カーネルパニックが再び発生した場合に備えて、コアが常にダンプされるようにするにはどうすればよいですか?カーネルパニックが発生したときに何もログに記録されなかった理由がわかりません。Googleで周りを見ると、人は一読することをお勧めしません/var/log/dmesg、/var/log/syslog、/var/log/kern.log、/var/log/Xorg.log等...何も。.Xsession-errorsファイルにもありません。 画面の写真は次のとおりです。 画面が表示された場合はいつでも写真を撮ることができますが、それが再度発生した場合でも、コアをダンプしてカーネルパニックにログファイルを作成できることを確認したいだけです。

1
Linuxカーネルのセキュリティに関するいくつかの基本的な質問[終了]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 5年前休業。 Linuxカーネルについてはあまり知りませんが、いくつか質問があります。 カーネルメモリをユーザー空間メモリから分離する主な目的は何ですか?ユーザーアプリケーションがカーネルに悪影響を及ぼすことがないようにするには、 ユーザーレベルのアプリケーションがカーネルに制御を移す方法はいくつありますか?私が思いつくことができるものには、(1)システムコールの呼び出し、(2)メモリのカーネルへのマッピング(ただし、mmap()もシステムコールだと思う)、および(3)カーネルモジュールのロード(しかしlsmodだと思います)システムコールも呼び出します)。私は正しいですか?他に見逃した方法はありますか? カーネルを攻撃する方法はいくつありますか?それらについて簡単な詳細を教えてもらえますか? ルート権限を取得した場合、それは完全にカーネルを制御しているということですか?つまり、私はカーネルとハードウェアで何でも好きなことができますか?または、まだカーネルのパワーが制限されていますか? 誰かがこれらの質問への答えを理解するのを手伝ってくれると本当にありがたいです。

1
bashはどのようにELFファイルを実行しますか?
Linux Boxにいるときは、bashをシェルとして使用します。今、私はbashがELFファイルの実行をどのように処理するかを疑問に思いました。私はbash-4.3.tar.gzをgrepしました。ファイルがELFであるかどうかを確認するためのマジック番号パーサーのようなものも、exec()システムコールも見つかりませんでした。 プロセスはどのように機能しますか?ELFの実行をbashがOSに渡す方法を教えてください。
8 bash  kernel  executable  exec  elf 

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