Glibc 2.36 ra mắt với các tính năng mới cho Linux, các cải tiến và hơn thế nữa

Sau sáu tháng phát triển, phiên bản mới của glibc 2.36 đã được công bố, phiên bản này tuân thủ đầy đủ các yêu cầu của tiêu chuẩn ISO C11 và POSIX.1-2017 và trong đó phiên bản mới bao gồm các chỉnh sửa từ 59 nhà phát triển.

Đối với những người không quen với Glibc, họ nên biết nó là gì một thư viện GNU C, thường được gọi là glibc là thư viện thời gian chạy GNU C tiêu chuẩn. Trên các hệ thống mà nó được sử dụng, thư viện C này cung cấp và định nghĩa các lệnh gọi hệ thống và các chức năng cơ bản khác, nó được hầu hết các chương trình sử dụng. 

Các tính năng mới chính của Glibc 2.36

Trong phiên bản mới này được trình bày, nó được nhấn mạnh rằng hỗ trợ thêm cho một định dạng địa chỉ tái định cư tương đối mới DT_RELR, cho phép bạn giảm kích thước của các vị trí tương đối trong các đối tượng được chia sẻ và các tệp thực thi được liên kết trong chế độ PIE (Các tệp thực thi độc lập vị trí). Việc sử dụng trường DT_RELR trong tệp ELF yêu cầu hỗ trợ tùy chọn "-z pack-relative-relocs" trong trình liên kết, được giới thiệu trong binutils 2.38.

Một thay đổi khác nổi bật trong phiên bản mới là cho Linux các chức năng pidfd_open, pidfd_getfd và pidfd_send_signal đã được triển khai để cung cấp quyền truy cập vào chức năng pidfd giúp xử lý các tình huống tái sử dụng PID để xác định chính xác hơn các quy trình đang truy cập vào các tệp được giám sát (pidfd được liên kết với một quy trình cụ thể và không thay đổi, trong khi PID có thể được gắn với quy trình khác sau khi quy trình hiện tại liên kết với quy trình này PID).

Bên cạnh đó, trong Linux cũng có process_madvise ()Đó cho phép một quy trình thực hiện một lệnh gọi hệ thống madvise () thay mặt cho một quy trình khác, xác định quy trình mục tiêu bằng cách sử dụng pidfd. Thông qua madvise (), bạn có thể thông báo cho hạt nhân về các đặc điểm làm việc với bộ nhớ để tối ưu hóa việc quản lý bộ nhớ của tiến trình, ví dụ: dựa trên thông tin được truyền, hạt nhân có thể bắt đầu giải phóng thêm bộ nhớ trống.

Nó cũng được lưu ý rằng chức năng đã được thêm vào process_mrelease (), cho phép bạn tăng tốc độ giải phóng bộ nhớ cho một quá trình kết thúc quá trình thực thi. Trong các trường hợp bình thường, việc giải phóng tài nguyên và kết thúc quá trình không diễn ra ngay lập tức và có thể bị trì hoãn vì nhiều lý do khác nhau, gây ảnh hưởng đến hệ thống cảnh báo sớm không gian của người dùng như oomd (do systemd cung cấp). Bằng cách gọi process_mrelease, các hệ thống này có thể bắt đầu truy xuất bộ nhớ một cách dễ dàng hơn đối với các quy trình đã bị buộc phải chấm dứt.

Mặt khác, nó được lưu ý rằng nó đã được thêm vào hỗ trợ cho tùy chọn "no-aaaa" để triển khai tích hợp Độ phân giải DNS, cho phép bạn vô hiệu hóa việc gửi yêu cầu DNS cho các bản ghi AAAA (xác định địa chỉ IPv6 theo tên máy chủ), ngay cả khi chạy các hàm NSS như getaddrinfo (), để đơn giản hóa việc khắc phục sự cố. Tùy chọn này không ảnh hưởng đến việc xử lý các ràng buộc địa chỉ IPv6 được xác định trong / etc / hosts và các lệnh gọi đến getaddrinfo () với cờ AI_PASSIVE.

Đối với Linux, đã thêm các chức năng fsopen, fsmount, move_mount, fsconfig, fspick, open_tree và mount_setattr para cung cấp quyền truy cập vào một API hạt nhân mới để kiểm soát cách hệ thống tệp được gắn kết dựa trên không gian tên gắn kết. Các chức năng được đề xuất cho phép xử lý riêng biệt các bước gắn kết khác nhau (xử lý siêu khối, lấy thông tin về hệ thống tệp, gắn kết, gắn vào điểm gắn kết), trước đây đã được thực hiện bằng cách sử dụng hàm mount () chung.

Đã được thêm vào chức năng arc4random, arc4random_buf và arc4random_uniform để cung cấp các ràng buộc về lệnh gọi hệ thống lấy ngẫu nhiên và giao diện / dev / urandom, trả về các số giả ngẫu nhiên chất lượng cao.

Khi chạy trên Linux, hỗ trợ cho kiến ​​trúc được cung cấp. từ tập hướng dẫn LoongArch được sử dụng trong bộ vi xử lý Loongson 3 5000 và một RISC ISA mới tương tự như MIPS và RISC-V được triển khai. Ở dạng hiện tại, chỉ có khả năng tương thích với biến thể 64-bit từ LoongArch (LA64). Nó yêu cầu ít nhất binutils 2.38, GCC 12 và Linux kernel 5.19 để chạy.

Trong số những thay đổi khác nổi bật:

  • Cơ chế liên kết trước, cũng như các biến môi trường LD_TRACE_PRELINKING và LD_USE_LOAD_BIAS được liên kết và các tính năng của trình liên kết, không được dùng nữa và sẽ bị xóa trong một bản phát hành trong tương lai.
  • Đã xóa mã để kiểm tra phiên bản hạt nhân Linux và xử lý biến môi trường LD_ASSUME_KERNEL. Phiên bản hạt nhân tối thiểu được hỗ trợ khi biên dịch Glibc được xác định bởi trường ELF NT_GNU_ABI_TAG.
  • Biến môi trường LD_LIBRARY_VERSION không được dùng nữa trên nền tảng Linux.

Cuối cùng, nếu bạn quan tâm có thể biết thêm về nó, bạn có thể tham khảo chi tiết Trong liên kết sau đây.


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.