Skip to content

Commit

Permalink
Updated docs
Browse files Browse the repository at this point in the history
  • Loading branch information
jeffreyc2017 committed Jul 24, 2024
1 parent b5dcb88 commit fa47349
Show file tree
Hide file tree
Showing 7 changed files with 82 additions and 160 deletions.
152 changes: 0 additions & 152 deletions README.md

This file was deleted.

1 change: 1 addition & 0 deletions README.md
22 changes: 18 additions & 4 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,24 @@

### 预置条件

1. 原代码的目标机器是 32 位 x86 CPU;
1. 原代码的目标机器是 32 位 x86 CPU,如书中所说:
> 本书以 IBM PC/AT 兼容机(也就是所谓的 Windows 个人电脑)为对象进行说明。至于其他机型 8,比如 Macintosh(苹果机)或者 PC-9821 等,虽然本书也参考了其中某些部分,但基本上无法开发出在这些机型上运行的操作系统,这一点还请见谅。严格地说,不是所有能称为 AT 兼容机的机型都可以开发我们这个操作系统,我们对机器的配置要求是 CPU 高于 386(因为我们要开发 32 位操作系统)。换句话说,只要是能运行 Windows 95 以上操作系统的机器就没有问题,况且现在市面上(包括二手市场)恐怕都很难找到 Windows 95 以下的机器了,所以我们现在用的机型一般都没问题
2. 原代码使用 NASM(Netwide Assembler) syntax;
3. 项目代码中的日文编码为 Japanese(Shift-JIS);
4. 原项目文件为 dos 格式,在 Linux 上需使用 dos2unix 进行文件格式转换。
4. 原项目文件为 dos 格式,在 Unix-like system 上需使用 dos2unix 进行文件格式转换。

### 目标效果

1. 尽量保持原代码文件不做变更,仅做必要的修改以使编译通过;
2. 主要的修改在于 Makefile,Makefile 文件结构尽量保持与原有代码中的 Makefile 结构一致;

### 遗留问题

1. 文档中英文混杂,尚未有时间整理;
2. 31day 中的代码基于 30day 代码进行补充优化,尚未完成:
- 暂只支持 FAT12
- 在大容量内存下 mem 命令输出为负值

## 工具

- mtools
Expand Down Expand Up @@ -145,8 +152,15 @@ Copyright (c) 2003-2021 Fabrice Bellard and the QEMU Project developers

```sh
.
├── docs: Github pages 文件夹
├── projects: 项目代码
├── .github: github workflow
├── .vscode: vscode settings
├── docs: Github pages 文件夹。可以用 docsify serve docs 在本地查看
├── projects: 项目代码。包含原《30天自制操作系统》源代码并进行必要的格式转换和修改(见docs/modifications.md)。并增加31day(WIP)
├── README.md: 说明(本文档)
└── utils: 运行项目代码用到的辅助工具
├── libc 标准库函数
├── linker_script 用于链接hrb格式文件的链接描述文件
├── checkendian.c 用于检查大小端序的小程序
├── makefont.c 用于转换hankaku.txt生成字库hankaku.asm 的小程序
└── platform_config.mk 用于检测操作系统环境的makefile片段
```
22 changes: 18 additions & 4 deletions docs/zh-cn/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,24 @@

### 预置条件

1. 原代码的目标机器是 32 位 x86 CPU;
1. 原代码的目标机器是 32 位 x86 CPU,如书中所说:
> 本书以 IBM PC/AT 兼容机(也就是所谓的 Windows 个人电脑)为对象进行说明。至于其他机型 8,比如 Macintosh(苹果机)或者 PC-9821 等,虽然本书也参考了其中某些部分,但基本上无法开发出在这些机型上运行的操作系统,这一点还请见谅。严格地说,不是所有能称为 AT 兼容机的机型都可以开发我们这个操作系统,我们对机器的配置要求是 CPU 高于 386(因为我们要开发 32 位操作系统)。换句话说,只要是能运行 Windows 95 以上操作系统的机器就没有问题,况且现在市面上(包括二手市场)恐怕都很难找到 Windows 95 以下的机器了,所以我们现在用的机型一般都没问题
2. 原代码使用 NASM(Netwide Assembler) syntax;
3. 项目代码中的日文编码为 Japanese(Shift-JIS);
4. 原项目文件为 dos 格式,在 Linux 上需使用 dos2unix 进行文件格式转换。
4. 原项目文件为 dos 格式,在 Unix-like system 上需使用 dos2unix 进行文件格式转换。

### 目标效果

1. 尽量保持原代码文件不做变更,仅做必要的修改以使编译通过;
2. 主要的修改在于 Makefile,Makefile 文件结构尽量保持与原有代码中的 Makefile 结构一致;

### 遗留问题

1. 文档中英文混杂,尚未有时间整理;
2. 31day 中的代码基于 30day 代码进行补充优化,尚未完成:
- 暂只支持 FAT12
- 在大容量内存下 mem 命令输出为负值

## 工具

- mtools
Expand Down Expand Up @@ -145,8 +152,15 @@ Copyright (c) 2003-2021 Fabrice Bellard and the QEMU Project developers

```sh
.
├── docs: Github pages 文件夹
├── projects: 项目代码
├── .github: github workflow
├── .vscode: vscode settings
├── docs: Github pages 文件夹。可以用 docsify serve docs 在本地查看
├── projects: 项目代码。包含原《30天自制操作系统》源代码并进行必要的格式转换和修改(见docs/modifications.md)。并增加31day(WIP)
├── README.md: 说明(本文档)
└── utils: 运行项目代码用到的辅助工具
├── libc 标准库函数
├── linker_script 用于链接hrb格式文件的链接描述文件
├── checkendian.c 用于检查大小端序的小程序
├── makefont.c 用于转换hankaku.txt生成字库hankaku.asm 的小程序
└── platform_config.mk 用于检测操作系统环境的makefile片段
```
6 changes: 6 additions & 0 deletions utils/checkendian.c
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
/*
* Author: jeffreyc2017
*
* License: MIT
*/

#include <stdio.h>

int main() {
Expand Down
6 changes: 6 additions & 0 deletions utils/linker_script/hrb.lds
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
/*
* Author: jeffreyc2017
*
* License: MIT
*/

/*
From 22 day section 5

Expand Down
27 changes: 27 additions & 0 deletions utils/makefont.c
Original file line number Diff line number Diff line change
@@ -1,3 +1,30 @@
/*
*
* Author: jeffreyc2017
*
* Description:
* A tool to convert hankaku.txt to hankaku.asm.
*
* License: MIT
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
Expand Down
6 changes: 6 additions & 0 deletions utils/platform_config.mk
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
/*
* Author: jeffreyc2017
*
* License: MIT
*/

# File: platform_config.mk

# Detect if we're on a Raspberry Pi
Expand Down

0 comments on commit fa47349

Please sign in to comment.