w
h
y
?
y
o
u
a
r
e
h
e
r
e
?
文件描述符限制文件描述符Linux的核心思想之一就是”一切皆文件”。即Linux中所有的内容都是以文件的形式保存和管理的,它为不同类型的文件提供了统一的操作接口,对于不同类型的文件,我们都可以使用fopen()/fclose()/fwrite()/fread()等对这些文件进行读写处理。在Linux
...
内核与C语言写内核能用C标准库吗?我们开发用户应用程序的时候,有标准库可以用,最典型的就是GUN C库,标准库一般是系统调用的封装,表面上是通过标准库访问系统资源,实际上是通过系统调用实现的。Linux的系统调用一般是先往eax寄存器写入系统调用号,然后通过0x80中断来实现。中断向量号为0x80称
...
设计自己的页表只针对32位的操作系统,设计一个二级页表,目的是构建一个简易的能跑起来的操作系统。对于4G的地址空间,每个页大小是4K,模仿Linux早期的做法,32位地址的前10位为页目录项,中间10位为页表,后面10位为偏移量。
12|--目录项----|--页表-----|---地址偏移-||-
...
保护模式为什么要有保护模式 实模式是有很大弊端的,首先,直接操作物理内存,这样的话每次只能运行一个程序,并且不安全;另外,内存最大使用到1M,限制太大。
保护模式下,程序不能直接访问物理地址,程序的虚拟地址需要被转换为物理地址后再去访问,地址转换是由处理
...
熟悉MBR引导MBR的512字节里面也是代码,他被BIOS加载执行,自身执行的时候加载操作系统的loader,我们在没有操作系统loader的情况下先写一段测试程序,体验一下。
实现的功能如下:
BIOS 加载 MBR中的代码,执行,用BIOS 中断 INT 0x10显示字符串
MBR的代码1234
...
环境准备工作有一台win10的笔记本,调试想选择在Linux环境下,选择配置虚拟机,然后安装bochs调试内核需要准备的软件:
VirtualBox和增加工具包
安装CentOS 6.8minimal
设置CentOS的网卡,使之能上网
用yum安装开发工具和GNOME
安装bochs
进入GNO
...
操作系统引导MBR 接上一篇BIOS启动,BIOS完成了基础的硬件检测和硬件的中断向量表的初始化,然后BIOS找到MBR并且把MBR加载在内存中,跳转到该位置。加载的位置在内存中的0x7C00,至于为什么是这个位置,主要是因为历史的原因吧,最初的内存只有32K,历史选择了0x7
...
去东西冲转,记录一下:
穿专业点的徒步鞋,有的上下坡很滑,土很滑
花草扎人,长袖
很多地方上坡超过70度,注意安全,天气不好就改天吧
Enjoy :)
硬件与BIOS流程硬件 传统来说,主板上两个主要芯片,靠上方的叫北桥,靠下方的叫南桥。
大体上说:北桥负责与CPU通信,并且连接高速设备(内存/显卡),并且与南桥通信;南桥负责与低速设备(硬盘/USB)通信,时钟/BIOS/系统管理/旧式设备控制,并
...
有朋友问到区分激情和爱情,其实很好区分的,当你不见她时茶饭不思,是激情。老想见到她,想和她一起玩,一起上床,一起做白日梦,是激情。每天短信电话多的没完,是激情。为了生日节日费尽心思想浪漫的点子,是激情。当你和她在一起时脑子里不自觉的规划实实在在的将来,是爱情。当你们争吵到很凶,火很大时,也不忍心说
...