10/05/2011
0

GCC - "Chúng tôi làm free software affordable"

GCC và GNU Emacs là hai thành phần của hệ điều hành GNU hầu như chắc chắn rằng có thể làm được nhiều thứ hơn từ GNU và đưa phần mềm miễn phí từ lý thuyết đến thực tế. Trước đây, để tìm kiếm GNU Emacs và Hurd, Richard Hillesley đã xem xét lịch sử và quá trình phát triển của GCC. 

GCC đã bắt đầu như các compiler GNU C và đượcphát hành đầu tiên vào ngày 22/03/1987. Michael Tiemann, người mà đã có nhiều sự đóng góp cho sự phát triển sau này của GCC, và người đã có ước mơ tạo ra một compiler hoàn hảo, Michael Tiemann đã nói trong ngày phát hành GCC: "Trong cuộc đời của tôi đây là ngày đầy ly kỳ và xúc động nhất."

"Tôi đã có một quyết định để thực hiện "Ông ấy đã viết vào ngày kỷ niệm 20 năm ngày Richard Stallman phát hành GCC đầu tiên." Tôi có thể tham gia với anh ấy, tôi có thể cạnh tranh với anh ấy, hoặc tôi có thể chọn một ước mơ mới. Tôi đã tải phiên bản GCC 1.0 và bắt đầu gắn bó, sau 10 năm (lúc đó, do RSI, tôi đã đưa chương trình vào hoạt động chính thức)."

 


Tìm ra sự tương thích

 

Tiemann đã tìm hiểu mã và bắt đầu port GCC cho National Semiconductor 32032. "Hai tuần sau khi tôi đã tìm kiếm và tải compiler từ Free Software Foundation. Nó sinh ra code nhanh hơn 20% so với National compiler."

"Trong giờ đăng thông báo cho port mới này," Tiemann đã viết, "nó trở nên rỏ ràng với tôi và những người khác rằng đã có nhiều tối ưu  chưa thực hiện." Trong vòng một hai tuần, Tiemann đã tạo được mã nhanh hơn 40% so với compiler ban đầu. Điều này rất quan trọng bởi bán dẫn 32032 đã được bán như một chip MIPS (có thể thực thi 1 triệu lệnh trên giây) nhưng tiêu chuẩn chỉ là 0.75 MIPS, và đã "không thích hợp cho thương mại" cho đến khi có sự can thiệp của Tiemann và GCC.

Tiemann đã viết: "với port chip 32032 mới của tôi, làm chuẩn trên 1 chip MIPS, được cung cấp bởi phần cứng nhưng phần mềm thì không." Vấn đề quan trọng bây giờ là "đã có nhiều người thực hiện rất thành công sự gắn kết này."

Đầu năm 1988 bản GCC ổn định đã được phát hành, Tiemann đã đóng góp cho compiler GNU C++, và đã bắt đầu port GCC cho những kiến trúc  khác. Đó là thời gian thuận lợi nhất của  free compiler . Những Compiler khác thì giá không rẻ và tính tương thích không được đánh giá cao.

Mặc dù có nhiều đối thủ, nhưng GCC vẫn được phát triển liên tục từ đó, và được sử dụng rộng rãi trong các compiler trên thế giới. GCC bao gồm front ends và thư viện cho C, C++, Objective-C, Fortran, Java và Ada, và được sử dụng ở hầu hết trong hệ thống GNU/ Linux. GCC cũng được sử dụng trên Android, FreeBSD, NetBSD, OpenBSD, trên hệ thống nhúng RTOS, trên Solaris, AIX, và HP-UX, và thậm chí trên Microsoft Windows với nhiều kiến trúc đáng kinh ngạc.

 

Miễn phí không miễn phí

 

Stallman công bố dự án GNU vào 09/1983, và biết rằng nó sẽ không đơn giản.

Ngay từ đầu ông đã tìm những công cụ miễn phí để đơn giản hóa công việc của mình. Trix và BSD đã được chọn lựa làm phần lõi, và anh đã tìm đến việc sử dụng bộ công cụ biên dịch miễn phí của trường Đại Học, ông ấy tưởng rằng nó sẽ là miễn phí như tên của nó.

Andy Tanenbaum, tác giả của bộ công cụ biên dịch, đã có cái nhìn khác. "Không, các trường Đại Học có thể được miễn phí, nhưng phần mềm phát triển thì không". Ông ấy đề nghị Stallman thay các tiện ích trong lõi, mà Stallman đã viết bằng các phần của Tanenbaum viết  và công bố Compiler thuộc sở hữu của Tanenbaum.

Stallman đã không đồng ý, và cho rằng điều này đáng khinh bỉ. Stallman đã nói với Tanenbaum rằng dự án đầu tiên của mình là compiler.

Off-colour Pascal

Bước tiếp theo của anh ấy, vào khoảng đầu năm 1985, là xem trình Pastel compiler - “một compiler mà tôi được biết vào lúc đó là miễn phí.” - nó làm sáng tỏ việc làm thế nào để cấp phát thanh ghi một cách tự động, và một số ý tưởng về cách xử lý các loại máy khác nhau.”

Trong GNU Manifesto, được công bố vào tháng 3 năm 1985, Stallman đã viết rằng” Các kỷ thuật tối ưu hóa C compiler sẽ được thêm vào, nó có thể biên dịch mã nguồn bởi chính nó và sẽ có thể phát hành trong năm nay.”

Anh ấy thêmfront-end cho C vào compiler Pastel, và “back-end cho 68000 mà tôi hy vọng nó sẽ là target machine đầu tiêu của tôi”, nhưng gặp vấn đề về kiếu trúc compiler. Pastel được miêu tả bởi tác giả gốc của nó là “off-colour Pascal” và như vậy, “không yêu cầu bạn phải khai báo điều gì đó trước khi bạn sử dụng nó.” và “có thể khai báo và sử dụng theo thứ tự bất kì”. Cho nên, dẫn đến hậu quả là tất cả code được phân tích phải được đọc từ memory. “Kết quả là việc lưu trữ trung gian trong compiler, kích thước vùng nhớ cần thiết, là tỷ lệ với kích thước file của bạn … hệ thống sẵn có của 68000 làm tôi không thể chạy được compiler.”

Trong 'GNU's Bulletin' cho tháng 2 năm 1986, Stallman đã viết: ”Hầu hết các vấn đề của compiler được viết bằng Pastel, supper-hairy compiler, và nó cũng là compiler duy nhất cho ngôn ngữ lập trình Pascal. Để làm nó nhỏ hơn, chúng ta phải loại bỏ “hair” cần thiết để biên dịch Pastal; sau đó chúng ta sẽ khổng thể biên dịch Pastel, cho nên nó phải được viết lại tất cả thành C.”

“Len Tower, người dành toàn bộ thời gian làm việc cho dự án GNU, đang làm việc này, với một hoặc hai trợ lý.”

Qua những sự kiện trên, Stallman “tôi quyết định sẽ viết lại một compiler mới. Compiler mới đó được biết đến là  GCC; không có compiler Pastel được dùng trong nó, nhưng tôi quản lý để thích ứng và sử dùng C front-end mà tôi đã viết”, cho thấy rằng hầu hết các công việc viết compiler được làm vào giữ tháng 2 năm 1986 và tháng 3 năm 1987.

Chúng tôi làm free software affordable

Tiemann tham dự các bài giảng kéo dài một tuần của Stallman vào tháng trước khi compiler GCC phát hành lần đầu tiên, và nói rằng “ sự tò mò của tôi lớn như Stallman sẽ ăn cắp những khoảnh khắc giữa các bài giảng và đặc biệt là vào ngày cuối kết thúc một dự án, ông vẫn chưa sẵn sàng tiết lộ ", dự án này hóa ra là GCC.

Các bài giảng đã gây ra sự tưởng tượng của Tiemann, và kinh nghiệm tiếp theo của mình với GCC khiến anh lập tồ chức Hỗ trợ Cygnus  (sau này là Cygnus Solutions) với John Gilmore và David Vinayak Wallace - công ty đầu tiên trên thế giới dành riêng cho việc thúc đẩy và hỗ trợ của phần mềm miễn phí.

Cygnus đã được thành lập vào năm 1989, hai năm trước khi Linus Torvalds đã làm ra kernel Linux đầu tiên và thông báo trên comp.os.minix, chín năm trước khi sáng tạo của "Open Source intitiative", và được dành riêng hoàn toàn để tiếp thị phần mềm GNU. 

Theo Gilmore, khẩu hiệu đầu tiên trên áo thun Cygnus Support là "Chúng tôi làm free software affordable", và điểm lớn nhấtl à GCC, affordable compiler.

Cygnus đã trở thành chìa khóa đóng góp cho GNU và Linux và gặt hái được phần thưởng đáng kể như phần thường công ty đầu tiên thực hiện bước cơ bản phần mềm tiếp thị được phát hành với bản quyền là free software licenses. Cho nên, công ty đã được mua lại bởi Red Hat với giá 600 triệu USD vào tháng mười một năm 1999 làm cho tất cả các nhân viên ban đầu của nó thành triệu phú - Cygnus thuê hơn 120 người và đã có doanh thu hàng năm hơn 20 triệu USD. 

Cygnus đã trở thành một nhà cung cấp quan trọng hỗ trợ cho các sản phẩm phần mềm miễn phí trong nhiều lĩnh vực của ngành công nghiệp. Khách hàng bao gồm Intel, AMD, 3Com và Adobe. Như Gilmore kể lại "cuối cùng, chúng tôi đã nhận được hàng triệu USD hợp đồng, chẳng hạn như một từ Sony để xây dựng các compiler PlayStation và giả lập này phát triển trò chơi cho phép để bắt đầu làm việc một năm trước khi các phần cứng PlayStation đã có thể được dùng.."

Các sản phẩm chính của Cygnus là Kit phát triển GNUPro, trong đó cung cấp các sản phẩm hàng đầu là GCC compiler và trình debug GDB trong thị trường công cụ  phần mềm nhúng. Bất cứ ai cũng có thể tải về code GNUPro, nhưng GCC là giá rẻ, mạnh mẽ như là một compiler linh động cho phép porting code  và các tool từ cấu trúc này đến các cấu trúc khác.

Cygnus sinh lợi nhuận bằng cách cung cấp chuyên môn và hỗ trợ phần mềm, và Stallman đề nghị Cygnus là thêm vào sau Cygnus  là  "Cygnus, Your GNU Support”.

còn tiếp...

Theo ICDREC

Đăng nhập

Chat