Phỏng vấn: Linus Torvalds - Tôi không đọc mã nữa - Phần 1

Thứ ba - 11/12/2012 05:43
Interview:Linus Torvalds – I don't read code any more

withGlyn Moody, 13 November 2012, 15:16

Theo:http://www.h-online.com/open/features/Interview-Linus-Torvalds-I-don-t-read-code-any-more-1748462.html

Bàiđược đưa lên Internet ngày: 13/11/2012

Lờingười dịch: Linus Torvals điểm lại những thời kỳ khókhăn trong phát triển nhân Linux. Đã từng có thời kỳ,để nhân Linux làm việc trên 8 CPU là một điều khó vượtqua. “Bây giờ trên máy tính để bàn, 8 và 16 CPU làthường; đã quen là chúng tôi đã lo lắng mở rộng phạmvi tới 8 CPU, bây giờ thì điều đó là trò chơi trẻ conrồi”, và nhiều khó khăn khác, đặc biệt với cáctrình điều khiển thiết bị, một thứ mà ông cho lànhàm chán và hiện chiếm hầu hết các công việc củanhân Linux. “Hơn một nửa của nhân chỉ là các trìnhđiều khiển, và vì thế tất cả những điều thông minhthú vị lớn mà chúng tôi làm, cuối cùng nó làm nhạt đikhi so với tất cả công việc chúng tôi chỉ làm để hỗtrợ các phần cứng mới”. Dễ hiểu vì sao những aicó khúc mắc về trình điều khiển, khi không làm đúngqui trình ngược lên dòng trên để về với dự án nhânLinux của Linux Foundation của Linus Torvalds, mỗi lần cóphiên bản nhân mới. Xem các phần [01], [02], [03], [04].

Tôi có đủ may mắnđể phỏng vấn Linus hoàn toàn sớm trong lịch sử củaLinux - ngược về năm 1996, khi tôi vẫn còn sống tạiHelsinki (bạn có thể đọc các kết quả cuộc gặp trongbài viết cũ trên Wired).Đó từng là ở một thời điểm quan trọng đối vớiông ta, cả về việc cá nhân - đứa con đầu lòng củaông đã sinh ra khi đó - và về sự nghiệp của ông ta.Ông từng ra nhập công ty thiết kế chip Transmeta, mộtđộng thái đã không thực sự thuận tiện, nhưng đã chophép ông định vị lại ở Mỹ, nơi ông sống hôm nay.

Điều đó làm chonhững chuyến đi tới châu Âu của ông đôi lúc là hãnhữu, và tôi đã tận dụng được thực tế rằng ông đãnói chuyện tại LinuxCon Europe 2012 gần đây tại Barcelonađể phỏng vấn ông một lần nữa, rà soát lại nhữngthời điểm quan trọng cho nhân Linux và cộng đồng củanó kể từ lần nói chuyện trước.

Glyn Moody: Quaylại hơn một thập kỷ rưỡi trước, ông thấy những sựkiện chính nào trong phát triển nhân?

Linus Torvalds:Một điều lớn lao đối với tôi là tất cả công việcmở rộng về phạm vi mà chúng tôi đã làm. Chúng tôi đãđi từ OK trên 2 hoặc 4 CPU tới điểm nơi mà về cơ bảnbạn có theer ném ra 4.000 - bạn sẽ không mở rộng phạmvi được tuyệt vời, nhưng hầu hết thời gian điều đókhông là nhân mà là sự tắc nghẽn. Nếu tải công việccủa bạn là thứ gì đó lành mạnh thì thực sự chúngtôi mở rộng phạm vi thực sự tốt. Và điều đó đãcần nhiều nỗ lực.

SGI đặc biệt đãlàm việc nhiều trong việc mở rộng phạm vi qua vài trămCPU. Những bản vá ban đầu của chúng có thể chỉ khôngtrộn được. Đã từng không có cách gì để chúng tôicó thể đưa công việc mà chúng tôi đã làm và sử dụngnó trong một PC thông thường vì chúng đã bổ sung tát cảnhững hạ tầng này vào công việc trên hàng ngàn CPU. Đótừng là cách quá đất để làm khi bạn đã chỉ có mộtsố ít.

Tôi từng sợ trongmột thời gian dài rằng chúng tôi có thể có nhân hiệunăng cao cho các máy tính lớn, và mã nguồn có thể táchbạch khỏi nhân thông thường. Mọi người đã làm việcnhiều chỉ để chắc chắn rằng chúng tôi đã có mộtkho mã nguồn sạch sẽ nơi mà bạn có thể nói vào lúcbiên dịch, này, tôi muốn nhân làm việc cho 4.000 CPU, vànó tạo ra mã nguồn cho điều đó, và cùng lúc, nếu bạnnói không, thì tôi muốn nhân đó làm việc trên 2 CPU, vớicùng mã nguồn đó biên dịch.

Iwas lucky enough to interview Linus quite early in the history ofLinux – back in 1996, when he was still living in Helsinki (you canread the fruits of that meeting in this old Wiredfeature.) It was at an important moment for him, both personally– his first child was born at this time – and in terms of hiscareer. He was about to join the chip design company Transmeta, amove that didn't really work out, but led to him relocating toAmerica, whe-re he remains today.

Thatmakes his trips to Europe somewhat rare, and I took advantage of thefact that he was speaking at the recent LinuxConEurope 2012 in Barcelona to interview him again, reviewing thekey moments for the Linux kernel and its community since we lastspoke.

GlynMoody: Looking backover the last decade and half, what do you see as the key events inthe development of the kernel?

LinusTorvalds: One bigthing for me is all the scalability work that we did. We've gone f-rombeing OK on 2 or 4 CPUs to the point whe-re basically you can throw4,000 [at it] – you won't scale perfectly, but most of the timeit's not the kernel that's the bottleneck. If your workload issomewhat sane we actually scale really well. And that took a lot ofeffort.

SGIin particular worked a lot on scaling past a few hundred CPUs. Theirinitial patches could just not be merged. There was no way we couldtake the work they did and use it on a regular PC because they addedall this infrastructure to work on thousands of CPUs. That was waytoo expensive to do when you had only a couple.

Iwas afraid for the longest time that we would have thehigh-performance kernel for the big machines, and the source codewould be separate f-rom the normal kernel. People worked a lot on justmaking sure that we had a clean code base whe-re you can say atcompile time that, hey, I want the kernel that works for 4,000 CPUs,and it generates the code for that, and at the same time, if you sayno, I want the kernel that works on 2 CPUs, the same source codecompiles.

Từng là thứ gì đómà trong sự hồi tưởng về quá khứ thực sự là quantrọng vì nó thực sự làm cho mã nnguồn tốt hơn nhiều.Tất cả nỗ lực mà SGI và những người khác bỏ ratrong việc thống nhất mã nguồn, thực sự nhiều mãnguồn từng được làm sạch - điều này không làm đượccho một trăm CPU, nên chúng tôi cần làm sạch sao cho nólàm việc được. Và nó thực sự đã làm cho nhân đượcduy trì nhiều hơn. Bây giờ trên máytính để bàn, 8 và 16 CPU là thường; đã quen là chúngtôi đã lo lắng mở rộng phạm vi tới 8 CPU, bây giờ thìđiều đó là trò chơi trẻ con rồi.

Nhưng cũng có nhữngđiều khác nữa. Chúng tôi đã bỏ ra nhiều năm một lầnnữa ở một đầu khác, nơi mà điện thoại mà mọingười từng có ý thức rõ rằng họ đã có những điềukhông hay, đặc biệt ở phía của ARM, để cố gắng tiếtkiệm năng lượng. Chúng tôi đã bỏ ra nhiều năm làmquản lý năng lượng nói chung, làm dạng việc y hệt -thay vì có những hack quản lý năng lược chuyên cho ARM,và một ít các thiết bị mà các máy điện thoại mọingười quan tâm, chúng tôi đã cố gắng làm cho nó đixuyên khắp nhân. Và điều đó mất 5 năm để làm việcvới quản lý năng lượng, vì điều đó xuyên suốt toànbộ phổ.

Hoàn toàn thườngxuyên khi bạn bổ sung một thiết bị, điều đó khôngảnh hưởng tới bất kỳ phần còn lại nào của nhân,nhưng quản lý năng luonwgj từng là một thứ ảnh hưởngtới tất cả hàng ngàn trình điều khiển thiết bị màchúng tôi có. Nó ảnh hưởng tới chức năng cốt lõi,như tắt CPU, và ảnh hưởng tới lịch trình, nó ảnhhưởng tới VM, nó ảnh hưởng tới mọi thứ.

Nó không chỉ ảnhhưởng tới mọi thứ, nó có tiềm năng làm hỏng mọithứ mà làm cho nó rất đau đớn. Chúng tôi đã bỏ ranhiều thời gian chỉ để tiến 2 bước, lùi 1 bước vìchúng tôi đã làm được một cải tiến mà từng là mộtcải tiến rõ ràng, nhưng nó làm hỏng các máy. Và vì thếchúng tôi đã phải lùi một bước chỉ để sửa các máymà chúng tôi đã làm hỏng.

Lýtưởng mà nói, mỗi phiên bản, hầu hết chỉ là côngviệc về trình điều khiển. Nó là dạng làm chán nảntheo ý nghĩa chẳng có gì thú vị về cơ bản trong mộttrình điều khiển cả, nó chỉ là sự hỗ trợ cho mộtchipset khác hoặc thứ gì đó, và cùng lúc dạng bánh mỳvà bơ của nhân. Hơn một nửa của nhân chỉ là cáctrình điều khiển, và vì thế tất cả những điềuthông minh thú vị lớn mà chúng tôi làm, cuối cùng nólàm nhạt đi khi so với tất cả công việc chúng tôi chỉlàm để hỗ trợ các phần cứng mới.

Itwas something that in retrospect is really important because itactually made the source code much better. All the effort that SGIand others spent on unifying the source code, actually a lot of itwas clean-up – this doesn't work for a hundred CPUs, so we need toclean it up so that it works. And it actually made the kernel moremaintainable. Now on the desktop, 8 and 16 CPUs are almost common; itused to be that we had trouble scaling to 8, now it's like child'splay.

Butthere's been other things too. We spent years again at the other end,whe-re the phone people were so power conscious that they had uglyhacks, especially on the ARM side, to try to save power. We spentyears doing power management in general, doing the kind of same thing– instead of having these specialised power management hacks forARM, and the few devices that cellphone people cared about, we triedto make it across the kernel. And that took like five years to getour power management working, because it's across the whole spectrum.

Quiteoften when you add one device, that doesn't impact any of the rest ofthe kernel, but power management was one of those things that impactsall of the thousands of device drivers that we have. It impacts corefunctionality, like shutting down CPUs, it impacts schedulers, itimpacts the VM, it impacts everything.

Itnot only affects everything, it has the potential to break everythingwhich makes it very painful. We spent so much time just taking twosteps forward, one step back because we made an improvement that wasa clear improvement, but it broke machines. And so we had to take theone step back just to fix the machines that we broke.

Realistically,every single release, most of it is just driver work. Which is kindof boring in the sense there is nothing fundamentally interesting ina driver, it's just support for yet another chipset or something, andat the same time that's kind of the bread and butter of the kernel.More than half of the kernel is just drivers, and so all the bigexciting smart things we do, in the end it pales when compared to allthe work we just do to support new hardware.

Dịch: Lê Trung Nghĩa

letrungnghia.foss@gmail.com

Tổng số điểm của bài viết là: 0 trong 0 đánh giá

Click để đánh giá bài viết

  Ý kiến bạn đọc

Những tin mới hơn

Những tin cũ hơn

Về Blog này

Blog này được chuyển đổi từ http://blog.yahoo.com/letrungnghia trên Yahoo Blog sang sử dụng NukeViet sau khi Yahoo Blog đóng cửa tại Việt Nam ngày 17/01/2013.Kể từ ngày 07/02/2013, thông tin trên Blog được cập nhật tiếp tục trở lại với sự hỗ trợ kỹ thuật và đặt chỗ hosting của nhóm phát triển...

Bài đọc nhiều nhất trong năm
Thăm dò ý kiến

Bạn quan tâm gì nhất ở mã nguồn mở?

Thống kê truy cập
  • Đang truy cập50
  • Máy chủ tìm kiếm8
  • Khách viếng thăm42
  • Hôm nay2,638
  • Tháng hiện tại326,889
  • Tổng lượt truy cập31,805,215
Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây