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
_一个操作系统的实现
操作系统学习记录I——Bochs安装和配置
1.概述相信不少对操作系统内核编程有兴趣的朋友或多或少都接触过于渊的《orange's
一个操作系统的实现
》,作为大三刚接触操作系统的笔者来说os内核无疑是神秘而充满吸引力的,因此在这里记录和分享一下对本书中实验操作的一些学习经历
E玖玖驷
·
2023-12-29 23:06
一次操作系统之旅
前言题目取的有些诗意了,实际上这篇文章是我读完于渊的《
一个操作系统的实现
》后对该书的总结和评价。
bazinga_dmc
·
2023-11-26 03:50
【OS课设日志】《Orange‘S:
一个操作系统的实现
》Ch5
【OS课设日志】《Orange‘S:
一个操作系统的实现
》第五章——内核雏形实验内容:在Linux下用汇编写Hello,World!
叫北方
·
2023-11-24 08:31
c语言
linux
开发语言
ubuntu
Orange‘s:
一个操作系统的实现
学习笔记3
前面几期文章Orange‘s:
一个操作系统的实现
学习笔记1:https://blog.csdn.net/weixin_42193791/article/details/123144920Orange‘s
超大青花鱼
·
2023-11-14 22:43
学习
bash
linux
Orange‘s:
一个操作系统的实现
学习笔记2
$"前言去年就开始学习Orange’s:
一个操作系统的实现
,今年记录并总结一下学习中遇到的一些问题,由于我汇编基础几乎为0,对计算机也不是很了解,所以写的这些注释和总结难免会有错误和纰漏,敬请原谅。
超大青花鱼
·
2023-11-14 22:12
学习
VMWare虚拟机启动img文件
最近在学习制作操作系统,主要跟着《30天自制操作系统》、《Orange’S:
一个操作系统的实现
》这两本书进行学习,书中编译好的img文件写入软盘进行运行,相信绝大多数人都不用这玩意了,那怎么办呢?
我要出家当道士
·
2023-11-05 21:40
开发环境搭建与使用
自制操作系统
img
虚拟机
十分钟完成的操作系统at&t汇编版本-《
一个操作系统的实现
》
以前看了《
一个操作系统的实现
》这本书,使用了nasm汇编和bochs虚拟机来编写一个“操作系统”。
快给我饭吃
·
2023-10-15 00:54
【Linux内核分析】学习笔记1:保护模式
教材老师推荐的参考阅读书籍是:于渊.Orange’s:
一个操作系统的实现
,电子工业出版社,2009毛德操,胡希明.LINUX内核源代码情景分析(上册),浙江大学出版社,2001.09保护模式(ProtectedMode
蝉鸣的夏天
·
2023-10-07 05:39
Linux内核分析学习笔记
bochs虚拟机的安装 - 动手写一个最小的操作系统环境搭建
因此选了于渊老师的书《Orange'S
一个操作系统的实现
》跟着书实战一遍。在安装bochs虚拟机过程中遇到一些问题并已解决,特记录在此。
快给我饭吃
·
2023-09-30 17:10
《
一个操作系统的实现
》windows用vm安装CentOS——从bochs环境搭建到第一个demo跑通
vm安装CentOS虚拟机带有桌面的版本。su输入密码123456。更新yum-yupdate。一般已经安装好后面这2个工具:yuminstall-ynet-toolswget。看下ip地址ifconfig,然后本地终端连接
[email protected]
输入密码即可,主要是为了复制网址方便些。大概率wgethttps://nchc.dl.sourceforge.net/projec
喂-不吃素的熊宝宝
·
2023-08-19 05:22
windows
centos
linux
一个操作系统的实现
-于渊
操作系统是处于硬件和软件之间的,所以开发操作系统其实就是按硬件的要求来实现自己的功能。即微软是按照Intel手册来做开发的。附Intel开发者手册官网:https://software.intel.com/en-us/articles/intel-sdmCPU手册:https://www.intel.com/content/www/us/en/architecture-and-technology
快给我饭吃
·
2023-08-18 00:27
Linux-0.11操作系统源码调试
学习操作系统有比较好的两种方式,第一种是跟着别人写一个操作系统出来,《操作系统真相还原》、《Orange's:
一个操作系统的实现
》等书就是教学这个的;另一种方式就是调试操作系统源码,相比第一种方式,调试源码可以更能感受真实操作系统的实现机制
chaoguo1234
·
2023-06-20 15:58
linux
运维
服务器
ubuntu
ubuntu下bochs的安装和配置
《ORANGE’S:
一个操作系统的实现
》一书中选择使用虚拟计算机Bochs进行仿真。Bochs是一个x86硬件平台的开源模拟器。它可以模拟各种硬件的配置。
CattleyaQ
·
2023-06-12 07:57
操作系统
os
ubuntu
虚拟机
【从头开始写操作系统系列】环境搭建以及第一个Hello World
参考书籍:《30天自制操作系统》川合秀实《ORANGE’S:
一个操作系统的实现
》##开发环境笔者采用以下开发环境AppleMacbookAirUbuntu12.04LTS(32bit)##读者准备毕竟是动手写一个操作系统
ly72809
·
2023-04-15 18:19
OrangeS操作系统笔记1_环境的配置与第一个系统
前言开始学习Orange’s:
一个操作系统的实现
,记录并总结一下学习中遇到的一些问题,由于我汇编基础几乎为0,对计算机也不是很了解,所以写的这些注释和总结难免会有错误和纰漏,敬请原谅。
新奥尔良乳猪
·
2022-10-13 09:24
【日拱一卒行而不辍20220919】自制操作系统
打开A20地址线-初次运行参照《ORANGE’S:
一个操作系统的实现
》以下是pm.inc1DA_32EQU4000h;32位段23DA_DPL0EQU00h;DPL=04DA_DPL1EQU20h;DPL
明天已在HiaHia
·
2022-09-25 00:03
Linux
OS
开发语言
linux
【日拱一卒行而不辍20220916】自制操作系统
Windows下利用QEMU实现HelloOS参照《ORANGE’S:
一个操作系统的实现
》汇编源码如下:boot.asmorg07c00h;wherethecodewillberunningmovax,
明天已在HiaHia
·
2022-09-25 00:32
Linux
OS
java
数据库
开发语言
Bochs源码安装及运行调试
最近在读《Orange's
一个操作系统的实现
》,开始部分介绍了虚拟机Bochs的安装及调试,本文把折腾过程做下记录。
weiwei22844
·
2020-09-17 06:43
Linux相关
系统相关
调用BIOS中断显示Hello World
参考资料:《
一个操作系统的实现
》,《Linux内核设计的艺术》(新设计团队著,也推荐一下这本书,写的是关于linux内核讲解的书,写的很好,被翻译成了繁体和英语)好的,关于下面的代码进行一下解释,虽然比较简
xiaominthere
·
2020-09-15 01:31
自己动手写操作系统之旅
1 在Bochs上运行第一个OS
09年第二版《Orange’s
一个操作系统的实现
》出版后,也将其购入。随手翻来,发现云里雾里,几年前的理解早就抛光,重读已是困难重重。既然写代码要有注释,读书亦要有注释。
河职院杨浪
·
2020-09-14 08:15
自己动手写操作系统
bochs 2.4.2 ubuntu 安装运行问题《orange's
一个操作系统的实现
》第二章 调试篇
用源码安装完后会遇到的问题:《1》运行可能碰到如下问题:Eventtype:PANICDevice:[]Message:dlopenfailedformodule'x':filenotfound这是由于在安装的时候,少安装了个bochs-x包这个包可以在http://packages.ubuntu.com/dapper/misc/bochs-x找到也可以在terminal下面输入sudoapt-g
evil_darker
·
2020-09-14 00:05
Linux
编程
如何在64位的linux系统上使用汇编和C语言混合编程
最近在看于渊的
一个操作系统的实现
,在第五章的时候汇编和C同时使用时碰到了问题:代码如下foo.s1externchoose23;;;;;thedataarea4num1stdd35num2nddd467global_start8globalmyprint91011
csid_502
·
2020-09-11 17:31
笔记:
一个操作系统的实现
第一章boot.asm文件分析
2019独角兽企业重金招聘Python工程师标准>>>分析在后面,刚学习汇编。源代码如下:org07c00hmovax,csmovds,axmoves,axcallDispStrjmp$DispStr:movax,BootMessagemovbp,axmovcx,16movax,01301hmovbx,000chmovdl,0int10hretBootMessage:db"Hello,OSWorl
weixin_33786077
·
2020-09-11 17:53
《
一个操作系统的实现
》读书笔记--第三章--保护模式
pmtest1.asm;pmtest1.asm;编译方法:nasmpmtest1.asm-opmtest1.com;==========================================%include"pm.inc";常量,宏,以及一些说明org0100hjmpLABEL_BEGIN[SECTION.gdt];GDT;段基址,段界限,属性LABEL_GDT:Descriptor0,
要饭真得好难
·
2020-09-10 22:06
操作系统
《
一个操作系统的实现
》笔记(7)--输入/输出系统(I/O)
键盘很简单,只要设置8259A芯片的键盘端口的handler处理函数就可以了。键盘敲击的过程键盘编码器,用于监视键盘的输入,并把适当的数据传送给计算机。键盘控制器,用来接受和解码来自键盘的数据,并与8259A以及软件等通信。敲击键盘包含两个含义:动作和内容。敲击键盘所产生的编码被称作扫描码。当8048检测到一个键的动作后,会把相应的扫描码发送给8042,8042会把它转换成相应的Scancode1
Felixabcd
·
2020-08-24 06:23
操作系统
ORANGE’S:
一个操作系统的实现
-chap4之:软盘结构(磁头号和起始扇区的计算方法)
;----------------------------------------------------------------------------;函数名:ReadSector;----------------------------------------------------------------------------;作用:;从第ax个Sector开始,将cl个Sector读入
花火后的天空
·
2020-08-23 17:58
linux
操作系统内核Hack:(三)引导程序制作
但真正开始之前,我们还要做出一个选择,在之前的讨论中我们曾说过,有两种学习和制作引导程序和操作系统内核的路线:1)《Orange’s:
一个操作系统的实现
》书中的路线;2)Li
weixin_30293079
·
2020-08-22 03:18
《Orange'S:
一个操作系统的实现
》学习笔记(三)--bochs
由于命令直接安装的bochs可能没有调试功能,所以需要下载bochs源码并编译安装。下载地址:http://sourceforge.net/projects/bochs/files/bochs/下载最新的2.6版本的bochs进行编译安装:$cd~/bochs-2.6/$./configure--enable-debugger--enable-disasm$make$sudomakeinstall
stepbystep
·
2020-08-20 20:41
操作系统
oranges
一个操作系统的实现
笔记二
第二章节保护模式继续鉴于实模式下只有1M的寻址能力,所以要在保护模式下验证他能否读写大内存的地址。1.跳出保护模式:具体步骤如下:1.先把各个寄存器设置到一个适合回到实模式的值。2.置位cr0的PE位为0.3.跳回到实模式。4.恢复实模式下各个寄存器包括sp的值。5.关闭A20地址线。6.开中断。7.回到dos。具体怎么读写大内存地址,我就不说了,反正是可以的,也不难。LDT:要注意的地方:1.申
xf807989
·
2020-08-20 20:40
orange一个操作系统的实现
Orange's:
一个操作系统的实现
Descriptor 3宏详解
补充:关于GDT/LDT、段选择子和段描述符的解释GDT/LDT:GDT/LDT是段描述符表,里面定义了每个段的段描述符的界限和属性,而段描述符的基址是在代码段中初始化的。其中,LDT是局部描述符表,LDT在GDT中也有段描述符,LDT还有其对应的选择子,除此以外,LDT的功能和GDT一样。段选择子:段选择子是用来寻址段描述符的,即段描述符定义在GDT中,由段选择子将其赋值给段寄存器。如果TI被置
依然笨拙
·
2020-08-20 20:31
一个操作系统的实现
Orange's
一个操作系统的实现
--Bochs遇到的问题
1.Message:dlopenfailedformodule‘x’:filenotfound这是未安装bochs-x的缘故解决方案:sudoapt-getinstallbochs以后接着安装bochs-x.sudoapt-getinstallbochs-x2.bx_dbg_read_linear:physicalmemoryreaderror(phy=0x0000000000000000,lin
会打代码的扫地王大爷
·
2020-08-20 20:31
自制操作系统
orange's
一个操作系统的实现
--学习过程 第三章:c 什么是LDT
现在,你对于LDT是不是已经有了大致的了解了呢?简单来说,它是一种描述符表,与GDT差不多,只不过它的选择子的TI位必须置为1。在运用它时,需要先用lldt指令加载ldtr,lldt的操作数是GDT中用来描述LDT的描述符。上例的LDT很简单,只有一个代码段。不难想像,我们还可以在其中增加更多的段,比如数据段、堆栈段等,这样一来,我们可以把一个单独的任务所用到的所有东西封装在一个LDT中,这种思想
高云朋
·
2020-08-20 17:11
orang's
于渊著
《Orange’S
一个操作系统的实现
》分析之IPC
1.IPC消息转发机制在Orange操作系统的IPC中,实现了一个系统任务(task_sys)用于进程之间的消息转发,它主要的工作就是:1.接收任意进程发送的消息;2.识别消息;3.根据消息特性转发到特定进程;其实,很显然,图1中的主角是task_sys,它主要的工作就是实现了“消息转发”。这一点很好理解。其源代码如表1所示。表1.Task_sys源PUBLICvoidtask_sys(){MES
dengwan4248
·
2020-08-20 15:09
《orange's:
一个操作系统的实现
》学习过程中问题的解决(持续更新)
开发平台:Ubuntu16.04.164位1.第五章代码chapter5/f中代码的编译与链接的问题(书P239)此时如果按照书上的编译与链接过程:nasm-felf-okernel.okernel.asmnasm-felf-ostring.ostring.asmnasm-felf-okliba.okliba.asmgcc-c-fno-builtin-ostart.ostart.cld-s-Tte
CurryXu
·
2020-08-20 14:11
linux内核
Orange's
一个操作系统的实现
---心得与体会
后来读研之后,马上入了一本,不过此时该书已经是第二版,叫《Orange’s
一个操作系统的实现
》,却因自己畏难和拖延不决,一直到今天,马上要毕业了从把此书匆匆过了一遍。
weixin_30622181
·
2020-08-20 14:34
在ORANGES的基础上改进操作系统
暑期项目是以于渊《ORANGES:
一个操作系统的实现
》为基础对其进行改进,博主和bug争斗很久终于勉强完成答辩,为了不让学弟学妹和我当初拿到任务时一样一头雾水,这里记录下我的项目完成过程。
Qiaozian
·
2020-08-20 14:11
一个操作系统的实现
:第四篇——让操作系统走进保护模式
参考链接:FAT16文件系统简介:https://blog.csdn.net/menghnhhuan/article/details/4270168引导扇区:https://baike.baidu.com/item/%E5%BC%95%E5%AF%BC%E6%89%87%E5%8C%BA/7444926?fr=aladdin主引导记录:https://baike.baidu.com/item/%E
goodcrony
·
2020-08-17 12:18
使用Bochs运行程序
1.概述看《
一个操作系统的实现
》的时候,书中的第一个列子就是写了一个简单的代码,然后用bochs去仿真。然后觉得很有必要自己亲自动手去实现体验一下,以便加深理解。
XiaZhanglong
·
2020-08-17 11:29
linux
《
一个操作系统的实现
》 Ubuntu bochs 错误
最近看《
一个操作系统的实现
》,在Ubuntu下虚拟机下安装bochs时候出现了N多的错误,现把解决办法收集记录以下分类:ASSEMBLYLinux2011-08-0423:22396人阅读评论(0)收藏举报
weixin_33843409
·
2020-08-05 20:48
一个操作系统的实现
:第三篇——保护模式(Protect Mode)
目录汇编知识:GDT(GlobalDescriptorTable)全局描述符表GDTR全局描述符寄存器段选择子(Selector)描述符(Descriptor)LDTR局部描述符寄存器TR任务寄存器门描述符:进入保护模式的主要步骤:保护模式下寻址的机制:一致代码段:非一致代码段:特权级:TSS结构:什么叫做“页”:PDE和PTE:中断描述符表(InterruptDescriptorTable)外部
goodcrony
·
2020-08-05 13:25
逻辑地址 线性地址
于渊的这本《Orange‘S
一个操作系统的实现
》是一本很不错的操作系统书籍,本科课堂上讲的都是那种理论的东西,做做题还是可以的,但是太抽象的东西终归是不好的,尤其对于工科来说,工科就是要实践。
honpey
·
2020-08-04 07:28
操作系统内核
自己动手写操作系统之Windows7下使用Bochs搭建工作环境
最近在看于渊的《
一个操作系统的实现
》,即《自己动手写操作系统》第2版。就工作环境的搭建步骤或方法进行总结。
SecondLife-LMY
·
2020-08-04 01:43
操作系统
操作系统安全深入
Linux内核ORANGE'S:
一个操作系统的实现
Linux内核设计与实现_第三版Linux内核设计的艺术Linux内核完全注释V3.0书签版30天自制操作系统.川合秀实系统安全原理篇计算机安全原理与实践黑客攻防技术宝典
Fitz_Lee
·
2020-07-30 00:08
FreeRTOS开发实战_操作系统中的任务调度
在
一个操作系统的实现
中,实现上下文的切换有两种情况:执行一个系统调用系统滴答定时器(SYSTICK)中断,轮转需要。
孤独的小丑
·
2020-07-29 21:02
FreeRTOS
物联网
AIOT纵论
30天自制操作系统 (
一个操作系统的实现
)
10分钟搞出一个简单操作系统1准备工作安装虚拟机(VMware-workstation),下载好虚拟机安装包之后,点击下一步安装就行。在虚拟机(VMware-workstation)中安装一个系统,笔者安装的是windows10(当然win7,win8,Linux都可以)。汇编编译器NASM,下载并安装。2用汇编写一个显示“Hello,OSworld”的boot.asm文件org07c00h;告诉
小风筝0010
·
2020-07-27 18:27
操作系统
在ubuntn16中安装和运行bochs2.6.11
今天闲来无事,把于渊的大作《
一个操作系统的实现
》的第一章又仔细看了一遍.这里把实验过程记录下来,供后来者参考.主要参考了https://www.cnblogs.com/lfri/p/11489223.html
laomai
·
2020-07-16 01:22
操作系统
bochs
nasm汇编中的宏定义
最近看orange’s
一个操作系统的实现
,发现nasm中的宏汇编不是很清楚,在此详细记录一下256%macroDescriptor3258dw%1&0FFFFh;段基址1257dw%2&0FFFFh;段界限
我打打江南走过过
·
2020-07-15 20:57
操作系统
一个操作系统的实现
:第七篇——输入/输出系统
键盘敲击的过程:在键盘中存在一枚叫做键盘编码器(KeyboardEncoder)的芯片,它通常是Intel8048以及兼容芯片,作用是监视键盘的输入,并把适当的数据传送给计算机。另外,在计算机主板上还有一个键盘控制器(KeyboardController),用来接收和解码来自键盘的数据,并与8259A以及软件等进行通信。敲击键盘有两个方面的含义:动作和内容。动作可以分解成三类:按下、保持按住的状态
goodcrony
·
2020-07-09 16:58
自己动手写操作系统——开发环境搭建
本文参考于渊老师写的《OrangeS:
一个操作系统的实现
》一书。
Q_C
·
2020-07-09 06:16
操作系统
《
一个操作系统的实现
》读书笔记-- 第一章--最小的“操作系统”
一、最简单的“操作系统”最最简单的“操作系统”就是一个最最简单的引导扇区(BootSector)。虽然它不具有任何功能,但是它却能够直接在裸机上运行,不依赖其他软件。一个引导扇区是512个字节,并且以0xAA55为结束标识的扇区。下面就是那个最最简单的引导扇区。org07C00h;告诉编译器程序加载到07C00处movax,csmovds,axmoves,axcallDispStr;调用显示字符串
要饭真得好难
·
2020-07-09 04:49
操作系统
自己动手写操作系统
C程序设计语言
上一页
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
其他