作 者:道哥,10+年的嵌入式开发老兵. 公众号:[IOT物联网小镇],专注于:C/C++.Linux操作系统.应用程序设计.物联网.单片机和嵌入式开发等领域. 公众号回复[书籍],获取 Linux.嵌入式领域经典书籍. 转 载:欢迎转载文章,转载需注明出处. 目录 中断向量与中断描述符 中断的分类 内部中断 外部中断 中断号 中断向量和中断处理程序 中断向量的本质 中断处理程序的安装 中断现场的保护和恢复 总结:中断的本质 在软件开发中,中断是一个绕不开的重要话题,但是,不知道您是否遇到过这样…
作 者:道哥,10+年的嵌入式开发老兵. 公众号:[IOT物联网小镇],专注于:C/C++.Linux操作系统.应用程序设计.物联网.单片机和嵌入式开发等领域. 公众号回复[书籍],获取 Linux.嵌入式领域经典书籍. 转 载:欢迎转载文章,转载需注明出处. 目录 从 16 位进入到 32 位 8086 的 16 位模式 80386 的 32 位模式 从实模式进入到保护模式 如何进入保护模式 GDT 全局描述符表 GDTR 全局描述符表寄存器 段描述符的查找原理 在之前的 7 篇文章中,我们一…
作 者:道哥,10+年的嵌入式开发老兵. 公众号:[IOT物联网小镇],专注于:C/C++.Linux操作系统.应用程序设计.物联网.单片机和嵌入式开发等领域. 公众号回复[书籍],获取 Linux.嵌入式领域经典书籍. 转 载:欢迎转载文章,转载需注明出处. 目录 程序的结构 1. 程序头(Header)的描述信息 2. 关于汇编地址 bootloader 把程序从硬盘读取到内存 1. 读取到内存中的什么位置? 2. bootloader 设置数据段基地址 3. bootloader 读取所有…
作 者:道哥,10+年的嵌入式开发老兵. 公众号:[IOT物联网小镇],专注于:C/C++.Linux操作系统.应用程序设计.物联网.单片机和嵌入式开发等领域. 公众号回复[书籍],获取 Linux.嵌入式领域经典书籍. 转 载:欢迎转载文章,转载需注明出处. 目录 bootloader 跳转到操作系统 操作系统的 header 布局 建立操作系统的三个段描述符 操作系统跳转到应用程序 应用程序调用操作系统中的函数 不论是在 x86 平台上,还是在嵌入式平台上,系统的启动一般都经历了 bootl…
作 者:道哥,10+年嵌入式开发老兵,专注于:C/C++.嵌入式.Linux. 关注下方公众号,回复[书籍],获取 Linux.嵌入式领域经典书籍:回复[PDF],获取所有原创文章( PDF 格式). [IOT物联网小镇] 目录 目录 门描述符 调用门特权级检查规则 调用门的使用过程 安装调用门 把调用门的选择子告诉用户程序 用户程序通过调用门进入系统函数 栈的切换 在之前的文章中Linux从头学10:三级跳过程详解-从 bootloader 到 操作系统,再到应用程序,由于当时没有引入特权级的…
作 者:道哥,10+年的嵌入式开发老兵. 公众号:[IOT物联网小镇],专注于:C/C++.Linux操作系统.应用程序设计.物联网.单片机和嵌入式开发等领域. 公众号回复[书籍],获取 Linux.嵌入式领域经典书籍. 转 载:欢迎转载文章,转载需注明出处. 目录 [Linux 从头学]是什么 古老的 Intel8086 处理器 主存储器是什么? 寄存器是什么? 三个总线 CPU 如何对内存进行寻址? 我们是如何控制 CPU 的? CPU 执行指令流程 [Linux 从头学]是什么 这两年多以…
作 者:道哥,10+年的嵌入式开发老兵. 公众号:[IOT物联网小镇],专注于:C/C++.Linux操作系统.应用程序设计.物联网.单片机和嵌入式开发等领域. 公众号回复[书籍],获取 Linux.嵌入式领域经典书籍. 转 载:欢迎转载文章,转载需注明出处. 目录 什么是代码段? 什么是数据段? 数据的类型和长度 寻址范围 栈 实模式和保护模式 Linux 中的分段策略 饭是一口一口的吃,计算机也是一步一步的发展,例如下面这张英特尔公司的 CPU 型号历史: 为了利用性能越来越强悍的计算机,操…
作 者:道哥,10+年的嵌入式开发老兵. 公众号:[IOT物联网小镇],专注于:C/C++.Linux操作系统.应用程序设计.物联网.单片机和嵌入式开发等领域. 公众号回复[书籍],获取 Linux.嵌入式领域经典书籍. 转 载:欢迎转载文章,转载需注明出处. 目录 几个重要的段寄存器 Linux 2.6 中的线性地址区间 一个"完整"的 8086 汇编程序 前两篇文章,我们一起学习了 8086 处理器中关于 CPU.内存的基本使用方式,重点对段寄存器和内存的寻址方式进行了介绍. 可能…
作 者:道哥,10+年的嵌入式开发老兵. 公众号:[IOT物联网小镇],专注于:C/C++.Linux操作系统.应用程序设计.物联网.单片机和嵌入式开发等领域. 公众号回复[书籍],获取 Linux.嵌入式领域经典书籍. 转 载:欢迎转载文章,转载需注明出处. 目录 实模式:bootloader 为程序计算段的基地址 保护模式:bootloader 为自己创建段描述符 确定 GDT 的地址 创建代码段描述符 创建数据段描述符 创建栈段描述符 段描述符是如何确保段的安全访问的? 段寄存器高速缓存…
作 者:道哥,10+年的嵌入式开发老兵. 公众号:[IOT物联网小镇],专注于:C/C++.Linux操作系统.应用程序设计.物联网.单片机和嵌入式开发等领域. 公众号回复[书籍],获取 Linux.嵌入式领域经典书籍. 转 载:欢迎转载文章,转载需注明出处. 目录 0xFFFF:0x0000 0xF000:0xE05B 0x0000:0x7C00 在第一篇文章中,我们就提到,现代操作系统是从最古老的 8086 系统一步一步发展而来的. 处理器厂商为了向后兼容,很多底层相关的原理都是一样的(如果…
作 者:道哥,10+年的嵌入式开发老兵. 公众号:[IOT物联网小镇],专注于:C/C++.Linux操作系统.应用程序设计.物联网.单片机和嵌入式开发等领域. 公众号回复[书籍],获取 Linux.嵌入式领域经典书籍. 转 载:欢迎转载文章,转载需注明出处. 目录 LDT:局部描述符表 TSS: 任务状态段 TCB: 任务控制块 x86 系统中的保护模式,给系统的安全性提供了很大的保障,但是在我们之前的文章中,一直都淡化了特权级别这个概念. 例如:在保护模式下的段选择器,我们一直都只把它看做一…
作 者:道哥,10+年嵌入式开发老兵,专注于:C/C++.嵌入式.Linux. 关注下方公众号,回复[书籍],获取 Linux.嵌入式领域经典书籍:回复[PDF],获取所有原创文章( PDF 格式). [IOT物联网小镇] 目录 目录 CPL:当前特权级 DPL:描述符特权级 RPL:请求者特权级 特权级检查规则 代码段的特权级检查 数据段的特权级检查 栈段的特权级检查 x86 处理器中,提供了4个特权级别:0,1,2,3.数字越小,特权级别越高! 一般来说,操作系统是的重要性.可靠性是最高的,…
作 者:道哥,10+年嵌入式开发老兵,专注于:C/C++.嵌入式.Linux. 关注下方公众号,回复[书籍],获取 Linux.嵌入式领域经典书籍:回复[PDF],获取所有原创文章( PDF 格式). [IOT物联网小镇] 目录 目录 页表的拆分过程 页目录结构 几个相关的寄存器 加载用户程序时: 页目录.页表的分配和填充过程 线性地址到物理地址的查找.计算实例 在x86系统中,为了能够更加充分.灵活的使用物理内存,把物理内存按照4KB的单位进行分页. 然后通过中间的映射表,把连续的虚拟内存空间…
inux必学的60个命令Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作.文件存取.目录操作.进程管理.文件权限设定等.所以,在Linux系统上工作离不开使用系统提供的命令.要想真正理解Linux系统,就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统.不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200多个.这里笔者把比较重要和使用频率最多的命令,按照它们在系统中的作用分成下面六个部分一一介绍.◆ 安装和登录命令:logi…
Linux必学的命令Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作.文件存取.目录操作.进程管理.文件权限设定等.所以,在Linux系统上工作离不开使用系统提供的命令.要想真正理解Linux系统,就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统.不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200多个.这里笔者把比较重要和使用频率最多的命令,按照它们在系统中的作用分成下面六个部分一一介绍.◆ 安装和登录命令:login.…
从头学Android系列 http://blog.csdn.net/worker90/article/category/888358…
linux软中断与硬中断实现原理概述. 1.软中断通过open_softirq注册一个软中断处理函数,即在软中断向量表softirq_vec数组中添加新的软中断处理action函数. 2.调用raised_softirq软中断触发函数,即把软中断标记为挂起状态. 内核会在一些位置检查是否有挂起状态的软中断,如果有的话会调用do_softirq函数来执行软中断处理函数. 3.do_softirq函数做的一个重要的工作是切换到软中断请求栈.切换到软中断请求栈就代表了此时已经处于了软中断上下文中了.…
Linux提供了大量的命令,利用它可以有效地完成大量的工 作,如磁盘操作.文件存  [转载地址]http://blog.chinaunix.net/uid-16728139-id-3154272.html   自己留着,用得着.   Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作.文件存取.目录操作.进程管理.文件权限设定等.所以,在Linux系统上工作离不开使用系统提供的命令.要想真正理解Linux系统,就必须从Linux命令学起,通过基础的命令学习可以进一步理解Lin…
嵌入式Linux要学哪些?一些人总在寻思,怕走了弯路,又怕学的东西离企业需求远.那么今天就请华清远见高级讲师曹大神告诉你,9点浅析嵌入式学习步骤.下面是他本人亲笔. 1.要学习Linux,首先要会用,如果不会用怎么知道怎么知道怎么去做,所以需要学习Linux系统的安装及使用. 2.学会用Linux了,那么我们就要做一些Linux下的开发了,开发什么呢?看到网上有很多很强大很有趣的程序,我们都可以尝试去做,可是如何去做呢,程序是什么呢,怎么写呢?这时我们需要学习一些语言,比如比较基础的C语言,比如…
作者:彭东林 邮箱:pengdonglin137@163.com QQ:405728433 平台 tiny4412 ADK Linux-4.9 概述 前面一篇博文基於tiny4412的Linux內核移植 --- 实例学习中断背后的知识(1)结合示例分析了一下新版kernel引入设备树和irq domain后中断幕后的一些知识,其中的示例只是使用gpio中断的一种方式,此外,还有一种,就像博文 基於tiny4412的Linux內核移植--- 中斷和GPIO學習(1)中描述的那样,这种实现方式又是如…
linux平台学x86汇编语言学习集合帖 linux平台学x86汇编(一):https://blog.csdn.net/shallnet/article/details/45543237 linux平台学x86汇编(二):https://blog.csdn.net/shallnet/article/details/45543631 linux平台学x86汇编(三):https://blog.csdn.net/shallnet/article/details/45544075 linux平台学x8…
转自:http://www.linuxidc.com/Linux/2011-11/47657.htm [中断概述] 中断本质上是一种特殊的电信号,由硬件设备发向处理器.异常和中断的不同是异常在产生时必须考虑与处理器时钟同步.实际上异常也常常称为同步中断.比如在除0或者缺页时,必须靠内核处理的时候,处理器就会产生一个异常. [中断处理机制的实现] 中断从硬件到内核的路由 设备产生中断,通过总线把电信号发送给中断控制器.如果中断线是激活的(它们允许被屏蔽的),那么中断控制器就会把中断发往处理器.在大…
转自:http://blog.chinaunix.net/uid-12461657-id-3487463.html 原文地址:Linux内核中的中断栈与内核栈的补充说明 作者:MagicBoy2010 中断栈与内核栈的话题更多地属于内核的范畴,所以在<深入Linux设备驱动程序内核机制>第5章“中断处理”当中,基本上没怎么涉及到上述内容,只是在5.4节有些许的文字讨论中断栈在中断嵌套情形下可能的溢出问题. 本贴在这个基础上对内核栈与中断栈的话题做些补充,讨论基于x86 32位系统,因为64位系…
Linux 反弹shell(二)反弹shell的本质 from:https://xz.aliyun.com/t/2549 0X00 前言 在上一篇文章 Linux反弹shell(一)文件描述符与重定向,我们已经讨论过了反弹shell中最核心也是相对较难理解的部分,那么接下来我们就可以正式借反弹shell的实例分析回顾前一篇文章讲的知识,并且也加深对反弹shell的理解吧. 0X01 什么是反弹shell reverse shell,就是控制端监听在某TCP/UDP端口,被控端发起请求到该端口,并…
参考链接:https://www.linuxprobe.com/chapter-07.html RAID磁盘冗余阵列 RAID 0 RAID 0技术把多块物理硬盘设备(至少两块)通过硬件或软件的方式串联在一起,组成一个大的卷组,并将数据依次写入到各个物理硬盘中.这样一来,在最理想的状态下,硬盘设备的读写性能会提升数倍,但是若任意一块硬盘发生故障将导致整个系统的数据都受到破坏.通俗来说,RAID 0技术能够有效地提升硬盘数据的吞吐速度,但是不具备数据备份和错误修复能力.如图所示,数据被分别写入到不…
    欢迎转载,转载时需保留作者信息,谢谢. 邮箱:tangzhongp@163.com 博客园地址:http://www.cnblogs.com/embedded-tzp Csdn博客地址:http://blog.csdn.net/xiayulewa   环境: http://www.cnblogs.com/embedded-tzp/p/4443876.html     1. arm硬件中断 从头介绍中断原理太麻烦,一般来说看这篇文章的人对中断必然已经有了一定的认识.不管哪款处理器,中断的基…
转自:http://www.cnblogs.com/embedded-tzp/p/4451354.html 欢迎转载,转载时需保留作者信息,谢谢. 邮箱:tangzhongp@163.com 博客园地址:http://www.cnblogs.com/embedded-tzp Csdn博客地址:http://blog.csdn.net/xiayulewa 环境:http://www.cnblogs.com/embedded-tzp/p/4443876.html 1.arm硬件中断 从头介绍中断原理…
转自:http://www.cnblogs.com/hanyan225/archive/2011/07/17/2108609.html 中断还是中断,我讲了很多次的中断了,今天还是要讲中断,为啥呢?因为在操作系统中,中断是必须要讲的.. 那么什么叫中断呢, 中断还是打断,这样一说你就不明白了.唉,中断还真是有点像打断.我们知道linux管理所有的硬件设备,要做的第一件事先是通信.然后,我们天天在说一句话:处理器的速度跟外围硬件设备的速度往往不在一个数量级上,甚至几个数量级的差别,这时咋办,你总不…
转自:http://blog.csdn.net/tommy_wxie/article/details/7425728 版权声明:本文为博主原创文章,未经博主允许不得转载. [html] view plain copy print? .上下文 一般来说,CPU在任何时刻都处于以下三种情况之一: ()运行于用户空间,执行用户进程: ()运行于内核空间,处于进程上下文: ()运行于内核空间,处于中断上下文. 应用程序通过系统调用陷入内核,此时处于进程上下文.现代几乎所有的CPU体系结构都支持中断.当外…
http://blog.csdn.net/weiqing1981127/article/details/8298585 中断处理程序是被内核调用来响应中断的,它运行在中断上下文,中断处理程序是上半部,当接收到一个中断,它就立即开始执行,但只做有严格时限的工 作,例如对接收的中断进行应答或复位硬件,这些工作都是在所有中断被禁止的情况下完成.能够被允许稍后完成的工作会推迟到下半部去. 中断处理程序的注册是通过request_irq函数,由于该函数内部有分配内存的操作,所以它不能在中断上下文或其他不允…