12 2022 档案
摘要:一.前言 编译器优化介绍: 由于内存访问速度远不及CPU处理速度,为提高机器整体性能, 1)在硬件上: 引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并不一定严格按照顺序执行,没有相关性的指令可以乱序执行,以充分利用CPU的指令流水线,提高执行速度。 2)软件一级的优化:
阅读全文
摘要:ASLR,全称为 Address Space Layout Randomization,地址空间布局随机化。该技术在 kernel 2.6.12 中被引入到 Linux 系统,它将进程的某些内存空间地址进行随机化来增大入侵者预测目的地址的难度,从而降低进程被成功入侵的风险。当前 Linux、Wind
阅读全文
摘要:标准C库函数 #include <stdlib.h> 原型 : int atoi( const char *str ); 功能:将字符串str转换成一个整数并返回结果。参数str 以数字开头,当函数从str 中读到非数字字符则结束转换并将结果返回。 例如:int num = atoi("1314.0
阅读全文
摘要:【getpid/getppid系统调用】 功能描述: getpid返回当前进程标识,getppid返回父进程标识。 用法: #include <sys/types.h> #include <unistd.h> pid_t getpid(void); pid_t getppid(void); 例子:
阅读全文
摘要:assert()是一个调试程序时经常使用的宏,在程序运行时它计算括号内的表达式,如果表达式为FALSE (0), 程序将报告错误,并终止执行。如果表达式不为0,则继续执行后面的语句,它的作用是终止程序以免导致严重后果,同时也便于查找错误。 所需头文件:#include <assert.h> 报告错误
阅读全文
摘要:今天想从github仓库拉取Operating System: Threee Pieces 的教程代码到本地运行 结果迟迟拉不过来,卡在那里。猜测是网络问题 ping 223.5.5.5 正常 ping www.bing.com 也正常 说明网络是没问题的。 ping github.com 卡住长时
阅读全文
摘要:之前为了能够在Win10宿主机里通过ssh连接archlinux虚拟机,添加了一块仅主机网卡,但是从宿主机访问虚拟机是通了,却发现虚拟机archlinux却无法连接外网了,也就是说只有一块NAT网卡时可以连接因特网,添加了另一块仅主机网卡后就无法连外网了。ping外网ip既没有反应,也不报超时,百思不得其解。
一通查询之后才发现,是因为两块网卡都有默认路由,而新加的用来内网ssh连接虚拟机的网卡(Host Only)有更高的路由优先级。所有的网络数据包默认发给高优先级的纯内网网关了,导致无法连接外网。
阅读全文
摘要:最近在学习docker及虚拟化相关知识,为了深入理解虚拟化技术,补看操作系统的书(Operating Systems: Three Easy Pieces),需要用到单核linux虚拟机做实验,但是在虚拟机里运行一个桌面linux太耗资源,运行不带桌面的archlinux是比较好的选择(镜像体积小,节省流量哈哈)。 但是命令行版本无法使用virtaulbox的增强功能,即不能在宿主机和虚拟机之间复制粘贴,于是想起可以通过ssh访问虚拟机的方式来操作,即通过配置,使得Win10宿主机可以通过SSH连接Virtualbox虚拟机里的Archlinux。为了专心在操作系统上,精力不被分散,文中没有研究网卡和相关网络配置的具体原理,以后再补啦~
阅读全文