NHỮNG CÂU HỎI THƯỜNG GẶP VỀ LINUX - Trang 37

Những câu hỏi thường gặp về Linux

H:

Làm thế nào tạo thư viện dùng chung?

Đ:

Với ELF,

$ gcc -fPIC -c *.c

$ gcc -shared -Wl,-soname,libfoo.so.1 -o libfoo.so.1.0 *.o

Với a.out, lấy

tools-

n.nn

.tar.gz

từ

tsx-11.mit.edu/pub/linux/packages/GCC/src/

. Nó có

tài liệu đi kèm, sẽ cho bạn biết cần làm gì. Chú ý rằng thư viện dùng chung a.out rất phức tạp, rắc rối.
Hãy xem xét nâng cấp thư viện của bạn lên ELF. Xem ELF HOWTO, tại
ftp://metalab.unc.edu/pub/Linux/docs/HOWTO/.

H:

Tại sao chương trình của tôi quá lớn?

Đ:

Với trình biên dịch ELF (“ELF là gì? glibc là gì?”), nguyên nhân thường nhất là thiếu liên kết thư

viện .so với mỗi thư viện bạn dùng. Nên có một liên kết như

libc.so

với mỗi thư viện như

libc.so.5.2.18

.

Với trình biên dịch a.out nguyên nhân thường nhất là tùy chọn liên kết -g. Tùy chọn này tạo ra một
chương trình được liên kết tĩnh, chứa mọi thư viện nó cần thay vì liên kết với các thư viện đó.

Những tùy chọn khác đáng quan tâm là -O và -O2, cho phép tối ưu (xem tài liệu GCC), và -s (hoặc lệnh
strip

) để loại bỏ những thông tin symbol ra khỏi chương trình (và cũng có nghĩa là hoàn toàn không thể

debug).

Bạn có thể sẽ muốn dùng tùy chọn -N trên nhưng chương trình rất nhỏ (nhỏ hơn 8K với -N), nhưng bạn
không nên làm thế trừ khi bạn hiểu tác động về hiệu suất của tùy chọn này, và hoàn toàn không nên làm
với daemon.

H:

Linux có hỗ trợ tuyến đoạn (thread) và tiến trình nhẹ cân (lightweight process) không?

Đ:

Cũng như mô hình đa tiến trình Unix, bao gồm đến các tiến trình nhẹ cân, là một phần của Linux

kernel chuẩn, có vài phiên bản tiến trình hoặc thread nhẹ cân. Các kernel gần đây dùng mô hình thread
là kthreads. Ngoài ra, cũng có thể dùng những gói phần mềm sau.

GNU glibc2 cho Linux có tùy chọn hỗ trợ thread: ftp://ftp.gnu.org/pub/gnu/

Trong

sipb.mit.edu:/pub/pthread/

hoặc

ftp.ibp.fr:/pub/unix/threads/pthreads

. Tài

liệu không nằm trong gói này, nhưng có tại http://www.mit.edu:8001/people/proven/home_page.html.
Các phiên bản libc mới hơn chứa mã nguồn pthreads. Trình biên dịch GNU Ada trên
ftp://metalab.unc.edu/pub/Linux/devel/lang/ada/gnat-3.01-linux+elf.tar.gz chứa chương trình được tạo
từ mã nguồn đó.

QuickThreads ở ftp://ftp.cs.washington.edu:/pub/qt-001.tar.Z. Thông tin chi tiết nằm trong các báo
cáo kỹ thuật, nằm cùng địa chỉ,

/tr/1993/05/UW-CSE-93-05-06.PS.Z

.

lwp ở gummo.doc.ic.ac.uk/rex/ (gummo.doc.ic.ac.uk/rex) , một phiên bản rất nhỏ.

Một phiên bản của Ada ở ftp://ftp.cs.fsu.edu:/pub/PART/. Có nhiều tài liệu PostScript mà bạn có thể
học được nhiều thông tin bổ ích về thread. Không thể sử dụng trực tiếp trong Linux.

Vui lòng liên lạc tác giả các gói phần mềm trên để biết chi tiết.

36

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.