Ⅰ 内存管理:一文读懂linux内存组织结构及页面布局
1、内存是什么?
1) 内存又称主存,是 CPU 能直接寻址的存储空间,由半导体器件制成;
2) 内存的特点是存取速率快,断电一般不保存数据,非持久化设备;
2、内存的作用
1) 暂时存放 cpu 的运算数据
2) 硬盘等外部存储器交换的数据
3) 保障 cpu 计算机的稳定性和高性能
1、linux 内存地址空间 Linux 内存管理全貌
2、内存地址——用户态&内核态
3、内存地址——MMU 地址转换
4、内存地址——分段机制
1) 段选择符
更多Linux内核视频教程文档资料免费领取后台私信【 内核 】自行获取。
内核学习网站:
Linux内核源码/内存调优/文件系统/进程管理/设备驱动/网络协议栈-学习视频教程-腾讯课堂
2) 分段实现
5、内存地址——分页机制(32 位)
6、用户态地址空间
7、内核态地址空间
8、进程内存空间
内存管理算法 ——对讨厌自己管理内存的人来说是天赐的礼物
1、内存碎片
1) 基本原理
2) 如何避免内存碎片
2、伙伴系统算法——组织结构
1) 概念
2) 外部碎片
3、伙伴系统算法——申请和回收
1) 申请算法
2) 回收算法
3) 条件
4、如何分配 4M 以上内存?
1) 为何限制大块内存分配
2) 内核中获取 4M 以上大内存的方法
5、伙伴系统——反碎片机制
1) 不可移动页
2) 可回收页
6、slab 算法——基本原理
1) 基本概念
2) 内部碎片
7、slab 分配器的结构
详细参考:
经典|图解Linux内存性能优化核心思想
8、slab 高速缓存
1) 普通高速缓存
2) 专用高速缓存
9、内核态内存池
1) 基本原理
2) 内核 API
10、用户态内存池
1) C++ 实例
11、DMA 内存
1) 什么是 DMA
2) DMA 信号
out of memory 的时代过去了吗?no,内存再充足也不可任性使用。
1、内存的使用场景
2、用户态内存分配函数
a) 如果当前连续内存块足够 realloc 的话,只是将 p 所指向的空间扩大,并返回 p 的指针地址。这个时候 q 和 p 指向的地址是一样的
b) 如果当前连续内存块不够长度,再找一个足够长的地方,分配一块新的内存,q,并将 p 指向的内容 到 q,返回 q。并将 p 所指向的内存空间删除
3、内核态内存分配函数
4、malloc 申请内存
5、缺页异常
6、用户进程访问内存分析
7、共享内存
1) 原理
2) shm 接口
1、C 内存泄露
2、C 野指针
3、C 资源访问冲突
4、STL 迭代器失效
错误示例:删除当前迭代器,迭代器会失效
正确示例:迭代器 erase 时,需保存下一个迭代器
5、C++ 11 智能指针
(1)原理分析:
(2)数据结构:
(3)使用方法:
6、C++ 11 更小更快更安全
六、 如何查看内存
可以通过 cat /proc/slabinfo 命令查看
可以通过 /proc/sys/vm/drop_caches来释放
Ⅱ win10和linux双系统的安装教程
很多入门的小伙伴都想体验一把LInux的快感,但是windows上面的数据又删除不得,无奈只好放弃。我通过网上的一些教程,稍微了整理了一下win10和linux双系统的安装教程。
win10和linux双系统的安装教程
1首先第0步,在磁盘的尾巴步压缩出一个大概50G的空间,超大预算,压缩出来的空间在这里不用建立成新分区,待后面备用,图不懂可网络。
第一步,当然是下载linux ubuntu14.x的镜像了,这个小伙伴可以网络,去正规的网站现在。
2第二步,下载Ultraiso软碟通工具,下载完成后,插入U盘,使用Ultraiso把LINUX UBUNTU14.X这个iso文件【写入硬盘影像】到U盘,千万记住备份U盘里面的数据,写入过程中请不要让电脑休眠,以免损坏U盘。写完后会有相应成功提示,成功后点击返回即可。
3第三步,备份电脑重要数据,详细 方法 请参照网络。提示:重要数据包括文档,存档,项目文件,软件账户名密码,收费软件的信息等等。备份电脑的选项在控制面板--文件历史纪录可以找到。
4第四步,呵呵,设置 BIOS 。
笔者这里用的是联想G40 30 win10 X64 UEFI+GTP,关机后,按电脑左面的小按钮就能进入BIOS,大多数 笔记本 是F12 F11 F10 F2什么什么的,有的电脑可能需要注意按Fn键。。没事= =在重启界面乱按。进入BIOS SETUP后,关闭secure boot,secure boot一定要关闭。设置好了,其他的自己在看着设置设置(制作好的U盘是支持UEFI引导的,设置USB启动为首选启动项),然后这里一定要保存在退出啊,笔者这里是选择了Exit saving chages。下面这张图网络来的,借鉴借鉴。
5第五步,这里提供一下,boot启动选项(一般开机按F多少就会看见这个,自己乱试试),这里面可以不用设置U盘位第一启动盘而直接选择从U盘引导。
6设置完毕,能从U盘启动了。(会一点电脑知识的以上基本自己已经解决。)从U盘启动后,进入一个选择界面(如果出现什么读取内存错误,然后直接跳入LINUX图形界面说明BIOS设置有问题,这里不确定能不能正确安装)。进入选择界面后,第一个选项是进入U盘linux live,直接在U盘里面体验Linux而不安装,第二个选项是安装linux,第三个自己看,如果选择第二个选项的话是进入图形界面直接安装linux。但是笔者在这里选择第二个选项安装时出现了问题,就是在分完区后电脑黑屏,可能是因为显卡的问题。(当然还有些电脑是一丛U盘启动直接进入图形系统,如果是这样请先选择中文语言,然后点击试用用UBUNTU,每台电脑,每个版本系统都是有差别的,但大同小异。)因此这里我们首先进入U盘linux系统。选择第一个,进入系统后,一切都能正常运行。
7就是在这个界面卡死的!
8到这一步,我们就要开始安装LINUX到电脑上面了,首先点击桌面上的 安装UBUNTU(确保安装过程中已经连接上网络,无网络的话我不知道会发生什么。一般使用直接有线连接,而不是PPPOE(宽带)或者WLAN。)
(如果桌面上有很多盘符,果断右键--卸载)
9看图所示,然而这两步并不是重点。
10这一步是重点之一,选择其他选项,自己来创建挂载点(挂载点就是分区的意思)
这里的才是最重的点,,,装双系统的话,这里是有很多分区的,自己要注意区分,你自己分出来的那50GB在这里就能被看见了。
接下来我们需要设置许多分区(挂载点)(/boot,/,home,swap交换空间,/usr,等等)
第一点设置boot挂载点,参考信息如下,是用来存放系统引导的挂载点,大小200MB左右,我分了400MB.
第二点设置交换空间swap,说直白点,硬盘与内存互动的空间,虚拟内存的意思。设置为内存大大小的2倍。
设置“ / ”挂载点,大小随你,默认目录,分个8GB差不多,50GB的请分10-15G
设置/home用户挂载点,大小10GB,我这里设置了5GB
其余的空间我全部分给/usr了,空间大的话,其他的建议都给个几个GB(其他包括/var等等上main没有提及的),具体干什么用的请网络。
安装启动引导器的设备选择/boot对应的sda号,然后点击下面的现在安装按钮就可以了
点击继续,双系统这里格式化是不会影响到windows里面的东西的,因为这里用的是分出来的分区。
进行相关设置。
等待漫长的安装过程。
21到这一步差不多已经完成了安装,重启的时候会进入grub2引导界面,让你选择windows boot management 还是Ubuntu.当然,这一步很漫长,你需要喝几杯咖啡。
Ⅲ linux系统的认证有哪些
Linux认证指获得专业Linux培训后通过考试得到的资格。目前国际上广泛承认的Linux认证有LinuxProfessionalInstitute(简称为LPI)、SairLinux和GNU、Linux+和RedHatCertifiedEngineer。
Linux Professional Institute(LPI)
就Linux团体所关注的程度来看,LPI认证计划受到了最为广泛的支持。LPI已经先期推出了Linux ProfessionInstitute Certified-Level 1(简称为LPIC-1)认证计划,不久的将来还会按预定计划推出第2和第3级认证。为了获得LPIC-1证书,你必须通过两门各自长达90分钟的考试—--101 (LPI General Linux,Part1)和102 (LPI General Linux,Part2)。LPI的LPIC—1的应试对象主要是有至少1年Linux工作经验的系统管理员。
Sair Linux 和 GNU
同LPI一样,Sair提供了三种级别的认证计划;
Level 1——Sair Linux & GNU Certified Administrator(LCA)
Level 2 —-- Sair Linux & GNU Certified Engineer(LCE)
Level 3 ---- Master Sair Linux & GNU Certified Engineer(MLCE)
第1级才是得到完全开发的Sair认证项目,这一点也和LPI一样。
Linux+
CompTIA主办的Linux+认证计划是最新进入Linux认证市场的。该计划于2001年9月21日正式推出,已经在Linux从业人员和业内引起了广泛的关注。几乎所有的主要认证出版商都撰写了针对Linux+认证的考试参考书,众多的IT 培训中心都在准备Linux+认证计划了。
同CompTIA推出的其他带“+”号的认证一样,Linux+资格证书只需要通过一场考试即可获得(VUE和Prometric考试中心举办此类考试),一旦你获得了Linux+资格证书,证书就终生有效。Linux+考试价格是190美元,考试采用多选题形式,时长120分钟,所覆盖的内容很多都是和Sair以及LPI认证完全一样的,但难度稍有降低。
LPI和Sair认证计划的考试对象是具有相当经验的Linux网络和系统管理员,而Linux+认证则主要面向只有半年左右的Linux体验、想获得基本Linux技术资格的个人。
Red Hat Certified Engineer
Linux+ 代表了低级的Linux认证计划,而高级的Linux认证长期以来则几乎完全是Red Hat CertifiedEngineer(RHCE)认证计划的天下。RHCE是该领域最具挑战性的认证考试,所以它也是最有价值的Linux认证。但也是最贵的,全套课程费用为2,498美金,也可单独做认证测验,费用为749 美金。