![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
夏天不热 冬天不冷
IC X86 CPU
email: 1540524015@qq.com
展开
-
Ubutnu 编译内核基本步骤
在一台机器上安装ubutnu系统,安装完成以后可以在终端输入 uname -r 查看内核版本。在内核官网 www.kernel.org 下载需要升级的内核。一般下载下来的打包内核文件如 xxx.tar.xz 此时需要解压文件,一次在终端输入命令 xz -d xxx.tar.xz ; tar -xf xxx.tar 。为编译内核安装所依赖的库,在终端输入命令 sudo apt-get ins原创 2017-06-04 15:13:45 · 1132 阅读 · 0 评论 -
X86 CPU 漏洞 Meltdown 原理及google攻击代码
meltdown的原理其实很简单了,访问一个虚拟地址要走page table walk, 现在一般都是4级页表了,页的属性中有一位标志是区分是内核页还是用户页的。程序执行在用户模式下是不允许访问内核地址的原因就是,用户态使用用户态下的页完成虚拟地址向物理地址的转换,同理内核态使用内核态的页。那好了,meltdown发生的窗口期就是因为乱序执行,当用户态非法访问一个内核态的地址时,还没来得及做页属性...原创 2018-08-25 23:20:26 · 1720 阅读 · 0 评论 -
linux kernel 学习中, #define ICPU(model){ X86_VENDOR_INTEL, 6, model, X86_FEATURE_ANY, } 的用法
define ICPU(model) { X86_VENDOR_INTEL, 6, model, X86_FEATURE_ANY, }可以当做是自定义的数据模型,可以当做数组但是不能用数组方式调用,可以当做结构体用来为结构体赋值,等等。 比如:#include <stdio.h>#define X86_VENDOR_INTEL 100 #define X86_FEATURE_ANY 1000 #原创 2017-07-20 20:51:57 · 409 阅读 · 0 评论 -
编译后的程序是如何在操作系统(linux)中运行的,虚拟地址空间到实际物理内存的访问
Linux中,每个进程通过一个task_struct结构体描述,每个进程地址虚拟空间通过一个mm_struct描述,c语言中每个段空间通过vm_area_struct描述,关系如下, 当执行一个程序时,linux创建一个进程,通过sys_exec()将该程序的内容(程序编译后产生的是虚拟地址空间)映射到进程的虚拟地址空间中而不是物理内存中,生成一组vm_area_st原创 2017-06-25 18:20:56 · 2861 阅读 · 1 评论 -
Linux 内核空间地址映射 高端内存 总结
内核空间映射到物理内存是从最低地址0x00000000开始,如下图所示 假设内核地址空间的简单线性地址转换关系为:物理地址 = 虚拟地址– 0xC0000000,内核虚拟地址空间对应的物理内存范围0x00000000~0x40000000,只有1G,显然不合理。 内核地址空间划分3部分:ZONE_DMA(16M)、ZONE_NORMAL(16~896M)和ZO原创 2017-06-25 18:07:47 · 3464 阅读 · 0 评论 -
linux 进程调度类型 总结
进程按照调度类型可以分为: SCHED_FIFO:先进先出的实时进程,如果没有其它更高优先级的可运行实时进程,就可以一直使用cpu运行。对于这种进程,时间片长度是没有意义的。 SCHED_RR:时间片轮转的实时进程,所具有相同优先级(且都是当前情况下优先级最高)的SCHED_RR以时间片轮转的方式公平使用cpu。 SCHED_NORMAL:时间片轮转的普通进程,时间片原创 2017-06-25 17:59:52 · 2141 阅读 · 0 评论 -
Linux中硬链接和软链接的区别
硬链接:给一个文件副本同时建立两者之间的链接关系,修改其中一个,与其链接的文件同时被修改。 软连接:符号链接,对源文件建立的类似于windows下的快捷方式,当删除源文件时,该链接无效;当删除该链接时,不影响源文件。 具体关系模型如下: 从上图中可得:硬链接与源文件的inode一致,软链接不一致;对源文件删除,会导致软链接不可用,而硬链接不受影响;对源原创 2017-06-25 17:51:49 · 241 阅读 · 0 评论 -
Linux内核同步的方法 总结
Linux内核同步的方法 总结原创 2017-06-25 17:41:40 · 625 阅读 · 0 评论 -
MBR 和 GPT分区的区别
Bios + MBR启动操作系统,系统支持的硬盘容量最大只有2TB,(MBR是为32位系统设计的,其硬盘寻址的扇区地址为32位,硬盘的每个扇区为512字节,故232 * 512Byte= 2TB )。 系统可以采用UEFI(Unified ExtensibleFirmware Interface) + GPT(GUID Partition Table)方式使得操作系统硬盘支持到2TB以上原创 2017-06-25 17:20:59 · 436 阅读 · 0 评论 -
Linux操作系统启动过程
Intel 80x86系列的CPU可以分别在实时模式和保护模式下运行,最开始启动运行在16位实时模式。 通过硬件逻辑设计上电瞬间使CS的值置为0xFFFF,IP置为0x0000,使得CS:IP指向0xFFFF0位置即BIOS代码区。 BIOS完成自检工作,并在内存中建立中断向量表和中断服务程序。CPU会接收一个 int 0x19中断,通过中断向量表找到中断服务程序的入口地址,执原创 2017-06-25 17:09:27 · 275 阅读 · 0 评论 -
ubutnu linux 下升级python版本,以2.x升级到3.x为例
ubutnu linux 下升级python版本,以2.x升级到3.x为例原创 2017-06-25 15:25:12 · 1941 阅读 · 5 评论 -
intel bug - L1 Terminal Fault
L1 Terminal Fault 这个bug 详情和处理方式, 详情请参考linux kernel 官方文档: https://www.kernel.org/doc/html/latest/admin-guide/l1tf.html 其中介绍该bug的主要一段话: L1 Terminal Fault is a hardware vulnerability which allows unpr...原创 2018-10-07 23:06:00 · 738 阅读 · 0 评论