自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

转载 系统调用

层次如下: 用户程序------>C库(即API):INT 0x80 ----->system_call------->系统调用服务例程-------->内核程序 先说明一下,我们常说的用户API其实就是系统提供的C库。 系统调用是通过软中断指令 INT 0x80 实现的,而这条INT 0x80指令就被封装在C库的函数中。 (软中断和我们常说的硬中断不同之处在于,软中断是由指令触发的,而不是由硬件

2017-01-10 15:21:42 231

原创 Linux for Matlab中文注释乱码(亲测有效)

中文注释乱码的原因是windows下的m文件采用的是gbk编码,只要将所有的m文件转成 utf8文件,显示就正常了。(在转成utf8前,别用matlab打开m文件,否则下面步骤完成后注释依旧有乱码,后果很严重。。)1.首先安装enca:sudo apt-get install enca2.进入m文件所在的文件夹,比如我的文件在/home/lx 里面:cd /home/lx3.将所有m文

2017-01-10 11:47:26 5062 2

转载 linux启动的第一个阶段(从开机到main)

Linux启动的第一阶段(从开机到main.c) 3个任务:A、启动BIOS,准备实模式下的中断向量表和中断服务程序。B、从启动盘加载操作系统程序到内存。C、为执行32的main函数做过渡准备。内存变化如下:① 、0xFE000到0xFFFFF是BIOS启动块,其中上电后第一条指令在0xFFFF0。② 、而后0x00000到0x003FF总共1KB存

2017-01-04 20:19:59 2476

原创 系统调用&上下文&中断

系统调用:在操作系统上如果想要运行你的程序,就得靠自己从面向底层硬件的代码编起,但这件事太枯燥,且不是每个人都能做到,这样操作系统就替我们做这些事情,把硬件封装,统一提供一套接口,这些接口就是系统调用;系统调用把应用程序的请求传给内核,当操作系统接收到系统调用请求后,会让处理器进入内核模式,调用相应的内核函数完成所需的处理,当处理完成后,操作系统会让处理器返回用户模式,来执行用户代码,提高

2017-01-04 20:16:07 580

原创 fork()&vfork()

fork()与vfock()都是创建一个进程,那他们有什么区别呢?总结有以下三点区别: 1.  fork  ():子进程拷贝父进程的数据段,代码段     vfork ( ):子进程与父进程共享数据段 2.  fork ()父子进程的执行次序不确定     vfork 保证子进程先运行,在调用exec 或exit 之前与父进程数据是共享的,在它调用exec     或exit

2017-01-04 20:15:14 321

原创 kmalloc&vmalloc&malloc

简单的说:kmalloc和vmalloc是分配的是内核的内存,malloc分配的是用户的内存kmalloc保证分配的内存在物理上是连续的,vmalloc保证的是在虚拟地址空间上的连续,malloc不保证任何东西(这点是自己猜测的,不一定正确)kmalloc能分配的大小有限,vmalloc和malloc能分配的大小相对较大内存只有在要被DMA访问的时候才需要物理上连续vmalloc比kmal

2017-01-04 20:14:23 231

原创 任务管理

1:任务(Task):处理器可以分配调度,执行和 挂起的一个工作单元。                                用于执行程序,任务或进程,操作系统服务,中断或异常处理过程和内核代码。2:任务是一个正在运行的程序,或者是一个等待运行的程序。通过中断,异常,跳转或调用,我们可以执行一个任务。3:当中断,异常,跳转或者调用和某个描述符表中指定项的内容一起使用

2017-01-04 20:13:14 396

原创 中断

1:中断和异常:当前运行程序——>中断处理程序或异常处理程序2:随机发生3:处理器把赋予异常或者中断的向量(标识号)用作中断描述符表IDT中的一个索引号,来定位一个异常或中断的处理程序入口点位置。4:用户空间进入内核空间:中断或异常5:从内核空间进入用户空间:中断或者异常返回6:中断描述符表IDT:将每个异常或中断向量分别与它们的处理过程联系起来。

2017-01-04 20:12:31 282

原创 存储管理

主存储器,辅助存储器,高速缓冲存储器,寄存器寄存器:是处理器的组成部分,用来存放处理器的工作信息高速缓冲存储器:减少对主存储器的访问时间,加快程序的执行速度主存储器,辅存储器:存放的大量的程序和数据 主存储器的空间分两部分:系统区和用户区系统区:用来存放操作系统和硬件的接口信息,操作系统的管理信息,程序,标准子程序用户区:用来存放用户的程序和数据 主存空间的分配

2017-01-04 20:11:30 323

原创 git入门

1.    简介    * 版本控制工具    * 由Linus Tovards开发    * 重要性2.    GIT基本用法    * 安装:apt-get install git    * 创建:mkdir repo_name            cd repo_name            git init

2017-01-04 20:08:45 251

原创 bochs调试FAQ

bochs调试FAQ:1.       Q:如何从引导扇区开始设置断点?A: BIOS被载入内存中运行,其引导扇区的地址一般都是在0x7c00,因为在实模式下,逻辑地址和物理地址是一一对应的, 所以我们可以在启动bochs调试的命令行下输入        pb 0x7c00 或者 vb 0:0x7c00就着输入        cbochs就会在0x7c00处停下 2

2017-01-04 20:05:55 258

转载 bochs调试最常用的指令

这个表格中的指令是目前我们进行bochs调试最常用的指令:Table 1. 部分Bochs调试指令行为指令举例在某物理地址设置断点b addrb 0x30400显示当前所有断点信息info breakinfo break继续执行,直到遇

2017-01-04 20:05:00 673

转载 linux内核源码目录

2015年9月刚入学,就开始学习有关内核源码的知识,那时候定期上课,定期讨论,定期交作业,中间遇到了很多困难,虽然最后还是没有坚持下来,但是看到这些东西的时候,还是觉得很有感觉。来和大家一起分享。一.源码目录二.系统总体流程:系统从boot开始动作,把内核从启动盘装到正确的位置,进行一些基本的初始化,如检测内存,保护模式相关,建立页目录和内存页表,GDT表,IDT表。然后进入m

2017-01-04 20:03:32 6606

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除