Linux应用编程介绍

基本概念

Linux应用程序的定义:

Linux编程通常可以划分为用户态和内核态,这是Linux非常关键的隔离 机制,用户态代码无法直接访问硬件资源和内核核心数据 ,必须通过系统调用 (System Call)向内核发起请求,由内核代执行。因为用户态程序崩溃不会直接导致整个系统崩溃;内核态代码出错则可能引发系统宕机,因此内核态代码需严格保证稳定性。当用户态程序需要执行特权操作(如读写文件、分配内存)时,会触发陷入内核(Trap),完成后返回用户态继续执行。

层级 别称 运行程序 典型示例
用户态(User Mode) 用户空间、用户态 用户程序、应用程序、后台服务 lspwdps、浏览器、APP
内核态(Kernel Mode) 内核空间、内核态 内核程序、驱动程序 进程调度、内存管理、设备驱动、系统调用处理

典型的交互流程如下:

1.用户态程序(如ls)发起文件读取请求。

2.触发系统调用,CPU 切换至内核态。

3.内核态驱动 / 文件系统执行实际硬件操作。

4.执行完成后,CPU 切换回用户态,将结果返回给用户程序。

差异辨析

应用程序和驱动程序、单片机程序有何不同?

驱动程序通常静态编译,应用程序用gcc直接就能编译运行。

编写方法

相关推荐
fengyehongWorld3 小时前
TeraTerm ttl脚本登录wsl
linux·teraterm
乌托邦的逃亡者3 小时前
Linux中如何检测IP冲突
linux·运维·tcp/ip
一曦的后花园3 小时前
linux搭建promethes并对接node-exporter指标
linux·运维·服务器
乌托邦的逃亡者4 小时前
CentOS/Openeuler主机中,为一个网卡设置多个IP地址
linux·运维·网络·tcp/ip·centos
念恒123065 小时前
进程控制---自定义Shell
linux·c语言
风曦Kisaki5 小时前
# Linux Shell 编程入门 Day02:条件测试、if 判断、循环与随机数
linux·运维·chrome
李日灐5 小时前
< 6 > Linux 自动化构建工具:makefile 详解 + 进度条实战小项目
linux·运维·服务器·后端·自动化·进度条·makefile
嵌入式×边缘AI:打怪升级日志6 小时前
嵌入式Linux开发:开源组件、第三方库与许可证详解
linux
计算机安禾6 小时前
【Linux从入门到精通】第34篇:搭建FTP与Samba——跨平台文件共享解决方案
linux·运维·服务器
日取其半万世不竭6 小时前
用 Netdata 实时监控服务器,比 Prometheus + Grafana 轻量得多
linux·服务器·网络·系统架构·负载均衡·zabbix·grafana