Linux驱动学习笔记(一linux架构)
Posted 会飞的企鹅^_^
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux驱动学习笔记(一linux架构)相关的知识,希望对你有一定的参考价值。
1.1Linux系统框架
什么是linux?
可以将Linux看做是由C语言编写的一个大的程序或者函数库;可以分为应用层(关注业务逻辑)和驱动层(提供函数接口),Linux系统大部分使用C语言编写只在系统的启动部分含有汇编代码。Linux提供了大量的资源比如网络协议栈,多任务处理,内存管理和设备管理等。
Linux框架:
应用程序通过系统调用来使用内核资源,系统调用一般通过软中断的方式。
系统调用:Linux内核中提供的一组用于实现各种系统功能的子程序,由操作系统核心提供,运行于内核态。
C库函数:由函数库或用户自己提供,运行于用户态。
软中断:由ARM对应的软件指令触发,不同于外部中断。
ARM处理器在硬件层面就已经支持了用户态(用户模式)和内核态(系统模式)。应用程序不能直接调用硬件。
ARM处理器的工作模式:
1、用户模式
2、系统模式
3、中断模式
Linux的文件系统
Linux启动后一定会挂接一个文件系统,文件系统可大可小,通过构造不同的文件系统可以衍生QT系统等其他系统,但其内核是相同的只是挂接的文件系统不同
Linux思想:一切皆文件都可以理解为write,open,read,close等
-
可挂载的文件系统:
1.2Linux应用程序编程
三个文件:
uboot.bin-->内核镜像文件-->文件系统镜像
1.2.1、文件I/O:文件I/O(input/output)实际上就是对文件的读或者写操作如write()、read()、open()、close()、ioctl()等或者是文件描述符(文件句柄fd=open("目标文件")fd是打开目标文件返回的一个非负的整数 ,用来表示打开的文件后期可直接作为参数对打开的目标文件进行操作)
1.2.2、标准I/O:使用标准C库调用内核资源如fopen、fclose、fwrite等,特性是可移植性好
1.2.3、五种I/O模型:阻塞、非阻塞.、信号、多路复用、异步
1.2.4Linux多进程:多进程是多任务在Linux上的具体实现,多任务是操作系统的基本功能
进程的三种状态:就绪、阻塞(在等待IO或其他任务)、运行。
Fork(),分岔,子进程复制父进程的所有“资源”这里的资源是指父进程中的变量,堆栈等
进程之间的通信可以通过:管道(匿名管道和命名管道)、信号、信号量、消息队列、共享内存、套接字
单进程里可以运行多个线程,线程是操作系统时间片调度的最小单位,每个线程可以使用进程的全局变量。
线程生成函数:pthread_create()
线程同步:当多个线程公用一个资源时需要合理分配资源的方式其中有:互斥锁(使用时将设备锁起来别的线程就无法使用,使用完后再解锁释放设备)、条件变量、读写锁、信号量
1.2.5网络通信(socket编程)
linux12 - 个人笔记 -- 期中架构项目实践
期中架构项目实践
一、 项目背景
随着互联网的发展,互联网规模越来越大、服务的架构越来越复杂多样,对运维工程师的需求也是会越来越急迫,对正在从事或者即将从事运维行业的人们来说,是一个很好的消息。
自然而然地运维工程师需求量也会很大,而且是随着运维工作的积累,越来越值钱。一个优秀的运维工程师,有强烈的责任心和主动性,对自己的所负责工作有owner意识,并且能自我驱动不断学习与成长。
而且能够承担较大工作压力,有独立较强的分析解决问题的能力。在工作当中胆大心细,并且还要具备探索创新的精神。目前所有岗位要求,都要会精通shell/Python/Perl等至少其中1种语言,并且精通Linux命令。
所以说,这就是运维行业的优势,我们还等什么呢?
二、架构
http://processon.com/diagraming/605ade737d9c08555e528b70
三、相关的实现工具
以上是关于Linux驱动学习笔记(一linux架构)的主要内容,如果未能解决你的问题,请参考以下文章