Báo cáo tiến độ FreeBSD quý 2019 năm XNUMX

được phát hành báo cáo về quá trình phát triển dự án FreeBSD từ tháng 2019 đến tháng XNUMX năm XNUMX. Trong số những thay đổi chúng ta có thể lưu ý:

  • Các vấn đề chung và mang tính hệ thống
    • Nhóm Core quyết định thành lập một nhóm làm việc để khám phá khả năng chuyển mã nguồn từ hệ thống kiểm soát nguồn Subversion tập trung sang hệ thống Git phi tập trung.
    • Đã tiến hành kiểm tra fuzz hạt nhân FreeBSD bằng hệ thống syzkaller và một số lỗi được phát hiện đã được sửa chữa. Đã thêm một lớp để kiểm tra khả năng tương thích của các thư viện với môi trường 32 bit trên các hệ thống có nhân 64 bit. Khả năng chạy syzkaller trong các máy ảo dựa trên bhyve đã được triển khai. Ở giai đoạn tiếp theo, dự kiến ​​​​sẽ mở rộng phạm vi kiểm tra cuộc gọi hệ thống, sử dụng trình khử trùng LLVM để kiểm tra kernel, sử dụng netdump để lưu các kết xuất kernel trong quá trình kiểm tra fuzzing, v.v.
    • Công việc đã bắt đầu cập nhật triển khai zlib ở cấp hạt nhân. Để hạt nhân truy cập vào mã zlib, thư mục contrib/zlib đã được đổi tên thành sys/contrib/zlib và tệp tiêu đề crc.h cũng được đổi tên để tránh xung đột với zlib/crc.h. Đã dọn sạch mã kế thừa phụ thuộc vào zlib và inflate. Tiếp theo, nó được lên kế hoạch cung cấp khả năng xây dựng kernel đồng thời với zlib cũ và mới để chuyển dần sang phiên bản mới của các chức năng sử dụng tính năng nén;
    • Cơ sở hạ tầng mô phỏng môi trường Linux (Linuxulator) đã được cập nhật. Tăng cường hỗ trợ cho các công cụ gỡ lỗi Linux như tiện ích strace. Gói linux-c7-strace đã được thêm vào các cổng, có thể được sử dụng để theo dõi các tệp thực thi của Linux thay vì các tiện ích giàn và ktrace tiêu chuẩn, chưa thể giải mã một số cờ và cấu trúc dành riêng cho Linux. Ngoài ra, gói linux-ltp với các tệp thực thi của Dự án thử nghiệm Linux đã được thêm vào và các vấn đề tương thích với các tệp thực thi được liên kết với các phiên bản mới của glibc đã được giải quyết;
    • Việc triển khai các hoạt động vô hiệu hóa bị trì hoãn trong cơ chế pmap đã được chuyển sang sử dụng thuật toán xử lý hàng đợi hoạt động mà không cần khóa, điều này giúp giải quyết các vấn đề về khả năng mở rộng khi thực hiện một số lượng lớn các hoạt động hủy bản đồ song song;
    • Cơ chế chặn vnode trong quá trình thực thi các lệnh gọi hệ thống thuộc họ execve() đã được thay đổi, điều này giúp có thể đạt được hiệu quả cao hơn khi thực thi đồng thời execve() cho cùng một tệp (ví dụ: khi thực hiện các thao tác lắp ráp với song song hóa của việc khởi chạy trình biên dịch);
  • Безопасность
    • Trình ảo hóa bhyve tiếp tục cải thiện khả năng hỗ trợ Di chuyển trực tiếp môi trường khách từ máy chủ này sang máy chủ khác và chức năng Lưu/Khôi phục, cho phép bạn đóng băng hệ thống khách, lưu trạng thái vào một tệp rồi tiếp tục thực thi.
    • Thông qua việc sử dụng thư viện libvdsk, bhyve đã thêm hỗ trợ cho ảnh đĩa ở định dạng QCOW2. Cần cài đặt để hoạt động
      sửa đổi đặc biệt phiên bản bhyve, đã được chuyển đổi để sử dụng trình xử lý thao tác tệp dựa trên libvdsk. Trong kỳ báo cáo, libvdsk cũng đã thực hiện công việc đơn giản hóa việc tích hợp hỗ trợ cho các định dạng mới, cải thiện hiệu suất đọc và ghi cũng như hỗ trợ thêm cho Copy-On-Write. Trong số các nhiệm vụ còn lại, việc tích hợp libvdsk vào cấu trúc chính của bhyve được ghi nhận;

    • Bổ sung hệ thống thu thập thông tin giao thông tại các cảng
      đường mòn, cho phép bạn tạo bẫy cho các yêu cầu mạng độc hại (IP và miền từ danh sách đen được kiểm tra) và gửi thông tin về hoạt động được phát hiện đến máy chủ tập trung để chặn hoặc phân tích các nỗ lực tấn công sau đó;

    • Nền tảng đã được thêm vào các cổng để phát hiện các cuộc tấn công, phân tích nhật ký và giám sát tính toàn vẹn của tệp wazuh (một nhánh của Ossec có hỗ trợ tích hợp với ELK-Ngăn xếp);
  • Hệ thống con mạng
    • Trình điều khiển ena đã được cập nhật để hỗ trợ bộ điều hợp mạng ENAv2 (Bộ điều hợp mạng đàn hồi) thế hệ thứ hai được sử dụng trong cơ sở hạ tầng Đám mây điện toán đàn hồi (EC2) để tổ chức liên lạc giữa các nút EC2 với tốc độ lên tới 25 Gb/s. Hỗ trợ NETMAP đã được thêm vào trình điều khiển ena.
    • FreeBSD HEAD sử dụng ngăn xếp MMC/SD mới, dựa trên khung CAM và cho phép bạn kết nối các thiết bị với giao diện SDIO (I/O kỹ thuật số an toàn). Ví dụ: SDIO được sử dụng trong các mô-đun WiFi và Bluetooth cho nhiều bo mạch, chẳng hạn như Raspberry Pi 3. Ngăn xếp mới cũng cho phép sử dụng giao diện CAM để gửi lệnh SD từ các ứng dụng trong không gian người dùng, giúp có thể tạo thiết bị trình điều khiển hoạt động ở cấp độ người dùng. Công việc đã bắt đầu tạo trình điều khiển cho các chip không dây Broadcom hoạt động ở chế độ FullMAC (về mặt chip, nó chạy giống như hệ điều hành của chính nó với việc triển khai ngăn xếp không dây 802.11);
    • Công việc đang được tiến hành để triển khai NFSv4.2 (RFC-7862) cho FreeBSD. Phiên bản mới của NFS bổ sung hỗ trợ cho các hàm posix_fadvise, posix_fallocate, chế độ SEEKHOLE/SEEKDATA trong lseek và hoạt động sao chép cục bộ các phần của tệp trên máy chủ (không chuyển sang máy khách).

      FreeBSD hiện cung cấp hỗ trợ cơ bản cho các hoạt động LayoutError, IOAdvise, Allocate và Copy. Tất cả những gì còn lại là triển khai thao tác Tìm kiếm cần thiết để sử dụng lseek(SEEKHOLE/SEEKDATA) với NFS. Hỗ trợ NFSv4.2 được lên kế hoạch cho FreeBSD 13;

  • Hệ thống lưu trữ và tập tin
    • Dự án làm lại trình điều khiển cho hệ thống con FUSE (Hệ thống tệp trong USERspace), cho phép tạo các triển khai hệ thống tệp trong không gian người dùng, sắp hoàn thành. Trình điều khiển được cung cấp ban đầu đã lỗi thời và có nhiều lỗi. Là một phần của dự án hiện đại hóa trình điều khiển, hỗ trợ cho giao thức FUSE 7.23 đã được triển khai (phiên bản 7.8 trước đó, phát hành 11 năm trước đã được hỗ trợ), mã đã được thêm vào để kiểm tra quyền truy cập ở phía kernel (“-o default_permissions”), gọi tới Đã thêm VOP_MKNOD, VOP_BMAP và VOP_ADVLOCK, khả năng làm gián đoạn hoạt động của FUSE, thêm hỗ trợ cho các đường ống không tên và ổ cắm unix trong cầu chì, khả năng sử dụng kqueue cho /dev/fuse, cho phép cập nhật các tham số gắn kết thông qua “mount -u”, hỗ trợ thêm để xuất cầu chì qua NFS, đã triển khai tính toán RLIMIT_FSIZE, thêm cờ FOPEN_KEEP_CACHE và FUSE_ASYNC_READ, đã thực hiện tối ưu hóa hiệu suất đáng kể và tổ chức bộ nhớ đệm đã được cải thiện;
    • Hỗ trợ cho thao tác BIO_DELETE đã được thêm vào mã máy nhắn tin hoán đổi, cho phép bạn sử dụng lệnh TRIM khi xóa các khối khỏi ổ SSD để tăng tuổi thọ sử dụng của chúng.
  • Hỗ trợ phần cứng
    • Công việc tiếp tục triển khai hỗ trợ cho ARM64 SoC Broadcom BCM5871X với bộ xử lý ARMv8 Cortex-A57, nhằm mục đích sử dụng trong bộ định tuyến, cổng và bộ lưu trữ mạng. Trong kỳ báo cáo, chúng tôi đã cải thiện khả năng hỗ trợ cho xe buýt iProc PCIe bên trong và bên ngoài, hỗ trợ cho BNXT Ethernet và công việc đang được tiến hành để sử dụng công cụ mã hóa tích hợp nhằm tăng tốc IPsec. Dự kiến ​​việc tích hợp mã vào nhánh HEAD vào nửa cuối năm nay;
    • Công việc đã bắt đầu hỗ trợ cho SoC NXP LS64A 1046-bit dựa trên bộ xử lý ARMv8 Cortex-A72 với công cụ tăng tốc xử lý gói mạng tích hợp, Ethernet 10 Gb, PCIe 3.0, SATA 3.0 và USB 3.0. Hỗ trợ cho nền tảng cơ sở (SMP nhiều người dùng) và SATA 3.0 đã được triển khai. Hỗ trợ cho USB 3.0, SD/MMC và I2C đang được phát triển. Các kế hoạch bao gồm hỗ trợ cho Ethernet, GPIO và QSPI. Dự kiến ​​hoàn thành công việc và đưa vào chi nhánh HEAD vào quý 4 năm 2019.
    • Đã cập nhật trình điều khiển mlx5en và mlx5ib cho bộ điều hợp Mellanox ConnectX-4 [Lx], ConnectX-5 [Ex] và ConnectX-6 [Dx] Ethernet và InfiniBand. Đã thêm hỗ trợ cho bộ điều hợp Mellanox Socket Direct (ConnectX-6), cho phép thông lượng lên tới 200Gb/s trên bus PCIe Gen 3.0. Đối với chip BlueField đa lõi, hỗ trợ trình điều khiển RShim đã được thêm vào. Gói mstflint với một bộ tiện ích chẩn đoán cho bộ điều hợp Mellanox đã được thêm vào các cổng;
  • Ứng dụng và hệ thống cổng
    • Các thành phần ngăn xếp đồ họa đã được cập nhật. Trình điều khiển drm.ko (Trình quản lý kết xuất trực tiếp) đã được chuyển từ nhân Linux 5.0. Trình điều khiển này được coi là thử nghiệm và đã được thêm vào cây cổng dưới dạng đồ họa/drm-devel-kmod. Vì trình điều khiển sử dụng khung KPI Linux đã cập nhật để tương thích với API DRM của nhân Linux nên cần phải chạy FreeBSD CURRENT. Trình điều khiển vboxvideo.ko drm cho GPU ảo VirtualBox cũng đã được chuyển từ Linux. Gói Mesa đã được cập nhật để phát hành 18.3.2 và chuyển sang sử dụng LLVM từ cổng devel/llvm80 thay vì devel/llvm60.
    • Cây cổng FreeBSD đã vượt qua 37000 cổng, số lượng PR chưa được tiết lộ vẫn là 2146. Trong kỳ báo cáo, 7837 thay đổi đã được thực hiện từ 172 nhà phát triển. Ba người tham gia mới đã nhận được quyền cam kết. Trong số các bản cập nhật phiên bản quan trọng trong các cổng là: MySQL 5.7, Python 3.6, Ruby 2.5, Samba 4.8, Julia 1.0, Firefox 68.0, Crom 75.0.3770.100. Tất cả các cổng Go đã được chuyển đổi để sử dụng cờ "USES=go". Đã thêm cờ "USES=cabal" vào trình quản lý gói Cabal được sử dụng cho mã Haskell. Chế độ bảo vệ ngăn xếp nghiêm ngặt được bật. Phiên bản mặc định của Python là 3.6 thay vì 2.7.
    • Bản phát hành tiện ích đã được chuẩn bị nsysctl 1.0, cung cấp tính năng tương tự /sbin/sysctl sử dụng libxo cho đầu ra và cung cấp một bộ tùy chọn mở rộng. Nsysctl có thể được sử dụng để theo dõi trực quan trạng thái của các giá trị sysctl và trình bày thông tin về các đối tượng ở dạng có cấu trúc. Có thể xuất ra các định dạng XML, JSON và HTML;

Nguồn: opennet.ru

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