新聞中心
在現(xiàn)代計(jì)算機(jī)系統(tǒng)中,設(shè)備訪問(wèn)是非常重要的,例如硬盤(pán)、網(wǎng)絡(luò)、USB 等設(shè)備。在 Linux 系統(tǒng)中,設(shè)備被視為文件,可以被系統(tǒng)和應(yīng)用程序訪問(wèn)。然而,Linux 系統(tǒng)中的設(shè)備訪問(wèn)也可能存在性能問(wèn)題,例如讀寫(xiě)操作的延遲和帶寬限制。這些問(wèn)題可能會(huì)嚴(yán)重影響系統(tǒng)的性能和可靠性。為了避免這些問(wèn)題,有一種技術(shù)被廣泛使用,即設(shè)備線性排列技術(shù)。

我們擁有十余年網(wǎng)頁(yè)設(shè)計(jì)和網(wǎng)站建設(shè)經(jīng)驗(yàn),從網(wǎng)站策劃到網(wǎng)站制作,我們的網(wǎng)頁(yè)設(shè)計(jì)師為您提供的解決方案。為企業(yè)提供網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作、微信開(kāi)發(fā)、小程序設(shè)計(jì)、移動(dòng)網(wǎng)站建設(shè)、H5技術(shù)、等業(yè)務(wù)。無(wú)論您有什么樣的網(wǎng)站設(shè)計(jì)或者設(shè)計(jì)方案要求,我們都將富于創(chuàng)造性的提供專業(yè)設(shè)計(jì)服務(wù)并滿足您的需求。
設(shè)備線性排列,也稱為直接 I/O 接口,是一種在 Linux 內(nèi)核中使用的技術(shù),通過(guò)將設(shè)備的物理地址與邏輯地址進(jìn)行映射,從而提高設(shè)備訪問(wèn)的性能。該技術(shù)可以通過(guò)將設(shè)備緩存區(qū)的物理地址轉(zhuǎn)換為連續(xù)的邏輯地址來(lái)消除 I/O 操作中的延遲和復(fù)雜性。
下面是一些優(yōu)點(diǎn):
1. 提高系統(tǒng)性能
當(dāng)設(shè)備被線性排列時(shí),數(shù)據(jù)傳輸路徑更直接,這意味著 I/O 操作的延遲和處理時(shí)間更短。此外,由于設(shè)備緩存區(qū)的連續(xù)邏輯地址映射到物理地址,所以數(shù)據(jù)傳輸無(wú)需轉(zhuǎn)換,這可以大大提高系統(tǒng)性能。
2. 減少?gòu)?fù)雜性
通過(guò)消除 I/O 操作中的延遲和復(fù)雜性,設(shè)備線性排列可以使操作系統(tǒng)更容易管理。此外,設(shè)備線性排列還可以減少系統(tǒng)資源的使用,因?yàn)樗梢杂行У乩枚嗵幚砥飨到y(tǒng)的處理能力。
3. 提高可靠性
設(shè)備線性排列可以提高系統(tǒng)的可靠性。由于數(shù)據(jù)傳輸路徑更直接,此技術(shù)可以減少磁盤(pán)故障和數(shù)據(jù)損壞的風(fēng)險(xiǎn)。
盡管設(shè)備線性排列技術(shù)有很多優(yōu)點(diǎn),但應(yīng)該注意以下一些缺點(diǎn):
1. 必須預(yù)分配內(nèi)存
為了使設(shè)備線性排列正常工作,必須預(yù)分配內(nèi)存。這意味著您必須預(yù)先知道 I/O 操作的大小,才能分配適當(dāng)?shù)膬?nèi)存。否則,分配的內(nèi)存可能過(guò)小,導(dǎo)致 I/O 操作失敗。
2. 需要更高的內(nèi)存使用
由于設(shè)備線性排列需要預(yù)先分配內(nèi)存,因此需要更高的內(nèi)存使用。如果系統(tǒng)的內(nèi)存資源有限,可能會(huì)影響系統(tǒng)的性能。
3. 不支持所有設(shè)備
設(shè)備線性排列技術(shù)并不支持所有設(shè)備。特別是一些舊設(shè)備可能不支持此技術(shù)。因此,在選擇使用設(shè)備線性排列技術(shù)時(shí),必須檢查設(shè)備的兼容性。
設(shè)備線性排列技術(shù)是一種非常有用的技術(shù),可以提高 Linux 系統(tǒng)的性能和可靠性。然而,在使用該技術(shù)時(shí)需要注意其缺點(diǎn)和兼容性問(wèn)題。
相關(guān)問(wèn)題拓展閱讀:
- 如何編譯linux內(nèi)核
如何編譯linux內(nèi)核
編譯linux內(nèi)核步驟:
1、安裝內(nèi)核
如果內(nèi)核已經(jīng)安裝(/usr/src/目錄有l(wèi)inux子目錄),跳過(guò)。如果沒(méi)有安裝,在光驅(qū)中放入linux安裝光盤(pán),找到kernel-source-2.xx.xx.rpm文件(xx代表數(shù)字,表示內(nèi)核的版本號(hào)),比如RedHat linux的RPMS目錄是/RedHat/RPMS/目錄,然后使用命令rpm -ivh kernel-source-2.xx.xx.rpm安裝猜轎內(nèi)核穗消肆。如果沒(méi)有安裝盤(pán),可以去各linux廠家站點(diǎn)或者
www.kernel.org
下載。
2、清除從前編譯內(nèi)核時(shí)殘留的.o 文件和不必要的關(guān)聯(lián)
cd /usr/src/linux
make mrproper
3、配置內(nèi)核,修改相關(guān)參數(shù),請(qǐng)參考其他資料
在圖形界面下,make xconfig;字符界面下,make menuconfig。在內(nèi)核配置菜單中正確設(shè)置個(gè)內(nèi)核選項(xiàng),保存退出
4、正確設(shè)置關(guān)聯(lián)文件
make dep
5、編譯內(nèi)核
對(duì)于大內(nèi)核(比如需要SCSI支持),make bzImage
對(duì)于小內(nèi)核,make zImage
6、編譯模塊
make modules
7、安裝模塊
make modules_install
8、使用新內(nèi)核
把/usr/src/linux/arch/i386/boot/目錄內(nèi)新生成的內(nèi)核文件bzImage/zImage拷貝到/boot目錄,然后修改/etc/lilo.conf文件,加一個(gè)啟動(dòng)選項(xiàng),使用新內(nèi)核bzImage/zImage啟動(dòng)。格式如下:
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
linear
default=linux-new ### 告訴lilo缺省使用新內(nèi)核啟動(dòng)linux ###
append=”mem=256M”
image=/boot/vmlinuz-2.2.14-5.0
label=linux
read-only
root=/dev/hda5
image=/boot/bzImage(zImage)
label=linux-new
read-only
root=/dev/hda5
保留舊有的啟動(dòng)選項(xiàng)可以保證新內(nèi)核不能引導(dǎo)的情況,還可以進(jìn)入linux進(jìn)行其他操作。保存退出后,不要忘記了最重要的一步,運(yùn)行/in/lilo,使修改生效。
9、重新生成ram磁盤(pán)
如果您的系統(tǒng)中的/etc/lilo.conf沒(méi)有使用了ram磁盤(pán)選項(xiàng)initrd,略過(guò)。如果您的系統(tǒng)中的/etc/lilo.conf使用了ram磁盤(pán)選項(xiàng)initrd,使用mkinitrd initrd-內(nèi)核版本號(hào),內(nèi)核版本號(hào)命令重新生成ram磁盤(pán)文件,例如我的Redhat 6.2:
mkinitrd initrd-2.2.14-5.0 2.2.14-5.0
之后把/etc/lilo.conf中的initrd指向新生成的initrd-2.2.14-5.0文件橋帶:
initrd=/boot/initrd-2.2.14-5.0
ram磁盤(pán)能使系統(tǒng)性能盡可能的優(yōu)化,具體參考/usr/src/linux/Documents/initrd.txt文件
10、重新啟動(dòng),OK!
內(nèi)核,是一個(gè)操作系統(tǒng)的核心。它負(fù)責(zé)管理系統(tǒng)的進(jìn)程、內(nèi)存、設(shè)備驅(qū)動(dòng)程序、文件和網(wǎng)絡(luò)系統(tǒng),決定著系統(tǒng)的性能和穩(wěn)定性。Linux作為一個(gè)自由軟件,
在廣大愛(ài)好者的支持下,內(nèi)核版本不斷更新。新的內(nèi)核修訂了舊內(nèi)核的bug,并增加了許多新的特性。如果用戶想要使用前埋這些新特性,或想根據(jù)自己的系統(tǒng)度身定
制一個(gè)更高效,更穩(wěn)定的內(nèi)核,就需要重新編譯內(nèi)核。本文將以RedHat Linux 6.0(kernel
2.2.5)為操作系統(tǒng)平臺(tái),介紹在Linux上進(jìn)行內(nèi)核編譯的方法。
一、 下載新內(nèi)核的源代碼
目前,在Internet上提供Linux源代碼的站點(diǎn)有很多,讀者可以選擇一個(gè)速度較快的站點(diǎn)下載。筆者是從站點(diǎn)
www.kernelnotes.org
上下載了Linux的最新開(kāi)發(fā)版內(nèi)核2.3.14的源代碼,全部代碼檔爛被壓縮到一個(gè)名叫Linux-2.3.14.tar.gz的文件中。
二、 釋放內(nèi)核源代碼
由于源代碼放在一個(gè)壓縮文件中,因此在配置內(nèi)核之前,要先將源代碼釋放到指定的目錄下。首先以root帳號(hào)登錄,然后進(jìn)入/usr/src子目錄。如果用戶在安裝Linux時(shí),安裝了內(nèi)核的源代碼,則會(huì)發(fā)現(xiàn)一個(gè)linux-2.2.5的子目錄。該目錄下存放著內(nèi)核2.2.5的源代碼。此外,還會(huì)發(fā)現(xiàn)一個(gè)指向該目錄的鏈接linux。刪除該連接,然后將新內(nèi)核的源文件拷貝到/usr/src目錄中。
?。ㄒ唬?、用tar命令釋放內(nèi)核源代碼
# cd /usr/src
# tar zxvf Linux-2.3.14.tar.gz
文件釋放成功后,在/usr/src目錄下會(huì)生成一個(gè)linux子目錄。其中包含了內(nèi)核2.3.14的全部源代碼。
(二)、將/usr/include/a、/usr/inlude/linux、/usr/include/scsi鏈接到/usr/src/linux/include目錄下的對(duì)應(yīng)目錄中。
# cd /usr/include
# rm -Rf a linux
# ln -s /usr/src/linux/include/a-i386 a
# ln -s /usr/src/linux/include/linux linux
# ln -s /usr/src/linux/include/scsi scsi
?。ㄈ?、刪除源代碼目錄中殘留的.o文件和其它從屬文件。
# cd /usr/src/linux
# make mrproper
三、 配置內(nèi)核
?。ㄒ唬?dòng)內(nèi)核配置程序。
# cd /usr/src/linux
# make config
除了上面的命令,用戶還可以使用make menuconfig命令啟動(dòng)一個(gè)菜單模式的配置界面。如行悔漏果用戶安裝了X window系統(tǒng),還可以執(zhí)行make xconfig命令啟動(dòng)X window下的內(nèi)核配置程序。
?。ǘ?、配置內(nèi)核
Linux的
內(nèi)核配置程序提供了一系列配置選項(xiàng)。對(duì)于每一個(gè)配置選項(xiàng),用戶可以回答”y”、”m”或”n”。其中”y”表示將相應(yīng)特性的支持或設(shè)備驅(qū)動(dòng)程序編譯進(jìn)內(nèi)
核;”m”表示將相應(yīng)特性的支持或設(shè)備驅(qū)動(dòng)程序編譯成可加載模塊,在需要時(shí),可由系統(tǒng)或用戶自行加入到內(nèi)核中去;”n”表示內(nèi)核不提供相應(yīng)特性或驅(qū)動(dòng)程序
的支持。由于內(nèi)核的配置選項(xiàng)非常多,本文只介紹一些比較重要的選項(xiàng)。
1、Code maturity level options(代碼成熟度選項(xiàng))
Prompt for development and/or incomplete code/drivers
(CONFIG_EXPERIMENTAL)
如果用戶想要使用還處于測(cè)試階段的代碼或驅(qū)動(dòng),可以選擇“y”。如果想編譯出一個(gè)穩(wěn)定的內(nèi)核,則要選擇“n”。
1、 Processor type and features(處理器類型和特色)
?。?)、Processor family (386, 486/Cx486, 586/K5/5×86/6×86, Pentium/K6/TSC, PPro/6x86MX) 選擇處理器類型,缺省為Ppro/6x86MX。
(2)、Maximum Physical Memory (1GB, 2GB) 內(nèi)核支持的更大內(nèi)存數(shù),缺省為1G。
(3)、Math emulation (CONFIG_MATH_EMULATION) 協(xié)處理器仿真,缺省為不仿真。
(4)、MTRR (Memory Type Range Register) support (CONFIG_MTRR)
選擇該選項(xiàng),系統(tǒng)將生成/proc/mtrr文件對(duì)MTRR進(jìn)行管理,供X server使用。
?。?)、Symmetric multi-processing support (CONFIG_P) 選擇“y”,內(nèi)核將支持對(duì)稱多處理器。
2、 Loadable module support(可加載模塊支持)
?。?)、Enable loadable module support (CONFIG_MODULES) 選擇“y”,內(nèi)核將支持加載模塊。
?。?)、Kernel module loader (CONFIG_KMOD) 選擇“y”,內(nèi)核將自動(dòng)加載那些可加載模塊,否則需要用戶手工加載。
3、 General setup(一般設(shè)置)
(1)、Networking support (CONFIG_NET) 該選項(xiàng)設(shè)置是否在內(nèi)核中提供網(wǎng)絡(luò)支持。
(2)、PCI support (CONFIG_PCI) 該選項(xiàng)設(shè)置是否在內(nèi)核中提供PCI支持。
(3)、PCI access mode (BIOS, Direct, Any) 該選項(xiàng)設(shè)置Linux探測(cè)PCI設(shè)備的方式。選擇“BIOS”,Linux將使用BIOS;選擇“Direct”,Linux將不通過(guò)BIOS;選擇“Any”,Linux將直接探測(cè)PCI設(shè)備,如果失敗,再使用BIOS。
?。?)Parallel port support (CONFIG_PARPORT) 選擇“y”,內(nèi)核將支持平行口。
4、 Plug and Play configuration(即插即用設(shè)備支持)
?。?)、Plug and Play support (CONFIG_PNP) 選擇“y”,內(nèi)核將自動(dòng)配置即插即用設(shè)備。
?。?)、ISA Plug and Play support (CONFIG_ISAPNP) 選擇“y”,內(nèi)核將自動(dòng)配置基于ISA總線的即插即用設(shè)備。
5、 Block devices(塊設(shè)備)
?。?)、Normal PC floppy disk support (CONFIG_BLK_DEV_FD) 選擇“y”,內(nèi)核將提供對(duì)軟盤(pán)的支持。
(2)、Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support (CONFIG_BLK_DEV_IDE) 選擇“y”,內(nèi)核將提供對(duì)增強(qiáng)IDE硬盤(pán)、CDROM和磁帶機(jī)的支持。
6、 Networking options(網(wǎng)絡(luò)選項(xiàng))
(1)、Packet socket (CONFIG_PACKET) 選擇“y”,一些應(yīng)用程序?qū)⑹褂肞acket協(xié)議直接同網(wǎng)絡(luò)設(shè)備通訊,而不通過(guò)內(nèi)核中的其它中介協(xié)議。
?。?)、Network firewalls (CONFIG_FIREWALL) 選擇“y”,內(nèi)核將支持防火墻。
?。?)、TCP/IP networking (CONFIG_INET) 選擇“y”,內(nèi)核將支持TCP/IP協(xié)議。
?。?)The IPX protocol (CONFIG_IPX) 選擇“y”,內(nèi)核將支持IPX協(xié)議。
(5)、Appletalk DDP (CONFIG_ATALK) 選擇“y”,內(nèi)核將支持Appletalk DDP協(xié)議。
8、SCSI support(SCSI支持)
如果用戶要使用SCSI設(shè)備,可配置相應(yīng)選項(xiàng)。
9、Network device support(網(wǎng)絡(luò)設(shè)備支持)
Network device support (CONFIG_NETDEVICES) 選擇“y”,內(nèi)核將提供對(duì)網(wǎng)絡(luò)驅(qū)動(dòng)程序的支持。
10、Ethernet (10 or 100Mbit)(10M或100M以太網(wǎng))
在該項(xiàng)設(shè)置中,系統(tǒng)提供了許多網(wǎng)卡驅(qū)動(dòng)程序,用戶只要選擇自己的網(wǎng)卡驅(qū)動(dòng)就可以了。此外,用戶還可以根據(jù)需要,在內(nèi)核中加入對(duì)FDDI、PPP、SLIP和無(wú)線LAN(Wireless LAN)的支持。
11、Character devices(字符設(shè)備)
?。?)、Virtual terminal (CONFIG_VT) 選擇“y”,內(nèi)核將支持虛擬終端。
?。?)、Support for console on virtual terminal (CONFIG_VT_CONSOLE)
選擇“y”,內(nèi)核可將一個(gè)虛擬終端用作系統(tǒng)控制臺(tái)。
?。?)、Standard/generic (dumb) serial support (CONFIG_SERIAL)
選擇“y”,內(nèi)核將支持串行口。
?。?)、Support for console on serial port (CONFIG_SERIAL_CONSOLE)
選擇“y”,內(nèi)核可將一個(gè)串行口用作系統(tǒng)控制臺(tái)。
12、Mice(鼠標(biāo))
PS/2 mouse (aka “auxiliary device”) support (CONFIG_POUSE) 如果用戶使用的是PS/2鼠標(biāo),則該選項(xiàng)應(yīng)該選擇“y”。
13、Filesystems(文件系統(tǒng))
(1)、Quota support (CONFIG_QUOTA) 選擇“y”,內(nèi)核將支持磁盤(pán)限額。
?。?)、Kernel automounter support (CONFIG_AUTOFS_FS) 選擇“y”,內(nèi)核將提供對(duì)automounter的支持,使系統(tǒng)在啟動(dòng)時(shí)自動(dòng) mount遠(yuǎn)程文件系統(tǒng)。
?。?)、DOS FAT fs support (CONFIG_FAT_FS) 選擇“y”,內(nèi)核將支持DOS FAT文件系統(tǒng)。
?。?)、ISO 9660 CDROM filesystem support (CONFIG_ISO9660_FS)
選擇“y”,內(nèi)核將支持ISO 9660 CDROM文件系統(tǒng)。
?。?)、NTFS filesystem support (read only) (CONFIG_NTFS_FS)
選擇“y”,用戶就可以以只讀方式訪問(wèn)NTFS文件系統(tǒng)。
(6)、/proc filesystem support (CONFIG_PROC_FS) /proc是存放Linux系統(tǒng)運(yùn)行狀態(tài)的虛擬文件系統(tǒng),該項(xiàng)必須選擇“y”。
?。?)、Second extended fs support (CONFIG_EXT2_FS) EXT2是Linux的標(biāo)準(zhǔn)文件系統(tǒng),該項(xiàng)也必須選擇“y”。
14、Network File Systems(網(wǎng)絡(luò)文件系統(tǒng))
?。?)、NFS filesystem support (CONFIG_NFS_FS) 選擇“y”,內(nèi)核將支持NFS文件系統(tǒng)。
?。?)、B filesystem support (to mount WfW shares etc.) (CONFIG_B_FS)
選擇“y”,內(nèi)核將支持B文件系統(tǒng)。
(3)、NCP filesystem support (to mount NetWare volumes) (CONFIG_NCP_FS)
選擇“y”,內(nèi)核將支持NCP文件系統(tǒng)。
15、Partition Types(分區(qū)類型)
該選項(xiàng)支持一些不太常用的分區(qū)類型,用戶如果需要,在相應(yīng)的選項(xiàng)上選擇“y”即可。
16、Console drivers(控制臺(tái)驅(qū)動(dòng))
VGA text console (CONFIG_VGA_CONSOLE) 選擇“y”,用戶就可以在標(biāo)準(zhǔn)的VGA顯示方式下使用Linux了。
17、Sound(聲音)
Sound card support (CONFIG_SOUND) 選擇“y”,內(nèi)核就可提供對(duì)聲卡的支持。
18、Kernel hacking(內(nèi)核監(jiān)視)
Magic SysRq key (CONFIG_MAGIC_SYSRQ) 選擇“y”,用戶就可以對(duì)系統(tǒng)進(jìn)行部分控制。一般情況下選擇“n”。
四、 編譯內(nèi)核
?。ㄒ唬?、建立編譯時(shí)所需的從屬文件
# cd /usr/src/linux
# make dep
(二)、清除內(nèi)核編譯的目標(biāo)文件
# make clean
?。ㄈ?、編譯內(nèi)核
# make zImage
內(nèi)核編譯成功后,會(huì)在/usr/src/linux/arch/i386/boot目錄中生成一個(gè)新內(nèi)核的映像文件zImage。如果編譯的內(nèi)核很大的話,系統(tǒng)會(huì)提示你使用make bzImage命令來(lái)編譯。這時(shí),編譯程序就會(huì)生成一個(gè)名叫bzImage的內(nèi)核映像文件。
?。ㄋ模?、編譯可加載模塊
如果用戶在配置內(nèi)核時(shí)設(shè)置了可加載模塊,則需要對(duì)這些模塊進(jìn)行編譯,以便將來(lái)使用inod命令進(jìn)行加載。
# make modules
# make modelus_install
編譯成功后,系統(tǒng)會(huì)在/lib/modules目錄下生成一個(gè)2.3.14子目錄,里面存放著新內(nèi)核的所有可加載模塊。
五、 啟動(dòng)新內(nèi)核
?。ㄒ唬?、將新內(nèi)核和System.map文件拷貝到/boot目錄下
# cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.3.14
# cp /usr/src/linux/System.map /boot/System.map-2.3.14
# cd /boot
# rm -f System.map
# ln -s System.map-2.3.14 System.map
?。ǘ?、配置/etc/lilo.conf文件。在該文件中加入下面幾行:
default=linux-2.3.14
image=/boot/vmlinuz-2.3.14
label=linux-2.3.14
root=/dev/hda1
read-only
?。ㄈ⑹剐屡渲蒙?
# /in/lilo
?。ㄋ模?、重新啟動(dòng)系統(tǒng)
# /in/reboot
新內(nèi)核如果不能正常啟動(dòng),用戶可以在LILO:提示符下啟動(dòng)舊內(nèi)核。然后查出故障原因,重新編譯新內(nèi)核即可。
了解更多開(kāi)源相關(guān),去LUPA社區(qū)看看吧。
郵箱拿來(lái)。發(fā)書(shū)給你;Linux_from_Scratch;
$ make menuconfig
linux device linear的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于linux device linear,Linux設(shè)備線性排列:提高系統(tǒng)性能的關(guān)鍵,如何編譯linux內(nèi)核的信息別忘了在本站進(jìn)行查找喔。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開(kāi)通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過(guò)10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
分享文章:Linux設(shè)備線性排列:提高系統(tǒng)性能的關(guān)鍵(linuxdevicelinear)
新聞來(lái)源:http://fisionsoft.com.cn/article/djioiic.html


咨詢
建站咨詢
