Linux系统调用讲义

Tags: Linux  

Unix/Linux操作系统的体系结构及系统调用介绍

    1. 什么是操作系统和系统调用

    操作系统是从硬件抽象出来的虚拟机,在该虚拟机上用户可以运行应用程序。它负责直接与硬件交互,向用户程序提供公共 服务,并使它们同硬件特性隔离。因为程序不应该依赖于下层的硬件,只有这样应用程序才能很方便的在各种不同的Unix系统之间移动。系统调用是 Unix/Linux操作系统向用户程序提供支持的接口,通过这些接口应用程序向操作系统请求服务,控制转向操作系统,而操作系统在完成服务后,将控制和 结果返回给用户程序。
 

leon Published by 2013-02-03 02:43

Detail »

Linux 引导过程内幕

Tags: Linux  

早期时,启动一台计算机意味着要给计算机喂一条包含引导程序的纸带,或者手工使用前端面板地址/数据/控制开关来加载引导程序。尽管目前的计算机已经装备了很多工具来简化引导过程,但是这一切并没有对整个过程进行必要的简化。

让我们先从高级的视角来查看 Linux 引导过程,这样就可以看到整个过程的全貌了。然后将回顾一下在各个步骤到底发生了什么。在整个过程中,参考一下内核源代码可以帮助我们更好地了解内核源代码树,并在以后对其进行深入分析。

leon Published by 2013-01-03 02:34

Detail »

kernel 浅谈

Tags: Linux  

首先内核空间分代码区,堆栈区,全局变量区。每个内核线程还有用户进程都有一个独立的内核堆栈区,Linux内核的堆栈一般是8K,所以在写内核程序的时候一定要小心,防止函数递归的出现,递归可能导致内核堆栈溢出。其次整个内核空间共用相同的页表,所以内核堆栈的在线性空间的起始地址都是不同的(有待考证,个人暂时猜测)
 

leon Published by 2012-12-03 17:48

Detail »

linux中普通文件和块设备文件的区别

Tags: Linux  

1,概述

一直都搞不明白普通文件跟块文件的区别,总觉得一个普通的文件是存放在磁盘块上,那它既属于普通文件又属于块设备文件。

本文从基本概念,寻址空间,内核读写几个方面介绍普通文件和块设备文件的辩证统一。

2,基本概念

普通文件(Regular File)。指普通意义上的文件,如数据文件、可执行文件等。

leon Published by 2012-12-03 02:32

Detail »

Linux静态库和动态库

Tags: C/C++   Linux  

库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行。库分静态库和动态库两种。

1. 静态函数库

这类库的名字一般是libxxx.a;利用静态函数库编译成的文件比较大,因为整个 函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进去了。当然这也会成为他的缺点,因为如果静态函数库改变了,那么你的程序必须重新编译。

leon Published by 2012-11-03 12:20

Detail »