void001 / neu-os Goto Github PK
View Code? Open in Web Editor NEWBased on linux0.11, break it down, then reassemble (For NEU Lab use)
Based on linux0.11, break it down, then reassemble (For NEU Lab use)
RT
配置git信息:ssh-keygen -t rsa -C "[email protected]"
时遇到command not found
问题
解决方案:输入如下命令:1、更新pacman软件包2、下载安装openssh
期间会遇到的选择:都选Y
更新完pacman下的软件包后,下载openssh,选Y安装
验证成功
感谢学长。
mm/mm_test.c
Line 46
The function is used to return a pointer to a page table entry, not a physical address. The code comment is not correct.
Current version of NEUOS contains many design problems, I will list them below
However these functions are not enough for a real operating system. At least the following funtion should be added:
Hard and unnecessary coding for students.
Many students are not familiar with AT&T assembly or the Intel Manual. Some assignments such as hardware init and floppy IO now require them to write in full AT&T assembly, thus make them frustrating. Learned from AIM-public, these unnecessary but complicated code need to be implemented by the NEUOS developer, and provide API to students, they could just use the API to issue disk IO commands, hardware init, etc.
And for a cleaner codebase, we need to remove the hand-written assembly as much as possible, instead, use C inline assembly as an alternative.
More formal debugging, cross building toolkit
We now combined QEMU gdb and Bochs GUI together to debug the project, but these methods are not enough, for example we need to have some internal debug tool, debug function.
And the toolchain for building NEUOS should be universal, from a specific architecture and ELF format, everyone can build NEUOS from its own toolchain, providing a Virtual Machine image is not a good choice for environment setup.
To be continued
mm/mm_test.c
Line 133 ~ line 136
The code in line 135 is going to make WP valid, but the code comment in line 133 says it is going to make WP invalid.
So, I guess the right code should be
"andl $0x11101111, %%eax\n\t"
in setup.s line 183
enable the A20 line will allow referencing to memory above 1MB, not 64KB
File: kernel/signal.c
Line: 50
Column: 22
In linux v0.11 source code, this char is "&" instead of "|".
The operator "|" should be changed to "&" since that sa-> sa_flags is normally not zero, so I guess this use of bit operation is wrong.
There's something wrong in the make file of the tags. It needs to be replaced by the correct head of the make in the master.
Found in lv7, mm / memory.c line 111 "trying" is written as "tring" wrongly.
Comment: 1 click = 16 bytes instead of 16 bits
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.