E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
6.828
MIT
6.828
JOS学习笔记8. Exercise 1.4
Lab1Exercise4阅读关于C语言的指针部分的知识。最好的参考书自然是"TheCProgrammingLanguage"。阅读5.1到5.5节。然后下载pointers.c的代码,并且编译运行它,确保你理解在屏幕上打印出来的所有的值是怎么来的。尤其要重点理解第1行,第6行的指针地址是如何得到的,以及在第2行到第4行的值是如何得到的,还有为什么在第5行打印出来的值看起来像程序崩溃了。答:首先编
fatsheep9146
·
2016-02-26 12:00
MIT
6.828
JOS 环境配置
MIT
6.828
JOSLab1记录这学期刚好在学操作系统课程,课余时间也比较充足,所以着手开始做鼎鼎大名的MIT
6.828
操作系统课程的Lab。
Tommylwp
·
2016-02-26 08:03
JOS
MIT
6.828
JOS学习笔记5. Exercise 1.3
Lab1Exercise3设置一个断点在地址0x7c00处,这是bootsector被加载的位置。然后让程序继续运行直到这个断点。跟踪/boot/boot.S文件的每一条指令,同时使用boot.S文件和系统为你反汇编出来的文件obj/boot/boot.asm。你也可以使用GDB的x/i指令来获取去任意一个机器指令的反汇编指令,把源文件boot.S文件和boot.asm文件以及在GDB反汇编出来的
fatsheep9146
·
2016-02-25 13:00
MIT
6.828
JOS学习笔记5. Exercise 1.3
Lab1Exercise3设置一个断点在地址0x7c00处,这是bootsector被加载的位置。然后让程序继续运行直到这个断点。跟踪/boot/boot.S文件的每一条指令,同时使用boot.S文件和系统为你反汇编出来的文件obj/boot/boot.asm。你也可以使用GDB的x/i指令来获取去任意一个机器指令的反汇编指令,把源文件boot.S文件和boot.asm文件以及在GDB反汇编出来的
fatsheep9146
·
2016-02-25 13:00
MIT
6.828
JOS学习笔记4. Lab 1 Part 2.1: The Boot Loader
Part2:TheBootLoader对于PC来说,软盘,硬盘都可以被划分为一个个大小为512字节的区域,叫做扇区。一个扇区是一次磁盘操作的最小粒度。每一次读取或者写入操作都必须是一个或多个扇区。如果一个磁盘是可以被用来启动操作系统的,就把这个磁盘的第一个扇区叫做启动扇区。这一部分介绍的bootloader程序就位于这个启动扇区之中。当BIOS找到一个可以启动的软盘或硬盘后,它就会把这512字节的
fatsheep9146
·
2016-02-25 12:00
飞龙的计算机公开课推荐
UCBCS61a主页中文版教材数据结构·算法斯坦福CS106bUCBCS61b普林斯顿Algs4MIT6.006GateLectures算法和数据结构系统nand2tetrisCMU15-213视频笔记MIT
6.828
飞龙
·
2016-01-16 00:00
公开课
计算机科学
MIT
6.828
JOS学习笔记6. Appendix 1: 实模式(real mode)与保护模式(protected mode)
在我们阅读bootloader代码时,遇到了两个非常重要的概念,实模式(realmode)和保护模式(protectedmode)。首先我们要知道这两种模式都是CPU的工作模式,实模式是早期CPU运行的工作模式,而保护模式则是现代CPU运行的模式。但是为什么现代CPU在运行bootloader时仍旧要先进入实模式呢?就是为了实现软件的向后兼容性不得已才这样的。下面我们分别看下这两种工作模式的基本原
fatsheep9146
·
2016-01-09 14:00
【xv6学习之番外篇】保护
本文源自:https://pdos.csail.mit.edu/
6.828
/2014/readings/i386/s06_01.htm(Intel80386ReferenceProgrammer'sManual
woxiaohahaa
·
2015-12-27 21:00
【xv6学习之番外篇】内存管理
本文源自:https://pdos.csail.mit.edu/
6.828
/2014/readings/i386/c05.htm#fig5-1 (Intel80386ReferenceProgrammer'sManual
woxiaohahaa
·
2015-12-26 22:00
MIT
6.828
JOS学习笔记3. Exercise 1.2
这篇博文是对Lab1中的Exercise2的解答~Exercise2:使用GDB的'si'命令,去追踪ROMBIOS几条指令,并且试图去猜测,它是在做什么。但是不需要把每个细节都弄清楚。答:在这里我们将尽可能的去分析每一条指令,由于题目中说我们只需要知道BIOS的几条指令在做什么就够了,所以我们也会尽可能的去分析,由于能力有限,这里面有很多问题还没有解决,希望大家谅解。以后有机会会尽可能的把没分析
fatsheep9146
·
2015-12-26 16:00
MIT
6.828
JOS学习笔记2. Lab 1 Part 1.2: PC bootstrap
Lab1Part1:PCbootstrap我们继续~PC机的物理地址空间这一节我们将深入的探究到底PC是如何启动的。首先我们看一下通常一个PC的物理地址空间是如何布局的: 这张图仅仅展示了内存空间的一部分。第一代PC处理器是16位字长的Intel8088处理器,这类处理器只能访问1MB的地址空间,即0x00000000~0x000FFFFF。但是这1
fatsheep9146
·
2015-12-26 16:00
MIT
6.828
JOS学习笔记1. Lab 1 Part 1: PC Bootstrap
Lab1:BootingaPCPart1:PCBootstrap介绍这一部分知识的目的就是让你能够更加熟悉x86汇编语言,以及PC启动的整个过程,而且也会首次学习使用QEMU软件来仿真xv6操作系统,并且配合GDB对操作系统的运行进行调试。开始学习X86汇编语言由于x86汇编语言在我们这节实验中扮演了非常重要的角色,所以MIT官方为我们提供了一个关于汇编语言的参考资料"004.pcasm-book
fatsheep9146
·
2015-12-22 22:00
MIT
6.828
JOS学习笔记0. 写在前面的话
MIT的操作系统课程
6.828
是一门被广泛好评的入门课程。它最重要的特点就是它实践第一的教学原则。在这门课程中会涉及到非常丰富的实验,也会有非常多
fatsheep9146
·
2015-12-20 19:00
关于学习MIT
6.828
操作系统课程的记录
课程描述:
6.828
传授关于操作系统的基本知识。
·
2015-11-13 17:01
操作系统
关于学习MIT
6.828
操作系统课程lab1记录
今天把第一课的实验过一遍,然后看了一下前512字节的bootloader的代码。对bios的int0x10 软中断服务程序进行了一点实验。整个过过程遇到些问题,记录一下,以免忘了没有地方找! 1:在编译lab下代码时遇到的问题: lib/printfmt.c:42:对‘__udivdi3’未定义的引用 lib/printfmt.c:50:对‘__umoddi3’未定义的引用
·
2015-11-13 16:42
操作系统
MIT
6.828
JOS系统 lab2
MIT
6.828
LAB2:http://pdos.csail.mit.edu/
6.828
/2014/labs/lab2/LAB2里面主要讲的是系统的分页过程,还有就是简单的虚拟地址到物理地址的过程。
fang92
·
2015-08-19 21:31
operator
system
[置顶] 资源向导之 JOS 计划 #持续更新中# MIT
6.828
JOS计划#持续更新中#update:2016.01.01(有同学遇到困难会发邮件给我。但是有一部分会是前面已经完成的lab没有做好,而影响了后面的lab。所以提出相关问题时,还一定要确保之前做过的lab完全正确,且透彻的理解。不然。。没法聊啊)童鞋,上网要科学上网,做lab也要科学的做.之前我一上来就做实验,很多资料都不知道.现在打算重新来过方法: 0.xv6源码不要用MIT官
u011368821
·
2015-04-20 18:00
JOS
Implement a Shell by yourself -- MIT xv6 shell
ImplementaShellbyyourself--MITxv6shell这个其实是作为
6.828
的一个小课堂作业...着重分析构建思想和过程,具体代码实现去github可以找到.https://github.com
u011368821
·
2015-04-19 02:00
shell
System
operating
JOS
自制操作系统--(9)
handout地址:http://pdos.csail.mit.edu/
6.828
/2011/lec/x86
hao707822882
·
2014-10-06 11:00
自制操作系统
自制操作系统--(6)内存(2)
接下来做part2,先上一张开启分页后的地址变换图:(完整的图在http://pdos.csail.mit.edu/
6.828
/2011/lec/x86_translation_and_registers.pdf
hao707822882
·
2014-10-06 10:00
自制操作系统
MIT
6.828
Fall 2012 Lab 1: Booting a PC
开通这个博客的初衷就是为了锻炼书面表达能力,在此鼓励下自己,即使写起来很费劲,但是还是得硬着头皮写啊~再说这个
6.828
lab,才第一个lab就已经体会到涉及到的知识非常多,要想理解需要看很多各个方面的资料
copica
·
2014-07-22 15:00
MIT6.828
lab1
MIT
6.828
main.c文件分析
#include #include /*这是一个简单粗略的bootloader,它唯一的工作就是 从硬盘的第一个扇区启动格式为ELF的内核镜像 硬盘布局 这个程序(包括boot.S和main.c)组成了bootloader, 它应该存储在硬盘的第一个扇区 第二个扇区存储着内核映像 内核映像必须为ELF格式的 启动步骤 当CPU启动时,它加载BIOS到内存中并且执行BIOS BIOS程序
xiaocainiaoshangxiao
·
2014-04-04 18:00
Boot
elf
JOS
MIT6.828
main.c
MIT
6.828
boot.S文件分析
#include #StarttheCPU:switchto32-bitprotectedmode,jumpintoC. #TheBIOSloadsthiscodefromthefirstsectoroftheharddiskinto #memoryatphysicaladdress0x7c00andstartsexecutinginrealmode #with%cs=0%ip=7c00. 启动
xiaocainiaoshangxiao
·
2014-03-28 17:00
汇编
分析
JOS
boot.S
MIT6.828
JOS学习笔记(六)
接下来做part2,先上一张开启分页后的地址变换图:(完整的图在http://pdos.csail.mit.edu/
6.828
/2011/lec/x86_translation_and_registers.pdf
ROger__wonG
·
2013-03-19 17:00
bochs下如何加载和调试jos内核的过程:
I.Bochs下编译和运行Jos内核http://pdos.lcs.mit.edu/
6.828
/2007/labs/lab1/lab1.tar.gz下载Lab1所需内核tar解压sudoln-s/usr
jiary5201314
·
2012-10-24 16:00
美国MIT大学用于教授操作系统开发的OS
美国MIT大学用于教授操作系统开发的OShttp://pdos.csail.mit.edu/
6.828
/2011/xv6.html
cmk128
·
2012-10-12 17:00
Cosmos--基于C#的操作系统
ShawntheR0ck写道"不论从MIT开放课程
6.828
操作系统工程(OperatingSystemEngineering)还是实际工程中的Unix-like系统,使用C语言和少量的汇编已经是铁律一般的工程原则
blackhat Amom
·
2011-09-06 01:00
OS
MIT-
6.828
-lab1.1
6.828
Fall2007Lab1:BootingaPC1.简介这个实验被分为三个部分。
ju136
·
2011-08-04 00:00
汇编
assembly
扩展
语言
features
X86
[MIT
6.828
] LAB4 PART A
Exercise1.Implementround-robinschedulinginsched_yield()asdescribedabove.Don'tforgettomodifysyscall()todispatchsys_yield().修改kern/sched.c文件的sched_yield()函数//Chooseauserenvironmenttorunandrunit.voidsche
davelv
·
2011-02-22 15:00
操作系统
[MIT
6.828
] LAB4 PART A
Exercise1.Implementround-robinschedulinginsched_yield()asdescribedabove.Don'tforgettomodifysyscall()todispatchsys_yield().修改kern/sched.c文件的sched_yield()函数//Chooseauserenvironmenttorunandrunit.voidsche
davelv
·
2011-02-22 15:00
[MIT
6.828
] LAB4 PART A
Exercise 1.Implement round-robin scheduling in sched_yield() as described above. Don't forget to modify syscall() to dispatch sys_yield(). 修改kern/sched.c文件的sched_yield()函数 // Choose a user environme
talin2010
·
2011-02-22 15:00
数据结构
C++
c
C#
J#
MIT OS 3. Some Tips @ Lab1
MITOS课程主页:http://pdos.csail.mit.edu/
6.828
/2010/Lab1主要是关于计算机启动和栈的一些知识。
yunhuang2010
·
2011-01-25 15:00
c
汇编
OS
扩展
UP
2010
MIT OS 2. Boot and Stack @Lab1
MITOS课程主页:http://pdos.csail.mit.edu/
6.828
/2010/这部分比较简单,按照主页上的指示去做就可以了。
yunhuang2010
·
2011-01-25 11:00
c
OS
任务
output
2010
MIT OS 1. Tools and soft
课程主页:http://pdos.csail.mit.edu/
6.828
/2010环境配置:MIT的JOS实验采用Git作为版本管理软件。而我们只需要在本地(自己电脑)做实验。
yunhuang2010
·
2011-01-20 10:00
OS
gcc
测试
git
tools
64bit
MIT OS 0.Begin
课程主页:http://pdos.csail.mit.edu/
6.828
/2010/ 主页上有实验需要的
yunhuang2010
·
2011-01-20 10:00
框架
脚本
ubuntu
OS
NetWork
linux内核
[MIT
6.828
] LAB3总结
LAB3:Q1.Whatisthepurposeofhavinganindividualhandlerfunctionforeachexception/interrupt?(i.e.,ifallexceptions/interruptsweredeliveredtothesamehandler,whatfeaturethatexistsinthecurrentimplementationcould
davelv
·
2010-12-22 17:00
function
汇编
struct
user
null
structure
[MIT
6.828
] LAB3总结
LAB3: Q1.What is the purpose of having an individual handler function for each exception/interrupt? (i.e., if all exceptions/interrupts were delivered to the same handler, what feature that exists in
talin2010
·
2010-12-22 17:00
数据结构
编程
C++
c
C#
[MIT
6.828
]LAB2 Challenge 总结
Challenge1:大页机制的实现没有在代码中实现,写了个步骤供参考:0、先把预定义的PGSIZE之类的宏都更改为与大页相匹配的情况。1、由于页大小变成了4M,所以要修改从代码,要内核4M处加载。3、page_init()中内存布局也会发生对应变化,低端4M保留给实模式和IO映射,然后4M-8M是内核代码数据,8M-16M可以用来放置页目录以及物理页面数据结构,其他空闲。4、用于页面映射的操作的
davelv
·
2010-12-02 17:00
list
struct
command
null
insert
Parameters
[MIT
6.828
]LAB2 Challenge 总结
Challenge1:大页机制的实现没有在代码中实现,写了个步骤供参考:0、先把预定义的PGSIZE之类的宏都更改为与大页相匹配的情况。1、由于页大小变成了4M,所以要修改从代码,要内核4M处加载。3、page_init()中内存布局也会发生对应变化,低端4M保留给实模式和IO映射,然后4M-8M是内核代码数据,8M-16M可以用来放置页目录以及物理页面数据结构,其他空闲。4、用于页面映射的操作的
talin2010
·
2010-12-02 17:00
设计模式
数据结构
C++
c
C#
[MIT
6.828
]LAB2 Exercise & Question总结
E1:Inthefilekern/pmap.c,youmustimplementcodeforthefollowingfunctions. boot_alloc() page_init() page_alloc() page_free()staticvoid*boot_alloc(uint32_tn,uint32_talign){externcharend[];void*v;if(
davelv
·
2010-11-28 12:00
list
struct
table
null
insert
reference
[MIT
6.828
]LAB2 Exercise & Question总结
E1:Inthefilekern/pmap.c,youmustimplementcodeforthefollowingfunctions.boot_alloc()page_init()page_alloc()page_free()staticvoid*boot_alloc(uint32_tn,uint32_talign) { externcharend[]; void*v; if(boot
talin2010
·
2010-11-28 12:00
数据结构
REST
[MIT
6.828
] LAB1中VBE图形界面测试总结
看到红色的Challenge就想挑战一把,于是搞了下VESA图形模式的编程。科普知识:什么是VBE?VBE的全称是VESABIOSExtension。什么是VESA?VESA的全称是VideoElectronicsStandardsAssociation即视频电子标准协会,是由代表来自世界各地的、享有投票权利的超过165家成员公司的董事会领导的非盈利国际组织。VESA致力于开发、制订和促进个人计算
talin2010
·
2010-11-04 22:00
设计模式
编程
C++
c
C#
[MIT
6.828
] LAB1中VBE图形界面测试总结
看到红色的Challenge就想挑战一把,于是搞了下VESA图形模式的编程。科普知识:什么是VBE?VBE的全称是VESABIOSExtension。什么是VESA?VESA的全称是VideoElectronicsStandardsAssociation即视频电子标准协会,是由代表来自世界各地的、享有投票权利的超过165家成员公司的董事会领导的非盈利国际组织。VESA致力于开发、制订和促进个人计算
davelv
·
2010-11-04 22:00
测试
float
图形
extension
Standards
math.h
[MIT
6.828
]LAB1输入输出TAB字符的若干问题及总结
LAB1给代码中的'/t'的处理很简陋,直接把'/t'替换为5个空格,这和我们平时习惯有很大不同,所以要改造一下。1、在kern/console.ccga_putc()函数中,可以看到'/t'case分支,把这个分支替换为如下代码:case'/t':do{cons_putc('');}while(crt_pos%TAB_SIZE!=0);break;其中的TAB_SIZE我将其定义在kern/co
davelv
·
2010-11-02 17:00
c
OS
buffer
character
终端
2010
[MIT
6.828
]LAB1输入输出TAB字符的若干问题及总结
LAB1给代码中的'\t'的处理很简陋,直接把'\t'替换为5个空格,这和我们平时习惯有很大不同,所以要改造一下。1、在kern/console.ccga_putc()函数中,可以看到'\t'case分支,把这个分支替换为如下代码:case'\t': do{ cons_putc(''); }while(crt_pos%TAB_SIZE!=0); break;其中的TAB_SIZE我将其定义
talin2010
·
2010-11-02 17:00
C++
c
C#
OS
[MIT
6.828
] 调试虚拟机OS时断点设置问题和总结
MIT
6.828
的LAB1中的内核代码中,内核段基址为0x10000000(可由kern/entry.S中的mygdt标号下的数据计算得到),这样如果一个虚拟地址是0xF010013A(kern/init.c
davelv
·
2010-10-31 00:00
虚拟机
windows
linux
汇编
OS
vb
[MIT
6.828
] 调试虚拟机OS时断点设置问题和总结
MIT
6.828
的LAB1中的内核代码中,内核段基址为0x10000000(可由kern/entry.S中的mygdt标号下的数据计算得到),这样如果一个虚拟地址是0xF010013A(kern/init.c
talin2010
·
2010-10-31 00:00
虚拟机
linux
windows
OS
vb
[MIT
6.828
]ELF文件格式
1、整体ELF文件结构看起来如下:LinkingViewExecutionView==========================ELFheaderELFheaderProgramheadertable(optional)ProgramheadertableSection1Segment1...Segment2Sectionn...SectionheadertableSectionheader
davelv
·
2010-10-29 18:00
struct
header
File
table
Integer
alignment
[MIT
6.828
]ELF文件格式
1、整体ELF文件结构看起来如下:LinkingViewExecutionView ========================== ELFheaderELFheader Programheadertable(optional)Programheadertable Section1Segment1 ...Segment2 Sectionn... Sectionheadertabl
talin2010
·
2010-10-29 18:00
数据结构
linux
OS
bbs
6.828
Fall 2007 Lab1 Excercise7
Exercise7.Tracethroughthefirstfewinstructionsofthebootloaderagainandidentifythefirstinstructionthatwould"break"orotherwisedothewrongthingifyouweretogetthebootloader'slinkaddresswrong.Thenchangethelink
Hycz
·
2010-10-07 01:22
职场
load
link
Address
Address
休闲
JOS
上一页
1
2
3
4
5
6
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他