54

geyu

geyu
btc bts
Available
Used
Resource Credits
513 Followers
134 Following
geyu
code
5y
从头写一个操作系统 12
你可能需要google: kernel, ELF format, makefile 目标: 写一个简单的kernel,让bootsect启动它 The kernel 我们用C语言写的内核只能做一点点事,就是在屏幕左上角打印一个'X',打开这个kernel.c。 你会发现第一个函数中什么都没写,这个函数创建了指向main函数的内核入口。 i386-elf-gcc -ffreestanding -c kernel.c
$ 0.000
8
7
geyu
esteem
5y
从头写一个操作系统 11 (create an OS from scratch 11)
你应该先google:C,ojbect code, linker, disassemble 目标:用C语言做底层汇编语言做的那些事 Compile 我们得研究研究C编译器如何编译代码,并且比较它与汇编器生成的机器码两者是否有所差别。 写一个只有一个简单函数的程序function.c。打开function.c看一眼。 int my_function() { return 0xbaba; }
$ 0.000
8
3
geyu
esteem
5y
从头写一个操作系统 10 (cross-compiler i386-elf-gcc)
lesson 11[1] 你需要google:cross-compiler 目标:配置可编译32位内核的开发环境 如果你用Mac,你应该立即着手做,如果使用别的系统可以再等几节课。不过,当用c语言开发时,你一定得有交叉编译环境。为什么? 我会稍微修改以下这个 指南. Required packages 第一步,你需要安装需求的库。在linux上,用你的包管理软件。在Mac上, install
$ 0.000
6
1
geyu
esteem
5y
从头写一个操作系统 09 (create an OS from scratch 09)
lesson 10 这一课,就不简单的翻译课文,因为作者只写了一点点,不过一切都在代码里。 让我们把代码拆开,看看16位实模式是如何跳转到32位保护模式的。 分析代码前,先想想,为什么会有16位实模式呢?
$ 2.738
419
6
geyu
esteem
5y
从头写一个操作系统 08
我们一直用qemu来装载.bin文件,模拟计算机启动的过程,qemu很好,后面我们会讲到如何用gdb调试qemu,只能用强大来形容。 喜欢折腾的人,永远都不会闲下来,就像用vmware将二进制文件作为启动盘,用qemu模拟树莓派的启动一样,对于学习来说是有意义的。 今天介绍另一个很好用的虚拟机:bochs。
$ 2.671
327
12
geyu
code
5y
从头写一个操作系统 07 (create an OS from scratch 07)
lesson 9 你需要自己去查: GDT 本节目标: 编写 GDT 还记得lesson 6的segmentation吗?段地址左移一位,只有16位的寻址总线却达到了20位的寻址能力。
$ 0.407
17
16
geyu
code
5y
从头写一个操作系统 07 (create an OS from scratch 07)
lesson 9 你需要自己去查: GDT 本节目标: 编写 GDT 还记得lesson 6的segmentation吗?段地址左移一位,只有16位的寻址总线却达到了20位的寻址能力。
$ 0.000
3
2
geyu
cn
5y
从头写一个操作系统 06
目标: 在32位保护模式下,打印文字到屏幕上 32位保护模式允许我们使用32位寄存器、32位寻址能力、内存保护、虚拟内存以及其他先进的功能,但是我们失去了BIOS提供的中断(之前用的0x10,就是其中的一个中断),并且还需要编写GDT(后面会介绍)。
$ 0.000
6
geyu
cn
5y
从头写一个操作系统 05
lesson 6 你可能需要google这个概念:segmentation 目标: 学习16位实模式下的内存寻址 如果非常了解segmentation,可以跳过这节课。 lesson3中我们用[org]定义了segmentation,其实它就是所有数据的偏移量。 CPU提供了几个特殊的寄存器:cs、ds、 ss 、 es,对应着代码段,数据段,堆栈以及其他段(用户指定)。
$ 0.000
7
4
geyu
esteem
5y
从头写一个操作系统 04
你可能需要google这几个知识点: control structures, function calling, strings 目标: 使用汇编编写基本的逻辑(循环、函数) 越来越接近目标中的启动引导区了。 在 7中,我们会从硬盘中读取引导数据,而后便进入启动内核的步骤。不过目前我们还需要做些必要的准备:练习写一些控制结构、函数调用,读取字符串的代码。 Strings
$ 0.427
13
8
geyu
esteem
5y
从头写一个操作系统 03
写一个操作系统,需要学很多知识,但如果纯研究理论,一万个小时也不可能面面俱到的完全掌握这些理论。 当然不是说这些理论有多复杂,恰恰是这些写进了书本的理论为了求大求全,把简单的知识讲的复杂了,让学的人不明所以,不知所图。比如龙书(编译原理)读起来艰深晦涩,但如果从程序运行的角度去看,编译器就是一个翻译软件,将文本翻译成可以执行的机器码或者中间代码,既然是翻译软件,那将'a b c' 翻译成'A B
$ 0.440
11
3
geyu
esteem
5y
从头写一个操作系统 02
在开始前,你可能需要google一下: memory offsets, pointers 目标: 学习计算机的内存空间是如何分配,如何管理的。 请打开 这本书1的14页 ,看看图中的内存布局。 这节课的目标就是了解引导区的内容被加载到内存的什么位置。 直接告诉你吧,BIOS将它放在0X7C00,随后CPU从这个位置开始运行指令,下面举一个例子,你会很容易明白!
$ 0.000
3
geyu
code
5y
从头写一个操作系统 01
开始前,如果不熟悉右边的知识点,建议先google: assembler, BIOS 本节的目标:创建一个可以被BIOS识别的,可作为启动介质的文件 我们马上就要亲自完成一个引导扇区,你一定会很有成就感! 理论: 计算机启动时,首先启动的是BIOS,但BIOS并不知道如何启动操作系统,它会把启动的 工作交给引导扇区中的指令。因此,引导扇区需要放在一个约定俗成的标准 位置上,也就是磁盘最开始 (cylinder
$ 0.450
11
7
geyu
code
6y
采坑记录:Steem 文档- 中国内地访问
作为一个有理想的程序员,哪能不会用API。可是国内网络访问steem的文档,你点目录也不会有反应的,至于为什么,让我来解开谜团。 国内点开 这个网址后,会有一个极长时间的等待,此时浏览器一片白,可是也不像被墙的网站直接报错,这个过程大概几十秒到几分钟不等,而进去之后,点什么都是不会跳转的,之前偶尔点一下想看,但很少有能正常看的时候,我就很奇怪,所以今天我必须要弄明白是怎么回事。 于是,我按下了F12。
$ 0.000
5
geyu
cn
6y
我热爱的编程-该从何讲起呢-2
书接上文,通过对加法器结构的构思,使得我对逻辑的理解更深一步,当严格的“是”与“否”可以用来表达数字的累加,便使得计算机做四则运算成为了可能,减法就是加上一个负数,乘法是加法的重复,而除法是减法的重复,例如7除2,由7减去2重复3次,当余数不足2,则除法计算结束,重复的3次作为根,1作为余数。 其中又引出了三个问题: 1.如何表示负数。 2.如何重复。 3.如何判断两数的大小。 ##负数
$ 0.000
2
2
geyu
code
6y
我热爱的编程-该从何讲起呢
要感谢去年混迹在steemit的日子,当时的我只是一个干了多年市场类工作,单纯想从区块链中捞一桶金的人,即便在上一家公司时,身边全都是程序员,我也从未敢想过有一天我会走上编程这条路。从未想到我会对程序有超越其他所有事情的兴趣,也没想到什么东西能重燃我学习的热情,但今天看来,这些从未敢想的却都成为了现实。
$ 0.000
9
geyu
cn
7y
美元的暴跌背后有个写了几十年的故事
事先声明我写的只是一个故事,只能当作故事看,我绝不保证逻辑自洽和条理清晰。 我们看到的貌似是毫无逻辑的两件事,美元进入加息周期--->美元贬值--->股市暴跌 按理说美元有加息预期,追求高安全性的资金会大量买入美元抛售其他货币,理应使美元走强,但现在美元汇率暴跌,更是连累了股市,事出反常必有妖。
$ 0.587
6
10
geyu
cn
7y
投资区块链,什么时候取出本金比较好
这个看起来很简单的问题涉及到了很多方面的能力与经验。
$ 0.090
10
1
geyu
cn
7y
纸币有没有可能完全消失?(转自本人 币问 回答 @半步江南)
这个道理很容易讲明白,如果仍然有国家这个概念,纸币或者电子纸币(纸币在银行显示的数字)这个概念便不会消失。   纸币不过是一张纸张质量很好的纸,它的价值的赋予来源于国家,
$ 0.117
5
1
geyu
cn
7y
春秋 一章八回 动员
$ 0.099
3
1

Follow, be first to know

Nothing found in posts.