自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (1)
  • 问答 (2)
  • 收藏
  • 关注

原创 编写PC操作系统的参考资料(不断更新)

更新日期:2013年6月30日编写PC操作系统的参考资料编译器等工具:汇编语言:MASM 6.11,MASM 11:http://www.masm32.com/FASM:http://flatassembler.net/NASM:http://www.nasm.us/C语言:Visual Studio2010C-Free 5.0:http://dl.vmall.

2013-06-11 18:59:13 9120 4

原创 定义接口时应注意的问题

(本文最早由我于2018-03-12 22:51在cnblogs上发表:https://www.cnblogs.com/firas/p/8552597.html)1、 要指明接口输入输出参数使用什么方式传递,是用XML还是JSON还是其他。如果用分隔符分隔不同的字段,则要说明分隔符是什么,字段内容是否需要根据分隔符进行转义,如何转义。例如CSV文件,分隔符是英文半角逗号",",字段内容若含有...

2018-09-05 09:48:00 1145

原创 ConcurrentHashMap的keySet()的兼容问题

(本文最早由我于2018-06-28 11:50在cnblogs上发布:https://www.cnblogs.com/firas/p/9237986.html)这两天遇到一个问题,我用JDK 8编译出来的程序在JRE 6上运行报ClassNotFoundException,说找不到java.util.concurrent.ConcurrentHashMap$KeySetView这个类。原...

2018-09-05 09:44:55 1511

原创 用Java进行AES256-ECB-PKCS7Padding加密

大家可以先看主要的代码: import java.security.Security;import javax.crypto.Cipher;import javax.crypto.spec.SecretKeySpec;import org.bouncycastle.jce.provider.BouncyCastleProvider;public class Encrypt ...

2015-07-24 19:43:22 26667 2

原创 Bochs调试指令

1、指令断点1.1、设置断点1.1.1、设置在物理地址b/break addr1.1.2、设置在线性地址lb/lbreak addr1.1.3、设置在虚拟地址vb/vbreak seg:off  seg是段选择子,off是段内偏移。1.2、禁用/启用断点bpd|bpe bn  禁用/启用断点,相当于WinDBG的“be”和“bd”。bn是断点号,可以用blist

2015-05-03 14:18:46 3634

原创 论算法之消除重复

我自学算法,略有所得,发现一些算法优化的过程其实就是消除重复的过程。例如从时间复杂度Θ(n2)的冒泡排序、插入排序到时间复杂度Θ(nlog2n)的快速排序、归并排序。冒泡排序算法的运作如下:1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。3、针对所有的元

2014-07-03 16:23:05 1216

转载 键盘硬件扫描码(邓志)

keyboard scan code 表我发现搜到的许多其他键盘硬件扫描码的资料都与实际不符,而MouseOS的网站不知为何不能上去了,故转载google缓存的邓志的这篇文档以备查阅。转自http://www.mouseos.com/os/doc/scan_code.html作者邓志,对IA架构有深入研究,编有研究用的图形界面操作系统MouseOS。当按下一键时,产

2014-05-19 17:52:28 14016 3

原创 桌面电脑操作系统开发笔记(5)——ACPI

桌面电脑操作系统开发笔记(5)——ACPIACPI

2014-05-16 17:33:17 2224

原创 桌面电脑操作系统开发笔记(4)——进入32位保护模式

要获得32位的内存寻址能力和

2014-05-16 14:13:37 2163

原创 桌面电脑操作系统开发笔记(3)——实模式纯文本用户接口

桌面电脑操作系统开发笔记(3)——实模式纯文本用户接口

2014-05-16 12:15:29 1332

原创 桌面电脑操作系统开发笔记(2)——系统内存表

桌面电脑操作系统开发笔记(2)——系统内存表

2014-05-16 11:34:16 1733

原创 桌面电脑操作系统开发笔记(1)——MBR和VBR

桌面电脑的操作系统是从BIOS接过电脑(CPU)的控制权的。

2014-05-16 11:20:15 7628

原创 OS开发之底层内存管理笔记

操作系统从BIOS的int 15h,ax = 0E820h子功能获得64位系统内存表(system memory map)后,需要对可用的内存进行管理,即建立一些数据结构用来记录已用的和空闲的内存,从而为后续的内存的申请使用和释放做准备。  考虑到内存的空间有限,为了尽量减小内存管理数据结构所占的额外空间,我决定用IA32架构的小页面大小4KB为粒度管理内存。  由于对内存的申请和释放是随

2014-01-27 11:05:33 1321

翻译 14.5 保护模式I/O

翻译自《Intel®64和IA-32架构软件开发者指南》卷一。当处理器运行在保护模式,以下保护机制控制对I/O端口的访问:    ·  通过I/O寻址空间访问I/O端口时,两种保护设施会控制访问:        — EFLAGS寄存器中的I/O特权级(IOPL)位域        — 任务状态段(TSS)中的I/O允许位图    ·  在访问内存映射的I/O端口时,一般

2014-01-19 16:57:30 2814

翻译 IA32和x64架构分页数据结构

翻译自《Intel® 64 and IA-32 Architectures Software Developer Manuals》用32位分页的到一个4KB页面的线性地址翻译用32位分页的到一个4MB页面的线性地址翻译32位分页的CR3和分页结构项的格式分页错误代码:

2013-12-08 22:46:17 3318 1

翻译 IA32和x64架构分段数据结构

翻译自《Intel® 64 and IA-32 Architectures Software Developer Manuals》IA-32系统级寄存器和数据结构:内存管理寄存器:分段和分页:逻辑地址到线性地址的翻译:段选择子:段描述符:全局描述符和局部描述符

2013-12-08 22:37:26 3769

转载 Bochs调试之查看内存

x /nuf [addr] 显示线性地址的内容xp /nuf [addr] 显示物理地址的内容n 显示的单元数u 每个显示单元的大小f 显示格式

2013-12-02 20:41:36 7303 3

转载 借Windows说明Linux分区和挂载点

转自:http://www.chinaz.com/server/2010/1110/142311.shtml在介绍Linux分区和挂载点前,我想先说一个Windows的例子,Windows大家都比较熟,再借这个例子来说明什么是Linux分区和挂载点。1.消失了的分区在WinPE下,我将一块硬盘分成一个主分区和四个逻辑分区,主分区指派驱动器号C,四个逻辑分区均不指

2013-10-27 17:03:59 940

转载 STL 红黑树(Red-Black Tree)源代码分析

转自:http://blog.chinaunix.net/uid-26818262-id-3219065.htmlSTL提供了许多好用的数据结构与算法,使我们不必为做许许多多的重复劳动。STL里实现了一个树结构-Red-Black Tree,它也是STL里唯一实现的一个树状数据结构,并且它是map, multimap,set,multiset的底层实现,如果学会了Red-Black Tre

2013-10-22 16:37:56 1819

转载 Java容器类List、ArrayList、Vector及map、HashTable、HashMap的区别与用法

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://www.blogbus.com/selives-logs/27714366.htmlArrayList 和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,都允许直接序号索引元素,但是插入数据要设计到数组元素移动等内存操作,所以索引数据快插入数据慢,Vector由于使用

2013-10-02 12:39:15 997

翻译 Intel手册系统编程卷第3章 保护模式内存管理

第3章  保护模式内存管理本章描述Intel 64和IA-32架构的保护模式内存管理设施,包括物理内存需求、分段机制和分页机制。请见:第5章《保护》(对处理器的保护机制的描述)和第20章《8086仿真》(对实模式和虚拟8086模式下的内存寻址保护的描述)。3.1  内存管理概述IA-32架构的内存管理设施可以被分为两部分:分段和分页。分段提供了隔离每个代码、数据和堆栈模块的机制,从

2013-09-03 11:23:14 2695

转载 FreeBSD 5内核源代码分析之系统调用过程

转自:https://www.freebsdchina.org/forum/viewtopic.php?t=11068by wheelz -------------------------- 注:由于code是BBCode的关键字,在某些地方将程序中的变量code改写为_code 系统调用开始于用户程序,接着到达libc进行参数的包装,然后调用内核提供的机制进入内核。 

2013-08-22 12:24:45 1641

转载 linux各文件夹的作用

转自:http://www.cnblogs.com/amboyna/archive/2008/02/16/1070474.htmllinux下的文件结构,看看每个文件夹都是干吗用的/bin 二进制可执行命令 /dev 设备特殊文件 /etc 系统管理和配置文件 /etc/rc.d 启动的配置文件和脚本 /home 用户主目录的基点,比如用户user的主目录就

2013-06-08 15:01:32 1826

转载 字符串用指针和数组的区别

转引自:http://www.wangchao.net.cn/bbsdetail_837875.html字符指针和字符数组  char* s1="hello";   char s2[]="world";  两个表达式的含义基本上是一样的。  如果讲不同之处的话,那就是VC中编译时,对这两种定义进行了不同的处理;  char *s1 = "hello"; 中的"hello"在

2013-04-12 16:41:18 847

原创 自己整理的FAT和NTFS启动扇区结构

文件系统引导扇区数据结构FAT16FAT32NTFS

2013-04-11 12:16:38 5028 1

原创 自己整理的MBR数据结构

起始地址(16进制)起始地址(10进制)长度(字节)内容00440引导启动代码1B84404签名1BC4442保留1BE44616×4 = 64

2013-03-12 20:13:48 4089

翻译 中断向量表的结构

翻译自:http://support.microsoft.com/kb/71486/en-us概括系统内存底部的1 KBytes(1024字节)被用来储存中断向量。一个中断向量是一个形式为“偏移:段”的4字节的值,它代表了当CPU接收到一个中断时要调用的程序的地址。一些中断向量不指向可执行代码,而是指向某些数据结构。例如中断1Eh的向量指向一个11字节的包含磁盘驱动器信息的磁盘基础表。中断

2013-02-27 22:38:56 4124

翻译 Intel处理器手册系统编程指南第2章(3)

2.4 内存管理寄存器处理器提供四个内存管理寄存器(GDTR、LDTR、IDTR和TR),它们指定控制段式内存管理的数据结构的位置(见图2-5)。有专门的指令来加载或保存这些寄存器。图2-5 内存管理寄存器2.4.1全局描述符表寄存器(GDTR)GDTR寄存器存放GDT的基础地址(保护模式中32位,IA-32e模式中64位)和16位的表界限。基础地址指的是GDT的字节0的线

2013-02-20 18:50:36 1232

翻译 Intel处理器手册系统编程指南第2章(2)

2.2 操作模式IA-32支持三种操作模式和一种准操作模式:保护模式(Protected Mode)——这是IA-32处理器“天生的”操作模式。它提供了丰富的一系列架构特性、灵活性、高性能和对已有软件基础的向后兼容性。实模式(Real Mode)——这个操作模式提供Intel8086处理器的编程环境,但有少量拓展(例如切换到保护模式或系统管理模式的功能)。系统管理模式(System

2013-02-20 18:45:38 2769

翻译 Intel处理器手册系统编程指南第2章(1)

第2章系统架构概观IA-32架构(从Intel386处理器系列开始)为系统软件提供了额外的支持。这个额外的支持提供多种操作模式,包括:实模式、保护模式、虚拟8086模式和系统管理模式。这些有时被称为“传统模式”。Intel 64 架构支持几乎所有IA-32架构支持的系统编程功能,而且还拓展了一个支持64位编程环境的新的操作模式(IA-32e模式)。IA-32e模式允许软件在

2013-02-20 18:36:12 2092 1

转载 Sikuli带来的意义与无限的潜力

Sikuli带来的意义与无限的潜力转自“wcf的博客”:http://blog.163.com/wcf0002@126/blog/static/326051332010791050595/这礼拜真是我人生中最疯狂的一天了..。自从Sikuli发表后,我本来还打算一封封回覆所有的问题,后来发现排山倒海而来的邮件和留言速度远大过我能阅读和回覆的量。前几天我优先把Sikuli

2013-01-30 13:05:09 4765

转载 PC电源暴拆全面解析

转自:http://intersil.eefocus.com/article/12-12/2287071355302703.html?sort=1937_1939_0_0随着各位电脑的不断更新,相信越来越多人也加强了对电源的注重,现在一台电脑的电源,不光是为了保证供电的单一设备。电源已经成了保证电脑稳定运行的必备以及必须模块。但是你真的了解电源么,下面就看我细细讲来。。。。

2013-01-01 20:32:16 1571

转载 BIOS警报音

1、Phoenix的BIOS 报警声报警声含义1短系统启动正常1短1短1短系统加电初始化失败1短1短2短主板错误1短1短3短CMOS或电池失效1短1短4短ROM BIOS校验错误1

2012-12-27 11:00:56 1032

转载 Notes on Intel(R) Pentium(TM) Processor

Notes on Intel(R) Pentium(TM) Processor                     (c) Copyright Microsoft Corp. 1993  This file contains the following information:    - Implementation of the .586 and .586P

2012-08-13 10:19:11 1789

转载 Segment Translation

From: http://pdos.csail.mit.edu/6.828/2005/readings/i386/s05_01.htm 5.1 Segment TranslationFigure 5-2 shows in more detail how the processor converts a logical address into a linear address.

2012-07-16 09:10:36 937

转载 内存映射(IO地址和内存地址)

转自:http://linux.chinaunix.net/techdoc/net/2008/12/17/1053629.shtmlARM体系结构下面内存和i/o映射区别(1)关于IO与内存空间:在X86处理器中存在着I/O空间的概念,I/O空间是相对于内存空间而言的,它通过特定的指令in、out来访问。端口号标识了外设的寄存器地址。Intel语法的in、out指令格式为:IN 累

2012-07-16 00:04:12 2720

转载 汇编重启

在JMP FAR F000:FFF0后会检查[0040:0072]该字的值——0000:相当于按RESET键。1234:跳过内存检测,也就是所谓的热启动,相当于按CTRL+ALT+DEL。5678:挂起/正常模式转换(可能对DOS无效),不检测内存、不POST、内存内容不变。9ABC:厂家检测用。ABCD:不停地循环POST。下面是MS给出的例程—— ; COD

2012-07-15 09:17:13 1728

转载 内存整理的迷思

发件人: "Felix " 主题: 内存整理的迷思 日期: 2003年2月24日 23:57 内存整理的迷思 看了接二连三出现于本组的有关内存整理的帖子,终于觉得有必要写一点文字了,这些 帖子如果是在别的组尚且情有可原,可是出现在编程组中却实属不该,看来不少人仍然 对Windows的内存管理机制存在种种误解,希望这篇短文能够澄清这些误解中的一部分 (如果不是全

2012-07-14 12:57:23 811

转载 CLR内核调试之:Malloc函数实现

转自:http://www.cnblogs.com/lbq1221119/archive/2008/11/13/1332254.html自从可以动态调试SSCLI之后,发现这个玩意还真是个宝山,越玩越有意思,就像捅开一扇门,发现门后面还有一座宝山……不光CLR的内部实现细节,可以象是放电影一样呈现在眼前,Visual Studio里面的一些底层的技术,还有OS的底层技术,查看起来那是相当的便捷

2012-07-12 20:53:11 1843

转载 汇编中addr和offset的异同点

转自:http://hi.baidu.com/popipo/blog/item/17a3ee0865aa71a42eddd492.html 一、相同点1、addr 和 offset 操作符都是获得操作数的偏移地址;2、addr 和 offset 的处理都是先检查处理的是全局还是局部变量,若是全局变量则把其地址放到目标文件中。二、不同点1、addr 伪操作符,只能

2012-07-11 20:12:44 7403

一个挺好的反编译工具

W32Dasm-v9 一个挺好的反编译工具,可以把exe反编译成汇编语言

2011-10-30

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除