前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >编写PC操作系统的参考资料(不断更新)

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

作者头像
战神伽罗
发布2019-07-24 14:37:13
2K0
发布2019-07-24 14:37:13
举报

编写PC操作系统的参考资料

编译器等工具

汇编语言:

MASM 6.11,MASM 11(Windows):http://www.masm32.com/

FASM(跨平台):http://flatassembler.net/

NASM(跨平台):http://www.nasm.us/

TASM:http://turbo.brothersoft.com/turbo-assembler.html

YASM:http://yasm.tortall.net/

C语言:

Visual Studio(Windows)

C-Free 5.0(Windows,包含MinGW):http://dl.vmall.com/c0dkzg38o7

GCC,G++(跨平台):http://gcc.gnu.org/

GCC与FASM代码链接:http://board.flatassembler.net/topic.php?t=5989

GCC链接器LD脚本:http://www.math.utah.edu/docs/info/ld_3.html

反汇编与调试:

IDA pro(Windows)

WinDBG(Windows,包含在驱动开发工具WDK中):http://msdn.microsoft.com/en-US/windows/hardware/gg463009/

GDB(包含在GCC中)

DOS的Debug的命令:http://technet.microsoft.com/library/cc722863.aspx

代码编辑器:

Notepad++(Windows):http://notepad-plus-plus.org/

Emacs(Linux):http://www.gnu.org/software/emacs/

Vim(Linux):http://www.vim.org

汇编IDE:http://www.oby.ro/rad_asm/

二进制查看与修改:

WinHex(Windows)

ghex/khex(Linux):http://directory.fsf.org/wiki/Ghex

Okteta:http://utils.kde.org/projects/okteta/

Hexer:http://www.the-interweb.com/serendipity/index.php?/categories/11-Hexer

虚拟机:

VMware Station:http://www.vmware.com

Oracle Virtual Box:https://www.virtualbox.org/

压缩解压缩与虚拟机磁盘文件查看:WinMount(Windows,中文版免费):http://cn.winmount.com/

Bochs(跨平台):http://sourceforge.net/projects/bochs/?source=directory

Bochs的图形前端Peter-Bochs:https://code.google.com/p/peter-bochs/

Xen:http://xenproject.org/

总体

于渊《自己动手写操作系统》:http://dl.vmall.com/c0oltefkkm

于渊《Orange’s一个操作系统的实现》

川合秀实 著,周自恒、李黎明、曾祥江、张文旭 译《30天自制操作系统》

Andrew S. Tanenbaum《现代操作系统》

Abraham Silberschatz, PeterBaer Galvin, Greg Gagne《操作系统概念》:http://dl.vmall.com/c0ouk7h52g

OSDEV:http://wiki.osdev.org/Main_Page

http://www.osdever.net/tutorials/

http://www.osdever.net/papers/

https://wiki.kernel.org/index.php/Main_Page

毛德操《漫谈兼容内核》:http://ishare.iask.sina.com.cn/f/21633826.html

全FASM写成的软盘操作系统:http://MenuetOS.net/

兼容POSIX的Dynacube OS:http://www.dynacube.net/

ScorchOS:http://sourceforge.net/projects/scorchos/

MouseOS技术小站:http://www.mouseos.com/index.html

国人写的Skelix OS:http://skelix.net/skelixos/index_zh.html

http://www.walshcomptech.com/ohlandl/index.htm

Randal E. Bryant, David O'Hallaron《深入理解计算机系统》:http://dl.vmall.com/c03ppaaacv

POSIX.1-2008标准:http://pubs.opengroup.org/onlinepubs/9699919799/

数据结构

http://zh.wikipedia.org/wiki/红黑树

http://en.wikipedia.org/wiki/B-tree

http://en.wikipedia.org/wiki/B%2B_tree

http://en.wikipedia.org/wiki/Bx-tree

SGI STL 红黑树(Red-Black Tree)源代码分析:http://blog.chinaunix.net/uid-26818262-id-3219065.html

红黑树的插入与删除 详细整理资料:http://wenku.baidu.com/view/d07e8e0216fc700abb68fc40.html

红黑树和B树:http://www.eli.sdsu.edu/courses/fall95/cs660/notes/RedBlackTree/RedBlack.html

树堆:http://en.wikipedia.org/wiki/Treap

C++ STL:http://zh.wikipedia.org/wiki/标准模板库

算法

校验和:

CRC32:http://www.repairfaq.org/filipg/LINK/F_crc_v3.html

探究CRC32算法实现原理:http://blog.csdn.net/zhaodm/article/details/3711034

http://en.wikipedia.org/wiki/Cyclic_redundancy_check

哈希:

http://zh.wikipedia.org/zh-cn/MD5

http://zh.wikipedia.org/wiki/SHA家族

加密通讯:

http://en.wikipedia.org/wiki/RSA_(algorithm)

Linux参考

Linux内核源代码下载:https://www.kernel.org/

Linux内核源代码:https://github.com/torvalds/linux

《Linux内核设计的艺术——图解Linux操作系统架构设计与实现原理》:http://dl.vmall.com/c0tl4202j5

深入分析Linux内核源码:http://oss.org.cn/kernel-book/

Linux i386 Boot Code HOWTO byFeiyun Wang:http://www.tldp.org/HOWTO/Linux-i386-Boot-Code-HOWTO/index.html

毛德操、胡希明《Linux内核源代码情景分析》

Linux C编程一站式学习:http://learn.akae.cn/media/index.html

BSD、Unix参考

FreeBSD:

《FreeBSD操作系统设计与实现》:http://dl.vmall.com/c0ad41bvan

FreeBSD源代码:http://www.oschina.net/code/explore/freebsd

NetBSD:

NetBSD源代码:http://cvsweb.netbsd.org/bsdweb.cgi/?only_with_tag=MAIN

OpenBSD:

http://www.openbsd.org/

Apple XNU源代码:http://www.opensource.apple.com/source/xnu/

Microsoft的OS参考

http://research.microsoft.com/en-us/projects/singularity/

http://zh.wikipedia.org/zh-cn/Singularity

Windows Research Kernel:http://www.microsoft.com/education/facultyconnection/articles/articledetails.aspx?cid=2416&c1=en-us&c2=0

Vista及后续Windows引导启动过程:http://homepage.ntlworld.com./jonathan.deboynepollard/FGA/windows-nt-6-boot-process.html

http://www.starman.vertcomp.com/asm/mbr/W7MBR.htm

http://www.starman.vertcomp.com/asm/mbr/W7VBR.htm

ReactOS:http://www.reactos.org/

毛德操《Windows内核情景分析:采用开源代码ReactOS》

潘爱民《Windows内核原理与实现》

《DOS原理与结构》:http://dl.vmall.com/c010mlo8ay

CPU架构

Intel 64(x64)和IA32(x86)架构: http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html

http://software.intel.com/en-us/node/183990?wapkw=cpuid+utility

http://developer.amd.com/resources/documentation-articles/developer-guides-manuals/

Universityof San Francisco - Intel EM64T and VT Extenions:http://www.cs.usfca.edu/~cruse/cs686s07/

http://en.wikipedia.org/wiki/Cpuid

MultiProcessor Specification(MP Spec), version 1.4: http://www.intel.com/design/archives/processors/pro/docs/242016.htm

Bringing SMP to Your UPOperating System: http://www.cheesecake.org/sac/smp.html

关于多处理器初始化:http://forum.osdev.org/viewtopic.php?t=11564

x86-x64在线汇编器:https://defuse.ca/online-x86-assembler.htm

x86Microsoft stdcall调用约定:http://msdn.microsoft.com/en-us/library/zxk0tw93.aspx

Microsoftx64调用约定:http://msdn.microsoft.com/zh-cn/library/ms235286.aspx

IntelItanium(安腾)架构:http://www.intel.com/content/www/us/en/processors/itanium/itanium-processor-software-specifications.html

ARM文档:http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.subset.architecture.reference/index.html

ARM模拟器:http://armulator.sourceforge.net/

SPIM MIPS模拟器:http://spimsimulator.sourceforge.net/

MARS MIPS模拟器:http://courses.missouristate.edu/KenVollmar/MARS/

MIPS架构:http://www.imgtec.com/mips/architectures/

MIPS寄存器:http://msdn.microsoft.com/zh-cn/library/ms253512(v=vs.90).aspx

AVR架构Atmel公司:http://www.atmel.com

AVR32架构手册:http://www.atmel.com/zh/cn/Images/doc32000.pdf

SPARC:http://www.sparc.org/technical-documents-test-2/specifications/#ARCH

进程和线程

POSIX Threads Programming:https://computing.llnl.gov/tutorials/pthreads/

多线程同步

Linux的自旋锁:http://blog.chinaunix.net/uid-25871104-id-3052138.html

Linux中的信号量和互斥量:http://blog.csdn.net/lihenair/article/details/6597080

BIOS中断

Ralf Brown实模式中断:http://www.ctyme.com/intr/int.htm

16色模式颜色对应:http://en.wikipedia.org/wiki/BIOS_color_attributes

BIOS视频、键盘、磁盘中断:http://wenku.baidu.com/view/61ed6c175f0e7cd1842536f9.html

Trusted Computing Group PCClient Implementation for Conventional BIOS:http://www.trustedcomputinggroup.org/resources/pc_client_work_group_specific_implementation_specification_for_conventional_bios_specification_version_12

EFI/UEFI

UEFI官网:http://www.uefi.org

Intel关于EFI和UEFI的文档:http://www.intel.cn/content/www/cn/zh/architecture-and-technology/unified-extensible-firmware-interface/efi-homepage-general-technology.html

MSDN中关于UEFI固件的文档:http://technet.microsoft.com/en-us/library/hh824898.aspx

BIOS人论坛UEFI学习讨论区:http://www.biosren.com/forum-19-1.html

《Beyond BIOS: Developing with the Unified Extensible FirmwareInterface》

System Management BIOS:http://www.dmtf.org/standards/smbios

Trusted Computing Group EFIPlatform Specification:http://www.trustedcomputinggroup.org/resources/tcg_efi_platform_specification

Trusted Computing Group EFIProtocol Specification:http://www.trustedcomputinggroup.org/resources/tcg_efi_protocol_specification

IO

端口:http://www.stanislavs.org/helppc/ports.html

8259AProgrammable Interrupt Controller:http://www.brokenthorn.com/Resources/OSDevPic.html

Intel 82093AAIO APIC Datasheet:http://www.intel.com/design/chipsets/datashts/290566.htm

PCI官方组织PCI-SIG:http://www.pcisig.com/

PCI规范2.2:http://www.ics.uci.edu/~harris/ics216/pci/PCI_22.pdf

PCI database:http://www.pcidatabase.com

Intel X58Express Chipset Datasheet北桥手册:http://www.intel.com/content/www/us/en/chipsets/x58-express-chipset-datasheet.html

Intel I/OController Hub 10 (ICH 10) Family Datasheet南桥手册:http://www.intel.com/content/www/us/en/io/io-controller-hub-10-family-datasheet.html

西安交通大学微机原理与接口技术:http://mcit.xjtu.edu.cn/wlkj/new_page_main.htm

中山大学微机原理与接口技术:http://sist.sysu.edu.cn/wjyl/index.html

8042键盘控制器:http://stanislavs.org/helppc/8042.html

键盘扫描码:http://www.mouseos.com/os/doc/scan_code.html

http://www.win.tue.nl/~aeb/linux/kbd/scancodes.html

MicrosoftWindows Keyboard Scan Code Specification:http://download.microsoft.com/download/1/6/1/161ba512-40e2-4cc9-843a-923143f3456c/scancode.doc

Intel 8253PIT:http://en.wikipedia.org/wiki/Intel_8253

8254Programmable Interrupt Timer:http://ftp.utcluj.ro/pub/users/calceng/PMP/231164.pdf

提供多媒体计时器支持的指南(关于高精度计时器HPET):http://msdn.microsoft.com/zh-cn/windows/hardware/gg463347.aspx

高级配置与电源接口ACPI:http://www.acpi.info/

ACPI规范5:http://www.acpi.info/spec50.htm

USB:http://www.usb.org/developers/docs/

保护模式中断

PIC:http://en.wikipedia.org/wiki/Intel_8259

APIC:http://en.wikipedia.org/wiki/Advanced_Programmable_Interrupt_Controller

IA32中断研究:http://wenku.baidu.com/view/d3ada6dd5022aaea998f0f1b.html

Linux内核中断内幕:http://www.ibm.com/developerworks/cn/linux/l-cn-linuxkernelint/index.html

Linux的中断:http://www.biosren.com/viewthread.php?tid=391

调用门、中断门和陷阱门的区别:http://stackoverflow.com/questions/3425085/the-difference-between-call-gate-interrupt-gate-trap-gate

不可屏蔽中断:http://en.wikipedia.org/wiki/Non-maskable_interrupt

The x86 NMI iret problem:http://lwn.net/Articles/484932/

磁盘

主引导记录(MBR)数据结构:http://blog.csdn.net/firas/article/details/8665366 FAT、NTFS卷引导记录数据结构:http://blog.csdn.net/firas/article/details/8787506

http://en.wikipedia.org/wiki/Master_boot_record

硬盘知识大概:http://wenku.baidu.com/view/c17688c7bb4cf7ec4afed04d.html

关于ATA:http://www.ata-atapi.com/

负责ATA/ATAPI的技术委员会T13官方网站:http://www.t13.org/

SATA官方网站:http://www.sata-io.org/

负责SCSI的技术委员会T10官方网站:http://www.t10.org/

ATA/ATAPI 8命令集草稿:http://www.t13.org/documents/UploadedDocuments/docs2007/D1699r4a-ATA8-ACS.pdf

http://www.t13.org/documents/UploadedDocuments/docs2011/d2015r7-ATAATAPI_Command_Set_-_2_ACS-2.pdf

http://www.t13.org/Documents/UploadedDocuments/docs2013/d2161r5-ATAATAPI_Command_Set_-_3.pdf

SATA规范3.2草稿:http://www.knowledgetek.com/graphicsNew/SerialATA_Revision_3_2_Gold(with%20Links).pdf

SATA规范3.0草稿:http://www.lttconn.com/res/lttconn/pdres/201005/20100521170123066.pdf

SATA的AHCI接口规范:http://www.intel.com/content/www/us/en/io/serial-ata/ahci.html

关于保护模式读写磁盘:http://bbs.pediy.com/showthread.php?t=171927

使用DMA读写硬盘:http://occh.net/wordpress/?p=324

内存管理

What every programmer shouldknow about memory: http://lwn.net/Articles/250967/

吴晓勇,曾家智。操作系统内核中动态内存分配机制的研究。成都信息工程学院学报,第20卷第1期,2005年2月:27~30

徐蓉。实时系统的内存管理技术研究与实现。电子科技大学硕士学位论文,2004年

谢长生,刘志斌。Linux 2.6内存管理研究。计算机应用研究,2005年:58~60

沈勇,王志平,庞丽萍。对伙伴算法内存管理的讨论。计算机与数字工程,第32卷:40~43

伙伴算法:http://blog.csdn.net/orange_os/article/details/7392986

胡兆阳,谢余强,舒辉。Windows下堆内存管理机制研究。计算机工程与应用,2005.17:59~61

Mengxiao Liu, Weixing Ji, ZuoWang, Jiaxin Li, Xing Pu. “High Performance Memory Management for A Multi-coreArchitecture”. IEEE Ninth International Conference on Computer and InformationTechnology. 2009. pp. 63-68.

页面置换

http://en.wikipedia.org/wiki/Page_replacement_algorithm

文件系统

http://zh.wikipedia.org/wiki/FAT

http://zh.wikipedia.org/zh-cn/NTFS

http://zh.wikipedia.org/wiki/ReiserFS

http://zh.wikipedia.org/wiki/XFS

http://zh.wikipedia.org/wiki/ZFS

各种文件系统的比较:http://en.wikipedia.org/wiki/Comparison_of_file_systems

MSWIN4.1OS Boot Record:http://thestarman.pcministry.com/asm/mbr/MSWIN41.htm

Boot Record of FAT:http://home.freeuk.net/foxy2k/disk/disk3.htm

FAT32:http://wenku.baidu.com/view/add07dfc910ef12d2af9e751.html

超通俗FAT32:http://wenku.baidu.com/view/e2fb140590c69ec3d5bb7543.html

NTFS File System Overview:http://www.c-jump.com/bcc/t256t/Week04NtfsReview/index.html

The New Technology FileSystem:http://link.springer.com/content/pdf/10.1007/978-1-84628-732-9_6.pdf

NTFS:http://wenku.baidu.com/view/0a467b175f0e7cd184253652.html

NTFS文件系统:http://wenku.baidu.com/view/d26bec1ca76e58fafab00390.html

Master File Record(主文件记录):http://msdn.microsoft.com/en-us/library/bb470206(v=vs.85).aspx

Inside Win2K NTFS, Part 1: http://msdn.microsoft.com/en-us/library/ms995846.aspx

Inside Win2K NTFS, Part 2: http://windowsitpro.com/systems-management/inside-win2k-ntfs-part-2

Ext3/4磁盘布局:http://wenku.baidu.com/view/db827320192e45361066f5ad.html

Ext2和Ext3文件系统:http://wenku.baidu.com/view/72b04d7302768e9951e738b8.html

CDFS(ISO 9660):http://zh.wikipedia.org/wiki/ISO_9660

通用光盘格式(UDF):http://zh.wikipedia.org/wiki/通用光盘格式

可执行文件格式

ELF文件格式:http://www.sco.com/developers/devspecs/gabi41.pdf

ELF-64文件格式:http://downloads.openwatcom.org/ftp/devel/docs/elf-64-gen.pdf

PE文件格式:http://msdn.microsoft.com/library/windows/hardware/gg463125

PE文件格式详解:http://www.vckbase.com/index.php/wv/1057 http://www.vckbase.com/index.php/wv/1058

map文件介绍及使用查错:http://blog.csdn.net/mark_chan/article/details/5104952

BSS段:http://en.wikipedia.org/wiki/.bss

显示与显卡

VESA BIOS Extension(VBE) 3.0标准:http://www.petesqbsite.com/sections/tutorials/tuts/vbe3.pdf

最新VESA显示器时序标准(DMT_v1.0_r12p):http://wenku.baidu.com/view/e4ac87956bec0975f465e2ea.html

http://en.wikipedia.org/wiki/VESA_BIOS_Extensions

http://jelleybee.com/projects/software/pc_asm/int_10h/INT_10h_4Fxx_VESA.txt

http://www.stanford.edu/class/cs140/projects/pintos/specs/freevga/vga/crtcreg.htm

http://www.stanford.edu/class/cs140/projects/pintos/specs/freevga/vga/vga.htm

在保护模式中显示文字(需有C语言库):http://blog.csdn.net/guzhou_diaoke/article/details/8459541

GPU:

http://www.nvidia.com/object/cuda_home_new.html

http://developer.amd.com/resources/heterogeneous-computing/opencl-zone/

http://gpgpu.org/

图形界面

X.org:http://www.x.org/wiki/

GNOME:http://www.gnome.org/

GNOME源码:http://www.oschina.net/code/explore/gnome-2.91.3

KDE:http://www.kde.org/

KDE源码:http://www.oschina.net/code/explore/kde-4.5.4

Xfce:http://www.xfce.org

谢煜波《做一个支持图形界面的操作系统》

Unicode编码:http://www.unicode.org

International Components forUnicode:http://site.icu-project.org/home

字体

龚兵、张凤凌《True Type字体应用技术》五邑大学学报(自然科学版)1998年第12卷第1期第46~50页

史磊、吕强《True Type字形描述技术和TTF文件》中文信息产业化1995年第五期第54~59页

王瑜、黄源、张福炎《Windows中TrueType字形数据的存取技术》小型微型计算机系统1997年11月第18卷第11期

输入法

Fcitx输入法框架:https://fcitx-im.org/wiki/Fcitx

赵杨《XIM协议的原理及其实现》:http://www.ibm.com/developerworks/cn/linux/i18n/xim/xim-2/index.html

吴海辉《笔画码汉字输入法软件设计与实现》安徽大学硕士学位论文

图片文件格式

http://zh.wikipedia.org/wiki/BMP

BMP文件格式详解:http://blog.csdn.net/o_sun_o/article/details/8351037

JPEG文件编码解码详解:http://blog.csdn.net/lpt19832003/article/details/1713718

PNG文件格式详解:http://blog.csdn.net/bisword/article/details/2777121

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 编写PC操作系统的参考资料
    • 编译器等工具
      • 总体
        • 数据结构
          • 算法
            • Linux参考
              • BSD、Unix参考
                • Microsoft的OS参考
                  • CPU架构
                    • 进程和线程
                      • 多线程同步
                        • BIOS中断
                          • EFI/UEFI
                            • IO
                              • 保护模式中断
                                • 磁盘
                                  • 内存管理
                                    • 页面置换
                                      • 文件系统
                                        • 可执行文件格式
                                          • 显示与显卡
                                            • 图形界面
                                            相关产品与服务
                                            腾讯云代码分析
                                            腾讯云代码分析(内部代号CodeDog)是集众多代码分析工具的云原生、分布式、高性能的代码综合分析跟踪管理平台,其主要功能是持续跟踪分析代码,观测项目代码质量,支撑团队传承代码文化。
                                            领券
                                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档