Bản phát hành nhân Linux 6.0

Sau hai tháng phát triển, Linus Torvalds đã trình làng việc phát hành nhân Linux 6.0. Sự thay đổi đáng kể về số phiên bản là vì lý do thẩm mỹ và là một bước chính thức để giảm bớt sự khó chịu khi tích lũy một số lượng lớn các vấn đề trong bộ truyện (Linus nói đùa rằng lý do thay đổi số nhánh có nhiều khả năng là anh ấy đã hết ngón tay. và ngón chân để đếm số phiên bản). Trong số những thay đổi đáng chú ý nhất: hỗ trợ ghi vào bộ đệm không đồng bộ trong XFS, trình điều khiển khối ublk, tối ưu hóa bộ lập lịch tác vụ, cơ chế xác minh hoạt động chính xác của kernel, hỗ trợ mã hóa khối ARIA.

Những cải tiến chính trong kernel 6.0:

  • Hệ thống con đĩa, I/O và hệ thống tệp
    • Hệ thống tệp XFS đã thêm hỗ trợ cho việc ghi vào bộ đệm không đồng bộ bằng cơ chế io_uring. Các thử nghiệm hiệu năng được thực hiện bằng công cụ fio (1 thread, kích thước khối 4kB, 600 giây, ghi tuần tự) cho thấy sự gia tăng các hoạt động đầu vào/đầu ra mỗi giây (IOPS) từ 77k lên 209k, tốc độ truyền dữ liệu từ 314MB/s lên 854MB/s, và độ trễ giảm từ 9600ns xuống 120ns (80 lần).
    • Hệ thống tệp Btrfs triển khai phiên bản thứ hai của giao thức cho lệnh “gửi”, triển khai hỗ trợ siêu dữ liệu bổ sung, gửi dữ liệu ở dạng khối lớn hơn (hơn 64K) và truyền phạm vi ở dạng nén. Hiệu suất của các hoạt động đọc trực tiếp đã tăng lên đáng kể (lên tới 3 lần) do đọc đồng thời lên tới 256 lĩnh vực. Giảm tranh chấp khóa và tăng tốc độ kiểm tra siêu dữ liệu bằng cách giảm siêu dữ liệu dành riêng cho các phần tử bị trì hoãn.
    • Các hoạt động ioctl mới EXT4_IOC_GETFSUUID và EXT4_IC_SETFSUUID đã được thêm vào hệ thống tệp ext4 để truy xuất hoặc đặt UUID được lưu trữ trong siêu khối.
    • Hệ thống tệp F2FS cung cấp chế độ tiêu thụ bộ nhớ thấp, giúp tối ưu hóa hoạt động trên các thiết bị có dung lượng RAM nhỏ và cho phép bạn giảm mức tiêu thụ bộ nhớ với cái giá là giảm hiệu suất.
    • Đã thêm hỗ trợ xác thực ổ NVMe.
    • Máy chủ NFSv4 thực hiện giới hạn về số lượng máy khách đang hoạt động, được đặt là 1024 máy khách hợp lệ cho mỗi gigabyte RAM trong hệ thống.
    • Việc triển khai máy khách CIFS đã cải thiện hiệu suất ở chế độ truyền đa kênh.
    • Một cờ mới FAN_MARK_IGNORE đã được thêm vào hệ thống con theo dõi sự kiện trong FS fanotify để bỏ qua các sự kiện cụ thể.
    • Trong Overlayfs FS, khi được gắn trên FS với ánh xạ ID người dùng, hỗ trợ chính xác cho danh sách kiểm soát truy cập tuân thủ POSIX sẽ được cung cấp.
    • Đã thêm trình điều khiển khối ublk, di chuyển logic cụ thể sang một bên của quy trình nền trong không gian người dùng và sử dụng hệ thống con io_uring.
  • Dịch vụ bộ nhớ và hệ thống
    • Các tính năng mới đã được thêm vào hệ thống con DAMON (Data Access MONitor), cho phép không chỉ giám sát quá trình truy cập vào RAM từ không gian người dùng mà còn tác động đến việc quản lý bộ nhớ. Đặc biệt, một mô-đun mới “LRU_SORT” đã được đề xuất, cung cấp khả năng tập hợp lại các danh sách LRU (Ít được sử dụng gần đây nhất) để tăng mức độ ưu tiên của các trang bộ nhớ nhất định.
    • Khả năng tạo các vùng bộ nhớ mới đã được triển khai bằng cách sử dụng các khả năng của bus CXL (Compute Express Link), được sử dụng để tổ chức tương tác tốc độ cao giữa CPU và các thiết bị bộ nhớ. CXL cho phép bạn kết nối các vùng bộ nhớ mới được cung cấp bởi các thiết bị bộ nhớ ngoài và sử dụng chúng làm tài nguyên không gian địa chỉ vật lý bổ sung để mở rộng bộ nhớ truy cập ngẫu nhiên (DDR) hoặc bộ nhớ vĩnh viễn (PMEM) của hệ thống.
    • Đã giải quyết các vấn đề về hiệu suất với bộ xử lý AMD Zen do mã được thêm vào 20 năm trước để khắc phục sự cố phần cứng trong một số chipset (một lệnh WAIT bổ sung đã được thêm vào để làm chậm bộ xử lý để chipset có thời gian chuyển sang trạng thái không hoạt động). Sự thay đổi này dẫn đến hiệu suất giảm trong khối lượng công việc thường xuyên luân phiên giữa trạng thái rảnh và bận. Ví dụ: sau khi vô hiệu hóa giải pháp thay thế, điểm kiểm tra tbench trung bình đã tăng từ 32191 MB/s lên 33805 MB/s.
    • Mã với phương pháp phỏng đoán đã bị loại bỏ khỏi bộ lập lịch tác vụ, đảm bảo di chuyển các tiến trình sang các CPU được tải ít nhất, có tính đến mức tiêu thụ năng lượng dự đoán. Các nhà phát triển kết luận rằng phương pháp phỏng đoán không đủ hữu ích và việc loại bỏ nó cũng như di chuyển các quy trình sẽ dễ dàng hơn mà không cần đánh giá bổ sung bất cứ khi nào việc di chuyển như vậy có thể dẫn đến mức tiêu thụ điện năng thấp hơn (ví dụ: khi CPU mục tiêu ở mức năng lượng thấp hơn). Việc tắt heuristic giúp giảm mức tiêu thụ điện năng khi thực hiện các tác vụ chuyên sâu, chẳng hạn như trong thử nghiệm giải mã video, mức tiêu thụ điện năng giảm 5.6%.
    • Việc phân phối tác vụ trên các lõi CPU trên các hệ thống lớn đã được tối ưu hóa, giúp cải thiện hiệu suất cho một số loại khối lượng công việc nhất định.
    • Giao diện I/O không đồng bộ io_uring cung cấp một cờ mới, IORING_RECV_MULTISHOT, cho phép bạn sử dụng chế độ chụp nhiều ảnh với lệnh gọi hệ thống recv() để thực hiện nhiều thao tác đọc từ cùng một ổ cắm mạng cùng một lúc. io_uring cũng hỗ trợ truyền mạng mà không cần đệm trung gian (không sao chép).
    • Đã triển khai khả năng đưa các chương trình BPF được đính kèm vào uprobe vào trạng thái ngủ. BPF cũng bổ sung thêm một trình vòng lặp ksym mới để làm việc với các bảng ký hiệu hạt nhân.
    • Giao diện “efivars” lỗi thời trong sysfs, nhằm mục đích truy cập vào các biến khởi động UEFI, đã bị xóa (FS ảo efivarfs hiện được sử dụng phổ biến để truy cập dữ liệu EFI).
    • Tiện ích hoàn hảo có các báo cáo mới để phân tích xung đột khóa và thời gian mà bộ xử lý thực thi các thành phần hạt nhân.
    • Cài đặt CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3 đã bị xóa, cho phép xây dựng kernel ở chế độ tối ưu hóa "-O3". Cần lưu ý rằng các thử nghiệm với chế độ tối ưu hóa có thể được thực hiện bằng cách chuyển cờ trong quá trình lắp ráp (“make KCFLAGS=-O3”) và việc thêm cài đặt vào Kconfig yêu cầu lập hồ sơ hiệu suất lặp lại, cho thấy rằng việc hủy kiểm soát vòng lặp được sử dụng trong chế độ “-O3” mang lại một lợi ích so với mức tối ưu hóa “-O2”.
    • Một giao diện debugfs đã được thêm vào để lấy thông tin về hoạt động của từng "bộ thu nhỏ bộ nhớ" (trình xử lý được gọi khi không đủ bộ nhớ và đóng gói các cấu trúc dữ liệu hạt nhân để giảm mức tiêu thụ bộ nhớ của chúng).
    • Đối với kiến ​​trúc OpenRISC và LoongArch, hỗ trợ cho bus PCI được triển khai.
    • Đối với kiến ​​trúc RISC-V, tiện ích mở rộng “Zicbom” đã được triển khai để quản lý các thiết bị có DMA không kết hợp với bộ đệm.
  • Ảo hóa và bảo mật
    • Cơ chế xác minh RV (Xác minh thời gian chạy) đã được thêm vào để xác minh hoạt động chính xác trên các hệ thống có độ tin cậy cao đảm bảo không có lỗi. Việc xác minh được thực hiện trong thời gian chạy bằng cách gắn các trình xử lý vào các điểm theo dõi để kiểm tra tiến trình thực thi thực tế dựa trên mô hình xác định tham chiếu được xác định trước của máy nhằm xác định hành vi dự kiến ​​của hệ thống. Việc xác minh bằng mô hình trong thời gian chạy được định vị là một phương pháp nhẹ nhàng hơn và dễ thực hiện hơn để xác nhận tính chính xác của quá trình thực thi trên các hệ thống quan trọng, bổ sung cho các phương pháp xác minh độ tin cậy cổ điển. Một trong những ưu điểm của RV là khả năng cung cấp xác minh nghiêm ngặt mà không cần triển khai riêng toàn bộ hệ thống bằng ngôn ngữ mô hình hóa, cũng như phản ứng linh hoạt với các sự kiện không lường trước được.
    • Các thành phần hạt nhân tích hợp để quản lý các vùng dựa trên công nghệ Intel SGX2 (Software Guard eXtensions), cho phép các ứng dụng thực thi mã trong các vùng bộ nhớ được mã hóa riêng biệt mà phần còn lại của hệ thống có quyền truy cập hạn chế. Công nghệ Intel SGX2 được hỗ trợ trong chip Intel Ice Lake và Gemini Lake, đồng thời khác với Intel SGX1 ở các hướng dẫn bổ sung để quản lý bộ nhớ động của các vùng.
    • Đối với kiến ​​trúc x86, khả năng chuyển hạt giống cho trình tạo số giả ngẫu nhiên thông qua cài đặt bộ nạp khởi động đã được triển khai.
    • Mô-đun SafeSetID LSM hiện có khả năng quản lý các thay đổi được thực hiện thông qua lệnh gọi setgroups(). SafeSetID cho phép các dịch vụ hệ thống quản lý người dùng một cách an toàn mà không cần nâng cấp đặc quyền (CAP_SETUID) và không giành được đặc quyền root.
    • Đã thêm hỗ trợ cho mật mã khối ARIA.
    • Mô-đun quản lý bảo mật dựa trên BPF cung cấp khả năng đính kèm các trình xử lý vào các quy trình và nhóm quy trình riêng lẻ (cgroups).
    • Một cơ chế triển khai cơ quan giám sát đã được thêm vào để phát hiện tình trạng treo hệ thống khách dựa trên hoạt động giám sát vCPU.
  • Hệ thống con mạng
    • Trình xử lý để tạo và kiểm tra cookie SYN đã được thêm vào hệ thống con BPF. Ngoài ra còn có thêm một tập hợp các hàm (kfunc) để truy cập và thay đổi trạng thái kết nối.
    • Ngăn xếp không dây đã bổ sung hỗ trợ cho cơ chế MLO (Hoạt động đa liên kết), được xác định trong thông số WiFi 7 và cho phép các thiết bị đồng thời nhận và gửi dữ liệu bằng các dải tần và kênh khác nhau, chẳng hạn như để thiết lập đồng thời một số kênh liên lạc giữa một mạng. điểm truy cập vào một thiết bị khách.
    • Hiệu suất của giao thức TLS được tích hợp trong kernel đã được cải thiện.
    • Đã thêm tùy chọn dòng lệnh kernel "hostname=" để cho phép đặt tên máy chủ sớm trong quá trình khởi động, trước khi các thành phần không gian người dùng được khởi động.
  • Оборудование
    • Trình điều khiển i915 (Intel) cung cấp hỗ trợ cho card màn hình rời Intel Arc (DG2/Alchemist) A750 và A770. Việc triển khai hỗ trợ ban đầu cho GPU Intel Ponte Vecchio (Xe-HPC) và Meteor Lake đã được đề xuất. Công việc tiếp tục hỗ trợ nền tảng Intel Raptor Lake.
    • Trình điều khiển amdgpu tiếp tục cung cấp hỗ trợ cho nền tảng AMD RDNA3 (RX 7000) và CDNA (Bản năng).
    • Trình điều khiển Nouveau đã làm lại mã hỗ trợ cho công cụ hiển thị GPU NVIDIA nv50.
    • Đã thêm trình điều khiển DRM logicvc mới cho màn hình LogiCVC.
    • Trình điều khiển v3d (dành cho GPU Broadcom Video Core) hỗ trợ bo mạch Raspberry Pi 4.
    • Đã thêm hỗ trợ GPU Qualcomm Adreno 619 vào trình điều khiển msm.
    • Đã thêm hỗ trợ cho GPU ARM Mali Valhall vào trình điều khiển Pan Frost.
    • Đã thêm hỗ trợ ban đầu cho bộ xử lý Qualcomm Snapdragon 8cx Gen3 được sử dụng trong máy tính xách tay Lenovo ThinkPad X13s.
    • Đã thêm trình điều khiển âm thanh cho các nền tảng AMD Raphael (Ryzen 7000), AMD Jadeite, Intel Meteor Lake và Mediatek MT8186.
    • Đã thêm hỗ trợ cho bộ tăng tốc học máy Intel Habana Gaudi 2.
    • Đã thêm hỗ trợ cho ARM SoC Allwinner H616, NXP i.MX93, Sunplus SP7021, Nuvoton NPCM8XX, Marvell Prestera 98DX2530, Google Chameleon v3.

Đồng thời, Tổ chức Phần mềm Tự do Châu Mỹ Latinh đã hình thành một phiên bản hạt nhân 6.0 hoàn toàn miễn phí - Linux-libre 6.0-gnu, loại bỏ các thành phần của chương trình cơ sở và trình điều khiển chứa các thành phần hoặc đoạn mã không tự do, phạm vi của nó là bị giới hạn bởi nhà sản xuất. Bản phát hành mới vô hiệu hóa việc sử dụng các đốm màu trong trình điều khiển âm thanh HD CS35L41 và trình điều khiển UCSI cho bộ vi điều khiển STM32G0. Các tệp DTS cho chip Qualcomm và MediaTek đã được làm sạch. Việc vô hiệu hóa các đốm màu trong trình điều khiển MediaTek MT76 đã được làm lại. Đã cập nhật mã dọn dẹp blob trong các trình điều khiển và hệ thống con AMDGPU, Adreno, Tegra VIC, Netronome NFP và Habanalabs Gaudi2. Đã dừng dọn dẹp trình điều khiển VXGE, trình điều khiển này đã bị xóa khỏi kernel.

Nguồn: opennet.ru

Thêm một lời nhận xét