A Simple 32-bit OS lab tutorial.

Overview

summer

一个支点撬动操作系统大山


项目名称:逸仙OS简明教程 ( YatSenOS Volume First )
所属机构:中山大学操作系统实验课程组

写在前面

项目结构

  • appendix用于存放一些先修知识的介绍。
  • labX用于存放第X次实验,在labX文件夹下
    • gallery用于存放指导材料中的图片资源。
    • src用于存放示例代码。
    • README.md是指导材料。
  • env用于存放特定版本的软件。
  • references用于存放参考资料。
You might also like...
This repository contains notes and starter code for Bit manipulation and mathematics session for DSA bootcamp organized by Codeflows.

Bitmanipulation_maths This repository contains notes and starter code for Bit manipulation and mathematics session for DSA bootcamp organized by Codef

Starting with OpenCV and Qt on MacOS is a bit of difficult if you haven't installed and used libraries in XCode.
Starting with OpenCV and Qt on MacOS is a bit of difficult if you haven't installed and used libraries in XCode.

OpenCV and Qt on MacOS Introduction Starting with OpenCV and Qt on MacOS is a bit of difficult if you haven't installed and used libraries in XCode. T

simple and fast scripting language

The Aument Language The Aument language is a work-in-progress dynamically-typed scripting language with performance first: this scripting language is

A simple messenger written in C for Principal of Programming course final project
A simple messenger written in C for Principal of Programming course final project

Mohsenger A simple messenger written in C for Principal of Programming course final project Implemented by socket and sqlite3 dbms and single thread c

λQ: A Simple Quantum Programming Language based on QWIRE.

λQ λQ: A Simple Language based on QWIRE which can be compiled to QASM. The name λQ means lambda calculus with quantum circuits. This is a term project

This is a simple UNITEST to test the implementation of the the various container types of the C++ standard template library

ft_container UNITest. This is a simple UNITEST to test the implementation of the the various container types of the C++ standard template library that

A simple program to solve Math3 book problems.
A simple program to solve Math3 book problems.

MathMan Program This is a simple program to solve Math3 book problems. Explore the docs » View Demo · Report Bug · Request Feature Table of Contents A

A simple floating clock for Linux
A simple floating clock for Linux

Hoverclock Hoverclock is a simple, yet customizable floating clock for Linux created with QT. Table of contents General info Technologies Quick note U

A Simple Toy Programming Language
A Simple Toy Programming Language

Tovie Lang Small toy programming language. Docs : https://github.com/Jaysmito101/tovie/wiki Examples : 1. Hello World proc_0 "Hello" 32 "World!"

Comments
  • 记录一下 lab2 实操过程出现的问题及其解决办法

    记录一下 lab2 实操过程出现的问题及其解决办法

    环境:ubuntu 16.04

    1. 编写 MBR
    • 现象:输入
    qemu-system-i386 -hda hd.img -serial null -parallel stdio 
    

    无法启动 qemu,提示

    WARNING: Image format was not specified for 'hd.img' and probing guessed raw.
             Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted.
             Specify the 'raw' format explicitly to remove the restrictions.
    Could not initialize SDL(No available video device) - exiting
    

    原因:提示已经很清楚了,需要换一种指明格式的写法输入命令:

    qemu-system-i386 -drive file=hd.img,format=raw,index=0,media=disk -serial null -parallel stdio -curses
    

    -drive 那一串跟 -hda 是一个意思,只是写法形式不一样,后面加的 -curses 是为了解决 Could not initialize SDL(No available video device) - exiting,但是不知道如何在 mac 下退出 -curses 模式,只能 kill 掉 qemu 进程

    opened by rust17 0
  • 记录一下 lab1 实操过程出现的问题及其解决办法

    记录一下 lab1 实操过程出现的问题及其解决办法

    1. 编译内核
    • 现象:在执行完 make menuconfig 后无法找到 bzImagevmlinux
    • 原因:一开始 lab1 使用了非用户根目录,而是在其他的目录里面,后来把 lab1 放在 ~/ 下再重新操作一遍就好了
    1. 加载 Busybox
    • 现象:在执行
    qemu-system-i386 -kernel linux-5.10.19/arch/x86/boot/bzImage -initrd initramfs-busybox-x86.cpio.gz -nographic -append "console=ttyS0"
    

    时,控制台提示:

    [    2.095489] Run /init as init process
    [    2.096723] Failed to execute /init (error -8)
    [    2.099737] Run /sbin/init as init process
    can't run '/etc/init.d/rcS': No such file or directory
    can't open /dev/tty2: No such file or directory
    can't open /dev/tty3: No such file or directory
    can't open /dev/tty4: No such file or directory
    
    • 原因:自定义的 init 程序执行失败,执行了 BusyBox 自己的 init 程序,导致了一些连带问题。后来修改 init 文件如下就可以了:
    #!/bin/sh
    mount -t proc none /proc
    mount -t sysfs none /sys
    echo -e "\nBoot took $(cut -d' ' -f1 /proc/uptime) seconds\n"
    exec /bin/sh
    
    opened by rust17 0
Owner
Yat-Sen OS
Operating System Projects of Sun Yat-Sen University.
Yat-Sen OS
Simulation code for the specific PDP-10 serial number 32 at the Stanford A. I. Lab in 1974 as a solo processor with all the I/O devices simulated as on the PDP-10. Omit the co-processor PDP-6 sn16.

KA10 sn32 Synopsis This repository contains software and documentation for running the unique PDP-10 KA serial number 32 that was at Stanford in July

Saildart Archive 4 Aug 7, 2021
Implementation using C in programming lab class when being Teacher Assistant.

C Programming Lab Implementation using C in programming lab class when being Teacher Assistant. The problems are here Problems and Description Week2 w

Tsuen Hsueh 1 Aug 16, 2022
A gtk4 tutorial for beginners

This tutorial illustrates how to write C programs with Gtk4 library. It focuses on beginners so the contents are limited to basic things such as widgets, GObject, signal, menus and build system. Please refer Gnome API reference for further topics.

ToshioCP 303 Dec 28, 2022
📚 Modern C++ Tutorial: C++11/14/17/20 On the Fly

The book claims to be "On the Fly". Its intent is to provide a comprehensive introduction to the relevant features regarding modern C++ (before 2020s). Readers can choose interesting content according to the following table of content to learn and quickly familiarize the new features you would like to learn. Readers should be aware that not all of these features are required. Instead, it should be learned when you really need it.

Changkun Ou 19.6k Jan 8, 2023
Nvidia contributed CUDA tutorial for Numba

This is an adapted version of one delivered internally at NVIDIA - its primary audience is those who are familiar with CUDA C/C++ programming, but perhaps less so with Python and its ecosystem.

Numba 177 Dec 31, 2022
Unicorn CPU emulator framework tutorial

使用unicorn-engine开发模拟器 什么是unicorn引擎 Unicorn是基于qemu开发的一个CPU模拟器,支持常见的各种指令集,能在各种系统上运行。 GITHUB项目地址:https://github.com/unicorn-engine/unicorn 官网地址:https://w

null 9 Mar 9, 2022
Zephyr Tutorial for Beginners

Zephyr: Tutorial for Beginners This repository contains a step-by-step guide that teaches you how to use Zephyr RTOS. It assumes: no previous experien

null 124 Dec 27, 2022
C++ OpenGL 3D Game Tutorial Series - Learn to code an OpenGL 3D Game in C++ from scratch

C++ OpenGL 3D Game Tutorial Series is a YouTube Tutorial Series, whose purpose is to help all those who want to take their first steps in the game dev

 PardCode 118 Dec 22, 2022
Tutorial: Writing a "bare metal" operating system for Raspberry Pi 4

Tutorial: Writing a "bare metal" operating system for Raspberry Pi 4

Adam Greenwood-Byrne 2.5k Dec 31, 2022
Tutorial how to use Travis CI with C++

travis_cpp_tutorial Branch master develop richel Tutorial how to use Travis CI with C++. View the tutorial (screen friendly) Download the PDF Want to

Richel Bilderbeek 176 Dec 8, 2022