"Lập trình Unix" đề cập đến lập trình rõ ràng cho một môi trường unix. Điều này sẽ bao gồm lập trình cho các vỏ phù hợp với một tiêu chuẩn có liên quan (như POSIX ). Tuy nhiên, nó cũng sẽ bao gồm lập trình bằng bất kỳ ngôn ngữ nào trong khi sử dụng rõ ràng các giao diện và tài nguyên hệ thống được tiêu chuẩn hóa tương tự, giả định rằng những thứ này là đặc trưng cho thế giới * nix.
Ví dụ, lập trình mạng mà không có thư viện bên thứ ba trong C hoặc C ++ thì không thể mang theo được, bởi vì cả hai tiêu chuẩn đều không nói gì về nó. Việc kết nối mạng trong C / C ++ được triển khai bằng giao diện được điều khiển bởi hệ điều hành và trong khi trên các hệ thống * nix-ish, tính phổ biến này ít nhiều, bạn không thể chuyển mã không đổi sang (ví dụ) Windows và ngược lại. Do đó, thực hiện các công cụ mạng trong C hoặc C ++ có nghĩa là sử dụng thư viện di động hoặc nhắm mục tiêu nền tảng và Unix là một khả năng trong trường hợp sau, do đó, đó là "lập trình unix" (và lập trình C hoặc C ++ và lập trình mạng). 1
Tuy nhiên, lập trình mạng bằng nhiều ngôn ngữ cấp cao hơn như perl hoặc python hoặc java là di động; các ngôn ngữ này thường được triển khai trong C, nhưng trong khi các chi tiết triển khai khác nhau từ nền tảng này đến nền tảng khác, thì giao diện lại không. Do đó, bạn có thể viết mã mạng bằng perl sẽ chạy trên bất kỳ hệ thống nào mà perl chạy; trên một hệ thống Unix, điều này được dịch bởi trình thông dịch thực hiện thành các cuộc gọi riêng phù hợp và trên hệ thống windows, nó sẽ được dịch khác nhau. Vì mã perl thực tế của bạn không cụ thể cho bất cứ thứ gì ngoại trừ perl, nên nó không phải là chương trình unix. Đó là lập trình mạng và lập trình perl, nhưng không phải là lập trình unix.
1. Do mối quan hệ lịch sử mật thiết giữa C và Unix, thực tế C là ngôn ngữ được sử dụng nhiều nhất để viết các hệ điều hành nói chung và bản chất của "hệ điều hành" là gì, có rất nhiều thứ trong danh mục " Lập trình C cụ thể cho hệ điều hành "- một ví dụ hàng ngày khác ngoài việc kết nối mạng là các công cụ định hướng hệ thống tệp, chẳng hạn như lưu trữ tệp và thư mục đọc. Do đó, có nhiều loại sách "Lập trình Unix trong C" khác nhau, bởi vì lập trình cơ bản trong C chắc chắn liên quan đến rất nhiều yếu tố cụ thể của hệ điều hành. Đây không phải là trường hợp với các ngôn ngữ di động hơn như perl hoặc java; trong trường hợp này, chủ đề của cuốn sách có thể sẽ là " Lập trình hệ thống theo Perl", hoặc nhiều khả năng, chỉ đơn giản là "Lập trình với Perl".