Linux内核0.11学习
Linux内核0.11学习
文章目录
- Linux内核0.11学习
- 一、计算机开机的过程
- 1、启动BIOS
- 2、BIOS 在内存中加载中断向量表和中断服务程序
Linux内核最新已经版本已经到5.18了,代码量千万行的级别,一天看五百行也要看两万天,然而很多程序员能不能活到两万天都是个大问题,所以不可能看得完。
Linux 0.11内核虽然是三十多年前的产物,就像孙子兵法、黄帝内经等古书一样,不代表它们没有学习的价值。Linux 0.11内核代码约两万行,麻雀虽小五脏俱全,是一个不折不扣的现代化操作系统。
一、计算机开机的过程
实模式(Real Mode):Intel 80286和之后的80x86 兼容 CPU 的操作模式(应该包括8086)。实模式.的特性是个20位的存储器地址空间(2^20=1048576,即1MB的存储器
可被寻址),可以直接软件访问BIOS 以及周边硬件,没有硬件支持的分页机制和实时多任务
概念、。从80286开始,所有的80x86(PIU的开机状态都是实模式∶8086等早期的CPU只有
一种操作模式,类似于实模式。
RAM(Random Access Memory):随机存取存储器,常见的内存条就是一类 RAM,其特点是加电状态下可任意读、写,断电后信息消失。
1、启动BIOS
从硬件角度看,Intel 80x86系列的 CPU可以分别在16位实模式和32位保护模式下运行。为了兼容,也为了解决最开始的启动问题,Intel 将所有80x86 系列的 CPU,包括最新型号的CPU 的硬件都设计为加电即进入 16位实模式状态运行。同时,还有一点非常关键的是,将CPU 硬件逻辑设计为加电瞬间强行将 CS的值置为0xF000、IP的值置为 0xFFF0,这样CS∶IP 就指向0xFFFF0这个地址位置,如图:
BIOS程序的入口地址恰恰就是 0xFFFF0 ,也就是说,BIOS程序的第一条指令就设计在这个位置。
2、BIOS 在内存中加载中断向量表和中断服务程序
Linux内核0.11学习相关推荐
- Linux 内核0.11 系统调用详解(下)
备注:上讲中,博猪讲到了操作系统是如何让用户程序调用系统函数的,这讲继续接上讲的话题,从一个系统内核系统函数创建的小实验来学习系统内核具体做了些什么.理清下系统调用的整体过程. 实验:在Linux 0 ...
- 【嵌入式环境下linux内核及驱动学习笔记-(16)linux总线、设备、驱动模型之input框架】
目录 1.Linux内核输入子系统概念导入 1.1 输入设备工作机制 1.2 运行框架 1.3 分层思想 2.驱动开发步骤 2.1 在init()或probe()函数中 2.2 在exit()或rem ...
- 驱动框架6——linux内核的gpiolib学习
以下内容源于朱有鹏<物联网大讲堂>课程的学习整理,如有侵权,请告知删除. 八.linux内核的gpiolib学习1 1.gpiolib学习重点(主线) (1)主线一:gpiolib的建立过 ...
- 【嵌入式环境下linux内核及驱动学习笔记-(15-1)例程】
目录 1.在APP直接调用标准文件IO操作I2C(针对学习笔记-15的15.3节) 1.1 mail.c 1.2 mpu6050.h 1.3 mpu6050.c 1.4 Makefile 2.以外称i ...
- Linux 内核安全模块学习总结
Linux安全模块(LSM) LSM是Linux Secrity Module的简称,即linux安全模块.其是一种轻量级通用访 问控制框架,适合于多种访问控制模型在它上面以内核可加载模块的形实现.用 ...
- 在Ubuntu上为Android系统内置C可执行程序测试Linux内核驱动程序 (学习老罗的)
不得不说,老罗写的太好了. 按照他的方法,我两次就成功了. 不过有点让人奇怪的地方就是 第一次我make snod是成功的 但是执行如下代码: root@android:/ # cd sy ...
- 在Ubuntu上为Android系统编写Linux内核驱动程序(学习老罗的)
首先提出2个问题 1. 驱动程序的作用是什么? 答:驱动程序的作用主要是向上层提供访问设备寄存器的一个接口,包括读和写. 2. 访问设备驱动程序的方法? 答:a. 通过proc文件系统来访问:b. 通 ...
- 盘点春招跳槽涨薪必备技能Linux内核技术(含学习路线)
前言:从开始接触 Linux 内核应该有 4 ~ 5 年了,虽然不敢说非常了解 Linux 内核,但起码也有了点眉目.所以,本文主要想分享一下我的 Linux 内核入门之路,如果对大家有帮助的话,希望 ...
- 八千字硬核长文梳理Linux内核概念及学习路线
点击上方"大鱼机器人",选择"置顶/星标公众号" 福利干货,第一时间送达! 来源 :头条号@Linux学习教程,冰凌块儿 整理:公众号:嵌入式Linux,发哥 ...
最新文章
- 一年春事,桃花红了谁……
- SQL COUNT() 函数
- charles修改响应体
- 谷歌提议更改Istio指导委员会
- c++ 查找 list中最长的字符串_查找不重复字符的最长子字符串(编程面试中常见题-用8种编程语言来回答)...
- vue 模板 html 表达式,Vue 模板template、指令directive、修饰符
- 9.VMware vsphere 5.0新体验-新增功能
- Zabbix-server安装后的故障处理及Zabbix-agent的配置添加过程
- Flutter学习之事件循环机制、数据库、网络请求
- YII2 Select2插件使用小计
- 华为网络技术大赛笔记——服务器概述
- CI框架的使用-环境搭建
- 农历阳历转换 java_Java编程实例:Java版农历和阳历转换源码
- 西方文化系列讲座之希腊文化(下)
- 恶搞视频聊天偷拍源码
- 【社区图书馆】《网络工程师的Python之路:网络运维自动化实战(第2版)》
- 文档印刷体中字符类符号
- 同事离职做假证,顺利拿到大公司offer,15k一下子到了24k
- I/O流(Input、Output)
- GD32F4xx uIP协议栈移植记录
热门文章
- java hincrby_Redis Hincrby 命令
- python爬虫处理js混淆加密_python爬虫之破解javascript-obfuscator的混淆加密
- AssetManager
- yum安装报错Error in PREIN scriptlet in rpm package
- go命令行库-cobra
- redis性能调优总结
- 自己的一项发明专利已获国家知识产权局授权,另外在数据挖掘、海量数据处理领域的两项发明专利已启动申报
- 【矩阵论笔记】子空间(核子空间和值域)
- idea显示方法参数 Show parameter name hints
- Sql性能优化之LIKE模糊查询