本節旨在說明自 2002 年 5 月 Solaris 9 作業系統首次發行以來,Solaris 10 3/05 發行版本中所有新增或增強的開發工具。DTrace 動態追蹤功能尤其重要。
開發人員也應當查閱安全性及系統管理等章節中所說明的這些新增功能:
這是 Solaris Express 11/03 發行版本中的新增功能。
Solaris DTrace 包含完備的動態追蹤功能,提供 Solaris 使用者、管理員及開發人員,以全新方法觀測核心及使用者程序。如需進一步的資訊,請參閱DTrace 動態追蹤功能。
這是 Solaris 10 3/05 發行版本中的新增功能。
GCC 是 GNU 軟體基金會所開發的開放原始碼「C」編譯器,其中包含 gmake、bison、binutils、gnuM4 及 flex 等建置工具。
這是 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 發行版本中的新增功能。
truss、pstack 及 pflags 指令皆已更新,可以讓使用者在程序或核心中指定個別的執行緒。開發人員及系統管理員可以更瞭解以大量多重執行緒執行之應用程式的運作方式,並鎖定特定執行緒以進行除錯。
如需進一步的資訊,請參閱下列線上手冊:
這些是 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 軟體沒有原始檔相容性。
這是 Solaris Express 8/04 發行版本中的新增功能。
ls 指令現在可用秒或是奈秒顯示檔案。請參閱ls 指令的增強功能。
這是 Solaris Express 7/04 發行版本中的新增功能。
核心模組開發人員現在可以使用下列兩項新增功能,將字串轉換為長整數。ddi_strtol() 及 ddi_strtoul() 函數可將字串分別轉換為長整數及不帶正負號長整數。此新函數提供靈活的輸入、DDI 相容,以及增加錯誤偵測範圍。
如需更多資訊,請參閱「ddi_strtol(9F)線上手冊」和「ddi_strtoul(9F)線上手冊」。
這是 Solaris Express 7/04 發行版本中的新增功能。
pstack 指令已經過增強,可在使用最新版 Java 時顯示 Java 框架。如果可使用 Java 框架,便會顯示呼叫堆疊中每個 Java 框架的函數及行號。
請參閱「pstack(1) 線上手冊」。
這是 Solaris Express 6/04 發行版本中的新增功能。
Solaris Cryptographic Framework 現在支援下列的安全通訊端層 (SSL) 及傳輸層安全性 (TLS) 通訊協定機制:
CKM_SSL3_PRE_MASTER_KEY_GEN
CKM_SSL3_MASTER_KEY_DERIVE
CKM_SSL3_KEY_AND_MAC_DERIVE
CKM_SSL3_MASTER_KEY_DERIVE_DH
CKM_TLS_PRE_MASTER_KEY_GEN
CKM_TLS_MASTER_KEY_DERIVE
CKM_TLS_KEY_AND_MAC_DERIVE
CKM_TLS_MASTER_KEY_DERIVE_DH
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 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 發行版本中引入的增強功能包括:
檔案系統重建功能,可以將 /usr/lib 中的許多元件移動到 /lib。因此,一併變更了連結編輯器及運行時間連結程式的預設搜尋路徑。
不再提供系統歸檔程式庫。因此,將無法再建立完全靜態連結的可執行檔。
crle 指令的 -A 選項,可以更靈活地定義替代相依性。
Software Express 試驗程式中引入的增強功能包括:
連結編輯器,使用它可以更靈活地定義 ELF 物件的軟硬體需求。
已增加的運行時間連結稽核介面 la_objfilter()。
共用物件篩選已經延伸,在每一符號上提供篩選功能。
提供執行緒局部儲存體。
經過延伸的 -z ignore 選項,可在連結編輯期間排除不相關的區段。請參閱「ld(1) 線上手冊」。
「protected」對應檔指令,可以更靈活地定義符號的可視性。
dlopen(3DL ) 和 dlsym(3DL) 查詢語義已使用新模式 RTLD_FIRST 加以延伸。
ldd 公用程式,可用來決定不相關的相依性。請參閱「ldd(1) 線上手冊」中的 -U 選項。
這是 Solaris Express 3/04 發行版本中的新增功能。
Solaris 10 作業系統已經過增強,可以使核心模組執行裝置存取作業,例如開啟、讀取和寫入裝置。此系統也可讓您判斷由公開可用的新「分層驅動程式介面」(即「LDI」) 集所提供的裝置為何。
驅動程式開發人員可以使用 LDI 介面,直接從 Solaris 核心中存取字元、區塊或串流裝置。應用程式開發人員可以使用 LDI 介面顯示裝置的分層資訊。此新架構可以提供管理員在核心中觀測裝置使用狀況的能力。如需進一步資訊,請參閱「ldi_*(9F) 線上手冊」和「di_*(3DEVINFO) 線上手冊」。
prtconf 及 fuser 公用程式已經過增強,其包含下列功能:
透過 prtconf 指令執行的「裝置分層」– 此指令可以顯示裝置次要節點及裝置使用狀況資訊。此公用程式也會顯示核心模組目前所開啟的次要節點。
請參閱「prtconf(1M) 線上手冊」。
透過 fuser 指令執行的「裝置使用狀況」– 此指令可以顯示裝置的使用者資訊。此指令也會顯示有哪些一般 Solaris 核心子系統或使用者在 Solaris 核心中開啟及存取裝置。
請參閱「fuser(1M) 線上手冊」。
分層驅動程式介面是以 ldi_ 前綴為開頭。這些介面是用於核心層的裝置存取及取得裝置資訊。線上手冊的 9F 一節提供有關這些介面的資訊。在使用者層級上,則是針對擷取應用程式中核心裝置使用狀況,提供了裝置資訊程式庫介面集。線上手冊的 3DEVINFO 一節提供有關 LDI 程式庫裝置資訊介面的資訊。此外,在「prtconf(1M)線上手冊」和「fuser(1M)線上手冊」中,包含了 LDI 架構所提供之有關顯示核心裝置使用狀況的資訊。
如需進一步資訊,請參閱「Writing Device Drivers」中的第 13 章「Layered Driver Interface (LDI)」。
這是 Solaris Express 3/04 發行版本與 Solaris 9 9/04 發行版本中的新增功能。
ucontext_t 結構之 uc_stack 成員的語義已經過變更,適用於輸入到 makecontext(3C) libc 程式庫函數。已保留先前版本的 Solaris 與 Solaris 10 作業系統之間的二進位相容性。
使用此介面的應用程式必須先更新,才能重新編譯供 Solaris 10 作業系統使用。如需進一步的資訊,請參閱「makecontext(3C) 線上手冊」。
這是 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 引入變更」。
這是 Solaris Express 1/04 發行版本中的新增功能。
Solaris 通訊端 API 已更新為 IPv6 進階通訊端 API,以符合最新版本的 RFC 2292 規範。請參閱IPv6 Advanced Sockets API。
這是 Solaris Express 12/03 發行版本中的新增功能。
簡單驗證及安全性階層 (SASL) 針對應用程式及共用程式庫的開發人員,提供用於增加驗證、資料完整性檢查,以及加密連線型通訊協定的介面。
SASL 包含下列項目:
程式庫 libsasl,其提供需要驗證、私密性及完整服務的應用程式所適用的 API
服務提供者介面 (SPI),用於增加新的驗證方法、名稱規範規則以及特性存放區的協力廠商外掛程式
用於開發目的的標頭檔
Sun 針對下列機制提供的外掛程式:
EXTERNAL
PLAIN
CRAM-MD5
DIGEST-MD5
GSS-API
GSS-SPNEGO
SASL 可讓開發人員寫入到一般 API,而不必考慮有關安全性機制的細節。當開發人員正確地使用了 SASL,伺服器及用戶端不必重新編譯即可使用新的安全性機制、命名及使用者規範外掛程式,以及 auxprop 外掛程式。
SASL 描述於 RFC 2222。SASL 特別適用於使用下列支援 SASL 之通訊協定的應用程式:
IMAP
SMTP
ACAP
LDAP
如需有關 SASL 的更多資訊,請參閱「libsasl(3LIB) 線上手冊」。另請參閱「Solaris Security for Developers Guide」。
這是 Solaris Express 12/03 發行版本中的新增功能。
事件通訊埠是可讓應用程式產生事件,以及收集非連接來源事件的架構。此架構可以同時擷取多重物件的事件,而不會降低系統整體效能。
如需進一步資訊,請參閱「port_create(3C)線上手冊」和「signal.h(3HEAD)線上手冊」。
Solaris Express 12/03 發行版本引入 coreadm、gcore 及 mdb 公用程式等增強功能。請參閱核心檔案內容增強功能。
這是 Solaris Express 10/03 發行版本中的新增功能,且已在 Solaris 10 1/06 發行版本中予以增強。
不可分割作業在 libc 中提供可快速執行簡單不可分割作業的 API。此新增功能允許應用程式自動更新記憶體,而無須使用其他同步化原始型態或平台特定的組譯語言。另外,此可用作業還包含「and」布林函數和「or」布林函數。
如需更多資訊,請參閱「atomic_ops(3C) 線上手冊」。
Solaris Express 9/03 發行版本更新了此項功能的描述。
/usr/sadm/mof 目錄中的管理物件格式 (MOF) 檔案有多項變更。
Solaris_VM1.0.mof 檔案已修訂為 Solaris_VM2.0.mof,隨後會修訂為 Solaris_VM3.0.mof。
本機檔案系統類別已從 Solaris_VM2.0.mof 重新放置到新檔案 Solaris_FS1.0.mof。Solaris_FS1.0.mof 定義儲存裝置所屬的類別。
原先在 Solaris_VM1.0.mof file 檔案中的兩個提供者 Solaris_DiskDrive 和 Solaris_DiskPartition,已經移動到新的 Solaris_DMGT.1.0.mof 檔案中。包含在 Solaris_DMGT.1.0.mof 檔案中的類別可表示磁碟、磁碟分割區,以及其他裝置管理類別。
此發行版本包含另一個新的 MOF 檔案 Solaris_NFS1.0.mof。Solaris_NFS1.0.mof 檔案定義 NFS 裝置所屬的類別。此檔案包含來自於 Solaris_VM2.0.mof 的 NFS 類別,以及用於配置和監視 NFS 共用 (或「匯出」) 和掛載的新類別。
這是 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」。
這是 Software Express 試驗程式中的新增功能。Solaris 10 3/05 發行版本中有此功能。
Solaris Cryptographic Framework 可為應用程式提供加密服務。應用程式可以透過 libpkcs11(3LIB) 於更高層級存取此架構。
Solaris Cryptographic Framework 針對使用加密之應用程式的開發人員提供下列功能:
適用於各種加密功能的使用者層級程式設計介面。這些介面涵蓋加密、解密、訊息摘要及簽章。使用工業標準 RSA Security Inc. PKCS #11 Cryptographic Token Interface (Cryptoki) 做為 API。
此架構支援下列的加密演算法:
AES
DES/3DES
RC4
MD5
SHA-1
DSA
RSA
D-H
Sun 和協力廠商開發人員適用的使用者層級可插接式介面。這些介面可讓管理員以使用者層級增加加密演算法提供者所提供新的外掛程式。管理員可以使用不同的實作來取代現有的提供者。使用者服務提供者介面 (SPI) 也使用 PKCS#11 標準。提供用於簽章、封裝及安裝協力廠商二進位檔的工具。
最常使用之加密及數位簽章演算法 (例如 AES、DES/3DES 及 RSA) 的最佳化軟體實作。這些實作已針對 SPARC 平台及 UltraSPARC 平台進行最佳化。
CLI 管理工具 cryptoadm,用於增加或移除加密外掛程式、設定加密安全策略,以及其他相關的管理功能。請參閱「cryptoadm(1M) 線上手冊」。
請參閱下列線上手冊:「libpkcs11(3LIB)線上手冊」、「pkcs11_softtoken(5)線上手冊」和「pkcs11_kernel(5)線上手冊」。另請參閱系統管理員的 Solaris Cryptographic Framework。
對於想提供外掛程式到 Solaris 加密架構的軟體或硬體加密加速器供應商,應該連絡 Sun Microsystems 以取得更多詳細資訊。
這是 Software Express 試驗程式中的新增功能。Solaris 10 3/05 發行版本中有此功能。
在 Solaris 10 作業系統中,封裝作業已經過簡化,可將多數 32 位元及 64 位元元件以單一套裝軟體進行傳送。請參閱SPARC: 64 位元套裝軟體變更。
這是 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 資源和記憶體資源。此項功能可以提升部分系統的效能。
這是 Software Express 試驗程式中的新增功能。Solaris 10 3/05 發行版本中有此功能。
pmap 公用程式現在可標記執行緒堆疊,以便更容易識別堆疊。
如需進一步的資訊,請參閱「pmap(1) 線上手冊」。
這是 Software Express 試驗程式中的新增功能。Solaris 10 3/05 發行版本中有此功能。
door_create() 函數增加了新的 DOOR_REFUSE_DESC 旗標。此新旗標簡化不接受引數描述元之門戶伺服器的撰寫程序。
如需進一步的資訊,請參閱「door_create(3DOOR) 線上手冊」。
這是 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)線上手冊」。
這是 Software Express 試驗程式與 Solaris 9 12/02 發行版本中的新增功能。Solaris 10 3/05 發行版本中有此功能。
此 Software Express 發行版本對 crypt() 函數有新的延伸,並引入了 crypt_gensalt() 函數。這些增強功能可讓管理員變更用來對使用者的 UNIX 登入密碼進行模糊化處理的演算法。
包含有 MD5 模組和 Blowfish 模組。MD5 模組位於 crypt_sunmd5 和 crypt_bsdmd5 中。Blowfish 模組位於 crypt_bsdbf 中。
開發者可以建立用於實現替代密碼模糊化演算法的新模組。應用程式開發者必須使用 crypt_gensalt() 函數來代替手動產生傳遞到 crypt() 函數的 salt 字串。
在 crypt.conf(4) 檔案中指定了替代演算法的模組。module_path 欄位指定實作兩個所需函數之共用程式庫物件的路徑:
crypt_gensalt_impl() – 產生 salt 字串
crypt_genhash_impl() – 產生加密的密碼
如需進一步資訊,請參閱「crypt(3C)線上手冊」和「policy.conf(4)線上手冊」。
這是 Software Express 試驗程式與 Solaris 9 12/02 發行版本中的新增功能。Solaris 10 3/05 發行版本中有此功能。
madvise() 函數可讓核心對使用者定義的記憶體區域的存取最佳化。本版 Solaris 包含 madvise() 函數的三個新旗標:
MADV_ACCESS_LWP – 提供一個指定的簡易程序 (LWP) 資源配置優先權
MADV_ACCESS_MANY – 指定機器內的程序所廣泛使用的位址範圍
MADV_ACCESS_DEFAULT – 將位址範圍的存取型樣重設為系統預設值
如需有關 madvise() 函數的更多資訊,請參閱「madvise(3C) 線上手冊」。
這是 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」。
這是 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」。