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
Linux0.00
编译
Linux0.00
内核(《Linux内核完全剖析-基于0.12内核》)linux-0.00-041217和linux-0.00-050613
编译
Linux0.00
内核(《Linux内核完全剖析-基于0.12内核》)老早就买了一本赵炯编写的《Linux内核完全剖析-基于0.12内核》,看来前四章的原理部分,却一直没有勇气来自己动手来实践。
wangnanjun
·
2020-08-26 08:22
仿制
Linux0.00
编写拜年系统
首先看下效果源代码MakefileAS=asLD=ldCC=gccLDFLAGS=-s-x--oformatbinaryCCFLAGS=-m32-fno-picNM=nmall:ImageImage:boot.binhead.binddif=/dev/zeroof=boot.imgbs=512count=2880ddif=head.binof=boot.imgseek=1skip=128bs=51
书中玉
·
2020-08-20 08:50
linux
汇编
Ubuntu编译运行 Linux-0.00
从http://oldlinux.org/Linux.old/bochs/下载
Linux0.00
源码linux-0.00-050613.zip,并解压:解压linux-0.00-rh9.tar.gz:得到这三个文件
Raina_RLN
·
2020-07-07 11:00
调试kernel时对bios加电后过程的一些心得
这里还是拿
linux0.00
的代码来实验,制作好引导盘后启动bochs(已重新编译加了–enable-debugger–enable-disasm参数)下图是IBMPC内存的分布状况:(注意:0xA0000isthepointeraddresstotheGraphicalModeand0xB800
tianwailaibin
·
2020-06-26 19:32
Linux0.00
head.s注释
http://www.voidcn.com/article/p-newuofyn-hp.html从网上参考别的详细注释,自己增加了一点点,用与自己解惑用.code32#多任务内核程序[32]位的启动代码#包含32位模式下的初始化设置代码,时钟中断代码,系统调用中断代码和两个任务代码LATCH=11930SCRN_SEL=0x18#屏幕显示内存段选择符。#问:以下这些选择符是怎么定的值?根据段选择符
姜大伟
·
2019-12-27 08:00
linux0.00
的Makefile
多任务简单内核实例的Makefile#Makefileforthesimpleexamplekernel.AS86=as86-0-aLD86=ld86-0AS=as--32#貌似现在的操作系统,要编译,一定记得加--32,不然编译会报好多的错误LD=ldLDFLAGS=-melf_i386-Ttext0-estartup_32-s-x-Mall:ImageImage:bootsystemddbs=
姜大伟
·
2019-12-26 11:00
linux0.00
编译运行调试环境
linux0.00
编译运行调试环境,在ubuntu14下用as,ld编译连接,用bochs来运行和调试!
hejinjing_tom_com
·
2018-12-20 15:41
kernel
Linux0.00
调试技巧
1.可输入infoGTD等查看GTD的信息2.在view下拉单中可以看到GTD和IDT的选项,选择后可以查看相应的信息。3.注意在调试时观察寄存器和stack的变化。stack的打开方式为view->stack
Soul_ze
·
2017-12-14 22:52
Linux0.00
操作系统实验初步调试
首先是关于程序调试的常用方法:1.设置断点在下端命令中输入b地址例如(b0x7c00)2.查看断点blist3.执行1)continue到下个断点位置指令:c2)单步调试点击step按钮4查看内存菜单栏中view—>LinearDump->输入物理地址即可view中还可以查看gdt和idt的内容5.删除断点d断点号(断点号可以在blist中查看例如d1)
Soul_ze
·
2017-12-13 09:05
linux0.00
内核剖析之1.系统级体系结构概览
(1)全局和局部描述符表在保护模式中所有的内存访问都要通过GDT或一个可选的LDT。GDT和LDT包含称为段描述符的入口,包括属性、段基址和段界限(段就是内存中的一段)。每个段描述符有一个相关联的段选择子,一个段选择子提供段描述符在GDT或LDT中的索引(位置)、一个标志(该选择子指向GDT还是LDT)和访问权限信息。要访问段中的一个字节,必须提供一个段选择子和一个偏移地址。段选择子提供(指向)G
kaigegao
·
2017-12-05 23:30
操作系统
linux
操作系统
linux0.00
代码阅读笔记
----------------------------------------汇编语言的编写,编译,运行,调试:author:hjjdebugdate:----------------------------------------参考代码地址:https://github.com/hjjdebug/linux0.00ubuntu14的环境这里用gdb(4.8.4)+bochs(2.4.6)来调
hejinjing_tom_com
·
2016-08-17 15:23
kernel
为什么用jmpi来改变CS的值?
在
Linux0.00
的boot.s中,为了改变CS的值,使用的命令是:jmpigo,#BOOTSEGgo:movax,cs而在于渊的orange's系统中,用到是:org07c00h为什么不直接使用mov
亚当-思密达
·
2016-03-18 23:05
Linux
[Operating System Labs] 我对
Linux0.00
中 head.s 的理解和注释
?21,# head.s contains the 32-bit startup code.# head.s 是32位的启动代码 # Two L3 task multitasking. The code of tasks are in kernel area,# 有两个L3(Level 3,即第三特权级,IA32提供给用户0-3,四个特权级,但是Linux0
·
2015-11-11 18:03
System
[Operationg System Labs] 我对
Linux0.00
中 boot.s的理解和注释
(如有错误请立即指正,么么哒!) ! boot.s!! It then loads the system at 0x10000, using BIOS interrupts. Thereafter! it disables all interrupts, changes to protected mode, and calls the ! 从0X10000开始
·
2015-11-11 18:03
System
Linux0.00
内核为什么要自己设置0x80号陷阱门来调用write_char过程?
我一开始没注意这个问题,只是通过陷阱门觉得很绕弯子,为何不在3级用户代码里直接调用write_char,今天自己写程序想用call调用代码段,才发现了大问题。我写了个类似于write_char的过程,代码如下:dividing_line: push %gs pushl %ebx pushl %ecx movl $10,%ecx/*输出10个空格' '*/ movl $SCRN_SEL,
山鹰Sniper03
·
2014-11-14 18:21
0.00
linux内核
陷阱门
Linux0.00
ld链接时为什么加上-Ttext 0
汇编程序会经过二次遍历,有些符号引用会被标记为可重定位,在编译好后他们的偏移值是其在代码内部的偏移值,即LC计数器的值,当载入内存运行时,由于起始加载地址会不确定,所以会在加载后把代码段所在的内存起始地址加到符号引用原有的偏移上,这就叫重定位。比如一个jmpabc会跳到代码段内部偏移10的地方,但是代码被加载到内存偏移1000,所以实际上那个abc标号偏移10的地方在实际的内存里面偏移是1
山鹰Sniper03
·
2014-10-31 21:52
linux
内核
ld
0.12
Ttext
Linux0.00
“boot.s” 程序详解
/*程序描述: ; boot.s程序编译出的代码共512字节,将被存放在软盘映像文件的第一个扇区中。PC在加电启动时, ; BIOS程序会把启动盘上第一个扇区加载到物理内存0x7c00位置开始处, ; 然后跳转到0x7c00处开始执行boot.s程序代码。 ; 本程序(boot.s程序)将内核代码(head.s代码)加载到0x10000处,然后
linux_eric
·
2014-05-30 17:57
Linux0.00
“boot.s”
程序详解
用nasm重写
linux0.00
linux0.00
由两个文件组成:boot.s(引导代码),head.s(运行代码)。程序最终在屏幕上不断打印A(任务1)和B(任务2)以及C(系统中断处理)。
tobacco5648
·
2012-07-17 21:00
c
linux
timer
汇编
System
任务
调试kernel时对bios加电后过程的一些心得
这里还是拿
linux0.00
的代码来实验,制作好引导盘后启动bochs(已重新编译加了–enable-debugger–enable-disasm参数) 下图是IBMPC内存的分布状况:(注意:0xA0000isthepointeraddresstotheGraphicalModeand0xB8
tianwailaibin
·
2011-11-16 00:00
c
linux
汇编
IBM
存储
byte
修改
Linux0.00
时钟中断为键盘中断
修改
Linux0.00
时钟中断为键盘中断首先修改task1的代码使其运行一次后进入无限循环将jmp_task1修改为jmp$将timer_interrupt修改为: 1 _timer_interrupt
lwch
·
2010-12-11 17:00
编译Linux-0.00内核
编译
Linux0.00
内核(《Linux内核完全剖析-基于0.12内核》)老早就买了一本赵炯编写的《Linux内核完全剖析-基于0.12内核》,看来前四章的原理部分,却一直没有勇气来自己动手来实践。
Turntogo
·
2010-12-02 02:00
linux
虚拟机
image
测试
磁盘
linux内核
Linux0.00
深度剖析
最近在学习Linux内核,这0.00据说当年使还是学生的linus异常兴奋,只是满屏幕的AABBBBAAA而已。本人只是写下学习笔记,以备日后复习之用。:01!boot.s程序02!首先利用BIOS中断把内核代码(head代码)加载到内存0x10000处,然后移动到内存0处。03!最后进入保护模式,并跳转到内存0(head代码)开始处继续运行。04BOOTSEG=0x07c0!引导扇区(本程序)被
dsplinus
·
2010-08-07 14:00
简单系统多任务
看一下
Linux0.00
版本(已经丢失了,重新的),它就是当时李纳斯在Minix论坛上发布的Linux的最初版本。
Hou_Rj
·
2009-05-02 18:00
学x86保护模式时对linux 0.00作的C语言改写
以前是发在oldlinux论坛上的,现在搬到这里来原文的链接是:
linux0.00
的C语言改写以下是原文:这里把赵炯博士还原的Linux-0.00的head.s中的大部分代码用C语言重写的一遍。
I2Cbus
·
2008-08-03 22:00
上一页
1
下一页
按字母分类:
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
其他