# cunix **Repository Path**: intirain/cunix ## Basic Information - **Project Name**: cunix - **Description**: cunix系统内核代码 - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2021-03-27 - **Last Updated**: 2022-05-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README Cunix kernel ============ # Versions `0.362s-boot`:     `Boot` read `loader` from `boot-device`, then it jumps to it.
    Loader doesn't load anything, it just enable long-mode and paging.
    Loader defines temporary page table at `0x70000` (0x0000:0x7000),
    it uses `2MB` page to make 0-12 MB memory to `0x0000 - 0xc0000`.
`0.385s-boot`:     rebuild `boot` and `loader`.
`0.391s-boot`:     `loader` forgot open A20 line, so `0.385` and `0.362` just can
    use 1MB memory like real-mode.
`0.432s-boot`:     make directory `include/`, and add segment.inc, but it doesn't work. :-)
`0.451s-boot`:     `boot` can load 8 sectors (4KB) of loader (not 1 sector).
`0.466s-boot`:     rebuild `boot`
`0.487s-boot`:     `loader` let FS can access 4GB memory in real-mode. because
    `loader` loaded GDT and load a data-segment to fs, then disable
    protect-mode.
`0.484s-boot`:     let `readdisk.inc` smaller, but we just can use CHS or LBA, not both.
`0.509s-kernel`:     load kernel to 0x8200-0x9200 for 4KB, kernel.asm display 'K' to screen.
`0.556s-int`:     init IDT at 0x0000-0x1000, and set all handler at `ignore_int`, but it do nothing.
`0.619s-boot`:     load 180KB of disk, not 4KB
`0.566s-kernel`:     write in C.
`0.790s-kernel`:     make some structs
`1.384s-hal`:     use text VGA mode, and make a file-operations of it.
`1.440s-lib`:     make some macros about assembly.
`1.562s-init`:     new head.s, re-init GDT and IDT.
`1.217s-init`:     nt for file-operations, and remove all modules.
`1.302s-module`:     there is a bug with loader: it cannot load kernel because 0 - 8 = -8 (not 0).
    so we read it byte by byte. and we used assembly to wrote a tty driver. It just can putchar now.
`1.690s-module`:     new function printf, put format string on screen.
    and, new panic.S to `kernel panic`.
`1.727s-module`:     add support '\n' for printf.
`1.760s-module`:     accept fault or interrupt in head.s
`1.879s-memory`:     init page table in head.S, it can map 0-64MB memory (32 pages).
`2.086s-module`:     support 'roll' screen, and create some functions (string.h).