摘要:
内存访问与映射是linux驱动常见操作,操作硬件时离不开内存的映射,本章比较重要。 11.1 CPU与内存、I/O 目前的嵌入式处理器,都不提供专门的I/O空间,而仅存在内存空间;各种外设寄存器都直接映射到内存空间,可以通过指针直接访问 x86一般提供专门的I/O空间, 用特殊指令访问这些空间; C 阅读全文
摘要:
6.1 字符设备驱动结构 先看看字符设备驱动的架构: 6.1.1 cdev cdev结构体是字符设备的核心数据结构,用于描述一个字符设备,cdev定义如下: void cdev_init(struct cdev *, const struct file_operations *); // 将cdev 阅读全文
摘要:
, 8.1 概述 linux里使用较多的进程间通信方式: 管道,pipe和fifo,管道pipe没有实体文件,只能用于具有亲缘关系的进程间通信;有名管道 named pipe,也叫fifo,还允许无亲缘关系进程间通信; 信号,signal,软件模拟中断的机制,很多信号是系统处理的; 消息队列,mes 阅读全文
摘要:
线程是轻量级进程,创建线程的开销要比进程小得多,在大型程序中应用广泛。 9.1 线程概述 进程包含自己的代码、数据、堆栈、资源等等,创建和切换的开销比较大; 线程是轻量级的进程,调度的最小单元,同一个进程内的线程可以共享资源; 线程的上下文开销比进程小得多; 线程有自己的堆栈,但是用户空间共享,例如 阅读全文
摘要:
进程是系统资源的最小单元,很重要。 7.1 linux进程的基本概念 定义:一个程序的一次执行过程,同时也是资源分配的最小单元。程序是静态的,而进程是动态的。 进程控制块:linux系统用进程控制块描述进程,task_struct,在 include/linux/sched.h PID,进程唯一标识 阅读全文
摘要:
一.引言 本章描述文件系统的其他特征和文件的性质。有些背景知识需要注意,例如用户ID与文件权限、文件系统等。 二.函数stat、fstat、fstatat和lstat 以上四个函数都是为了获取文件的stat结构体,稍有差别: stat和fstat:stat依据文件名,fstat依据fd stat和l 阅读全文
摘要:
前段时间看APUE,确实比较详细,不过过于详细了,当成工具书倒是比较合适,还是读一读这种培训机构的书籍,进度会比较快,遇到问题时再回去翻翻APUE,这样的效率可能更高一些。 《嵌入式linux应用程序开发标准教程》的前几章没必要看了,都是写浅显的知识点,从第六章文件IO编程开始记录笔记。后期再根据A 阅读全文
摘要:
一.引言 说明几个I/O函数:open、read、write、lseek和close,这些函数都是不带缓冲(不带缓冲,只调用内核的一个系统调用),这些函数不输入ISO C,是POSIX的一部分; 多进程共享资源(包括文件)时,会有很多额外的烦恼,需要对共享资源、原子操作等概念深入理解,需要理解涉及的 阅读全文
摘要:
随着UNIX各种衍生版本不断发展壮大,标准化工作就十分必要。其实干啥事都是这样,玩的人多了,必须进行标准化。 一.UNIX标准 1.1 ISO C(ANSI C) ANSI:Amerocan Natoinal Standards Institute,美国国家标准学会,是ISO的程序 ISO: Int 阅读全文
摘要:
这一章节侧重一些基本概念和书中用到的一些名词。 一.引言 所有的操作都提供服务,典型的服务包括:执行新程序、打开文件、读写文件、分配存储区以及获得当前时间等。 二.UNIX体系结构 其实linux常见的系统调用不是非常多,本书附录A按字符顺序列出了常用系统调用的原型。其实linux的应用编程,一要熟 阅读全文