本文目錄一覽:
- 1、泊/泉雅這個牌子長期使用會不會有什麼副作用呢?
- 2、介紹幾種主流嵌入式操作系統的特點,並分析比較 哥們,我現在糾結這個問題,可以給點指點嗎
- 3、java道底有什麼用?是個軟件嗎?
- 4、什麼是SMART操作系統?
- 5、java網絡編程的基本內容有哪些?其特點和優勢如何?請進行論述。
- 6、何為java
泊/泉雅這個牌子長期使用會不會有什麼副作用呢?
from
不會的,
我一直都是用這個產品,還可以
補水效果不錯,敷完滋///潤,也很保濕
泊泉雅是一個新興的化妝品品牌。
泊泉雅,化妝品品牌,品牌創始人劉昭鋒
僅供參考,答題不易,請採納。
/
/
/
/
/
/
/
1997 年 3 月,HP 公司獲得 Java WorkShop 許可證,用於其 HP-UX 操作系統。
西門子、AG 公司等獲得 Java 許可證。日立半導體公司、Informix 公司等獲得
JavaOS 許可證。Novell 公司獲得 Java Studio 許可證。Sun 公司發售的 JavaOS 1.0
操作系統,這是一種在微處理器上運行 Java 環境的最小、最快的方法,可提供
給 JavaOS 許可證持有者使用
artistically accurate drawing
介紹幾種主流嵌入式操作系統的特點,並分析比較 哥們,我現在糾結這個問題,可以給點指點嗎
如果你是學習階段的話,那LINUX和UCOS-II是比較合適的
uc/os和uclinux操作系統是兩種性能優良源碼公開且被廣泛應用的的免費嵌入式操作系統,可以作為研究實時操作系統和非實時操作系統的典範。本文通過對 uc/os和uclinux的對比,分析和總結了嵌入式操作系統應用中的若干重要問題,歸納了嵌入式系統開發中操作系統的選型依據。
兩種開源嵌入式操作系統介紹
uc/os和uclinux操作系統,是當前得到廣泛應用的兩種免費且公開源碼的嵌入式操作系統。uc/os適合小型控制系統,具有執行效率高、佔用空間小、實時性能優良和可擴展性強等特點,最小內核可編譯至2k。uclinux則是繼承標準linux 的優良特性,針對嵌入式處理器的特點設計的一種操作系統,具有內嵌網絡協議、支持多種文件系統,開發者可利用標準linux先驗知識等優勢。其編譯後目標文件可控制在幾百k量級。
uc/os是一種免費公開源代碼、結構小巧、具有可剝奪實時內核的實時操作系統。其內核提供任務調度與管理、時間管理、任務間同步與通信、內存管理和中斷服務等功能。
uclinux是一種優秀的嵌入式linux版本。uclinux是micro-conrol-linux的縮寫。同標準linux相比,它集成了標準linux操作系統的穩定性、強大網絡功能和出色的文件系統等主要優點。但是由於沒有mmu(內存管理單元),其多任務的實現需要一定技巧。
兩種嵌入式操作系統主要性能比較
嵌入式操作系統是嵌入式系統軟硬件資源的控制中心,它以盡量合理的有效方法組織多個用戶共享嵌入式系統的各種資源。其中用戶指的是系統程序之上的所有軟件。所謂合理有效的方法,指的就是操作系統如何協調並充分利用硬件資源來實現多任務。複雜的操作系統都支持文件系統,方便組織文件並易於對其規範化操作。
嵌入式操作系統還有一個特點就是針對不同的平台,系統不是直接可用的,一般需要經過針對專門平台的移植操作系統才能正常工作。進程調度、文件系統支持和系統移植是在嵌入式操作系統實際應用中最常見的問題,下文就從這幾個角度入手對uc/os和uclinux進行分析比較。
進程調度
任務調度主要是協調任務對計算機系統內資源(如內存、i/o設備、cpu)的爭奪使用。進程調度又稱為cpu調度,其根本任務是按照某種原則為處於就緒狀態的進程分配cpu。由於嵌入式系統中內存和i/o設備一般都和cpu同時歸屬於某進程,所以任務調度和進程調度概念相近,很多場合不加區分,下文中提到的任務其實就是進程的概念。
進程調度可分為”剝奪型調度”和”非剝奪型調度”兩種基本方式。所謂”非剝奪型調度”是指:一旦某個進程被調度執行,則該進程一直執行下去直至該進程結束,或由於某種原因自行放棄cpu進入等待狀態,才將cpu重新分配給其他進程。所謂”剝奪型調度”是指:一旦就緒狀態中出現優先權更高的進程,或者運行的進程已用滿了規定的時間片時,便立即剝奪當前進程的運行(將其放回就緒狀態),把cpu分配給其他進程
作為實時操作系統,uc/os是採用的可剝奪型實時多任務內核。可剝奪型的實時內核在任何時候都運行就緒了的最高優先級的任務。uc/os中最多可以支持64 個任務,分別對應優先級0~63,
其中0為最高優先級。調度工作的內容可以分為兩部分:最高優先級任務的尋找和任務切換。
其最高優先級任務的尋找是通過建立就緒任務表來實現的。uc/os中的每一個任務都有獨立的堆棧空間,並有一個稱為任務控制塊tcb(task control block)數據結構,其中第一個成員變量就是保存的任務堆棧指針。任務調度模塊首先用變量 ostcbhighrdy記錄當前最高級就緒任務的tcb地址,然後調用os_task_sw() 函數來進行任務切換。
uclinux的進程調度沿用了linux的傳統,系統每隔一定時間掛起進程,同時系統產生快速和周期性的時鐘計時中斷,並通過調度函數(定時器處理函數)決定進程什麼時候擁有它的時間片。然後進行相關進程切換,這是通過父進程調用fork 函數生成子進程來實現的。
uclinux系統fork調用完成後,要麼子進程代替父進程執行(此時父進程已經 sleep),直到子進程調用exit退出;要麼調用exec執行一個新的進程,這個時候產生可執行文件的加載,即使這個進程只是父進程的拷貝,這個過程也不可避免。當子進程執行exit或exec後,子進程使用wakeup把父進程喚醒,使父進程繼續往下執行。
uclinux由於沒有mmu管理存儲器,其對內存的訪問是直接的,所有程序中訪問的地址都是實際的物理地址。操作系統隊內存空間沒有保護,各個進程實際上共享一個運行空間。這就需要實現多進程時進行數據保護,也導致了用戶程序使用的空間可能佔用到系統內核空間,這些問題在編程時都需要多加註意,否則容易導致系統崩潰。
由上述分析可以得知,uc/os內核是針對實時系統的要求設計實現的,相對簡單,可以滿足較高的實時性要求。而uclinux則在結構上繼承了標準linux的多任務實現方式,僅針對嵌入式處理器特點進行改良。其要實現實時性效果則需要使系統在實時內核的控制下運行,rt-linux就是可以實現這一個功能的一種實時內核。
文件系統
所謂文件系統是指負責存取和管理文件信息的機構,也可以說是負責文件的建立、撤銷、組織、讀寫、修改、複製及對文件管理所需要的資源(如目錄表、存儲介質等)實施管理的軟件部分。
uc/os是面向中小型嵌入式系統的,如果包含全部功能(信號量、消息郵箱、消息隊列及相關函數),編譯後的uc/os內核僅有6~10kb,所以系統本身並沒有對文件系統的支持。但是uc/os具有良好的擴展性能,如果需要的話也可自行加入文件系統的內容。
uclinux則是繼承了linux完善的文件系統性能。其採用的是romfs文件系統,這種文件系統相對於一般的ext2文件系統要求更少的空間。空間的節約來自於兩個方面,首先內核支持romfs文件系統比支持ext2文件系統需要更少的代碼,其次romfs文件系統相對簡單,在建立文件系統超級塊(superblock)需要更少的存儲空間。romfs文件系統不支持動態擦寫保存,對於系統需要動態保存的數據採用虛擬ram盤的方法進行處理(ram盤將採用ext2文件系統)。
uclinux還繼承了linux網絡操作系統的優勢,可以很方便的支持網絡文件系統且內嵌tcp/ip協議,這為uclinux開發網絡接入設備提供了便利。
由兩種操作系統對文件系統的支持可知,在複雜的需要較多文件處理的嵌入式系統中uclinux是一個不錯的選擇。而uc/os則主要適合一些控制系統。
操作系統的移植
嵌入式操作系統移植的目的是指使操作系統能在某個微處理器或微控制器上運行。uc/os和uclinux都是源碼公開的操作系統,且其結構化設計便於把與處理器相關的部分分離出來,所以被移植到新的處理器上是可能的。
以下對兩種系統的移植分別予以說明。
(1)uc/os的移植
要移植uc/os,目標處理器必須滿足以下要求;
·處理器的c編譯器能產生可重入代碼,且用c語言就可以打開和關閉中斷;
·處理器支持中斷,並能產生定時中斷;
·處理器支持足夠的ram(幾k位元組),作為多任務環境下的任務堆棧;
·處理器有將堆棧指針和其他cpu寄存器讀出和存儲到堆棧或內存中的指令。
在理解了處理器和c編譯器的技術細節後,uc/os的移植只需要修改與處理器相關的代碼就可以了。
具體有如下內容:
·os_cpu.h中需要設置一個常量來標識堆棧增長方向;
·os_cpu.h中需要聲明幾個用於開關中斷和任務切換的宏;
·os_cpu.h中需要針對具體處理器的字長重新定義一系列數據類型;
·os_cpu_a.asm需要改寫4個彙編語言的函數;
·os_cpu_c.c需要用c語言編寫6個簡單函數;
·修改主頭文件include.h,將上面的三個文件和其他自己的頭文件加入。
(2)uclinux的移植
由於uclinux其實是linux針對嵌入式系統的一種改良,其結構比較複雜,相對 uc/os,uclinux的移植也複雜得多。一般而言要移植uclinux,目標處理器除了應滿足上述uc/os應滿足的條件外,還需要具有足夠容量(幾百k位元組以上)外部rom和ram。
uclinux的移植大致可以分為3個層次:
·結構層次的移植,如果待移植處理器的結構不同於任何已經支持的處理器結構,則需要修改linux/arch目錄下相關處理器結構的文件。雖然uclinux內核代碼的大部分是獨立於處理器和其體系結構的,但是其最低級的代碼也是特定於各個系統的。這主要表現在它們的中斷處理上下文、內存映射的維護、任務上下文和初始化過程都是獨特的。這些例行程序位於linux/arch/目錄下。由於linux所支持體系結構的種類繁多,所以對一個新型的體系,其低級例程可以模仿與其相似的體系例程編寫。
·平台層次的移植,如果待移植處理器是某種uclinux已支持體系的分支處理器,則需要在相關體系結構目錄下建立相應目錄並編寫相應代碼。如mc68ez328就是基於無mmu的m68k內核的。此時的移植需要創建 linux/arch/m68knommu/platform/ mc68ez328目錄並在其下編寫跟蹤程序(實現用戶程序到內核函數的接口等功能)、中斷控制調度程序和向量初始化程序等。
·板級移植,如果你所用處理器已被uclinux支持的話,就只需要板級移植了。板級移植需要在linux/arch/?platform/中建立一個相應板的目錄,再在其中建立相應的啟動代碼crt0_rom.s或crt0_ram.s和鏈接描述文檔rom.ld或ram.ld就可以了。板級移植還包括驅動程序的編寫和環境變量設置等內容。
結語
通過對uc/os和uclinux的比較,可以看出這兩種操作系統在應用方面各有優劣。 uc/os佔用空間少,執行效率高,實時性能優良,且針對新處理器的移植相對簡單。uclinux則佔用空間相對較大,實時性能一般,針對新處理器的移植相對複雜。但是,uclinux具有對多種文件系統的支持能力、內嵌了tcp/ip協議,可以借鑒linux豐富的資源,對一些複雜的應用,uclinux具有相當優勢。例如cisco 公司的 2500/3000/4000 路由器就是基於uclinux操作系統開發的。總之,操作系統的選擇是由嵌入式系統的需求決定的。簡單的說就是,小型控制系統可充分利用uc/os小巧且實時性強的優勢,如果開發pda和互聯網連接終端等較為複雜的系統則uclinux是不錯的選擇。
還有就是如果從開發的工具方便好用,易用的角度來看,那些收費的系統用起來更爽一些
java道底有什麼用?是個軟件嗎?
一、Java產生的歷史與現狀
1. Java產生的歷史
1995年5月23日
Sun在SunWorld’95上正式發佈Java和HotJava瀏覽器。
1995年8月
Netscape獲得Java許可證。
1995年9月
Sun宣布將提供Java開發工具。
1995年10月
Oracle公司、Borland公司獲得Java許可證。
1995年12月
SGI公司、Adobe公司、IBM公司、ATT公司、Intel公司獲得Java許可證。
Sun和Netscape發佈JavaScript——一種基於Java語言的腳本語言,可供非編程員使用。
Sun、Netscape和SGI宣布締結軟件聯盟,以開發Java和Internet三維和多媒體交互性工具。
1996年1月
Sun宣布成立新的業務部門——JavaSoft部,以開發、銷售並支持基於Java技術的產品,由AlanBaratz先生任總裁。
Sun推出Java開發工具包JDK(JavaDevelopmentKit)1.0,為開發人員提供用來編製Java應用軟件所需的工具。
1996年2月
Sun發佈Java芯片系列,包括picoJava,microJava和UltraJava。
Sun推出Java數據庫聯接JDBC(JavaDatabaseConnectivity)數據庫API。
1996年3月
微軟公司、NetManage公司獲得Java許可證。
Sun推出JavaWorkShop。
1996年4月
SCO公司、蘋果電腦公司(Apple)獲得Java許可證。
NEC公司獲得Java處理器技術許可證。
Sun宣布蘋果電腦、HP、日立、IBM、微軟、Novell、SiliconGraphics、SCO、Tamdem等公司將把Java平台嵌入到其操作系統中。
1996年5月
HP公司、Sybase公司獲得Java許可證。
Addison-Wesley和Sun聯合推出Java應用編程界面(JavaApplicationProgrmmingInterface,Vol12)和Java編程語言。
北方電訊公司宣布把Java技術和Java微處理器應用到其下一代電話機中的計劃。
5月29日,Sun在舊金山舉行第一屆JavaOne世界Java開發者大會,業界人士踴躍參加。Sun在大會上推出一系列Java平台新技術:如JavaMediaAPIs、CommerceAPIs、SecurityAPIs、ServletAPIs、ManagementAPIs等以及JavaRMI和JavaIDL、JavaOS、JavaBeans、新的HotJava開發環境等。
Sun發佈HotJava,這是一套Java類庫,可供開發人員編製可按需剪裁的動態聯網應用軟件和用戶環境。
Sun發佈JavaOS,這是一種非常緊湊的操作系統,用來直接在從網絡計算機一直到尋呼機的微處理器上運行Java應用軟件。
1996年7月
GemstoneSystems公司、OctelCommunications公司獲得Java許可證。
1996年8月
JavaWorkShop成為Sun通過互聯網提供的第一個產品。
1996年9月
三菱日本公司等公司獲得Java許可證。
Addison-Wesley和Sun推出Java虛擬機規範和Java類庫。
1996年10月
德州儀器等公司獲得Java許可證。
由於業界通力合作為開發人員提供強有力的平台獨立部件體系結構,Sun提前完成JavaBeans規範並發佈。
Sun發佈第一個JavaJIT(Just-In-Time)編譯器,並打算在JavaWorkShop和Solaris操作系統中加入JIT。
10月29日,Sun發佈Java企業計算技術,包括:JavaStation網絡計算機、65家公司發佈的85個Java產品和應用、7個新的Java培訓課程和Java諮詢服務、基於Java的Solstice互聯網郵件軟件、新的Java開發者支持服務、演示HotJavaViews、JavaTutor、完成JavaCardAPI等。
Sun演示HotJavaViews——第一個專供Java網絡計算機使用的用戶環境。HotJavaViews是經過優化的、可為那些將其絕大部分計算時間花費在很少關鍵應用軟件的工作人員提供高效Webtop環境。
Sun宣布完成JavaCard應用編程界面(API)規範,這是智能卡使用的第一個開放API。JavaCard規範將把Java能力賦予全世界億萬張智能卡。
1996年11月
IBM公司獲得JavaOS和HotJava許可證。
Novell公司獲得JavaWorkShop許可證。
Sun和IBM宣布雙方就提供Java化的商業解決方案達成一項廣泛協議,IBM同意建立第一個Java檢驗中心。
Sun交付其第一批JavaStation網絡計算機。JavaStation網絡計算機被《Information周刊》評為”1996年最重要產品”。
1996年12月
Xerox等公司獲得Java或JavaOS許可證。
Sun發佈JDK1.1、Java商貿工具包、JavaBeans開發包及一系列JavaAPIs。
Sun推出一個新的JavaServer產品系列,其中包括JavaWebServer、JavaNCServer和JavaServerToolkit。
Sun發佈100%純Java計劃,得到百家公司的支持。
1997年1月
SAS等公司獲得Java許可證。
Sun交付完善的JavaBeans開發包,這是在確定其規範後不到8個月內完成的。
1997年2月
Gemplus公司、ElectronicToolsCompany公司獲得Java許可證,北方電訊公司獲得JavaOS許可證。
Sun和ARM公司宣布同意使JavaOS能運行在ARM公司的RISC處理器架構上。
Informix公司宣布在其UniversalServer和其他數據庫產品上支持JDK1.1。
Netscape公司宣布其NetscapeCommunicator支持所有Java化的應用軟件和核心APIs。
1997年3月
HP公司獲得JavaWorkShop許可證,用於HP-UX操作系統。
西門子AG公司等公司獲得Java許可證。
日立半導體公司、Informix公司等公司獲得JavaOS許可證。
Novell公司獲得JavaStudio許可證。
Sun發售JavaOS1.0操作系統,這是一種在微處理器上運行Java環境的最小、最快的方法,提供給Sun的JavaOS許可證持有者使用。
Sun發售HotJavaBrowser1.0,這是一種Java瀏覽環境,可以方便地按剪裁來編製專用的信息應用軟件,如信息亭、客戶自助台和打上公司牌號的網絡應用軟件。
Sun推出JDK1.1.1。
3月17日Sun向國際標準化組織的第一聯合技術委員會(JTC-1)申請成為Java的公開有效規範(PAS)的提案者。
1997年4月
OSFResearch(OpenGroup)公司、Lucent公司獲得Java許可證。
Corel公司獲得JavaStudio許可證。
4月2日Sun在美國舊金山舉行第二屆JavaOne開發應用者大會,有超過10,000人參加。
Sun正式開展100%純Java計劃。
Sun發佈PersonalJavaTM和EmbeddedJavaTM,表明Java同樣可在PDA(個人數字助理)、複印機和智能卡中很好發揮作用。
Sun為企業計算推出全面的Java平台,包括一種新技術EnterpriseJavaBeans。它使用Java來突破建立端對端商務解決方案的複雜性。
Sun宣布JavaPCTM計劃。JavaPC是一種低價位軟件技術,可把老的DOSPC機變換成網絡計算機,既簡單又方便。
Sun與LG半導體公司協議共同開發用於網絡計算機及其他消費設備的Java處理器。
Sun與Netscape宣布共同合作以提供Java基礎類庫。
Sun與RockwellCollins公司宣布將共同開發用於消費類產品的Java處理器核心技術。
Sun與東芝公司協議共同開發一種低功耗的Java化處理器。
Sun發佈JavaStudio和JavaWorkShop2.0。
Sun發佈JavaSound、JavaAdvancedImaging和JavaInputMethodAPIs。這三種新的應用編程界面使特性豐富的Java平台獲得額外的功能。
摩托羅拉公司宣布其PowerPC微處理器可運行JavaOS操作系統。
Bull公司獲得用於端對端解決方案的Java技術許可證,適用於智能卡、終端以及POS設備等。
1997年5月
TriTeal公司獲得HotJavaBrowser許可證。
菲利浦智能卡與系統公司獲得包括JavaCard的Java許可證。
蘋果電腦公司宣布將把Java平台作為其PhapsodyOS操作系統發展戰略的中心組成部分。
Sun推出JDK1.1.2。
1997年6月
三星、3Com等公司獲得JavaOS許可證。
Sun發售JavaWebServer1.0。
Sun設在瑞士日內瓦的Sun新技術應用展示中心啟用,用於展示Java計算解決方案。
Sun推出Java技術API(JTAP)規範1.0,得到Lucent、IBM、Intel、Nortel、Novell等公司的支持。
Sun推出JavaServer工具包。
1997年7月
Sun推出JDK1.1.3。
Addison-Wesley和Sun發佈JavaFAQ。
Sun與西門子公司簽署協議,將Java嵌入到智能卡芯片。
Sun發佈JavaCard2.0規範。
Sun推出JavaWebServer1.0.1。
Sun與LG半導體公司簽署協議共同開發Java處理器。
Sun合併Diba公司,以加速開發Java化的家用信息產品。
1997年8月
IBM公司獲得SunTestJava測試工具許可證。
截止到8月21日,有61個應用軟件獲得100%純Java認證;另有100多個應用程序等待測試。
Sun發佈JavaBlend,這種新技術可使軟件開發者能把Java應用軟件與數據庫自動結合起來。
Sun簽署合併Integrity公司的協議。合併後的Integrity公司加入SunSoft部門,將在面向對象編程、智能卡及虛擬機等方面發揮重要作用。
Alcatel公司、Nortel公司和三星公司選擇PersonalJava作為其網絡電話的標準平台。網絡電話除電話功能外,還可以發電子郵件,連接互聯網和瀏覽萬維網等。
IBM公司、Netscape公司和Sun共同建立一個新的Java移植和調試中心,以提高Java的性能,保證及時、不斷地向Java開發商和用戶提供Java技術解決方案。來自這三個公司的專家將在該中心攜手工作。
1997年9月
在實時操作系統(RTOS)具領先地位的生產商Acorn公司、Chorus公司、GeoWorks公司、LucentTechnology公司、Microtec公司、Micreware公司、Qnx公司和WindRiverSystem公司獲得在其消費電子產品中使用PersonalJava(個人Java)和EmbeddedJava(嵌入Java)技術的許可證,用以生產具有Java解決方案軟件的消費電子產品(如電視頂置盒、網絡電話、尋呼機等)。
1997年10月
Sun向美國加州地方法院起訴微軟公司違反兩公司就微軟使用Java技術所簽定的合同,指控微軟公司違反了合同中承諾向用戶提供Java兼容產品的條款。Sun要求微軟公司停止侵犯Java兼容標誌,放棄誤導Java開發者、阻礙他們開發完全兼容Java技術的產品的作法。
Sun向公眾公開Sun與微軟公司就開發銷售含有SunJava技術的產品和使用兼容Java標誌的合同文本。
Sun宣布已全面完成JavaCardAPI規範,並上網供用戶下載。
Sun發佈世界上第一個Java微處理器microJava701芯片的技術細節,並將在1998年下半年大批量生產該芯片。
Sun正式推出JavaStudio。這是一種動態Java創作工具,可使非編程員直觀地編製Java小程序和應用程序。
1997年11月
Sun宣布支持Lotus公司新的純Java化的eSuiteWorkplace辦公軟件。eSuiteWorkplace是第一個綜合性的”瘦客戶”高效成套軟件,包括字處理、電子表格、電子郵件及日程安排等組成部分,完全用Java語言編寫,可高效運行於JavaStation網絡計算機。
IBM公司、Lotus公司、Oracle公司和Sun宣布共同開發Java化的台式機規範,這將首次在業界統一台式網絡計算環境,使NC和PC能無礙地運行基於單一規範的任何應用程序,即”網上規範”。
Sun宣布與荷蘭TeleficationBV(一家硬件、軟件及通信設備認證中心)合作,建立歐洲100%純Java測試認證中心,為歐洲參加100%純Java計劃的公司提供服務。
國際標準化組織11月17日宣布,其第一聯合技術委員會(JTC-1)以壓倒多數的投票結果,批准Sun公司作為Java公開有效規範(PAS)提案者的申請。在參加投票的24個國家中,20票贊成,2票反對,2票棄權。這將使Java技術走向法律標準。
Java來自於Sun公司的一個叫Green的項目,其原先的目的是為家用消費電子產品開發一個分佈式代碼系統,這樣我們可以把E-mail發給電冰箱、電視機等家用電器,對它們進行控制,和它們進行信息交流。開始,準備採用C++,但C++太複雜,安全性差,最後基於C++開發一種新的語言Oak(Java的前身),Oak是一種用於網絡的精巧而安全的語言,Sun公司曾依此投標一個交互式電視項目,但結果是被SGI打敗。可憐的Oak幾乎無家可歸,恰巧這時MarkArdreesen開發的Mosaic和Netscape啟發了Oak項目組成員,他們用Java編製了HotJava瀏覽器,得到了Sun公司首席執行官ScottMcNealy的支持,觸發了Java進軍Internet。Java的取名也有一copy;趣聞,有一天,幾位Java成員組的會員正在討論給這個新的語言取什麼名字,當時他們正在咖啡館喝着Java(爪哇)咖啡,有一個人靈機一動說就叫Java怎樣,得到了其他人的讚賞,於是,Java這個名字就這樣傳開了。
二. Java的現狀
Java是Sun公司推出的新的一代面向對象程序設計語言,特別適合於Internet應用程序開發,它的平台無關性直接威脅到Wintel的壟斷地位。一時間,「連Internet,用Java編程」,成為技術人員的一種時尚。雖然新聞界的報導有?copy;言過其實,但Java作為軟件開發的一種革命性的技術,其地位已被確立,這表現在以下幾個方面:1.計算機產業的許多大公司購買了Java的許可證,包括IBM,Apple,DEC,Adobe,SiliconGraphics,HP,Oracel,Toshiba,以及最不情願的Microsoft。這一點說明,Java已得到了工業界的認可。2.眾多的軟件開發商開始支持Java的軟件產品。例如:Borland公司正在開發的基於Java的快速應用程序開發環境Latte,產品已在1996年中期發佈。Borland公司的這一舉措,推動了Java進入PC機軟件市場。Sun公司自己的Java開發環境JavaWorkshop已經發佈。數據庫廠商如:Illustra,Sysbase,Versant,Oracle都在開發CGI接口,支持HTML和Java。今天是以網絡為中心的計算時代,不支持HTML和Java,應用程序的應用範圍只能限於同質的環境(相同的硬件平台3.Intranet正在成為企業信息系統最佳的解決方案,而其中Java將發揮不可替代的作用。Intranet的目的是把Internet用於企業內部的信息系統,它的優點表現在:便宜,易於使用和管理。用戶不管使用何種類型的機器和操作系統,界面是統一的Intrnet瀏覽器,而數據庫、Web頁面、應用程序(用Java編的Applet)則存在WWW服務器上,無論是開發人員,還是管理人員,抑或是用戶都可以受益於該解決方案。Java語言正在不斷發展和完善,Sun公司是主要的發展推動者,較通用的編譯環境有JDK(JavaDevelopKit)與JWS(JavaWorkshop)。還有很多其他公司正在開發Java語言的編譯器與集成環境,預計不久Java語言的正確性與效率都將會提高,用戶用Java編程和現在用C++編程更方便。
三.Java語言的特點
Java到底是一種什麼樣的語言呢?Java是一種簡單的面象對象的分佈式的解釋的健壯的安全的結構中立的可移植的性能很優異的多線程的動態的語言。
1.簡單
Java最初是為對家用電器進行集成控制而設計的一種語言,因此它必須簡單明了。Java語言的簡單性主要體現在以下三個方面:1.Java的風格類似於C++,因而C++程序員是非常熟悉的。從某種意義上講,Java語言是C及C++語言的一個變種,因此,C++程序員可以很快就掌握Java編程技術。2.Java摒棄了C++中容易引發程序錯誤的地方,如指針和內存管理。3.Java提供了豐富的類庫。
2.面向對象
面向對象可以說是Java最重要的特性。Java語言的設計完全是面向對象的,它不支持類似C語言那樣的面向過程的程序設計技術。Java支持靜態和動態風格的代碼繼承及重用。單從面向對象的特性來看,Java類似於SmallTalk,但其它特性、尤其是適用於分佈式計算環境的特性遠遠超越了SmallTalk。
3.分佈式
Java包括一個支持HTTP和FTP等基於TCP/IP協議的子庫。因此,Java應用程序可憑藉URL打開並訪問網絡上的對象,其訪問方式與訪問本地文件系統幾乎完全相同。為分佈環境尤其是Internet提供的動態內容無疑是一項非常宏偉的任務,但Java的語法特性卻使我們很容易地實現這項目標。
4.健壯
Java致力於檢查程序在編譯和運行時的錯誤。類型檢查幫助檢查出許多開發早期出現的錯誤。Java自已操縱內存減少了內存出錯的可能性。Java還實現了真數組,避免了覆蓋數據的可能。這些功能特徵大大縮短了開發Java應用程序的周期。Java提供Null指針檢測數組邊界檢測異常出口位元組代碼校驗。
5.結構中立
另外,為了建立Java作為網絡的一個整體,Java將它的程序編譯成一種結構中立的中間文件格式。只要有Java運行系統的機器都能執行這種中間代碼。現在,Java運行系統有Solaris2.4(SPARC),Win32系統(Windows95和WindowsNT)等.Java源程序被編譯成一種高層次的與機器無關的byte-code格式語言,這種語言被設計在虛擬機上運行,由機器相關的運行調試器實現執行。
6.安全
Java的安全性可從兩個方面得到保證。一方面,在Java語言里,象指針和釋放內存等C++功能被刪除,避免了非法內存操作。另一方面,當Java用來創建瀏覽器時,語言功能和瀏覽器本身提供的功能結合起來,使它更安全。Java語言在你的機器上執行前,要經過很多次的測試。它經過代碼校驗,檢查代碼段的格式,檢測指針操作,對象操作是否過分以及試圖改變一個對象的類型。
6.1Byte-code校驗
如果byte-code通過代碼校驗,沒有返回錯誤,我們可知道:代碼沒有堆棧上溢出和下溢出所有操作代碼參數類型都是正確的沒有發生非法數據轉換,如將整數轉換成指針。訪問對象操作是合法的
6.2類裝載
ClassLoader通過將本機類與網絡資源類的名稱分開,來保持安全性。因為調入類時總要經過檢查,這樣避免了特洛伊木馬現象的出現。從網絡上下載的類被調進一個與源相關的私有的名字域。當一個私有類訪問另一個類時,build-in(本機類)首先被檢查,然後檢查相關的類。這樣就避免了破壞本機類情況的出現。
7.可移植的
同體系結構無關的特性使得Java應用程序可以在配備了Java解釋器和運行環境的任何計算機系統上運行,這成為Java應用軟件便於移植的良好基礎。但僅僅如此還不夠。如果基本數據類型設計依賴於具體實現,也將為程序的移植帶來很大不便。例如在Windows3.1中整數(Integer)為16bits,在Windows95中整數為32bits,在DECAlpha中整數為64bits,在Intel486中為32bits。通過定義獨立於平台的基本數據類型及其運算,Java數據得以在任何硬件平台上保持一致。Java語言的基本數據類型及其表示方式如下:byte8-bit二進制補碼short16-bit二進制補碼int32-bit二進制補碼long64-bit二進制補碼float32-bitIEEE754浮點數double32-bitIEEE754浮點數char16-bitUnicode字符
在任何Java解釋器中,數據類型都是依據以上標準具體實現的。因為幾乎目前使用的所有CPU都能支持以上數據類型、8~64位整數格
什麼是SMART操作系統?
SMART:Sub-coMponent ARchitecTure, 子構件體系結構,是智能手機系統。
1、 由浙江大學在2003年嵌入式系統領域提出的子構件體系結構,稱為SMART體系(Sub-coMponent ARchitecTure)。
2、SMART體系結構融合了細粒度構件、彈性設計、任意剪裁等優點,具有代碼高質量、高可靠性、高實時性、應用定製等特點。SMART體系結構的軟件模塊由構件組成,而構件由子構件組成,通過構件拆分完成通用接口普適性與特定模塊專用性的良好結合。用戶可以根據自己的應用需求,選擇不同的子構件構建出符合需求的嵌入式系統。
3、SMART體系結構的核心部分由SMARTOS、面向SOC的新一代嵌入式操作系統、JAVAOS、彈性協議棧組成;中間層包括嵌入式中間件、嵌入式多媒體、嵌入式數據庫、安全等;上層為各種應用軟件。SMART體系結構如下圖所示。其中SMARTOS將實時性、節能、多層次嵌入式文件系統等很好的融合在一起,為上層應用提供了可靠快捷的支持。
4、SMARTOS面向傳統的嵌入式系統硬件,實現了分組硬實時任務調度,上下文切換時間短;實現了CACHE可分配的內存調度,充分利用了現代CPU中CACHE、內存的存儲層次;使用多種外部存儲器,構建了虛設備完成了低功耗大容量的嵌入式文件系統;使用DVS技術構建了SMART節能框架,通過預測對系統能耗進行統一管理。
java網絡編程的基本內容有哪些?其特點和優勢如何?請進行論述。
1.用Java編寫網絡程序是非常簡單的——至少比在現有其他編程環境下要簡單得多。本書的新版本帶給開發者的是Java發展的最新特性。一旦開始使用Java的網絡API進行網絡編程,我們能做到可以想像到的一切事情。 本書對開發網絡程序進行了非常完整的介紹(從應用程序和applet兩方面),它包括了從網絡基礎到遠程方法調用(RMI)的所有內容。本書的章節涵蓋了TCP和UDP套接字、組播、內容和協議處理器以及兩個新的API:JSSE(SSL實現)和JavaMail API。擴充了I/O和多線程等基礎知識。還講述了在不直接編寫網絡代碼時你所能夠實現的內容,例如如何用URL實現自己的目標、applet的基本功能以及如何用Swing處理HTML。無論是有經驗的網絡程序員還是只想隨意看一看的初學者,都會發現本書對於Java的網絡程序類的學習是相當完整的。本書內容涵蓋了:1、Java 2(JDK 1.2和1.3)和Java1.1。2、許多完整的程序(可在線獲取)。3、網絡編程基礎的所有方面。4、一些高級專題,包括RMI和組播。5、許多重要的API,有JSSE、JavaMail以及Swing中的HTML解析器。Elliotte Rusty Harold是著名的Java網站Cafe Au Lait的作者(http://metalab.unc.edu/javafaq),國際知名的計算機專家。他是《Java I/O》以及其他一些Java和XML技術圖書的作者。 「直到找到這本書之後,我才開始真正理解Java網絡編程。」——Bruce Eckel,《Java編程思想》的作者.
2.JAVA的特點§ 1.2 Java的特點
Java是一個廣泛使用的網絡編程語言 ,它是一種新的計算概念。
首先 ,作為一種程序設計語言 ,它簡單、面向對象、不依賴於機器的結構、
具有可移植性、魯棒性、安全性、並且提供了並發的機制、具有很高的性能。其
次 ,它最大限度地利用了網絡 ,Java的小應用程序 (applet)可在網絡上傳輸而
不受 CPU和環境的限制。另外 ,Java還提供了豐富的類庫 ,使程序設計者可以很
方便地建立自己的系統。
下面我們分別從這三個方面來討論 Java的特點 ,然後通過把 Java與 C,
C++相比進一步指出它所具有的優點。
一、 Java語言
Java語言有下面一些特點 :簡單、面向對象、分佈式、解釋執行、魯棒、
安全、體系結構中立、可移植、高性能、多線程以及動態性。
:1.簡單性
Java語言是一種面向對象的語言 ,它通過提供最基本的方法來完成指定的
任務 ,只需理解一些基本的概念 ,就可以用它編寫出適合於各種情況的應用程
序。 Java略去了運算符重載、多重繼承等模糊的概念 ,並且通過實現自動垃圾
收集大大簡化了程序設計者的內存管理工作。另外 ,Java也適合於在小型機上運
行 ,它的基本解釋器及類的支持只有 40KB左右 ,加上標準類庫和線程的支持也
只有 215KB左右。庫和線程的支持也只有 215KB左右。
2.面向對象
Java語言的設計集中於對象及其接口 ,它提供了簡單的類機制以及動態的
接口模型。對象中封裝了它的狀態變量以及相應的方法 ,實現了模塊化和信息
隱藏 ;而類則提供了一類對象的原型 ,並且通過繼承機制 ,子類可以使用父類
所提供的方法 ,實現了代碼的復用。
3.分佈性
Java是面向網絡的語言。通過它提供的類庫可以處理 TCP/IP協議 ,用戶
可以通過 URL地址在網絡上很方便地訪問其它對象。
4.魯棒性
Java在編譯和運行程序時 ,都要對可能出現的問題進行檢查 ,以消除錯誤
的產生。它提供自動垃圾收集來進行內存管理 ,防止程序員在管理內存時容易
產生的錯誤。通過集成的面向對象的例外處理機制 ,在編譯時,Java提示出可能
出現但未被處理的例外 ,幫助程序員正確地進行選擇以防止系統的崩潰。另外,
Java在編譯時還可捕獲類型聲明中的許多常見錯誤 ,防止動態運行時不匹配問題
的出現。
5.安全性
用於網絡、分佈環境下的 Java必須要防止病毒的入侵。 Java不支持指針,
一切對內存的訪問都必須通過對象的實例變量來實現 ,這樣就防止程序員使用
“特洛伊 “木馬等欺騙手段訪問對象的私有成員 ,同時也避免了指針操作中容易
產生的錯誤。
6.體系結構中立
Java解釋器生成與體系結構無關的位元組碼指令 ,只要安裝了 Java運行時
系統 ,Java程序就可在任意的處理器上運行。這些位元組碼指令對應於 Java虛擬
機中的表示 ,Java解釋器得到位元組碼後 ,對它進行轉換 ,使之能夠在不同的平
台運行。
7.可移植性
與平台無關的特性使 Java程序可以方便地被移植到網絡上的不同機器。
同時 ,Java的類庫中也實現了與不同平台的接口 ,使這些類庫可以移植。另外,
Java編譯器是由 Java語言實現的 ,Java運行時系統由標準 C實現 ,這使得Java
系統本身也具有可移植性。
8.解釋執行
Java解釋器直接對 Java位元組碼進行解釋執行。位元組碼本身攜帶了許多
編譯時信息 ,使得連接過程更加簡單。
9.高性能
和其它解釋執行的語言如 BASIC、 TCL不同 ,Java位元組碼的設計使之能
很容易地直接轉換成對應於特定CPU的機器碼 ,從而得到較高的性能。
10.多線程
多線程機制使應用程序能夠並行執行 ,而且同步機制保證了對共享數據
的正確操作。通過使用 多線程 ,程序設計者可以分別用不同的線程完成特定
的行為 ,而不需要採用全局的事件循環機制 ,這樣就很容易地實現網絡上的實
時交互行為。
11.動態性
Java的設計使它適合於一個不斷發展的環境。在類庫中可以自由地加入
新的方法和實例變量而不會影響用戶程序的執行。並且 Java通過接口來支持
多重繼承 ,使之比嚴格的類繼承具有更靈活的方式和擴展性。
參考資料:
3.Java已用動態的交互應用軟件使Web栩栩如生。它使開發人員
具有『編寫一次到處運行TM」的巨大能力。而且,藉助其JavaAPI
及其編程語言上的Java虛擬機,它已產生一種分佈信息的嶄新模式。
這種模式叫做Java企業計算,正在幫助各企業以各種不同的方法取
得競爭優勢。網管和控制已大大簡化。軟件分配基本上是免費的,
而且立即可實現。電子貿易已獲得。佔有成本大幅度降低。信息和
應用軟件到處可存取。
Java建立在簡單的前提基礎上,即所有微處理器都應講同一種
語言——所有內部採用芯片的產品都應能一起工作,無縫而方便地
共享信息。它已經改變企業和個人同Internet大交道的方式。現在,
它正在對消費類產品產生明顯的影響,而且從總體上更加深刻地影
響企業計算。
藉助Java,您可自由自在地使用您已擁有的硬件和軟件。這是因
為Java是獨立於平台的。它還可使您超越企業計算,使應用軟件在便
攜式計算機、信息亭、電視、蜂窩電話和其他大量設備上運行。
全世界的公司都已發現Java數不勝數的用途。所有用途可從其無
可比擬的能力,即提高可靠性、安全性和簡化各種不同計算產品和
環境的能力中受益非淺,而且節省的時間和費用十分可觀。
Java無處不在。它已擁有幾百萬個用戶,其發展速度要快於在它
以前的其他任何一種計算機產品。它可位於任何地方,而且能到處運
行。Java正在迅速被用做傳播信息的事實上標準,這是因為它既可給
企業,也可給最終用戶帶來似乎數不清的好處。
何為java
Java語言是一種適用於網絡編程的語言,它的基本結構與C++極為相似,但卻簡單得多。它集成了其它一些語言的特點和優勢,又避開了它們的不足之處。有人預言:Java將成為網絡上的「世界語」,今後,用其他語言編寫的軟件統統都要用Java語言來改寫.
Java發展至今日,已不僅僅是一種編程語言,實際上已形成了一門技術.其內容包括:
1)Java軟件包
Java語言及其編程技術、JavaOS、Java開發環境與工具、Java語言的各種軟件包、數據庫接口JDBC等。
2)Java虛擬機及其規範
3) Java嵌入技術(Java芯片)
已推出的有Java戒指、Java卡等。1999年8月2日,Sun公司宣布名為MAJC的專門為Java語言設計的的芯片優化研製成功,欲與Intel試比高低。該芯片在設計時採用了模塊式高性能計算引擎,實質為一種芯片級並行處理機,能以更有效的方式分解計算任務,特別適合處理多媒體數據。Sun公司希望通過MAJC芯片的發佈催生出一個基於Java語言的微處理器家族,與Intel公司競爭。設想中的Java處理器將應用在從低價消費電子產品到高端互聯網服務器領域。
4)Java計算
基於Java技術的企業Internet/Intranet信息系統以及其他應用系統。
5)Jini技術
1999年初正式發佈後,立刻得到業界的廣泛支持。Jini的出現為Java網絡連接提供了公共標準,使得任何Java設備都可以連入網絡中被自動識別,並可充分利用網絡上已有的各種資源。它把網絡上的各類設備(包括消費類電子設備如流動電話、PDA、DTV、HPC、NC、遊戲機、電冰箱、智能卡等等)和各種軟件組合成一個單一、動態的分佈式系統,使網絡更易於操縱、易於管理,具有更高的可配置性。Jini將使網絡具有自發性,它的出現大大擴展了「計算」和「計算機」的含義,極大地簡化了網絡操作,對家庭用戶來說,使用網上設備即插即用,就像使用電話一樣方便。Java和Jini 不僅可以不依賴於Windows為代表的操作系統,而且引導着信息產業的潮流,使Sun公司能在未來的、非PC類電子產品的數字化市場中強佔制高點。
6)Jiro平台
異質網絡環境中安裝的存儲系統的多樣性和分佈性,給存儲管理帶來了巨大的挑戰。用戶和開發人員都希望能有一種技術,能更好地促進企業存儲管理方案的開發。而Jiro平台正是解決此問題的革命性方案。Jiro平台實現了Java和Jini 技術,它是一個便於用戶管理異質網絡上由各種服務器、存儲和設備組成的混合環境的開放式存儲管理平台。它對操作系統是中立的。Jiro為跨異質存儲局域網(SAN)的管理服務和設備提供了一個開放平台,允許服務器、存儲和聯網設備在異質網絡環境中無縫地協同工作。Jiro平台為開發者帶來的好處有:
允許開發者利用各種實現管理存儲網絡的目標功能創建應用;
提供了一個可以在各種應用、服務和設備之間交互操作的組件模型;
允許設備易被增加、刪除;
允許應用或服務被自動更新。
1999年7月,Sun發佈了正式的Jiro規範草案,供公眾討論、修改。目前,Jiro平台的團體成員已超過25家,支持Jiro平台的廠商超過300家。有眼光的廠商紛紛加入到這些組行列,從而加快了Jiro的發展。
出處:
原創文章,作者:SNKA,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/132781.html