Linux学习:二进制、elf
二进制文件类型 概述 Windows 有好几种不同的二进制格式 PE/COFF 用于 .exe/.dll/.obj/.sys 独立的 .pdb 格式 独立的 .lib 格式 Linux 几乎全部统一为 ELF 格式 可执行文件、共享库、目标文件、内核模块、core dump 全都...
二进制文件类型 概述 Windows 有好几种不同的二进制格式 PE/COFF 用于 .exe/.dll/.obj/.sys 独立的 .pdb 格式 独立的 .lib 格式 Linux 几乎全部统一为 ELF 格式 可执行文件、共享库、目标文件、内核模块、core dump 全都...
登录用户 获取登录用户名 uuid 需要获取硬件UUID,用这个UUID拼出目标文件名。具体: 获取 通过IOKit库查询“IOPlatformExpertDevice”服务,并从中读取“IOPlatformUUID”属性,获取的就是硬件的UUID 这个UUID是针对Mac计算机...
概述 是 Windows 操作系统中的虚拟内存页面文件,其作用、管理方式及对系统的影响是系统性能优化的核心内容 核心作用 物理内存的扩展 当物理内存(RAM)不足时,Windows 会将不活跃的数据从 RAM 转移到 pagefile.sys 中,释放 RAM 给当前活跃程序使用...
创建线程 概述 每个进程至少都有一个线程。 线程的组成 线程的内核对象,操作系统用它管理线程。 系统还用内核对象来存放线程统计信息的地方。 线程栈,用于维护线程执行时所需的所有函数参数和局部变量。 进程从来不会执行任何东西,它是线程的容器。 线程必然是在某个进程的上下文中创建的,...
调试实践 关于调试实践。 内存破坏 栈内存 在Windows中,栈只是操作系统为线程分配的一块内存。 作用是记录函数调用链(局部变量的分配、参数传递)。 每当调用函数时,都会创建一个栈帧并且把它压入到栈中。 随着线程中调用的函数越来越多,栈也会变得越来越大。 函数结构 函数前导指...
概述 Windows 的组件对象模型(Component Object Model,COM)是一种用于构建可重用软件组件的标准和技术 它允许软件组件以二进制形式进行互操作,独立于编程语言、开发工具和平台 COM 技术广泛应用于各种 Windows 应用程序和系统服务 包括 OLE...
进程的概念 进程是操作系统的概念,每当我们执行一个程序时,对于操作系统来讲就创建了一个进程,在这个过程中,伴随着资源的分配和释放。可以认为进程是一个程序的一次执行过程。 进程通信的概念 进程用户空间是相互独立的,一般而言是不能相互访问的。但很多情况下进程间需要互相通信,来完成系统...
信号 概述 /usr/include/ 信号是进程间通信(IPC)的一种简单机制 信号提供了一种向进程传递通知和信息的方式,以便进程可以相应地做出反应 信号类型 SIGINT:当用户按下CTRL-C时,通常发送这个信号来中断进程 SIGTERM:用于正常终止进程,是kill命令的...
概述 在调度程序给另一个可调度线程分配CPU之前,CPU可以运行一个线程大约20ms。 这是在所有线程的优先级都相同的情况下。实际上,线程间的优先级是不同的。 每个线程都会被赋予0(最低)到31(最高)的优先级数。 当系统确定给哪个线程分配CPU时,它会首先查看优先级为31的线程...
等待线程退出 线程从入口点函数自然返回,或者主动调用pthread_exit()函数,都可以让线程正常终止 线程从入口点函数自然返回时,函数返回值可以被其它线程用pthread_join函数获取 该函数是一个阻塞函数,一直等到参数th指定的线程返回;与多进程中的wait或wait...
搜索当前分类