72
Làm quen với hệ thống tập tin ext3fs
các chương trình khác nhau (pipe dịch từ tiếng Anh sang là ống, đường ống).
Ống là phương tiện hết sức thuận tiện và sử dụng rộng rãi để trao đổi thông
tin giữa các tiến trình. Một tiến trình có thể đọc tất cả những gì mà một tiến
trình khác đặt vào ống. Nếu có hai tiến trình được sinh ra từ cùng một tiến trình
mẹ trao đổi thông tin (thường xảy ra), thì ống có thể không có tên. Trong trường
hợp ngược lại cần tạo ra một ống có tên, ví dụ bằng chương trình mkfifo. Khi
này bản thân tập tin ống chỉ tham gia vào sự khởi đầu trao đổi dữ liệu.
4.4.3
Các socket
Socket đó là kết nối giữa các tiến trình, cho phép chúng giao tiếp mà không chịu
ảnh hưởng của các tiến trình khác. Nói chung socket và sự trao đổi qua socket
đóng vai trò hết sức quan trọng trên tất cả các hệ thống UNIX, trong đó có Linux:
socket là khái niệm then chốt của TCP/IP và như vậy là dựa trên socket đã xây
dựng toàn bộ Internet. Tuy nhiên từ phía hệ thống tập tin socket thực tế không
khác các ống có tên: đó chỉ là các điểm cho phép nối các chương trình với nhau.
Sau khi đã tạo ra kết nối, thì trao đổi được thực hiện mà không cần đến socket:
dữ liệu do nhân chuyển trực tiếp từ chương trình này đến chương trình khác.
Mặc dù những tiến trình khác có thể thấy các tập tin socket, nhưng những
tiến trình không tham gia vào kết nối hiện thời không thể thực hiện bất kỳ thao
tác đọc hay ghi nào lên tập tin socket. Trong số những hệ thống sử dụng socket
cần kể đến X Window, hệ thống in và hệ thống syslog.
4.4.4
Liên kết mềm
Trong phần về tên tập tin ở chương trước chúng ta đã nói rằng tập tin trong
Linux có thể có vài tên hay liên kết cứng. Liên kết cứng chỉ là một tên khác cho
tập tin ban đầu. Nó được ghi trong mô tả inode của tập tin đó. Sau khi tạo liên
kết cứng không thể phân biệt đâu là tên tập tin còn đâu là liên kết. Nếu bạn
đọc xóa một trong số những tập tin này (nói đúng hơn là một trong số những tên
này), thì tập tin vẫn còn được lưu trên đĩa cho đến khi vẫn còn ít nhất một tên.
Rất khó phân biệt tên đầu tiên của tập tin và những liên kết cứng được tạo ra
sau đó. Vì vậy chỉ dùng liên kết cứng ở những nơi không cần biết sự khác nhau.
Một trong những ứng dụng của liên kết cứng đó là ngăn chặn khả năng xóa tập
tin một cách vô tình. Điểm đặc biệt của liên kết cứng là nó chỉ thẳng đến chỉ số
inode, và do đó liên kết cứng chỉ có thể dùng cho tập tin của cùng một hệ thống
tập tin, tức là trên cùng một phân vùng (đĩa lưu).
Nhưng trên Linux còn có một dạng liên kết khác gọi là (liên kết tượng trưng
Những liên kết này cũng có thể coi là tên phụ cho tập tin, nhưng chúng là những
tập tin khác – những tập tin liên kết mềm. Khác với liên kết cứng, liên kết mềm
có thể chỉ đến những tập tin nằm trong hệ thống tập tin khác, ví dụ trên những
đĩa lưu động, hoặc thậm chí trên một máy tính khác. Nếu tập tin ban đầu bị xóa,
thì liên kết mềm tuy không bị xóa nhưng trở thành vô giá trị. Hãy sử dụng liên
kết mềm trong những trường hợp bạn muốn tránh sự lầm lẫn mà liên kết cứng
có thể gây ra, hoặc khi tập tin nằm trên một hệ thống tập tin khác.
9
thuật ngữ này vẫn chưa được thống nhất, do đó đưa ra cả hai trường hợp có thể gặp.