2、Linux系统编程入门指南

Linux系统编程入门指南

1. 系统编程概述

系统编程是编写系统软件的艺术,系统软件处于底层,直接与内核和核心系统库交互。像shell、文本编辑器、编译器、调试器、核心实用程序和系统守护进程等都属于系统软件,它们基于内核和C库。与之相对的是应用编程,虽然有些应用程序处于较高层级,很少涉及底层,但了解系统编程对所有程序员都有益。

近年来,应用编程有从系统级编程转向高级开发的趋势,如使用JavaScript、PHP、C#或Java等。但这并不意味着系统编程会消亡,因为像JavaScript解释器和C#运行时等仍需系统编程来实现。而且大多数Unix和Linux代码仍在系统级编写,常见的有Apache、bash、cp等应用。

系统编程通常涵盖内核开发和设备驱动编写,但这里主要关注用户空间的系统级编程,网络编程等大型主题则不在讨论范围内。系统编程在Linux中有三个基石:系统调用、C库和C编译器。

2. 系统调用

系统调用是用户空间向内核请求服务或资源的函数调用,从常见的read()和write()到一些特殊的如get_thread_area()和set_tid_address()等。Linux实现的系统调用比大多数其他操作系统内核要少,例如i386架构约有300个系统调用,而微软Windows据称有数千个。不同的机器架构实现的系统调用列表有所不同,但超过90%的系统调用是所有架构共有的。

2.1 系统调用的调用机制

由于安全和可靠性原因,用户空间应用不能直接与内核空间链接。用户空间应用需通过内核提供的机制“通知”内核要调用系统调用,不同架构的机制不同。以i386为例,用户空间应用执行软件中断指令in

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值