首页
学习
活动
专区
工具
TVP
发布

Linux内核启动参数详解

x86_64 x86_64 GNU/Linux 2.查看当前linux内核启动参数: cat /proc/cmdline 笔者的输出内容如下: BOOT_IMAGE=/boot/vmlinuz-4.4.0...)来代替,但是不能用root=(hd0,msdos1)来代替 ro : 启动时以只读方式挂载根文件系统 quiet: 不进行打印信息的输出,所以去掉此项将会迎来很多打印信息 splash: 显示开机动画...vt.handoff=7 : 图形界面会去使用tty7,此项用来禁止splash占用tty7,因此如果将splash参数去掉,此项就无效了 4.添加新的启动参数 vi /boot/grub/grub.cfg...此文件中会有第2步输出的内容,在其后追加参数即可,例如: 笔者的grub.cfg文件中就有如下行:(是不是与第2步输出的信息有些类似) linux /boot/vmlinuz-4.4.0-89-generic...update-grub命令无法满足更细致的内核参数修改需求

5.4K20

深入理解 Linux 启动过程 | QEMU 启动 linux 内核和自制根文件系统

跟我一起来到故事开始的地方,深入 Linux 系统的启动流程,自己编译内核并制作根文件系统,并使用 QEMU 模拟启动。 前置知识# 昨天看到阮老师两篇文章 《计算机是如何启动的?》...说明:本文介绍的方法同样可用于内核调试,但侧重于介绍 使用 QEMU 模拟 Linux启动流程 。...4.2.1 (Debian 1:4.2-3ubuntu6.18) 实验内核: 4.9.263 busybox: busybox-1.32.1 模拟启动# 下面介绍使用 QEMU 模拟启动内核和根文件系统的方法...为了模拟启动,需要准备编译好的内核 bzImage 和根文件系统,下面分别介绍。...By 阮一峰 BusyBox By Wikipedia 第一步,用qemu启动linux内核,从跑个Helloworld开始 在qemu上运行BusyBox 编译内核出现:cc1: error: code

1.4K30
您找到你想要的搜索结果了吗?
是的
没有找到

Linux系统修改默认内核启动顺序

grub2-set-default "CentOS Linux (3.10.0-123.9.3.el7.x86_64) 7 (Core)" 3、执行如下命令,确认配置成功。...grub2-editenv list 二、centos6修改内核启动顺序 1、查看/etc/grub.conf文件,确认系统内核的情况,如下图所示系统存在2个内核的现象。...2、在grub.conf文件中决定开机使用哪个内核版本做启动的参数是default,默认值为0,代表从最新的内核启动。代表启动内核版本从上往下依次是0、1、2等。...menuentry 2、修改grub文件 假设要修改为3.13.0-166内核启动, 修改文件/etc/default/grub $ sudo vim /etc/default/grub GRUB_DEFAULT...=0 ##修改为 GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 4.4.0-31-generic" 3、更新修改后的grub

8K20

Linux 内核】编译 Linux 内核 ⑤ ( 查看 .config 编译配置文件 | 正式编译内核 )

文章目录 一、查看 .config 编译配置文件 二、正式编译内核 一、查看 .config 编译配置文件 ---- 在上一篇博客 【Linux 内核】编译 Linux 内核 ④ ( 打开 Linux...内核编译 菜单配置 |菜单配置中的光标移动与选中状态 | 保存配置 | 配置项帮助文档 ) 中 , 已经将编译配置保存到了 .config 文件中 ; 查看 .config 编译配置文件 , 在 linux...内核源码根目录中 , 执行 gedit .config 命令 , 查看 .config 编译配置文件 : ( 也可以使用 vi , vim 等文本编辑器查看 ) 在 .config 配置中 , #...代表注释 , CONFIG_IRQ_WORK=y 等号右侧的 y 表示同意该操作 ; .config 文件内容示例 : 配置文件很多 , 这里只贴出一部分 ; # # Automatically generated...---- 在 Linux 内核源码根目录 , 执行 sudo make j4 开始编译 Linux 内核 ;

11.6K40

linux内核启动流程分析 - efi_main

上一篇文章 linux内核启动流程分析 - efi_stub_entry 中,为了叙述方便,我们只是粗略的讲了下efi_main函数,这里我们再具体看下。 ?...有关boot_params的创建及其hdr的初始化,我们在 linux内核启动流程分析 - efi_pe_entry 中有讲到,这里就不再赘述。 继续看该函数的其余部分。 ?...而710行中的image_offset是kernel在内存的起始地址到compressed部分起始地址(startup_32的地址)的偏移量,这个在 linux内核启动流程分析 - efi_pe_entry...linux内核构建结束后,最终生成的文件是 arch/x86/boot/bzImage,这其实是个压缩过的内核,在kernel启动过程中,还要在内存中对内核进行解压,进而得到真正的内核。...综上可知,712行中的buffer_end表示的是kernel在启动过程中,需要使用的内存的结束地址。 714到717行是一些条件判断,在这些条件下,需要拷贝内存中的内核到合适的位置上。

3.5K30

Linux启动时间优化-内核和用户空间启动优化实践

内核timestamp 0.000000作为内核启动起点,到free_initmem()输出"Freeing init memory"作为内核启动的终点。...内核启动优化 在内核源码中自带了一个工具(scripts/bootgraph.pl)用于分析启动时间,这个工具生成output.svg。...1.1.3 对bootgraph.py的改进 1.1.3.1 划分内核启动的起点终点 界定内核启动的起点很容易,从时间0开始。...从_do_parse()中可以看出解析的数据是从哪个log文件中获取的。而这些log文件是由do_logging()从内核节点获取的。...Linux启动从进入内核那一刻开始,到用户空间达到可用状态。 这个可用状态定义可能不一致,有的是进入shell,有的是弹出登陆框。但只要有一个固定的终点,就有了优化目标。

49630

Linux启动引导程序(GRUB)加载内核的过程

我们知道启动引导程序(Boot Loader,也就是 GRUB)会在启动过程中加载内核,之后内核才能取代 BIOS 接管启动过程。如果没有启动引导程,那么内核是不能被加载的。...本节,我们就来看看启动引导程序加载内核的过程,当然 initramfs 这个虚拟文件系统也是要靠启动引导程序调用的。...GRUB加载内核的过程GRUB 的作用有以下几个:加载操作系统的内核;拥有一个可以让用户选择的的菜单,来选择到底启动哪个系统;可以调用其他的启动引导程序,来实现多系统引导。...那么 Linux 的解决办法是把 GRUB 的程序分成了三个阶段来执行。...接下来内核就可以接管启动过程,继续自检与加载硬件模块了。

16020

linux内核启动流程(文章最后流程图)

原文:linux内核启动流程 本文以Linux3.14版本源码为例分析其启动流程。各版本启动代码略有不同,但核心流程与思想万变不离其宗。 内核映像被加载到内存并获得控制权之后,内核启动流程开始。...通过linux/arch/arm/boot/compressed目录下的Makefile寻找到vmlinux文件的链接脚本(vmlinux.lds),从中查找系统启动入口函数。...得到内核入口函数为 stext(linux/arch/arm/kernel/head.S) 内核引导阶段 ENTRY(stext) 。 。 。...部分书籍介绍的内核启动流程基于经典的2.6版本,kernel_init函数还会调用init_post函数专门负责_init进程的启动,现版本已经被整合到了一起。...当内核被引导并进行初始化后,内核启动了自己的第一个用户空间应用程序_init,这是调用的第一个使用标准C库编译的程序,其进程编号时钟为1.

1.5K30

linux内核启动流程分析 - efistub的入口函数

最近打算写一个系列文章,主要讲linux内核启动流程。 网上类似标题的文章很多,但大都是从start_kernel讲起,我觉得这是远远不够的。...linux内核启动方式有非常多种,大方向来看分为bios和uefi,在此基础上又有各种各样的boot loader,比如我们常见的grub,它们会根据配置信息,加载linux内核到内存,并通过一定的协议来启动...linux内核efi stub有关pecoff 格式定义的部分都在 arch/x86/boot/header.S 这个文件里,具体如下: ?...这两个部分都可以认为是内核启动流程的部分,并不是真正的内核逻辑,真正内核逻辑被压缩到了compressed部分里的piggy.S文件里。...或者说,在 uefi 平台上,以 efi stub形式启动内核时,开机后内核执行的第一个方法就是该方法。 以这里为起点,我们就可以开始探索linux内核的完整启动流程了。

3.2K30

Linux内核编程--文件描述符

Linux操作系统中,一切皆是文件—— "Everything is a file"。 如果要在Linux系统中编写操作文件的代码,需要借助文件描述符。...文件的索引——文件描述符(file descriptor): 文件描述符是一个非负整数,当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。...文件描述符就是内核为了高效管理已被打开的文件所创建的索引值。 文件描述符指向内核为每一个进程维护的打开文件记录表。当要处理文件时,将文件对应的文件描述符作为参数传给函数。...文件描述符在用户进程和内核之间的映射关系: Linux中查看文件描述符的指令:lsof(list open files) lsof可以打开的文件: 普通文件 目录 网络文件系统的文件 字符或设备文件...i --列出所有的网络连接 lsof -i tcp --列出所有tcp 网络连接信息 *Linux中出现“ Too many open files”报错,如何解决:

2.7K10

linux内核源码生成tags文件

一般来说,如果我们想要研究一个c/c++项目的源码,我们首先要做的是为该项目生成tags文件linux内核是c写的,所以它也不例外。.../Comparison-with-Similar-Tools 根据我的测试,gtags是最好用的,其官方地址是: https://www.gnu.org/software/global/ 由于linux...内核的项目结构非常庞大,如果我们在项目的根目录直接为所有文件生成tags的话,会包含很多不必要的文件,比如我们只想要x86平台的相关实现,但结果却包含了各种其他平台的逻辑。...那怎么办呢,其实linux的Makefile里已经帮我们写好了如何生成各种tags,看下面的命令: $ make help # 省略其他 tags/TAGS - Generate tags...在生成tags文件后,我们就可以在各种编辑器里使用了,下面是emacs编辑器使用gtags的效果图: ? 还不错吧。

4.3K20
领券