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

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

4
Cコンパイラをゼロからコンパイルし、Unix / Linuxをゼロからコンパイルする方法
アメリカ/イギリス以外の大規模なサービス組織で働いているとしましょう。UNIXサーバーとLinuxサーバーを幅広く使用しています。 この記事を読むと、Cコンパイラにバックドアを簡単に挿入でき、そのコンパイラでコンパイルされたコードにもバックドアが含まれることに言及しています。すべての暗号化方法、ハードウェア、およびソフトウェアにバックドア/弱点を置くというNSA / GCHQの命令に関する最近のリークを考えると、コンパイラは障害の重大なポイントになりました。すべての標準UNIX / Linixディストリビューションが危険にさらされる可能性があります。システム、データ、および顧客データを不正な政府によって侵害することはできません。 この情報を基に、信頼できるコンパイラをゼロから構築したいと考えています。その後、そのコンパイラを使用してソースコードからオペレーティングシステムとアプリケーションを構築できるように、安全な基盤を構築します。 質問 ソースコードからコンパイラをコンパイルし(一見鶏卵のシナリオ)、信頼できるUnix / Linuxディストリビューションをゼロからコンパイルするための正しい(そして安全な方法)は何ですか? 私や他の人がセキュリティ欠陥のソースコードを読んで理解する能力を持っていると仮定できるので、ソースコードはコンパイルする前に最初に吟味されます。私が本当に望んでいるのは、このコンパイラをゼロから安全に作成し、カーネル、OSのその他の部分、およびアプリケーションをコンパイルするために使用できる作業ガイドです。 セキュリティスタックは、そのスタックで実行されているオペレーティングシステムまたはアプリケーションに自信がある場合、ベースレベルで開始する必要があります。はい、ハードウェアのバックドアがあり、ビルド中にコンパイラにマイクロコードを挿入する可能性があることを理解しています。現時点では、米国で設計されていないチップを使用することを除いて、私たちができることはあまりありません。このレイヤーを最初にソートして、バックドアが挿入される前に古いコンピューターで構築できると仮定します。 ブルース・シュナイアーが言うように:「エンジニアに対して、私はこう言います。私たちはインターネットを構築し、私たちの何人かはそれを破壊するのを助けました。今、自由を愛する私たちはそれを直さなければなりません。」 追加リンク: http://nytimes.com/2013/09/06/us/nsa-foils-much-internet-encryption.html?pagewanted=all&_r=0 http://theguardian.com/commentisfree/2013/sep/05/government-betrayed-internet-nsa-spying

11
透明なhugepagesを無効にします
RAIDマシンにSAP HANAをインストールしています。インストール手順の一環として、 To disable the usage of transparent hugepages set the kernel settings at runtime with echo never > /sys/kernel/mm/transparent_hugepage/enabled したがって、ランタイムの代わりに、これを永続的な変更にしたい場合、/proc/vmstatファイル内に上記の行を追加する必要がありますか?
63 linux  kernel  sysctl 

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

7
単一のコマンドでカーネルパニックを引き起こす方法
単一のコマンドラインでカーネルパニックを引き起こすことは可能ですか? sudoingユーザーにとって最も簡単なこのようなコマンドは何でしょうか?また、もしあれば、通常のユーザーにとっては何でしょうか? コマンドの一部として何かをダウンロードすることを提案するシナリオは考慮されません。

4
各擬似端末(PTY)コンポーネント(ソフトウェア、マスター側、スレーブ側)の責任は何ですか?
ttyがどのように機能するかを把握しようとしています1(各要素のワークフローと責任)。私はそれについていくつかの興味深い記事を読みましたが、まだいくつかのぼやけた領域があります。 これは私がこれまでに理解していることです: エミュレートされた端末は/dev/ptmx、擬似端末のマスター部分であるに異なるシステム呼び出しを行います。 擬似端末のマスター部分は、/dev/pts/[0-N]廃止されたシリアルポートに対応するにファイルを割り当て、スレーブ擬似端末をそれに接続します。 スレーブ擬似端末は、セッションID、フォアグラウンドジョブ、画面サイズなどの情報を保持します。 私の質問は次のとおりです。 スレーブ部分を割り当てる以外に、ptmxにはどんな目的がありますか?何らかの「インテリジェンス」を提供しますか、またはエミュレートされた端末(たとえばxterm)が端末のように動作するすべてのインテリジェンスを備えていますか? xtermはスレーブパーツのstdoutとstdinのみを転送するため、マスターパーツと対話する必要があるのはなぜですか?なぜptsファイルから直接読み書きできないの ですか? セッションIDは常に1つのPTSファイルに添付されますか?psコマンドを入力して、同じ/ dev / pts / Xの2つのsessionIdを見つけられますか? ptsストアには他にどのような情報がありますか?Xtermはすべてのフィールドを自分で更新しますか、それともptm何らかの「インテリジェンス」を追加しますか? 1. Linus Akessonによって謎解かれたTTYとAndries Brouwer投稿によるLinux Kernelに、これらのサイトの他のいくつかの質問のように、私の理解の基礎を置きます。

4
dmesg出力と/ var / log / messagesの違いは何ですか?
AFAIK dmesgは、カーネルとカーネルモジュール/var/log/messagesに関する情報を表示し、カーネルとモジュールによって生成された情報も表示します。 それで、違いは何ですか?い/var/log/messages ⊂の出力をdmesg? 参考になる情報: - カーネルリングバッファがあります。これは、カーネルログデータを保存する唯一の場所だと思います。-IBM DeveloperWorksの 記事「カーネルロギング:APIと実装」では、APIと鳥瞰図について説明しています。
55 kernel  logs  dmesg 





7
inotifyリソースを消費しているのは誰ですか?
Fedora 15に最近アップグレードした後、次の行に沿っていくつかのツールがエラーで失敗していることがわかりました。 tail: inotify resources exhausted tail: inotify cannot be used, reverting to polling tailinotifyの問題を報告しているだけではありません。カーネルに問い合わせて、どのプロセスがinotifyリソースを消費しているかを調べる方法はありますか?現在のinotify関連のsysctl設定は次のようになります。 fs.inotify.max_user_instances = 128 fs.inotify.max_user_watches = 8192 fs.inotify.max_queued_events = 16384
49 fedora  kernel  inotify 

7
GRUBでデフォルトカーネルを設定する
GRUB2がデフォルトでロードするカーネルを選択するにはどうすればよいですか?最近、Linuxリアルタイムカーネルをインストールしましたが、現在はデフォルトでロードされます。デフォルトで通常のものをロードしたいです。 これまでのところ、デフォルトのOSしか選択できませんでした。何らかの理由で/boot/grub.cfg、rt-kernelをロードし、汎用Linuxメニューエントリ(私の場合はArch Linux)に入れたいと既に仮定しています。
49 linux  kernel  boot  grub 

3
コマンドの単一引数の最大サイズを定義するものは何ですか?
ここでは、引数配列全体の合計サイズと環境のサイズ(これはに制限されていARG_MAXます)ほど、1つの引数の最大長は問題ではないという印象を受けました。したがって、次のようなことが成功すると思いました。 env_size=$(cat /proc/$$/environ | wc -c) (( arg_size = $(getconf ARG_MAX) - $env_size - 100 )) /bin/echo $(tr -dc [:alnum:] </dev/urandom | head -c $arg_size) >/dev/null - 100シェルでの環境の大きさとの間の差を考慮するために十分すぎるほどであることがよりechoプロセス。代わりに、エラーが発生しました: bash: /bin/echo: Argument list too long しばらく遊んだ後、最大値は完全な16進数の桁より小さいことがわかりました。 /bin/echo \ $(tr -dc [:alnum:] </dev/urandom | head -c $(($(getconf ARG_MAX)/16-1))) \ >/dev/null マイナス1が削除されると、エラーが返されます。一見、単一の引数の最大値は実際にARG_MAX/16あり-1、引数配列の文字列の最後に置かれたヌルバイトを考慮しています。 別の問題は、引数が繰り返されると、引数配列の合計サイズがに近くなる可能性があるARG_MAXが、それでもまだそこにはないということです。 …
48 kernel  echo  arguments 

3
カーネルはどのくらいのRAMを使用しますか?
この質問は、Mac OS Xカーネルが750MBのRAMを使用していることを発見したときのショックに動機付けられています。 私は20年間Linuxを使用してきましたが、カーネルRAMの使用量がXによってd小化されることを常に「知っていました」(本当ですか?本当ですか?)。 だから、いくつかのグーグルの後、私はslabtop言った: Active / Total Size (% used) : 68112.73K / 72009.73K (94.6%) これは、私のカーネルが〜72MBのRAMを使用しているということですか? (RSSを17Mとしてtop報告することを考えるとXorg、カーネルは今ではXを小人化し、その逆ではありません)。 ラップトップの「通常の」カーネルRAM使用量(範囲)とは何ですか? MacOSがLinuxよりも桁違いに多くのRAMを使用するのはなぜですか? PS。ここでの最後の質問に対する回答はありません。関連する質問をご覧ください。 kernel_taskが2007年半ばの白いMacBookで定期的に130MBを超える場合、問題になりますか? あまりにも多くのメモリを使用している kernel_task kernel_taskActivity Monitorには何が含まれていますか?
46 linux  kernel  ram 

4
仮想アドレス空間でページサイズはどのように決定されますか?
Linuxは、すべてのアドレスが仮想アドレスであり、物理アドレスではない仮想メモリシステムを使用します。これらの仮想アドレスは、プロセッサによって物理アドレスに変換されます。 この変換を容易にするために、仮想メモリと物理メモリはページに分割されます。これらの各ページには一意の番号が付けられています。ページフレーム番号。 一部のページサイズは2 KB、4 KBなどです。しかし、このページサイズの数値はどのように決定されますか?アーキテクチャのサイズに影響されますか?たとえば、32ビットバスには4 GBのアドレス空間があります。

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