Interview:
Linus Torvalds – I don't read code any more
with
Glyn Moody, 13 November 2012, 15:16
Bài
được đưa lên Internet ngày: 13/11/2012
Lời
người dịch: Qua cuộc phỏng vấn của Glyn Moody với
Linus Torvalds, chúng ta biết được tổng thể cách thức
mà nhân Linux được phát triển, rằng hiện giờ thì
Linus Torvalds đã không còn đọc mã nguồn như trước kia
ông thường làm. Thay vào đó, ông là người phân công
cho những người có trách nhiệm về cách nhánh phụ của
cây phát triển nhân, mỗi khi có những báo cáo lỗi được
chuyển vào trong danh sách thư của nhân và sau đó chuyển
tới ông. Đó là công việc chính của ông hiện nay, nó
rất khác với những gì ông đã làm trước kia - đọc mã
nguồn của nhân. Xem các phần [01], [02], [03], [04].
Architecture,
community & Linus's role
Kiến trúc, cộng
đồng và vai trò của Linus
Glyn Moody: Kiến
trúc chính nào thay đổi từng đã và đang hỗ trợ phần
cứng mới?
Linus Torvalds: Kho
USB từng được viết lại một cách cơ bản đôi lúc chỉ
vì một số trường hợp điển hình mới tới và bạn
nhận ra rằng này, kho USB ban đầu chỉ không bao giờ tính
tới điều đó, và nó không làm việc được. Nên USB 3.0
cần trình kiểm soát máy chủ mới hỗ trợ và hóa ra là
nó đủ khác mà bạn muốn thay đổi kho cốt lõi sao cho
nó có thể làm việc xuyên khắp các phiên bản khác nhau.
Và không chỉ USB, cả PCI, và PCI trở thành PCIe, và các
trình cài cắm nóng cũng tới.
Một
điều khác nữa là sự khác biệt khổng lồ giữa Linux
truyền thống và Unix truyền thống. Bạn có một máy trạm
Unix đang thực hiện việc bổ sung thêm vào một thiết bị
USB, nhưng thực tế là điều đó đã không sử dụng để
trở thành mục tiêu chính. Toàn bộ điều đó có khả
năng cho các thiết bị cài cắm nóng, chúng tôi tất cả
đã có những thay đổi hạ tầng cơ bản mà chúng tôi đã
phải vượt qua.
Glyn Moody: Thế
còn cộng đồng nhân thì sao - nó đã tiến bộ thế nào?
Linus Torvalds:
Nó thường được tôn lên. Tôi không biết khi nào sự
thay đổi được xảy ra, nhưng thường thì đối với tôi
và có thể 50 lập trình viên - nó từng là những người
có tôn ti trật tự. Những ngày đó, các bản vá mà tới
được tôi đôi khi đi qua 4 lớp người. Chúng tôi đưa
ra cứ 3 tháng một; trong mỗi phiên bản chúng tôi có
khoảng 1.000 người tham gia. Và 500 trong số 1.000 người
về cơ bản gửi 1 dòng thay đổi duy nhất cho thứ gì đó
thực sự tầm thường - đó là cách mà một số người
làm việc, và một số trong số họ không bao giờ làm gì
nữa cả, và điều đó là tốt. Nhưng khi bạn có một
ngàn người tham gia , đặc biệt khi một số trong số họ
chỉ là những người chỉ được dẫn dắt bởi những
người khác ép buộc, thì bạn không thể bắt tôi mang
các bản vá đó từ bất kỳ ai một cách cá nhân được.
Tôi không có thời gian để tương tác với mọi người.
Một
số người chỉ chuyên về các trình điều khiển, họ
nhờ những người khác mà họ biết chuyên trong lĩnh vực
trình duyệt đặc biệt đó, và họ tương tác với những
người thực sự viết các trình điều khiển các lẻ đó
hoặc gửi đi các bản vá. Khi tôi còn xem các bản vá,
phải đi qua tất cả các lớp đó, ít thì là 4 lớp,
nhưng thường có 2 người trung gian.
Glyn
Moody: What major
architecture changes have there been to support new hardware?
Linus
Torvalds: The USB
stack has basically been re-written a couple of time just because
some new use-case comes up and you realise that hey, the original USB
stack just never took that into account, and it just doesn't work. So
USB 3.0 needs new host controller support and it turns out it's
different enough that you want to change the core stack so that it
can work across different versions. And it's not just USB, it's PCI,
and PCI becomes PCIe, and hotplug comes in.
That's
another thing that's a huge difference between traditional Linux and
traditional Unix. You have a [Unix] workstation and you boot it up,
and it doesn't change afterwards – you don't add devices. Now
people are taking adding a USB device for granted, but realistically
that did not use to be the case. That whole being able to hotplug
devices, we've had all these fundamental infrastructure changes that
we've had to keep up with.
Glyn
Moody: What about
kernel community – how has that evolved?
Linus
Torvalds: It used
to be way flatter. I don't know when the change happened, but it used
to be me and maybe 50 developers – it was not a deep hierarchy of
people. These days, patches that reach me sometimes go through four
levels of people. We do releases every three months; in every release
we have like 1,000 people involved. And 500 of the 1,000 people
basically send in a single line change for something really trivial –
that's how some people work, and some of them never do anything else,
and that's fine. But when you have a thousand people involved,
especially when some of them are just these drive-by shooting people,
you can't have me just taking patches from everybody individually. I
wouldn't have time to interact with people.
Some
people just specialise in drivers, they have other people who they
know who specialise in that particular driver area, and they interact
with the people who actually write the individual drivers or send
patches. By the time I see the patch, it's gone through these layers,
it's seldom four, but it's quite often two people in between.
Glyn Moody: Thế
còn vai trò của ông có ảnh hưởng thế nào lên điều
đó?
Linus Torvalds:
Vâng, điều lớn là tôi không đọc mã nguồn nữa. Khi
một bản vá đã đi qua 2 người, và sự quản lý vi mô ở
mức đó - và hoàn toàn thực là tôi không muốn làm điều
đó, và tôi không có năng lực để làm điều đó.
Nên
hầu hết thời gian, khi nói về những người duy trì các
hệ thống phụ chủ chốt, tôi tin cậy họ vì tôi đã và
đang làm việc với họ cỡ 5, 10, 15 năm, nên tôi thậm
chí không nhìn vào mã nguồn. Họ nói cho tôi đó là những
thay đổi và họ đưa cho tôi một tổng quan mức cao. Phụ
thuộc vào con người, nó có thể là 5 dòng văn bản nói
đây đại khái là những gì đã thay đổi, và sau đó họ
đưa cho tôi một thống kê khác, chỉ nói 15 dòng đã thay
đổi trong tệp đó, và 25 dòng đã thay đổi trong tệp đó
và thống kê khác có lẽ là một vài trăm dòng vì có ít
tệp có vài trăm dòng đã thay đổi. Nhưng tôi thậm chí
không xem bản thân mã nguồn, tôi chỉ nói: OK, những thay
đổi xảy ra trong các tệp đó, và tôi tin bạn thay đổi
các tệp đó, nên điều đó là tốt. Và sau đó tôi chỉ
nói: tôi sẽ lấy nó.
Glyn Moody: Thế
vai trò của ông bây giờ là gì?
Linus Torvalds:
Phần lớn tôi đang quản lý mọi người. Không theo ý
nghĩa hậu cần - tôi rõ ràng không trả lương cho bất kỳ
ai, nhưng tôi cũng không phải lo về họ có sự truy cập
tới phần cứng và những thứ như thế. Phần lớn những
điều xảy ra là tôi có liên quan khi mọi người bắt đầu
tranh cãi và có sự trà xát giữa mọi người, hoặc khi
các lỗi xảy ra.
Các
lỗi xảy ra mọi thời gian, nhưng rất thường xuyên mọi
người không biết ai để gửi báo cáo lỗi tới. Vì thế
họ sẽ gửi báo cáo lỗi đó vào danh sách thư Linux
Kernel (Nhân Linux) - không ai thực sự có khả năng đọc
nó nhiều. Sau khi mọi người không chỉ nó ra trong danh
sách nhân, họ thường bắt đầu bỏ bom tôi, nói: này,
máy này không làm việc với tôi được nữa. Và vì tôi
đã thậm chí không đọc mã nguồn ngay từ đầu, nên tôi
biết ai có trách nhiệm, tôi kết thúc bằng việc là một
điểm kết nối cho các báo cáo lỗi và cho những yêu càu
thay đổi thực sự. Tất cả những gì tôi làm, ngày này
qua ngày khác, là tôi đọc thư. Và điều đó là tốt,
tôi thích làm thế, nhưng điều đó rất khác với những
gì tôi đã làm.
Glyn
Moody: So what
impact does that have on your role?
Linus
Torvalds: Well, the
big thing is I don't read code any more. When a patch has already
gone through two people, at that point, I can either look at the
patch and say: no, all your work was wasted, and micromanage at that
level – and quite frankly I don't want to do that, and I don't have
the capacity to do that.
So
most of the time, when it comes to the major subsystem maintainers, I
trust them because I've been working with them for 5, 10, 15 years,
so I don't even look at the code. They tell me these are the changes
and they give me a very high-level overview. Depending on the person,
it might be five lines of text saying this is roughly what has
changed, and then they give me a diffstat, which just says 15 lines
have changed in that file, and 25 lines have changed in that file and
diffstat might be a few hundred lines because there's a few hundred
files that have changed. But I don't even see the code itself, I just
say: OK, the changes happen in these files, and by the way, I trust
you to change those files, so that's fine. And then I just say: I'll
take it.
Glyn
Moody: So what's
your role now?
Linus
Torvalds: Largely
I'm managing people. Not in the logistical sense – I obviously
don't pay anybody, but I also don't have to worry about them having
access to hardware and stuff like that. Largely what happens is I get
involved when people start arguing and there's friction between
people, or when bugs happen.
Bugs
happen all the time, but quite often people don't know who to send
the bug report to. So they will send the bug report to the Linux
Kernel mailing list – nobody really is able to read it much. After
people don't figure it out on the kernel mailing list, they often
start bombarding me, saying: hey, this machine doesn't work for me
any more. And since I didn't even read the code in the first place,
but I know who is in charge, I end up being a connection point for
bug reports and for the actual change requests. That's all I do, day
in and day out, is I read email. And that's fine, I enjoy doing it,
but it's very different from what I did.
Dịch: Lê Trung Nghĩa
Không có nhận xét nào:
Đăng nhận xét
Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.