Melissa giới thiệu về Kworkflow tại FOSDEM 2025, nhấn mạnh tầm quan trọng của việc tiết kiệm thời gian cho các nhà phát triển kernel.
Melissa giới thiệu về Kworkflow tại FOSDEM 2025, nhấn mạnh tầm quan trọng của việc tiết kiệm thời gian cho các nhà phát triển kernel.

Đừng Để Thời Gian Trôi Vô Ích: Tối Ưu Hóa Quy Trình Phát Triển Kernel với Kworkflow

Thời gian là vô giá, đặc biệt trong lĩnh vực phát triển kernel đầy phức tạp. Kworkflow ra đời để giúp bạn tận dụng tối đa thời gian, giảm thiểu các tác vụ lặp đi lặp lại và tập trung vào những gì quan trọng nhất: sáng tạo và giải quyết vấn đề.

Trong bài viết này, chúng ta sẽ khám phá cách Kworkflow có thể cách mạng hóa quy trình làm việc của bạn, từ việc xây dựng và triển khai kernel tùy chỉnh đến gỡ lỗi và gửi bản vá. Hãy cùng nhau tìm hiểu làm thế nào để “don’t let time go” – không để thời gian trôi vô ích với Kworkflow!

Bạn là một nhà phát triển kernel, hoặc đang mong muốn trở thành một? Hoặc thậm chí bạn không muốn trở thành một nhà phát triển kernel? Dù bạn là ai, có một nhu cầu chung mà tất cả chúng ta đều có: xác thực một kernel tùy chỉnh chỉ với một thay đổi duy nhất và xác minh rằng nó khắc phục hoặc cải thiện một vấn đề trong kernel.

Và đó là một thay đổi nhất định cho một bản phân phối nhất định, cho một thiết bị nhất định hoặc cho một hệ thống con nhất định…

Hãy nhìn vào sơ đồ này và cố gắng hình dung số lượng hệ thống con và các work tree liên quan mà bạn có thể quản lý trong kernel.

Vì vậy, cho dù bạn là nhà phát triển kernel hay không, bạn có thể gặp phải tình huống này:

Một nhà phát triển userspace muốn báo cáo một vấn đề kernel và nói:

  • Ồ, có một vấn đề trong driver của bạn chỉ có thể được tái tạo bằng cách chạy bản phân phối cụ thể này. Và nhà phát triển kernel hỏi:
  • Ồ, bạn đã kiểm tra xem vấn đề này còn tồn tại trong phiên bản kernel mới nhất của nhánh này không?

Nhưng nhà phát triển userspace chưa bao giờ biên dịch và cài đặt kernel tùy chỉnh trước đây. Vì vậy, họ phải đọc rất nhiều hướng dẫn và tài liệu kernel để tạo một tập lệnh biên dịch và triển khai kernel. Cuối cùng, người báo cáo đã biên dịch và triển khai thành công một kernel tùy chỉnh và báo cáo:

  • Xin lỗi vì sự chậm trễ, đây là lần đầu tiên tôi cài đặt một kernel tùy chỉnh. Tôi không chắc mình đã làm đúng chưa, nhưng vấn đề vẫn còn trong kernel của nhánh mà bạn đã chỉ ra.

Và sau đó, nhà phát triển kernel cần tái tạo vấn đề này trên máy của họ, nhưng họ chưa bao giờ làm việc với bản phân phối này, vì vậy họ chỉ tạo một tập lệnh mới, nhưng giống như tập lệnh được tạo bởi người báo cáo.

Vấn đề của tình huống này là gì? Vấn đề là bạn tiếp tục tạo các tập lệnh mới!

Mỗi khi bạn thay đổi bản phân phối, thay đổi kiến trúc, thay đổi phần cứng, thay đổi dự án – ngay cả trong cùng một công ty – thiết lập phát triển có thể thay đổi khi bạn chuyển sang một dự án khác, bạn tạo một tập lệnh khác cho quy trình phát triển kernel mới của mình!

Bạn biết đấy, bạn có rất nhiều “đứa con”, bạn có một bộ sưu tập “các tập lệnh quý giá của tôi”, giống như Sméagol (Chúa tể của những chiếc nhẫn) với chiếc nhẫn quý giá.

Thay vì tạo và tích lũy các tập lệnh, hãy tiết kiệm thời gian với kworkflow. Đây là một tập lệnh điển hình mà nhiều người trong số bạn có thể có. Đây là một tập lệnh Raspberry Pi 4 và chứa mọi thứ bạn cần ghi nhớ để biên dịch và triển khai kernel trên Raspberry Pi 4 của mình.

Với kworkflow, bạn chỉ cần ghi nhớ hai lệnh và các lệnh đó không dành riêng cho Raspberry Pi. Chúng là các lệnh giống nhau cho các kiến trúc, cấu hình kernel, thiết bị đích khác nhau.

Kworkflow là gì?

Kworkflow là một tập hợp các công cụ và phần mềm kết hợp để:

  • Tối ưu hóa quy trình phát triển kernel Linux.
  • Giảm thời gian dành cho các tác vụ lặp đi lặp lại, vì chúng ta đang dành cả cuộc đời để biên dịch kernel.
  • Tiêu chuẩn hóa các phương pháp tốt nhất.
  • Đảm bảo trao đổi dữ liệu đáng tin cậy trên toàn bộ quy trình kernel. Ví dụ: hai người mô tả cùng một thiết lập, nhưng họ không nhìn thấy cùng một thứ, kworkflow có thể đảm bảo cả hai thực sự có cùng một kernel, mô-đun và các tùy chọn được bật.

Tính năng chính của Kworkflow?

Có rất nhiều, nhưng đây là những điều quan trọng nhất đối với tôi:

  • Xây dựng & triển khai kernel tùy chỉnh trên các thiết bị & bản phân phối.
  • Xử lý biên dịch chéo một cách liền mạch.
  • Quản lý nhiều kiến trúc, cài đặt và thiết bị đích trong cùng một work tree.
  • Tổ chức các tệp cấu hình kernel.
  • Tạo điều kiện gỡ lỗi từ xa & kiểm tra mã.
  • Tiêu chuẩn hóa các hướng dẫn gửi bản vá kernel Linux. Bạn không cần kiểm tra kỹ tài liệu và Greg không cần nói với bạn rằng bạn không tuân theo các hướng dẫn của kernel Linux.
  • Sắp tới: Giao diện để đánh dấu trang, áp dụng và “reviewed-by” các bản vá từ danh sách gửi thư (lore.kernel.org).

Tiết kiệm thời gian với Kworkflow như thế nào?

Vậy làm thế nào bạn có thể tiết kiệm thời gian xây dựng và triển khai một kernel tùy chỉnh?

Đầu tiên, bạn cần một tệp .config.

  • Không có kworkflow: Bạn có thể trích xuất và quản lý thủ công các tệp .config từ các mục tiêu khác nhau và lưu chúng với các hậu tố khác nhau để liên kết kernel với thiết bị hoặc bản phân phối đích hoặc bất kỳ hậu tố mô tả nào để giúp xác định cái nào là cái nào. Hoặc thậm chí sao chép và dán từ đâu đó.
  • Với kworkflow: bạn có thể sử dụng lệnh kernel-config-manager hoặc đơn giản là kw k, để lưu trữ, mô tả và truy xuất một tệp .config cụ thể rất dễ dàng, theo nhu cầu hiện tại của bạn.

Sau đó, bạn muốn xây dựng kernel:

  • Không có kworkflow: Bây giờ bạn có thể đang ghi nhớ một tổ hợp các lệnh và tùy chọn.
  • Với kworkflow: bạn chỉ cần kw b (kw build) để xây dựng kernel với các cài đặt chính xác cho biên dịch chéo, cảnh báo biên dịch, cflags, v.v. Nó cũng hiển thị một số thông tin về kernel, như số lượng mô-đun.

Cuối cùng, để triển khai kernel trong một máy đích.

  • Không có kworkflow: Bạn có thể đang làm những việc như: SSH kết nối với máy từ xa, sao chép và xóa các tệp theo bản phân phối và kiến trúc, và cập nhật thủ công bootloader cho bản phân phối đích.
  • Với kworkflow: bạn chỉ cần kw d, lệnh này thực hiện rất nhiều việc cho bạn, chẳng hạn như: triển khai kernel, chuẩn bị máy đích cho cài đặt mới, liệt kê các kernel có sẵn và gỡ cài đặt chúng, tạo một tarball, khởi động lại máy sau khi triển khai kernel, v.v.

Bạn cũng có thể tiết kiệm thời gian gỡ lỗi kernel cục bộ hoặc từ xa.

  • Không có kworkflow: bạn làm: ssh, thiết lập thủ công và bật dấu vết, sao chép & dán nhật ký.
  • Với kworkflow: truy cập trực tiếp hơn vào các tiện ích gỡ lỗi: events, trace, dmesg.

Bạn có thể tiết kiệm thời gian quản lý nhiều hình ảnh kernel trong cùng một work tree.

  • Không có kworkflow: bây giờ bạn có thể đang sao chép nhiều lần cùng một kho lưu trữ để bạn không bị mất các tệp đã biên dịch khi thay đổi cấu hình kernel hoặc các tùy chọn biên dịch và quản lý thủ công các tập lệnh xây dựng và triển khai.
  • Với kworkflow: bạn có thể sử dụng kw env để cô lập nhiều ngữ cảnh trong cùng một worktree dưới dạng môi trường, vì vậy bạn có thể giữ các cấu hình khác nhau trong cùng một worktree và chuyển đổi giữa chúng một cách dễ dàng mà không làm mất bất kỳ điều gì từ lần cuối cùng bạn làm việc trong một ngữ cảnh cụ thể.

Cuối cùng, bạn có thể tiết kiệm thời gian khi gửi các bản vá kernel. Trong kworkflow, bạn có thể tìm thấy mọi thứ bạn cần để gói các thay đổi của mình ở định dạng bản vá và gửi chúng đến đúng danh sách người nhận, những người có thể xem xét, nhận xét và chấp nhận các thay đổi của bạn.

Kworkflow không chỉ là một công cụ, nó là một người bạn đồng hành đắc lực giúp bạn quản lý thời gian hiệu quả, giảm thiểu sự phức tạp và tập trung vào những gì quan trọng nhất: phát triển kernel. Đừng để thời gian trôi qua vô ích, hãy sử dụng Kworkflow và giải phóng tiềm năng sáng tạo của bạn!

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *