Linux学习方法-框架学习法——Linux应用程序编程框架

配套视频学习链接:https://www.bilibili.com/video/BV1HE411w7by?p=4&vd_source=d488bc722b90657aaa06a1e8647eddfc

目录

Linux应用程序编程

Linux应用程序编程

Linux文件I/O(input/output)

Linux文件I/O(五种I/O模型)

Linux多进程

Linux多线程

网络通信(socket编程)

Linux应用编程框架


Linux应用程序编程

  • 应用编程即Linux系统编程
  • 基于Linux内核之上,基于'系统调用’或者库函数的编程。
  • Linux内核中设置了一组用于实现各种系统功能的子程序,称为系统调用
  • 系统调用由操作系统核心提供,运行于核心态;而普通的函数调用由函数库或用户自己提供,运行于用户态
  • '系统调用’在ARM系统中一般用'软中断’的方式来实现。
  • ARM处理器工作模式:

用户模式(USR):正常程序执行模式,不能直接切换到其他模式

系统模式(SYS):运行操作系统的特权任务,与用户模式类似,但具有可以直接切换到其他模式等特权

快中断模式(FIQ):支持高速数据传输及通道处理,FIQ异常响应时进入此模式

中断模式(IRQ):用于通用中断处理,IRQ异常响应时进入此模式

管理模式(SVC):操作系统保护模式,系统复位和软件中断响应时进入此模式(由系统调用执行软中断SWI命令触发)

中止模式(ABT):用于支持虚拟内存和/或存储器保护,在ARM7TDMI没有大用处

未定义模式(UND):支持硬件协处理器的软件仿真,未定义指令异常响应时进入此模式

Linux应用程序编程

  • 包含丰富的内容(可参照'系统调用'清单)

文件I/O

多进程

多线程

网络SOCKET编程

时间函数、文件系统操作

用户管理、内存管理等

Linux文件I/O(input/output)

  • 一切皆文件(串口/LED等)
  • 文件I/O(inputoutput)实际就是对文件的读写操作

open()

read()

write()

ioctl()

close()

文件描述符(句柄)

fd=open(“目录文件”)

  • 标准I/O(带缓冲的IO)

可移植性更好 

Linux文件I/O(五种I/O模型)

阻塞

非阻塞

信号

多路复用

异步

Linux多进程

  • 多进程是多任务在Linux上的具体实现,多任务是操作系统的基本功能。
  • 进程的三种状态:就绪、阻塞、运行。

  • fork()分岔

  • 进程间通信

管道(匿名管道和命名管道)

信号

信号量

消息队列

共享内存

套接字

Linux多线程

  • 单个进程内可以运行多个线程,线程是操作系统时间片调度的最小单位
  • 每个线程可使用进程的全局变量
  • 线程生成函数:pthread create()
  • 线程同步(共用资源,合理分配资源的方式)

互斥锁

条件变量

读写锁

信号量

网络通信(socket编程)

网络通信是重点

很多操作系统的网络编程方式是一样的,都采用了socket方式

Linux应用编程框架

  • 21
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玄奕子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值