
バイナリリンク(動的リンクや静的リンクなど)とシンボリックリンクの間に関係がありますか?彼らはどのように相互作用するのか、それともいくつかの歴史を共有していますか、それともまったく直交するこの2つの概念が偶然に似ていると言われましたか?
答え1
別言します。 1つはファイル名(すべての種類のファイル)へのすべての参照を別のファイル(シンボルリンク)にリダイレクトすること、もう1つはライブラリから実行可能ファイル(静的リンク)にコードをコピーすること、または動的ライブラリを参照することです。必要なコードを作成し、実行時に動的ライブラリをロードします。
答え2
はい、「(テキスト)キーを使用して名前付きリソースを検索する」という抽象的な意味である「リンク」という単語の一般的な意味を持ちます。まず、「一般」タイプのファイルリンク(ハードリンク)を調べると便利です。
ㅏハードリンクディスク上の特定のファイルをその名前へのポインタに関連付けるUnixディレクトリのエントリ。インデックスノード。ファイルにアクセス(開く、stat
編集)すると、ファイルシステムドライバは要求された名前に対応するinodeを見つけます。ディレクトリは、このリストの名前をinode番号に関連付けるテーブルです。前の数字はファイルが実際に保存される inode です。
6951168 -rwxr-xr-x 1 christopher christopher 209 Apr 24 2014 CAPS
6951172 -rwxr-xr-x 1 christopher christopher 976 Aug 6 2012 offline
6951175 -rwxr-xr-x 1 christopher christopher 541 Apr 8 2014 records-backup.sh
6950166 -rwxr-xr-x 1 christopher christopher 778 Nov 4 07:05 switch-monitors.sh
ㅏシンボリックリンクinodeを直接指すのではなく、内部に相対パスを持つ特殊な小さなテキストファイルを指す関数です。ほとんどの場合、通常のハードリンクのように見え、名前はたとえ話から派生しています。
ㅏコネクタld.so
これは、ハードリンクを使用してファイルシステムが実行するものと同様の操作を実行することを意味します。 C(および互換性のある)プログラムの使用記号表プログラムが別のライブラリーから呼び出す関数の名前をリストします。リンカーは、要求された各名前に対応する関数のメモリ位置を見つけて入力します(正確な方法はさまざまです)。