操作系统
u012903992
这个作者很懒,什么都没留下…
展开
-
如何查看一个进程有几个子进程
等进程查看工具来查看一个进程的子进程。这些工具提供了更直观的进程关系展示,更清晰地了解进程之间的关系。要查看一个进程有多少个子进程,一种方法是通过在命令行上使用。这个命令会列出指定父进程的所有子进程,并通过。命令计算子进程的数量。原创 2024-03-11 19:44:45 · 374 阅读 · 0 评论 -
SIGCHLD是什么信号
是子进程状态改变时发送给父进程的信号。父进程可以捕获这个信号,并通过调用。在 Unix 系统中,当一个子进程终止时,父进程会收到一个。函数来等待子进程状态改变,以避免僵尸进程的产生。等函数来获取子进程的退出状态、终止原因等信息。信号时,通常会在信号处理函数中调用。原创 2024-03-11 19:36:47 · 176 阅读 · 0 评论 -
ELF文件格式解析
通过以上的定义以及示例讲解,相信大家已经对ELF的文件格式有所了解了,如果想要继续深挖ELF文件的细节,大家可以参考以下这些资料。转载 2023-12-29 09:08:24 · 613 阅读 · 0 评论 -
LD_LIBRARY_PATH 这个是什么
当一个可执行文件执行时,系统会搜索一系列默认的库路径,以查找程序所需的动态链接库。中指定的路径,然后再搜索默认的路径。如果在这些默认的搜索路径下都找不到所需的动态链接库文件,系统会报告动态链接库未找到的错误。环境变量允许您指定自定义的库搜索路径,以便程序可以在指定路径下找到所需的库文件。环境变量来指定自定义的库搜索路径,确保程序可以正常找到所需的动态链接库。系统默认的库路径:这些路径是操作系统预设的默认库搜索路径,通常包括。这样,每次打开新的终端时,都会自动加载指定的库搜索路径设置。原创 2023-11-22 10:44:09 · 3350 阅读 · 0 评论 -
Linux下的clock_gettime()获取系统时间跳变问题
使用CLOCK_REALTIME设置时,会存在时间跳变问题。(一般不会随意跳,但是如果存在授时、时间同步相关的操作,当前系统时间会被修改。)通过该设置获取的时钟是不稳定的(is_steady = false)。建议获取时间差或者定时任务的时候,不直接用系统时间,以免出现时间跳变。clock_gettime()函数是基于linux操作系统的。可以根据需要,获取不同要求的精确时间,通过第一个参数设置。clk_id:检索和设置的clk_id指定的时钟时间。原创 2023-10-27 09:08:50 · 1950 阅读 · 0 评论 -
windows上下载github上的linux内核项目遇到的问题
而linux内核工程里恰好有一些只有大小写不同的文件,在windows下只能创建其中的一个。这导致了git工具的错误。如果把这个文件删除了,git status查看你会发现少了两个大小写不同的文件。最后得出的结论是想要参与linux内核的开发,还是要用linux操作系统啊,这是不是就是大牛创建这些不兼容文件的原因呢。windows上有些文件名是无法创建文件的,比如aux,com1等,这些是系统保留的设备名。一看文件目录,一大堆的红叉叉,git status查看有一大堆的修改,可是我啥也没动啊,郁闷。原创 2023-10-20 21:52:23 · 2156 阅读 · 1 评论 -
为什么 Linux 默认页大小是 4KB
过小的页面大小会带来较大的页表项增加寻址时 TLB(Translation lookaside buffer)的查找时间和额外开销,但是也会减少程序中的内存碎片,提高内存的利用率;过大的页面大小会浪费内存空间,造成内存碎片,降低内存的利用率,但是可以减少进程中的页表项以及 TLB 的寻址时间;这种类似的场景在我们做系统设计时也比较常见,举一个不是特别恰当的例子,当我们想要在集群上部署服务时,每个节点上的资源是有限的,单个服务占用的资源可能会影响集群的资源利用率或者系统的额外开销。转载 2023-10-10 16:15:30 · 1744 阅读 · 0 评论 -
sysmonitor如何使用
Sysmonitor是一个系统监控工具,可以监视系统资源的使用情况,如CPU、内存、磁盘、网络等。这些选项可以帮助调整Sysmonitor的监视范围和时间间隔等参数。这样,Sysmonitor将在系统启动时自动启动,并在终端或命令行界面中显示实时数据。原创 2023-09-09 10:05:05 · 1514 阅读 · 0 评论 -
libc和glibc有什么区别
libc(C Library)是一个常见的术语,指的是C语言的标准函数库,提供了许多函数和常量供C语言程序使用。在不同的操作系统中,libc可能是不同的,但是它们都实现了C语言的标准库函数。特性和功能:glibc相比于一些传统的libc实现来说,提供了更多的特性和功能,包括对国际化、线程安全、动态内存管理等方面的支持。glibc(GNU C Library)是一种常见的libc实现,是GNU项目的一部分。它是Linux系统中最常用的libc实现,也是许多其他基于Unix的操作系统所使用的。原创 2023-09-08 20:53:25 · 1643 阅读 · 0 评论 -
ERROR:GLOBAL_INITIALISERS: do not initialise globals to 0
一种常见的情况是,如果全局变量的初始化值为0,而它在程序的多个地方都被引用和修改,那么在编译过程中,编译器可能会生成针对该变量的额外的代码进行初始化。在一些编程语言中,全局变量的初始化值应该使用定义时的显式赋值,而不是依赖于编译器自动将其初始化为0。这是因为在一些情况下,编译器的初始化过程可能会引发一些意想不到的问题。为了避免这种情况,编译器通常会发出警告或错误,提醒程序员全局变量的初始化值不应该为0。这个错误通常出现在一些编程语言(如C、C++)的编译过程中,以帮助程序员避免一些潜在的问题。原创 2023-09-07 17:12:23 · 1036 阅读 · 0 评论 -
动态链接库是如何工作的
动态链接库是一种在操作系统中常用的可重复使用的软件库,类似的概念在Linux下是共享对象(Shared Object,简称SO)。动态链接库通过共享代码和数据的方式,提供了代码重用和模块化开发的机制。原创 2023-09-05 22:47:41 · 961 阅读 · 0 评论 -
获取Linux内核源码
在嵌入式平台上做Linux开发的时候,我们用的kernel都是芯片厂家移植到自家平台上的,但是最初的原生Linux内核的源码是从哪里来的呢?下面我们介绍一下怎么获取原生的Linux源码。原创 2023-09-02 21:37:18 · 1843 阅读 · 0 评论 -
linux系统中proc目录的相关介绍
简介进程进程状态进程详细信息硬件信息网络信息系统信息/proc目录是 Linux 操作系统中的一个虚拟文件系统,它提供了对内核运行中进程的访问。/proc目录下存放了一系列以数字命名的目录和文件,用来表示系统中的进程、硬件、网络、内存等信息。原创 2023-08-25 19:13:11 · 1050 阅读 · 0 评论 -
CMakeLists.txt文件是什么?如何使用
CMake 是一个跨平台的构建工具,可以自动生成特定平台的构建脚本(如 Makefile 或 Visual Studio 项目文件),方便用户在不同的操作系统和开发环境中使用统一的方式进行构建。CMakeLists.txt 文件通常位于项目的根目录下。只是一个简单的示例,实际的 CMakeLists.txt 文件可以根据项目的需求和复杂度进行更多的配置。使用 CMakeLists.txt 文件的好处是可以实现跨平台编译,在不同的操作系统和开发工具中都可以使用同样的配置文件进行项目构建。原创 2023-08-25 19:01:52 · 1248 阅读 · 0 评论 -
/proc/meminfo 是什么文件
是一个虚拟文件系统,它提供了有关系统内存使用情况的实时信息。这个文件包含了关于系统内存使用情况的详细信息,如已用内存、空闲内存、共享内存、缓存等。原创 2023-08-18 20:00:14 · 667 阅读 · 0 评论 -
objdump命令和nm命令有什么区别
可以查看二进制文件的汇编代码、符号表、重定位表、段信息等,它可以用来分析二进制文件的结构和代码实现。主要用于查看二进制文件的符号表,它可以列出二进制文件中定义的符号和引用的符号,以及它们的地址和类型。可以用来查看ELF格式的可执行文件、共享库文件和目标文件的符号表信息。因此,如果你需要查看二进制文件的汇编代码、重定位表、段信息等,可以使用。可以用来查看ELF格式的可执行文件和共享库文件的信息。如果你只需要查看二进制文件的符号表信息,可以使用。都是二进制文件分析工具,但它们的功能略有不同。原创 2023-07-18 20:24:49 · 422 阅读 · 0 评论 -
so文件和可执行文件的区别是什么
so文件是一种共享库文件,它包含了一组可被其他程序调用的函数和数据。so文件通常被多个程序共享,可以被动态加载到内存中,以便程序在运行时调用其中的函数。so文件通常是编译好的库文件,例如Linux系统中的so文件通常以ELF格式存储。可执行文件通常是独立的程序,可以直接运行,例如Linux系统中的可执行文件通常以ELF格式存储。可执行文件是独立的程序,可以直接运行,而so文件是共享库文件,需要被动态加载到内存中才能被其他程序调用。so文件和可执行文件都是二进制文件,但它们的用途和加载方式不同。原创 2023-07-18 20:22:53 · 440 阅读 · 0 评论 -
可执行二进制文件一定要有个入口函数吗
可执行二进制文件必须要有一个入口函数。入口函数是程序的起点,它是操作系统加载可执行文件后第一个执行的函数。在C语言中,入口函数的函数名必须是。如果没有入口函数,操作系统就无法执行程序,因此生成可执行二进制文件必须要有一个入口函数。,表示程序的退出状态。通常情况下,返回值为0表示程序正常退出,非0值表示程序异常退出。其中,第一种形式表示程序不接受任何命令行参数,第二种形式表示程序可以接受命令行参数,是一个指向参数字符串数组的指针。入口函数的返回值类型必须是。原创 2023-07-18 20:21:38 · 207 阅读 · 0 评论 -
libc和glibc的区别
glibc是GNU C语言标准库,是GNU项目的一部分,是libc的一个增强版本。glibc包含了libc的所有功能,同时还增加了一些新的特性,如国际化支持、线程安全、动态链接等。libc是最初的C语言标准库,它是由AT&T Bell实验室开发的,包含了C语言的基本函数库,如字符串处理、文件操作、数学函数等。libc是一个通用的标准库,可以在不同的操作系统和硬件平台上使用。因此,glibc相对于libc来说,具有更多的功能和特性,可以更好地支持现代操作系统和应用程序的需求。原创 2023-07-18 20:16:16 · 248 阅读 · 0 评论 -
Program terminated with signal SIGQUIT, Quit.
当程序接收到SIGQUIT信号时,它会终止执行并生成核心转储文件,该文件可以用于后续调试。SIGQUIT信号通常用于应对程序的异常情况,比如程序出现严重错误或不响应时,用户可以发送SIGQUIT信号来终止程序并获取有关程序状态的核心转储信息。SIGINT信号是用于请求程序终止的中断信号,而SIGQUIT信号通常用于在程序出现问题时获取核心转储信息。信号SIGQUIT是由用户发送的信号,通常用于请求程序终止并生成核心转储(core dump)。原创 2023-06-01 20:44:48 · 345 阅读 · 0 评论 -
Centos8 配置 动态 IP地址
6. 显示所有网络设备详情信息。3. 开机启动时激活网卡设备。5. 重启加载网络配置文件。2. 编辑网络配置文件。4. 动态获取IP地址。原创 2023-03-01 16:41:16 · 1255 阅读 · 0 评论 -
加载 proc 和 devpts 文件系统
如果devfs也列在那里,我们就有办法了,可以把主系统的devfs文件系统加载的后面"创建设备(Makedev"那一节里将创建的 /dev 结构之上,如果devfs也没有列出来,别担心,还有第三个方案可以使PTYs在chroot中正常工作,我们后面在Makedev那一节里会说到的。记住,如果出于种种原因,你中止了LFS系统的安装,后来又要继续安装时,要检查一些这两个文件系统是不是还加载在chroot环境中,如果没有的话,就会出问题,需要再次加载。不用担心,这只是因为我们的系统还不完整,有些文件还没有创建。原创 2022-11-17 16:30:13 · 1286 阅读 · 0 评论