Linux内核学习笔记(二)
x86平台中,一个进程调用C库函数读取文件内容,其经历的处理步骤可能如下:
- 在用户空间,进程调用fread()库函数
- 库函数触发read()系统调用
- 0x80软中断被触发,CR0寄存器的PE位被置0,进入内核态
- read()系统调用对VFS层发起调用file_op…
13 years ago
0
Linux内核学习笔记(一)
Linux内核代码结构
代码目录 | 说明 |
arch | 特定体系结构的代码 |
block | 块I/O层 |
crypto | 加密API |
Documentation | 内核源代码文档 |
drivers | 设备驱动 |
firmware | 特定驱动需要的设备固件 |
fs | VFS和各文件系统 |
include | 内核头文件 |
ini… |
13 years ago
0
Cygwin知识集锦
基本知识
Cygwin简介
Cygwin是一个用于Windows操作系统下的类Linux环境。包括以下组件:
- cygwin1.dll:一个提供大量POSIX系统调用功能的模拟层,位于Cygwin程序与Windows操作系统之间。目前有32/64位版本支持Windows XP3之后的所有NT系统。cygwin1.dll提供的API尽可能的遵守UNIX规范、Linux…
13 years ago
0
Visual Studio知识集锦
IDE配置FAQ
全局配置FAQ
- 如何导入/导出样式主题?Theme ⇨ Customize Colors,左上角第2/3个按钮,分别执行导入/导出
- 如何导入/导出VS的设置?Tools ⇨ Import and Export Settings
- 如何清空查找(Fi…
13 years ago
0
Linux进程间通信
管道
当从一个进程连接数据流到另外一个进程时,使用术语“管道”。通常是把一个进程的输出通过管道连接到另外一个进程的输入。Shell命令通过管道字符可以实现命令的连接:
1 2 3 4 5 |
cmd1 | cmd2 #cmd1的标准输入来自终端键盘 #cmd1的标准输出传递给cmd2,作为它的标准输入 #cmd2的标准输出连接到终端屏幕 |
popen函数
Linux提供了类似的API,允许通过编程的方式,利用管道在两个程序之间传递数据。在两个程序之间进行数据传递的最简单方式是使用popen/pc…
阅读全文
14 years ago
0
Linux信号、进程和会话
进程
进程和信号是Linux操作环境的基础部分,控制着Linux和其它类UNIX系统的几乎所有活动。
UNIX标准对进程的定义:其中运行着一个或者多个线程的地址空间,以及这些线程需要的系统资源。Linux系统的进程是非常轻量级的。
进程基础知识
每个Linux进程…
阅读全文
14 years ago
0
Linux编程知识集锦
库
共享对象
共享库(Shared libraries),在程序执行起始时被自动加载(而非执行过程中随时动态加载)。在链接阶段,必须有共享库才能链接。
使用共享库时,运行时加载的库,应当与链接时期望的库的“版本”一致,即功能上没有不兼容的变化。二进制…
阅读全文
14 years ago
0
Linux IO编程
文件访问
Linux系统中每个运行的进程,具有与之关联的文件描述符,通过这些描述符可以访问打开的文件或者设备。当一个进程打开时,一般会有三个已经打开的文件描述符:
描述符 | 说明 |
0 | 代表标准输入 |
1 | 代表标准输出 |
2 | 代表标准错误 |
系统调用
下表是与文件访问有关的系统调…
阅读全文
14 years ago
0