第13章程序加载和动态执行 栈的描述符段界限大小的计算123456789mov dword [ebx+0x18],0x7c00fffe ;粒度为4KB mov dword [ebx+0x1c],0x00cf9600高: 0x00cf9600低: 0x7c00fffe线性地址:0x00007c00c:1100 ->4kb,操作数32bit,limit:0xffffe 96:1001_0110_B:数据段读写向下扩展 2020-05-07 系统与底层 > x86与汇编
第11章:进入保护模式 描述符格式: 高32位 31 24 23 22 21 20 1916 15 1413 12 11 8 7 0 段基地址 24-31(8bit) G D/B L AVL 段界限(19-16 = 4bit = 1个16位) p DPL S TYPE 段基地址 23-16(8bit) 低32位: 2020-05-04 系统与底层 > x86与汇编
IA-32架构 (Intel Architecture 32-bit)概览 和 8086小总结 IA-32架构 (Intel Architecture 32-bit)概览 和 8086小总结寄存器8086 8个通用寄存器 AX BX CX DX SI DI BP SP 32bit处理器在此通用寄存器扩展到32bit EAX EBX ECX EDX ESI EDI EBP ESP 实模式下也可以使用,但是32bit寄存器的高16位不可独立使用 32bit处理器拥有自己的工作模式:保护模 2020-05-01 系统与底层 > x86与汇编
.vhd虚拟磁盘bochsdebug启动报错:ata0-0: could not open hard drive image file .vhd虚拟硬盘用于bochs启动 软开实验修改硬盘类型为flat模式,不是VPC 2020-04-27 系统与底层 > x86与汇编
《X86汇编语言:从实模式到保护模式》检测点4.2报错:FATAL:Could not read from the boot medium!System halted <x86汇编语言:从实模式到保护模式>检测点4.2报错:FATAL:Could not read from the boot medium!System halted 已经有虚拟磁盘文件并且启动顺序是第一, 错误原因: 有效的主引导扇区的最后2个字节应当是0x55和0xaa 12345678910111213141516171819mov ax,0xb800mov ds,axmov 2020-04-27 系统与底层 > x86与汇编
AIO小实例 使用同步IO和异步IO(熟悉AIO接口)的对比 来自apue 要求: 将文本的英文字符a-z和A-Zx向右偏移13个字母(不重要),命令行传入输入和输出文件路径 完成相同的事情,同步IO和异步IO的对比 同步IO 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495 2020-03-24 系统与底层 > Unix系统编程 #linux unix
Debian下cpupower设置记录 Linux内核调频知识 链接 查看当前cpu调度器 cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor查看cpu支持调度 cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors 查看当前cpu频率 cat /proc/cpuinfo | grep 2020-03-17 系统与底层 > Linux基础
apue中多文件makefile关于err_等函数重定义报错 apue中多文件makefile关于err_*等函数重定义报错原因: 守护进程这一章中多个.c文件编译,然后在模块a编译成功后,另一个模块编译报错,本书作者写的所有err_函数都报错,表明第一次定义在a,然后现在又重定义 首先以为是apue.h关于条件编译之类的错误(#ifndef #endif),于是无论如何修改头文件组织方法都不正确,(我忽略了编译器的报错是关于error函数的,我本来应该首 2020-03-15 系统与底层 > Unix系统编程 #unix
pthread_mutex_t的robust属性 mutex的robust属性 健壮属性与多个进程间共享互斥量有关 使用背景多进程共享数据块同步时,持有互斥量的进程终止时,那么其他进程会一直阻塞下去(死锁),通过robust解决进程间一个mutex导致死锁的问题 1234// 获取\设置robust属性pthread_mutexattr_getrobust(const pthread_mutexattr_t *restrict attr,in 2020-03-09 系统与底层 > Unix系统编程 #linux
深入理解条件变量(虚假唤醒) 深入条件变量pthread_cond_wait()和pthread_cond_signal()的伪实现 1234567891011121314151617181920212223242526272829303132333435pthread_cond_wait(mutex,cond) { // 保存条件变量的值 value = cond->value; // 解锁传入的已经锁住的互 2020-03-06 系统与底层 > Unix系统编程