新聞中心
在Linux系統(tǒng)中,線程的創(chuàng)建是一個非常常見的操作。線程的創(chuàng)建過程可以通過許多不同的方式實現,其中最為常見的方式就是使用clone函數。這個函數在C語言中的語法如下:

pid_t clone(int (*fn)(void *), void *child_stack,
int flags, void *arg, …
/* pid_t *ptid, struct user_desc *tls, pid_t *ctid */ );
那么,clone函數究竟是什么呢?它的原型又是什么?如何使用它來創(chuàng)建線程呢?下面,我們就來剖析一下這些問題。
一、clone函數是什么?
clone函數是Linux中用于創(chuàng)建線程和進程的系統(tǒng)調用函數之一。它是在2.0版本內核中引入的,它的功能相當于fork和pthread_create兩個函數的結合體。但是,相比這兩個函數,clone函數具有更為靈活的特性。它可以實現在一個進程內創(chuàng)建新的線程或者進程,還可以指定共享或獨立的模式,而且還可以創(chuàng)建線程或進程時傳遞參數。
由于Linux中的進程和線程實際上沒有明顯的區(qū)分,因此,clone函數可以用來實現線程的創(chuàng)建。同時,clone函數的特點也使得它在一些特定的場景下更加適用。比如說,為了在一個進程內創(chuàng)建多個線程,就可以使用clone函數來實現。由于clone函數可以指定創(chuàng)建子線程的??臻g,因此,它還具有更為靈活的特性。
二、clone函數的原型是什么?
clone函數的原型如下:
pid_t clone(int (*fn)(void *), void *child_stack,
int flags, void *arg, …
/* pid_t *ptid, struct user_desc *tls, pid_t *ctid */ );
其中,各個參數的含義如下:
1、fn:指向子線程執(zhí)行的函數入口地址的一個指針。這個函數需要返回一個整數值,如果值為0,則代表線程創(chuàng)建成功,如果值為其他,則代表線程創(chuàng)建失敗。
2、child_stack:指向子線程的??臻g的指針。
3、flags:指定線程的創(chuàng)建方式。它可以取以下幾個值:
CLONE_VM:子線程使用與父線程相同的地址空間。
CLONE_FS:子線程使用與父線程相同的文件系統(tǒng)信息。
CLONE_FILES:子線程使用與父線程相同的文件描述符。
CLONE_SIGHAND:子線程使用與父線程相同的信號處理程序。
CLONE_THREAD:這個參數很重要,如果這個參數為0,則代表創(chuàng)建的是一個新進程,如果這個參數不為0,則代表創(chuàng)建的是一個新線程。
4、arg:傳遞給子線程的參數。
5、ptid:用于存儲子線程的進程ID。
6、tls:用于存儲線程局部存儲(TLS)的用戶描述符。
7、ctid:用于存儲子線程的PID。
三、如何使用clone函數來創(chuàng)建線程?
在了解了clone函數的基本原型之后,我們來看一下如何使用它來創(chuàng)建線程。下面是創(chuàng)建線程的一個例子:
1、先定義一個子線程的執(zhí)行函數,例如:
void *thread_func(void *arg)
{
int i;
for (i = 0; i
{
printf(“This is thread %d\n”, i);
sleep(1);
}
pthread_exit(NULL);
}
這個函數是一個簡單的循環(huán),每次循環(huán)都會輸出一句話,并等待一秒鐘繼續(xù)執(zhí)行。它會通過pthread_exit函數退出線程。
2、然后,我們在主線程中調用clone函數,例如:
int mn()
{
int *status;
void *stack;
stack = malloc(STACK_SIZE);
int pid = clone(thread_func, stack+STACK_SIZE,
CLONE_THREAD|CLONE_SIGHAND|CLONE_VM, 0);
if (pid == -1) {
printf(“Error: thread creation fled\n”);
return 1;
}
pid = wtpid(pid, &status, __WCLONE);
if (pid > 0) {
printf(“Thread exited with status %d\n”, *status);
free(stack);
return 0;
}
}
在這個例子中,我們通過malloc函數來為子線程分配棧空間。然后,我們調用了clone函數,將該函數指定為子線程的執(zhí)行函數,指定??臻g地址為stack+STACK_SIZE,指定參數為0,指定標志CLONE_THREAD|CLONE_SIGHAND|CLONE_VM。如果線程創(chuàng)建成功,clone函數會返回子線程的PID號。主線程等待子線程退出,并打印出子線程的退出狀態(tài)。
通過上面例子的演示,我們可以清晰的了解到如何使用clone函數創(chuàng)建線程。clone函數的功能非常強大,可以實現很多復雜的操作,因此,在線程的創(chuàng)建過程中,我們可以選擇合適的方法來完成任務。
相關問題拓展閱讀:
- Linux到底是一個什么樣的操作系統(tǒng)
- LINUX 容器是什么東西???有什么作用啊?
- Linux下怎么完成Git的配置
Linux到底是一個什么樣的操作系統(tǒng)
單的說,Linux是Unix克隆(Unix clone)或Unix風格(Unix alike)
的操作系統(tǒng)(OS),在原代頌旁碼級上兼容絕大部分Unix標準(指的是IEEE
POSIX,System V,BSD),是一個支持多用戶, 多進程,多線程,實時性
較好的功能
強大而穩(wěn)定的操作系統(tǒng).它可以運行在x86 PC,Sun Sparc,Digital Alpha
,680×0,PowerPC, MIPS等平臺上,可
以說Linux是目前運行硬件平臺最多的操作系統(tǒng). Linux更大的特點在于
它是GNU(Gnu’s Not Unix—-有點分形與混沌的意味—-無限自包含,
簡單的說GNU是一種自由軟件體系)的一員,遵循公共版權許可證(GPL),秉承
“自由的思想,開罩仿放的源碼”的原則,成千上萬的專家/愛好者通過Internet
在不斷地完善并維護它,可以說Linux是計算機愛好者自己的操作系統(tǒng).
追述Linux的歷史直到1990年,Linus Torvalds還是芬蘭赫爾辛基大
學的一名學生,最初是用匯編語言寫了一個在80386保護模式下處理
多任務切換的程序,后來從Minix(Andy Tanenbaum教授所寫的很小
的Unix操作系統(tǒng),主要用于操作系統(tǒng)教學)得到靈感,進一步產生了
自認為狂妄的想法—-寫一個比Minix更好的Minix,于是開始寫了
一些硬件的設備驅動程序,一個小的文件系統(tǒng),……,這樣0.0.1
版本的Linux就出來了,但是它只具有操作系統(tǒng)內核的勉強的雛形,
甚至不能運行,你必須在有Minix的機器上編譯以后才能玩.這時候
Linus已經完全著迷而不想停止,決定踢開Minix,于是在1991年10
月5號發(fā)布Linux 0.0.2版本,在這個版本中已經可以運行bash
(the GNU Bourne Again Shell—-一種用戶與操作系統(tǒng)內核通訊的軟件)
和gcc(GNU C 編譯器).從一開始,Linus就決定自由擴散Linux,包括原代碼,
他在comp.os.minix新聞討論組里發(fā)布Linux 0.0.2時寫到:
“Do you pine for nice days of Minix-1.1, when mem were men
and wrote their own device drivers? Are you without a nice
project and just dying to cut your teeth on a OS you can
try to modify for your needs? Are you finding it frustrsting
when everything works on Minix? No more all-nighters to
get a nifty program working? Then this post might be just
for you.
“As I mentioned a month ago, I’m working on a free version
of a Minix-lookalike for AT-386 computers. It has finally
reached the stage where it’s even usable(though may not be
depending on what you want),and I am willing to put out
the sources for wider distribution. It is just version
0.0.2 … but I’ve successfully run bash,gcc,gnu-make,
gnu-sed,compress,etc.under it.”
隨即Linux引起黑客們(hacker)的注意,通過計算機網絡加入了Linux的
內核開發(fā),Linux傾向于成為一個黑客的系統(tǒng)—-直到今天,在Linux社區(qū)
里內核的開發(fā)被認為是真正的編程.由于一批高野悶橡水平黑客的加入,使Linux
發(fā)展迅猛,到1993年底94年初,Linux 1.0終于誕生了! Linux 1.0已經是一
個功能完備的操作系統(tǒng),而且內核寫得緊湊高效,可以充分發(fā)揮硬件的性能,
在4M內存的80386機器上也表現得非常好,至今人們還在津津樂道于此,
不過自從2.1.xx系列的內核Linux開始走高端的路子—-硬件的發(fā)展太快了,
但是Linux不會失去它的本色.Linux具有良好的兼容性和可移植性,大約在
1.3版本之后,開始向其他硬件平臺上移植,包括號稱最快的CPU—Digital
Alpha(至少目前主頻是更高的).所以不要總把Linux與低檔硬件平臺聯系
到一塊,Linux發(fā)展到今天,這是一個誤區(qū),它只是將硬件的性能充分發(fā)揮
出來而已,Linux必將從低端應用橫掃到高端應用!
在Linux的發(fā)展歷程上還有一件重要的事:Linux加入GNU并遵循公共
版權許可證(GPL).此舉大大加強了GNU和Linux,幾乎所有應用的GNU
庫/軟件都移植到Linux,完善并提高了Linux的實用性,而GNU有了一
個根基,我現在也搞不清楚到底是GNU Linux呢還是基于Linux的GNU.
更重要的是遵循公共版權許可證,在繼承自由軟件的精神的前
提下,不再排斥對自由軟件的商業(yè)行為(如把自由軟件打包以光盤形
式出售),不排斥商家對自由軟件進一步開發(fā),不排斥在Linux上開發(fā)
商業(yè)軟件.從此Linux又開始了一次飛躍,出現了很多的Linux發(fā)行版
,如Slackware,Redhat,Suse,TurboLinux,OpenLinux等十多種,而且
還在增加,注意你不能說”Redhat Linux””Suse Linux””Slackware
Linux”等等,Linux主要指操作系統(tǒng)內核,對所有發(fā)行版內核原代碼
都是一樣的(但集成的內核版本可能因發(fā)行時間不同而有所不同).
還有一些公司在Linux上開發(fā)商業(yè)軟件或把其他Unix平臺的軟件移
植到Linux上來,如今很多IT業(yè)界的大腕如IBM,Intel,Oracle,Infomix
,Syase,Corel,Netscape,CA,Novell等都宣布支持Linux! 商家的
加盟彌補了純自由軟件的不足和發(fā)展障礙,Linux迅速普及到廣大計
算機愛好者,并且進入商業(yè)應用,正是打破某些公司壟斷文化圈的希
望所在!!
Linux是愛好者們通過Internet協(xié)同開發(fā)出來的,當然它的網絡功能十
分強大,比如你可以通過ftp,nfs等來安裝Linux,用它來做網關等等.
隨著Linux的發(fā)展衍生出來的應用恐怕出乎Linus本人最初的預料,
如有人用它來做路由器,有人來做嵌入式系統(tǒng),有人來做實時性系統(tǒng).
…..常有新手問Linux能做什么,其實它不象那些中看不中用的操作
系統(tǒng),不在于你用它能干什么,而在于你想干什么!
Linux的興起還給人們很多啟迪與思考,如集市式軟件開發(fā)的討論,
又如自由軟件的精神……
.
參考資料:
簡單地說,Linux是一套免費使用和自由傳播的類Unix操作系統(tǒng),它主要讓兆枝用于基于Intel x86系列CPU的計算機上。這個系統(tǒng)是由全世界各地的成千上萬的程序員設計和實現的。其目的是建立不受任何商品化軟件的版權制約的、全世界都能自由使用的Unix兼容產品。
Linux的出現,最早開始于一位名叫Linus Torvalds的計算機業(yè)余愛好者,當時他是芬蘭赫爾辛基大學的學生。他的目的是想設計一個代替Minix(是由一位名叫Andrew Tannebaum的計算機教授編寫的一個操作系統(tǒng)示教程序)的操作系統(tǒng),這個操作系統(tǒng)可用于386、486或奔騰處理器的個人計算機上,并且具有Unix操作系統(tǒng)的全部功能,因而開始了Linux雛形的設計。
Linux以它的高效性和靈活性著稱。它能夠在PC計算機上實現全部的Unix特性,具有多任務、多用戶的能力。Linux是在GNU公共許可權限下免費獲得的,是一個符合POSIX標準的操作系統(tǒng)。Linux操作系統(tǒng)軟件包不僅包括完整的Linux操作系統(tǒng),而且還包括了文本編輯器、高級語言編譯器等應用軟件。它還包括帶有多個窗口管理器的X-Windows圖形用戶界面,如同我們使用Windows NT一樣,允許我們使用窗口、圖標和菜單對系統(tǒng)進行操作。
Linux之所以受到廣大計算機愛好者的喜愛,主要原因有兩個,一坦敏是它屬于自由軟件,用戶不用支付任何費用就可以獲得它和它的源代碼,并且可以根據自己的需要對它進行必要的修改,無償對它使用,無約束地繼續(xù)傳播。另一個原因是,它具有Unix的全部功能,任何使用Unix操作系統(tǒng)或想要學習Unix操作系統(tǒng)的人都可以從Linux中獲益。
由于Linux是一套具有Unix全部功能的免費操作系統(tǒng),它在眾多的軟件中占有很大的優(yōu)勢,為廣大的計算機愛好者提供了學習、探索以及修改計算機操作系統(tǒng)內核的機會。
操作系統(tǒng)是一臺計算機必不可少的系統(tǒng)軟件,是整個計算機系統(tǒng)的靈魂。一個操作系統(tǒng)是一個復雜的計算機程序集,它提供操作過程的協(xié)議或行為準則。沒有操作系統(tǒng),計算機就無法工作,就不能解釋和執(zhí)行用戶輸入的命令或運行簡單的程序。大多數操作系統(tǒng)都是由一些主要的軟件公司支持的商品化程序,用戶只能有償使用。如果用戶購買了一個操作系統(tǒng),他就必須滿足供應商所要求的一切條件。因為操作系統(tǒng)是系統(tǒng)程序,用戶不能擅自修改或試驗操作系統(tǒng)的內核。這對于廣大計算機愛好者來說無疑是一種束縛。
要想發(fā)揮計算機的作用,僅有操作系統(tǒng)還不夠,用戶還必須要有各種應用程序的支持。應用程序是用于處理某些工作(如字處理)的軟件包,通常它也只能有償使用。每個應用程序的軟件包都為特定的操作系統(tǒng)和機器編寫。使用者無權修改這些應用程序。使用Linux,可以將操作系統(tǒng)變成一種操作環(huán)境。
由于Linux是一套自由軟件,用戶可以無償地得到它及其源代碼,可以無償地獲得大量的應用程序,而且可以任意地修改和補充它們。這對用戶學習、了解Unix操作系統(tǒng)的內核非常有益。 學習和使用Linux,能為用戶節(jié)省一筆可觀的資金。Linux是目前惟一可免費獲得的、為PC機平臺上的多個用戶提供多任務、多進程功能的操作系統(tǒng),這是人們要使用它的主要原因。就PC機平臺而言,Linux提供了猜拿比其他任何操作系統(tǒng)都要強大的功能,Linux還可以使用戶遠離各種商品化軟件提供者促銷廣告的誘惑,再也不用承受每過一段時間就升級之苦,因此,可以節(jié)省大量用于購買或升級應用程序的資金。
Linux不僅為用戶提供了強大的操作系統(tǒng)功能,而且還提供了豐富的應用軟件。用戶不但可以從Internet上下載Linux及其源代碼,而且還可以從Internet上下載許多Linux的應用程序??梢哉f,Linux本身包含的應用程序以及移植到Linux上的應用程序包羅萬象,任何一位用戶都能從有關Linux的網站上找到適合自己特殊需要的應用程序及其源代碼,這樣,用戶就可以根據自己的需要下載源代碼,以便修改和擴充操作系統(tǒng)或應用程序的功能。這對Windows NT、Windows98、MS-DOS或OS/2等商品化操作系統(tǒng)來說是無法做到的。
Linux為廣大用戶提供了一個在家里學習和使用Unix操作系統(tǒng)的機會。盡管Linux是由計算機愛好者們開發(fā)的,但是它在很多方面上是相當穩(wěn)定的,從而為用戶學習和使用目前世界上更流行的Unix操作系統(tǒng)提供了廉價的機會。現在有許多CD-ROM供應商和軟件公司(如RedHat和TurboLinux)支持Linux操作系統(tǒng)。Linux成為Unix系統(tǒng)在個人計算機上的一個代用品,并能用于替代那些較為昂貴的系統(tǒng)。因此,如果一個用戶在公司上班的時候在Unix系統(tǒng)上編程,或者在工作中是一位Unix的系統(tǒng)管理員,他就可以在家里安裝一套Unix的兼容系統(tǒng),即Linux系統(tǒng),在家中使用Linux就能夠完成一些工作任務
Linux是一種計算機操作系統(tǒng)和它的內核的名字
開放原代碼的操作系統(tǒng)…..
筆記本物理搏數機蔽指安裝 Ubuntu 20.04 Linux 操作系統(tǒng),全程實錄宏銀配
LINUX 容器是什么東西啊?有什么作用啊?
apache
Apache是世界使用排名之一的Web服務器軟件。它可以運行在幾乎所有廣泛使用的計算機平臺上。
Apache源于NCSAhttpd服務器,經過多次修改,成為世界上更流行的Web服務器軟件之一。Apache取自“a patchy server”的讀音,意思是充滿補丁的服務器,因為它是自由軟件,所以不斷有人來為它開發(fā)新的功能、新的特性、修改原來的缺陷。Apache的特點是簡單、速度快、性能穩(wěn)定,并可做代理服務器來使用。
本來它只用于小型或試驗Internet網絡,后來逐步擴充到各種Unix系統(tǒng)中,尤其對Linux的支持相當完美。Apache有多種產品,可以支持SSL技術,支持多個虛擬主機。Apache是以進程為基礎的結構,進程要比線程消耗更多的系統(tǒng)開支,不太適合于多處理器環(huán)境,因此,在一個Apache Web站點擴容時,通常是增加服務器或擴充群集節(jié)點而不是增加處理器。到目前為止Apache仍然是世界上用的最多的Web服務器,市場占有率達60%左右。世界上很多著名的網站如Amazon.com、Yahoo!、W3 Consortium、Financial Times等都是Apache的產物,它的成功之處主要在于它的源代碼開放、有一支開放的開發(fā)隊伍、支持跨平臺的應用(可以運行在幾乎所有的Unix、Windows、Linux系統(tǒng)平臺上)以及它的可移植性等方面。
Apache的誕生極富有戲劇性。當NCSA WWW服務器項目停頓后,那些使用NCSA WWW服務器的人們開始交換他們用于該服務器的補丁程序,他們也很快認識到成立管理這些補丁程序的論壇是必要的。就這樣,誕生了Apache Group,后來這個團體在NCSA的基礎上創(chuàng)建了Apache。
Apache web服務器軟件擁有以下特性:
支持最新的HTTP/1.1通信協(xié)議
擁有簡單而強有力的基于文件的配置過程
支持通用網關接口
支持基于IP和基于域名的虛擬主機
支持多種方式的HTTP認證
集成Perl處理模塊
集成代理服務器模塊
支持實時監(jiān)視服務器狀態(tài)和定制服務器日志
支持服務器端包含指令(SSI)
支持安全Socket層(SSL)
提供用戶會話過程的跟蹤
支持FastCGI
通過第三方模塊可以支持Java Servlets
如果你準備選擇Web服務器,毫無疑問Apache是你的更佳選擇。
Apache有名的幾個項目介紹
HTTP Server
這個在前面的段落介紹過了,Apache已經是他的代號了
ActiveMQ
免費開源由java編寫符合JMS1.1標準的消息中間件。
另外,它也支持通過除java語言外的語言的使用
Ant
這個太出名了。標準的批處理工具。是一套基于java的程序打造工具
Commons
一些常用的工具類庫,包括common-pool,dbcp,fileupload,Common-beans等。
Excalibur
它的主要產品是一個由java寫成的,名字叫做Fortress(要塞) 的輕量級的可嵌入式反向控制容器。
iBATIS
并入的一個項目,是ORM的一個很流行的工具
Geronimo
是Apache軟件基金會為了創(chuàng)造一個兼容j2ee的容器,而整理出來的一個新成果
Jakarta
許多Java子項目的集成,tomcat,ant等就是從這里孵化出去的。
James
是一套用java開發(fā)的郵件、新聞組、消息服務器。它使用的avalon組件框架。目前支持 TP, POP3 和 NNTP 很快也會支持 IMAP
Logging
基于java的可靠,快速,擴展性強的日志工具
Maven
是一套java開發(fā)的工程綜合管理工具。它基于工程對象模型(POM)的理念
Portals
門戶產品
Struts
一套通過servlets和jsp來搭建web應用的MVC框架
Tomcat
用量更大的免費的Java服務器
單的說,Linux是Unix克隆(Unix clone)或Unix風格(Unix alike)
的操作系統(tǒng)(OS),在原代碼級上兼容絕大部分Unix標準(指的是IEEE
POSIX,System V,BSD),是一個支持多用戶, 多進程,多線程,實時性
較好的功能
強大而穩(wěn)定的操作系統(tǒng).它可以運行在x86 PC,Sun Sparc,Digital Alpha
,680×0,PowerPC, MIPS等平臺上,可
以說Linux是目前運行硬件平臺最多的操作系統(tǒng). Linux更大的特點在于
它是GNU(Gnu’s Not Unix—-有點分形與混沌的意味—-無限自包含,
簡單的說GNU是一種自由軟件體系)的一員,遵循公共版權許可證(GPL),秉承
“自由的思想,開放的源碼”的原則,成千上萬的專家/愛好者通過Internet
在不斷地完善并維護它,可以說Linux是計算機愛好者自己的操作系統(tǒng).
追述Linux的歷史直到1990年,Linus Torvalds還是芬蘭赫爾辛基大
學的一名學生,最初是用匯編語言寫了一個在80386保護模式下處理
多任務切換的程序,后來從Minix(Andy Tanenbaum教授所寫的很小
的Unix操作系統(tǒng),主要用于操作系統(tǒng)教學)得到靈感,進一步產生了
自認為狂妄的想法—-寫一個比Minix更好的Minix,于是開始寫了
一些硬件的設備驅動程序,一個小的文件系統(tǒng),……,這樣0.0.1
版本的Linux就出來了,但是它只具有操作系統(tǒng)內核的勉強的雛形,
甚至不能運行,你必須在有Minix的機器上編譯以后才能玩.這時候
Linus已經完全著迷而不想停止,決定踢開Minix,于是在1991年10
月5號發(fā)布Linux 0.0.2版本,在這個版本中已經可以運行bash
(the GNU Bourne Again Shell—-一種用戶與操作系統(tǒng)內核通訊的軟件)
和gcc(GNU C 編譯器).從一開始,Linus就決定自由擴散Linux,包括原代碼,
他在comp.os.minix新聞討論組里發(fā)布Linux 0.0.2時寫到:
“Do you pine for nice days of Minix-1.1, when mem were men
and wrote their own device drivers? Are you without a nice
project and just dying to cut your teeth on a OS you can
try to modify for your needs? Are you finding it frustrsting
when everything works on Minix? No more all-nighters to
get a nifty program working? Then this post might be just
for you.
“As I mentioned a month ago, I’m working on a free version
of a Minix-lookalike for AT-386 computers. It has finally
reached the stage where it’s even usable(though may not be
depending on what you want),and I am willing to put out
the sources for wider distribution. It is just version
0.0.2 … but I’ve successfully run bash,gcc,gnu-make,
gnu-sed,compress,etc.under it.”
隨即Linux引起黑客們(hacker)的注意,通過計算機網絡加入了Linux的
內核開發(fā),Linux傾向于成為一個黑客的系統(tǒng)—-直到今天,在Linux社區(qū)
里內核的開發(fā)被認為是真正的編程.由于一批高水平黑客的加入,使Linux
發(fā)展迅猛,到1993年底94年初,Linux 1.0終于誕生了! Linux 1.0已經是一
個功能完備的操作系統(tǒng),而且內核寫得緊湊高效,可以充分發(fā)揮硬件的性能,
在4M內存的80386機器上也表現得非常好,至今人們還在津津樂道于此,
不過自從2.1.xx系列的內核Linux開始走高端的路子—-硬件的發(fā)展太快了,
但是Linux不會失去它的本色.Linux具有良好的兼容性和可移植性,大約在
1.3版本之后,開始向其他硬件平臺上移植,包括號稱最快的CPU—Digital
Alpha(至少目前主頻是更高的).所以不要總把Linux與低檔硬件平臺聯系
到一塊,Linux發(fā)展到今天,這是一個誤區(qū),它只是將硬件的性能充分發(fā)揮
出來而已,Linux必將從低端應用橫掃到高端應用!
在Linux的發(fā)展歷程上還有一件重要的事:Linux加入GNU并遵循公共
版權許可證(GPL).此舉大大加強了GNU和Linux,幾乎所有應用的GNU
庫/軟件都移植到Linux,完善并提高了Linux的實用性,而GNU有了一
個根基,我現在也搞不清楚到底是GNU Linux呢還是基于Linux的GNU.
更重要的是遵循公共版權許可證,在繼承自由軟件的精神的前
提下,不再排斥對自由軟件的商業(yè)行為(如把自由軟件打包以光盤形
式出售),不排斥商家對自由軟件進一步開發(fā),不排斥在Linux上開發(fā)
商業(yè)軟件.從此Linux又開始了一次飛躍,出現了很多的Linux發(fā)行版
,如Slackware,Redhat,Suse,TurboLinux,OpenLinux等十多種,而且
還在增加,注意你不能說”Redhat Linux””Suse Linux””Slackware
Linux”等等,Linux主要指操作系統(tǒng)內核,對所有發(fā)行版內核原代碼
都是一樣的(但集成的內核版本可能因發(fā)行時間不同而有所不同).
還有一些公司在Linux上開發(fā)商業(yè)軟件或把其他Unix平臺的軟件移
植到Linux上來,如今很多IT業(yè)界的大腕如IBM,Intel,Oracle,Infomix
,Syase,Corel,Netscape,CA,Novell等都宣布支持Linux! 商家的
加盟彌補了純自由軟件的不足和發(fā)展障礙,Linux迅速普及到廣大計
算機愛好者,并且進入商業(yè)應用,正是打破某些公司壟斷文化圈的希
望所在!!
Linux是愛好者們通過Internet協(xié)同開發(fā)出來的,當然它的網絡功能十
分強大,比如你可以通過ftp,nfs等來安裝Linux,用它來做網關等等.
隨著Linux的發(fā)展衍生出來的應用恐怕出乎Linus本人最初的預料,
如有人用它來做路由器,有人來做嵌入式系統(tǒng),有人來做實時性系統(tǒng).
…..常有新手問Linux能做什么,其實它不象那些中看不中用的操作
系統(tǒng),不在于你用它能干什么,而在于你想干什么!
Linux的興起還給人們很多啟迪與思考,如集市式軟件開發(fā)的討論,
又如自由軟件的精神……
.
參考資料:
單的說,Linux是Unix克隆(Unix clone)或Unix風格(Unix alike)
的操作系統(tǒng)(OS),在原代碼級上兼容絕大部分Unix標準(指的是IEEE
POSIX,System V,BSD),是一個支持多用戶, 多進程,多線程,實時性
較好的功能
強大而穩(wěn)定的操作系統(tǒng).它可以運行在x86 PC,Sun Sparc,Digital Alpha
,680×0,PowerPC, MIPS等平臺上,可
以說Linux是目前運行硬件平臺最多的操作系統(tǒng). Linux更大的特點在于
它是GNU(Gnu’s Not Unix—-有點分形與混沌的意味—-無限自包含,
簡單的說GNU是一種自由軟件體系)的一員,遵循公共版權許可證(GPL),秉承
“自由的思想,開放的源碼”的原則,成千上萬的專家/愛好者通過Internet
在不斷地完善并維護它,可以說Linux是計算機愛好者自己的操作系統(tǒng).
追述Linux的歷史直到1990年,Linus Torvalds還是芬蘭赫爾辛基大
學的一名學生,最初是用匯編語言寫了一個在80386保護模式下處理
多任務切換的程序,后來從Minix(Andy Tanenbaum教授所寫的很小
的Unix操作系統(tǒng),主要用于操作系統(tǒng)教學)得到靈感,進一步產生了
自認為狂妄的想法—-寫一個比Minix更好的Minix,于是開始寫了
一些硬件的設備驅動程序,一個小的文件系統(tǒng),……,這樣0.0.1
版本的Linux就出來了,但是它只具有操作系統(tǒng)內核的勉強的雛形,
甚至不能運行,你必須在有Minix的機器上編譯以后才能玩.這時候
Linus已經完全著迷而不想停止,決定踢開Minix,于是在1991年10
月5號發(fā)布Linux 0.0.2版本,在這個版本中已經可以運行bash
(the GNU Bourne Again Shell—-一種用戶與操作系統(tǒng)內核通訊的軟件)
和gcc(GNU C 編譯器).從一開始,Linus就決定自由擴散Linux,包括原代碼,
他在comp.os.minix新聞討論組里發(fā)布Linux 0.0.2時寫到:
“Do you pine for nice days of Minix-1.1, when mem were men
and wrote their own device drivers? Are you without a nice
project and just dying to cut your teeth on a OS you can
try to modify for your needs? Are you finding it frustrsting
when everything works on Minix? No more all-nighters to
get a nifty program working? Then this post might be just
for you.
“As I mentioned a month ago, I’m working on a free version
of a Minix-lookalike for AT-386 computers. It has finally
reached the stage where it’s even usable(though may not be
depending on what you want),and I am willing to put out
the sources for wider distribution. It is just version
0.0.2 … but I’ve successfully run bash,gcc,gnu-make,
gnu-sed,compress,etc.under it.”
隨即Linux引起黑客們(hacker)的注意,通過計算機網絡加入了Linux的
內核開發(fā),Linux傾向于成為一個黑客的系統(tǒng)—-直到今天,在Linux社區(qū)
里內核的開發(fā)被認為是真正的編程.由于一批高水平黑客的加入,使Linux
發(fā)展迅猛,到1993年底94年初,Linux 1.0終于誕生了! Linux 1.0已經是一
個功能完備的操作系統(tǒng),而且內核寫得緊湊高效,可以充分發(fā)揮硬件的性能,
在4M內存的80386機器上也表現得非常好,至今人們還在津津樂道于此,
不過自從2.1.xx系列的內核Linux開始走高端的路子—-硬件的發(fā)展太快了,
但是Linux不會失去它的本色.Linux具有良好的兼容性和可移植性,大約在
1.3版本之后,開始向其他硬件平臺上移植,包括號稱最快的CPU—Digital
Alpha(至少目前主頻是更高的).所以不要總把Linux與低檔硬件平臺聯系
到一塊,Linux發(fā)展到今天,這是一個誤區(qū),它只是將硬件的性能充分發(fā)揮
出來而已,Linux必將從低端應用橫掃到高端應用!
在Linux的發(fā)展歷程上還有一件重要的事:Linux加入GNU并遵循公共
版權許可證(GPL).此舉大大加強了GNU和Linux,幾乎所有應用的GNU
庫/軟件都移植到Linux,完善并提高了Linux的實用性,而GNU有了一
個根基,我現在也搞不清楚到底是GNU Linux呢還是基于Linux的GNU.
更重要的是遵循公共版權許可證,在繼承自由軟件的精神的前
提下,不再排斥對自由軟件的商業(yè)行為(如把自由軟件打包以光盤形
式出售),不排斥商家對自由軟件進一步開發(fā),不排斥在Linux上開發(fā)
商業(yè)軟件.從此Linux又開始了一次飛躍,出現了很多的Linux發(fā)行版
,如Slackware,Redhat,Suse,TurboLinux,OpenLinux等十多種,而且
還在增加,注意你不能說”Redhat Linux””Suse Linux””Slackware
Linux”等等,Linux主要指操作系統(tǒng)內核,對所有發(fā)行版內核原代碼
都是一樣的(但集成的內核版本可能因發(fā)行時間不同而有所不同).
還有一些公司在Linux上開發(fā)商業(yè)軟件或把其他Unix平臺的軟件移
植到Linux上來,如今很多IT業(yè)界的大腕如IBM,Intel,Oracle,Infomix
,Syase,Corel,Netscape,CA,Novell等都宣布支持Linux! 商家的
加盟彌補了純自由軟件的不足和發(fā)展障礙,Linux迅速普及到廣大計
算機愛好者,并且進入商業(yè)應用,正是打破某些公司壟斷文化圈的希
望所在!!
Linux是愛好者們通過Internet協(xié)同開發(fā)出來的,當然它的網絡功能十
分強大,比如你可以通過ftp,nfs等來安裝Linux,用它來做網關等等.
隨著Linux的發(fā)展衍生出來的應用恐怕出乎Linus本人最初的預料,
如有人用它來做路由器,有人來做嵌入式系統(tǒng),有人來做實時性系統(tǒng).
…..常有新手問Linux能做什么,其實它不象那些中看不中用的操作
系統(tǒng),不在于你用它能干什么,而在于你想干什么!
Linux的興起還給人們很多啟迪與思考,如集市式軟件開發(fā)的討論,
又如自由軟件的精神……
.
參考資料:
請參考
Linux容器是與系統(tǒng)其他部分隔離開的一系列進程。運行這些進程所需的所有文件都由另一個鏡像提供,這意味著從開發(fā)到測試再到生產的整個過程中,Linux
容器都具有可移植性和一致性。因而,相對于依賴重復傳統(tǒng)測試環(huán)境的開發(fā)渠道,容器的運行速度要快得多。容器比較普遍也易于使用,因此也成了 IT
安全方面的重要組成部分。
本視頻介紹了Linux的基本概念和原理,特別是介紹了Linux發(fā)行版與Linux內核的關系。
Linux下怎么完成Git的配置
使用git 自從git-1.5.4 , ‘git-xyz’ 這種用法就不提倡了,而推薦 ‘git xyz’ 風格。 git 的后續(xù)段迅版本中將在 make install 時不再安裝 ‘git-xyz’ 這些 hardlinks 。 當如果執(zhí)行 git –exec-path 輸出的目錄中依然有 git-xyz 這些腳本,你還是可以把這個路徑加到 PATH 環(huán)境變量中, 這樣還能夠使用 git-xyz 形式的腳本。 config我的一些簡單的配置: $ git-config user.name “Jike Song” $ git-config user.email $ git-config core.editor vim $ git-config core.pager “l(fā)ess -N” $ git-config color.diff true // 顯示 diff 時色彩高亮 $ git-config alias.co checkout // 給 git checkout 取個別名,這樣只輸入 git co 即可 $ git-config sendemail.tpserver /握兄此usr/bin/mtp 注意,這會在當前 repository 目錄下的 .git/config 中寫入配置信息。 如果 git-config 加了 –global 選項,配置信息就會寫入到 ~/.gitconfig 文件中。 因為你可能用不同的身份參與不同的項目,而多個 項目都用 git 管理,所以建議不用 –global 配置。 $ git-val -l // 列出 git 變量 init —- $ git-init-db // 創(chuàng)建一個 .git/ 目錄,初始化一個空的 git 倉庫 //這個目錄在git-clone時也會創(chuàng)建。也就是說clone時會自動初始化git //倉庫里需要的東西 clone$ git-clone 是你想讓這個倉庫叫什么名字。 如果不指定,就會等塵鬧同于目標倉庫的名字。 注意,這種 git server 形式的 repository ,都有一個 filename.git 文件; 而對于 *.git 的操作,也可以 針對.git 所在的目錄: $ mkdir tmp/ $ cd tmp/ $ git-clone ~/Sources/linux-2.6 或者通過 ssh : $ git-clone :/home/arc/Sources/linux-2.6 此時當前目錄下有一個 .git/ 目錄 . 以下我們都在 linux-2.6/ 下演示: 使用git 自從git-1.5.4 , ‘git-xyz’ 這種用法就不提倡了,而推薦 ‘git xyz’ 風格。 git 的后續(xù)版本中將在 make install 時不再安裝 ‘git-xyz’ 這些 hardlinks 。 當如果執(zhí)行 git –exec-path 輸出的目錄中依然有 git-xyz 這些腳本,你還是可linux中clone原型的介紹就聊到這里吧,感謝你花時間閱讀本站內容,更多關于linux中clone原型,Linux中clone原型輕松掌握線程創(chuàng)建方法,Linux到底是一個什么樣的操作系統(tǒng),LINUX 容器是什么東西???有什么作用???,Linux下怎么完成Git的配置的信息別忘了在本站進行查找喔。
成都網站營銷推廣找創(chuàng)新互聯,全國分站站群網站搭建更好做SEO營銷。
創(chuàng)新互聯(www.cdcxhl.com)四川成都IDC基礎服務商,價格厚道。提供成都服務器托管租用、綿陽服務器租用托管、重慶服務器托管租用、貴陽服務器機房服務器托管租用。
分享名稱:Linux中clone原型輕松掌握線程創(chuàng)建方法 (linux中clone原型)
分享路徑:http://m.fisionsoft.com.cn/article/cdhhdjp.html


咨詢
建站咨詢
