當前位置:首頁 » 操作系統 » 修改linux版本號

修改linux版本號

發布時間: 2023-06-14 08:12:50

⑴ 如何查詢linux內核版本

如何查詢Linux內核版本

終端下輸入
[xxxx@ ~]uname -r
3.5.0-34-generic

查看內核版本命令:
1) [root@q1test01 ~]# cat /proc/version

Linux version 2.6.9-22.EL *** p ([email protected].) (g version 3.4.4 20050721 (Red Hat 3.4.4-2)) #1 SMP Mon Sep 19 18:00:54 EDT 2005

2) [root@q1test01 ~]# uname -a
Linux
q1test01 2.6.9-22.EL *** p #1 SMP Mon Sep 19 18:00:54 EDT 2005 x86_64
x86_64 x86_64 GNU/Linux3) [root@q1test01 ~]# uname -r2.6.9-22.EL *** p

如何查詢Linux內核函數

如果要看這兩個函數在標准庫中的定義用ctags或cscope生成索引.h,cscope,可以跳轉到函數定義,man malloc,聲明見stdlib。
如果仍然找不到,可以用ctags,si或grep。
windows下用source insight也可,然後查找函數定義,用grep -r 搜索關鍵字,atoi和malloc在C的標准庫中有定義。
1.安裝ctags
在源代碼目錄下運行
ctags -R
這樣,會遞歸生成當前目錄下及其子目錄的tags文件。
2.使用VIM根據tags文件查找函數或結構定義。
1.在源碼目錄下查找
vi -t tagname
2.如果要在任意位置使用,則需要把該tags文件添加到~/.vimrc文件中
set tags=/home/money/sda8/2.6232/tags
3.如果要在代碼中實時跟蹤,則游標移動到函數名上,使用CTRL+]鍵,按CTRL+t可以返回。
如果要跟蹤系統函數,使用shift+K可以自動跳轉道游標所在函數的手冊。

如何分析LINUX內核2.6.29版本

uname -a 顯示版本號,是這意思嗎?

這個問題洞橋太大了,近似於說:請教下我怎麼編寫一個Linux內核。
分析內核唯一可以做的就是一行行看代碼,Linux早期版本有完整的代碼分析,如果是指定2.6.29的話,猛喚那估計有人做出來就可以出書收錢了……

如何根據linux內核判斷linux版本

在Linux內核的頂層Makefile中,頂端就有,格式為
VERSION = 3
PATCHLEVEL = 0
SUBLEVEL = 8
EXTRAVERSION =
NAME = Sneaky Weasel
以上的版本號就是3.08

如何修改linux內核版本號

得重新編譯內核,之前修改源代碼的頂層納知猛目錄下的Makefile文件,比如2.6.29.1內核的Makefile中:
VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 29
EXTRAVERSION = .1

在Qt C/C++中怎樣查詢Linux內核版本號

查詢Linux內核版本號可以調用uname函數,uname函數的函數原型是這樣的:
int uname(struct utsname *name);
uname函數在調用時需要向它傳遞一個utsname結構體指針(或地址),uname函數會寫入name參數指向的utsname結構體,Linux的內核版本號就保存在utsname結構體的release成員裡面,代碼就像下面這樣:
struct utsname uts;
if(uname(&uts) >= 0) {
printf("The version is %s ", uts.release);
}
注意,使用uname函數需要包含sys/utsname.h頭文件:
#include <sys/utsname.h>

⑵ linux版本信息和區別

查看內核版本命令:

1) [root@localhost~]# cat /proc/version

Linux version 2.6.18-238.el5 ([[email protected]](mailto:[email protected])) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-50)) #1 SMP Sun Dec 19 14:22:44 EST 2010





2)[root@localhost~]# uname -r

2.6.18-238.el5



3)[root@localhost~]# uname -a

Linux SOR_SYS.99bill.com 2.6.18-238.el5 #1 SMP Sun Dec 19 14:22:44 EST 2010 x86_64 x86_64 x86_64 GNU/Linux



查看linux版本:

1) 登錄到伺服器執行 lsb_release -a ,即可列出所有版本信息,例如:



[root@localhost~]# lsb_release -a

LSB Version:    :core-4.0-amd64:core-4.0-ia32:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-ia32:printing-4.0-noarch

Distributor ID: RedHatEnterpriseAS

Description:    Red Hat Enterprise Linux AS release 4 (Nahant Update 4)

Release:        4

Codename:      NahantUpdate4



注:這個命令適用於所有的linux,包括Redhat、SuSE、Debian等發行版。

2) 登錄到linux執行cat /etc/issue,例如如下:



[root@localhost~]# cat /etc/issue

Red Hat Enterprise Linux Server release 5.6 (Tikanga)

Kernel \r on an \m

- 3) 登錄到linux執行cat /etc/redhat-release ,例如如下:

- [root@localhost~]# cat /etc/redhat-release

  Red Hat Enterprise Linux AS release 4 (Nahant Update 4)

- 注:這種方式下可以直接看到具體的版本號,比如 AS4 Update 1

另:第3)、4)兩種方法只對Redhat Linux有效

5) [root@localhost~]# file /bin/bash

/bin/bash: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped





6) [root@localhost~]# file /bin/cat

/bin/cat: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped



linux版本信息說明

Linux內核版本有兩種:穩定版和開發版 ,Linux內核版本號由3個數字組成:r.x.y



  r:目前發布的內核主版本。

  x:偶數表示穩定版本;奇數表示開發中版本。

  y:錯誤修補的次數。



內核版本號每位都代表什麼 ?



•以版本號為例: 2.6.18-128.ELsmp ,



•r:  2 , 主版本號



•x:  6 , 次版本號,表示穩定版本



•y:  18 , 修訂版本號 , 表示修改的次數,頭兩個數字合在一齊可以描述內核系列。如穩定版的2.6.0,它是2.6版內核系列。



•128:  表示這個當前版本的第5次微調patch , 而ELsmp指出了當前內核是為ELsmp特別調校的



•EL :  Enterprise Linux  ; smp : 表示支持多處理器 , 表示該內核版本支持多處理器





amd和intel

amd和Intel這倆公司的淵源很深,早期時Intel先是自己搞了個x86架構,然後amd拿到了x86的授權也可以自己做x86了。接著intel向64位過渡的時候自己搞了個ia64(x64架構)但是因為和x86架構不兼容市場反應極差,amd率先搞了x86的64位兼容(32和64的混合架構)也就是後來的x86-64,後來Intel也拿到了生產這貨的授權(i和a兩家專利交叉的很嚴重),也搞了x86-64,因為amd先搞出來的所以x86-64也叫amd64



目前amd和Intel是世界上最大的兩家x86和x86-64的cpu廠家(intel比較給力,四分天下有其三)。除了這兩家還有幾家小的公司也有x86的授權,比如via,不過技術水平真的很一般





x86

x86是指intel的開發的一種32位指令集,從386開始時代開始的,一直沿用至今,是一種cisc指令集,所有intel早期的cpu,amd早期的cpu都支持這種指令集,ntel官方文檔裡面稱為「IA-32」

早期的x86是cisc的代表,後來的發展中逐步引入了risc的部分理念,將內部指令的實現大量模塊化,准確來說是一個cisc外加risc部分技術的架構。目前x86的主要產品有Intel的至強,酷睿,奔騰,賽揚和凌動;amd的銳龍,apu等。上文提到的x64架構目前只有intel 安騰而且已經放棄了產品線。



到目前為止intel和amd的x86架構cpu雖然指令集上有很大差別了但是還是相互兼容的,所以軟體可以直接用。'



x84_64 與amd64

x84_64是x86 CPU開始邁向64位的時候,有2選擇:1、向下兼容x86。2、完全重新設計指令集,不兼容x86。AMD搶跑了,比Intel率先製造出了商用的兼容x86的CPU,AMD稱之為AMD64,搶了64位PC的第一桶金,得到了用戶的認同。而Intel選擇了設計一種不兼容x86的全新64為指令集,稱之為IA-64(這玩意似乎就是安騰),但是比amd晚了一步,而且IA-64也挺慘淡的,因為是全新設計的CPU,沒有編譯器,也不支持windows(微軟把intel給忽悠了,承諾了會出安騰版windows server版,但是遲遲拿不出東西)。。。後來不得不在時機落後的情況下也開始支持AMD64的指令集,但是換了個名字,叫x86_64,表示是x86指令集的64擴展,大概是不願意承認這玩意是AMD設計出來的。

也就是說實際上,x86_64,x64,AMD64基本上是同一個東西,我們現在用的intel/amd的桌面級CPU基本上都是x86_64,與之相對的arm,ppc等都不是x86_64。

arm與mips

arm是risc的典型代表,不過在arm的發展過程中引入了部分復雜指令(完全沒有復雜指令的話操作系統跑起來異常艱難),所以是一個risc基礎外加cisc技術的cpu。



arm的主要專利技術在arm公司手中,像高通,三星,蘋果這些公司需要拿到arm的授權。



另一個risc的典型處理器就是mips。mips是一個學院派的cpu,授權門檻極低,因此很多廠家都做mips或者mips衍生架構。我們平時接觸到的mips架構cpu主要用在嵌入式領域,比如路由器。



目前最活躍的mips是中國的龍芯,其loongisa架構其實是mips的擴展。





mips mipsel mips64el 區別

- Debian目前提供3個埠,'mips','mipsel'和'mips64el'。 'mips'和'mipsel'埠分別是大端和小端變體,使用O32 ABI和硬體浮點。他們在Jessie中使用MIPS II ISA,在Stretch中使用MIPS32R2 ISA。 'mips64el'埠是一個64位小端埠,使用N64 ABI,硬體浮點和MIPS64R2 ISA。

- mips 是32位大端位元組序

- mipsel 是32位小端位元組序

⑶ Linux內核版本號的規則

Linux內核版本有兩種:穩定版和開發版 ,Linux內核版本號由3個數字組成:r.x.y

r:目前發布的內核主版本。
x:偶數表示穩定版本;奇數表示開發中版本。
y:錯誤修補的次數。

內核版本號每位都代表什麼 ?

以版本號為例: 2.6.9-5.ELsmp ,

r: 2 , 主版本號

x: 6 , 次版本號,表示穩定版本

y: 9 , 修訂版本號 , 表示修改的次數

頭兩個數字合在一齊可以描述內核系列。如穩定版的2.6.0,它是2.6版內核系列。

5: 表示這個當前版本的第5次微調patch , 而ELsmp指出了當前內核是為ELsmp特別調校的

EL : Enterprise Linux ; smp : 表示支持多處理器 , 表示該內核版本支持多處理器

知識延伸
一般的有三種
1 smp
2 bigmem
3 一般的內核

Red Hat Linux開機的時候,GRUB的啟動菜單會有兩個選項,分別是
Red Hat Enterprise Linux ES (版本號.ELsmp)
Red Hat Enterprise Linux ES-up (版本號.EL)
這兩個分別是代表什麼含義呢?
其實這個就是系統開機時由GRUB引導啟動 - 單處理器 與 對稱多處理器啟動核心文件的區別。
Red Hat Enterprise Linux ES (版本號.ELsmp) multiple processor (symmetric multiprocessing )
Red Hat Enterprise Linux ES-up (版本號.EL) uniprocessor
下面就把SUSE與Red Hat啟動菜單內可選擇的選項,列舉出來

SUSE
版本號-default: SUSE Linux kernel for uniprocessor machines 默認選項,支持單處理器機器
版本號-smp: SUSE Linux kernel that supports symmetric multiprocessing and up to 4 GB of RAM

支持4GB內存的對稱多處理器機器
版本號-bigsmp: SUSE Linux kernel supports symmetric multiprocessing and up to 64 GB

支持64GB內存的對稱多處理器機器
Red Hat Linux
版本號.EL: Red Hat Linux kernel for uniprocessor machines 支持單處理器機器
版本號.ELhugemem: Red Hat Linux kernel that supports up to 64 GB of RAM

支持64GB內存的對稱多處理器機器
版本號.ELsmp: Red Hat Linux kernel that supports symmetric multiprocessing 對稱多處理器機器,支持4G內存
有些情況下你需要支持1和2特性,那麼你可以:重新編譯一下內核,在處理器及內存選擇項上選擇與你配置相對應的選項即可。

如何下載對應內核版本的源代碼 ?
一般情況下,可以直接到官網:http://www.kernel.org下載,

缺點是:對於任何內核做過特殊優化調校的發行版是不合適的,尤其是fedora ubuntu 這一類的,畢竟他們在內核中打了大量的補丁,做了很多優化,如果直接使用官方源碼 ,你就無法享受到這些東西 ,內核不是越新越好的 越合適越好

因此最好到發行商的官網去下載,因為官方已經提供了編譯好的源碼rpm包。

如何使用對應的內核源碼包 ?

以fedora官方提供的內核源碼: kernel-2.6.23.9-85.fc8.src.rpm 為例

首先,安裝源碼

[root@lq ~]# rpm -ivh kernel-2.6.23.9-85.fc8.src.rpm

然後,轉換源碼
轉換之前,請確保/usr/src/目錄下有redhat目錄(一般/usr/src/是空目錄)。
[root@lq ~]# rpmbuild -bp --target=$(uname -m) /usr/src/redhat/SPECS/kernel.spec
這樣會將源碼放置在/usr/src/redhat/BUILD/kernel-2.6.23/。
這里有兩個有用的文件夾:.
linux-2.6.23.ARCH——這個是kernel.org 提供的包經過Fedora 補丁和升級得到的。也就是 2.6.23.9-85.fc8 這個 打過補丁的內核
ARCH 與uname-m 的輸出結果一致,通常為i686。如果你想得到不同的輸出,你可以使用
「--target=」這個選項來進行指定。
vanilla——這個是標準的、由kernel.org 提供的沒有經過補丁和升級的源碼。

⑷ 如何編譯linux版本

編譯linux內核步驟:
1、安裝內核
如果內核已經安裝(/usr/src/目錄有linux子目錄),跳過。如果沒有安裝,在光碟機中放入linux安裝光碟,找到kernel-source-2.xx.xx.rpm文件(xx代表數字,表示內核的版本號),比如RedHat linux的RPMS目錄是/RedHat/RPMS/目錄,然後使用命令rpm -ivh kernel-source-2.xx.xx.rpm安裝內核。如果沒有安裝盤,可以去各linux廠家站點或者www.kernel.org下載。
2、清除從前編譯內核時殘留的.o 文件和不必要的關聯
cd /usr/src/linux
make mrproper
3、配置內核,修改相關參數,請參考其他資料
在圖形界面下,make xconfig;字元界面下,make menuconfig。在內核配置菜單中正確設置個內核選項,保存退出
4、正確設置關聯文件
make dep
5、編譯內核
對於大內核(比如需要SCSI支持),make bzImage
對於小內核,make zImage
6、編譯模塊
make moles
7、安裝模塊
make moles_install
8、使用新內核
把/usr/src/linux/arch/i386/boot/目錄內新生成的內核文件bzImage/zImage拷貝到/boot目錄,然後修改/etc/lilo.conf文件,加一個啟動選項,使用新內核bzImage/zImage啟動。格式如下:
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
linear
default=linux-new ### 告訴lilo預設使用新內核啟動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
保留舊有的啟動選項可以保證新內核不能引導的情況,還可以進入linux進行其他操作。保存退出後,不要忘記了最重要的一步,運行/sbin/lilo,使修改生效。
9、重新生成ram磁碟
如果您的系統中的/etc/lilo.conf沒有使用了ram磁碟選項initrd,略過。如果您的系統中的/etc/lilo.conf使用了ram磁碟選項initrd,使用mkinitrd initrd-內核版本號,內核版本號命令重新生成ram磁碟文件,例如我的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磁碟能使系統性能盡可能的優化,具體參考/usr/src/linux/Documents/initrd.txt文件
10、重新啟動,OK!

熱點內容
怎麼讓手機上密碼 發布:2025-03-26 19:13:40 瀏覽:580
linux換網卡 發布:2025-03-26 19:13:28 瀏覽:520
人人網相冊怎麼加密 發布:2025-03-26 19:08:40 瀏覽:643
b站緩存罪惡王冠 發布:2025-03-26 19:04:09 瀏覽:438
微信php介面 發布:2025-03-26 19:04:07 瀏覽:553
python創建excel 發布:2025-03-26 18:57:12 瀏覽:982
橫著上傳 發布:2025-03-26 18:50:15 瀏覽:820
我的世界國際版電腦2b2t伺服器 發布:2025-03-26 18:46:40 瀏覽:531
android中的service 發布:2025-03-26 18:40:06 瀏覽:539
python畫函數圖像 發布:2025-03-26 18:34:17 瀏覽:670