当前位置: 首页 > news >正文

建筑用模板多少钱一块/企业seo网站营销推广

建筑用模板多少钱一块,企业seo网站营销推广,深圳 网站建设培训学校,专门做任务的网站6总结部分: Linux内核源代码: Arch 支持不同cpu的源代码;主要关注x86 Init 内核启动的相关代码;主要关注main.c,整个Linux内核启动代码start_kernel函数 Kernel 核心代码 installing the kernel source:如何安装内核源…

总结部分:

Linux内核源代码:

         Arch 支持不同cpu的源代码;主要关注x86

         Init   内核启动的相关代码;主要关注main.c,整个Linux内核启动代码start_kernel函数

         Kernel 核心代码

   installing the kernel source:如何安装内核源代码

构建Linux系统os

         使用gdb跟踪内核运行过程

         -S cpu在初始化之前将其冻结

         -s 在tcp端口创建server

分析start_kernel函数

 

Trap init 涉及中断

         这个函数用来做体系相关的中断处理的初始化,在该函数中调用__trap_init((void *)vectors_base())

  函数将exception vector设置到vectors_base开始的地址上。 __trap_init函数位于entry-armv.S文件中,对于ARM处理器,共有复位、未定义指令、SWI、预取终止、数据终止、IRQ和FIQ 几种方式。

  SWI主要用来实现系统调用,而产生了IRQ之后,通过exception vector进入中断处理过程,执行do_IRQ函数。

Rest_init: init_process初始化1号进程

Start_kernel:创建0号进程

mm_init:内存管理模块初始化

sched_init:调用进程调度初始化

         初始化系统调度进程,主要对定时器机制和时钟中断的Bottom Half的初始化函数进行设置。

  与时间相关的初始化过程主要有两步:

  (1)调用 init_timervecs()函数初始化内核定时器机制;

  (2)调用init_bh()函数将BH向量TIMER_BH、TQUEUE_BH和 IMMEDIATE_BH所对应的BH函数分别设置成timer_bh()、tqueue_bh()和immediate_bh()函数

kthreadd:内核线程,用来管理系统资源

当系统没有进程需要执行时就调度闲置idle进程,即0号进程,一直存在。

Qemu 启动虚拟机

         :先启动第一个进程,所有的东西都是由第一个进程启动的。

  -kernel 文件名 –initrd rootfs.img

  内核启动以后需要访问硬盘,网卡。

 

Linux启动的理解:

         

最初始阶段

计算机会自动从主板的BIOS(Basic Input/Output System)读取其中所存储的程序。这一程序通常知道一些直接连接在主板上的硬件(硬盘,网络接口,键盘,串口,并口)。现在大部分的BIOS允许你从软盘、光盘或者硬盘中选择一个来启动计算机。

第二阶段

计算机将从你所选择的存储设备中读取起始的512 bytes(比如光盘一开是的512 bytes,如果我们从光盘启动的话)。这512 bytes叫做主引导记录MBR (master boot record)。MBR会告诉电脑从该设备的某一个分区(partition)来装载引导加载程序(boot loader)。Boot loader储存有操作系统(OS)的相关信息,比如操作系统名称,操作系统内核 (kernel)所在位置等。常用的boot loader有GRUB和LILO。

第三阶段

boot loader会帮助我们加载kernel。kernel实际上是一个用来操作计算机的程序,它是计算机操作系统的内核,主要的任务是管理计算机的硬件资源,充当软件和硬件的接口。操作系统上的任何操作都要通过kernel传达给硬件。Windows和Linux各自有自己kernel。狭义的操作系统就是指kernel,广义的操作系统包括kernel以及kernel之上的各种应用。

加载kernel阶段

如果我们加载的是Linux kernel,Linux kernel开始工作。kernel会首先预留自己运行所需的内存空间,然后通过驱动程序(driver)检测计算机硬件。这样,操作系统就可以知道自己有哪些硬件可用。随后,kernel会启动一个init进程。它是Linux系统中的1号进程(Linux系统没有0号进程)。到此,kernel就完成了在计算机启动阶段的工作,交接给init来管理。

小结: kernel -> init process

运行init process阶段

(根据boot loader的选项,Linux此时可以进入单用户模式(single user mode)。在此模式下,初始脚本还没有开始执行,我们可以检测并修复计算机可能存在的错误)

随后,init会运行一系列的初始脚本(startup scripts),这些脚本是Linux中常见的shell scripts。这些脚本执行如下功能:

设置计算机名称,时区,检测文件系统,挂载硬盘,清空临时文件,设置网络……

总结

BIOS -> MBR -> boot loader -> kernel -> init process 

 

参考资料:

http://www.linuxidc.com/Linux/2015-03/114679.htm

http://www.jb51.net/LINUXjishu/214026.html

实验部分:  

cd LinuxKernel/

qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img

qemu相当于打开一个虚拟机

kernel启动一个内核,位置由其后的文件名指定。

initrd指令是挂载一个虚拟硬盘,,rootfs.img就是这个虚拟硬盘

可以看到menuOS只支持三个命令

使用gdb跟踪调试内核

qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img -s -S # 关于-s和-S选项的说明:

# -S freeze CPU at startup (use ’c’ to start execution)

# -s shorthand for -gdb tcp::1234 若不想使用1234端口,则可以使用-gdb tcp:xxxx来取代-s选项

水平分割shell窗口

gdb

(gdb)file linux-3.18.6/vmlinux # 在gdb界面中targe remote之前加载符号表

(gdb)target remote:1234 # 建立gdb和gdbserver之间的连接,按c 让qemu上的Linux继续运行

(gdb)break start_kernel # 断点的设置可以在target remote之前,也可以在之后

第一个断点:start_kernel

 

list查看其附近的代码:

第二个断点:rest_init

 

其他断点类似此过程,就不再截图一一展示了。

 

转载于:https://www.cnblogs.com/angelahxy/p/5270001.html

http://www.lbrq.cn/news/1445329.html

相关文章:

  • 微信微网站怎么做/渠道策略的四种方式
  • 网站备案包括哪些/磁力狗在线
  • 南昌集团制作网站开发/行业网站
  • 网页加速器苹果/seo排名优化怎么样
  • 微网站制作多少钱/赣州seo唐三
  • web用框架做网站/排名轻松seo 网站推广
  • 四川明腾信息技术有限公司/优化的含义是什么
  • 枣庄高端网站建设/手机百度关键词优化
  • 哈尔滨企业网站开发报价/百度关键词优化多少钱一年
  • 东北网站建设公司/北京网络营销推广外包
  • 爱站seo工具包/seo公司是什么
  • 长沙理财网站建设/百度浏览器官方下载
  • 个人网站制作手绘/真正免费的网站建站
  • 代账公司网站模板/自己怎么搭建网站
  • 潍坊市安丘网站建设/网址缩短在线生成器
  • 团购网站建设费用/服务推广软文范例
  • 做网站前的准备工作/营销的概念是什么
  • 品牌微信网站开发/seo网站技术培训
  • 网站改版解决方案/百度商城app
  • 如何做网站小编/爱站网关键词挖掘查询工具
  • 怎么做网站文章/一键搭建网站工具
  • 帮境外赌场做网站是否有风险/专业制作网页的公司
  • 北京快三平台/seo教学培训
  • 全能网站建设教程/成都电脑培训班零基础
  • 邯郸网站建设最新报价/谷歌优化排名哪家强
  • 自己做网站怎么选架构/宁波正规seo推广公司
  • 如何把学校网站建设好/成人零基础学电脑培训班
  • 莱芜网站制作/seo关键词排名实用软件
  • 网站做优化有几种方式/必应bing国内版
  • 怎么开网站/行业网站网址
  • USRP X310 X410 参数对比
  • 6、图片上方添加波浪效果
  • proteus实现简易DS18B20温度计(stm32)
  • 2025产品经理接单经验分享与平台汇总
  • 二分查找算法,并分析其时间、空间复杂度
  • 生成式AI时代,Data+AI下一代数智平台建设指南