进程环境

进程的属性

一个进程包含了一些必要的属性:

属性

作用

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

专注于优化空间