进程环境
进程的属性
一个进程包含了一些必要的属性:
属性 |
作用 |
|---|---|
ID |
在操作系统中唯一代表了进程的身份 |
实际用户 ID 和实际组 ID |
执行进程的用户的身份标示 |
有效用户 ID 和有效组 ID |
进程执行时权限和有效用户相等 |
当前工作目录 |
代表了进程解析相对路径的起点 |
环境变量列表 |
代表了进程的环境变量 |
一般而言,有效 ID 和实际 ID 相等,但是当使用 sudo 执行程序后,程序的实际 ID 就被设置为了 0,使其具备等同 root 用户的资源访问权``
例如,如果我们需要查看当前进程时候以 root 权限执行:
if os.Geteuid() != 0 {
logrus.Fatalln("请使用超级用户运行此程序")
}
替代软件
下面的软件可用于替代 malloc:
库 |
特点 |
|---|---|
libmalloc |
可以细化内存分配细节、并使用 mallinfo 查看已经分配的空间 |
vmalloc |
可以对不同的储存区使用不同的技术 |
quick-fit |
顾名思义 |
jemalloc |
malloc 在 FreeBSD 中的实现。具有良好的拓展性 |
TCMalloc |
Google 开源的工具 |
alloca |
在栈帧上分配空间 |
对于 libc 也有一些不同的实现:
库 |
特点 |
|---|---|
glibc |
大而全,效率高 |
musl |
代码更简洁 |
eglibc |
专注于优化空间 |