摘要:参考 进程间通信IPC (InterProcess Communication) https://www.jianshu.com/p/c1015f5ffa74
阅读全文
摘要:生产者与消费者模型 代码如下: 参考:https://saucer-man.com/backend_development/19.html 1 #include <stdio.h> 2 #include <pthread.h> 3 #include<semaphore.h> 4 5 sem_t em
阅读全文
摘要:1 基础知识 运行一个C++程序,要经历两个步骤:编辑代码 + run。 #include <iostream> using namespace std; int main() { cout << "hello world!\n"; return 0; } 但这个run又可以分为如下几个步骤: 1)
阅读全文
摘要:查看一个函数功能的方法:在终端框内键入:man 函数名 例如:man fork 1 fork函数作用 创建一个子进程 2 需要包含的头文件 #include <unistd.h> 3 函数声明 pid_t fork(void); 4 返回值 成功时,父进程返回子进程的进程ID号;子进程返回0。 失败
阅读全文
摘要:1 80386CPU内部寄存器 80386共有34个寄存器,可分为7类,如下图所示。 1.1 通用寄存器 1.2 指令指针和标志寄存器 1.3 控制寄存器 1.4 段寄存器 1.5 系统地址寄存器 1.6 调试寄存器 1.7 测试寄存器 2 寄存器的功能 EAX 是"累加器"(accumulator
阅读全文
摘要:1 C语言代码 1 #include <stdio.h> 2 #include <unistd.h> 3 4 int main() 5 { 6 if(!fork()){while(1)printf(“A”);} 7 if(!fork()){while(1)printf(“B”);} 8 wait()
阅读全文
摘要:1 shell定义 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。 Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。 我的理解是对于是对于Linux操作系统,就是Teminal界面,如下所示。 对于Windows操作系统
阅读全文
摘要:1 GCC是什么 GCC(GNU Compiler Collection,GNU编译器套件)是由GNU开发的编译器。 2 简单编译 程序示例 1 //test.c 2 #include <stdio.h> 3 int main(void) 4 { 5 printf("Hello World!\n")
阅读全文
摘要:1 GDT GDT(Global Descriptor Table)全局描述符表,又叫段描述符表。 下图是段描述符表的一个表项,可以看到每个表项有8个字节。 在整个系统中,只有一张GDT表,GDT可以被放在内存的任何位置,但CPU必须知道GDT的入口。 GTDR寄存器便是存放GDT的入口地址。 GD
阅读全文
摘要:1 代码 修改bootsecet.s,代码如下。原本的bootsect.s代码很长,但完成第一个功能,只需如下的21行代码。 1 entry _start 2 _start: 3 mov ah,#0x03 4 xor bh,bh 5 int 0x10 6 mov cx,#11 7 mov bx,#0
阅读全文
摘要:1 问题的由来 在学习操作系统引导启动程序部分,看到寻址模式由实模式切换到保护模式,不知道它们二者有何区别。 2 实模式 对于8086/8088这类16位处理器,寄存器都是16位的。 而8086/8088CPU有20根地址总线,即寻址空间可以达到220 = 1M。 然而16位的寄存器只能组合出216
阅读全文