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

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


咨詢(xún)
建站咨詢(xún)
