應用軟件工程師崗位培訓課程常用操作系統(tǒng)ppt課件
《應用軟件工程師崗位培訓課程常用操作系統(tǒng)ppt課件》由會員分享,可在線閱讀,更多相關《應用軟件工程師崗位培訓課程常用操作系統(tǒng)ppt課件(56頁珍藏版)》請在裝配圖網上搜索。
常用操作系統(tǒng),,windows版本及開發(fā)工具簡介 進程 線程 線程的建立與退出 線程調度 線程同步 動態(tài)連接庫 與其它操作系統(tǒng)區(qū)別,2,windows版本,Windows1.0 Windows是由微軟在1983年11月(在Lisa之后,Macintosh之前)宣布,并在兩年后(1985年11月)發(fā)行。在此后的兩年中,緊隨著Microsoft Windows早期版本1.0之后,又推出了幾種改進版本,以支持國際商業(yè)市場,并提供新型視訊顯示器和打印機的驅動程序。 Windows2.0 Windows版本2.0是在1987年11月正式在市場上推出的。該版本對使用者接口做了一些改進。這些改進中最有效的是使用了可重迭式窗口,而Windows 1.0中使用的是并排式窗口。Windows 2.0還增強了鍵盤和鼠標接口,特別是加入了菜單和對話框。 Windows3.x Microsoft Windows版本3.1是1992年4月發(fā)布的,其中包括的幾個重要特性是TrueType字體技術(給Windows帶來可縮放的輪廓字體)、多媒體(聲音和音樂)、對象連結和嵌入(OLE:Object Linking and Embedding)和通用對話框。跟OS/2一樣,Windows 3.1只能在保護模式下運作,并且要求至少配置了1MB內存的286或386處理器。 Window NT 在1993年7月發(fā)表的Windows NT是第一個支持Intel 386、486和Pentium微處理器32位保護模式的Windows版本。Windows NT提供32位平坦尋址,并使用32位的指令集。(本章后面我會談到一些尋址空間的問題)。Windows NT還可以移植到非Intel處理器上,并在幾種使用RISC芯片的工作站上執(zhí)行。,3,windows版本,Windows95/98 Windows 95是在1995年8月發(fā)布的。和Windows NT一樣,Windows 95也支持Intel 386或更高等級處理器的32位,但是Windows 95具有需要較少硬件資源的優(yōu)點。 Windows 98在1998年6月發(fā)布,具有保護模式。雖然它缺少Windows NT中的某些功能,諸如高安全性和對RISC機器的可移植性等許多加強功能,包括執(zhí)行效能的提高、更好的硬件支持以及與因特網和全球信息網(WWW)更緊密的結合。 Windows ME 2000年9月微軟公司發(fā)行32位圖形操作系統(tǒng)Windows ME,該操作系統(tǒng)是在Windows 95和Windows 98的基礎上開發(fā)的。 Window2000 Windows 2000有四個版本:Professional、Server、Advanced Server和Datacenter Server。所有版本的Windows 2000都有共同的一些新特征:NTFS5,新的NTFS文件系統(tǒng);EFS,允許對磁盤上的所有文件進行加密;WDM,增強對硬件的支持。 WindowXP 2001年10月微軟發(fā)布了Windows XP,它包括了簡化了的Windows 2000的用戶安全特性,并整合了防火墻,以用來確保長期以來一直困擾微軟的安全問題。 WINDOWS 2003 2003年1月發(fā)布的Windows2003大量繼承了Windows XP的友好操作性和Windows 2000 sever的網絡特性,是一個同時適合個人用戶和服務器使用的操作系統(tǒng)。Windows 2003完全延續(xù)了Windows XP安裝時方便、快捷、高效的特點,幾乎不需要多少人工參與就可以自動完成硬件的檢測、安裝、配置等工作。雖然在名稱上,Windows 2003又延續(xù)了Windows家族的習慣命名法則,但從其提供的各種內置服務以及重新設計的內核程序來說,Windows 2003與Windows 2000/XP有著本質的區(qū)別。,4,windows開發(fā)工具,常見的Windows應用程序開發(fā)語言和工具: Microsoft Visual C++ Microsoft Visual Basic Microsoft Visual J++ Borland Delphi …,5,,windows版本及開發(fā)工具簡介 進程 線程 線程的建立與退出 線程調度 線程同步 動態(tài)連接庫 與其它操作系統(tǒng)區(qū)別,6,進程,進程通常被定義為一個正在運行的程序的實例,它由兩個部分組成: 操作系統(tǒng)用來管理進程的內核對象。 地址空間,它包含所有可執(zhí)行模塊或DLL模塊的代碼和數據。它還包含動態(tài)內存分配的空間。如線程堆棧和堆分配空間。 每個進程至少擁有一個線程,來執(zhí)行進程的地址空間中的代碼。,7,進程句柄和優(yōu)先級,進程的實例句柄 加載到進程地址空間的每個可執(zhí)行文件或DLL文件均被賦予一個獨一無二的實例句柄。對于加載資源的函數調用來說,通常都需要該句柄的值。 表示進程句柄的兩種數據類型:HMODULE與HINSTANCE,進程的優(yōu)先級,8,創(chuàng)建進程,創(chuàng)建進程的幾種方式: 調用ShellExecute函數 調用WinExec函數 調用Createprocess函數 函數原型: HINSTANCE ShellExecute( HWND hwnd, LPCTSTR lpOperation, LPCTSTR lpFile, LPCTSTR lpParameters, LPCTSTR lpDirectory, INT nShowCmd ); UINT WinExec( LPCSTR lpCmdLine, UINT uCmdShow); BOOL CreateProcess( LPCTSTR lpApplicationName, LPTSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCTSTR lpCurrentDirectory, LPSTARTUPINFO lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation );,9,終止進程,終止進程運行常用的四種方式: 主線程的進入點函數返回 進程中的一個線程調用ExitProcess函數 一個進程中的線程調用TerminateProcess函數(應該避免使用這種方法) 程中的所有線程自行終止運行(這種情況非常少)。,10,終止進程,思考調用和不調用ExitProcess函數程序輸出結果的不同: class CSample { public: CSample(){printf(“Constructor\n“);} ~CSample(){printf(“Destructor\n“);} }; CSample g_SampleObj; void main() { CSample SampleObj; ExitProcess(0); },不調用ExitProcess函數的輸出結果: Constructor Constructor Destructor Destructor 調用ExitProcess函數的輸出結果: Constructor Constructor,11,進程間通信方式,文件映射 文件映射(Memory-Mapped Files)能使進程把文件內容當作進程地址區(qū)間一塊內存那樣來對待。因此,進程不必使用文件I/O操作,只需簡單的指針操作就可讀取和修改文件的內容。Win32 API允許多個進程訪問同一文件映射對象,各個進程在它自己的地址空間里接收內存的指針。通過使用這些指針,不同進程就可以讀或修改文件的內容,實現了對文件中數據的共享。應用程序有三種方法來使多個進程共享一個文件映射對象: 繼承:第一個進程建立文件映射對象,它的子進程繼承該對象的句柄 ; 命名文件映射:第一個進程在建立文件映射對象時可以給該對象指定一個名字(可與文件名不同)。第二個進程可通過這個名字打開此文件映射對象。另外,第一個進程也可以通過一些其它IPC機制(有名管道、郵件槽等)把名字傳給第二個進程。 句柄復制:第一個進程建立文件映射對象,然后通過其它IPC機制(有名管道、郵件槽等)把對象句柄傳遞給第二個進程。第二個進程復制該句柄就取得對該文件映射對象的訪問權限。,12,進程間通信方式,共享內存 Win32 API中共享內存(Shared Memory)實際就是文件映射的一種特殊情況。進程在創(chuàng)建文件映射對象時用0xFFFFFFFF來代替文件句柄(HANDLE),就表示了對應的文件映射對象是從操作系統(tǒng)頁面文件訪問內存,其它進程打開該文件映射對象就可以訪問該內存塊。由于共享內存是用文件映射實現的,所以它也有較好的安全性,也只能運行于同一計算機上的進程之間。 匿名管道 匿名管道(Anonymous Pipe)是在父進程和子進程之間,或同一父進程的兩個子進程之間傳輸數據的無名字的單向管道。通常由父進程創(chuàng)建管道,然后由要通信的子進程繼承通道的讀端點句柄或寫端點句柄,然后實現通信。父進程還可以建立兩個或更多個繼承匿名管道讀和寫句柄的子進程。這些子進程可以使用管道直接通信,不需要通過父進程。 匿名管道是單機上實現子進程標準I/O重定向的有效方法,它不能在網上使用,也不能用于兩個不相關的進程之間。,13,進程間通信方式,命名管道 命名管道(Named Pipe)是服務器進程和一個或多個客戶進程之間通信的單向或雙向管道。不同于匿名管道的是命名管道可以在不相關的進程之間和不同計算機之間使用,服務器建立命名管道時給它指定一個名字,任何進程都可以通過該名字打開管道的另一端,根據給定的權限和服務器進程通信。 命名管道提供了相對簡單的編程接口,使通過網絡傳輸數據并不比同一計算機上兩進程之間通信更困難,但它不適合同時和多個進程通信。 郵件槽 郵件槽(Mailslots)提供進程間單向通信能力,任何進程都能建立郵件槽成為郵件槽服務器。其它進程,稱為郵件槽客戶,可以通過郵件槽的名字給郵件槽服務器進程發(fā)送消息。進來的消息一直放在郵件槽中,直到服務器進程讀取它為止。一個進程既可以是郵件槽服務器也可以是郵件槽客戶,因此可建立多個郵件槽實現進程間的雙向通信。,14,進程間通信方式,剪貼板 剪貼板(Clipped Board)實質是Win32 API中一組用來傳輸數據的函數和消息,為Windows應用程序之間進行數據共享提供了一個中介,Windows已建立的剪切(復制)-粘貼的機制為不同應用程序之間共享不同格式數據提供了一條捷徑。當用戶在應用程序中執(zhí)行剪切或復制操作時,應用程序把選取的數據用一種或多種格式放在剪貼板上。然后任何其它應用程序都可以從剪貼板上拾取數據,從給定格式中選擇適合自己的格式。 動態(tài)數據交換 動態(tài)數據交換(DDE)是使用共享內存在應用程序之間進行數據交換的一種進程間通信形式。應用程序可以使用DDE進行一次性數據傳輸,也可以當出現新數據時,通過發(fā)送更新值在應用程序間動態(tài)交換數據。 對象連接與嵌入 應用程序利用對象連接與嵌入(OLE)技術管理復合文檔(由多種數據格式組成的文檔),OLE提供使某應用程序更容易調用其它應用程序進行數據編輯的服務。,15,進程間通信方式,動態(tài)連接庫 Win32動態(tài)連接庫(DLL)中的全局數據可以被調用DLL的所有進程共享,這就又給進程間通信開辟了一條新的途徑,當然訪問時要注意同步問題。 遠程過程調用 Win32 API提供的遠程過程調用(RPC)使應用程序可以使用遠程調用函數,這使在網絡上用RPC進行進程通信就像函數調用那樣簡單。RPC既可以在單機不同進程間使用也可以在網絡中使用。 NetBios函數 Win32 API提供NetBios函數用于處理低級網絡控制,這主要是為IBM NetBios系統(tǒng)編寫與Windows的接口。除非那些有特殊低級網絡功能要求的應用程序,其它應用程序最好不要使用NetBios函數來進行進程間通信。,16,進程間通信方式,Sockets Windows Sockets規(guī)范是一套Windows下的網絡編程接口。它不僅支持TCP/IP協(xié)議,而且還支持其它協(xié)議(如IPX) ,使程序員可以充分利用Windows的消息機制進行編程。 WM_COPYDATA消息 WM_COPYDATA是一種非常強大的消息。當一個應用向另一個應用傳送數據時,發(fā)送方只需使用調用SendMessage函數,參數是目的窗口的句柄、傳遞數據的起始地址、WM_COPYDATA消息。接收方只需像處理其它消息那樣處理WM_COPY DATA消息,這樣收發(fā)雙方就實現了數據共享。,17,常用的進程相關函數,GetExitCodeProcess 檢索進程退出碼 GetGuiResources 確定有多少用戶或圖形設備接口(GUI)對象在使用中 SetPriorityClass 設置進程的基準優(yōu)先級 GetPriorityClass 獲得進程的基準優(yōu)先級 SetProcessAffinityMask 確定進程選擇那個CPU GetProcessAffinityMask 設置為進程所選擇的CPU SetProcessPriorityBoost 允許或禁止來自動態(tài)地改變進程優(yōu)先級的Windows GetProcessPriorityBoost 讀取優(yōu)先級增加狀態(tài) SetProcessShutDownParameters 在系統(tǒng)關閉過程中 GetProcessShutDownParameters 讀取關閉參數 SetProcessWorkingSetSize 設置進程占用的最小和最大物理存儲器 GetProcessWorkingSetSize 讀取工作區(qū) TerminateProcess 緩和地終止進程 ExitProcess 突然終止進程 GetProcessVersion 確定進程期望的Windows版本 GetProcessTimes 獲取進程的CPU占用率 GetStartUpInfo 獲取作為傳送到CreateProcess的啟動結構,18,,windows版本及開發(fā)工具簡介 進程 線程 線程的建立與退出 線程調度 線程同步 動態(tài)連接庫 與其它操作系統(tǒng)區(qū)別,19,線程,線程是由兩個部分組成的: 線程的內核對象,操作系統(tǒng)用它來對線程實施管理。內核對象也是系統(tǒng)用來存放線程統(tǒng)計信息的地方。 線程堆棧,它用于維護線程在執(zhí)行代碼時需要的所有函數參數和局部變量。,20,線程的創(chuàng)建,創(chuàng)建線程的三種方法: 激活一個新進程 調用Win32 API函數CreateThread 調用C運行庫函數_beginthread/_beginthreadex 函數原型: HANDLE CreateThread ( SEC_ATTRS SecurityAttributes, ULONG StackSize, SEC_THREAD_START StartFunction, PVOID ThreadParameter, ULONG CreationFlags, PULONG ThreadId ); uintptr_t _beginthread( void( __cdecl *start_address )( void * ), unsigned stack_size, void *arglist ); uintptr_t _beginthreadex( void *security, unsigned stack_size, unsigned ( __stdcall *start_address )( void * ), void *arglist, unsigned initflag, unsigned *thrdaddr );,21,線程的終止,若要終止線程的運行,可以使用下面的方法: 線程函數返回(最好使用這種方法)。 通過調用ExitThread(或_endthread/_endthreadex)函數,線程將自行撤消(最好不要使用這種方法)。 同一個進程或另一個進程中的線程調用TerminateThread函數(應該避免使用這種方法)。 包含線程的進程終止運行(應該避免使用這種方法)。,22,線程的終止,線程終止運行時發(fā)生的操作: 線程擁有的所有用戶對象均被釋放。在Windows中,大多數對象是由包含創(chuàng)建這些對象的線程的進程擁有的。但是一個線程擁有兩個用戶對象,即窗口和掛鉤。當線程終止運行時,系統(tǒng)會自動撤消任何窗口,并且卸載線程創(chuàng)建的或安裝的任何掛鉤。其他對象只有在擁有線程的進程終止運行時才被撤消。 線程的退出代碼從STILL_ACTIVE改為傳遞給ExitThread或TerminateThread的代碼。 線程內核對象的狀態(tài)變?yōu)橐淹ㄖ?如果線程是進程中最后一個活動線程,系統(tǒng)也將進程視為已經終止運行。 線程內核對象的使用計數遞減1。,23,線程的優(yōu)先級,線程的優(yōu)先級 獲取線程的優(yōu)先級 int GetThreadPriority( HANDLE hThread); 設置線程的優(yōu)先級 BOOL SetThreadPriority( HANDLE hThread, int nPriority);,24,線程的優(yōu)先級,進程優(yōu)先級類和線程相對優(yōu)先級的映射,25,線程調度,線程調度的方法: 暫停和恢復線程的運行 調用SuspendThread函數暫停一個線程的執(zhí)行 DWORD SuspendThread( HANDLE hThread); 調用ResumeThread函數恢復一個線程的執(zhí)行 DWORD ResumeThread( HANDLE hThread); 睡眠方式 調用Sleep函數告訴系統(tǒng)本線程不想在某個時間段被調度 VOID Sleep( DWORD dwMilliseconds); 轉換到另一個線程 調用SwitchToThread的函數使另一個線程得到調度 BOOL SwitchToThread(VOID);,26,線程同步,線程可以使自己進入等待狀態(tài),直到一個對象變?yōu)橐淹ㄖ獱顟B(tài)。 可處于已通知狀態(tài)或未通知狀態(tài)的內核對象 : 進程 文件修改通知 線程 事件 作業(yè) 可等待定時器 文件 信標 控制臺輸入 互斥對象,27,線程同步,常用等待函數: 等待一個內核對象變?yōu)橐淹ㄖ獱顟B(tài)函數: DWORD WaitForSingleObject( HANDLE hHandle, DWORD dwMilliseconds) 等待多個內核對象變?yōu)橐淹ㄖ獱顟B(tài)函數: DWORD WaitForMultipleObjects(DWORD nCount, CONST HANDLE *lpHandles, BOOL bWaitAll, DWORD dwMilliseconds);,28,事件內核對象,創(chuàng)建事件內核對象: HANDLE CreateEvent( LPSECURITY_ATTRIBUTES lpEventAttributes, BOOL bManualReset, BOOL bInitialState, LPCTSTR lpName); 打開事件內核對象: HANDLE OpenEvent( DWORD dwDesiredAccess, BOOL bInheritHandle, LPCTSTR lpName); 將事件改為已通知狀態(tài): BOOL SetEvent( HANDLE hEvent); 將事件改為未通知狀態(tài): BOOL ResetEvent( HANDLE hEvent);,29,示例,30,人工重置事件,31,自動重置事件,32,信標內核對象,信標內核對象的創(chuàng)建 HANDLE CreateSemaphore( LPSECURITY_ATTRIBUTES lpSemaphoreAttribute, LONG lInitialCount, LONG lMaximumCount, LPCTSTR lpName); 打開信標內核對象 HANDLE OpenSemaphore( DWORD dwDesiredAccess, BOOL bInheritHandle, LPCTSTR lpName); 釋放信標資源: BOOL ReleaseSemaphore( HANDLE hSemaphore, LONG lReleaseCount, LPLONG lpPreviousCount);,33,,信標內核對象使用示例,34,互斥對象內核對象,互斥對象的創(chuàng)建 HANDLE CreateMutex( LPSECURITY_ATTRIBUTES lpMutexAttributes, BOOL bInitialOwner, LPCTSTR lpName); 打開互斥對象 HANDLE OpenMutex( DWORD dwDesiredAccess, BOOL bInheritHandle, LPCTSTR lpName); 釋放互斥對象 BOOL ReleaseMutex( HANDLE hMutex);,35,內核對象與線程同步之間的相互關系,36,,windows版本及開發(fā)工具簡介 進程 線程 線程的建立與退出 線程調度 線程同步 動態(tài)連接庫 與其它操作系統(tǒng)區(qū)別,37,庫,什么是庫? 庫的分類 靜態(tài)鏈接庫 動態(tài)鏈接庫,38,動態(tài)連接庫,為什么使用DLL 擴展了應用程序的特性。 可以用許多種編程語言來編寫。 簡化了軟件項目的管理 有助于節(jié)省內存 有助于資源的共享 有助于應用程序的本地化 有助于解決平臺差異 可以用于一些特殊的目的,39,動態(tài)連接庫,動態(tài)鏈接庫的入口/出口點,40,動態(tài)鏈接庫,導出和導入DLL函數和數據 在庫的.def文件的EXPROTS部分中填寫出導出項目的名稱 使用工具相關的方法,比如Visual C++所使用的__declspec(dllexport)關鍵字。,41,動態(tài)鏈接庫,動態(tài)鏈接庫的調用 隱式調用 讓應用程序的源代碼只引用DLL中包含的符號。這樣,當應用程序啟動運行時,加載程序就能夠隱含加載(和鏈接)需要的DLL。 顯式調用 在應用程序運行時讓應用程序顯式加載需要的DLL并且顯式鏈接到需要的輸出符號。 顯式加載: HMODULE LoadLibrary( LPCTSTR lpFileName); 顯式卸載: BOOL FreeLibrary( HMODULE hModule); 顯式鏈接到一個輸出符號: FARPROC GetProcAddress( HMODULE hModule, LPCSTR lpProcName);,42,線程調用LoadLibrary時執(zhí)行的操作步驟,43,線程調用FreeLibrary時執(zhí)行的操作步驟,44,常用的線程相關函數,AttachThreadInput 選用線程的處理另外的線程允許的輸入,其中,要設置的權能集中在每一個另外的窗口和共享輸入狀態(tài) CreateRemoteThread 在另一個進程中,創(chuàng)建線程 CreateThread 在當前進程中創(chuàng)建線程 ExitThread 退出當前線程 TerminateThread 沒有適當地清除情況下,終止線程 GetCurrentTherad 得到當前線程句柄 GetCurrentThreadId 得到當前線程ID GetExitCodeThread 得到線程的退出代碼 SetTheradPriority 設置線程優(yōu)先級 GetThreadPriority 讀取線程優(yōu)先級 SetThreadPriorityBoost 使能或不使該線程的動態(tài)優(yōu)先級增加 GetThreadPriorityBoost 讀取該線程動態(tài)優(yōu)先級增加的狀態(tài) GetThreadTimes 確定被創(chuàng)建、破壞的線程以及使用了多少進程時間 SuspendThread 掛起線程 ResumeThread 恢復線程(每個命令必須調用SuspendThread一次) SetThreadAffinityMask 確定線程在那個進程中運行 SetThreadIdealProcessor 設置線程所選擇運行的處理機 SwitchToThread 使處理機放棄另外的線程(沒有選擇哪個線程),45,,windows版本及開發(fā)工具簡介 進程 線程 線程的建立與退出 線程調度 線程同步 動態(tài)連接庫 與其它操作系統(tǒng)區(qū)別,46,,目前常見操作系統(tǒng)有 LINUX UNIX vxworks windows ……,47,嵌入式系統(tǒng),嵌入式系統(tǒng) 嵌入式系統(tǒng)是以嵌入式計算機為技術核心,面向用戶、面向產品、面向應用,軟硬件可裁減的;適用于對功能、可靠性、成本\體積、功耗等綜合性能有嚴格要求的專用計算機系統(tǒng)。 嵌入式系統(tǒng)的特點: 高可靠性 實時性 和具體應用有機地結合在一起 軟件代碼要求高質量、高可靠性 一般都固化在只讀存儲器中或間存中,48,嵌入式操作系統(tǒng),嵌入式操作系統(tǒng) 嵌入式操作系統(tǒng)EOS(Embedded OperatingSystem)是一種用途廣泛的系統(tǒng)軟件,過去它主要應用于工業(yè)控制和國防系統(tǒng)領域。EOS負責嵌人系統(tǒng)的全部軟、硬件資源的分配、調度工作,控制協(xié)調并發(fā)活動;它必須體現其所在系統(tǒng)的特征,能夠通過裝卸某些模塊來達到系統(tǒng)所要求的功能。 嵌入式操作系統(tǒng)特有功能 可裝卸性 強實時性 統(tǒng)一的接口 操作方便、簡單、提供友好的圖形GUI 提供強大的網絡功能 強穩(wěn)定性,弱交互性 固化代碼 更好的硬件適應性,49,常用嵌入式操作系統(tǒng),常用嵌入式操作系統(tǒng) PALM OS Windows CE Linux VxWorks,50,常用嵌入式操作系統(tǒng),PALM OS 優(yōu)點 操作系統(tǒng)的節(jié)能功能 合理的內存管理 數據是以數據庫(database)的格式來存儲的 外圍硬件十分豐富,51,常用嵌入式操作系統(tǒng),Windows CE優(yōu)點 具有靈活的電源管理功能,包括睡眠/喚醒摸式 高效率的操作系統(tǒng)特性 擁有良好的通信能力 支持嵌套中斷 更好的線程響應能力 擁有256個優(yōu)先級別 支持近1500個Win32 API,52,常用嵌入式操作系統(tǒng),Linux優(yōu)點 精簡的內核,性能高、穩(wěn)定,多任務 適用于不同的CPU,支持多種體系結構 能夠提供完善的嵌人式GUI以及嵌入式X.Wifld。WS。 提供完整的開發(fā)工具和SDK,同時提供PC上的開發(fā)版本 用戶可定制,可提供圖形化的定制和配置工具 常用嵌入式芯片的驅動集,支持大量的周邊硬件設備,驅動豐富 針對嵌人式的存儲方案,提供實時版本和完善的嵌入式解決方案 完善的中文支持,強大的技術支持,完整的文檔 開放源碼,豐富的軟件資源,廣泛的軟件開發(fā)者的支持,價格低廉,結構靈活,適用面廣,53,常用嵌入式操作系統(tǒng),Linux OS與 Windows CE的比較 Linux是開放源代碼的,不存在黑箱技術,遍布全球的眾多Linux愛好者都是Linux開發(fā)者的強大技術支持者;而Windows CE是非開放性OS;使第三方很難實現產品的定制。 Linux的源代碼隨處可得,注釋豐富,文檔齊全,易干解決各種問題。 Linux的內核小、效率高;而 Windows CE在這方面是笨拙的,占用過多的RAM,應用程序龐大。 Linux是開放源代碼的OS,在價格上極具競爭力,適合中國國情。Windows CE的版權費用是廠家不得不考慮的因素。 Linux不僅支持X86芯片,還是一個跨平臺的系統(tǒng)。到目前為止,它可以支持20~30種CPU,很多 CPU(包括家電業(yè)的芯片)廠商都開始做Linux的平臺移植工作,而且移植的速度遠遠超過Java的開發(fā)環(huán)境。如果今天采用Linux環(huán)境開發(fā)產品,那么將來更換CPU時就不會遇到更換平臺的困擾。 Linux內核的結構在網絡方面是非常完整的,它提供了對包括十兆位、百兆位及千兆位的以太網,還有無線網絡、Token ring(令牌環(huán))和光纖甚至衛(wèi)星的支持 Linux在內核結構的設計中考慮適應系統(tǒng)的可裁減性的要求,windows CE在內核結構的設計中并未考慮適應系統(tǒng)的高度可裁減性的要求,54,常用嵌入式操作系統(tǒng),VxWorks優(yōu)點 支持廣泛的工業(yè)標準 具備一個高效的微內核 具有可伸縮性,55,,結束,56,- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- 應用 軟件工程師 崗位培訓 課程 常用 操作系統(tǒng) ppt 課件
裝配圖網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
鏈接地址:http://kudomayuko.com/p-846426.html