![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统
玛了个玛卡巴卡
这个作者很懒,什么都没留下…
展开
-
Linux远程连接树莓派操作
打开hosts文件vi /etc/hosts输入服务器的IP与主机名,之后可以用主机名代替IP进行输入生成SSH密钥和公钥ssh-keygen -t rsa将SSH公钥上传到Linux服务器ssh-copy-id remote_user@remote_server复制本地文件到远程scp local_file remote_user@host:remote_folder复制本地文件夹到远程scp –r local_folder remote_user@host:remote_folder原创 2022-05-31 19:10:47 · 403 阅读 · 0 评论 -
写一个shell脚本的基本步骤
一、新建一个文件 test.sh#使用vi创建一个文本文件test.sh,扩展名为sh(sh代表shell),扩展名并不影响脚本执行,只是用来提示自己这是一个shell脚本vi test.sh#!/bin/bashecho "Hello World !"#! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell二、把文件权限修改为可执行文件chmod +x ./test.sh三、执行脚本./test.sh四、如果想要在任何路径下运行该shell脚本原创 2022-05-31 19:08:39 · 9863 阅读 · 0 评论 -
xv6调试
终端1 切换目录到xv6目录下终端1 输入make qemu-gdb,可以看到端口号<tcp::25502>终端2 输入riscv64-unknown-elf-gdb kernel/kernel终端2 输入target remote localhost:端口号终端2 输入file 文件路径,例如file user/_primes终端1 输入命令运行终端2中的文件终端2 设置断点并单步运行gdb调试命令b 断点位置 #设置断点,断点位置可以是函数名、行数start原创 2022-03-02 23:27:02 · 962 阅读 · 0 评论 -
gcc参数
-E 预处理 .c --> .i-S 预处理和编译 .i --> .S-c 预处理,编译和汇编 .S–>.o-o 连接 .o --> .elf原创 2022-03-02 22:19:59 · 150 阅读 · 0 评论 -
6.S081 第一章 操作系统接口
系统调用描述int fork()创建一个进程,返回子进程的PIDint exit(int status)终止当前进程,并将状态报告给wait()函数。无返回int wait(int *status)等待一个子进程退出; 将退出状态存入*status; 返回子进程PID。int kill(int pid)终止对应PID的进程,返回0,或返回-1表示错误int getpid()返回当前进程的PIDint sleep(int n)暂停n个时钟节拍...原创 2022-03-01 09:18:10 · 652 阅读 · 0 评论 -
《计算机系统要素》 第十二章 操作系统
操作系统的作用是用来衔接计算机的硬件系统和软件系统,本书的OS用软件封装了不同的硬件服务,在某种意义上来说最简单的OS就是语言的标准程序库Jack操作系统一共有八个类组成:Math提供基本的数学运算String实现String数据类型以及字符串的相关操作Array数组的构造和清除函数Output提供在屏幕上打印文本的服务Screen提供在屏幕上绘制图形的服务,和Output都利用到了图形学的知识Keyboard提供从标准键盘上读取输入的服务Memory提供直接访问宿主平台的主原创 2022-02-27 22:08:40 · 236 阅读 · 0 评论 -
《计算机系统要素》 第二章 布尔运算
算数逻辑单元原创 2022-01-15 22:29:26 · 210 阅读 · 0 评论 -
《计算机系统要素》 第四章 机器语言
机器语言对底层程序进行编码,从而形成一系列机器指令,机器语言的设计目标是能直接运行在指定的硬件平台上,并能对这个平台进行全面操控 机器语言是整个计算机体系中意义最深奥的接口——也是软件和硬件相接的中间线,既可以将机器语言看作编程工具,也可以将其看作硬件平台内部不可分割的一部分4.1 背景知识 4.1.1 机器 机器语言利用处理器和寄存器来操控内存 4.1.2 语言 机器语言程序是一系列二进制编码,鉴于二进制码晦涩难懂,可以利用助记符来表示二进制指令,并使用文本处理程序将符号解析为其内含原创 2022-01-17 23:59:08 · 687 阅读 · 0 评论 -
《计算机系统要素》 第十一章 编译器II:代码生成
解决思路一、首先构件符号表模块分析Jack代码中所有符号的分类(class,subroutine,static,field,argument,var)如果是变量(static,field,argument,var),判断在这句代码中是定义还是使用如果是定义,需要向符号表中添加该变量,如果是使用,需要用符号表获取该变量的分类及索引号二、按照测试的步骤逐步用“生成VM代码”模块取代已有的“生成XML代码”模块Seven测试运算表达式(不带变量)、do语句和return语句十进制-二进制转换原创 2022-02-27 21:34:05 · 167 阅读 · 0 评论 -
《计算机系统要素》 第六章 汇编编译器
6.1 背景知识符号化的语言称为汇编,翻译程序称为汇编编译器,汇编编译器对每个汇编命令的所有部分进行解析,将每个部分翻译成它对应的二进制码,并将生成的二进制码汇编成真正能被硬件执行的二进制指令。编写汇编编译器的复杂性在于:允许汇编程序使用符号来代指内存地址,我们希望汇编器来管理这些用户自定义的符号,将他们解析成物理内存地址,一般采用符号表来完成这个任务。6.1.1 符号符号在汇编程序中通常有两个用途:变量程序员可以使用符号的变量名称,编译器会“自动地”为其分配内存地址标签在程序中用符号来标原创 2022-01-23 23:45:40 · 560 阅读 · 0 评论 -
《计算机系统要素》 第三章 时序逻辑
计算机不仅要能计算值,而且还需要存取数据,因而芯片必须配备记忆单元来保存数据,这些记忆单元是由时序芯片组成。DFF(in, out) //D触发器Bit(in, load, out) // 1比特位寄存器Register(in[16], load, out[16]) // 16比特位寄存器RAM8(in[16], address[3], load, out[16]) // 8-寄存器RAM64(in[16], address[6], load, out[16]) // 64-寄存器PC(in[1原创 2022-01-16 13:56:35 · 322 阅读 · 0 评论 -
《计算机系统要素》 第八章 虚拟机II:程序控制
程序控制流命令函数调用命令原创 2022-02-08 21:38:07 · 732 阅读 · 0 评论 -
《计算机系统要素》 第九章 高级语言
Jack语言规范详述一、语法要素空格和注释符号保留字常数标识符二、程序结构Jack中的基本编程单元是类三、变量四种类型的变量:成员字段静态变量局部变量参数变量数据类型:基本类型intbooleanchar对象类型数组(Array)字符串(Strings)四、语句letifwhiledoreturn五、表达式常数变量名this返回值为非空类型的子程序调用一元运算符做前缀的表达式“表达原创 2022-02-09 12:02:16 · 425 阅读 · 0 评论 -
《计算机系统要素》 第十章 编译器I:语法分析
第一阶段:字元转换器第二阶段:语法分析器原创 2022-02-27 21:13:19 · 100 阅读 · 0 评论 -
《计算机系统要素》 第五章 计算机体系结构
芯片CPU从指令内存取出指令instruction从数据内存取出数据inM存入数据内存outM、writeM、addressM存入指令内存pcreset决定CPU设置pc=0指令内存ROM32K获取指令地址pc输出指令instruction屏幕接口Screen功能与一个8K的16-位RAM类似键盘接口Keyboard输出当前物理键盘上按下的键的代码数据内存Memory0-16383为16KRAM16384-24575为8K屏幕内存映像24576为键盘内存映原创 2022-01-20 23:24:38 · 202 阅读 · 0 评论 -
《计算机系统要素》 第七章 虚拟机I:堆栈运算
VM翻译器原创 2022-02-08 12:19:17 · 791 阅读 · 0 评论 -
《计算机系统要素》 第一章 布尔逻辑
逻辑门电路原创 2022-01-15 21:42:29 · 352 阅读 · 0 评论 -
Linux常用命令
登录到远程服务器ssh 用户名@jlulinux.cn -p 22修改密码passwd退出系统exit logout ctrl+D原创 2021-09-05 22:25:43 · 883 阅读 · 0 评论 -
shell脚本cat写入文件不转义
1、使用\消除文件中元字符的含义cat > .profile << EOFecho "Hello World"echo "Current Date and Time:"\`date\`EOF如果不用\消除`的含义,shell会在运行该脚本时执行date命令,并将当前时间写入文件,.profile文件中的内容是echo "Hello World"echo "Current Date and Time:"2021年 11月 10日 星期三 16:46:22 CST2、在分原创 2021-11-10 16:49:14 · 2304 阅读 · 0 评论 -
30天自制操作系统Day8
一、鼠标解读激活鼠标后,鼠标发送的第一个按键编码bootpack.c节选struct MOUSE_DEC { //解读鼠标所需要的变量 unsigned char buf[3], phase; //缓冲区,鼠标阶段标志 int x, y, btn; //x和y方向移动信息,鼠标按键状态};int mouse_decode(struct MOUSE_DEC *mdec, unsigned char dat){ if (mdec->phase == 0) { /* 等待鼠标的0xf原创 2021-11-25 19:46:38 · 424 阅读 · 0 评论 -
30天自制操作系统Day7
第六天已经能够处理键盘中断了,但是还不能区分不同的按键,所以今天的第一个任务是把所按键的编码在画面上显示出来,并通过队列缓冲区来加快中断速度,最后从鼠标接收数据一、获取按键编码int.c节选#define PORT_KEYDAT 0x0060void inthandler21(int *esp){ struct BOOTINFO *binfo = (struct BOOTINFO *) ADR_BOOTINFO; //bootpack.h中定义了画面模式结构体BOOTINFO和ADR_BOO原创 2021-11-23 21:46:08 · 389 阅读 · 0 评论 -
30天自制操作系统Day6
一、分割源文件graphic.c关于描画的处理 dsctbl.c关于描述表的处理 bookpack.c其他处理 | | |graphic.obj dsctbl.obj bookpack.obj | | | ————————————————————————————— | bookpack.b原创 2021-11-23 11:02:28 · 1665 阅读 · 0 评论 -
30天自制操作系统Day5
GDT(global segment descriptor table)为了使操作系统能够同时运行多个程序,需要对内存进行分段,每一个段的起始地址都看作0来处理,为了保证程序能正常运行,就必须从物理内存中找到各个逻辑段的存放位置,为此,为每个进程建立一张段映射表,简称“段表”。每个段对应一个段表项,段表项纪录了如下信息:段的大小段的起始地址段的管理属性每个段表项的长度固定,为8个字节,段表项的具体信息如下:Segment Descriptor(段描述符):Base(基地址):一个32位原创 2021-11-22 23:28:20 · 313 阅读 · 0 评论 -
30天自制操作系统Day4
C语言指针和数组的理解char *p;最好的理解是这行代码声明了一个地址变量p,p占4字节,但是只知道p是指针变量是不够的,对于地址变量还需要知道p的地址类型,这里的p是char类地址,也就是这块地址是用来存放1字节的数据的。char p[4];这行代码与上面的意思基本相同,声明了一个数组就是声明了一个char类地址常量p,同时占据了包括该地址变量的十个char型内存,p+1就是在p的基础上加1(一个char),也就是第二个char变量的位置。char p[4][5];对于二维数组,p[原创 2021-11-21 15:03:46 · 417 阅读 · 0 评论 -
30天自制操作系统Day3
一、汇编语言指令JC(jump if carry)如果进位标志(carry flag)是1的话就跳转,进位标志用来表示有没有进位,但在CPU的标志中,它是最简单易用的,所以在其他地方也经常用到,可以用来报告BIOS函数调用是否有错JNC(jump if not carry)如果进位标志是0的话就跳转JAE(jump if above or equal)大于或等于时跳转JBE(jump if below or equal)小于或等于时跳转JB(jumo if below)小于时跳转二、BIOS中断原创 2021-11-17 23:17:19 · 1031 阅读 · 0 评论 -
windows常用命令
chdir #显示当前工作目录原创 2021-11-16 23:27:50 · 71 阅读 · 0 评论 -
30天自制操作系统Day 2
关于make.exe和Makefilemake是GNU项目组的人开发的一个工具,利用make,我们可以将大型的开发项目分解成为多个更易于管理的模块,make 会在当前目录下找名字叫“Makefile”或“makefile”的文件,makefile定义了一个文件的依赖关系,makefile就像Shell脚本一样,其中可以执行操作系统的命令。...原创 2021-11-17 17:52:05 · 582 阅读 · 0 评论