swap空间有两种形式:一是交换分区,二是交换文件。总之对它的读写都是磁盘操作。...linux内存通过 virtual memory 虚拟内存来管理整个内存, 虚拟内存管理着物理内存,也管理着swap交换空间。...Swap分区,即交换区,Swap空间的作用可简单描述为:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。...那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。...其实,Swap的调整对Linux服务器,特别是Web服务器的性能至关重要。通过调整Swap,有时可以越过系统性能瓶颈,节省系统升级费用。
linux驱动程序一般工作在内核空间,但也可以工作在用户空间。下面我们将详细解析,什么是内核空间,什么是用户空间,以及如何判断他们。...Linux简化了分段机制,使得虚拟地址与线性地址总是一致,因此,Linux的虚拟地址空间也为0~4G。Linux内核将这4G字节的空间分为两部分。...而将较低的3G字节(从虚拟地址 0x00000000到0xBFFFFFFF),供各个进程使用,称为“用户空间)。因为每个进程可以通过系统调用进入内核,因此,Linux内核由系统内的所有进程共享。...于是,从具体进程的角度来看,每个进程可以拥有4G字节的虚拟空间。 Linux使用两级保护机制:0级供内核使用,3级供用户程序使用。...对内核空间来说,其地址映射是很简单的线性映射,0xC0000000就是物理地址与线性地址之间的位移量,在Linux代码中就叫做PAGE_OFFSET。 内核空间和用户空间之间如何进行通讯?
type 类型b 块设备, d 目录, c 字符设备文档, p 管道文档, l 符号链接文档, f 普通文档name 文件名支持通配符size 文件大小+ 表示...
Linux进程地址空间是学习Linux的过程中,我们遇见的第一个难点,也是重中之重的重点。虽然它很难,但是,等我们真正懂得了这样设计的原理,我们不禁会感叹:这真的是太妙了。...这个好办;方向是比对出来的,我们只需要多申请几次堆空间和栈空间,然后比较地址大小变化。...虽然每一个进程只有1个虚拟空间,但是这个虚拟空间可以被别的进程来同享。如:子进程同享父进程的地址空间,而mm_user和mm_count就对其计数。...arg_start,结束arg_end,环境段的开始env_start,结束env_end unsigned long saved_auxv[AT_VECTOR_SIZE]; struct linux_binfmt...实际上就是在需要开辟空间时,假装开了空间,实际上用的还是原来的空间,减少开辟空间的时间,等到真正要使用新空间的时候才去真正开辟空间。
显示相同地址,却是不同的值 下面在Linux上验证 创建test.c文件 st.c ⮀...,从全0到全FFFF(16进制),因为数字是线性的,每一个数字表示一个地址,每个地址对应一个字节 地址空间是线性结构的 4.确定地址空间 32位下地址空间默认为0-42亿多 假设空间范围为4GB 设置进程地址空间的结构...,拷贝value值给新空间,重新映射指向新开辟的空间,导致不影响父进程的value值 ,最终将新开辟的空间value值改成200 因为拷贝了物理地址空间,所以在页表的value不影响虚拟地址,但两者却在不同的物理地址处...扩展1:为什么地址空间要存在? 如果没有地址空间,操作系统如何工作 ?...,在地址空间中申请空间,在页表处只填写虚拟地址,物理地址处不填写,就不需要在物理地址处申请空间,过一会,进程尝试对空间写入,在重新申请空间把映射关系创建好,整体机制被叫做 缺页中断 8.
文章目录 一、前言 二、什么是进程地址空间 三、进程地址空间如何进行管理 四、为什么会存在进程地址空间 五、进程地址空间区域的严格划分 一、前言 学习Linux系统编程一共要翻越三座大山 – 进程地址空间...Linux中,三者的意思是一样的,都表示虚拟地址,大家不用过于区分。...那么 OS 如何对进程地址空间进行管理呢?在学习了 【Linux】计算机的软硬件体系结构 后,对于这个问题,相信大家已经能够轻松拿捏了 – 管理的本质是对数据进行管理,管理的方法是先描述,再组织。...所以和管理进程一样,操作系统会使用一种内核数据结构来对地址空间进行管理,Linux中用于 管理地址空间的内核数据结构叫做 mm_struct,操作系统会为每个进程创建一个 mm_struct 对象,然后通过管理结构体对象来间接管理进程地址空间...Linux 中 mm_struct 源码如下: 可以看到,进程地址空间其实也是进程属性的一种,我们可以通过进程的 task_struct 来找到/管理进程对应的地址空间。
香港云服务器Linux系统文件删除策略 磁盘空间满 由于Linux没有回收站功能,所以线上服务器上所有要删除的文件都会先移动到系统/tmp目录下,然后定期清除/tmp目录下的数据。...,在确认此文件可以删除后,执行如下删除操作: rm /tmp/access_log 接着查看系统根分区空间是否释放,从输出可以看到,根分区空间仍然没有释放,这是怎么回事?...删除文件空间不释放 一般来说不会出现删除文件后空间不释放的情况,但是也存在例外,比如文件被进程锁定,或者有进程一直在向这个文件写数据等,要理解这个问题,就需要知道Linux下文件的存储机制和存储结构...在将数据对应的指针从meta-data中清除后,文件数据部分占用的空间就可以被覆盖并写入新的内容,之所以在出现删除access_log文件后,空间还没释放,就是因为httpd进程还在一直向这个文件写入内容...查找被应用程序占用的已删除文件列表 因此通过df命令查询空间并未释放也就既然有了解决问题的思路,那么接下来看看是否有进程一直在向access_log文件中写数据,这里需要用到Linux下的lsof命令
针对 Linux 操作系统而言,最高的 1G 字节(从虚拟地址 0xC0000000 到 0xFFFFFFFF)由内核使用,称为内核空间。...对于 Linux 来说,通过区分内核空间和用户空间的设计,隔离了操作系统代码(操作系统的代码要比应用程序的代码健壮很多)与应用程序代码。...运行在用户空间时进程使用的是用户空间中的堆栈,而运行在内核空间时,进程使用的是内核空间中的堆栈。所以说,Linux 中每个进程有两个栈,分别用于用户态和内核态。...整体结构 接下来我们从内核空间和用户空间的角度看一看整个 Linux 系统的结构。它大体可以分为三个部分,从下往上依次为:硬件 -> 内核空间 -> 用户空间。如下图所示(此图来自互联网): ?...其实,不光是 Linux,Windows 操作系统的设计也是大同小异。 总结 现代的操作系统大都通过内核空间和用户空间的设计来保护操作系统自身的安全性和稳定性。
Linux进程地址空间 零、前言 一、程序内存空间 二、进程地址空间 1、引入及概念 2、进程地址空间 3、相关问题 零、前言 本章主要讲解学习进程地址空间的知识 一、程序内存空间 在学习C/C...1、引入及概念 对于上述的程序地址空间,其实它的真实面貌为进程地址空间,对于进程地址空间本质上来说是一个虚拟地址空间,并非真实的物理空间 示例: #include #include...概念: 在Linux地址下,这种地址叫做 虚拟地址,我们在用C/C++语言所看到的地址,全部都是虚拟地址!...,同时也相应的分配了对应的mm_struct进程地址空间(PCB中储存了该进程对应的进程地址空间的地址),也就是每个进程都认为自己独占内存资源 对于进程来说,进程控制块以及进程地址空间以及相应的资源...,随进程的创建而创建,随进程的退出而回收 进程地址空间的内容: 进程地址空间是由0x00000000到0xffffffff的线性地址空间,按照刻度被划分为各个区域,例如代码区、堆区、栈区等
在Linux中,特殊情况,我们将这种地址也成为逻辑地址。 2.感性的理解虚拟地址空间 从前有一个大富翁,他有10亿美元的资产。...3.现象的具体解释 父进程和子进程都有自己独立的进程地址空间,也有独立的页表结构。子进程由父进程创建,因此子进程的进程地址空间是拷贝父进程的进程地址空间。...当然对于Linux而言,虚拟地址、线性地址、逻辑地址都是一样的。 三、怎么办 操作系统要为每一个进程分配地址空间,那么操作系统是否要管理这些地址空间呢?当然是要管理的。...3-4G是内核空间。 总结 以上就是今天要讲的内容,本文介绍了进程地址空间的相关概念。...本文作者目前也是正在学习Linux相关的知识,如果文章中的内容有错误或者不严谨的部分,欢迎大家在评论区指出,也欢迎大家在评论区提问、交流。
前言:在讲完环境变量后,相信大家对Linux有更进一步的认识,而Linux进程概念到这也快接近尾声了,现在我们了解Linux进程中的地址空间!...char *str = "Hello, Linux!"...在Linux中,这个描述虚拟地址空间的东西叫做: struct mm _struct { long code_start; long code_end; long data_start; long...char *str = "Hello, Linux!"...结束进程地址空间,我们的Linux进程概念到这里也结束了,后面我将带大家走进进程控制。 谢谢大家支持本篇到这里就结束了
Linux网络名称空间是操作系统级别的一种虚拟化技术,它允许创建隔离的网络环境,使得每个环境拥有自己独立的网络资源,如IP地址、路由表️、防火墙规则等。...这种技术是Linux内核功能的一部分,为不同的用户空间进程提供了一种创建和使用独立网络协议栈的方式。本文旨在全方面、多维度解释Linux网络名称空间的概念、必要性和作用。1. 什么是网络名称空间?...网络名称空间使得容器、虚拟机等技术能够在不同的网络环境中独立运行,无需担心IP地址冲突或路由规则相互干扰。2. Linux为什么需要网络名称空间?...结论Linux网络名称空间是现代网络架构中的关键技术之一,它提供了必要的隔离性、灵活性和安全性,以满足云计算☁️和容器化应用的需求。...随着技术的发展,网络名称空间的应用场景将会更加广泛,其在Linux网络虚拟化领域的重要性将持续增长⬆️。
原文链接:https://www.runoob.com/w3cnote/linux-view-disk-space.html Linux 查看磁盘空间可以使用...df df 以磁盘分区为单位查看文件系统,可以获取硬盘被占用了多少空间,目前还剩下多少空间等信息。 例如,我们使用df -h命令来查看磁盘信息, -h 选项为根据大小适当显示: ?...例如查看当前目录的大小: # du -sh 605M 显示指定文件所占空间: # du log2012.log 300 log2012.log 方便阅读的格式显示test目录所占空间情况:...-b:以字节为单位列出磁盘空间使用情况(系统默认以k字节为单位)。 -k:以1024字节为单位列出磁盘空间使用情况。 -c:最后再加上一个总计(系统默认设置)。...来源:https://www.runoob.com/w3cnote/linux-view-disk-space.html
交换空间是当今计算的一个共同方面,不管操作系统如何。Linux使用交换空间来增加主机可用的虚拟内存量。它可以在常规文件系统或逻辑卷上使用一个或多个专用交换分区或交换文件。...交换空间 交换空间是现代Linux系统中的第二种内存类型。交换空间的主要功能是当实际内存被填满,需要更多的空间时,用磁盘空间代替RAM内存。 例如,假设您有一个具有8GB RAM的计算机系统。...Linux计算机中的内存总量是RAM加上交换空间,称为虚拟存储器. Linux交换的类型 Linux提供了两种类型的交换空间。...这将需要时间和精力来根据您的Linux环境中的条件进行实验和进行更改。 将更多的交换空间添加到非lvm磁盘环境中。...由于已经安装了Linux的主机上对交换空间的需求发生了变化,可能需要修改为系统定义的交换空间的数量。此过程可用于任何需要增加交换空间的一般情况。它假定有足够的可用磁盘空间。
最近看有些系统并没有自动创建swap空间,对于小内存的机器来说,非常的不友好,随学习了一下如何手动创建swap的教程,随记录下学习的笔记。...Debian 8 Centos 7 查看当前系统swap是否存在以及使用情况: free –h 或 swapon –s 查看硬盘使用情况(一般/dev/vda1为挂载硬盘): df –h 创建swap空间
为了保护内核的安全,操作系统一般都限制用户进程不能直接操作内核,在32位操作系统总的地址空间4G(2^32 = 4GB),实现这个限制的方式就是操作系统将总的地址空间分为两个部分,对于Linux操作系统...高位的1G空间(0xC000 0000 - 0xFFFF FFFF)分配给内核,称为内核空间,内核程序运行在内核空间,对应的进程就处于内核态(管态)。 2....另外3G空间(0x0000 0000 - 0xBFFF FFFF)分配给用户使用,称为用户空间,用户程序运行在用户空间,对应的进程处于用户态(目态)。...Linux操作系统通过区分内核空间和用户空间的这种设计,将操作系统代码和用户程序代码分开,这样即使在某一个应用程序出错,也不会影响到操作系统,再说,Linux操作系统是多任务系统,其它应用程序不也还能运行...现代操作系统基本上都是分内核空间和用户空间的做法,来保护操作系统自身的安全性和稳定性,这也是区分内核空间和用户空间的本质。 ---- 分享是一种积极的生活态度
Linux的Namespace(命名空间)技术是一种隔离技术,常用的Namespace有user namespace, process namespace, network namespace等 在Docker...准备一台Linux机器,用到一个叫 brtcl 的命令,这个命令需要安装,如果是Ubuntu的系统,可以通过 apt-get install bridge-utils 安装;如果是Centos系统,可以通过.../bin/bash # 网桥名称 bridge=$1 # 网络命名空间 namespace=$2 # 网络命名空间对应的IP addr=$3 # 对应图中的veth(1/2) vethA=veth...和eth建立连接 sudo ip link add $vethA type veth peer name $ethA # 把veth放到网络命名空间里 sudo ip link set $vethA...netns $namespace # 给网络命名空间的veth端配置一个IP地址 sudo ip netns exec $namespace ip addr add $addr dev $vethA #
一,什么是Netlink通信机制 Netlink是linux提供的用于内核和用户态进程之间的通信方式。但是注意虽然Netlink主要用于用户空间和内核空间的通信,但是也能用于用户空间的两个进程通信。...一般来说用户空间和内核空间的通信方式有三种:/proc、ioctl、Netlink。而前两种都是单向的,但是Netlink可以实现双工通信。...) ② 用户空间可使用标准的BSD socket接口(但netlink并没有屏蔽掉协议包的构造与解析过程,推荐使用libnl等第三方库) ③ 在内核空间使用专用的内核API接口 ④ 支持多播(因此支持“...前面我们也说过,Netlink不仅可以实现用户-内核空间的通信还可使现实用户空间两个进程之间,或内核空间两个进程之间的通信。该属性为0时一般指内核。...六:内核态程序 范例一 #include #include #include #include <linux
题图摄于香港维多利亚港 不久前去了一趟香港,从北京出发,经过广州和深圳,在深圳湾口岸过境香港,停留十数日后,再乘飞机回到北京,算上隔离时间,历时超过一个月。...期间了解到国内和香港各种复杂的防疫政策,克服了不计其数的困难,用过五关斩六将来形容也不为过。 随着国内防疫措施不断放松,内地的防疫政策和香港已经相差无几,相信入境隔离政策也会逐渐放宽。...本系列文章记录了访港行程中了解到的各种规则和亲历的实际情况,对两类朋友或有较大参考价值: 需要从内地前往香港,或者从内地经香港前往国外的朋友; 欲从香港回到国内,或者从国外经过香港入境内地的朋友。...香港的防疫机制 2. 从内地或海外前往香港的步骤攻略 3. 从香港前往内地的攻略 4. 在香港做核酸指南 5. 国外归来入境隔离的经历 (持续更新中) 欢迎转发、点赞和点击“在看”。...---- 长按以下二维码,关注本公众号亨利笔记 ( henglibiji ),回复“香港”,可查阅更多关于香港的文章。
甘剑平教授 香港科学家需要对接内地科研资源 在海洋科学研究中,观测数据非常稀缺。这是源于在海洋现场收集数据于实际操作上困难重重,空间和时间上都受到很大限制。...“我从不担心在香港没有根基和人脉,只是潜心地做研究。我作为首席科学家,获得过香港研究资助局声望很高的主题研究计划4000万元港币的支持,这是香港主题研究计划资助的最大一笔海洋研究经费。”甘剑平说。...顶尖的科学家和完善的科研体制机制相辅相成,造就了香港科创的优势,但香港创新科技研究也面临着“缺粮少弹”。 就甘剑平所研究的海洋科学而言,海洋联通了世界,比如香港的水便受到珠江、南海的影响。...“因为整个香港地区并都没有布局超算系统,这让香港的海洋科学研究遇到过不少障碍,无法从事一些深层次的研究。”他说。...甘剑平告诉记者,广州较早地承担了桥梁的作用,更好促进了内地和香港的科研合作,也给想干事业的香港科学家提供了研究资金和广阔空间。
领取专属 10元无门槛券
手把手带您无忧上云