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

(UNIX)OSアーキテクチャに関する一般的な質問

4
パイプを理解する方法
bashでパイプを使用したとき、これについてはあまり考えませんでした。しかし、システムコールpipe()とfork()を使用してCコードの例を読むと、匿名パイプと名前付きパイプの両方を含むパイプをどのように理解するのか疑問に思います。 「Linux / Unixのすべてがファイルである」とよく言われます。パイプは実際にはファイルであるため、接続する部分の1つはパイプファイルに書き込み、他の部分はパイプファイルから読み取るのでしょうか。はいの場合、匿名パイプのパイプファイルはどこに作成されますか?/ tmp、/ dev、または...? ただし、名前付きパイプの例から、パイプを使用すると、一時ファイルを明示的に使用するよりもスペースと時間のパフォーマンスが優れていることがわかりました。また、パイプはファイルのようにデータを保存しないようです。したがって、パイプは実際にはファイルであるとは思えません。

2
lsのようなシステムコマンドはどのように作成されますか?
* nixに関して疑問があります。 ls.sh、.ksh、または他の種類のシステム実行可能ファイルであるかどうか、実行可能ファイルのタイプがわからない場合、それは何ですか? 私はのソースコードであるかを確認しようとしたときlsのようなコマンドに見える、それが読めないこれらの種類のファイルを作成するために、* nixの使用を何方法、読めない何かを示していて、私は(のように、これらのファイルへの私のファイルは、同様のことができますls-読めません)。

4
Unixファイルシステムでディレクトリはどのように実装されますか?
私の質問は、ディレクトリの実装方法です。テーブル、配列などの変数のようなデータ構造を信じることができます。UNIXはオープンソースなので、新しいディレクトリを作成したときにプログラムが実行する処理をソースで確認できます。トピックの参照先または詳細を教えてください。ディレクトリは、私が理解できるファイルであり、実際にファイルであるということですか?ファイルが「何か」ファイルに保存されているかどうかはわかりませんが、ほぼすべてについて単語ファイルを言うことができますが、変数aファイル。たとえば、リンクは確かにファイルではなく、リンクはディレクトリのようなものですが、ディレクトリがファイルであることには違反しますか?

4
Linuxを完全に起動するために必要な最低限のルートファイルシステムアプリケーションは何ですか?
ユーザー空間アプリケーションに関する質問ですが、私に聞いてください! Linuxの機能ディストリビューションを起動するには、いわば3つの「アプリケーション」が必要です。 ブートローダー-通常は組み込み用のU-Bootですが、ハード要件ではありません。 カーネル-それは非常に簡単です。 ルートファイルシステム-それなしではシェルを起動できません。カーネルがブートするファイルシステムと、initフォームと呼ばれる場所が含まれます。 私の質問は#3に関してです。誰かが非常に最小限のrootfsを構築したい場合(この質問ではGUIなし、シェルのみ)、シェルを起動するにはどのファイル/プログラムが必要ですか?

3
システムコール、メッセージパッシング、割り込みの関係は何ですか?
プロセス管理に関するウィキペディアの記事を読んでいます。私の焦点はLinuxにあります。システムコール、メッセージパッシング、割り込みの概念と目的の関係と違いを理解することはできません。これらはすべて、リソースとサービスをカーネルに要求するプロセスのためのものですか? この記事からの引用とその他の引用: OSが割り当て解除または割り当てを実行するために、プログラムの実行中にOSがプロセッサの制御を取り戻すには、2つの方法があります。 プロセスはシステムコール(ソフトウェア割り込みとも呼ばれます)を発行します。たとえば、ハードディスク上のファイルへのアクセスを要求するI / O要求が発生します。 ハードウェア割り込みが発生します。たとえば、キーボードでキーが押された、またはタイマーが切れた(プリエンプティブマルチタスクで使用)。 ユーザーモードで実行しているプログラムがカーネルのサービスを要求できる方法は2つあります。 * System call * Message passing 割り込みは、注意の必要性を示す非同期信号、または実行の変更の必要性を示すソフトウェアの同期イベントです。 ハードウェア割り込みにより、プロセッサは実行状態を保存し、割り込みハンドラーの実行を開始します。ソフトウェア割り込みは通常、命令セット内の命令として実装され、ハードウェア割り込みと同様の割り込みハンドラーへのコンテキスト切り替えを引き起こします。



3
最初のFreeBSDインストール。LinuxとBSDの違いについて知っておくべきことはありますか?
今日、私が横たわっている予備のHDDにFreeBSDをインストールしたいと思います。試用し、いくつかのことを学び、それが自分に合っている場合は、現在のUbuntu 10.10の「サーバー/ NAS /エンコードボックス」をそれに置き換えます。好奇心が主な理由です。また、次のUbuntuイテレーションに乗る前に、GNOME 3 / Unityで発生した主要なバグのほとんどを確認したいと思います。 私はBSDの経験はありません(OS Xを除く)が、長年にわたってかなりの数のLinuxディストリビューションをインストールして使用しました。Linuxを立ち上げて実行する方法については、Archなどのロールユア独自のディストリビューションを含め、かなりよく理解しています。しかし、私は想像力の広がりによって専門家ではありません。基本的に、私は私の祖母よりも優れていると思います。 それでは、FreeBSDを初めてインストールするときに留意すべきことはありますか?特に、FreeBSDとLinuxディストリビューションのインストールとセットアップに大きな違いはありますか?さらに、i386リリースを使用する必要がありますか?ドキュメントのどこかでi386が推奨されていることを読みましたが、それが古い情報であるかどうかはわかりません。


2
dpkg:エラー:データベースで現在使用されているアーキテクチャ「i386」を削除できません
このコマンドを使用してi386アーチを追加しました。 sudo dpkg --add-architecture i386 そして、パッケージをインストールせずにすぐに、i386アーチを次のように削除しようとしました。 sudo dpkg --remove-architecture i386 そして私はエラーを得ました: dpkg: error: cannot remove architecture 'i386' currently in use by the database 私がこれまでに見た解決策は、i386パッケージを削除することです。インストールしたものはありません。インストールされているものはOSの機能に不可欠です。私は何をしますか? 編集し、OSの破壊を回避するために以下をお読みください: 64ビットLinux OSにはすでにi386 archが含まれているため、コマンドsudo dpkg --add-architecture i386は実際には何もしませんでした。

5
Linuxではどのスケジューリングアルゴリズムが使用されていますか?
最近インタビューで、Linuxオペレーティングシステムで使用されるスケジューリングアルゴリズムについて尋ねられました。使用されているアルゴリズムは何ですか? また、リアルタイムオペレーティングシステムで使用されているアルゴリズムとその理由を教えてください。


3
ログインとsu内部
Linuxでのユーザー権限の仕組みを理解しようとしています。カーネルが起動しinit、ルートとして起動しますよね?その後、Initは起動スクリプトを実行し、再度rootとしてgetty(agetty)を実行します。Agettyはユーザー名を読み取って実行しますがlogin、それでもrootのままです。まだ何も面白くない。しかし、ログインは何をしますか?「ログインしようとする」以上のものを見つけることができませんでした。ログインでパスワードが一致すると(そして通常のユーザーとしてログインしようとすると)検出された場合、ユーザーIDをどのように変更しますか?そのためのシステムコールがあるはずだと思いましたが、それを見つけることができませんでした(多分、私は盲目なのでしょうか?) また、についてsu。su「setuid」ビットが設定されているため、実行すると、常にルートとして実行されます。しかし、通常のユーザーとしてログインするように指示すると、再びユーザーIDを変更する必要があります。同じ「マジック」がユーザーを変更する必要があるときsuとloginいつ発生するかを正しく理解していますか?もしそうなら、なぜ2つの異なるプログラムがあるのですか?ログインを実行しているときに、その他の深刻なビジネスが発生していますか?


2
x86-64マシンでi386ターゲットのrpmをビルドするにはどうすればよいですか?
私はrpmbuild次のようにコマンドを使用してrpmを構築しています: rpmbuild -bb --root <DIRECTORY> --target i386 --define "_topdir <DIRECTORY>" <specfile>.spec SLED 10 SP3 x86マシンを使用すると、正常に動作します。しかし、私のSLES 10 SP3 x64仮想マシンでは、次のエラーが発生します。 error: No compatible architectures found for build 最初は--targetオプションを使用していませんでしたが、それでもx86マシンで実行されていましたが、x64マシンでも同じエラーが発生しました。 このエラーを解決するために私を助けてください

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