linux学习1

文章介绍了Linux操作系统的启动过程,从BIOS到BootLoader的GRUB引导,再到内核的加载和运行原理,涉及内核初始化、中断处理、以及不同类型的锁机制如原子变量、自旋锁等。此外,还提及了中断控制器GIC在多CPU环境下的作用。
摘要由CSDN通过智能技术生成

初识linux

1、操作系统的分界线:

内核状态和用户状态:对应着实时模式和保护模式,保护模式下使用的是虚拟内存,间接访问,增加了扩展性和灵活性

2、启动过程:

  1. 从电源到BIOS,主板收到正常的电源,这个过程检查硬件并获取参数,BIOS的执行程序在ROM中,其中的硬盘里面就写着去MBR,同时重置所有寄存器数据
  2. 从BIOS到BootLoader,MBR引导去复制BootLoader的内容即启动程序,这叫做GRUB引导,通过里面的配置来启动不同的操作系统,开始内存映射,并将控制权交给启动扇区的代码

BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等。在此之后,计算机就知道应该去读取哪个硬件设备了。

  1. BootLoader工作流程,进入init(),加载内核kernel,从实时模式进入保护模式,进入用户界面在这里插入图片描述总的来说:👇

在这里插入图片描述

详情参考:linux的启动过程

3、内核的运行原理

通过main()完成初始化后打开新的中断,内核模式正式运行

  1. 为进程0建立内核态的堆栈
  2. 清零eflags寄存器
  3. 调用setup_idt()的中断处理程序填充IDT
  4. 把BIOS中获得参数传递给第一个页框
  5. 用GDT和IDT表填充寄存器

4、内核锁部分

  1. atomic原子变量
  2. spinlock自旋锁
  3. semaphore信号量
  4. mutex互斥锁
  5. Rw-lock读写锁
  6. preempt抢占
  7. Per-cpu变量
  8. RCU机制(Read-Copy Update)
  9. 内存屏障(memory-barrier)在这里插入图片描述

5、三个大头

bootloader
Linux内核
文件系统

在这里插入图片描述

6、中断

在这里插入图片描述
参考这篇文章的
这里引入GIC的概念,就是中断控制器,可以屏蔽中断,如果是多个CPU的情况下,也可以将中断传给特定的CPU
电平的两种触发方式:电平触发和上下沿触发

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值