OS_03_boot_interrupt_exception_syscall
03-Boot Interrupt Exception Syscall
相关图
BIOS
计算机体系结构概述
CPU |———————————————————— 总线 | | I/O设备 内存
计算机内存和硬盘布局
内存
ROM只读存储 <- 加电后,CPU加载执行的第一条指令
RAM随机访问存储
在加电时,CPU完成初始化后,处于实模式,20位地址空间得到1M的寻址;
此时使CS左移四位,加上当前的指令指针寄存器的值,即得到要加载的第一条指令地址。PC = 16*CS + IP,其中CS:IP=0xf000:fff0;
BIOS提供的功能
BIOS只能在x86的实模式下进行访问;
基本输入输出程序:从磁盘读写数据,从键盘读取数据,输出到显示器上;
INT 10h - 字符显示
INT 13h - 磁盘扇区读写
INT 15h - 检测内存大小
INt 16h - 键盘输入
系统设置信息;
开机后自检程序;
系统自启动程序等
依据以上的功能以及提供的信息,将磁盘中的加载程序加载到内存中;
将加载程序从磁盘的引导扇区(51 ...
static_program_analysis_06_pointer_analysis
Pointer Analysis
Contents
Motivation
Introduction to Pointer Analysis
Key Factors of Pointer Analysis
Concerned Statements
Motivation
via CHA
void foo(){ Number n = new One() int x = n.get();}interface Number{ int get();}class Zero implements Number{ public int get(){ return 0; }}class One implements Number{ public int get(){ return 1; }}class Two implements Numebr { public int get(){ return 2; }}
存在如上的示例代码,如果用C ...
OS_02_lab_prepare
02-lab-prepare
实验目标
原理知识的补充和完善
操作系统设计的全局观
适合不同层次学生的需求
包括:
外设:I/O管理、中断管理
内存:虚拟内存管理、页表、缺页处理、页替换算法
CPU:进程管理、调度器算法
并发:信号量实现、同步互斥应用
存储:基于链表/FAT的文件系统
实验概述
OS启动、中断与设备管理
物理内存管理
虚拟内存管理
内核线程管理
用户进程管理
处理器调度
同步互斥
文件系统
环境搭建
实验环境:vitualbox + ubuntu 1404 x86
源码阅读工具:understand(Windows)
源码文档自动生成工具:Doxygen
代码比较工具:diff、meld
编译环境:gcc, make, Binutils
真实/虚拟运行环境:X86或Qemu
调试工具:Qemu+或GDB
IDE工具:Vscode
ubuntu
https://pan.baidu.com/s/11zjRK
understand
百度云盘
doxygen
sudo apt-get install doxygensudo apt-get install doxy ...
Taichi_02_Metaprogramming_and_Object_Oriented
Metaprogramming & Object-Oriented-Programming
Taichi_01_First_Taichi_Program
First Taichi Program
Taichi - “Hello world”
Data
Computation
Visualization
Init
import taichi as titi.init(arch="gpu") # 计算硬件选择# ti.init(ti.cpu)# ti.init(ti.gpu)def foo1(): print("this is a normal python function")@ti.kernel # 修饰函数,在taichi作用域中def foo2(): print("this is a taichi function")
得到结果:
> python -u "d:\K1ose\code\Taichi\sample.py"[Taichi] version 1.0.1, llvm 10.0.0, commit 1c3619d9, win, python 3.10.2[W 05/04/22 13:51:54.435 2008 ...
Taichi_00_introduction
00-Introduction
Games201
最新课程主页:https://yuanming.taichi.graphics/teaching/2020-games201/ (本页面不再更新)
课件下载(讲义与代码):https://forum.taichi.graphics/t/topic/272
课程回放地址:https://www.bilibili.com/video/BV1ZK411H7Hc
论坛:https://forum.taichi.graphics/
大纲
Introduction
Hello World: Basic in Taichi
Metaprogramming and object-oriented programming
Advanced data types and data structures
Debugged and optimizing your Taichi code
Procedural Animation
Render 01: basis in ray tracing
Render 02: implement your first ra ...
OS_01_summary
01-Summary
课程概述
预备知识
计算机组成原理
C语言与汇编
数据结构
参考书
William Stallings, Operating System-Internals and Design Principles(8th Edition), Prentice Hall,2011
操作系统——精髓与设计原理(第七版)
成绩评定
在线练习(10min)
参与教学过程
8个实验
考试:期中考试 + 期末考试
教学安排
操作系统结构
中断与系统调用
内存管理
进程及线程
处理机调度
同步互斥
文件系统
I/O子系统
什么是操作系统
操作系统是:
没有公认的精确定义;
一个控制程序
一个资源管理器
控制程序执行过程,防止错误和计算机的不当使用
管理各种计算机软硬件资源
提供访问计算机软硬件资源的高效手段
解决资源访问冲突,确保资源公平使用
操作系统软件的组成:
命令行接口shell
图形用户结构gui
操作系统内部kernel
内核的特征:
并发
共享
虚拟
异步
为什么学习,如何学习
综合课程:
程序设计语言
数据结构
算 ...
OS_prepare
Prepare
Info
Piazza
Piazza访问地址:https://piazza.com/tsinghua.edu.cn/spring2015/30240243x
本课程Piazza注册方法见石墨文档:https://shimo.im/docs/dxWCCphVvhg9JjCw/read
Course
https://www.xuetangx.com/course/THU08091000267/10322317
Gitbook
https://chyyuu.gitbooks.io/ucore_os_docs/content/
Question & Answer
https://chyyuu.gitbooks.io/os_course_qa/content/
Source Code
https://github.com/chyyuu/os_kernel_lab/tree/x86-32
Source code
从github的名为os_kernel_lab的repo中的master分支取出;
mkdir ucoregit initgit remote add origin ...
static_program_analysis_05_interprocedural_analysis
Interprocedural Analysis
Contents
Motivation
Call Graph Construction (CHA)
Interprocedural Control-Flow Graph
Interprocedural Data-Flow Analysis
Motivation
Problem of Intraprocedural Analysis
过程内分析,要如何分析函数调用?
最保守的假设:在常量传播检测(constant propagation)中,需要假设未知的变量不是常量,因此丢失了精度。
void foo(){ int n = ten(); addOne(42);}int ten(){ return 10;}int addOne(int x){ int y = x + 1; return y;}int main(){ foo()}
对于foo()函数而言,结果应该是n=10,由于函数内的分析无法判断ten()返回的值是什么,一次你只能保守假设ten()返 ...
ctf_susctf2022_happytree
SUSCTF2022-happytree
信息收集
checksec
Arch: amd64-64-littleRELRO: Full RELROStack: Canary foundNX: NX enabledPIE: PIE enabled
用ida分析libc.so.6,查看libc版本
glibc-2.27(1.2)
分析
使用ida64分析程序;
main()
void __fastcall __noreturn main(__int64 a1, char **a2, char **a3){ __int64 v3; // rax int choice; // [rsp+0h] [rbp-10h] BYREF unsigned int data; // [rsp+4h] [rbp-Ch] unsigned __int64 v6; // [rsp+8h] [rbp-8h] v6 = __readfsqword(0x28u); init_0(); while ( 1 ) { while ...