linux kernel 学习

学习linux kernel 的必要性:

作为程序员要掌握编程本质,及了解自己编写代码在平台是怎么运行的是一项基本功。凭经验敲代码,敲五十年对计算机的认知还是在那种初级水平。

1 linux kernel 总体结构

1中断机制 (上下半部,软硬中断)
2内存管理 (分页管理线性地址-逻辑地址-物理地址映射,内核内存分配,进程内存分配)
3磁盘读写管理
4驱动管理
5进程管理交互

2 Linux启动过程详解

http://blog.chinaunix.net/uid-26495963-id-3066282.html

1,按下电源,执行bios 开机自检程序
2,bios 执行完加载,去找到硬盘的MBR(master boot record = 分区表信息 + Boot loader 程序)
3,执行boot loader (grub ,lilo),做些初始化,加载内核到指定内存地址。
4,执行内核初始化,内存管理(分页管理),进程管理,终端管理,初始化第一个进程。
5,初始化系统环境变量。rc0 – rc5
6,执行login 程序。

3 linux kernel 优秀高效点总结

1,分页内存管理方式
· fork 进程只是分页指针的改变,不用去开辟新内存,复制物理内存信息
· 写时复制 (copy on write 机制),只有在需要写的时候再去开辟内存,在新的物理内存上执行写操作。
· 线性地址足够多,可以利用缺页机制来实现swap,用磁盘来充当物理内存。 扩大了实际内存的限制。
· 懒加载(需求加载) 加载的程序开始的时候只分配线性地址,当发生缺页中断,在加载磁盘内容到内存中。

原理本质:(应用 符号 n——-1 实际的东西)
实例:和 git 的对象库 Object 复用用共用性,可借鉴理解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值