Solaris 10 新增功能

開發工具增強功能

本節旨在說明自 2002 年 5 月 Solaris 9 作業系統首次發行以來,Solaris 10 3/05 發行版本中所有新增或增強的開發工具。DTrace 動態追蹤功能尤其重要。

開發人員也應當查閱安全性及系統管理等章節中所說明的這些新增功能:

動態追蹤功能

這是 Solaris Express 11/03 發行版本中的新增功能。

Solaris DTrace 包含完備的動態追蹤功能,提供 Solaris 使用者、管理員及開發人員,以全新方法觀測核心及使用者程序。如需進一步的資訊,請參閱DTrace 動態追蹤功能

GCC 3.4.3 版

這是 Solaris 10 3/05 發行版本中的新增功能。

GCC 是 GNU 軟體基金會所開發的開放原始碼「C」編譯器,其中包含 gmakebisonbinutilsgnuM4flex 等建置工具。

Perl 5.8.4 版

這是 Solaris Express 8/04 發行版本中的新增功能。

Solaris 10 作業系統提供 Practical Extraction and Report Language (Perl) 的新預設版本。Perl 的新預設版本為 5.8.4 版。當您升級至 Solaris 10 軟體之後,必須重新安裝先前以手動方式安裝的所有模組。如需有關安裝模組的更多資訊,請參閱「System Administration Guide: Network Services」中的「Perl 5」。

如需有關 Perl 的更多資訊,請參閱「perl(1) 線上手冊」。

每一執行緒模式增強功能

這是 Solaris Express 8/04 發行版本中的新增功能。

trusspstackpflags 指令皆已更新,可以讓使用者在程序或核心中指定個別的執行緒。開發人員及系統管理員可以更瞭解以大量多重執行緒執行之應用程式的運作方式,並鎖定特定執行緒以進行除錯。

如需進一步的資訊,請參閱下列線上手冊:

USB 一般使用者裝置支援增強功能

這些是 Solaris Express 5/04 發行版本中新加入的增強功能。Solaris Express 8/04 發行版本增加新的應用程式設計介面。

此 Solaris 發行版本現在可以使用目前所有的 Edgeport USB-to-serial 裝置。USB 1.1 音效及其他即時型裝置現在可以在 USB 2.0 高速集線器上使用。

新的程式設計介面

這些是 Solaris Express 8/04 發行版本中新加入的介面。

通用序列匯流排架構 (USBA) 2.0 程式設計介面將公開發行為 Solaris 10 作業系統的一部分。在線上手冊 9F 和 9S 等小節中,這些介面是做為 usb_* 函數和結構加以說明。另請參閱「Writing Device Drivers」

USBA 架構現在稱為 USBA 2.0. USB 驅動程式,會在 DDK 之前寫入到 USBA 1.0 介面,與 Solaris 10 軟體僅有二進位相容性。這些驅動程式與 Solaris 10 軟體沒有原始檔相容性。

ls 增強功能

這是 Solaris Express 8/04 發行版本中的新增功能。

ls 指令現在可用秒或是奈秒顯示檔案。請參閱ls 指令的增強功能

轉換字串新增功能

這是 Solaris Express 7/04 發行版本中的新增功能。

核心模組開發人員現在可以使用下列兩項新增功能,將字串轉換為長整數。ddi_strtol()ddi_strtoul() 函數可將字串分別轉換為長整數及不帶正負號長整數。此新函數提供靈活的輸入、DDI 相容,以及增加錯誤偵測範圍。

如需更多資訊,請參閱「ddi_strtol(9F)線上手冊」和「ddi_strtoul(9F)線上手冊」。

Java 的 pstack 指令支援

這是 Solaris Express 7/04 發行版本中的新增功能。

pstack 指令已經過增強,可在使用最新版 Java 時顯示 Java 框架。如果可使用 Java 框架,便會顯示呼叫堆疊中每個 Java 框架的函數及行號。

請參閱「pstack(1) 線上手冊」。

Solaris Cryptographic Framework 新增機制

這是 Solaris Express 6/04 發行版本中的新增功能。

Solaris Cryptographic Framework 現在支援下列的安全通訊端層 (SSL) 及傳輸層安全性 (TLS) 通訊協定機制:

Solaris Cryptographic Framework 是一種可讓 Solaris 系統中的應用程式使用或提供加密服務的架構。所有與此架構相關的互動操作,都必須以 RSA 實驗室 (RSA Security, Inc. 的研究部門) 研發的 PKCS#11 Cryptographic Token Interface (Cryptoki) 為基礎。

如需更多資訊,請參閱「Solaris Security for Developers Guide」中的 「PKCS #11 Functions: C_GetMechanismList」。

Solaris Cryptographic Framework 中的提供者零售及非零售選項

這是 Solaris Express 6/04 發行版本中的新增功能。

連接至 Solaris Cryptographic Framework 的加密提供者供應商,可更靈活地向 Sun Microsystems 要求憑證。憑證現在可同時支援零售及非零售的匯出發佈作業。

零售加密產品乃是指美國政府允許輸出到所有國家/地區的產品。但是,零售產品不可以輸出到美國政府認定具有安全性威脅顧慮的國家/地區。非零售加密產品乃是指美國政府允許僅供美國本地或其政府豁免之國家/地區使用的產品。

如需更多資訊,請參閱「elfsign(1)線上手冊」和「Solaris Security for Developers Guide」中的附錄 F「Packaging and Signing Cryptographic Providers」。

連結程式和程式庫更新

這是 Software Express 試驗程式中新的描述,並在 Solaris Express 5/04 發行版本中經過更新。連結程式和程式庫更新都是在 Solaris 9 12/02 及後續發行版本中引入的。Solaris 10 3/05 發行版本中已納入這些更新。

Solaris 10 作業系統包含連結程式 (編輯程式) 功能,如字串表壓縮、不相關的區段消除以及不相關的相依偵測。如需有關最新增強功能的完整資訊,請參閱「Linker and Libraries Guide」中的附錄 D「Linker and Libraries Updates and New Features」。

Solaris Express 5/04 發行版本中引入的增強功能包括:

Software Express 試驗程式中引入的增強功能包括:

分層驅動程式介面

這是 Solaris Express 3/04 發行版本中的新增功能。

Solaris 10 作業系統已經過增強,可以使核心模組執行裝置存取作業,例如開啟、讀取和寫入裝置。此系統也可讓您判斷由公開可用的新「分層驅動程式介面」(即「LDI」) 集所提供的裝置為何。

驅動程式開發人員可以使用 LDI 介面,直接從 Solaris 核心中存取字元、區塊或串流裝置。應用程式開發人員可以使用 LDI 介面顯示裝置的分層資訊。此新架構可以提供管理員在核心中觀測裝置使用狀況的能力。如需進一步資訊,請參閱「ldi_*(9F) 線上手冊」和「di_*(3DEVINFO) 線上手冊」。

prtconffuser 公用程式已經過增強,其包含下列功能:

分層驅動程式介面是以 ldi_ 前綴為開頭。這些介面是用於核心層的裝置存取及取得裝置資訊。線上手冊的 9F 一節提供有關這些介面的資訊。在使用者層級上,則是針對擷取應用程式中核心裝置使用狀況,提供了裝置資訊程式庫介面集。線上手冊的 3DEVINFO 一節提供有關 LDI 程式庫裝置資訊介面的資訊。此外,在「prtconf(1M)線上手冊」和「fuser(1M)線上手冊」中,包含了 LDI 架構所提供之有關顯示核心裝置使用狀況的資訊。

如需進一步資訊,請參閱「Writing Device Drivers」中的第 13 章「Layered Driver Interface (LDI)」。

makecontext() 函數的變更

這是 Solaris Express 3/04 發行版本與 Solaris 9 9/04 發行版本中的新增功能。

ucontext_t 結構之 uc_stack 成員的語義已經過變更,適用於輸入到 makecontext(3C) libc 程式庫函數。已保留先前版本的 Solaris 與 Solaris 10 作業系統之間的二進位相容性。

使用此介面的應用程式必須先更新,才能重新編譯供 Solaris 10 作業系統使用。如需進一步的資訊,請參閱「makecontext(3C) 線上手冊」。

Single UNIX Specification 版本 3

這是 Solaris Express 2/04 發行版本中的新增功能。

此 Solaris 發行版本遵循 Single UNIX Specification 版本 3 (SUSv3)。SUSv3 提供 POSIX.1-1990、POSIX.1b-1993、POSIX.1c-1996、POSIX.2-1992 及 POSIX.2a-1992 的更新。

如需 SUSv3 更新對 Solaris 使用者影響的詳細說明,請參閱「Solaris 10 版本說明」中的「單一 UNIX 規格,版本 3 引入變更」。

進階 API

這是 Solaris Express 1/04 發行版本中的新增功能。

Solaris 通訊端 API 已更新為 IPv6 進階通訊端 API,以符合最新版本的 RFC 2292 規範。請參閱IPv6 Advanced Sockets API

適用於開發人員的簡單驗證及安全階層

這是 Solaris Express 12/03 發行版本中的新增功能。

簡單驗證及安全性階層 (SASL) 針對應用程式及共用程式庫的開發人員,提供用於增加驗證、資料完整性檢查,以及加密連線型通訊協定的介面。

SASL 包含下列項目:

SASL 可讓開發人員寫入到一般 API,而不必考慮有關安全性機制的細節。當開發人員正確地使用了 SASL,伺服器及用戶端不必重新編譯即可使用新的安全性機制、命名及使用者規範外掛程式,以及 auxprop 外掛程式。

SASL 描述於 RFC 2222。SASL 特別適用於使用下列支援 SASL 之通訊協定的應用程式:

如需有關 SASL 的更多資訊,請參閱「libsasl(3LIB) 線上手冊」。另請參閱「Solaris Security for Developers Guide」

事件通訊埠

這是 Solaris Express 12/03 發行版本中的新增功能。

事件通訊埠是可讓應用程式產生事件,以及收集非連接來源事件的架構。此架構可以同時擷取多重物件的事件,而不會降低系統整體效能。

如需進一步資訊,請參閱「port_create(3C)線上手冊」和「signal.h(3HEAD)線上手冊」。

核心檔案內容

Solaris Express 12/03 發行版本引入 coreadmgcoremdb 公用程式等增強功能。請參閱核心檔案內容增強功能

不可分割作業

這是 Solaris Express 10/03 發行版本中的新增功能,且已在 Solaris 10 1/06 發行版本中予以增強。

不可分割作業在 libc 中提供可快速執行簡單不可分割作業的 API。此新增功能允許應用程式自動更新記憶體,而無須使用其他同步化原始型態或平台特定的組譯語言。另外,此可用作業還包含「and」布林函數和「or」布林函數。

如需更多資訊,請參閱「atomic_ops(3C) 線上手冊」。

Solaris WBEM 檔案的變更

Solaris Express 9/03 發行版本更新了此項功能的描述。

/usr/sadm/mof 目錄中的管理物件格式 (MOF) 檔案有多項變更。

軟體開發人員的權限

這是 Software Express 試驗程式中的新增功能。Solaris 10 3/05 發行版本中有此功能。

不再需要以具有超級使用者功能的 root 身份來執行程序。相反的,系統管理員可將超級使用者功能分派為分離的程序權利。透過權限可實現這些程序權利。權限可讓開發人員限制對於限定作業的存取,以及限制各個權限的有效期。使用權限可以減少先前已授權程式的缺陷所產生的損害。基於相容性考量,未經修改的程式仍須以 root 身份執行以取得所有權限。

如需有關權限的一般資訊,請參閱程序權限管理。如需有關設定及取得權限的資訊,請參閱「setppriv(2)線上手冊」和「getppriv(2)線上手冊」。如需瞭解有關操作權限的更多資訊,請參閱「priv_str_to_set(3C)線上手冊」和「priv_addset(3C)線上手冊」。

如需進一步資訊,請參閱「Solaris Security for Developers Guide」

適用於開發人員的 Solaris Cryptographic Framework

這是 Software Express 試驗程式中的新增功能。Solaris 10 3/05 發行版本中有此功能。

Solaris Cryptographic Framework 可為應用程式提供加密服務。應用程式可以透過 libpkcs11(3LIB) 於更高層級存取此架構。

Solaris Cryptographic Framework 針對使用加密之應用程式的開發人員提供下列功能:

請參閱下列線上手冊:「libpkcs11(3LIB)線上手冊」、「pkcs11_softtoken(5)線上手冊」和「pkcs11_kernel(5)線上手冊」。另請參閱系統管理員的 Solaris Cryptographic Framework

對於想提供外掛程式到 Solaris 加密架構的軟體或硬體加密加速器供應商,應該連絡 Sun Microsystems 以取得更多詳細資訊。

SPARC: 軟體開發人員適用的 64 位元套裝軟體變更

這是 Software Express 試驗程式中的新增功能。Solaris 10 3/05 發行版本中有此功能。

在 Solaris 10 作業系統中,封裝作業已經過簡化,可將多數 32 位元及 64 位元元件以單一套裝軟體進行傳送。請參閱SPARC: 64 位元套裝軟體變更

GSS-API 應用程式適用的 SPNEGO 虛擬機制

這是 Software Express 試驗程式中的新增功能。Solaris 10 3/05 發行版本中有此功能。

此 Solaris 10 作業系統包含新的 GSS-API「虛擬機制」,以交涉使用 SPNEGO 通訊協定 (IETF RFC 2478) 為基礎的 GSS-API 安全性。對於以支援多重安全性機制之 GSS-API 實做為基礎的應用程式而言,簡單及保護 GSS-API 交涉 (SPNEGO) 是最有效用的。當兩個應用程式使用 GSS-API 進行資料交換,但不知道其他應用程式支援何種機制時,便可以使用 SPNEGO。

SPNEGO 是下列物件識別碼所代表的虛擬安全性機制:


iso.org.dod.internet.security.mechanism.snego (1.3.6.1.5.5.2)

PNEGO 可讓 GSS-API 對決定其頻帶內憑證是否共用一般 GSS-API 安全性機制。如果共用該機制,GSS-API 對便可以選擇一般機制來建立安全性內容。

如需進一步資訊,請參閱「mech(4)線上手冊」和「mech_spnego(5)線上手冊」。另請參閱「Solaris Security for Developers Guide」

本機群組

這是 Software Express 試驗程式與 Solaris 9 12/03 發行版本中的新增功能。Solaris 10 3/05 發行版本中有此功能。

「Programming Interfaces Guide」中,現在包含一章說明與本機群組 (lgroups) 互動之介面的內容。這些介面可用於協助應用程式高效地分配 CPU 資源和記憶體資源。此項功能可以提升部分系統的效能。

pmap 中的執行緒堆疊

這是 Software Express 試驗程式中的新增功能。Solaris 10 3/05 發行版本中有此功能。

pmap 公用程式現在可標記執行緒堆疊,以便更容易識別堆疊。

如需進一步的資訊,請參閱「pmap(1) 線上手冊」。

新的 DOOR_REFUSE_DESC 旗標

這是 Software Express 試驗程式中的新增功能。Solaris 10 3/05 發行版本中有此功能。

door_create() 函數增加了新的 DOOR_REFUSE_DESC 旗標。此新旗標簡化不接受引數描述元之門戶伺服器的撰寫程序。

如需進一步的資訊,請參閱「door_create(3DOOR) 線上手冊」。

堆疊檢查 API

這是 Software Express 試驗程式與 Solaris 9 4/03 發行版本中的新增功能。Solaris 10 3/05 發行版本中有此功能。

堆疊檢查 API 允許與 Sun ONE Studio 使用的堆疊檢查編譯器支援進行進階互動操作。對於啟用堆疊檢查進行編譯的應用程式,以及管理其本身堆疊或試圖偵測其本身堆疊溢位的應用程式,都應該使用這些 API。

開發者如果要維護自己的執行緒程式庫,必須使用 setustack 介面讓其程式庫的使用者可以在啟用堆疊檢查的情況下進行編譯。

請參閱「stack_getbounds(3C)線上手冊」、「stack_setbounds(3C)線上手冊」和「stack_inbounds(3C)線上手冊」。

適用於軟體開發人員的增強型 crypt() 函數

這是 Software Express 試驗程式與 Solaris 9 12/02 發行版本中的新增功能。Solaris 10 3/05 發行版本中有此功能。

此 Software Express 發行版本對 crypt() 函數有新的延伸,並引入了 crypt_gensalt() 函數。這些增強功能可讓管理員變更用來對使用者的 UNIX 登入密碼進行模糊化處理的演算法。

包含有 MD5 模組和 Blowfish 模組。MD5 模組位於 crypt_sunmd5crypt_bsdmd5 中。Blowfish 模組位於 crypt_bsdbf 中。

開發者可以建立用於實現替代密碼模糊化演算法的新模組。應用程式開發者必須使用 crypt_gensalt() 函數來代替手動產生傳遞到 crypt() 函數的 salt 字串。

crypt.conf(4) 檔案中指定了替代演算法的模組。module_path 欄位指定實作兩個所需函數之共用程式庫物件的路徑:

如需進一步資訊,請參閱「crypt(3C)線上手冊」和「policy.conf(4)線上手冊」。

madvise() 函數的新旗標

這是 Software Express 試驗程式與 Solaris 9 12/02 發行版本中的新增功能。Solaris 10 3/05 發行版本中有此功能。

madvise() 函數可讓核心對使用者定義的記憶體區域的存取最佳化。本版 Solaris 包含 madvise() 函數的三個新旗標:

如需有關 madvise() 函數的更多資訊,請參閱「madvise(3C) 線上手冊」。

使用 libumem 配置記憶體

這是 Software Express 試驗程式與 Solaris 9 4/03 發行版本中的新增功能。Solaris 10 3/05 發行版本中有此功能。

libumem 是一種使用者模式 (非核心模式) 記憶體配置器程式庫。libumem 提供的功能可讓您對記憶體洩漏以及涉及記憶體使用的其他問題進行除錯。

此功能的使用方式與標準應用程式二進制介面 (ABI) 分配器 (如 malloc()) 的使用方式相同。使用者模式應用程式請求使用具有任意多個位元組的記憶體,然後會返回一個指標,其中已載入所分配的記憶體位址。

如需進一步的資訊,請參閱「libumem(3LIB) 線上手冊」。

智慧卡終端機介面

這是 Software Express 試驗程式與 Solaris 9 8/03 發行版本中的新增功能。Solaris 10 3/05 發行版本中有此功能。

Solaris 智慧卡介面是一組用於智慧卡終端機的公用介面。卡式終端裝置廠商可以在使用者層級的共用程式庫中實現這些介面,以對他們在 Solaris 中之智慧卡終端裝置提供裝置層級的支援。Solaris 智慧卡終端機介面集以可用作 Linux Smartcard 架構部分的插卡終端機介面為基礎。Linux 的智慧卡終端機支援程式庫可以輕鬆連接至 Solaris 環境。如需有關智慧卡的進一步資訊,請參閱「Solaris Smartcard Administration Guide」

智慧卡中介軟體 API

這是 Software Express 試驗程式與 Solaris 9 9/02 發行版本中的新增功能。Solaris 10 3/05 發行版本中有此功能。

現在,Solaris 智慧卡架構提供低階中介軟體 API。透過使用智慧卡讀取程式,可使用這些 API 與智慧卡交換資料。此類 API 可以用在多種平台上,例如 Sun BladeTM 和 Sun RayTM 系統。以 Java 語言或 C 語言編寫的應用程式可以使用這些介面。

如需更多資訊,請參閱「libsmartcard(3LIB) 線上手冊」和 /usr/share/javadoc/smartcard 中的 JavaDocs。另請參閱「Solaris Smartcard Administration Guide」