Dịch vụ ngược dòng là gì?


27

Tôi luôn nghe mọi người nói rằng tốt hơn là "hợp nhất ngược dòng" và những thứ tương tự khi nói đến thiết kế phần mềm và những thứ tương tự. Tôi có cảm giác nó liên quan đến công cụ kernel linux chính nhưng có lẽ tôi đã nhầm.

Và ngoài ra, những gì trái ngược với "thượng nguồn". Nếu nó không tốt để đi "ngược dòng" thì cái gì thay thế và tại sao?

Câu trả lời:


33

Thượng nguồn đề cập đến người khởi tạo của thành phần đang được thảo luận.

Ví dụ: nếu bạn đã viết một máy khách torrent dựa trên libtransmission, thì sẽ tìm thấy một lỗi trong ứng dụng khách của bạn được theo dõi trở lại libtransmission. Lỗi được sửa với một bản vá hiện có trong máy khách của bạn.

Hợp nhất các bản vá ngược dòng trong bối cảnh này có nghĩa là gửi bản vá cho các tác giả của libtransmission để đưa vào. Bằng cách này, bản sửa lỗi sẽ được phổ biến đến mọi dự án dựa trên cơ sở miễn dịch.

Thay thế cho việc hợp nhất ngược dòng là giữ bản vá cho chính bạn.


Vì vậy, hợp nhất mọi thứ ngược dòng có đi cùng với tâm lý Nguồn mở? Một sửa chữa cho một số phần mềm?
n0pe

4
Hợp nhất ngược dòng là điều bạn có thể làm với phần mềm nguồn mở vì bạn có quyền truy cập vào nguồn và bạn có thể tự tìm và sửa lỗi. Trong nguồn đóng, hầu hết các bên không có quyền truy cập như vậy (mặc dù trong một số trường hợp, giấy phép có thể bao gồm nó) vì vậy họ bị giới hạn trong việc báo cáo lỗi và / hoặc tìm cách giải quyết. Thượng nguồn đề cập đến một cách tiếp cận nhiều lớp để phát triển phần mềm và cũng áp dụng cho các cải tiến không chỉ là các lỗi.
plco

Nói cách khác: "ngược dòng" có nghĩa là "bạn lấy nguồn từ ai"; bên ngoài thế giới Nguồn mở, không có thượng nguồn, vì bạn hoàn toàn không nhận được nguồn. =)
rakslice

21

Sử dụng Ubuntu làm ví dụ.

Ubuntu là một bản phân phối bao gồm rất nhiều phần mềm với nhau, nhỏ và lớn. Có trình điều khiển đồ họa, máy chủ X và Gnome, trong số những người khác. Bản thân Ubuntu không phát triển những phần mềm đó. Ubuntu "chỉ" đóng gói phần mềm lại với nhau, đảm bảo rằng các thành phần riêng lẻ hoạt động cùng nhau. Tất cả phần mềm mà Ubuntu đang đóng gói cùng nhau được gọi là ngược dòng theo quan điểm của Ubuntu.

Trong quá trình kết hợp tất cả các phần mềm với nhau, các lỗi có thể xuất hiện. Lỗi có thể nằm ở một trong các thành phần phần mềm, ví dụ như gnome hoặc có thể là do cách thức đặc biệt của Ubuntu đang làm. Xét cho cùng, một bản phân phối là một bản phân phối vì nó thực hiện một số thứ theo cách rất riêng của nó.

Nếu lỗi xảy ra do cách Ubuntu đang làm, thì Ubuntu sẽ phải tự sửa lỗi đó. Nếu lỗi trên thực tế là ở một trong các thành phần phần mềm, ví dụ như Gnome, thì Ubuntu sẽ phải vá Gnome. Khi Ubuntu gửi bản vá lại cho Gnome, vì vậy những người khác cũng có thể hưởng lợi từ bản vá, sau đó Ubuntu sẽ gửi bản vá đó ngược dòng .

Nếu Ubuntu quyết định không gửi bản vá đó ngược dòng hoặc dự án ngược dòng từ chối bản vá (nhưng Ubuntu quyết định vẫn giữ bản vá), thì về mặt kỹ thuật, Ubuntu đã rẽ nhánh dự án.

Ngược lại với thượng nguồn sẽ là hạ lưu, Ubuntu là hạ nguồn từ Gnome. Tôi không nghe / đọc thuật ngữ đó được sử dụng thường xuyên.

Xem thêm bài viết về thượng nguồn trong Wikipedia.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.