Glibc 2.36 が Linux の新機能、改善点などとともに登場

開発から 2.36 か月後、新しいバージョンの glibc 11 のリリースが発表されました。このバージョンは、ISO C1 および POSIX.2017-59 標準の要件に完全に準拠しており、新しいバージョンには XNUMX 人の開発者による修正が含まれています。

Glibcに慣れていない人は、Glibcが何であるかを知っておく必要があります。 GNU Cライブラリ、 一般にglibcとして知られているのは、標準のGNUCランタイムライブラリです。 それが使用されるシステムでは、このCライブラリは システムコールやその他の基本的な機能を提供および定義し、ほとんどすべてのプログラムで使用されます。 

Glibc2.36の主な新機能

提示されるこの新しいバージョンでは、次のことが強調されています。 新しい相対再配置アドレス形式のサポートを追加 DT_RELR: PIE (Position Independent Executables) モードで、共有オブジェクトおよびリンクされた実行可能ファイルの相対再配置のサイズを縮小できます。 ELF ファイルで DT_RELR フィールドを使用するには、binutils 2.38 で導入されたリンカーの「-z pack-relative-relocs」オプションのサポートが必要です。

新しいバージョンで際立っているもうXNUMXつの変更点は、 Linux の場合、関数 pidfd_open、pidfd_getfd、および pidfd_send_signal pidfd 機能へのアクセスを提供するために実装されました これは、PID の再利用状況を処理して、監視対象ファイルにアクセスしているプロセスをより正確に識別するのに役立ちます (pidfd は特定のプロセスに関連付けられており、変更されませんが、PID はプロセスの終了後に別のプロセスに関連付けることができます)。 PID)。

それに加えて、 Linux にも process_madvise() がありますその プロセスが別のプロセスに代わって madvise() システム コールを実行できるようにする、pidfd を使用してターゲット プロセスを識別します。 madvise() を介して、プロセスのメモリ管理を最適化するためにメモリを操作する特性についてカーネルに通知できます。たとえば、渡された情報に基づいて、カーネルは追加の空きメモリの解放を開始できます。

機能が追加されたことにも注目 process_mrelease() を使用すると、実行を終了するプロセスのメモリの解放を高速化できます。 通常の状況では、リソースの解放とプロセスの終了は即時ではなく、さまざまな理由で遅延する可能性があり、oomd (systemd によって提供される) などのユーザー空間の早期警告システムに干渉します。 これらのシステムは、process_mrelease を呼び出すことにより、強制終了されたプロセスのメモリ取得をより確実に開始できます。

一方、追加されていることに注意してください。 「no-aaaa」オプションのサポート の統合実装へ AAAA レコードの DNS 要求の送信を無効にできる DNS 解決 getaddrinfo() などの NSS 関数を実行している場合でも、トラブルシューティングを簡素化します。 このオプションは、/etc/hosts で定義された IPv6 アドレスバインディングの処理と、AI_PASSIVE フラグを指定した getaddrinfo() の呼び出しには影響しません。

Linuxの場合、関数が追加されました fsopen、fsmount、move_mount、fsconfig、fspick、open_tree、mount_setattr パラ ファイルシステムのマウント方法を制御する新しいカーネル API へのアクセスを提供する マウント名前空間に基づいています。 提案された関数により、以前は共通の mount() 関数を使用して実行されていたさまざまなマウント手順 (スーパーブロックの処理、ファイル システムに関する情報の取得、マウント、マウント ポイントへのアタッチ) を個別に処理できます。

追加されました 機能 arc4random、arc4random_buf、および arc4random_uniform システムコールでバインディングを提供する ランダムに取得 そしてインターフェース は/ dev / urandomの、高品質の疑似乱数を返します。

Linux で実行する場合、アーキテクチャのサポートが提供されます。 命令セットから ロンアーチ Loongson 3 5000 プロセッサで使用され、MIPS および RISC-V に類似した新しい RISC ISA が実装されています。 現在の形式では、互換性のみが利用可能です 64 ビット バリアントを使用 LoongArch (LA64) から。 実行するには、少なくとも binutils 2.38、GCC 12、および Linux カーネル 5.19 が必要です。

目立つ他の変更のうち:

  • 関連する LD_TRACE_PRELINKING および LD_USE_LOAD_BIAS 環境変数とリンカー機能と同様に、事前リンク メカニズムは推奨されておらず、将来のリリースで削除される予定です。
  • Linux カーネルのバージョンを確認し、LD_ASSUME_KERNEL 環境変数を処理するコードを削除しました。 Glibc のコンパイル時にサポートされるカーネルの最小バージョンは、ELF フィールド NT_GNU_ABI_TAG によって決まります。
  • LD_LIBRARY_VERSION 環境変数は、Linux プラットフォームでは非推奨になりました。

最後に、それについてもっと知りたい場合は、詳細を調べることができます 次のリンクで。


コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:MiguelÁngelGatón
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。