2018年5月4日

linux内核剖析(十一)进程间通信之-共享内存Shared Memory

摘要: 共享内存 共享内存是进程间通信中最简单的方式之一。 共享内存是系统出于多个进程之间通讯的考虑,而预留的的一块内存区。 共享内存允许两个或更多进程访问同一块内存,就如同 malloc() 函数向不同进程返回了指向同一个物理内存区域的指针。当一个进程改变了这块地址中的内容的时候,其它进程都会察觉到这个更 阅读全文

posted @ 2018-05-04 16:47 AlanTu 阅读(3636) 评论(0) 推荐(0) 编辑

linux内核剖析(十)进程间通信之-信号量semaphore

摘要: 信号量 什么是信号量 信号量的使用主要是用来保护共享资源,使得资源在一个时刻只有一个进程(线程)所拥有。 信号量的值为正的时候,说明它空闲。所测试的线程可以锁定而使用它。若为0,说明它被占用,测试的线程要进入睡眠队列中,等待被唤醒。 为了防止出现因多个程序同时访问一个共享资源而引发的一系列问题,我们 阅读全文

posted @ 2018-05-04 16:45 AlanTu 阅读(4115) 评论(0) 推荐(0) 编辑

linux内核剖析(九)进程间通信之-信号signal

摘要: 信号及信号来源 什么是信号 信号是UNIX和Linux系统响应某些条件而产生的一个事件,接收到该信号的进程会相应地采取一些行动。通常信号是由一个错误产生的。但它们还可以作为进程间通信或修改行为的一种方式,明确地由一个进程发送给另一个进程。一个信号的产生叫生成,接收到一个信号叫捕获。 信号本质 信号是 阅读全文

posted @ 2018-05-04 16:41 AlanTu 阅读(4036) 评论(0) 推荐(0) 编辑

linux内核剖析(八)进程间通信之-管道

摘要: 管道 管道是一种两个进程间进行单向通信的机制。 因为管道传递数据的单向性,管道又称为半双工管道。 管道的这一特点决定了器使用的局限性。管道是Linux支持的最初Unix IPC形式之一,具有以下特点: 数据只能由一个进程流向另一个进程(其中一个读管道,一个写管道);如果要进行双工通信,需要建 立两个 阅读全文

posted @ 2018-05-04 16:37 AlanTu 阅读(1657) 评论(0) 推荐(0) 编辑

linux内核剖析(七)Linux进程间通信的几种方式总结

摘要: 进程间通信概述 进程通信的目的 数据传输 一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M字节之间 共享数据 多个进程想要操作共享数据,一个进程对共享数据 通知事 一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。 资源共享 多个进 阅读全文

posted @ 2018-05-04 16:35 AlanTu 阅读(1413) 评论(0) 推荐(0) 编辑

linux内核剖析(六)Linux系统调用详解(实现机制分析)

摘要: 本文介绍了系统调用的一些实现细节。首先分析了系统调用的意义,它们与库函数和应用程序接口(API)有怎样的关系。然后,我们考察了Linux内核如何实现系统调用,以及执行系统调用的连锁反应:陷入内核,传递系统调用号和参数,执行正确的系统调用函数,并把返回值带回用户空间。最后讨论了如何增加系统调用,并提供 阅读全文

posted @ 2018-05-04 16:33 AlanTu 阅读(13960) 评论(0) 推荐(2) 编辑

Linux内核剖析(五)Linux内核的构建过程

摘要: 参考 一次实验引发的故事 – kernel build system探索—vmlinux是如何炼成的– kernel makefile 深度探索Linux操作系统:系统构建和原理解析.pdf 问题 在前面的博文中,我们先是为自己的Ubuntu安装了一套内核源码树,然后为了方便进行嵌入式交叉编译,我们 阅读全文

posted @ 2018-05-04 16:31 AlanTu 阅读(3708) 评论(0) 推荐(0) 编辑

Linux内核剖析(四)为arm内核构建源码树

摘要: 前面说到要做linux底层开发或者编写Linux的驱动,必须建立内核源码树,之前我们提到过在本机上构建源码树—-Linux内核剖析(三),其建立的源码树是针对i686平台的,但是我么嵌入式系统用的是arm平台,这就需要我们为arm板交叉构建一份板子可用的内核源码树。 首先下载与你嵌入式系统平台版本号 阅读全文

posted @ 2018-05-04 16:19 AlanTu 阅读(1212) 评论(0) 推荐(0) 编辑

Linux内核剖析(三)构建源码树

摘要: linux源码树结构 参考 http://www.360doc.com/content/13/0410/17/7044580_277403053.shtml 获取源码包的方式 为什么要活取源码包? 在笔者到官网下载源码时,源码下面有如下说明: 如果你的ubuntu是保持更新的(比如您经常执行sudo 阅读全文

posted @ 2018-05-04 16:18 AlanTu 阅读(3077) 评论(0) 推荐(0) 编辑

Linux内核剖析(二)Linux内核绪论

摘要: 什么是内核 内核是操作系统最基本的部分。它是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,并且内核决定一个程序在什么时候对某部分硬件操作多长时间。内核的分类可分为单内核和双内核以及微内核。严格地说,内核并不是计算机系统中必要的组成部分。 内核是一个操作系统的核心。是基于硬件 阅读全文

posted @ 2018-05-04 16:16 AlanTu 阅读(1143) 评论(0) 推荐(1) 编辑

Linux内核剖析(一)Linux的历史

摘要: Unix操作系统 Unix的由来 汤普逊和里奇最早是在贝尔实验室开发Unix的,此后的10年,Unix在学术机构和大型企业中得到了广泛的应用,当时的UNIX拥有者AT&T公司以低廉甚至免费的许可将Unix源码授权给学术机构做研究或教学之用,许多机构在此源码基础上加以扩充和改进,形成了所谓的“Unix 阅读全文

posted @ 2018-05-04 16:13 AlanTu 阅读(4657) 评论(0) 推荐(0) 编辑

linux内核剖析(零)linux系统启动过程详解-开机加电后发生了什么

摘要: 本文参考了如下文章 深入理解linux启动过程 mbr (主引导记录(Master Boot Record)) 电脑从开机加电到操作系统main函数之前执行的过程 详解linux系统的启动过程及系统初始化 linux系统的启动流程 关于linux系统的启动流程我们可以按步进行划分为如下: BIOS 阅读全文

posted @ 2018-05-04 16:07 AlanTu 阅读(3122) 评论(0) 推荐(1) 编辑

详解linux系统的启动过程及系统初始化

摘要: 一、linux系统的启动流程 关于linux系统的启动流程我们可以按步进行划分为如下: POST加电自检-->BIOS(Boot Sequence)-->加载对应引导上的MBR(bootloader)-->主引导设置加载其BootLoader-->Kernel初始化-->initrd—>/etc/i 阅读全文

posted @ 2018-05-04 16:04 AlanTu 阅读(5766) 评论(0) 推荐(1) 编辑

计算机是如何启动的

摘要: 从打开电源到开始操作,计算机的启动是一个非常复杂的过程。 我一直搞不清楚,这个过程到底是怎么回事,只看见屏幕快速滚动各种提示...... 这几天,我查了一些资料,试图搞懂它。下面就是我整理的笔记。 零、boot的含义 先问一个问题,"启动"用英语怎么说? 回答是boot。可是,boot原来的意思是靴 阅读全文

posted @ 2018-05-04 15:41 AlanTu 阅读(542) 评论(0) 推荐(0) 编辑

Linux 引导过程内幕

摘要: Linux 引导过程内幕 从主引导记录到第一个用户空间应用程序的指导 早期时,启动一台计算机意味着要给计算机喂一条包含引导程序的纸带,或者手工使用前端面板地址/数据/控制开关来加载引导程序。尽管目前的计算机已经装备了很多工具来简化引导过程,但是这一切并没有对整个过程进行必要的简化。 让我们先从高级的 阅读全文

posted @ 2018-05-04 15:33 AlanTu 阅读(274) 评论(0) 推荐(0) 编辑

导航