Giao diện dòng lệnh trong posix. Tiêu chuẩn hệ điều hành thời gian thực. Hệ thống tập tin gốc

- (IPAEng|ˈpɒzɪks) hoặc Di động Hệ điều hành Giao diện trang web | tiêu đề = POSIX | url = http://standards.ieee.org/regauth/posix/ | công việc = Tiêu chuẩn | nhà xuất bản = IEEE] là tên chung của một họ các tiêu chuẩn liên quan được chỉ định bởi IEEE ... Wikipedia

POSIX- est le nom d une famille de Standards définie depuis 1988 par l Institute of Electrical and Electronics Engineers et formellement désignée IEEE 1003. Ces Standards ont émergé d un projet de Standardization des API des logiciels destinés à… … Wikipédia en Français

Posix- est le nom d une famille de Standards définie depuis 1988 par l IEEE et formellement désignée IEEE 1003. Các tiêu chuẩn Ces ont émergé d un émergé de Standardization des API des logiciels destinés à fonctionner sur desvaries du système d… … Wikipédia en Français

POSIX- phiên bản cải tiến của Giao diện hệ điều hành di động; la X viene de UNIX giống như một thiết bị nhận dạng API. Anh ta được cho là đã được Richard Stallman đáp ứng nhu cầu của IEEE, người đã tìm thấy một nơi dễ dàng để ghi âm. Một bản dịch … Wikipedia Tiếng Tây Ban Nha

POSIX- , 1986 im Standard 1003.1 der IEEE không có tính năng đặc biệt cho Zugriffe auf Systemfunktionen unter Unix. Hệ thống Unix Sowohl…Universal-Lexikon

POSIX- trạng thái tiêu chuẩn T sritis informatika apibrėžtis Standartų grupė, apibrėžianti operacinės hệ thống sąsajas tarp joje veikiančių chương trìnhų bei tarnybų. Pirmuosius tiêu chuẩn công nghệ điện tử và điện tử trong các viện nghiên cứu (IEEE) Linux… … Enciklopedinis kompiuterijos žodynas

POSIX- là công cụ tạo ra Giao diện hệ điều hành di động, viniendo la X de UNIX với ý nghĩa của API ở đây (Được xây dựng như Sistema Operativo Portable dựa trên UNIX). Con trai của một gia đình estándares de llamadas al hệ thống… … Enciclopedia Universal

POSIX- (Giao diện hệ điều hành di động dựa trên uniX) n. tập hợp các tiêu chuẩn cho hệ điều hành dựa trên Unix (Máy tính) ... Từ điển tiếng Anh hiện đại

POSIX

Posix- Giao diện hệ điều hành di động Das (POSIX [ˈpɒsɪks]) ist ein gemeinsam von der IEEE und der Open Group für Unix entwickeltes Standardisiertes Giao diện lập trình ứng dụng, das die Schnittstelle zwischen Application und dem… … Wikipedia tiếng Đức

Sách

  • , Stephen A. Rago, W. Richard Stevens. "UNIX. Lập trình chuyên nghiệp" là một tài liệu chi tiết hướng dẫn tham khảo, trong 20 năm đã giúp các lập trình viên C chuyên nghiệp viết độc quyền...
  • UNIX. Lập trình chuyên nghiệp của Stevens W. Richard, Rago Steven A. Cuốn sách này xứng đáng được các lập trình viên nghiêm túc trên khắp thế giới yêu thích vì nó chứa đựng những thông tin quan trọng và thiết thực nhất về quản lý nhân UNIX và Linux. Nếu không có những thứ này...

Sự khác biệt lớn về thông số kỹ thuật RTOS và số lượng lớn các bộ vi điều khiển hiện có dẫn đến vấn đề tiêu chuẩn hóa trong lĩnh vực hệ thống thời gian thực.

Tiêu chuẩn RTOS sớm nhất và phổ biến nhất là tiêu chuẩn POSIX (Giao diện hệ điều hành di động IEEE cho máy tính Môi trường, IEEE 1003.1). Phiên bản gốc của tiêu chuẩn POSIX xuất hiện vào năm 1990 và được thiết kế cho các hệ thống UNIX, phiên bản đầu tiên xuất hiện vào những năm 70 của thế kỷ trước. Các thông số kỹ thuật POSIX xác định một cơ chế tiêu chuẩn cho sự tương tác giữa chương trình ứng dụng và hệ điều hành và hiện bao gồm một bộ gồm hơn 30 tiêu chuẩn. Đối với RTOS, bảy trong số đó là quan trọng nhất (1003.1a, 1003.1b, 1003.1c, 1003.1d, 1003.1j, 1003.21, 1003.2h), nhưng chỉ có ba cái đầu tiên được hỗ trợ rộng rãi trong các hệ điều hành thương mại.

Bất chấp các điều khoản rõ ràng đã lỗi thời của tiêu chuẩn POSIX và nhu cầu lớn về cập nhật tiêu chuẩn hóa cho RTOS, vẫn chưa có tiến bộ đáng chú ý nào theo hướng này.

Tiêu chuẩn POSIX được tạo ra như một giao diện tiêu chuẩn cho các dịch vụ hệ điều hành. Tiêu chuẩn này cho phép tạo ra các ứng dụng di động. Tiêu chuẩn này sau đó đã được mở rộng để bao gồm các tính năng thời gian thực.

Thông số kỹ thuật POSIX xác định cơ chế tiêu chuẩn cho sự tương tác giữa ứng dụng và HĐH. Cần lưu ý rằng tiêu chuẩn POSIX có liên quan chặt chẽ với hệ điều hành Unix, tuy nhiên, các nhà phát triển của nhiều RTOS cố gắng tuân thủ tiêu chuẩn này.

Việc tuân thủ tiêu chuẩn POSIX cho hệ điều hành và nền tảng phần cứng phải được chứng nhận bằng cách chạy các trường hợp thử nghiệm trên chúng. Tuy nhiên, nếu hệ điều hành không giống Unix, việc đáp ứng yêu cầu này sẽ trở thành một nhiệm vụ không hề dễ dàng. Bộ dụng cụ thử nghiệm chỉ tồn tại cho POSIX 1003.1a. Vì khung POSIX là tập hợp các tính năng tùy chọn nên các nhà cung cấp hệ điều hành chỉ có thể triển khai một phần của giao diện chuẩn và vẫn tuyên bố rằng hệ thống của họ tuân thủ POSIX.

Mặc dù tiêu chuẩn POSIX phát triển từ Unix, nhưng nó giải quyết các khái niệm trừu tượng cơ bản của hệ điều hành và các tiện ích mở rộng thời gian thực áp dụng cho tất cả các RTOS.

Phần mềm) là nhiệm vụ có tầm quan trọng đặc biệt và phức tạp; ở thời đại chúng ta, hoàn cảnh này hầu như không cần phải biện minh rộng rãi. Một trong những cách được chấp nhận chung để tăng tính di động của phần mềm là chuẩn hóa môi trường ứng dụng: cung cấp giao diện phần mềm, tiện ích, v.v. Ở cấp Dịch vụ hệ thống một môi trường tương tự được mô tả theo tiêu chuẩn POSIX (Giao diện hệ điều hành di động - giao diện di động hệ điều hành); tên gợi ý chuyên gia nổi tiếng, người sáng lập Quỹ Phần mềm Tự do, Richard Stallman.

Chúng tôi sẽ xem xét hiện đại nhất của phiên bản có sẵn Tiêu chuẩn POSIX, được sửa đổi năm 2003, có thể được gọi là “tiêu chuẩn ba”, cụ thể là IEEE Std 1003.1, Tiêu chuẩn kỹ thuật Open Group và (xem [6]), quan trọng nhất đối với chúng tôi là tiêu chuẩn quốc tế ISO/IEC 9945 (xem [1], [2], [3], [4]).

Lịch sử tạo ra phiên bản này như sau. Đầu năm 1998, đại diện của ba tổ chức - Ủy ban Tiêu chuẩn Ứng dụng Di động của Viện Kỹ sư Điện và Điện tử, Nhóm Mở và nhóm làm việc Tiểu ban 22 của Ủy ban kỹ thuật chung 1 (JTC1/SC22/WG15) của Tổ chức Tiêu chuẩn hóa Quốc tế - đã bắt đầu tham vấn về vấn đề hợp nhất và phát triển các tiêu chuẩn về giao diện với các dịch vụ hệ thống mà họ giám sát: IEEE Std 1003.1, IEEE Std 1003.2, Thông số kỹ thuật cơ bản từ Nhóm Mở, ISO / IEC 9945-1, ISO/IEC 9945-2. Vào tháng 9 cùng năm, một cuộc họp tổ chức của nhóm được thành lập để đạt được mục tiêu này đã được tổ chức tại Austin, Texas, tại văn phòng của Tập đoàn IBM (xem http://www.opengroup.org/austin).

Tài liệu nền tảng cho tiêu chuẩn sửa đổi, bản dự thảo đầu tiên được đệ trình vào tháng 7 năm 1999, là Thông số kỹ thuật cốt lõi của Nhóm Mở, vì nó kết hợp các điều khoản từ các tiêu chuẩn IEEE và ISO/IEC. Năm 2001, sau khi hoàn thành công việc chuẩn bị, tiêu chuẩn bao gồm bốn phần sau:

  1. định nghĩa cơ bản (thuật ngữ, khái niệm và giao diện chung cho tất cả các phần);
  2. Sự miêu tả áp dụng Giao diện phần mềm C. đến các dịch vụ hệ thống;
  3. mô tả giao diện với các dịch vụ hệ thống ở cấp độ ngôn ngữ lệnhtiện ích ;
  4. giải thích chi tiết các quy định của tiêu chuẩn, lý do đưa ra quyết định.

Hơn nữa, ISO, IEEE và Open Group, với tốc độ nhanh hơn hoặc ít hơn (năm 2001-2002), đã chính thức phê duyệt tiêu chuẩn POSIX mới. Trong khi đó, những chỉnh sửa tương đối nhỏ đã được tích lũy và được tính đến trong ấn bản năm 2003.

Khi tiêu chuẩn được phát triển, việc giải thích thuật ngữ "POSIX" được mở rộng. Ban đầu nó đề cập đến IEEE Std 1003.1-1988, mô tả giao diện lập trình ứng dụng Hệ điều hành lớp Unix. Sau khi tiêu chuẩn hóa giao diện ở cấp độ ngôn ngữ lệnh và tiện ích, sẽ đúng hơn nếu hiểu toàn bộ từ "POSIX" là tiêu chuẩn, biểu thị các phần 2 và 3 trên thông qua POSIX.1 và POSIX.2 theo đúng quy định. với việc đánh số các tài liệu IEEE và ISO/IEC.

Ý tưởng cơ bản của tiêu chuẩn POSIX

Tiêu chuẩn POSIX mô tả nhiều dịch vụ hệ thống cơ bản cần thiết cho hoạt động của các chương trình ứng dụng. Chúng được truy cập thông qua giao diện được chỉ định cho ngôn ngữ C, ngôn ngữ lệnh và các chương trình tiện ích phổ biến.

Mọi giao diện đều có hai mặt: người gọi và người được gọi. Tiêu chuẩn POSIX hướng tới người gọi. Mục tiêu của nó là tạo ra các ứng dụng di động ở cấp độ ngôn ngữ nguồn. Đặc biệt, điều này có nghĩa là khi di chuyển các chương trình C sang nền tảng điều hành khác, việc biên dịch lại sẽ được yêu cầu. Không có cuộc thảo luận nào về tính di động của các chương trình thực thi và/hoặc tệp đối tượng.

Tiêu chuẩn POSIX không hề bị giới hạn trong môi trường Unix. Có những hệ điều hành (OS) có "nguồn gốc độc lập" (ví dụ: hệ thống thời gian thực), cung cấp các dịch vụ cần thiết và từ đó hỗ trợ thực thi các ứng dụng tuân thủ POSIX. Có thể lập luận rằng việc tuân theo tiêu chuẩn POSIX giúp chuyển các ứng dụng sang hầu hết mọi nền tảng điều hành được sử dụng rộng rãi dễ dàng hơn. Những nỗ lực bổ sung để cải thiện khả năng di chuyển đang được thực hiện ở giai đoạn phát triển chắc chắn sẽ trả hết.

Bằng cách xác định giao diện cho các dịch vụ hệ thống, POSIX không xem xét việc triển khai chúng. Đặc biệt chúng không khác nhau cuộc gọi hệ thốngchức năng thư viện. Sản phẩm không cần tiêu chuẩn hóa sự quản lý, chỉ yêu cầu những hạn chế về phần cứng và các tính năng siêu người dùng, một lần nữa nhấn mạnh trọng tâm của tiêu chuẩn

Khóa học bao gồm tiêu chuẩn giao diện hệ điều hành di động (POSIX), cũng như các kỹ thuật và phương pháp lập trình ứng dụng dựa trên tiêu chuẩn này, được giải thích bằng nhiều ví dụ. Các vấn đề về lập trình hệ thống đa xử lý và tương tác của các ứng dụng trong cấu hình phân tán đều được giải quyết. Đảm bảo tính di động (tính di động, tính di động) phần mềm(phần mềm) là nhiệm vụ đặc biệt quan trọng và phức tạp; ở thời đại chúng ta, trường hợp này hầu như không cần phải biện minh rộng rãi. Một trong những cách được chấp nhận rộng rãi để tăng tính di động của phần mềm là chuẩn hóa môi trường ứng dụng: các giao diện phần mềm, tiện ích được cung cấp, v.v. Ở cấp độ dịch vụ hệ thống, môi trường như vậy được mô tả theo tiêu chuẩn POSIX (Giao diện hệ điều hành di động - giao diện hệ điều hành di động); Cái tên này được gợi ý bởi chuyên gia nổi tiếng, người sáng lập Tổ chức Phần mềm Tự do, Richard Stallman.

Khóa học xem xét phiên bản hiện đại nhất, được sửa đổi năm 2003, có thể được gọi là “tiêu chuẩn ba”, cụ thể là: tiêu chuẩn IEEE Std 1003.1, Tiêu chuẩn kỹ thuật nhóm mở và quan trọng nhất đối với chúng tôi là tiêu chuẩn quốc tế ISO/IEC 9945 Nhiệm vụ chính Khóa học này là tìm hiểu các kỹ thuật và phương pháp sử dụng các tiện ích và chức năng được tiêu chuẩn hóa. Mục đích không phải là kể lại tiêu chuẩn, nêu bật tất cả sự tinh tế trong việc triển khai hệ điều hành, mọi thứ mã có thể lỗi, v.v. Theo quan điểm của chúng tôi, điều quan trọng nhất là cảm nhận được tinh thần của tiêu chuẩn và học cách sử dụng các khả năng vốn có của nó một cách di động. Giả sử người đọc nói C, chúng tôi không xem xét cú pháp hoặc chức năng thư viện sách giáo khoa của nó. Đối với ngôn ngữ lệnh tiêu chuẩn và trình thông dịch của nó, chủ đề này được trình bày chi tiết, mặc dù nhiều lập trình viên thực hành thích sử dụng các trình thông dịch khác. Một vị trí quan trọng - cả về số lượng và vai trò - được dành cho các ví dụ về chương trình. Nhiều điều khoản của tiêu chuẩn (chẳng hạn như liên quan đến việc xử lý tình huống sai lầm) không được trình bày trong văn bản chính mà trong các ví dụ tương ứng, bất cứ khi nào có thể, được biên dịch và thực thi trên một số nền tảng phần cứng và phần mềm, ở mức độ này hay mức độ khác, tuyên bố tuân thủ tiêu chuẩn POSIX. Tuy nhiên, tất nhiên có thể xảy ra sơ suất. Chúng tôi sẽ biết ơn tất cả các nhận xét và đề xuất liên quan đến toàn bộ khóa học và ví dụ riêng lẻ các chương trình.

Lịch sử hình thành và trạng thái hiện tại của tiêu chuẩn POSIX.

Đảm bảo tính di động (portability) của phần mềm là một nhiệm vụ có tầm quan trọng đặc biệt và phức tạp; ở thời đại chúng ta, hoàn cảnh này hầu như không cần phải biện minh rộng rãi. Một trong những cách được chấp nhận chung để tăng tính di động của phần mềm là chuẩn hóa môi trường ứng dụng: cung cấp giao diện phần mềm, tiện ích, v.v. Ở cấp độ dịch vụ hệ thống, môi trường như vậy được mô tả theo tiêu chuẩn POSIX (Giao diện hệ điều hành di động - giao diện hệ điều hành di động); Cái tên này được đề xuất bởi chuyên gia nổi tiếng, người sáng lập Tổ chức Phần mềm Tự do, Richard Stallman.

Trang đầu.
Đầu ra.
Bài giảng 1. Các khái niệm và ý tưởng cơ bản của tiêu chuẩn POSIX.
Bài giảng 2. Ngôn ngữ Shell.
Bài giảng 3. Các tiện ích, chức năng phục vụ khái niệm “người dùng”.
Bài giảng 4. Tổ chức hệ thống tập tin.
Bài giảng 5. Nhập/xuất file.
Bài giảng 6. Công cụ xử lý dữ liệu có cấu trúc.
Bài giảng 7. Các quy trình.
Bài giảng 8. Công cụ giao tiếp giữa các tiến trình.
Bài 9. Giao diện terminal chung.
Bài giảng 10. Khảo sát đặc điểm máy chủ và ứng dụng của chúng trong ứng dụng.
Bài giảng 11. Công cụ mạng.
Bài giảng 12. Thời gian và cách làm việc với nó.
Bài giảng 13. Môi trường ngôn ngữ và văn hóa.
Bài giảng 14. Kết luận.
Thư mục.

Tải xuống miễn phí sách điện tử V. định dạng thuận tiện, xem và đọc:
Tải sách Lập trình theo tiêu chuẩn POSIX, phần 1, Galatenko V.A., 2016 - fileskachat.com, tải nhanh và miễn phí.

Đảm bảo tính di động (portability) của phần mềm là một nhiệm vụ có tầm quan trọng đặc biệt và phức tạp; ở thời đại chúng ta, hoàn cảnh này hầu như không cần phải biện minh rộng rãi. Một trong những cách được chấp nhận chung để tăng tính di động của phần mềm là chuẩn hóa môi trường ứng dụng: cung cấp giao diện phần mềm, tiện ích, v.v. Ở cấp Dịch vụ hệ thống một môi trường tương tự được mô tả theo tiêu chuẩn POSIX (Giao diện hệ điều hành di động - giao diện hệ điều hành di động); Cái tên này được đề xuất bởi chuyên gia nổi tiếng, người sáng lập Tổ chức Phần mềm Tự do, Richard Stallman. Chúng ta sẽ xem xét phiên bản hiện đại nhất của tiêu chuẩn POSIX hiện có, phiên bản 2003, có thể được gọi là "tiêu chuẩn ba", cụ thể là IEEE Std 1003.1, Tiêu chuẩn kỹ thuật nhóm mở và (xem, quan trọng nhất đối với chúng tôi, tiêu chuẩn quốc tế). tiêu chuẩn ISO/IEC 9945 (xem , , , ). Lịch sử hình thành phiên bản này như sau: Đầu năm 1998, đại diện của ba tổ chức - Ủy ban Tiêu chuẩn Ứng dụng Di động của Viện Kỹ sư Điện và Điện tử, Nhóm Mở. và Nhóm làm việc 15 của Tiểu ban 22 thuộc Ủy ban Kỹ thuật chung 1 (JTC1/SC22/WG15) của Tổ chức Tiêu chuẩn hóa Quốc tế - đã bắt đầu tham vấn về vấn đề hợp nhất và phát triển các tiêu chuẩn cho giao diện với các dịch vụ hệ thống mà họ giám sát: IEEE Std 1003.1 , IEEE Std 1003.2, Thông số kỹ thuật cơ bản của Nhóm mở, ISO/IEC 9945-1, ISO/IEC 9945-2 Vào tháng 9 cùng năm, một cuộc họp tổ chức của nhóm được thành lập để đạt được mục tiêu này đã được tổ chức tại Austin, Texas. , tại văn phòng của Tập đoàn IBM (xem. http://www.opengroup.org/austin). Tài liệu nền tảng cho tiêu chuẩn sửa đổi, bản dự thảo đầu tiên được đệ trình vào tháng 7 năm 1999, là Thông số kỹ thuật cốt lõi của Nhóm Mở, vì nó kết hợp các điều khoản từ các tiêu chuẩn IEEE và ISO/IEC. Năm 2001, sau khi hoàn thành công việc chuẩn bị, tiêu chuẩn bao gồm bốn phần sau:
  • định nghĩa cơ bản (thuật ngữ, khái niệm và giao diện chung cho tất cả các phần);
  • mô tả giao diện phần mềm ứng dụng C với các dịch vụ hệ thống;
  • mô tả giao diện với các dịch vụ hệ thống ở cấp độ ngôn ngữ lệnhtiện ích;
  • giải thích chi tiết các quy định của tiêu chuẩn, lý do đưa ra quyết định.
  • Hơn nữa, ISO, IEEE và Open Group, với tốc độ nhanh hơn hoặc chậm hơn (năm 2001-2002), đã chính thức phê duyệt tiêu chuẩn POSIX mới. Trong khi đó, những chỉnh sửa tương đối nhỏ đã được tích lũy và được tính đến trong ấn bản năm 2003. Khi tiêu chuẩn được phát triển, việc giải thích thuật ngữ "POSIX" được mở rộng. Ban đầu nó đề cập đến IEEE Std 1003.1-1988, mô tả giao diện lập trình ứng dụng Hệ điều hành lớp Unix. Sau khi tiêu chuẩn hóa giao diện ở cấp độ ngôn ngữ lệnh và các chương trình tiện ích, sẽ đúng hơn nếu hiểu toàn bộ từ "POSIX" là một tiêu chuẩn, biểu thị các phần 2 và 3 trên thông qua POSIX.1 và POSIX.2 trong theo cách đánh số của tài liệu IEEE và ISO/IEC.

    Ý tưởng cơ bản của tiêu chuẩn POSIX

    Tiêu chuẩn POSIX mô tả nhiều dịch vụ hệ thống cơ bản cần thiết cho hoạt động của các chương trình ứng dụng. Chúng được truy cập thông qua giao diện được chỉ định cho ngôn ngữ C, ngôn ngữ lệnh và các chương trình tiện ích phổ biến. Mọi giao diện đều có hai mặt: người gọi và người được gọi. Tiêu chuẩn POSIX hướng tới người gọi. Mục tiêu của nó là tạo ra các ứng dụng di động ở cấp độ ngôn ngữ nguồn. Đặc biệt, điều này có nghĩa là khi di chuyển các chương trình C sang nền tảng điều hành khác, việc biên dịch lại sẽ được yêu cầu. Không có cuộc thảo luận nào về tính di động của các chương trình thực thi và/hoặc tệp đối tượng. Tiêu chuẩn POSIX không hề bị giới hạn trong môi trường Unix. Có những hệ điều hành (OS) có "nguồn gốc độc lập" (ví dụ: hệ thống thời gian thực), cung cấp các dịch vụ cần thiết và từ đó hỗ trợ thực thi các ứng dụng tuân thủ POSIX. Có thể lập luận rằng việc tuân theo tiêu chuẩn POSIX giúp chuyển các ứng dụng sang hầu hết mọi nền tảng điều hành được sử dụng rộng rãi dễ dàng hơn. Nỗ lực nhiều hơn để cải thiện khả năng di chuyển trong giai đoạn phát triển chắc chắn sẽ được đền đáp. Bằng cách xác định giao diện cho các dịch vụ hệ thống, POSIX không xem xét việc triển khai chúng. Đặc biệt, chúng không khác nhau cuộc gọi hệ thốngchức năng thư viện. Sản phẩm không cần tiêu chuẩn hóa sự quản lý, chỉ yêu cầu những hạn chế về phần cứng và các tính năng siêu người dùng, một lần nữa nhấn mạnh trọng tâm của tiêu chuẩn POSIX trên các ứng dụng chứ không phải hệ điều hành. POSIX trung lập về kiến ​​trúc hệ thống và kích thước bit của bộ xử lý. Cái này rất khía cạnh quan trọng tính di động của ứng dụng. Tập trung vào tiêu chuẩn quốc tế ngôn ngữ C không chỉ xác định phong cách mô tả chức năng, nhưng ở một mức độ nào đó, cũng là hướng phát triển của các thông số kỹ thuật POSIX về mặt đồng bộ hóa của cả hai tiêu chuẩn. Như đã biết trong phiên bản đặc tả ngôn ngữ C được phê duyệt năm 1999 (xem), nó đã được hợp pháp hóa kiểu phức tạp data, điều này gây ra sự bổ sung tương ứng cho các chức năng POSIX. Tiêu chuẩn POSIX phân biệt giữa bắt buộc và chức năng bổ sung và lõi bắt buộc phải được làm nhỏ gọn nhất có thể. Tất nhiên rồi Đặc biệt chú ý tập trung vào các cách để triển khai các chức năng được tiêu chuẩn hóa cả trong môi trường Unix “cổ điển” và trên các nền tảng điều hành khác, trong cấu hình mạng và phân tán. Nhà phát triển phiên bản mới Tiêu chuẩn POSIX rất cẩn thận về nền tảng của nó cũng như nền tảng của các hệ thống Unix và quan trọng nhất là đối với các ứng dụng đáp ứng các phiên bản trước của tiêu chuẩn. Chúng tôi đã cố gắng duy trì các giao diện hiện có; trong quá trình phát triển, nguyên tắc đã được tuân thủ khả năng tương thích ngược; giao diện mới đã được thêm vào để không xung đột với giao diện cũ. Không thể tránh hoàn toàn việc thực hiện các thay đổi đối với ứng dụng vì những lý do rõ ràng: cần phải loại bỏ mâu thuẫn giữa các thông số kỹ thuật ban đầu khác nhau, cũng như từ bỏ hỗ trợ cho phiên bản “truyền thống” của ngôn ngữ C và chuyển sang tiêu chuẩn quốc tế của nó.

    Các khái niệm cơ bản của tiêu chuẩn POSIX

    Tiêu chuẩn POSIX, được sửa đổi năm 2003, là một tài liệu rất rộng, nhiều mặt, bao gồm chi tiết các loại thành phần hệ thống sau:
  • công cụ phát triển;
  • công cụ mạng;
  • công cụ thời gian thực;
  • luồng điều khiển;
  • giao diện toán học;
  • dịch vụ trọn gói;
  • tập tin tiêu đề;
  • các giao diện kế thừa.
  • Chính xác như thế này (trên trình độ cao, còn lâu mới hoàn thành) các tiết mục phải được hệ điều hành cung cấp để ứng dụng hoạt động. Khái niệm quan trọng nhất là Tuân thủ POSIX. Chúng ta đã lưu ý rằng mọi giao diện đều có hai mặt: mặt gọi và mặt được gọi. Tuân thủ POSIX có hai mặt: tuân thủ việc triển khai (hệ điều hành) và ứng dụng. Việc triển khai (hệ điều hành) tuân thủ tiêu chuẩn POSIX phải hỗ trợ tất cả các tiện ích, chức năng, tệp tiêu đề cần thiết và cung cấp hành vi được chỉ định trong tiêu chuẩn. Hằng số _POSIX_VERSION có giá trị 200112L. HĐH có thể cung cấp các tính năng được chỉ định trong tiêu chuẩn trong bổ sung, đồng thời chứa chức năng không chuẩn. Nếu một phần mở rộng được tuyên bố là được hỗ trợ thì nó phải được thực hiện một cách nhất quán, cho tất cả các phần được yêu cầu và theo cách được mô tả trong tiêu chuẩn. Trong tập tin tiêu đề Bạn nên xác định các hằng số tương ứng với các tính năng tùy chọn được hỗ trợ (ví dụ: hằng số _POSIX2_C_DEV phục vụ các công cụ phát triển C). Bằng cách phân tích các hằng số này tại thời điểm biên dịch, ứng dụng sẽ tìm ra khả năng của hệ điều hành đang được sử dụng và thích ứng với chúng. Hành động tương tự trong thời gian chạy có thể được thực hiện bằng cách sử dụng hàm sysconf() và/hoặc tiện ích getconf. Để giảm thiểu kích thước của hệ điều hành và các ứng dụng, tiêu chuẩn POSIX cung cấp mức độ chi tiết rất cao của các khả năng tùy chọn (tổng cộng là 40). Mặt khác, các khả năng tùy chọn có liên quan với nhau đã được kết hợp thành các nhóm, trong nhiều trường hợp loại bỏ nhu cầu phân tích. số lượng lớn tùy chọn. Những nhóm này là:
  • mã hóa ;
  • công cụ thời gian thực;
  • công cụ thời gian thực tiên tiến;
  • luồng thời gian thực;
  • luồng thời gian thực nâng cao;
  • dấu vết ;
  • SUỐI;
  • khả năng kế thừa.
  • Ví dụ: nhóm "cơ sở thời gian thực" (_XOPEN_REALTIME) bao gồm mười bốn loại khả năng, bao gồm lập lịch dựa trên mức độ ưu tiên, I/O không đồng bộ, ngữ nghĩa, bộ tính giờ, v.v. Phiên bản hệ điều hành Linux nơi văn bản được chuẩn bị khóa học này, tạo ra các giá trị sau cho một số hằng số cấu hình (xem Liệt kê 1.1).

    $ getconf _POSIX_VERSION 199506 $ getconf POSIX2_C_DEV 1 $ getconf _XOPEN_REALTIME 1 $ getconf _POSIX_TRACE không xác định Liệt kê 1.1. Kết quả của việc áp dụng tiện ích getconf cho một trong các phiên bản HĐH Linux.

    Điều này có nghĩa là phiên bản cũ của tiêu chuẩn POSIX được hỗ trợ, các công cụ phát triển và khả năng thời gian thực được bao gồm cùng với các phiên bản khác; Không có công cụ truy tìm. Tài liệu về hệ điều hành phải phản ánh các vấn đề tuân thủ với tiêu chuẩn POSIX và mô tả các tính năng bổ sung và phi tiêu chuẩn được hỗ trợ. Đối với các ứng dụng, khái niệm tuân thủ POSIX mang nhiều sắc thái hơn. Cung cấp tuân thủ nghiêm ngặt, đặc điểm phân biệt chính của nó là giới hạn về phạm vi khả năng được sử dụng trong khuôn khổ tiêu chuẩn. Việc tuân thủ việc sử dụng tiện ích mở rộng cũng được xem xét; trong trường hợp này, tài liệu ứng dụng phải có mô tả về các yêu cầu tính năng tiêu chuẩn. Điều mong muốn là các phần mở rộng tính năng POSIX được sử dụng phải được mô tả theo tiêu chuẩn quốc tế và/hoặc quốc gia. (Lưu ý rằng để triển khai, khái niệm tuân thủ POSIX nghiêm ngặt là vô nghĩa, nếu chỉ vì lý do không có hệ điều hành nào không có công cụ quản trị và chúng không được mô tả bởi tiêu chuẩn này.) Chúng tôi sẽ gọi một hồ sơ là một tập hợp các tùy chọn mô tả các khả năng tùy chọn. Tuân thủ hồ sơ có nghĩa là tuân thủ tiêu chuẩn POSIX và hỗ trợ các khả năng được chỉ định. Hồ sơ được chọn một cách khôn ngoan sẽ cho phép giải quyết nhu cầu của các lớp người dùng và/hoặc ứng dụng đại diện. Có thể có các "tiểu sử phụ" mô tả các tập hợp con các khả năng tiêu chuẩn. Việc triển khai tương ứng với cấu hình con có thể chạy trên nền tảng phần cứng có giới hạn tài nguyên và/hoặc phục vụ nhu cầu của các ứng dụng cụ thể. Trong số những quan trọng nhất là các khái niệm mô tả hành vi thực hiện trong Những tình huống khác nhau. Đối với nhiều tình huống đúng, hành vi không được xác định, có nghĩa là ứng dụng di động không nên dựa vào cùng một hành vi giữa các lần triển khai khác nhau. Đối với các tình huống không chính xác, hành vi có thể không được xác định; Ứng dụng không những không nên dựa vào bản chất cụ thể của hành vi đó mà còn không được thực hiện các hành động không phù hợp gây ra hành vi không xác định. Một thuật ngữ liên quan khác, " hành vi phụ thuộc thực hiện", Ngoài ra, có nghĩa là hành vi triển khai phải được ghi lại. Tiêu chuẩn POSIX là một tổ chức phát triển lâu dài, trong đó với mỗi phiên bản mới, một cái gì đó sẽ được thêm vào và một cái gì đó sẽ bị mất đi. Các tính năng không được dùng nữa là những tính năng vẫn được hỗ trợ bởi nhiều tổ chức khác nhau các ứng dụng mới không nên sử dụng chúng; đối với mỗi ứng dụng đó, tiêu chuẩn cung cấp các thay thế hiện đại đầy đủ cho thuật ngữ "cũ": nó mô tả các tính năng tùy chọn lỗi thời. tất nhiên điều đó nên tránh trong những ứng dụng mới.

    Khái niệm cơ bản về hệ điều hành POSIX

    Chúng tôi sẽ đề cập đến các khái niệm cơ bản sau đây về hệ điều hành POSIX:
  • người dùng ;
  • tài liệu ;
  • quá trình ;
  • phần cuối ;
  • chủ nhà ;
  • nút mạng;
  • thời gian ;
  • môi trường ngôn ngữ và văn hóa.
  • Đây là những khái niệm cơ bản. Chúng không thể được xác định một cách chặt chẽ nhưng có thể được giải thích bằng các khái niệm và mối quan hệ khác. Đối với mỗi khái niệm được đánh dấu, các thuộc tính và hoạt động vốn có của chúng có thể áp dụng cho chúng sẽ được mô tả. Văn bản của tiêu chuẩn POSIX chứa các giải thích sau đây về các khái niệm cơ bản cùng với các tham chiếu đến các thuộc tính và hoạt động.
  • Người dùng có tên và ID số.
  • Tệp là một đối tượng có thể được đọc và/hoặc ghi và có các thuộc tính như quyền và loại. Cái sau bao gồm tập tin thông thường, ký tự và khối các tập tin đặc biệt, đường ống, liên kết tượng trưng, ​​ổ cắm và thư mục. Việc triển khai có thể hỗ trợ các loại tệp khác.
  • Một tiến trình là một không gian địa chỉ cùng với các luồng điều khiển chạy trong đó, cũng như tài nguyên hệ thống, mà các chủ đề này yêu cầu.
  • Thiết bị đầu cuối (hoặc thiết bị đầu cuối) - ký tự tập tin đặc biệt, tùy thuộc vào thông số kỹ thuật của giao diện đầu cuối chung.
  • Mạng là tập hợp các máy chủ được kết nối với nhau.
  • Môi trường ngôn ngữ - văn hóa là một phần của môi trường người dùng, tùy thuộc vào các quy ước ngôn ngữ và văn hóa.
  • Để làm việc với một số lượng lớn các thực thể luôn được cung cấp các cơ chế để nhóm và xây dựng hệ thống phân cấp. Có một hệ thống phân cấp các tệp, nhóm người dùng và quy trình, mạng con, v.v. Để viết các chương trình hoạt động với các thực thể của hệ thống tương thích POSIX, hãy sử dụng thông dịch lệnh (ngôn ngữ vỏ) và/hoặc ngôn ngữ được biên dịch C. Trong trường hợp đầu tiên, ứng dụng có thể sử dụng các tiện ích, trong trường hợp thứ hai - hàm. Giao diện chức năngĐiều tự nhiên là coi hệ điều hành là chính, vì trên thực tế, hầu hết các chương trình tiện ích được thiết kế để gọi chức năng này hoặc chức năng khác. Vì lý do này, trong phần tiếp theo chúng ta sẽ chủ yếu xem xét cấp độ chức năng. Các hoạt động chính áp dụng cho các đối tượng OS là đọc, viết và thực thi. Cơ chế quyền truy cập cho phép bạn cho phép và cấm có chọn lọc các hoạt động đó. Trước đây, tiêu chuẩn bao gồm khái niệm siêu người dùng, không chịu sự kiểm soát truy cập. POSIX-2001 đã chọn một công thức linh hoạt hơn - "có đặc quyền thích hợp", phản ánh sự tiến bộ trong việc triển khai các hệ điều hành có khả năng siêu người dùng phân chia. Các hệ điều hành tuân thủ POSIX xác định các đối tượng có thể được gọi là phụ trợ; chúng giúp tổ chức tương tác giữa các thực thể chính. Phạm vi công cụ đặc biệt rộng giao tiếp giữa các quá trình. Các quy trình được thực hiện trong một môi trường cụ thể, một phần trong đó là môi trường ngôn ngữ và văn hóa (Locale), được hình thành bởi các danh mục như ký hiệu và thuộc tính của chúng, định dạng thông báo, ngày và giờ, giá trị số và tiền tệ. Thông thường có ít nhất ba tệp được liên kết với một quy trình - đầu vào tiêu chuẩn, đầu ra tiêu chuẩn , giao thức chuẩn . Thông thường, đầu vào tiêu chuẩn được gán cho bàn phím đầu cuối, đầu ra tiêu chuẩn và giao thức chuẩn được gán cho màn hình. Các lệnh và (đôi khi) dữ liệu nguồn cho chúng được đọc từ đầu vào tiêu chuẩn. Đầu ra tiêu chuẩn nhận kết quả thực hiện lệnh. Thông báo chẩn đoán được đặt trong giao thức chuẩn. Hệ điều hành có thể có các yêu cầu về chất lượng, ví dụ, yêu cầu hỗ trợ thời gian thực: khả năng cung cấp dịch vụ cần thiết trong một khoảng thời gian nhất định.

    Môi trường biên dịch cho các ứng dụng tuân thủ POSIX

    Theo quy định (mặc dù điều này không phải lúc nào cũng được thực hiện), việc phát triển ứng dụng được thực hiện đa chế độ, tức là nền tảng phát triển (thuật ngữ tương đương là nền tảng công cụ) không giống với nền tảng thời gian chạy (còn được gọi là nền tảng mục tiêu). Được tạo trên nền tảng công cụ môi trường biên dịch ứng dụng, để kết quả biên dịch có thể được chuyển sang lần thực thi tiếp theo trên nền tảng đích. Phần quan trọng nhất của môi trường biên dịch là các tệp tiêu đề (hoặc bao gồm) chứa nguyên mẫu chức năng, các định nghĩa hằng số ký hiệu, macro, kiểu dữ liệu, cấu trúc, v.v. Mỗi chức năng được mô tả trong tiêu chuẩn POSIX chỉ định những tệp tiêu đề nào phải được đưa vào ứng dụng sử dụng nó (thường là bắt buộc phải có một tệp). Ở trên đã nêu rằng thông qua các hằng ký hiệu được xác định trong tệp tiêu đề , hệ điều hành cung cấp cho ứng dụng thông tin về các khả năng được hỗ trợ. Tiêu chuẩn POSIX cung cấp một cơ chế đối xứng được gọi là macro kiểm tra tính năng, nó cho phép các ứng dụng quảng cáo mong muốn truy cập các nguyên mẫu và tên nhất định. Macro kiểm tra khả năng chính là _POSIX_C_SOURCE. Yêu cầu đối với các ứng dụng tuân thủ nghiêm ngặt POSIX bao gồm xác định hằng số ký hiệu _POSIX_C_SOURCE với giá trị 200112L trước khi bao gồm bất kỳ tập tin tiêu đề. Do đó, ứng dụng tuân thủ POSIX tuyên bố rằng nó yêu cầu tên POSIX. Vai trò tương tự được thực hiện bởi macro _XOPEN_SOURCE (với giá trị 600 ). Một ví dụ về cách sử dụng macro _POSIX_C_SOURCE trong tập tin được bao gồm Hệ điều hành Linux có thể đóng vai trò như đoạn được hiển thị trong Liệt kê 1.2.

    #if được xác định(_REENTRANT) || (_POSIX_C_SOURCE - 0 >= 199506L) #define LIBXML_THREAD_ENABLED#endif Liệt kê 1.2. Ví dụ về cách sử dụng macro kiểm tra khả năng _POSIX_C_SOURCE.

    Tiêu chuẩn POSIX cung cấp một số biện pháp để giải quyết vấn đề quan trọng và khó khăn (chủ yếu do tính chất không khách quan của ngôn ngữ C) là không có sự trùng lặp về tên giữa ứng dụng và hệ điều hành. Các tiền tố posix_, POSIX_ và _POSIX_ được dành riêng cho nhu cầu của tiêu chuẩn. Với một dấu gạch dưới theo sau là một dấu gạch dưới hoặc viết hoa khác chữ la tinh, chỉ tên hệ thống (không phải ứng dụng) mới có thể bắt đầu. Đối với các tệp được bao gồm, tiền tố của tên được sử dụng trong chúng sẽ được mô tả. Ví dụ: đối với các hoạt động quản lý tập tin xuất hiện trong , F_ , O_ , S_ được sử dụng làm tiền tố. Các công cụ giao tiếp giữa các tiến trình được mô tả trong tệp , tiền tố là ​​IPC_ . Thật không may, có rất nhiều tệp tiêu đề và không có nguyên tắc đặt tên chung vì lý do lịch sử. Vì vậy, để thao tác các đặc điểm của thiết bị đầu cuối trong tệp nhiều tên gọi khác nhau được định nghĩa: EXTB, VDSUSP, DEFECHO, FLUSHO, v.v. Ngoài ra còn có bốn trăm mười bảy tên như _Exit, abort, abs, acos, v.v., có thể được sử dụng để chỉnh sửa quan hệ đối ngoại chương trình ứng dụng. Kết quả là, lập trình viên ứng dụng có thể vô tình “làm gián đoạn” macro hệ thống, biến bên ngoài hoặc hàm, vì vậy, nên sử dụng tất cả các công cụ chẩn đoán của môi trường biên dịch và nghiên cứu kỹ các thông báo chúng tạo ra.

    Tính di động của các ứng dụng tuân thủ POSIX

    Về cơ bản, khả năng di chuyển của các ứng dụng tuân thủ POSIX có thể đạt được nhờ hai yếu tố chính. Thứ nhất, sự hiện diện của một số lượng lớn các dịch vụ hệ thống được tiêu chuẩn hóa và thứ hai là khả năng xác định các đặc điểm một cách linh hoạt nền tảng mục tiêu và điều chỉnh ứng dụng cho chúng. (Tất nhiên, chúng tôi muốn nói đến tính di động trong khuôn khổ được quy định bởi tiêu chuẩn.) Các ứng dụng tuân thủ tiêu chuẩn POSIX có thể là một hoặc nhiều quy trình, với khả năng tự động điều chỉnh cấu hình cho phù hợp với các thuộc tính của nền tảng đích. Phương tiện tạo ra và hoàn thiện các quy trình, thay đổi chương trình của họ, bỏ phiếu và/hoặc thay đổi các đặc điểm khác nhau. Các quy trình có thể bị tạm dừng và kích hoạt lại vào những thời điểm được chỉ định. Cơ chế tín hiệu cho phép bạn thông báo về các sự kiện và chấm dứt các quá trình từ bên ngoài. Có phương tiện để nhóm chúng quản lý công việc. Các ứng dụng được trang bị các điều khiển để kiểm soát việc lập kế hoạch và ưu tiên quy trình. Một loạt các công cụ giao tiếp liên quá trình ( hàng đợi tin nhắn, bộ nhớ chia sẻ, ngữ nghĩa) và quản lý bộ nhớ. Cuối cùng, nhiều luồng điều khiển có thể được tổ chức trong một tiến trình. Mức độ xác định thực thi cần thiết đạt được nhờ các công cụ hỗ trợ thời gian thực (bao gồm quản lý kỷ luật phân bổ bộ xử lý, tín hiệu thời gian thực, lưu giữ trang). bộ nhớ truy cập tạm thời, bộ đếm thời gian có độ phân giải cao, v.v.). Các chức năng làm việc với tệp đáp ứng nhu cầu của ứng dụng về đọc và ghi dữ liệu dài hạn cũng như bảo vệ dữ liệu đó khỏi bị truy cập trái phép. Cơ chế chặn các đoạn tập tin cho phép bạn đảm bảo tính nguyên tử của các giao dịch. Vào/ra không đồng bộ giúp kết hợp các hoạt động trao đổi, từ đó tối ưu hóa ứng dụng. Việc xử lý dữ liệu phức tạp có thể được thực hiện tương đối dễ dàng bằng nhiều chương trình tiện ích. Tiêu chuẩn POSIX xem xét cẩn thận các vấn đề về quyền truy cập vào thiết bị bên ngoài được kết nối thông qua các đường nối tiếp, đặc biệt là đến các thiết bị đầu cuối. Có lẽ các công cụ để làm việc với các phương tiện phổ biến như băng từ cần chi tiết hơn. Ngôn ngữ lệnh shell được tiêu chuẩn hóa là một công cụ thích hợp để viết các thủ tục di động nhỏ và gỡ lỗi tương tác nhanh chóng. Hãy để chúng tôi nêu bật cơ chế đường ống, cho phép bạn kết hợp các lệnh thành chuỗi với việc lọc các kết quả trung gian. Các tiện ích cung cấp một môi trường thực thi phong phú cho các thủ tục shell. Do chế độ nền, bạn có thể tổ chức thực hiện đồng thời một số chương trình và tương tác với chúng thông qua một thiết bị đầu cuối thông thường mà không có khả năng đa cửa sổ (tuy nhiên, windows chắc chắn sẽ không bị ảnh hưởng gì). POSIX tiêu chuẩn hóa giao diện dòng lệnh . Về nguyên tắc, nó là đủ, thuận tiện vừa phải và quan trọng là tạo ra ít vấn đề nhất về khả năng di chuyển. Có khả năng các phiên bản tương lai của tiêu chuẩn sẽ điều chỉnh GUI, nhưng tất nhiên, điều này gây thêm khó khăn cho các nhà phát triển ứng dụng di động. Môi trường ngôn ngữ và văn hóa là một trong những khái niệm quan trọng nhất của tiêu chuẩn POSIX theo quan điểm di động. Các ứng dụng có thể phát hiện môi trường chúng cần và thích ứng với nhu cầu của người dùng. Hệ thống nhiều người dùng yêu cầu tổ chức tương tác giữa một số lượng lớn người. POSIX giải quyết vấn đề này bằng cách điều chỉnh các phương tiện trao đổi thông tin trực tiếp và qua đường bưu điện. Tiêu chuẩn POSIX cung cấp Cơ sở vật chất hỗ trợ phát triển (chủ yếu cho ngôn ngữ C), tất nhiên, điều này không làm giảm nhu cầu về các hệ thống được phát triển, chuyên biệt khi Chúng ta đang nói về về làm việc với các dự án phần mềm thực sự lớn. Các ứng dụng được cung cấp một phương tiện được tiêu chuẩn hóa để khám phá cả hai đặc điểm "khối lớn" hệ thống mục tiêu(ví dụ: phạm vi các tính năng tùy chọn được hỗ trợ) và các đặc điểm nhỏ hơn (dung lượng ổ đĩa trống hiện tại). Vấn đề về tính di động của ứng dụng cực kỳ phức tạp và sẽ là quá đáng khi nói rằng tiêu chuẩn POSIX-2001 giải quyết được nó một cách hoàn toàn. Thứ nhất, ngoài phạm vi của nó vẫn như vậy vấn đề quan trọng như đồ họa, giao diện đa cửa sổ và toàn bộ dòng người khác. Thứ hai, có “điểm trắng” ở khu vực quy định hành vi không xác định triển khai. Tuy nhiên, chúng ta hãy nhấn mạnh lại điều này một lần nữa, việc tuân thủ tiêu chuẩn POSIX là một yếu tố bắt buộc trong nguyên tắc phát triển hệ thống ứng dụng hiện đại.