操作系统
-
Linux平台/proc虚拟文件系统浅见
Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统(即虚拟文件系统),它只存在内存当中,而不占…
-
为什么有了IP地址,还需要MAC地址
课堂上老师或者面试中面试官有时候可能会问到:为什么有了IP地址,还需要MAC地址呢? 更多时候,我们对于”IP地址+Mac地址”的组合会觉得习以为常,因为大…
-
Linux干货 | 手把手教你编译Linux Kernel
整个Linux内核编译的过程非常简单,但是内核编译需要花费很长的时间。因为Linux内核的代码非常多。当然,如果你的计算机性能强劲,时间会短很多。当你准备好性能强劲的计算机后,让小…
-
Linux干货|手把手教你编译Linux内核rpm包
一、下载源代码 1、登录github官网 进入github官网,搜索linux,使用git下载最新版本,或者其它版本的内核代码。 2. 命令行下载 使用git clone下载git…
-
Linux干货 | 内核模块参数传递与sysfs
一、前言 Linux应用开发中,为使应用程序更加灵活地执行用户的预期功能,我们有时候会通过命令行传递一些参数到main函数中,使得代码逻辑可以依据参数执行不同的任务。同样,Linu…
-
Linux内核模块通信 | 符号导出解析
Linux内核模块间通讯方法非常的多,最便捷的方法莫过于函数或变量符号导出,然后直接调用。默认情况下,模块与模块之间、模块与内核之间的全局变量是相互独立的,只有通过EXPORT_S…
-
Linux调试工具 | Addr2line
addr2line translates addresses into file names and line numbers. Given an address in an ex…
-
Linux平台大文件生成以及处理
在日常工作中,为了验证某些场景下的功能,经常需要人为构造一些大文件进行测试,有时需要用大文件来测试下载速度,有时需要用大文件来覆盖磁盘空间;偶尔会看到一些网络博文会教大家如何构造大…
-
Linux多线程编程【基础 | 实战】解析
前言 线程是轻量级的进程(LWP: Light Weight Process),在Linux环境下线程的本质仍是进程,进程是资源分配的最小单位,线程是操作系统调度执行的最小单位。 …
-
Linux平台下生成C语言数据结构关系图
作为一名Linux系统下的C语言开发,经常需要阅读源码,但是有些源码实在是难以阅读,各种庞大的结构体交杂,分分钟把你绕晕,让你头昏眼花,迟迟无法梳理清楚。这时候,一个能够帮你梳理数…
-
Linux C自动化编译 | Autotools自动构建工程项目Makefile(一)
前言 GNU autotools 是一系列编程工具,可以辅助产生 Makefile,方便编译整个工程项目。它是自由软件基金会发起的GNU计划的其中一项,作为GN…
-
Linux服务器起KVM虚拟机总结
一、虚拟机镜像格式 目前,虚拟机的主流镜像格式有raw、cow、qcow、qcow2以及vmdk,下面,我就详细介绍一下这些主流的虚拟机镜像格式。 1、raw格式 raw格式是一种…
-
Linux ELF二进制文件解析及实战
今天我们介绍一种常见的文件格式:ELF文件格式,标准称谓叫做可执行和可链接格式(Executable and Linkable Format)。在维基百科中这样描述: 在计算机科学…
-
Linux干货 | 进程编程基础知识总结
一、进程概述 1、进程概念 程序:磁盘上的可执行文件, 并且只占用磁盘上的空间,是一个静态的概念。 进程(Process):被执行之后的程序叫做进程,不占用磁盘空间,需要消耗系统的…
-
Linux用户空间与内核空间通信 | 虚拟文件系统(sysfs读写)
Linux用户空间与内核空间通信主要有以下几种方式:虚拟文件系统(proc、sysfs、debugfs等)、系统调用(read、write、open等)、信号(SIGSEGV、SI…
-
Linux高性能网络测试工具 | pktgen
一、pktgen概述 pktgen是Linux内核自带的高性能网络测试工具(高性能发包工具),可实现在内核高速发包。主要用来测试网络驱动与网卡设备,支持多线程,能够产生随机MAC地…