㈠ 怎麼進入linux內核配置把CONFIG_ACPI_THERMAL設置為y
你要在目標文件夾(一般是/usr/src/kernels)下先解壓內核源代碼:tar jxvf linux-2.6.xx.xx.tar.bz2,然後cd到解壓後的源代碼目錄樹的根目錄下運行make指令。
㈡ 如何使linux開機時選擇要進入的內核版本
找了蠻久解決方案的一個問題……
編輯 /etc/default/grub (比如命令:sudo gedit /etc/default/grub)
找到 hidden_timeout 數字改為10,保存
終端執行命令:sudo update-grub
sudo reboot重啟 ,正常的話 會有一個倒計時 那個時候按住shift 然後在菜單欄里選就ok了
㈢ linux操作系統內核怎麼進入
ioctl啊 系統調用啊,寫點對於的驅動ko掛上就可以了
㈣ 如何讓linux的一段程序代碼進入內核態運行
Linux內核的最初部分代碼是用匯編語言寫的(文件是boot/bootsect.s)。(我的匯編水平有限,暫且不看),它首先把自身這部分代碼移到絕對地址0x90000,把下面的2K代碼從引導設備載入到地址0x90200上,內核的其餘部分載入到地址0x10000處。在載入系統時顯示「loading...」. 然後,程序控制權交給另一個實模式匯編程序(boot/Setup.S)。
接下來,此程序把整個系統從地址0x10000移到地址0x1000,進入保護模式。程序控制轉給系統的其餘部分即地址0x1000。
下一個步驟是系統內核的解壓過程,這部分代碼在地址0x1000(文件/Boot/head.S),該段程序初始化寄存器,然後執行decompress_kernel(),這個函數源於zBoot/inflate.c、zBoot/unzip.c和zBoot/misc.c三個文件
Loading....[bootsect.S]
uncompress.....[decompress_kernel()]
main.c--->start_kernel()開始.
開始printk(banner);
Linuxversion2.2.6(root@lance)(gccversion2.7.2.3)(檢查一下GCC的版本號,在/init/main.c中如果gcc的版本號不夠,時不允許編譯內核的)
#40SunApr1817:44:20CST1999
調用init_time()列印出以下內容:
Detected199908264Hzprocessor.
然後運行console_init()-->drivers/char/tty_io.c*/
Console:colourVGA+80x25
運行一個循環,測量一下MIPS–據說是要用一個確定的機器指令周期來實現實時的延遲.
Calibratingdelayloop...199.48BogoMIPS
初始化內存/*init_mem*/
Memory:63396k/65536kavailable(848kkernelcode,408kreserved,856kdata
,28k
/**dquote_init()**/
VFS:Diskquotasversiondquot_6.4.0initialized
察看cpu的類型(在2.2.14以後聽說增加了對多種cpu的支持,以後我可得用心看看,ifIcanfindabugofintelthen……)
CPU:IntelPentiumProstepping09
初始或處理器與協處理器,對於比較老的處理器,linux會用軟體模擬協處理器?
Checking386/387coupling...OK,.
檢查治理的合法性
Checking'hlt'instruction...OK.
此後調用linux_thread(init,..,..,)(arch/i386/kernel/process.c)
創建一個運行init的進程.
進入了第二階段用戶模式(user_mode)Endofstart_kerne最後進入cpu_idle(arch/i386/kernel/process.c)
第二部分設備的初始化
對設備的初始化調用.init()--->do_basic_init()--+
pci_init()對pci設備的初始化(在main.c文件中有這樣一段ifdefPCI…..需要看一下)下面列印出結果:
PCI:PCIBIOSrevision2.10entryat0xfd8d1
PCI:Usingconfigurationtype1
PCI:ProbingPCIhardware
對Socket的初始化,socket_init()(這里也許就是linux的網路秘密所在吧,以後我的注意)-LinuxNET4.0forLinux2.2
.039
NET4:Unixdomainsockets1.0forLinuxNET4.0.
NET4:LinuxTCP/IP1.0forNET4.0
IPProtocols:ICMP,UDP,TCP
Startingkswapdv1.5kswapd_setup()
調用device_setup()
DetectedPS/2MousePort.
初始化音效卡
Soundinitializationstarted
Soundinitializationcomplete
初始化軟碟機
Floppydrive(s):fd0is1.44M
SCSI設備的初始化
(scsi0)foundatPCI13/0
(scsi0)WideChannel,SCSIID=7,16/255SCBs
(scsi0)Downloadingsequencercode...419instructionsdownloaded
scsi0:AdaptecAHA274x/284x/294x(EISA/VLB/PCI-FastSCSI)5.1.10/3.2.4
scsi:1host.
Vendor:SEAGATEModel:ST32155WRev:0596
ype:Direct-AccessANSISCSIrevision:02
Detectedscsidisksdaatscsi0,channel0,id0,lun0
Vendor:SEAGATEModel:ST32155WRev:0596
Type:Direct-AccessANSISCSIrevision:02
Detectedscsidisksdbatscsi0,channel0,id1,lun0
scsi:detected2SCSIdiskstotal.
(scsi0:0:0:0)Synchronousat40.0Mbyte/sec,offset8.
SCSIdevicesda:hdwrsector=512bytes.Sectors=4197405[2049MB][2.0GB](scsi0:0:1:0)Synchronousat40.0Mbyte/sec,offset8.
SCSIdevicesdb:hdwrsector=512bytes.Sectors=4197405[2049MB][2.0GB]Partitioncheck:sda:sda1|
sdb:sdb1sdb2|
安裝文件系統filesystem_setup()
安裝設備驅動程序mount_root()
VFS:Mountedroot(ext2filesystem)readonly.
Freeingunusedkernelmemory:28kfreed
AddingSwap:66540kswap-space(priority-1)
(C)byHannuSavolainen1993-1996
SB3.01detectedOK(220)
at0x220irq5dma1
YM3812andOPL-3driverCopyright(C)byHannuSavolainen,RobHooft1993-1
996at0x388
NET4:AppleTalk0.18forLinuxNET4.0
eth0:IntelEtherExpressPro10/100at0xf800,00:A0:C9:49:2F:FF,IRQ9.
Boardassembly645520-034,Physicalconnectorspresent:RJ45
#1.
DP83840specificsetup,settingregister23to8462.
Generalself-test:passed.
Serialsub-systemself-test:passed.
Internalregistersself-test:passed.
ROMchecksumself-test:passed(0x49caa8d6).
Receiverlock-upworkaroundactivated.
NET4:AppleTalk0.18forLinuxNET4.0
結束do_basic_setup()
open("/dev/console",O_RDWR,0)
開始執行/sbin/init(execv(...))
內核就此啟動完畢...
㈤ 怎樣進入linux內核文件目錄
1、先是輸入賬號密碼進入centos7。
㈥ Linux系統調用詳解(如何從用戶空間進入內核
其實進程在內核態和用戶態各有一個堆棧。運行在用戶空間時進程使用的是用戶空間中的堆棧,而運行在內核空間時,進程使用的是內核空間中的堆棧。所以說,Linux 中每個進程有兩個棧,分別用於用戶態和內核態。我其實也不是很理解,如果你想更理解的話可以看下這篇文章,上面講的很詳細網頁鏈接希望對你有幫助啊
㈦ Linux系統開機時啟動內核步驟是什麼
開機--加電自檢--讀取CMOS設置--從硬碟引導記錄查找系統所在位置--讀取GRUB配置文件(/boot/grub/grub.conf),載入內核,驅動硬體--開啟init進程,讀取相應配置文件(/etc/inittab),打開默認運行級別,載入相應服務,開機啟動項--完成啟動過程
㈧ 如何從應用程序進入linux內核
需要讓linux的一段程序代碼進入內核態運行產生的方式有二: 被動式 主動式 所謂被動式就是產生中斷或者代碼產出異常,代碼不得不從用戶態進入內核態進行中斷操作或者是異常處理; 而主動式則是系統響應了程序對系統的一次調用過程,並且系統允許該運行級別的提升;
㈨ 如何進入linux內核配置界面
由於linux的內核參數信息都存在內存中,因此可以通過命令直接修改,並且修改後直接生效。但是,當系統重新啟動後,原來設置的參數值就會丟失,而系統每次啟動時都會自動去/etc/sysctl.conf文件中讀取內核參數,因此將內核的參數配置寫入這個文件中,是一個比較好的選擇。
首先打開/etc/sysctl.conf文件,查看如下兩行的設置值,這里是:
kernel.shmall
=
2097152
kernel.shmmax
=
4294967295
如果系統默認的配置比這里給出的值大,就不要修改原有配置。同時在/etc/sysctl.conf文件最後,添加以下內容:
fs.file-max
=
6553600
kernel.shmmni
=
4096
kernel.sem
=
250
32000
100
128
net.ipv4.ip_local_port_range
=
1024
65000
net.core.rmem_default
=
4194304
net.core.rmem_max
=
4194304
net.core.wmem_default
=
262144
net.core.wmem_max
=
262144
這里的「fs.file-max
=
6553600」其實是由「fs.file-max
=
512
*
processes」得到的,我們指定processes的值為12800,即為「fs.file-max
=512
*12800」。
sysctl.conf文件修改完畢後,接著執行「sysctl
-p」使設置生效。
[root@localhost
~]#
sysctl
-p
常用的內核參數的含義如下。
kernel.shmmax:表示單個共享內存段的最大值,以位元組為單位,此值一般為物理內存的一半,不過大一點也沒關系,這里設定的為4gb,即「4294967295/1024/1024/1024=4g」。
kernel.shmmni:表示單個共享內存段的最小值,一般為4kb,即4096bit.
kernel.shmall:表示可用共享內存的總量,單位是頁,在32位系統上一頁等於4kb,也就是4096位元組。
fs.file-max:表示文件句柄的最大數量。文件句柄表示在linux系統中可以打開的文件數量。
ip_local_port_range:表示埠的范圍,為指定的內容。
kernel.sem:表示設置的信號量,這4個參數內容大小固定。
net.core.rmem_default:表示接收套接字緩沖區大小的預設值(以位元組為單位)。
net.core.rmem_max
:表示接收套接字緩沖區大小的最大值(以位元組為單位)
net.core.wmem_default:表示發送套接字緩沖區大小的預設值(以位元組為單位)。
net.core.wmem_max:表示發送套接字緩沖區大小的最大值(以位元組為單位)。