我們組來了個新人/是個聲音好聽又瘦又漂亮的妹子

Password Protected.
發表時間:2020年6月10日 | 評論 | 全文

Github Daily Trending

推薦一個新站: https://readme.zkiz.com/ 簡介看對話 > Dull 下午 11:14:36 > https://readme.zkiz.com/ > > 平日看看還是挺方便的 > > Nico 下午 11:15:57 > 是啊,省去了在github找了 > > Dull 下午 11:16:20 > 也不用一個個點開 > > Nico 下午 11:16:43 > 是的Xd > > Dull 下午 11:17:23 > 兼容那些亂七八糟的markdown 和html 搞了很久 > > Nico 下午 11
發表時間:2020年6月8日 | 評論 | 全文

8. aCore - CPU 異常處理(1)

其實, CPU 也是一台計算器. 它也會返回不同的異常, 最常見的如: 除零、溢位。 那麼我們怎麼利用到CPU 的這些信息呢? 在這之前, 我們看看我們可能會有甚麼信息。 https://wiki.osdev.org/Exceptions#Faults 其中最重要的: 1. Page Fault: 寫到未划分的記憶體或者只讀記憶體. 2. Invalid Opcode: 查無此opcode 3. General Protection Fault: 包山包海的記體憶錯誤, 最常見是Segmentation fault, 也就是沒有讀取權限。 4. Double
發表時間:2020年5月31日 | 評論 | 全文

7. aCore - 全局界面

現在, 我們可以利用writer 去做事了。 但是, ```rust let mut writer = Writer { column_position: 0, color_code: ColorCode::new(Color::Yellow, Color::Black), buffer: unsafe { &mut *(0xb8000 as *mut Buffer) }, }; ``` writer 是個局部物件, 那麼要怎麼可以把它提到static 局域去呢? 在Rust 中, 有一個Crat
發表時間:2020年5月30日 | 評論 | 全文

6. aCore - 繼續完善字符輸出程序

在Rust 中, 我們都習慣用 writeln! write! panic! 等等的macro 作為字串流的後處理 那麼, 在`no_std` 中, 也是可以享用這些Rust 的特性的。 在`vga_buffer.rs` 中加入 ```Rust use core::fmt; //建議放第一行 impl fmt::Write for Writer { fn write_str(&mut self, s: &str) -> fmt::Result { self.write_string(s); Ok(()) } }
發表時間:2020年5月14日 | 評論 | 全文

5. aCore - 正確寫入Buffer 的姿勢 - Volatile

這篇文章之前已經打過一次, 但在開發的途中出現 Kernal Secrutiy Check Error ![](https://scontent-nrt1-1.xx.fbcdn.net/v/t1.0-9/p720x720/96696319_10158168999813965_8093637269677670400_o.jpg?_nc_cat=100&_nc_sid=110474&_nc_ohc=kxeXhAN5mVkAX8d-dXr&_nc_ht=scontent-nrt1-1.xx&_nc_tp=6&oh=7301c9c365a1fb8a69875a2d3ab69e55&oe=5EE0
發表時間:2020年5月14日 | 評論 | 全文

4. aCore - 抽象化VGA

雖然OS 還是基於`VGA Text Buffer`的, 但我們以這個作為起點, 再住下挖之前, 先做點上層抽象。 ```Rust #[allow(dead_code)] #[derive(Debug, Clone, Copy, PartialEq, Eq)] #[repr(u8)] pub enum Color { Black = 0, Blue = 1, Green = 2, Cyan = 3, Red = 4, Magenta = 5, Brown = 6, LightGray = 7,
發表時間:2020年5月13日 | 評論 | 全文

屎山推倒計劃

讀過前面幾篇, 應該都容易理解到, 為甚麼我要碰屎山... ![](https://i.imgur.com/Zu8LXtr.png) > 我想寫os內核,然後想把筆記寫成blog, 於是在改寫以前的blog 系統。 > 。。。這是傷心太平洋嗎? [![傷心太平洋](https://img.youtube.com/vi/b1SRjGmgA54/0.jpg)](https://www.youtube.com/watch?v=b1SRjGmgA54) 這是我這兩天的剷屎過程: - 連結 : https://github.com/abbychau/realblog/
發表時間:2020年5月12日 | 評論 | 全文

3. aCore - Hello World

終於來到 `Hello World` 了! 修改main.rs ```Rust #![no_std] #![no_main] use core::panic::PanicInfo; #[panic_handler] fn panic(_info: &PanicInfo) -> ! { loop {} } const HELLO: &[u8] = b"Hello, world!"; #[no_mangle] pub extern fn _start() -> ! { let vga_buffer = 0xB8000 as
發表時間:2020年5月10日 | 評論 | 全文

2. aCore - Boot image

## 試運行 生成binary 後, 那個binary 可以在本機os 中運行。 修改Cargo.toml ```toml [dependencies] bootloader = "0.6" [package.metadata.bootimage] default-target = "x86_64-aCore.json" ``` 執行: ```bash cargo install bootimage rustup component add llvm-tools-preview sudo apt install qemu-system-x86 # f
發表時間:2020年5月10日 | 評論 | 全文