进程控制

Linux 是一种动态系统,能够适应不断变化的计算需求。Linux 计算需求的表现是以进程的通用抽象为中心的,进程可以是短期的(比如执行一个命令),也可以是长期的(比如网络服务器之类的长期后台运行),因此,对进程及其调度进行一般管理就显得极为重要。

进程相关基础概念

进程

Linu[……]

阅读全文

文件操作

玩 Linux 一定听过这样一句话,“Linux 下一切皆文件”。Linux 下对一切资源的管理归根到底都是对文件的管理,所有硬件资源都是作为文件来操作的。

Linux 文件结构

在现代操作系统中,用利用大量的程序和数据,由于内存容量有限,且不能长期保存,于是人们想出了把这些数据以文件的[……]

阅读全文

shell 编程

介绍

shell 本身是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。shell 既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。

[……]

阅读全文

内存管理

数据存放

64位分布要复杂些,寻址空间并不是64位,使用其中一部分,其它作为扩展,分布看情况而定。理解大体分布就看32位的更好。对于内存管理这部分只是谈其中用户区的一部分。

.bss(未初始化的全局变量)

该段用来存放没有初始化和初始化为0(包括值改为0)的全局变量和静态变量。[……]

阅读全文

工程管理(cmake)

在实际开发中,仅仅通过使用 gcc 命令对程序进行编译是非常低效的,原因主要有以下两点:

(1)程序往往是由多个源文件组成(某些程序项目可能成千上万个源码),源文件的个数越多,gcc 命令就会越长。此外,各种编译规则也会加大 gcc 命令的复杂度,所以在开发调试程序的过程中,通过输入 gcc[……]

阅读全文