nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
CPU内存 CPU-L1cache-L2cache-memery-disk
逻辑地址空间 抽象、隔离、保护、共享、虚拟化(临时放入disk)
内存管理 程序重定向,分段,分页,虚拟内存,按需分叶虚拟内存
地址空间和地址生成 C程序用变量表示地址,汇编还是用符号,机器码就开始使用逻辑地址了,CPU的MMU中有一段区域来映射逻辑地址到物理地址
约束程序的内存 程序只可以访问他自己的内存,当他访问其他地方的时候,操作系统应该使用安全检测
内存碎片 外部碎片,是分配单元之间的内存碎片 内部碎片,已经分配给了应用程序,但是应用程序没法使用它
连续内存分配 程序启动的时候要分配,运行的时候要分配
阅读全文
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
操作系统的启动 DISK中放操作系统,BIOS是基本的IO系统,检测外设,Bootloader能够加载OS,BIOS从CS段寄存器;IP指令寄存器开始执行,然后BIOS会POST(加电自检),然后BIOS找到bootloader加载Bootloader,并传递控制权,然后Bootloader找到OS,读到内存吧控制权交给OS
操作系统的中断、系统调用、异常 系统调用是应用程序主动想操作系统发出服务请求, 异常是来源于不良的应用程序的非法指令 中断是来自不同硬件设备到额计时器和网络的中断 我们不能让应用程序直接访问外设,这不安全,另外OS可以提供更好的借口,通用可移植
中断处理 保存现场、查表、中断处理、清楚中断标志、恢复现场
阅读全文
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
操作系统是什么 是一个控制软件,能管理应用程序,为应用程序提供服务,杀死应用程序,能够分配资源,能够管理外部设备,承上启下,硬件之上,应用程序之下,
Kernel CPU调度,物理内存管理,虚拟内存管理,文件系统管理,中断处理和设备驱动
Kernel特征 并发,共享(1在一个时间点,只有一个程序能够访问2同时访问),虚拟(利用多到程序设计技术,让每个用户都觉得有一个计算机为他服务),异步(程序走走停停,而不是一直走)
阅读全文
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
创建工作空间 我们先创建一个工作空间myGit,在其中创建一个项目project,植入两个文件a.txt和b.txt,并分别写入”a”和”b”
123456cd ~ mkdir -p myGit/projectcd myGit/projecttouch a.txt b.txtecho "a" >> a.txtecho "b" >> b.txt
初始化git 紧接着我们用git初始化这个项目
1git init
阅读全文
nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial
为什么我们需要设计模式 有一类问题会在软件设计中反复出现,我们能够提出一种抽象的方法来解决这类问题,这就是设计模式。
设计模式的七大原则
单一职责原则
接口隔离原则
依赖反转原则
里氏替换原则
开闭原则
迪米特法则
合成复用原则
阅读全文