POSIX bất ngờ. Lịch sử phát triển của tiêu chuẩn POSIX. Ai là ai trong phát triển POSIX
POSIX (giao diện hệ điều hành di động) là một tiêu chuẩn mô tả giao diện giữa hệ điều hành và một chương trình ứng dụng. Mục đích của việc tạo ra tiêu chuẩn này là để đảm bảo tính tương thích của các hệ điều hành giống unix, cũng như tính di động của chương trình ở cấp mã nguồn. Tuy nhiên, tiêu chuẩn POSIX không chỉ có thể được sử dụng bởi các hệ thống unix. Tên POSIX được đề xuất bởi Richard Stallman. Phát âm là "poix" là giao diện dành cho hệ điều hành Unix di động.
Một ít lịch sử
Lựa chọn đầu tiên Tiêu chuẩn POSIX là IEEE Std 1003. Nó được phát hành vào năm 1988 và xác định giao diện giữa ngôn ngữ lập trình C và vỏ nhân của các hệ thống giống unix.
Năm 1990, phiên bản mới của IEEE Std 1003.2 được phát hành. So với phiên bản đầu tiên, tài liệu mới đã có những thay đổi nhỏ.
Năm 1992, tiêu chuẩn IEEE Std 1003.2 gồm hai tập được phát hành. Tài liệu mô tả một trình thông dịch lệnh và hơn một trăm tiện ích.
Phiên bản tiếp theo, phát hành năm 1993, trở thành một bổ sung nhỏ cho các phiên bản trước: thông tin xuất hiện trên đồng bộ hóa tệp, ngữ nghĩa, cài đặt thời gian, bộ đếm thời gian, hàng đợi tin nhắn, I/O không đồng bộ.
Năm 1995, một tiêu chuẩn khác dành riêng cho luồng đã được phát hành và tài liệu phiên bản năm 1996 là một loại bổ sung cho các phiên bản trước.
Tiêu chuẩn POSIX năm 1999 mô tả các phần mở rộng thời gian thực bổ sung.
Năm 2001, một tiêu chuẩn đã được phát hành nhằm thống nhất tất cả các phiên bản trước đó. Nó đã được quyết định sử dụng nó làm cơ sở cho việc áp dụng các tiêu chuẩn trong tương lai.
Phiên bản hiện tại của POSIX.1, được phê duyệt năm 2008, được sử dụng.
Ý tưởng cơ bản của tiêu chuẩn POSIX
Theo các quy định đã được ghi thành văn bản, để tương tác chính xác với các ứng dụng, HĐH phải có các thành phần sau:
- công cụ mạng;
- công cụ phát triển;
- luồng điều khiển;
- công cụ thời gian thực;
- dịch vụ trọn gói;
- tập tin tiêu đề;
- giao diện toán học;
- giao diện kế thừa.
Các tính năng của hệ điều hành tuân thủ tiêu chuẩn POSIX
- phân biệt quyền của người dùng và nhóm, cũng như root siêu người dùng với các quyền đặc quyền;
- sự hiện diện của một cái cây hệ thống tập tin, có một gốc duy nhất /;
- các gói hệ thống và phần mềm được cung cấp dưới dạng tập tin văn bản– nghĩa là, cấu hình tệp có thể được thay đổi bằng cách chỉnh sửa đơn giản;
- API lập trình C hợp nhất;
- tiêu chuẩn đơn tiện ích bảng điều khiển và các lệnh (POSIX 2).
Các hệ điều hành được chứng nhận theo tiêu chuẩn POSIX bao gồm: IBM AIX, UnixWare, Solaris, IRIX, QNX, LynxOS, Mac OS X. Các hệ điều hành như Minix, các nhánh khác nhau của BSD, OpenSolaris, VxWorks, OpenWMS hoàn toàn tương thích với một trong các phiên bản của tiêu chuẩn POSIX. Liên quan đến Bản phân phối Linux, thì hầu hết chúng đều tuân thủ tiêu chuẩn LSB (Cơ sở tiêu chuẩn Linux), do đó dựa trên POSIX.
Hôm nay chúng ta sẽ cố gắng tìm hiểu tiêu chuẩn POSIX mô tả những gì. Các tiêu chuẩn được thiết kế để cho phép máy tính của tôi giao tiếp với máy tính của bạn. Nhờ họ, trên hai máy tính tương tự các trang web hoặc nguồn cấp dữ liệu video trực tiếp sẽ trông giống nhau.
Tuy nhiên, những tiêu chuẩn này dành cho các nhiệm vụ có quy mô lớn hơn là việc trao đổi đơn giản bất kỳ dữ liệu nào giữa những người dùng. Một số tiêu chuẩn xác định một mô hình cụ thể mở ra những khả năng vượt xa khả năng tương tác giữa tệp hoặc mạng. Tiêu chuẩn POSIX là một trong số đó.
POSIX là gì?
POSIX (phát âm là "posix") là giao diện hệ điều hành di động. Nhưng nó có nghĩa gì? Trước tiên, bạn cần xác định phạm vi của khái niệm “tính di động”, trong trường hợp cụ thể này và xác định khái niệm “giao diện”. Để tìm ra điều này, cần phải bắt đầu từ thực tế là cả hai khái niệm đều gắn bó chặt chẽ với nhau.
"Di động", trong bối cảnh tiêu chuẩn POSIX, đề cập đến mã nguồn(không phải các tệp nhị phân được tập hợp từ chính những nguồn này). Bây giờ chúng ta hãy tìm hiểu "giao diện" là gì. Trong lập trình, "giao diện" là cách mã của bạn tương tác với mã khác. Giao diện mong đợi mã của bạn cung cấp thông tin nhất định. Ngược lại, mã của bạn sẽ mong nhận được một số thông tin nhất định từ giao diện. Ví dụ tốt- Hàm fopen() trong ngôn ngữ C. Nó mong đợi thông tin gồm hai phần: đường dẫn đến tệp và chế độ mà nó sẽ được mở. Sử dụng dữ liệu này, hệ điều hành trả về một loại thông tin khác gọi là "bộ mô tả tệp". Một file xử lý có thể được sử dụng để đọc một tập tin hoặc ghi vào một tập tin. Đây là giao diện. Từ tất cả những điều này, mã tuân thủ POSIX có thể được biên dịch cho bất kỳ hệ điều hành tuân thủ POSIX nào mà không có thay đổi lớn, điều đó có nghĩa là nó sẽ có thể mang theo được.
Có một danh sách các giao diện tuân theo tiêu chuẩn POSIX, nhưng mặc dù rất dài nhưng rất có thể nó chưa đầy đủ. POSIX không giới hạn ở các lệnh gọi hệ thống, nó còn xác định các tiêu chuẩn cho shell hệ điều hành (shell, hay còn gọi là giao diện dòng lệnh), các tiện ích hệ thống như "awk" hoặc "echo", thư viện hệ thống và nhiều hơn nữa.
Tiêu chuẩn POSIX xuất hiện dưới dạng bản phác thảo của Richard Stallman vào năm 1985 và sau đó được chính thức hóa thành IEEE Std 1003.-1998. Như tiêu đề gợi ý, năm 1998 là năm xuất bản chính thức. Kể từ đó, một số lượng lớn các bổ sung và mở rộng cho POSIX đã được phát hành, dần dần phát triển thành một họ tiêu chuẩn hoàn chỉnh, được gọi chính thức là IEEE 1003, được công nhận là quốc tế, với ký hiệu SO/IEC 9945, được gọi đơn giản là họ POSIX tiêu chuẩn.
Hệ điều hành không nhất thiết phải tuân thủ POSIX, càng không cần phải có chứng chỉ POSIX, nhưng điều này cho phép các nhà phát triển tạo ứng dụng, công cụ và nền tảng mà không cần phải viết lại mã nhiều lần mà chỉ thêm và kết nối với những mã hiện có. Cũng không cần thiết phải viết mã tuân thủ POSIX, nhưng điều này cải thiện đáng kể tính di động của các dự án giữa các hệ điều hành. Điều này có nghĩa là khả năng viết mã tuân thủ POSIX có giá trị theo đúng nghĩa của nó và chắc chắn rất hữu ích cho sự nghiệp của một người. Các dự án lớn như Gnome hay KDE tuân thủ tiêu chuẩn POSIX, đảm bảo chúng hoạt động trên các hệ điều hành khác nhau. Hệ thống con POSIX được triển khai ngay cả trong vấn đề mới nhất Các cửa sổ. Linux được biết là hỗ trợ hầu hết các lệnh gọi hệ thống POSIX, cũng như phần mở rộng chính cho nó được gọi là "Tiêu chuẩn Cơ sở Linux", nhằm mục đích hợp nhất các bản phân phối Linux về mặt hỗ trợ mã nguồn và dữ liệu nhị phân.
Tôi hy vọng chúng ta đã làm sáng tỏ được câu hỏi “POSIX là gì”. sở hữu thông tin thú vị về chủ đề này? Hãy chia sẻ nó trong phần bình luận.
POSIX và RT OS: nỗ lực hệ thống hóa
Sergey Zolotarev, Nikolay Gorbunov
Mục đích của bài viết này là cố gắng làm rõ lịch sử phát triển của tiêu chuẩn POSIX liên quan đến hệ điều hành thời gian thực (RTOS).
Như phần giới thiệu: tại sao cần phải chuẩn hóa giao diện phần mềm?
Một trong những đặc tính quan trọng nhất Tiêu chuẩn POSIX là nó xác định "giao diện lập trình tiêu chuẩn hóa" mà các nhà phát triển hệ thống phần cứng và phần mềm phức tạp phải tuân thủ. Những người tạo ra các hệ thống này buộc phải giải quyết các yêu cầu như thời gian đưa ra thị trường ngắn (do cạnh tranh gay gắt), giảm thiểu chi phí và tăng tốc lợi tức đầu tư. Đồng thời, phần lớn chi phí gây ra do quá trình phát triển bị chậm lại là do các lập trình viên phải “phát minh lại bánh xe”, thực hiện đi thực hiện lại chức năng đã có từ lâu. Nhưng điều này có thể tránh được bằng cách:
- sử dụng lại mã từ các dự án trước đây và song song;
- chuyển mã từ hệ điều hành khác;
- thu hút các nhà phát triển từ các dự án khác (bao gồm cả việc sử dụng các hệ điều hành khác).
Tất cả điều này có thể thực hiện được nhờ sử dụng hệ điều hành có API được tiêu chuẩn hóa. Hơn nữa, nếu trong trường hợp đầu tiên, tổ chức chỉ cần có một số loại tiêu chuẩn nội bộ (đặc biệt điển hình cho hệ điều hành độc quyền) là đủ, thì hai trường hợp thứ hai yêu cầu sự hiện diện của các tiêu chuẩn được công nhận chung - ví dụ: POSIX.
Do đó, bằng cách sử dụng HĐH tương thích POSIX làm nền tảng cho các dự án của mình, nhà phát triển có cơ hội chuyển mã hoàn chỉnh ở cấp nguồn từ cả các dự án trước đây hoặc song song của mình và từ các dự án của bên thứ ba. Điều này không chỉ làm giảm đáng kể thời gian phát triển phần mềm mà còn cải thiện chất lượng của nó, vì mã được kiểm tra luôn chứa ít lỗi hơn.
Ai là ai trong phát triển POSIX
Và chúng ta sẽ bắt đầu không phải với tiêu chuẩn POSIX mà bằng việc hợp lý hóa vai trò của các tổ chức liên quan đến việc xây dựng nó.
Người tham gia đầu tiên là IEEE(Viện Kỹ sư Điện và Điện tử), hiệp hội chuyên gia phi lợi nhuận công cộng. IEEE ra đời từ năm 1884 (chính thức kể từ năm 1963), tập hợp 380.000 thành viên từ 150 quốc gia, xuất bản 1/3 tài liệu kỹ thuật liên quan đến ứng dụng máy tính, điều khiển, điện và công nghệ thông tin, cũng như hơn 100 tạp chí phổ biến trong giới khoa học. chuyên gia; Ngoài ra, hiệp hội còn tổ chức hơn 300 hội nghị lớn mỗi năm. IEEE đã tham gia phát triển hơn 900 tiêu chuẩn hiện hành (www.ieee.ru/ieee.htm). Ngày nay, viện này tham gia vào việc chuẩn bị, điều phối, phê duyệt và xuất bản các tiêu chuẩn, nhưng do tình trạng chính thức nên viện không có thẩm quyền thông qua các tài liệu như tiêu chuẩn quốc tế hoặc quốc gia. Vì vậy, thuật ngữ “tiêu chuẩn” theo cách hiểu của IEEE nên được hiểu là một “thông số kỹ thuật”, phù hợp hơn với tình trạng của các tài liệu được hiệp hội chấp nhận. Theo IEEE, tham gia vào các chương trình của một số tổ chức quốc tế và khu vực - IEC, ISO, ITU (Liên minh Viễn thông Quốc tế), ETSI (Viện Tiêu chuẩn Viễn thông Châu Âu), CENELEC (Ủy ban Tiêu chuẩn Kỹ thuật Điện Châu Âu) và trong các chương trình quốc gia, ví dụ như trong chương trình của một tổ chức như ANSI.
IEEE bao gồm PASC (Ủy ban Tiêu chuẩn Ứng dụng Di động), một ủy ban hiệp hội phát triển họ tiêu chuẩn POSIX (www.pasc.org/). PASC trước đây được gọi là Ủy ban Kỹ thuật Hệ điều hành.
Người tham gia thứ hai trong công việc - ANSI(Viện Tiêu chuẩn Quốc gia Hoa Kỳ, Viện Tiêu chuẩn Quốc gia Hoa Kỳ) – tư nhân tổ chức phi lợi nhuận, cơ quan quản lý và điều phối các hoạt động tiêu chuẩn hóa tại Hoa Kỳ. Nó chỉ tuyển dụng 75 người, nhưng các thành viên của ANSI bao gồm hơn 1.000 công ty, tổ chức, cơ quan và tổ chức chính phủ (www.ansi.org). ANSI đại diện cho Hoa Kỳ trong hai tổ chức tiêu chuẩn quốc tế lớn là ISO và IEC.
Người tham gia thứ ba - ISO(Tổ chức tiêu chuẩn hóa quốc tế, Tổ chức tiêu chuẩn hóa quốc tế). Nó được thành lập vào năm 1946 theo quyết định của Ủy ban Điều phối Tiêu chuẩn và Đại hội đồng Liên Hợp Quốc và chính thức bắt đầu hoạt động vào ngày 23 tháng 2 năm 1947 (www.iso.org). ISO là một mạng tổ chức quốc gia tiêu chuẩn hóa từ 146 quốc gia (một quốc gia - một thành viên ISO) có ban thư ký trung tâm tại Geneva (Thụy Sĩ). Các tiêu chuẩn ISO được phát triển trong các ủy ban kỹ thuật, kết quả đầu tiên là Dự thảo Tiêu chuẩn Quốc tế (DIS), sau nhiều lần phê duyệt sẽ trở thành Tiêu chuẩn Quốc tế Dự thảo Cuối cùng (FDIS). Sau đó, vấn đề phê duyệt tài liệu này sẽ được đưa ra biểu quyết; nếu kết quả dương tính thì nó sẽ trở thành tiêu chuẩn quốc tế.
Và cuối cùng - IEC(Ủy ban kỹ thuật điện quốc tế, Ủy ban kỹ thuật điện quốc tế - IEC), được thành lập năm 1906. IEC chuẩn bị và công bố các tiêu chuẩn quốc tế cho tất cả các công nghệ điện, điện tử và liên quan (www.iec.ch/). Tính đến ngày 1 tháng 11 năm 2004, ủy ban quốc gia của 64 quốc gia là thành viên tích cực của ủy ban này. IEC cũng đưa ra các khuyến nghị được xuất bản bằng tiếng Anh và tiếng Pháp và được coi là tiêu chuẩn quốc tế. Trên cơ sở đó, các tiêu chuẩn khu vực và quốc gia được phát triển. Các ủy ban kỹ thuật (TC) chịu trách nhiệm chuẩn bị các tiêu chuẩn trong các lĩnh vực hoạt động khác nhau của IEC, công việc mà các ủy ban quốc gia quan tâm đến hoạt động của một TC cụ thể cũng tham gia.
IEC là tổ chức chủ chốt trong việc xây dựng các tiêu chuẩn quốc tế cho công nghệ thông tin. Trong lĩnh vực này có một ủy ban kỹ thuật chung về công nghệ thông tin, JTC 1, được thành lập năm 1987 theo thỏa thuận giữa IEC và ISO. JTC1 có 17 tiểu ban giám sát mọi sự phát triển - từ phần mềmđến ngôn ngữ lập trình, đồ họa máy tính và chỉnh sửa hình ảnh, kết nối phần cứng và kỹ thuật bảo mật.
Việc chuẩn bị các tiêu chuẩn IEC mới bao gồm một số giai đoạn (sơ bộ, đề xuất, chuẩn bị, ủy ban kỹ thuật, yêu cầu, phê duyệt, công bố). Nếu tài liệu IEC dự định chỉ trở thành thông số kỹ thuật, chứ không phải là một tiêu chuẩn quốc tế, một phiên bản sửa đổi của tài liệu sẽ được gửi đến văn phòng trung tâm để xuất bản. Bốn tháng được dành cho việc xây dựng dự thảo tiêu chuẩn quốc tế cuối cùng (FDIS). Nếu được tất cả các thành viên của ủy ban kỹ thuật chấp thuận, nó sẽ được gửi đến văn phòng trung tâm để xuất bản mà không qua giai đoạn phê duyệt của FDIS. FDIS sau đó sẽ được chuyển đến các ủy ban quốc gia để phê duyệt trong vòng hai tháng. FDIS được coi là thông qua nếu có hơn 2/3 số ủy ban quốc gia bỏ phiếu tán thành và số phiếu phản đối không vượt quá 25%. Nếu một tài liệu không được phê duyệt, nó sẽ được gửi đến các ủy ban kỹ thuật và tiểu ban để xem xét. Tiêu chuẩn phải được công bố không muộn hơn hai tháng sau khi FDIS phê duyệt.
Một số tổ chức khác tham gia vào việc phát triển và áp dụng các tiêu chuẩn POSIX.
Nhóm mở là tổ chức tiêu chuẩn phần mềm quốc tế quy tụ gần 200 nhà sản xuất và cộng đồng người dùng làm việc trong lĩnh vực công nghệ thông tin (www.opengroup.org/). Nhóm Open được thành lập vào năm 1995 bằng cách sáp nhập hai tổ chức tiền thân của nó: X/Open và Open Software Foundation (OSF). Open Group chuyên phát triển các phương pháp chứng nhận phần mềm và kiểm tra việc tuân thủ các yêu cầu cụ thể. Đặc biệt, Open Group tham gia vào việc chứng nhận cho các lĩnh vực như Nền tảng COE, CORBA, LDAP, Cơ sở tiêu chuẩn Linux, Khung tương tác trường học (SIF), Cổng S/MIME, Đặc tả UNIX đơn, Thông số kỹ thuật giao thức ứng dụng không dây (WAP) và, cuối cùng là họ tiêu chuẩn POSIX (www.opengroup.org/certification/).
Nhóm sửa đổi tiêu chuẩn chung của Austin (CSRG)– nhóm công tác kỹ thuật chung được ISO, IEC và Open Group thành lập vào năm 2002 để tạo và duy trì các phiên bản mới nhất của tiêu chuẩn 1003.1, sẽ được hình thành trên cơ sở ISO/IEC 9945-1-1996, ISO/IEC 9945- 2-1993, IEEE Std 1003.1-1996, IEEE Std 1003.2-1992 và Thông số kỹ thuật UNIX đơn (www.opengroup.org/press/14nov02.htm).
Viện Tiêu chuẩn và Công nghệ Quốc gia (NIST) là cơ quan liên bang trực thuộc Cục Quản lý Công nghệ của Bộ Thương mại (www.nist.gov/public_affairs/general2.htm), được thành lập tại Hoa Kỳ vào năm 1901. Sứ mệnh của NIST là phát triển và thúc đẩy các tiêu chuẩn và công nghệ nhằm cải thiện chất lượng sản phẩm. NIST bao gồm Phòng thí nghiệm Công nghệ Thông tin (ITL), một trong những kết quả của nó là Tiêu chuẩn Xử lý Thông tin Liên bang (FIPS, www.opengroup.org/testing/fips/general_info.html). NIST/ITL đã đề xuất bộ thử nghiệm đầu tiên cho chứng nhận POSIX vào năm 1991 theo FIPS PUB 151-1 1990.
POSIX là gì?
Thuật ngữ chính thức POSIXđược đề xuất bởi Richard Stallman như một từ viết tắt của P có thể nói được ồđang luyện tập S giao diện hệ thống cho un IX(giao diện hệ điều hành di động cho Unix). POSIX được phát triển cho các hệ điều hành giống UNIX (phiên bản đầu tiên của chúng có từ đầu những năm 1970) với mục tiêu đảm bảo tính di động của ứng dụng ở cấp độ nguồn.
Mô tả ban đầu về giao diện được xuất bản vào năm 1986, sau đó nó được gọi là IEEE-IX (phiên bản UNIX của IEEE). Tuy nhiên, tên này nhanh chóng thay đổi, trở thành POSIX và đã có trong ấn phẩm tiếp theo (trở lại năm 1986). tùy chọn mới. Trong một thời gian, POSIX được hiểu là tài liệu tham khảo (hoặc từ đồng nghĩa) của nhóm tài liệu liên quan IEEE 1003.1-1988 và các phần của ISO/IEC 9945, và là một tiêu chuẩn quốc tế hoàn chỉnh và được phê duyệt, ISO/IEC 9945.1:1990 POSIX đã được thông qua vào năm 1990. Thông số kỹ thuật POSIX xác định cơ chế tương tác tiêu chuẩn chương trình ứng dụng và HĐH và hiện bao gồm hơn 30 tiêu chuẩn thuộc IEEE, ISO, IEC và ANSI.
POSIX đã đi được một chặng đường dài trong suốt lịch sử của nó, với nhiều thay đổi về tên gọi các thông số kỹ thuật, nội dung cụ thể, quy trình và hậu cần để thử nghiệm chúng. Theo thời gian, một số phiên bản của tiêu chuẩn POSIX đã được phát hành trong nhiều tổ chức quốc tế khác nhau.
Lịch sử phát triển của tiêu chuẩn POSIX
Phiên bản đầu tiên của đặc tả IEEE Std 1003.1 được xuất bản vào năm 1988. Sau đó, nhiều phiên bản của IEEE Std 1003.1 đã được áp dụng làm tiêu chuẩn quốc tế.
Các giai đoạn phát triển POSIX:
1990
Ấn bản được phát hành năm 1988 đã được sửa đổi và trở thành cơ sở cho những lần xuất bản và bổ sung tiếp theo. Nó đã được phê duyệt là tiêu chuẩn quốc tế bởi ISO/IEC 9945-1:1990.
1993
Phiên bản 1003.1b-1993 được phát hành.
1996
IEEE Std 1003.1b-1993, IEEE Std 1003.1c-1995 và 1003.1i-1995 đã được sửa đổi, nhưng nội dung của tài liệu vẫn không thay đổi. Phiên bản năm 1996 của IEEE Std 1003.1 cũng được ISO/IEC 9945-1:1996 áp dụng làm tiêu chuẩn quốc tế.
1998
Tiêu chuẩn đầu tiên cho "thời gian thực" xuất hiện - IEEE Std 1003.13-1998. Nó là phần mở rộng của tiêu chuẩn POSIX dành cho các ứng dụng nhúng thời gian thực.
1999
Người ta đã quyết định thực hiện những thay đổi đáng kể đầu tiên trong 10 năm qua đối với nội dung chính của tiêu chuẩn, bao gồm cả việc tích hợp với tiêu chuẩn 1003.2 (Shell và tiện ích), vì tại thời điểm đó đây là những tiêu chuẩn riêng biệt. PASC quyết định hoàn tất việc thay đổi văn bản cơ sở sau khi hoàn thành các tiêu chuẩn IEEE 1003.1a, 1003.1d, 1003.1g, 1003.1j, 1003.1q và 1003.2b.
2004
Bản sửa đổi mới nhất của tiêu chuẩn 1003.1 được xuất bản vào ngày 30 tháng 4 và được phát hành dưới sự bảo trợ của Nhóm sửa đổi tiêu chuẩn chung Austin. Nó được sửa đổi bởi phiên bản tiêu chuẩn năm 2001. Về mặt chính thức, phiên bản năm 2004 được gọi là IEEE Std 1003.1, Phiên bản 2004, Thông số kỹ thuật cơ sở tiêu chuẩn kỹ thuật của Nhóm mở, Số phát hành 6 và bao gồm IEEE Std 1003.1-2001, IEEE Std 1003.1-2001/ Cor 1-2002 và IEEE Std 1003.1-2001/Cor 2-2004.
Các tiêu chuẩn POSIX quan trọng nhất cho RT OS
Đối với hệ điều hành thời gian thực, bảy thông số kỹ thuật tiêu chuẩn là quan trọng nhất (1003.1a, 1003.1b, 1003.1c, 1003.1d, 1003.1j, 1003.21), nhưng chỉ có ba thông số kỹ thuật được nhận được hỗ trợ rộng rãi trong các hệ điều hành thương mại:
- 1003.1a (Định nghĩa hệ điều hành) xác định các giao diện hệ điều hành chính, quản lý công việc, tín hiệu, chức năng thiết bị và hệ thống tệp, nhóm người dùng, đường dẫn, bộ đệm FIFO;
- 1003.1b (Tiện ích mở rộng thời gian thực) mô tả các tiện ích mở rộng thời gian thực như tín hiệu thời gian thực, lập lịch ưu tiên, bộ tính giờ, I/O đồng bộ và không đồng bộ, ngữ nghĩa, bộ nhớ dùng chung, tin nhắn. Tiêu chuẩn này ban đầu (cho đến năm 1993) được chỉ định là POSIX.4.
- 1003.1c (Chủ đề) xác định các chức năng hỗ trợ luồng (luồng) - quản lý luồng, thuộc tính luồng, mutexes, gửi đi. Ban đầu được chỉ định là POSIX.4a.
Ngoài các tiêu chuẩn này, các tiêu chuẩn sau đây rất quan trọng đối với Hệ điều hành RT, được triển khai như một phần công việc của dự án Std 1003.1-2001:
- IEEE 1003.1d-1999. Tiện ích mở rộng thời gian thực bổ sung. Ban đầu được chỉ định là POSIX.4b;
- IEEE 1003.1j-2000. Tiện ích mở rộng thời gian thực được cải tiến (nâng cao);
- IEEE 1003.1q-2000. Dấu vết.
Thủ tục chứng nhận
Để tuân thủ tiêu chuẩn POSIX, hệ điều hành phải được chứng nhận theo kết quả của bộ thử nghiệm thích hợp. Kể từ khi giới thiệu POSIX, bộ thử nghiệm đã trải qua những thay đổi về mặt hình thức và thực tế.
Năm 1991, NIST đã phát triển chương trình thử nghiệm POSIX như một phần của FIPS 151-1 (http://standards.ieee.org/regauth/posix/POSIX-A.FM5.pdf). Trường hợp thử nghiệm này dựa trên IEEE 1003.3" Tiêu chuẩn cho Phương pháp kiểm tra để đo lường sự phù hợp với POSIX" Dự thảo 10, ngày 3 tháng 5 năm 1989. Năm 1993, NIST hoàn thành Chương trình kiểm tra POSIX cho FIPS 151-1 và bắt đầu chương trình cho FIPS 151-2 (www.itl.nist.gov /fipspubs/ fip151-2.htm) được điều chỉnh theo FIPS 151-2 "Công nghệ thông tin - Di động" Hệ điều hành Giao diện (POSIX) - Phần 1: Giao diện chương trình ứng dụng hệ thống (API)", là tiêu chuẩn ISO/IEC 9945-1:1990. Bộ thử nghiệm cho FIPS 151-2 dựa trên "Tiêu chuẩn cho các phương pháp thử nghiệm" của IEEE 2003.1-1992 Đo lường sự phù hợp với POSIX".
NIST phân biệt giữa hai phương pháp chứng nhận: tự chứng nhận và chứng nhận bởi Phòng thí nghiệm thử nghiệm POSIX được IEEE công nhận (APTL). Trong trường hợp đầu tiên, công ty tiến hành thử nghiệm một cách độc lập nhưng theo kế hoạch đã được NIST phê duyệt. Trong trường hợp thứ hai, việc kiểm tra được thực hiện bởi một phòng thí nghiệm độc lập sử dụng bộ dụng cụ kiểm tra tự động. Tổng cộng, hai phòng thí nghiệm APTL đã được công nhận: Mindcraft (www.mindcraft.com) và Perennial (www.peren.com).
Năm 1997, NIST/ITL công bố ý định ngừng chứng nhận FIPS 151-2 vào cuối năm hiện tại (chính thức là ngày 31 tháng 12 năm 1997), trong khi Open Group thông báo rằng họ dự định tiếp quản chứng nhận kể từ ngày 1 tháng 10 năm 1997 . cùng năm, dịch vụ chứng nhận phù hợp với FIPS 151-2, dựa trên chương trình NIST/ITL. Các chức năng tương tự đã được Hiệp hội Tiêu chuẩn IEEE (IEEE-SA) tiếp quản vào ngày 1 tháng 1 năm 1998, cũng dựa trên FIPS 151-2.
Năm 2003, IEEE-SA và Open Group thông báo bắt đầu một chương trình chung mới để chứng nhận các phiên bản mới nhất của POSIX, bắt đầu với IEEE 1003.1™ 2001. Open Group hiện có một số bộ thử nghiệm bao gồm IEEE Std 1003.1-1996, IEEE Std 1003.2-1992, IEEE Std 1003.1-2003 và IEEE Std 1003.13-1998 (www.opengroup.org/testing/testsuites/posix.html). Một sản phẩm được coi là được chứng nhận POSIX nếu nó đã vượt qua thủ tục đầy đủ chứng nhận dựa trên kết quả thử nghiệm, đáp ứng mọi yêu cầu và được đưa vào sổ đăng ký chính thức sản phẩm được chứng nhận.
Bộ thử nghiệm bao gồm:
- VSX-PCTS1990 (www.opengroup.org/testing/testsuites/vsxpcts1990.htm) – một bộ các bài kiểm tra sự phù hợp cho giao diện hệ thống IEEE Std 1003.1-1990;
- VSPSE54 (www.opengroup.org/testing/testsuites/VSPSE54.htm) – một bộ các bài kiểm tra sự phù hợp cho IEEE Std 1003.13-1998 Profile PSE54 (thời gian thực đa mục đích);
- VSX-PCTS2003 (www.opengroup.org/testing/testsuites/vsxpcts2003.htm) – một bộ các bài kiểm tra sự phù hợp cho giao diện hệ thống IEEE Std 1003.1-2003 (chỉ những phần bắt buộc);
- VSC-PCTS2003 (www.opengroup.org/testing/testsuites/vscpcts2003.htm) – một bộ các bài kiểm tra sự phù hợp cho IEEE Std 1003.1-2003 (vỏ và tiện ích – chỉ những phần bắt buộc).
Ngoài ra, Open Group đã phát triển các thử nghiệm cho tiêu chuẩn Thời gian thực POSIX và hồ sơ tiêu chuẩn POSIX nhúng. Bộ thử nghiệm Thời gian thực POSIX (www.opengroup.org/testing/testsuites/realtime.html) bao gồm các thử nghiệm sau:
- IEEE POSIX 1003.1b-1993/1003.1i-1995 Tiện ích mở rộng thời gian thực và Phiên bản IEEE POSIX 1003.1,2003;
- Phần mở rộng chủ đề (pthreads) của IEEE Std POSIX 1003.1c-1995 và Phiên bản IEEE POSIX 1003.1,2003;
- IEEE POSIX 1003.1d-1999 Phần mở rộng thời gian thực bổ sung và phiên bản IEEE POSIX 1003.1,2003;
- Tiện ích mở rộng thời gian thực nâng cao của IEEE POSIX 1003.1j-2000 và phiên bản IEEE POSIX 1003.1,2003;
- Phiên bản IEEE POSIX 1003.1q-2000 Trace và Phiên bản IEEE POSIX 1003.1,2003 và Phiên bản IEEE POSIX 1003.1,2003;
Bộ kiểm tra hồ sơ tiêu chuẩn POSIX nhúng (www.opengroup.org/testing/testsuites/embedded.html) bao gồm các kiểm tra sau:
- IEEE POSIX 1003.1-1990 (5310 bài kiểm tra);
- IEEE POSIX 1003.1b-1993/1003.1i-1995 Tiện ích mở rộng thời gian thực (1430 bài kiểm tra);
- IEEE Std POSIX 1003.1c-1995 Phần mở rộng chủ đề (pthreads) (1232 bài kiểm tra);
- Hồ sơ IEEE POSIX 1003.13-1998 52.
Một chút về sự nhầm lẫn trong thuật ngữ
Liên quan đến nhóm tiêu chuẩn POSIX, không phải một mà là ba thuật ngữ thường được sử dụng trong tiếng Anh. Thật không may, chúng có ý nghĩa tương tự nhau và thường được dịch theo cùng một cách, điều này tạo ra một số nhầm lẫn. Những điều khoản này là:
- khả năng tương thích (nghĩa đen là “khả năng tương thích”);
- tuân thủ (nghĩa đen là “tuân thủ”);
- sự phù hợp (nghĩa đen là “sự nhất quán”).
Thuật ngữ đầu tiên, như được áp dụng cho POSIX, không được xác định chính thức. Điều thứ hai có nghĩa là tổ chức sản xuất sản phẩm phần mềm tuyên bố độc lập rằng sản phẩm này (toàn bộ hoặc một phần) tuân thủ các tiêu chuẩn NIST-PCTS được liệt kê. Thuật ngữ thứ ba ngụ ý rằng phần mềmđã vượt qua hệ thống kiểm tra đã thiết lập với sự trợ giúp của phòng thí nghiệm được công nhận hoặc trong Nhóm Mở và có bằng chứng tài liệu về điều này (cái gọi là Tuyên bố Tuân thủ). Hơn nữa, trong nội dung của bài viết, các thuật ngữ gốc sẽ được đưa ra ở khắp mọi nơi để loại bỏ sự mơ hồ.
Hệ điều hành RV được chứng nhận
Nếu bạn dính vào quy tắc nghiêm ngặt, yêu cầu dữ liệu trên HĐH RT được chứng nhận phải được công bố trong cơ quan đăng ký chính thức và việc thử nghiệm phải được thực hiện theo mức độ tuân thủ, khi đó hiện tại chỉ có hai HĐH RT được chứng nhận (dữ liệu được đưa ra theo thứ tự thời gian):
LynxOS v.3(một sản phẩm của Lynx Real-Time Systems, hiện được gọi là LynuxWorks, Inc., www.lynuxworks.com) nhằm mục đích phát triển phần mềm cho các hệ thống nhúng hoạt động trong chế độ cứng các nhà sản xuất thiết bị viễn thông, OEM và thời gian thực, đặc biệt là các nhà sản xuất hệ thống máy bay quân sự. Việc phát triển có thể được thực hiện cả trên chính hệ thống đích (tự lưu trữ) và trên máy tính công cụ (máy chủ), phần mềm làm sẵn được thiết kế để hoạt động trên hệ thống đích (đích). LynxOS v.3 được chứng nhận tuân thủ tiêu chuẩn POSIX trên nền tảng Intel và PowerPC. Thông tin về điều này có thể được tìm thấy trên trang web của IEEE http://standards.ieee.org/regauth/posix/posix2.html. LynxOS được chứng nhận POSIX 1003.1-1996 bởi Mindcraft, Phòng thí nghiệm thử nghiệm POSIX được IEEE POSIX công nhận dựa trên Bộ thử nghiệm tuân thủ NIST FIPS 151-2. Số tài liệu chứng nhận: Tệp tham chiếu: IP-2LYX002, Tệp tham chiếu: IP-2LYX001.
TÍNH CHÍNH TRỰC v.5(sản phẩm của Green Hills Software, www.ghs.com) được chứng nhận tuân thủ POSIX 1003.1-2003, Giao diện hệ thống cho kiến trúc PowerPC vào tháng 7 năm 2004 (http://get.posixcertified.ieee.org/select_product. tpl) . Bộ thử nghiệm VSX-PCTS 2003.
POSIX và hệ điều hành QNX
QNX v.4.20 (được phát triển bởi QNX Software Systems, www.qnx.com) được chứng nhận tuân thủ POSIX 1003.1-1988 cho Nền tảng Intel bởi DataFocus Incorporated. Thử nghiệm được tiến hành vào ngày 13 tháng 9 năm 1993 và tài liệu được ban hành vào ngày 1 tháng 11 năm 1993. Bộ thử nghiệm NIST PCTS 151-1, Phiên bản 1.1.
QNX Neutrino (phiên bản 6.3) tuân thủ theo tiêu chuẩn Nhóm POSIX (www.qnx.com/download/download/8660/portability.pdf):
- POSIX.1 (IEEE 1003.1);
- POSIX.1a (IEEE 1003.1a);
- POSIX.2 (IEEE 1003.2);
- POSIX.4 (IEEE 1003.1b);
- POSIX.4a (IEEE 1003.1c);
- POSIX.1b (IEEE 1003.1d), IEEE 1003.1j;
- POSIX.12 (IEEE 1003.1g).
Hệ thống phần mềm QNX, người tạo ra QNX Neutrino, cũng có kế hoạch điều chỉnh QNX Neutrino phù hợp với một số tiêu chuẩn này; công việc được lên kế hoạch cho năm 2005 (www.qnx.com/news/pr_959_1.html).
Văn học
- Hướng dẫn vận hành của Hiệp hội Tiêu chuẩn IEEE. IEEE, tháng 10 năm 2004.
- Kevin M. Obeland. POSIX trong thời gian thực, Lập trình hệ thống nhúng, 2001.
- Tiêu chuẩn IEEE/ANSI 1003.1: Công nghệ thông tin - (POSIX) - Phần 1: Ứng dụng hệ thống: Giao diện chương trình (API).
- Gallmeister, B.O. Lập trình cho thế giới thực, POSIX.4 Sebastopol, CA: O'Reilly & Cộng sự, 1995.
- Viện Tiêu chuẩn và Công nghệ Quốc gia, PCTS:151-2, Bộ thử nghiệm POSIX.
- POSIX: Được chứng nhận bởi IEEE và The Open Group. Chính sách được chứng nhận. The Open Group, ngày 21 tháng 10 năm 2003, Bản sửa đổi 1.1.
Chúng tôi 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 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à Ủy ban Kỹ thuật Liên hợp 1 Tiểu ban 22 Nhóm Công tác 15 (JTC1/SC22/WG15) của Tổ chức Tiêu chuẩn Quốc tế— bắt đầu tư vấn về việc sáp nhập và phát triển các tiêu chuẩn giao diện cho các dịch vụ hệ thống do họ giám sát: IEEE Std 1003.1, IEEE Std 1003.2, Thông số kỹ thuật cơ bản từ Open Group, 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);
- Sự miêu tả Giao diện lập trình ứng dụng Cđến 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ệnh Và tiệ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à 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. 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ống Và chứ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
Đả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 công tá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:Ý 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ống Và chứ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. Việc tập trung vào tiêu chuẩn quốc tế của ngôn ngữ C không chỉ xác định phong cách mô tả các chức năng mà ở một mức độ nào đó còn xác định 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 các chức năng bắt buộc và tùy chọn, với lõi bắt buộc được giữ 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. Các nhà phát triển phiên bản mới của tiêu chuẩn POSIX đã rất cẩn thận về thời tiền sử của nó cũng như thời tiền sử 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 nhiều nhu cầu hơn. phiên bản trước 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:$ 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à nó được hỗ trợ Phiên bản lỗi thời Tiêu chuẩn POSIX, trong số những tiêu chuẩn khác, có các công cụ phát triển và khả năng thời gian thự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 đượ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à 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 khái niệm quan trọng nhất là các khái niệm mô tả hành vi triển khai trong các tình huống khác nhau. Đối với nhiều tình huống đúng, hành vi không được chỉ định, điều đó có nghĩa là ứng dụng di động không nên dựa vào hành vi của các triển khai khác nhau để khớp. Đố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: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 bởi ứ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 đề#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. Chỉ tên hệ thống (không phải ứng dụng) mới có thể bắt đầu bằng dấu gạch dưới, theo sau là dấu gạch dưới khác hoặc chữ in hoa. Đố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