Linuxの学習の基礎 - コンピュータのコンポーネント、カーネル関数、一般的なリリースでは、オープンソースプロトコル、Linuxの哲学、ディレクトリ構造

コンピュータの組成と機能1

  1.1ハードウェアシステム

        コンピュータのハードウェアは、コンピュータデバイスの物理的な構成を指します。基本的な構造上のすべてのコンピュータは、フォン・ノイマンアーキテクチャを踏襲しています。
        演算部、制御部、メモリ、入力装置と出力装置5つの部材を含みます。
        
        算術
            演算子は、各種データの演算及び論理演算の機能、即ちデータ処理です。
        コントローラ
            コントローラはコンピュータを通して中枢神経系であり、制御情報の機能は、そのリクエスト、スケジューラ、データ、アドレス、ワークと連携コンピューター周辺機器アクセスメモリ等の各部位に応じて制御プログラム所定解釈されます。
        メモリの
            記憶情報の機能は、プログラム、データ等の信号、コマンド、すべての種類を格納し、必要なときにこの情報を提供することです。
        
        出力デバイスの外部機器君と組み合わせた入力デバイスは、周辺機器を言及した。
        入力デバイスの
            アクションプログラムの入力デバイスは、元のデータ、テキスト、文字、制御コマンドやデータをコンピュータに入力された情報のフィールドに集めています。一般的な入力デバイスは、キーボード、マウス、光入力、テープドライブ、ディスクドライブ、CD-ROMのマシンを持っています。
        出力装置の
            効果は、出力装置は、各種の文字や記号や機械内部のデータ及び制御信号の各種コンピュータのうち又は最終結果外部中間結果の出力情報です。一般にマイコン出力装置CRTディスプレイターミナル、プリンタ、レーザープリンタ、プロッタ、磁気テープ、CD-ROMドライブ等。
    

 

  1.2ソフトウェアシステム

      「システムソフトウェア」および「ソフトウェア」の2つのカテゴリに分類
        システムソフトウェア
            システムソフトウェアは、ユーザーとコンピュータの間のインターフェイスのソフトウェアおよびその他の態様を提供するために、コンピュータと周辺機器の管理、制御、およびメンテナンスです。アプリケーションソフトウェアに対して、システムソフトウェアは、コンピュータシステムのハードウェアの近くにある、と離れてユーザーからの懸念はさらに離れている、それが特定のアプリケーションの問題に合わせていません。
        アプリケーションソフトウェアは
            、一般的に、直接個人またはユニットは、このようなワープロソフト、コンピュータ支援設計ソフトウェア、企業や情報管理ソフトやゲームソフトの機関として、ソフトウェア、各種の具体的な作業を完了するために助けることができる人々を指します。アプリケーションソフトウェアは、一般的にコンピュータ上で独立して実行することはできませんし、システムソフトウェアによってサポートされなければなりません。
       実行中の最も基本的な支援アプリケーション-システムソフトウェアの種類は、オペレーティングシステムです。アプリケーションソフトウェアは、特に、特別なパッケージの様々なことが多い特殊なソフトウェア・ベンダーによって提供されています。

2.オペレーティングシステムのカーネルの機能と役割を

    プロセス管理
   カーネルはプロセスを作成し、破壊するための責任がある、と外の世界(入力および出力)との接触でそれらを処理。

    のメモリ管理
     コンピュータのメモリが主要な資源である、システムのパフォーマンスが重要な処理戦略である、それはすべてのためのカーネルを使用しています仮想アドレス空間が利用できる限られたリソース上で構築するプロセスの各

    ファイルシステム
     構造化されていないハードウェアの上に構築された構造をほとんど何がカーネルにUnixファイルとみなすことができ、ファイルシステム、その結果は、システム全体で非常に抽象アプリケーションファイルである。加えて、Linuxファイルシステムは、複数のタイプをサポートする、つまり、異なるデータが物理メディア上で編成されている。
    例えば、ディスクは標準のLinux ext3ファイルシステムにフォーマットすることができます一般的に使用されるFATファイルシステム、またはいくつかの他のファイル・システム。 デバイス制御    、最終的に物理デバイスにマッピングされたほぼすべてのシステム動作プロセッサ、メモリ、および非常に少数の他のエンティティに加えて、任意のまたは全ての対処すべきデバイス依存のコードによってデバイス固有の制御動作。これら コードは、デバイスドライバと呼ばれる。周辺駆動システムで発生する各カーネルが埋め込まれなければならない、
テープドライブにキーボードとハードドライブから駆動。   ネットワーク管理  ネットワーク操作のほとんどが1に固有ではないので、ネットワークは、オペレーティングシステムによって管理されなければなりませんプロセス:システムメッセージは、非同期イベントメッセージは、識別情報を引き継ぐために、特定のプロセスの前に収集することができる必要があり、配信システム、プログラム及びネットワークインタフェース間でデータパケットを配信する責任があり、それはネットワーク活動プログラムに基づいていなければならない。
コントロールプログラムの実行。加えて、すべてのルーティングおよびアドレス解決の問題がカーネルに実装されている。    セキュリティメカニズム Linuxカーネルは、セキュリティ管理コンテキストを提供します

3.違いに関連付けられている一般的なLinuxディストリビューションは、

営利企業で割った自然から分割のLinuxディストリビューションは、オープンソースコミュニティによって維持リリースバージョンの商業と無料のバージョンを維持します。RedHatの、Debianの、SuSEのはGentoo:別のLinuxディストリビューションは一般的であり、異なる特性と目標を持って 、アーチのLinux のような
    RHEL(RedHatのもアドバンスサーバー、有料バージョンとして知られているのRedhat Enterprise Linuxの、)を含む- RedHatのシリーズ、Fedora Coreの(RedHatののオリジナルのデスクトップ版から無料版から開発)、CentOSの(コミュニティのRHELクローン、無料)などの
        パッケージ管理のRedHatのシリーズはYUMパッケージ管理RPMパッケージの使用に基づいて、パッケージの配布方法これは、バイナリファイルをコンパイルされます。安定性RHELやCentOSの安定性は、サーバーの使用に適して非常に良いですが、やや少ない安定したFedora Coreの、それが最良の唯一のデスクトップ・アプリケーションに使用されます。
    Debianのシリーズ- DebianとUbuntuのを含みます。DebianのLinuxは、コミュニティクラスのモデルである、これまでで最も続く標準GNU Linuxシステムです。
    SUSE Linux--は、SuSE呼ば
    Gentoo--はPortageのパッケージ管理システムを備えています。ような分布などのパッケージ管理システムAPTやYUMバイナリファイルとは異なりは、ポーテージは、ソースコードに基づいて配布され、大規模なソフトウェアの目的のために実行するためにコンパイルする必要があり、すべてのソフトウェアは、ローカルマシン上でコンパイルされているため、比較的遅いですが、
中にカスタムコンパイラ最適化の様々なパラメータの後に、マシンのハードウェア性能を限界までプレイすることができます。Gentooは最も複雑にインストールされているすべてのLinuxディストリビューションですが、インストールは最も管理バージョンが完了した後、また同じハードウェア環境で最速のバージョンを実行します。 アーチのLinux --ArchLinuxは手動ですべてのものをインストールする必要があるため、それはあなたがLinuxオペレーティング・システムの各部分を学ぶになり、すべてのLinuxディストリビューションを知りたい人のための準備です。

 

4.概念と共通のオープンソースライセンス(GPL、LGPL、BSD、アパッチ等との間の差

    GPL:GPLオープンソースコード/フリー使用及び参照/修正/誘導体コードオープンソース/の起点フリーが、コードを変更させ、クローズドソースの商用ソフトウェア配布・販売ように誘導されません。GPLの主な内容は、単にソフトウェアで(クラスライブラリの参照、このコードの修正されたコード又は誘導体を意味する「使用」)を使用することである
GPLの
製品、ソフトウェア製品は、GPLライセンスである必要があり、オープンソースとフリーの両方でなければなりません。これは、「伝染性」と呼ばれています。GPL製品は何の問題もなく、別の製品として、あなたはまた、無料の利点を楽しむことができます。
         GPL、オープンソース、商用ソフトウェアまたはコード分割機密性の要件を使用するためのGPLの契約を使用しなければならないソフトウェア製品のGPL GPLライブラリーの使用の厳しい要件に集積化に適していない / ライブラリと二次の開発のための基礎として採用。
LGPL:LGPLはGPLを使用するために設計され、主にオープンソースのライブラリの契約です。そして、GPLは、任意の使用が必要と
/修正/ ソフトウェアライブラリー由来のGPL GPLは、異なるプロトコルを使用する必要があります。LGPLは、オープンソースコードライブラリLGPL商用ソフトウェアを使用せずに、商用ソフトウェアライブラリリファレンス(リンク)モードを可能にします。
これはLGPLのオープンソースコードの使用は、参照ライブラリとして使用し、商用ソフトウェアを公開し、販売することができます。
コードはLGPLまたは誘導体化、全て修正されたコードを変更する場合は、コードは追加のコードの変更とLGPLを使用する必要が由来する部分を含みます。したがって、LGPLのオープンソース・コードは、サードパーティの商用ソフトウェア・ライブラリがなく、LGPLのコードベースにしたい人のために、参照されているように非常に適して
使用するビジネスソフトウェアの二次開発を行うための修正や派生道経由。
GPL
/ LGPL類似製品のオープンソース開発のコピーおよび使用から人々を防ぐため、知的財産権を保護するための原作者です
BSD:BSDオープンソースライセンス契約は、ユーザーに多くの自由を与えることです。ソースコードを変更、自由に使用するには、コードをオープンソースまたはプロプライエタリソフトウェアの再リリースを変更することができます。 3つの要件: 再リリースされた製品は、ソースコードが含まれている場合は、ソースコード内のオリジナルのBSDライセンスコードを持っている必要があります。 あなただけのバイナリライブラリを公開する場合
/ソフトウェアがライブラリで必要とされる/ ソフトウェアでオリジナルのBSDのコードプロトコルのマニュアルおよび著作権情報が含まれています。 あなたは、オープンソースの作者使用することはできません / 機関名やマーケティングを行うには、元の製品の名前を。 BSDのコード共有を奨励するコードが、コードの作者の著作権を尊重する必要があります。ユーザーがコードを変更して再配布することを可能にすることによりBSDは、また、BSDコードの商用ソフトウェアの配布・販売の利用や開発を可能にするので、統合されたビジネス向けの合意です。また、オープンソース製品の選択の企業の多くは
、必要なときに、あなたが完全にこれらのサードパーティのコードを制御することができるので、好みのすべてのBSDプロトコルが開発を修正または二次することができます。
ライセンスはApache
2.0  プロトコルは、BSDに類似しており、コードの共有を奨励し、原作者の著作権を尊重し、またその後(オープンソースや商用ソフトウェアとして)放出され、コードの変更を可能にします。条件が満たされる必要があり、BSDにも似て: ユーザーにApacheのライセンスをコーディングする必要性 は、コードを変更した場合、ファイルの記述に変更する必要があります。 コード(コードとソースコード変更が導出される)必要な所定の元に含まれるプロトコル、商標、特許、および他の文で必要と同じコードを有する延びます。 製品の再リリースをお知らせファイルに含まれている場合、ファイルはお知らせApacheのライセンスを持っている必要があります。あなたは憲法を変更するにはApacheライセンスのパフォーマンスをお知らせして独自のライセンスを追加することはできませんが、。 Apacheのライセンスも優しい商用利用のためのライセンスを取得します。ニーズを満たすために必要なユーザーはまた、コードを変更することができますし、オープンソースや商用の製品が起動 / 販売を。
MIT MITやBSDライセンスは、著者の範囲は、他の制限を受けることなく、著作権を保持します。つまり、あなたは関係なく、あなたがバイナリのリリースであり、あなたのディストリビューションでは、元の使用許諾契約書が含まれてはならないとして広いですまたはソースコードでリリース

5. Linuxの哲学

    1 、すべてがファイルである

      ハードウェアデバイスを含むファイル、さらには通信インターフェースとしてすべての抽象ほぼすべてのリソースへの

        オープン()、リード()、書き込み()、)(、)(削除を閉じる使用し、)(作成

     2 多数で、単機能のプログラム:一つのことを行うと、実行するプログラム

     の複雑なタスクを完了するために、小さなプログラムの組み合わせを

     3に、とのユーザインタラクションを回避しようとする

      プログラムでタスクを自動化するのは簡単:ターゲットを

     4に、テキストファイルを使用して設定情報を保存

 

命名規則を緩和する6.Linuxディレクトリ構造のディレクトリ構造

/ ビン:ユーザプログラムファイルで使用可能なすべての基本的なコマンド
 / sbinに:システム管理ユーティリティの使用のために
 / 各静的ファイルのブートローダーを使用する必要があります::ブートカーネル、initramfsを(initrdの )、GRUB のような
 / devの:特殊なファイルストレージデバイスまたはファイル
        デバイスは、2つの種類があります:キャラクタデバイス(リニアデバイス)、ブロックデバイス(ランダム機器)
 / など:システムのプロファイル、唯一の静的
 /ホーム:か所普通のホームディレクトリ:すべての通常の一般的デフォルトこのエンドのホームディレクトリ/ home / USERNAME
 / ルート:管理者のホームディレクトリ、オプション
(/ binに、/ルートファイルシステムまたはシステム・アプリケーションを起動します。/ libの共有ライブラリを提供するなど、sbinに)、およびカーネルカーネルモジュール提供
        libc.so. * 動的にリンクされたCライブラリ:
        LD *:実行時リンカー/ ローダー
        モジュール:ユーザディレクトリ格納されているカーネルモジュール
 / lib64に:64、共有ライブラリ64ビットのシステム固有のストレージ・パスである
 / メディアポータブルデバイスポイント、CD-ROM、フロッピーディスクなどのマウント
 / mntに:他の一時ファイルシステムをマウントポイント
 /OPT:代替パス:追加アプリケーションのインストール場所
 / SRV:サービスの現在のホストによって提供されるデータ
 / TMP:一時ファイルを格納するために使用される一時ファイルを提供する必要があります人のためのディレクトリプログラム:ユーザーのための書き込みを実行します操作:特別な許可を得て
 / USR:usrディレクトリ階層のグローバルに共有、読み取り専用のデータパス
        のlib lib64をsbinにビンが(コマンドのmanページのアーキテクチャ固有のファイル・ストレージ・パスをし、などのドキュメントが付属しています)は、(Cヘッダファイル)を共有SRCプログラム・ソース・ファイル保管場所は
        は/ usr / ローカル:また、一般的にサードパーティ製のプログラムをインストールするために使用:ローカルアプリケーションをインストールするには、システム管理者を許可
 / VAR:データ・ストレージ・パスの変更が頻繁に発生
 / PROC:
   RAMベースの仮想ファイルシステム、コアに使用すると、プロセスメモリ情報:彼らは、ほとんどのような仮想net.ipv4.ip_forwardとしてカーネルパラメータであるの/ proc /に格納されたネット/のIPv4 / ip_forward /、SYS下
 / SYS:
  仮想ファイルシステムがPROCより望ましい提供SYSFS書籍のカーネルにアクセスする方法:その主な役割は、Linuxのデバイスを管理するための統一されたインターフェイスのモデルを提供することです

 

おすすめ

転載: www.cnblogs.com/43945616b/p/11487712.html