新聞中心
隨著Linux內(nèi)核不斷地更新迭代,系統(tǒng)性能和易用性也不斷得到提高。在這個(gè)快節(jié)奏的開源社區(qū)中,內(nèi)核4.5.5版本已經(jīng)發(fā)布,此版本帶來(lái)了一些新特性和改善。本文將介紹Linux內(nèi)核4.5.5的新特性,并給出升級(jí)指南,供Linux用戶參考。

一、新特性
1. 擴(kuò)大ext4文件系統(tǒng)的硬件限制
在此之前,ext4文件系統(tǒng)的硬件限制是16TB的更大文件大小和64TB的更大文件系統(tǒng)大小。而新版本對(duì)于ext4文件系統(tǒng)升級(jí)到了64TB的單個(gè)文件大小和1EB(Exabyte)的更大文件系統(tǒng)大小。這使得ext4文件系統(tǒng)可以更好地支持大型數(shù)據(jù)存儲(chǔ)設(shè)備,如大型服務(wù)器、云存儲(chǔ)等。
2. 提高NFS網(wǎng)絡(luò)性能
新版本中,NFS(網(wǎng)絡(luò)文件系統(tǒng))的性能得到了提高。 減少了網(wǎng)絡(luò)I / O延遲并提高了網(wǎng)絡(luò)數(shù)據(jù)吞吐量。在文件系統(tǒng)和網(wǎng)絡(luò)IO性能方面的提升,使得Linux內(nèi)核在處理大量數(shù)據(jù)時(shí)變得更加高效。
3. 更好的IPv6支持
Linux內(nèi)核4.5.5版本中,“IPv6 Segment Routing”特性的引入,會(huì)使IPv6表現(xiàn)得像IPv4一樣優(yōu)秀,IPv6可以更好地支持路由器相關(guān)場(chǎng)景。這是對(duì)IPv6的一個(gè)提升。同時(shí),內(nèi)核在IPv6協(xié)議棧方面的其他改進(jìn),也可以使IPv6更加穩(wěn)定和安全。
4. 改進(jìn)顯卡支持
在新版本中,AMD Radeon顯卡的驅(qū)動(dòng)得到了改善,包括對(duì)受限制的代碼和二進(jìn)制文件的更好支持。此外,Linux內(nèi)核4.5.5還支持Intel Skylake和Broadwell Gen9的GPU原生驅(qū)動(dòng)程序,也對(duì)舊的Intel和Nvidia顯卡得到了改進(jìn)。
5. 新增NFTables
NFTables內(nèi)核支持的引入,重新設(shè)計(jì)了Linux內(nèi)核的防火墻。NFTables的簡(jiǎn)短描述是新一代的Linux內(nèi)核防火墻。相比于現(xiàn)在使用的iptables,NFTables的優(yōu)化方面有 Cisco的必須需求??偠灾琋FTables表現(xiàn)出色,既有iptables的約束性,又具有更快的速度和更好的性能。
6. 因PowerPC修復(fù)若干問(wèn)題
開啟CONFIG_RTC_SYSTOHC后,現(xiàn)在的PowerPC內(nèi)核可以正確處理電源事件關(guān)機(jī)了。此外,修復(fù)了IBM “popcntb/cnttz/cntlzw/cntt/popc”,Power7 CPU無(wú)限循環(huán)和廣泛的UAPI-GRO回顧。這些修復(fù)旨在使PowerPC內(nèi)核在不影響性能的情況下更加穩(wěn)定和安全。
7. 引入新的標(biāo)準(zhǔn)和協(xié)議
在新版本中,引入了更多的標(biāo)準(zhǔn)和協(xié)議。例如,IONIC驅(qū)動(dòng)程序,以便更好地支持Mellanox ConnectX-4/ConnectX-5網(wǎng)絡(luò)適配器;BPF(引入h_errno變量),為程序員提供了更好的debug支持;引入了一種新的socket選項(xiàng)RLIMIT_RTTIME,用于防止低級(jí)DoS攻擊等。
二、升級(jí)指南
在升級(jí)內(nèi)核之前,需要備份當(dāng)前的系統(tǒng)數(shù)據(jù)和配置文件。網(wǎng)站管理員應(yīng)該通過(guò)在瀏覽器中查看“系統(tǒng)信息”或在終端中使用“uname -a”命令來(lái)確定當(dāng)前正在使用的內(nèi)核版本。
在升級(jí)之前,確認(rèn)已安裝最新可用的“yum”或“apt-get”更新包。更新到內(nèi)核4.5.5僅需幾個(gè)步驟:
步驟1:可以通過(guò)命令行下載和安裝,也可以通過(guò)FTP和HTTP下載新內(nèi)核。
步驟2:解壓縮下載的內(nèi)核文件,可以使用圖形化工具或命令行實(shí)現(xiàn)。
步驟3:配置內(nèi)核,可以修改內(nèi)核的配置文件以提高新內(nèi)核的性能。
步驟4:編譯內(nèi)核。
步驟5:安裝新內(nèi)核。
步驟6:重啟系統(tǒng)。
在啟動(dòng)系統(tǒng)之前,無(wú)論您是在虛擬環(huán)境還是物理硬件上運(yùn)行Linux,都應(yīng)該在命令行中輸入“cat /proc/cpuinfo”命令,然后查看CPU的信息,以確保內(nèi)核編譯完全受CPU支持。
三、
Linux內(nèi)核4.5.5是一個(gè)重要的升級(jí)版本,為了滿足現(xiàn)代大型數(shù)據(jù)存儲(chǔ)和高級(jí)應(yīng)用程序的需要,增加了對(duì)ext4文件系統(tǒng)的硬件限制等優(yōu)化。此外,在對(duì)NFS網(wǎng)絡(luò)性能和IPv6協(xié)議棧等方面進(jìn)行了改進(jìn)。本文還提供了Linux內(nèi)核4.5.5的升級(jí)指南,對(duì)于需要升級(jí)內(nèi)核的用戶來(lái)說(shuō)是很有用的。相信這篇文章對(duì)Linux用戶在日常工作中有所幫助。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù)!
Linux系統(tǒng)開機(jī)時(shí)啟動(dòng)內(nèi)核步驟是什么?
實(shí)模式,并開始執(zhí)行位于地址0xFFFF0處
的代碼,也就是ROM-BIOS起始位置的代碼。BIOS先進(jìn)行一系列的系統(tǒng)自檢,然后初始化位
于地址0的中斷向量表。最后BIOS將啟動(dòng)盤的鋒扒之一個(gè)扇區(qū)裝入到0x7C00,并開始執(zhí)行此處
的代碼。這就是對(duì)內(nèi)核初始化過(guò)程的一個(gè)最簡(jiǎn)單的描述。
最初,linux核心的最開始部分是用8086匯編語(yǔ)言編寫的。當(dāng)開始運(yùn)行時(shí),核心將自
己裝入到絕對(duì)地址0x90000,再將其后的2k字節(jié)裝入到地址0x90200處,最后將核心的其余
部分裝入到0x10000。
當(dāng)系統(tǒng)裝入時(shí),會(huì)顯示Loading…信息。裝入完成后,控制轉(zhuǎn)向另一個(gè)實(shí)模式下的匯
編語(yǔ)言代碼boot/Setup.S。Setup部分首先設(shè)置一些系統(tǒng)的硬件設(shè)備,然后將核心從
0x10000處移至0x1000處。這時(shí)系統(tǒng)轉(zhuǎn)入保護(hù)模式,開始執(zhí)行位于0x1000處的代碼。
接下來(lái)是內(nèi)核的解壓縮銀銷昌。0x1000處的代碼來(lái)自于文件Boot/head.S,它用來(lái)初始化寄
存器和調(diào)用decompress_kernel( )程序。decompress_kernel( )程序由Boot/inflate.c,
Boot/unzip.c和Boot../misc.c組成。解壓縮后的數(shù)據(jù)被裝入到了0x100000處,這也是
linux不能在內(nèi)存小于2M的環(huán)境下運(yùn)行的主要原因。
解壓后的代碼在0x處開始執(zhí)行,緊接著所有的32位的設(shè)斗逗置都將完成: IDT、
GDT和LDT將被裝入,處理器初始化完畢,設(shè)置好內(nèi)存頁(yè)面,最終調(diào)用start_kernel過(guò)程。
這大概是整個(gè)內(nèi)核中最為復(fù)雜的部分。
linux kernel 最早的C代碼從匯編標(biāo)記startup_32開始執(zhí)行
startup_32:
start_kernel
lock_kernel
trap_init
init_IRQ
sched_init
softirq_init
time_init
console_init
#ifdef CONFIG_MODULES
init_modules
#endif
kmem_cache_init
sti
calibrate_delay
mem_init
kmem_cache_sizes_init
pgtable_cache_init
fork_init
proc_caches_init
vfs_caches_init
buffer_init
page_cache_init
signals_init
#ifdef CONFIG_PROC_FS
proc_root_init
#endif
#if defined(CONFIG_SYSVIPC)
ipc_init
#endif
check_bugs
p_init
rest_init
kernel_thread
unlock_kernel
cpu_idle
?startup_32
?start_kernel
?lock_kernel
?trap_init
?init_IRQ
?sched_init
?softirq_init
?time_init
?console_init
?init_modules
?kmem_cache_init
?sti
?calibrate_delay
?mem_init
?kmem_cache_sizes_init
?pgtable_cache_init
?fork_init
?proc_caches_init
?vfs_caches_init
?buffer_init
?page_cache_init
?signals_init
?proc_root_init
?ipc_init
?check_bugs
?p_init
?rest_init
?kernel_thread
?unlock_kernel
?cpu_idle
start_kernel( )程序用于初始化系統(tǒng)內(nèi)核的各個(gè)部分,包括:
*設(shè)置內(nèi)存邊界,調(diào)用paging_init( )初始化內(nèi)存頁(yè)面。
*初始化陷阱,中斷通道和調(diào)度。
*對(duì)命令行進(jìn)行語(yǔ)法分析。
*初始化設(shè)備驅(qū)動(dòng)程序和磁盤緩沖區(qū)。
*校對(duì)延遲循環(huán)。
最后的function’rest_init’ 作了以下工作:
?開辟內(nèi)核線程’init’
?調(diào)用unlock_kernel
?建立內(nèi)核運(yùn)行的cpu_idle環(huán), 如果沒(méi)有調(diào)度,就一直死循環(huán)
實(shí)際上start_kernel永遠(yuǎn)不能終止.它會(huì)無(wú)窮地循環(huán)執(zhí)行cpu_idle.
最后,系統(tǒng)核心轉(zhuǎn)向move_to_user_mode( ),以便創(chuàng)建初始化進(jìn)程(init)。此后,進(jìn)程0開始進(jìn)入無(wú)限循環(huán)。
初始化進(jìn)程開始執(zhí)行/etc/init、/bin/init 或/in /init中的一個(gè)之后,系統(tǒng)內(nèi)核就不再對(duì)程序進(jìn)行直接控制了。之后系統(tǒng)內(nèi)核的作用主要是給進(jìn)程提供系統(tǒng)調(diào)用,以及提供異步中斷事件的處理。多任務(wù)機(jī)制已經(jīng)建立起來(lái),并開始處理多個(gè)用戶的登錄和fork( )創(chuàng)建的進(jìn)程。
init是之一個(gè)進(jìn)程,或者說(shuō)內(nèi)核線程
init
lock_kernel
do_basic_setup
mtrr_init
sysctl_init
pci_init
sock_init
start_context_thread
do_init_calls
(*call())-> kswapd_init
prepare_namespace
free_initmem
unlock_kernel
execve
啟動(dòng)步驟
系統(tǒng)引導(dǎo):
涉及的文件
./arch/$ARCH/boot/bootsect.s
./arch/$ARCH/boot/setup.s
bootsect.S
這個(gè)程序是linux kernel的之一個(gè)程序,包括了linux自己的bootstrap程序,
但是在說(shuō)明這個(gè)程序前,必須先說(shuō)明一般IBM PC開機(jī)時(shí)的動(dòng)作(此處的開機(jī)是指
“打開PC的電源”):
一般PC在電源一開時(shí),是由內(nèi)存中地址FFFF:0000開始執(zhí)行(這個(gè)地址一定
在ROM BIOS中,ROM BIOS一般是在FEOOOh到FFFFFh中),而此處的內(nèi)容則是一個(gè)
jump指令,jump到另一個(gè)位於ROM BIOS中的位置,開始執(zhí)行一系列的動(dòng)作,包
括了檢查RAM,keyboard,顯示器,軟硬磁盤等等,這些動(dòng)作是由系統(tǒng)測(cè)試代碼
(system test code)來(lái)執(zhí)行的,隨著制作BIOS廠商的不同而會(huì)有些許差異,但都
是大同小異,讀者可自行觀察自家機(jī)器開機(jī)時(shí),螢?zāi)簧纤@示的檢查訊息。
緊接著系統(tǒng)測(cè)試碼之后,控制權(quán)會(huì)轉(zhuǎn)移給ROM中的啟動(dòng)程序
(ROM bootstrap routine),這個(gè)程序會(huì)將磁盤上的第零軌第零扇區(qū)讀入
內(nèi)存中(這就是一般所謂的boot sector,如果你曾接觸過(guò)電腦病
毒,就大概聽過(guò)它的大名),至於被讀到內(nèi)存的哪里呢? –絕對(duì)
位置07C0:0000(即07C00h處),這是IBM系列PC的特性。而位在linux開機(jī)
磁盤的boot sector上的正是linux的bootsect程序,也就是說(shuō),bootsect是
之一個(gè)被讀入內(nèi)存中并執(zhí)行的程序?,F(xiàn)在,我們可以開始來(lái)
看看到底bootsect做了什么。
之一步
首先,bootsect將它”自己”從被ROM BIOS載入的絕對(duì)地址0x7C00處搬到
0x90000處,然后利用一個(gè)jmpi(jump indirectly)的指令,跳到新位置的
jmpi的下一行去執(zhí)行,
第二步
接著,將其他segment registers包括DS,ES,SS都指向0x9000這個(gè)位置,
與CS看齊。另外將SP及DX指向一任意位移地址( offset ),這個(gè)地址等一下
會(huì)用來(lái)存放磁盤參數(shù)表(disk para- meter table )
第三步
接著利用BIOS中斷服務(wù)int 13h的第0號(hào)功能,重置磁盤控制器,使得剛才
的設(shè)定發(fā)揮功能。
第四步
完成重置磁盤控制器之后,bootsect就從磁盤上讀入緊鄰著bootsect的setup
程序,也就是setup.S,此讀入動(dòng)作是利用BIOS中斷服務(wù)int 13h的第2號(hào)功能。
setup的image將會(huì)讀入至程序所指定的內(nèi)存絕對(duì)地址0x90200處,也就是在內(nèi)存
中緊鄰著bootsect 所在的位置。待setup的image讀入內(nèi)存后,利用BIOS中斷服
務(wù)int 13h的第8號(hào)功能讀取目前磁盤的參數(shù)。
第五步
再來(lái),就要讀入真正linux的kernel了,也就是你可以在linux的根目錄下看
到的”vmlinuz” 。在讀入前,將會(huì)先呼叫BIOS中斷服務(wù)int 10h 的第3號(hào)功能,
讀取游標(biāo)位置,之后再呼叫BIOS 中斷服務(wù)int 10h的第13h號(hào)功能,在螢?zāi)簧陷?/p>
出字串”Loading”,這個(gè)字串在boot linux時(shí)都會(huì)首先被看到,相信大家應(yīng)該覺(jué)
得很眼熟吧。
第六步
接下來(lái)做的事是檢查root device,之后就仿照一開始的方法,利用indirect
jump 跳至剛剛已讀入的setup部份
第七步
setup.S完成在實(shí)模式下版本檢查,并將硬盤,鼠標(biāo),內(nèi)存參數(shù)寫入到 INITSEG
中,并負(fù)責(zé)進(jìn)入保護(hù)模式。
第八步
操作系統(tǒng)的初始化。
linux kernel 4.5.5的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于linux kernel 4.5.5,Linux內(nèi)核4.5.5新特性與升級(jí)指南,Linux系統(tǒng)開機(jī)時(shí)啟動(dòng)內(nèi)核步驟是什么?的信息別忘了在本站進(jìn)行查找喔。
創(chuàng)新互聯(lián)-老牌IDC、云計(jì)算及IT信息化服務(wù)領(lǐng)域的服務(wù)供應(yīng)商,業(yè)務(wù)涵蓋IDC(互聯(lián)網(wǎng)數(shù)據(jù)中心)服務(wù)、云計(jì)算服務(wù)、IT信息化、AI算力租賃平臺(tái)(智算云),軟件開發(fā),網(wǎng)站建設(shè),咨詢熱線:028-86922220
分享題目:Linux內(nèi)核4.5.5新特性與升級(jí)指南(linuxkernel4.5.5)
當(dāng)前網(wǎng)址:http://fisionsoft.com.cn/article/dhjidhj.html


咨詢
建站咨詢
