cpu执行
并行
多个程序运行在不同的核心之中
并发
多个程序只运行在一个核心之中(多重数组实现执行内容)
环境变量
概念
指在操作系统中用来指定操作系统运行环境的一些参数。
说人话,环境的一些因素的设置。
分成环境变量,和普通(本地)变量。
环境变量被子进程继承下去,普通(本地)变量不会被子进程继承下去
环境变量常见东西
指在操作系统中用来指定操作系统运行环境的一些参数。
$HOSTNAME 用户名
$SHELL 命令行路径
$USER 用户名
$PWD 用户目位置
环境变量设置
1,$PATH 进行环境变量进行赋值
2,set查看环境变量
3,unset删除环境变量
3,使用export继承声明,一个环境变量然后($ m = )使用环境变量进行赋值。(可以更换顺序)
4,env为环境变量
5,getenv为环境变量的获取
命令行的原理(基本来源于此)
getenv(),进行环境变量的内容。可以用于相关用户权限的获取等内容。
int main(int argc,const char *argv[],char *env[])
const char * argv[]和int argc为命令行参数!env为环境变量字符串。
在程序运行后面输入相关的东西(命令行),流入到,这个东西被赋值到argv[]之中。
后面为参数进行东西的选择
命令行来源与此
env为环境变量字符串这个东西用于命令行的书写的来源与此。main后面的参数用于相似的参数的使用。
例外:Linux大部分命令通过子命令运行,但是还有部分由于bash自己进行执行(叫做内建命令)。
程序空间
这里面地址都是虚拟地址,有一个表进行对于内存(物理空间)对应映射的相关的内容。(自动生成映射表,映射表还有读写表之类的东西。)
每一个进程在启动的时候,都会让系统创建一个地址空间。每一个进程都有自己的地址空间!OS(系统内容)要进行地址空间的管理。
防止内存保护,防止指针越界情况。而且父子具有独立性,相互不影响。
进程终止
代码执行成功返回为0,否则为非零。(自己书写的!)这个东西是进程退出码,表现进程退出信息。
表现退出的信息,让父进程进行读取相关的内容。使用echo $?进行直接获取进程退出码!退出码,没有固定的关系。
exit()进程退出,在任意位置,刷新缓冲区。_exit()直接退出,不会刷新缓冲区。
main()函数,return表示进程退出。
进程 = 内核结构 + 进程代码 和 数据
注:其他的内容要后面进行细讲诉。