1. windows編程主要能實現什麼或者它有什麼作用
一、Windows中的映射模式
1、Windows定義映射模式的目的
經過我的綜合,Windows定義映射模的目的又以下幾個方面:1、不同人的使用習慣。不同國家的,不同地區,以及不同的人因為習慣喜歡用不同的度量單位,有的人人喜歡用英寸,而有的人喜歡用公制中的厘米,毫米等。其他的人又喜歡用另外一些單位。、2、使軟體與硬體向分離開來。讓開發的軟體能夠最大限度的與硬體無關。3、提供邏輯和物理的一種轉換。就相當於銀行的利率。
2、默認的映射模式
默認的映射模式使MM_TEXT,它使以象素為單位的。X軸向左為正,Y軸向下為正。默認的坐標原點在左上角。
3、固定比例映射模式
固定比例的映射模式有MM_LOMETRIC、MM_HIMETRIC、MM_LOENGLISH、MM_HIENGLISH、MM_TWIPS種。它們默認的坐標原點都使在左上角。其區別在於每一個邏輯單位對應的物理大小不一樣。所對用的邏輯單位分別為0.1毫米,0.01毫米,0.01英寸,0.001英寸,1/1440英寸(0.0007英寸)。
4、可變比例映射模式
對於可變比例的映射模式用戶可以自己定義一個邏輯單位代表的大小,其大小可以任意。也可以讓這個大小隨環境改變而改變。有MM_ISOTROPIC,MM_ANISOTROPIC這兩種映射模式。其邏輯單位的大小等於視口范圍和窗口范圍的比值。兩者的不同在於前者要求X軸和Y軸的度量單位必須相同,而後者沒有這樣的限制。
二、Windows中的幾種坐標體系
1、屏幕坐標
屏幕坐標描述物理設備(顯示器、列印機等)的一種坐標體系,坐標原點在屏幕的左上角,X軸向右為正,Y軸向下為正。度量單位是象素。原點、坐標軸方向、度量單位都是不能夠改變的。
2、設備坐標(又稱物理坐標)
設備坐標是描述在屏幕和列印機顯示或列印的窗體的一種坐標體系。默認的坐標原點是在其客戶區的左上角。X軸向右為正,Y軸向下為正。度量單位為象素。原點和坐標軸方向可以改變,但是度量單位不可以改變。
3、邏輯坐標
邏輯坐標是在程序中控制顯示,列印使用的坐標體系。該坐標系與定義的映射模式密切相關。默認的映射模式是MM_TEXT。我們可以通過設置不同的映射模式來改變該坐標體系的默認行為。
三、邏輯坐標和設備坐標之間的轉換
現有如下代碼:
void CMapModeView::OnPaint()
{
CPaintDC dc(this);
//獲取設備類的設置
CPoint ptOrgView,ptOrgWindow;
CSize sizeView,sizeWindow;
CString strMsg;
ptOrgView=dc.GetViewportOrg();//獲取視口原點
ptOrgWindow=dc.GetWindowOrg();//獲取窗口原點
sizeView=dc.GetViewportExt();//獲取視口范圍
sizeWindow=dc.GetWindowExt();//獲取窗口范圍
strMsg.Format(_T("Viewport Extent:(%d,%d),\tViewport Org:(%d,%d)\tWindow Extent:(%d,%d)\tWindow Org(%d,%d)"),
sizeView.cx,sizeView.cy,ptOrgView.x,ptOrgView.y,
sizeWindow.cx,sizeWindow.cy,ptOrgWindow.x,ptOrgWindow.y);
TRACE("%s\n",strMsg);
//設置映射模式以及原點
dc.SetMapMode(MM_TEXT);//設置映射模式
dc.SetWindowOrg(100,100);//設置窗口的坐標原點
dc.SetViewportOrg(200,200);//設置視口的坐標原點
dc.SetWindowExt(5,10);//改語句僅對可變比例映射模式有效
dc.SetViewportExt(1,1);//同上
ptOrgView=dc.GetViewportOrg();
ptOrgWindow=dc.GetWindowOrg();
sizeView=dc.GetViewportExt();
sizeWindow=dc.GetWindowExt();
strMsg.Format(_T("Viewport Extent:(%d,%d),\tViewport Org:(%d,%d)\tWindow Extent:(%d,%d)\tWindow Org(%d,%d)"),
sizeView.cx,sizeView.cy,ptOrgView.x,ptOrgView.y,
sizeWindow.cx,sizeWindow.cy,ptOrgWindow.x,ptOrgWindow.y);
TRACE("%s\n",strMsg);
//將點(300,400)從邏輯坐標體系映射到設備坐標體系。
CPoint ptMap;
ptMap=CPoint(300,400);
dc.LPtoDP(&ptMap);
strMsg.Format(_T("The Orginal Point(In LP):CPoint(300,400),Convert to DP is:CPoint(%d,%d)"),
ptMap.x,ptMap.y);
TRACE("%s\n",strMsg);
//將點(300,400)從設備坐標體系映射到邏輯坐標體系
ptMap=CPoint(300,400);
dc.DPtoLP(&ptMap);
strMsg.Format(_T("The Orginal Point(In DP):CPoint(300,400),Convert to LP is:CPoint(%d,%d)"),
ptMap.x,ptMap.y);
TRACE("%s\n",strMsg);
}
以上代碼最後調試輸出結果為:
Viewport Extent:(1,1), Viewport Org:(0,0) Window Extent:(1,1) Window Org(0,0)
Viewport Extent:(1,1), Viewport Org:(200,200) Window Extent:(1,1) Window Org(100,100)
The Orginal Point(In LP):CPoint(300,400),Convert to DP is:CPoint(400,500)
The Orginal Point(In DP):CPoint(300,400),Convert to LP is:CPoint(200,300)
按照MSDN上,函數SetWindowOrg(x,y)設定設備坐標下的點(x,y)對應於邏輯坐標的原點。SetVieportOrg(x,y)設定邏輯坐標下點(x,y)對應邏輯坐標的原點。而實際上如果同時設置了邏輯坐標和設備坐標原點的話,那麼以上的說法是錯誤的。
在默認映射模式MM_TEXT下,一個邏輯單位對應於設備坐標下的一個象素。改變默認原點以後的坐標體系如下圖所示:
(0,0) Dx,Lx (0,0)
(100,100) Lx
(200,200) Dx
.(300,400)
Dy,Ly Ly Dy
在VC中坐標系的轉換和數學中的數學轉化是不一樣的。在這里是以距離為標准。首先看一下如何把點(300,400)如何從設備坐標轉換成邏輯坐標。
在設備坐標體系下,點(300,400)與Y軸的距離為100個邏輯單位。那麼所對應的邏輯坐標也要滿足與邏輯坐標Y軸的距離為100個單位。又1個邏輯單位對應1個象素。所以所對應的設備坐標的X值為100+100=200。同樣可以出對應的邏輯坐標的Y值為300。
按照同樣的方法,我們也可以把邏輯坐標下的點(300,400)轉換成設備坐標。在邏輯坐標下,點
2. linux學習書籍求推薦
Linux學習書籍求推薦
1、《Linux與Unix Shell 編程指南》
C語言基礎
1、《C Primer Plus,5th Edition》【美】Stephen Prata著
2、《The C Programming Language, 2nd Edition》【美】Brian W. Kernighan David M. Rithie(K & R)著
3、《Advanced Programming in the UNIX Environment,2nd Edition》(APUE)
4、《嵌入式Linux應用程序開發詳解》
Linux內核
1、《深入理解Linux內核》(第三版)
2、《Linux內核源代碼情景分析》毛德操 胡希明著
研發方向
1、《UNIX Network Programming》(UNP)
2、《TCP/IP詳解》
3、《Linux內核編程》
4、《Linux設備驅動開發》(LDD)
硬體基礎
1、《ARM體系結構與編程》杜春雷著
2、S3C2410 Datasheet
英語基礎
1、《計算機與通信專業英語》
系統教程
1、《嵌入式系統――體系結構、編程與設計》
2、《嵌入式系統――採用公開源代碼和StrongARM/Xscale處理器》毛德操 胡希明著
3、《Building Embedded Linux Systems》
理論基礎
1、《演算法導論》
2、《數據結構(C語言版)》
3、《計算機組織與體系結構?性能分析》
4、《深入理解計算機系統》【美】Randal E. Bryant David O』Hallaron著
5、《操作系統:精髓與設計原理》
6、《編譯原理》
7、《數據通信與計算機網路》
8、《數據壓縮原理與應用》
入門篇
《LINUX權威指南》書不錯,寫的很全面也比較廣,涉及的不深,做為入門書籍不錯,可以比較全面的了解linux 。另外比較熱門的也可以看看《鳥哥的私房菜》等書,偏管理類的書。如果想做server方向的可以找來看看。
驅動 篇
《LINUX設備驅動程序 》就是網上說的「LDD」,經典之作,必備書籍。國產經典《Linux驅動詳細解》也是一本非常不錯的書,很實用,書中源代碼分析比較多,基於2440的,對linux外圍驅動有很全面的講解
內核篇
浙江大學的《LINUX內核源代碼情景分析》,外國鬼子的《萊昂氏UNIX源代碼分析》還有《深入理解linux內核》都是出名的經典巨作。另外趙 炯的《LINUX內核完全剖析–基於0.12內核》也非常不錯,對內核代碼進行了詳細的注釋,非常有助於對內核的理解和代碼的分析。
shell篇
《LINUX與UNIX Shell編程指南》
應用 編程
不用說了肯定是《unix環境高級編程》被稱為unix編程的聖經。
TCP/IP篇
《TCP/IP詳解》作者W.Richard Stevens也是《unix環境高級編程》的作者,牛人出的書沒有一本不是經典的。但是英年早逝,默哀一下。
c語言
《The C Programming Language》正是作者造出來的c語言,書能垃圾就怪了
《c和指針》和《c缺陷和陷阱》兩本必備。包含了c語言最容易出錯的地方,加深c語言功力的好材料。
關於演算法
《演算法導論》
1 熟悉linux基本環境 >>> 《鳥哥的私訪菜》《unix初級教程》 《linux編程寶典》(市面上無,圖書館有), 等等。
2 熟悉操作系統的基礎知識 >>> 《現代操作系統》 《操作系統概念》
3 熟悉系統編程 >>> 《unix環境高級編程第二版》《unix操作系統設計與實現》
4 內核 按先後順序: 《 linux內核設計與實現》 《linux設備驅動程序》 《深入理解 linux內核》 《linux內核源代碼情景分析》 《深入理解linux虛擬內存系統》
5 其他一些書籍: 《freebsd操作系統設計與實現》 《solaris內核結構》 《unix高級教程:系統技術內幕》 《現代體系結構的unix系統:內核程序員的smp與cache技術》 《保護方式下的80386及其編程》 (後3本市面上沒了,大學圖書館里一般都有》 《Intel64 and IA-32 Arichitectures Software Developer』s Manual》
6 其實內核玩深了,體系和編譯也要學好 《計算機體系結構:量化研究方法》 《編譯原理》(龍書)
Linux編程推薦書籍一覽表
shell 編程
《LINUX與UNIX SHELL編程指南》
BASH寶典:
Advanced Bash Scripting Guide (如果你使用的是 GNU/Debian 系統,可以用 apt-get install abs-guide 安裝該文檔)
BASH Programming – Introction HOW-TO
Bash Man
用戶級編程書籍:
Advanced Programming in the UNIX Environment(中文版《UNIX環境高級編程》第二版) 作者 W.Richard
Stevens/尤晉元等
GNU/Linux編程指南 作者 Kurt Wall
Linux 程序設計權威指南 作者 於明儉、陳向陽、方漢
《The Art of Unix Programming》作者 E.S.R
Computer Systems A Programmer』s Perspective
(中文名)《深入理解計算機系統(修訂版)》
《Unix Systems Programming》(中文版《UNIX系統編程》)作者: (美)KAY
A.ROBBINS, STEVE ROBBINS 譯者:陳涓 趙振平
網路編程:
Unix Network Programming V1 & V2,Unix網路編程卷1、2 作者 W.Richard Stevens
《unix網路編程》
XWindow編程
Definitive Guides to the X WindowSystem 作者 Dan Heller, Paula M. Ferguson
內核源代碼閱讀(結合源代碼)和編程
(入門)
《邊干邊學Linux內核指導》
(高級)
《Linux Kernel Development》
《Linux內核源代碼情景分析》
《深入分析Linux內核源代碼》 陳莉君
《 Understanding Linux Network Internals 》即《 深入理解Linux網路內幕(英文影印版)》Christian Benvenuti
內核模塊編程
《The Linux Kernel Mole Programming Guide》
Linux設備驅動編程
Linux設備驅動程序/Linux Device
Drivers 作者 Alessandro Ruibini
多線程編程
《多線程編程指南》
3. linux操作系統有哪五個基本的組成部分
Linux系統一般有4個主要部分:內核、shell、文件系統和應用程序。Linux內核主要由五個子系統組成:進程調度,內存管理,虛擬文件系統,網路介面,進程間通信。
操作系統 = 內核 + 系統程序
系統程序 = 編譯環境 + API
編譯環境 = 編譯程序 + 連接程序 + 裝載程序
API = 系統調用 + 語言庫函數(C、C++、Java等等)
AUI = shell + 系統服務常式(如x伺服器等)+ 應用程序(瀏覽器,字處理,編輯器等)
軟體系統 = 操作系統 + AUI
操作系統最底層的組件是內核,其上層搭建了許多系統軟體。
系統程序包括三個部分,分別是:編譯環境、應用程序介面和用戶介面。
編譯環境包含匯編、C 等低高級語言編譯程序,連接程序和裝載程序,這些程序負責將文本格式的程序語言轉變為機器能識別和裝載的機器代碼。
應用程序介面(API)包含內核提供的系統調用介面和語言庫,系統調用是為了能讓應用程序使用內核服務,語言庫函數則是為了方便應用程序開發,所以將一些常用的基礎功能預先編譯以供使用,比如對C語言來說常用的C庫等;
用戶介面(AUI)包括我們熟悉的shell、系統服務程序和常用的應用程序。
這是一個典型的結構,但不是一成不變。許多操作系統的發行中會有所刪減,比如應用於嵌入式設備的系統,對X伺服器就可能不做要求。但是像內核、系統調用等要素是必不可少的。
Linux系統一般有4個主要部分:內核、shell、文件系統和應用程序。內核、shell和文件系統一起形成了基本的操作系統結構,它們使得用戶可以運行程序、管理文件並使用系統。
一.Linux內核
內核是操作系統的核心,具有很多最基本功能,如虛擬內存、多任務、共享庫、需求載入、可執行程序和TCP/IP網路功能。Linux內核主要由五個子系統組成:進程調度,內存管理,虛擬文件系統,網路介面,進程間通信。
二.Linux shell
shell是系統的用戶界面,提供了用戶與內核進行交互操作的一種介面。它接收用戶輸入的命令並把它送入內核去執行,是一個命令解釋器。另外,shell編程語言具有普通編程語言的很多特點,用這種編程語言編寫的shell程序與其他應用程序具有同樣的效果。
三.Linux文件系統
文件系統是文件存放在磁碟等存儲設備上的組織方法。Linux系統能支持多種目前流行的文件系統,如EXT2、 EXT3、 FAT、 FAT32、VFAT和ISO9660。
四.Linux應用程序
標準的Linux系統一般都有一套都有稱為應用程序的程序集,它包括文本編輯器、編程語言、X
Window、辦公套件、Internet工具和資料庫等。
4. win和nuix有什麼區別 還有luix 在界面方面
Linux與Windows XX的總體比較
Linux何以備受青睞,致使除微軟以外,國際上有名的硬、軟體廠商都毫無例外地與之結盟、捆綁。甚至連世界IT的龍頭老大「藍後巨人」IBM也要「全面擁抱Linux」呢?
首先,Linux作為自由軟體有兩個特點:一是它免費提供源碼,二是愛好者可以按照自己的需要自由修改、復制和發布程序的源碼,並公布在Internet上。這就吸引了世界各地的操作系統高手為Linux編寫各種各樣的驅動程序和應用軟體,使得Linux成為一種不僅只是一個內核,而且包括系統管理工具、完整的開發環境和開發工具、應用軟體在內,用戶很容易獲得的操作系統。
由於可以得到Linux的源碼,所以操作系統的內部邏輯可見,這樣就可以准確地查明故障原因,及時採取相應對策。在必要的情況下,用戶可以及時地為Linux打 「補丁」(這正是筆者前面文章中討論的集市模式開發軟體最本質的內容),這是其它操作系統所沒有的優勢。同時,這也使得用戶容易根據操作系統的特點構建安全保障系統,不會由於不了解不公開源碼的 「黑盒子」式的系統預留的什麼 「後門」而受到意外的打擊。
第二,究其根本,Linux是一個UNIX系統變種,因此也就具有了Unix系統的一系列優良特性,Unix上的應用可以很方便地移植到Linux平台上,這使得Unix用戶很容易掌握Linux。下面簡要地描述UNIX亦即Linux的一系列特色。
2.1 UNIX/Linux的主要特色
早期UNIX的主要特色是結構簡煉、便於移植和功能相對強大,經過30來年的發展和進化,形成了一些極為重要並穩定的特色,其中主要包括:
1. 技術成熟,可靠性高
經過30來年開放式道路的發展,UNIX的一些基本技術已變得十分成熟,有的已成為各類操作系統的常用技術。實踐表明,UNIX是能達到大型主機(mainframe)可靠性要求的少數操作系統之一。目前許多UNIX大型主機和伺服器在國外的大型企業中每天24小時,每年365天不間斷地運行。例如,不少大企業或政府部門,即所謂肩負關鍵使命的場合/部門將其整個企業/部門信息系統建立並運行在以UNIX為主伺服器的Client/Server結構上。但到目前為止,世界上還沒有一家大型企業將其重要的信息系統完全建立在NT上。
2. 極強的可伸縮性
UNIX系統是世界上唯一能在筆記本電腦、PC、工作站,直至巨型機上運行的操作系統,而且能在所有主要CPU晶元搭建的體系結構上運行(包括Intel/AMD及HP-PA、MIPS、PowerPC、UltraSPARC、ALPHA等RISC晶元)。至今為止,世界上沒有第二個操作系統能達到這一點。此外,由於UNIX系統能很好地支持SMP、MPP和Cluster等技術,使其可伸縮性又有了很大的增強。目前,商品化UNIX系統能支持的SMP,CPU數已達到幾百甚至更多個,MPP系統中的節點甚至已超過1024個UNIX支持的異種平台Cluster技術也已投入使用。UNIX的伸縮性遠遠超過了NT操作系統目前所能達到的水平
3. 網路功能強
網路功能是UNIX系統的一又一重要特色,作為Internet網技術和異種機連接重要手段的TCP/IP協議就是在UNIX上開發和發展起來的。TCP/IP是所有UNIX系統不可分割的組成部分。因此,UNIX伺服器在Internet伺服器中佔80%以上,占絕對優勢。此外,UNIX還支持所有常用的網路通信協議,包括NFS、DCE、IPX/SPX、SLIP、PPP等,使得UNIX系統能方便地與已有的主機系統,以及各種廣域網和區域網相連接,這也是UNIX具有出色的互操作性(Interoperability)的根本原因。
4. 強大的資料庫支持能力
由於UNIX具有強大的支持資料庫的能力和良好的開發環境,因此多年來,所有主要資料庫廠商,包括Oracle、Informix、Sybase、Progress等,都把UNIX作為主要的資料庫開發和運行平台,並創造出一個又一個性價比的新記錄。UNIX伺服器正在成為大型企業數據中心替代大型主機的主要平台。
5. 開發功能強
UNIX系統從一開始就為軟體開發人員提供了豐富的開發工具。成為工程工作站的首選和主要的操作系統和開發環境。可以說,工程工作站的出現和成長與UNIX是分不開的。至今為止,UNIX工作站仍是軟體開發廠商和工程研究設計部門的主要工作平台。有重大意義的軟體新技術的出現幾乎都在UNIX上,如TCP/IP、WWW、OODBMS等。
6. 開放性好
開放性是UNIX最重要的本質特性。開放系統概念的形成與UNIX是密不可分的。UNIX是開放系統的先驅和代表。由於開放系統深入人心,幾乎所廠商都宣稱自己的產品是開放系統,確實每一種系統都能滿足某種開放的特性,如可移植性、可兼容性、可伸縮性、互操作性等。但所有這些系統與開放系統的本質特徵—不受某些廠商的壟斷和控制相去甚遠,只有UNIX完全符合這一條件。
7. 標准化
過去,Unix界被分析家和用戶批判,因為沒有為所有Unix操作系統提供統一的標准。其實,到目前為止,國際標准化組織(ISO)、工業團體恰恰是以UNIX基礎制訂了一系列標准化,如ISO/IEC的POSIX標准、IEEE POSIX標准、X/Open組織的XPG3/4工業標准以及後來的Spec 1170(因為它包含了1170個應用編程介面,後來改名為UNIX』95)標准。不少人對標准及標准化組織的作用及職權產生了誤解。事實上,當標准化組織企圖駕馭互相競爭的力量,和企圖為用戶規定他們的要求時是註定要失敗的。比方說,標准只能用於給出道路的規則,而不應用於製造汽車。如果廠家被強迫完全遵從單一的標准,而不允許他們產品有特色,則用戶將受害,Unix將變成象任何單一廠家的產品一樣,沒有任何特色。
Unix標准組織的真實目標是為用戶和廠家定義一種規定Unix形態的基礎。標准將保證Unix系統是可操作的,並且其應用是便於移植的。但它們也允許相互競爭的開放開發環境能創新和具有技術特色。
當然,由於UNIX是有版權的,而且其源頭有多家,許多廠家自行開發,並強調特色而導致UNIX版本的不統一(相比之下,Linux的核心是統一的,各發行廠家只是在外部作了不同程度的開發,但又都要遵循POSIX等標准,所以不會存在UNIX那種四分五裂的表象)。即便如此,Unix系統已經提供了比任何其他操作系統更多的可互操作性。公共的聯網和系統管理協議允許用戶方便地混用和匹配多種Unix系統。從一種Unix向另一種Unix移植應用只需幾天時間,而在完全不同的操作系統間移植或重寫代碼需要幾個月甚至幾年時間。
而且Unix工業界還在快速地向前發展,使得互操作性和可移植性更為方便。由獨立的X/Open組織管理的Unix』95為操作系統廠家和應用開發商規定了商品Unix的形態。所有的Unix廠家已經從Unix』95規格說明。
開發或購買遵從Unix』95規格的應用可保證用戶方便地從一個Unix操作系統向另一個移植。但並不強迫用戶購買只遵從Unix』95規格的產品,用戶可以開發和遵從開放且自由競爭的市場購買具有新的擴充的產品,以滿足自己特殊的需要。
這樣,Unix工業界再次為用戶提供了選擇的權力。如果伸縮性和移植性對用戶的業務是最重要的,用戶可以選擇遵從Unix』95的應用;如果先進技術是關鍵,則用戶可選擇某一廠傢具有新擴充的應用,當然這些擴充尚未成為標准。
由於Unix不斷發展,因此,Unix』95標准將繼續發展以接納某些廠家的創新。
2.2 Linux和Windows XX相比有何特點
1. 可完全免費得到
Linux操作系統可以從互聯網上免費下載使用,只要您有快速的網路連接就行;而且,Linux上跑的絕大多數應用程序也是免費可得的。用了Linux就再也不用背」使用盜版軟體」的黑鍋了。
2. 可以運行在386以上及各種RISC體系結構機器上
Linux最早誕生於微機環境,一系列版本都充分利用了X86CPU的任務切換能力,使X86CPU的效能發揮得淋淋盡致,而這一點連Windows都沒有做到。此外,它可以很好地運行在由各種主流RISC晶元(ALPHA、MIPS、PowerPC、UltraSPARC、HP-PA等)搭建的機器上。
3. Linux是UNIX的完整實現
從發展的背景看,Linux與其他操作系統的區別是,Linux是從一個比較成熟的操作系統發展而來的,而其他操作系統,如WindowsNT等,都是自成體系,無對應的相依託的操作系統。這一區別使得Linux的用戶能大大地從Unix團體貢獻中獲利。無論是Unix的作者還是Unix的用戶,都認為只有Unix才是一個真正的操作系統,許多計算機系統(從個人計算機到超級計算機)都存在Unix版本,Unix的用戶可以從很多方面得到支持和幫助。因此,Linux作為Unix的一個克隆,同樣會得到相應的支持和幫助,直接擁有Unix在用戶中建立的牢固的地位。
UNIX上的絕大多數命令都可以在Linux里找到並有所加強。UNIX的可靠性、穩定性以及強大的網路功能也在Linux身上一一體現。
4. 真正的多任務多用戶
只有很少的操作系統能提供真正的多任務能力,盡管許多操作系統聲明支持多任務,但並不完全准確,如Windows。而Linux則充分利用了X86CPU的任務切換機制,實現了真正多任務、多用戶環境,允許多個用戶同時執行不同的程序,並且可以給緊急任務以較高的優先順序。
5. 完全符合POSIX標准
POSIX是基於UNIX的第一個操作系統簇國際標准,Linux遵循這一標准這使UNIX下許多應用程序可以很容易地移植到Linux下,相反也是這樣。
6. 具有圖形用戶界面
Linux的圖形用戶界面是Xwindow系統。Xwindow可以做MSWindows下的所有事情,而且更有趣、更豐富,用戶甚至可以在幾種不同風格的窗口之間來回切換。
7. 具有強大的網路功能
實際上,Linux就是依靠互聯網才迅速發展了起來,Linux具有強大的網路功能也是自然而然的事情。它可以輕松地與TCP/IP、LANManager、Windows for Workgroups、Novell Netware或Windows NT網路集成在一起,還可以通過乙太網或數據機連接到Internet上。
Linux不僅能夠作為網路工作站使用,更可以勝任各類伺服器,如X應用伺服器、文件伺服器、列印伺服器、郵件伺服器、新聞伺服器等等。
8. 是完整的UNIX開發平台
Linux支持一系列的UNIX開發工上,幾乎所有的主流程序設計語言都已移植到Linux上並可免費得到,如C、C++、Fortran77、ADA、PASCAL、Moal2和3、Tcl/TkScheme、SmallTalk/X等。
總而言之,Unix就是可供各種用戶選擇的對象。一個操作系統已經使分布式計算成為現實。一個操作系統正在使新形式的交互娛樂成為現實並正確領導通向新的工程和商業應用的路。這就是Unix所體現的精神。但Unix還不止於此。主要地,Unix給用戶選擇最佳應用、最佳開發環境、最佳網路功能和最佳硬體的自由,以滿足用戶的業務要求。Unix還給用戶選擇何時升級系統的自由,甚至當用戶改變主意時,用戶可以以最少的痛苦來安裝一個新系統,只要業務需要。
Unix專門獻身於使用戶保持選擇的權力。
三、 主要產品的競爭
上面我們從總體上講述了UNIX從而也是Linux的特點,下面我們從伺服器,桌面機和嵌入式三個不同層面上來比較Linux與Windows之間的優缺點、強項和弱處。
3.1伺服器操作系統——Linux與NT
伺服器是涉及一大類機器的統稱,最高端,用作超級計算或頂級企業和網路伺服器的MPP(大規模並行處理機)、SMP(對稱多處理機)、Cluster(集群機),Mainframe(大型主機);到普通商用資料庫伺服器的中型機,如IBM AS/400,中高檔伺服器如IBM RS/6000/系列機,HP 9000/K系列,SUN Ultra SPARC中高檔伺服器(如10000系列)、SGI的1000系列等。以及低端,用作郵件、文件/列印伺服器等的普通PC伺服器,門類繁多,不一而足。在這方面Linux都有其產品,而NT基本上是處於PC伺服器檔次上的操作系統。
5. python編程有哪些ide
PyCharm:在人工智慧和機器學習領域,它可以說是最好的Python
IDE,它合並了多個庫,提供給使用者更多選擇的方向。它兼容Windows、MacOS、Linux,優點是支持web開發框架,如Flask、Django,提供智能代碼功能,可以更快速地
bug 修復,缺點是界面較龐大,成本高昂。
Sublime
Text:被認為是較好的編輯器,因為它簡單、通用。它兼容Windows、MacOS、Linux,它使用廣泛,可用於很多平台,優點是可以處理很多標記語言,提供了強大的API和生態系統,以提高性能,缺點是對於新手來說過於高級,對git的支持也不是很友好。
Vim:位列前五名,是一個modal
editor,相比最初的vi,vim有了很大的進步,功能也更加強大,兼容的設備也更多,如android、UNIX等,優點是有鍵盤界面,可以提高效率,以及眾多插件的支持,缺點是界面相對笨重,不太方便使用,modal
editor需要用戶花費一定時間學習。
IDLE:深受學生歡迎,是自帶的編輯器,使用簡單、通用,支持很多設備,在使用復雜工具之前,可以通過IDLE學習基礎的知識。優點:具備輕量級的Python
shell,含有內置修正功能,允許用戶在編輯器中搜索及替換文件。缺點是不支持復制庫以及腳本有行數規定。
Atom:是一個開源的編輯器,PHP、Java也可以使用,會定期更新,github也為它開發了強大的功能以提高編程體驗。