原创 自己動手從零寫桌面操作系統GrapeOS系列教程——12.QEMU+GDB調試

學習操作系統原理最好的方法是自己寫一個簡單的操作系統。 寫程序不免需要調試,寫不同的程序調試方式也不同。如果做應用軟件開發,相應的程序調試方式是建立在有操作系統支持的基礎上的。而我們現在是要開發操作系統,如何調試操作系統的程序呢?如果

原创 自己動手從零寫桌面操作系統GrapeOS系列教程——11.MBR介紹

學習操作系統原理最好的方法是自己寫一個簡單的操作系統。 前面我們介紹過電腦的啓動過程: 上電->BIOS->MBR(boot)->loader->kernel->交互界面(圖形/命令行) 本講我們要介紹的是MBR(Master Bo

原创 自己動手從零寫桌面操作系統GrapeOS系列教程——10.NASM彙編

學習操作系統原理最好的方法是自己寫一個簡單的操作系統。 彙編語法主要有兩種:Intel語法和AT&T語法。 由於大部分介紹x86彙編的書籍和資料用的都是Intel語法,畢竟x86就是Intel發明的,大家學過的x86彙編大概率也是In

原创 自己動手從零寫桌面操作系統GrapeOS系列教程——9.實模式介紹

學習操作系統原理最好的方法是自己寫一個簡單的操作系統。 在GrapeOS中會用到2種CPU模式,一種是實模式(real mode),另一種是保護模式(protected mode)。在本教程中,保護模式特指32位保護模式。這兩種模式最

原创 自己動手從零寫桌面操作系統GrapeOS系列教程——8.x86介紹

由於GrapeOS目前只支持x86,所以本講我們簡單的介紹一下x86。 百度百科上是這樣介紹的:x86泛指一系列基於Intel 8086且向後兼容的中央處理器指令集架構。 中央處理器就是我們平時說的CPU,英文全稱是Central Pr

原创 自己動手從零寫桌面操作系統GrapeOS系列教程——6.電腦啓動過程介紹

學習操作系統原理最好的方法是自己寫一個簡單的操作系統。 按一下電腦上的電源按鈕,電腦就啓動了,不一會兒電腦屏幕上就出現了登錄界面或直接進入了桌面。 這是一個很日常的場景,但有時候會有個疑問:電腦內部是如何啓動的?本講我們就簡單的介紹一

原创 自己動手從零寫桌面操作系統GrapeOS系列教程——5.GrapeOS開發環境測試

學習操作系統原理最好的方法是自己寫一個簡單的操作系統。 在上一講中我們已經安裝配置了開發環境,在本講中我們來測試一下開發環境是否正常。 我們的測試流程如下: 1.在Visual Studio Code中編寫GrapeOS代碼; 2.在

原创 自己從零寫操作系統GrapeOS系列教程——4.GrapeOS開發環境介紹

1. 開發環境簡介 爲了減少開發過程中不必要的麻煩,希望大家的開發環境儘量與我的保持一致。 我的開發環境如下: Windows10電腦一臺 Visual Studio Code(最好是最新版) VirtualBox 6.0.24 CentO

原创 自己從零寫操作系統GrapeOS——3.GrapeOS參考資料

站在巨人的肩膀上才能看的更遠。 我寫GrapeOS主要參考了以下4本書: 《30天自制操作系統》作者川合秀實 《操作系統真象還原》作者鄭剛 《一個64位操作系統的設計與實現》作者田宇 《Orange‘S:一個操作系統的實現》作者於淵 此外還

原创 自己從零寫操作系統GrapeOS——2.學習寫GrapeOS的前提條件

學習寫GrapeOS需要的前提條件主要有以下3點: 1.會x86彙編 2.會C語言 3.會用Linux 以上要求都不需要多麼熟練,其中x86彙編懂基本的指令,C語言懂基本的語法,會在虛擬機中安裝Linux、會用Linux的基本命令即可。 如

原创 自己從零寫操作系統GrapeOS——1.GrapeOS介紹

爲了學習操作系統原理我自己寫了一個簡單的操作系統,取名叫GrapeOS。 GrapeOS是一個x86多任務桌面操作系統,但非常簡單,代碼只有4千行。 下面我來簡單介紹一下GrapeOS的功能。 1.桌面 在桌面上可以通過鼠標雙擊“My C

原创 Linux啓動Apache服務器命令

systemctl start httpd

原创 Linux啓動mysql命令

service mysqld start

原创 Linux下MySQL或MariaDB忘記root密碼的解決方法

1.vim /etc/my.cnf 2.在[mysqld]下添加一行skip-grant-tables,然後保存並退出。 3.重啓mysql服務:service mysqld restart。 4.不用密碼直接登錄 mysql -u roo

原创 Spring Boot修改JSP不用重啓的辦法

在application.properties文件中添加一行代碼解決。 Spring Boot 2.0以上添加如下一行: server.servlet.jsp.init-parameters.development=true Sprin