新聞中心
Linux作為一種開源的操作系統(tǒng),已經走過了20多年的時間,其發(fā)展已經長足了進步,成為了開放的軟件平臺,它不僅被廣泛應用于服務器、個人電腦等領域,還在領先的科學研究和教育領域得到了廣泛的應用。但是,在Linux的發(fā)展過程中,內核死鎖等問題為人所詬病,為了解決這些問題,Linux社區(qū)致力于開發(fā)一種完全新的解決方案——was(Write-Ahead Storage)。

10年積累的成都網站制作、網站建設經驗,可以快速應對客戶對網站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網絡服務。我雖然不認識你,你也不認識我。但先網站設計后付款的網站建設流程,更有澠池免費網站建設讓你可以放心的選擇與我們合作。
was的背景和思路
was是Linux4.4內核中引入的一項最新技術,它設計的目的是為了解決內核死鎖的問題。在早期的Linux內核中,文件系統(tǒng)采用了基于日志的寫模式,這意味著每次寫入數(shù)據(jù)時,都必須同時寫入內存和硬盤中。但是,這種寫入方式很容易出現(xiàn)死鎖現(xiàn)象,而為了解決死鎖問題,就必須采用一種新的解決方案。
在分析了很多操作系統(tǒng)之后,開發(fā)者們發(fā)現(xiàn)現(xiàn)有的文件系統(tǒng)都是采用了in-place寫模式,即每次寫入數(shù)據(jù)時,數(shù)據(jù)會覆蓋原來數(shù)據(jù)的位置,而不是寫到另一個位置,這樣會占用大量的磁盤空間,并且文件系統(tǒng)的速度也會降低。于是開發(fā)者們考慮使用write-ahead寫模式,這種寫模式可以先將數(shù)據(jù)寫入內存中,等到一定的時機和條件滿足后,再將內存中的數(shù)據(jù)寫入硬盤中。
與in-place寫模式相比,write-ahead寫模式使用更少的磁盤空間,并且文件系統(tǒng)的速度也會更快,而且,使用write-ahead寫模式可以解決內核死鎖的問題。was就是Linux社區(qū)采用write-ahead寫模式的一種新的文件系統(tǒng)。
was的設計架構和優(yōu)勢
was采用基于寫日志的技術,將數(shù)據(jù)寫入日志中,日志是有序的,因此可以很方便的實現(xiàn)數(shù)據(jù)的讀取,修改和刪除操作。與傳統(tǒng)文件系統(tǒng)相比,was真正實現(xiàn)了數(shù)據(jù)和元數(shù)據(jù)的分離,元數(shù)據(jù)按照特定規(guī)則存放在日志區(qū)域,而數(shù)據(jù)直接存放在數(shù)據(jù)區(qū),這種方法使得元數(shù)據(jù)的恢復更加簡單、可靠。
was還采用了快照和COW技術,快照是用于在不改變原始內容的情況下創(chuàng)建備份的技術,COW技術是一種精確的內存管理技術,可以將內存中的數(shù)據(jù)復制到另外一個地方,不會影響原有數(shù)據(jù)的完整性,同時也能夠提高系統(tǒng)的吞吐量和穩(wěn)定性。
was的優(yōu)點在于它具有高可靠性、高可用性、高吞吐量、高并發(fā)性和高擴展性。
was作為Linux的一個新技術,成功解決了Linux內核死鎖的問題,同時在文件系統(tǒng)的設計和架構上也有了很大的進步,為用戶提供了諸多優(yōu)點。作為開源的軟件平臺,Linux不斷地吸引著眾多的開發(fā)者加入到開源社區(qū)中,推動Linux的發(fā)展,無疑是Linux的一道招牌,was的出現(xiàn)和應用將為Linux的未來發(fā)展開啟嶄新的篇章。
成都網站建設公司-創(chuàng)新互聯(lián)為您提供網站建設、網站制作、網頁設計及定制高端網站建設服務!
升級Linux操作系統(tǒng)內核奮斗記
升級linux內核奮斗記
我的piii dell機運行著內核2.4.的redhat,自從linux內核2.6發(fā)布以來一直想把該系統(tǒng)升級到內核2.6。經過一番艱辛萬苦,終于成功了。為了體驗一下在linux下編寫多線程程序的步驟,又更新gcc和c語言庫。在此愿和各位朋友共享這段經歷,共享這段成果。(可能有記錄錯誤,僅供參考)。
具體步驟包括以下內容:
1,升級內核的具體步驟
2,更新gcc
3,使用glibc2.3.5
4,使用nptl線程進行編程
在此之前,先簡要地介紹一下linux內核2.6所做的改進及新增功能。linux2.6主要在以下的10個方面作了很大的改進,簡單概括如下,有關詳細情況,請參閱相關資料。
1)通過改善并行處理能力和采用posix線程等,提高了系統(tǒng)的處理能罩虧信力,從而linux真正具備大型信息系統(tǒng)所要求性能。
2)通過改善文件系統(tǒng)的輸出/輸入能力和提高對大容量內存的利用效率,使得linux能夠更勝任大型信息系統(tǒng)中的數(shù)據(jù)處理。
3)加強了對數(shù)物輪據(jù)庫應用程序的支持。
4)提高了抗系統(tǒng)高負荷時能力。
5)提高了系統(tǒng)的可用性,包括對不停機空此時備份和不停機時更換硬件功能的支持。
6)強化了對網絡的支持,增加了對ipv6, sctp, ipsec,等的支持。
7)通過增加訪問控制和內核暗號化技術,提高了系統(tǒng)的安全性。
8)強化了對電源的管理。
9)強化了對嵌入式cpu和系統(tǒng)的支持。
10)添加了更多的硬件驅動程序。
一.升級內核
1, 下載linux-2.6.3.tar.bz2(可以是更新的版本)到/usr/src
bzcat linux-2.6.3.tar.bz2 | tar xvf – cd linux-2.6.閱讀readme及changes 文件,確認必須的工具軟件。因為不是筆記本電腦和筆記本電腦有關的軟件可以忽略。發(fā)現(xiàn)module-init-tools需要更新。
2,下載module-init-tools-0.9.13.tar.bz2
bzcat module-init-tools-0.9.13.tar.bz2 | tar xvf – cd module-init-tools-0.9.13 ./configure –prefix=/usr/local/module-init make make moveold make install /usr/local/module-init/in/generate-modpobe.conf > /etc/modprobe.conf成功。
3, 編譯linux內核
cd /usr/src/linux-2.6.3 make menuconfig一看太麻煩了,而且許多選項不知所云。退出該程序。 執(zhí)行make oldconfig,對kernel2.6新增的不熟悉的選項作不選或為缺省。
make bzimage make modules modules_install pwd /usr/src/linux-2.6.3 mv arch/i386/boot/bzimage /boot/bzimage2.6.3 mv system.map /boot/system.map-2.6.3 cd /boot mv system.map oldsystem.map ln –s system.map-2.6.3 system.map,建立sys目錄
mkdir /sys
5, 修改相關文件,增加對sys的支持
在/etc/rc.d/rc.sysinit文件增加對sys的支持。
1) 找到mount –f /proc的行,在其下面,增加 mount –f /sys
2) 找到 action $ “mounting proc filesystem:” mount –n –t proc /proc /proc 在其下面,增加action $ “mounting sysfs filesystem:” mount –n –t sysfs /sys /sys.
3) 把文件中的 ksyms 改成 kallsyms
在/etc/fstab文件中,增加一行:
none /sys sysfs defaults 0 0
在/etc/rc.d/init.d/halt中,增加對sys的支持,把 awk ‘$2 ~/^/$ | ^/proc | ^/dev / {next} 變?yōu)?
awk ‘$2 ~/^/$ | ^/proc | ^/sys | ^/dev / {next}
6,啟動
修改/etc/lilo.conf, 增加下面的設置
… image=/boot/bzimange2.6.3 label=linux2.6.3 read-only root=/dev/hda3(由自己的pc設置決定)成功。
二,更新gcc (因為gcc2.95.3無法編譯glibc-2.3.5)
下載gcc-3.4.4.tar.bz2
bzcat gcc-3.4.4.tar.bz2 | tar xvf – cd gcc-3.4.4 ./configure –prefix=/usr/local/gcc344 –enable-shared –enable-threads –enable-threads=posix –enable-languages=c,c++,f77 make bootstrap (因為使用cflags選項時,出錯了,所以省略) make install ln –s /usr/local/gcc344/bin/gcc /usr/bin/gcc
三,使用glibc-2.3.5
1)、通過調查發(fā)現(xiàn)要編譯glibc-2.3.5,要求binutils在2.13以上。所以必須安inutils-2.14
下載binutils-2.14.tar.gz
tar zxpvf binutils-2.14.tar.gz mkdir binutils-build cd binutils-build ../binutils-2.14/configure –prefix=/usr –enable-shared make tooldir=/usr make check make tooldir=/usr install cp ../binutils-2.14/include/libiberty.h /usr/include) 安裝glibc-2.3.5
下載 glibc-2.3.5.tar.gz 和 glibc-2.3.5-fix_test-1.patch
tar zxpvf glibc-2.3.5.tar.gz patch –np1 –i ../glibc-2.3.5-fix_test-1.path mkdir glibc-build cd glibc-build ../glibc-2.3.5/configure –prefix=/usr/local/glibc235 –enable-add-ons=linuxthreads –enable-kernel=2.6.0 (若安裝在/usr目錄下,很危險,可能會損壞你的系統(tǒng)) make make check (必須執(zhí)行的一步) make localedata /install-locales (對應各國文字) mkdir /usr/man/man3(man的安裝路徑) make –c ../glibc-2.3.5/linuxthreads/man install上面的安裝完成以后,更好把/usr/local/glibc235/lib和/usr/local/glibc235/include加入到系統(tǒng)的路徑中,這樣在編譯程序時,就不必指定庫和header文件的路徑了。
四、使用nptl進行線程編程
#include #include #include #include void thread_fun(void * arg); char message = “i am created thread”; int main() { int rnt; pthread_t new_thread; void *thread_result; rnt=pthread_create(&new_thread,null, thread_fun, (void*) message); if (rnt != 0) { perrer (“thread creation failed”); exit(exit_failure); } printf(“waiting for other thread to finish…”); rnt = pthread_join(new_thread, &thread_result); if (rnt != 0) { perrer (“thread join failed”); exit(exit_failure); } printf(“thread join, it returned %s ”, (char*) thread_result); printf(“message now %s”, message); exit(exit_success); } void *thread_fun (void * arg) { printf(“the new thread is running. argument was %s”,(char*)arg); sleep(3); strcpy(message, “bye”); pthread_exit(“thank you for the test”); }編譯
gcc -d_reentrant test_thread.c -o test_thread -lpthread ./test_thread成功了。
was for linux的介紹就聊到這里吧,感謝你花時間閱讀本站內容,更多關于was for linux,Linux的招牌:was是什么?,升級Linux操作系統(tǒng)內核奮斗記的信息別忘了在本站進行查找喔。
香港云服務器機房,創(chuàng)新互聯(lián)(www.cdcxhl.com)專業(yè)云服務器廠商,回大陸優(yōu)化帶寬,安全/穩(wěn)定/低延遲.創(chuàng)新互聯(lián)助力企業(yè)出海業(yè)務,提供一站式解決方案。香港服務器-免備案低延遲-雙向CN2+BGP極速互訪!
網頁題目:Linux的招牌:was是什么?(wasforlinux)
網頁地址:http://www.5511xx.com/article/cccshch.html


咨詢
建站咨詢
