㈠ 怎么进入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:表示发送套接字缓冲区大小的最大值(以字节为单位)。