2019年7月31日 星期三

備份》歌詞 │ 姚文智競選曲【憨智回頭】老天鵝金曲改編 │ 唱:郭子 Guo Zi │ 原作:茄子蛋/浪子回頭

幫忙記錄下經典的改編歌曲的歌詞,
有附歌詞檔可供下載或列印。




【老鵝金曲改編】 憨智回頭 (原曲:茄子蛋/浪子回頭)feat.郭子 Guo Zi



改編:老天鵝娛樂
唱聲:郭子 Guo Zi
原作:茄子蛋
原曲:浪子回頭


貓一隻一隻一隻的換 票一張一張一張咧流
無人要支持我 我頭腦無好賣嘎挖衝康
民調一趴一趴一趴咧落 貓一隻一隻一隻咧嚎
我若是 選未條 帶TOGI逗陣
憨子回頭

2019年7月30日 星期二

自製64位元作業系統16──進入64位元長模式

  我們終於要呼應標題了,進入64位元的長模式。從此以後,我們就是名副其實的64位元作業系統了。不過在開始之前,先跟大家說,我們的程式常常會有一些設計上的問題,所以時常會變動,建議大家去我的GitHub隨時找尋最新版本。進入64位元的主要工作已經在上一篇文章處理好了,現在我們只要做出一個64位元的GDT就可以了。我們可以參考AMD64 Architecture Programmer’s Manual, Volume 2: System Programming的4.8.1來設定。

2019年7月28日 星期日

【Server.pro 進階教學】 如何開地圖以及指伺服器指令區

上次介紹了何謂server.pro以及其一般遊玩的注意事項
今天我們來說說server.pro常用的其他功能八

如何安裝地圖?????

當原味生存玩膩了之後
是否常常會想玩玩別人做的精美地圖
挑戰那極限的跑酷
解出地圖之謎
又獲著深入恐怖領域探索其神秘
我們就來說說如何讓這一切得以執行?????

2019年7月27日 星期六

自製64位元作業系統15──進入32位元相容模式

  我們之前已經證明可以使用C語言了,不過我想了想,我希望在最快速度進入長模式,不想搞太多花樣,所以我們改成利用組合語言先繼續。我自己利用了一些時間,將我們之前的程式分成數個檔案,然後放到一個資料夾裡,讓我們的主要資料夾乾淨一些。我們之後利用之前讀取核心的方法,如法炮製,再做一個可以讀取kernel64.elf的程式,讓我們之後可以使用。

2019年7月26日 星期五

安卓操作004 - 下載應用程式:Play商店篇

 CHAWTeam  Jul 26, 2019


在這世上,有超過百萬種應用程式被開發,提供使用者最好的服務。
本篇以手機應用程式為主。

商店平臺

應用程式若委託大型商店平臺代管,除了能增加自己的曝光度,也讓使用者有個安全的保證。
以下為常見的應用程式商店:
  • Play 商店
  • APP store
  • Microsoft store
本篇文章以 Play 商店 與 Google 助理 為範例。

環境

螢幕上方有搜尋欄,可快速在數百萬應用程式中,找到符合搜尋條件的應用程式。
也可以於首頁查看推薦的應用程式。

2019年7月25日 星期四

自製64位元作業系統14──進入核心

我們已經萬事俱備,只欠最後一部:跳進核心。核心的位置已經在我們讀取核心的函式的時候被存在EAX暫存器中了。我們輕輕鬆鬆就可以利用JMP指令來跳入核心,像是這樣。

2019年7月24日 星期三

備份》歌詞 │ 四年一次照妖鏡【千本選舉】老天鵝金曲改編 │ 唱:郭子 Guo Zi │ 原作:初音未來/千本櫻

幫忙記錄下經典的改編歌曲的歌詞,
有附歌詞檔可供下載或列印。




【老鵝金曲改編】千本選舉 (原曲:初音未來/千本櫻)feat.郭子 Guo Zi



改編:老天鵝娛樂
唱聲:郭子 Guo Zi
原作:初音未來
原曲:千本櫻


選舉 選舉 選舉 選舉
選舉 選舉 選舉 選舉
選舉 選舉 選舉 選舉
藍綠 藍綠 藍綠 藍綠
選呼爽(x16)

2019年7月23日 星期二

自製64位元作業系統13──核心檔案

我們的Boot Loader,準備好讀取核心了。但是我們的核心根本還沒有生出來。我們先寫一個無限迴圈的程式,加上一些奇怪的變數以測試我們的系統是否完善。

2019年7月22日 星期一

安卓操作003 - 桌面設定:桌布、應用程式、小工具的設定

 CHAWTeam  Jul 22, 2019

目錄:從0到100的安卓操作
上一篇:安卓操作002 - (2) 忘記Google帳戶密碼或電子郵件
下一篇:安卓操作004 - 下載應用程式

Android一大特色是其自由的個人化,創造出屬於自己的桌面環境。

認識桌面

通常「首頁」意指「桌面」。
Android預設桌面上會有一些應用程式與小工具,可以供使用者快速瀏覽資訊或開啟應用程式,更有部分使用者會特別設計桌面,讓顯示畫面更加美觀。部分手機會在桌面新增一個頁面,顯示Google的即時資訊。
輕觸即可開啟應用程式或小工具。
桌面上的每一頁都有空間上限。

應用程式

英文簡稱App。是針對某個特殊目的,而產生的虛擬服務。依使用者需求或愛好,自行使用他人設計的應用程式。

2019年7月20日 星期六

自製64位元作業系統12──讀取核心

這次我們要接續上一篇文章,繼續讀取我們的核心。我們上次找到Inode的編號,找到對應的Block group,再跳到Inode table裡面,那個編號的檔案Inode。

2019年7月18日 星期四

自製64位元作業系統11──尋找核心

我們繼續進行讀取核心的準備工作,今天的目標就是讀取核心(雖然我們根本還沒有核心)。要讀取一個Ext2檔案系統,首先一定要找到Superblock,並且透過裡面的資訊來定位其他必要的檔案位置。
在Ext2檔案系統中,Superblock從1024的位置開始,所以我們要先讀取這個東西。至於我們要讀取到哪裡呢?可以參考https://people.cs.nctu.edu.tw/~huangmc/works/web/Boot_x86/Boot_x86.html,裡面有最底下1MB記憶體的空閒區域(我們先暫時不要用到1MB以上的空間,因為以後要拿來放核心)。所以隨便找一個風水(?)好的位置,就可以放進去了。我挑選的位置是0x1000。

2019年7月17日 星期三

備份》歌詞 │ 打臉自己重啟核電【缺電英】老天鵝金曲改編 │ 原作:田馥甄/小幸運

幫忙記錄下經典的改編歌曲的歌詞,
有附歌詞檔可供下載或列印。



【老鵝金曲改編】缺電英 ( 原曲:田馥甄/小幸運)



改編:老天鵝娛樂
原作:田馥甄
原曲:小幸運


:很久很久以後我們才知道
:當一個總統說 我們再也不缺電
:不是真的不缺電
:而是 她在唬爛你
:選前選後 都騙你

我聽見冷氣 發出吱吱聲音
我看見電燈 又在閃爍不定
可是我不懂會跳電的原因 英文說過沒問題

2019年7月16日 星期二

自製64位元作業系統10──用Inode讀取Block

在EXT2檔案系統中的每一個檔案都會有一個Inode,這個Inode裡面會有檔案儲存的區塊資料。區塊資料依照https://www.nongnu.org/ext2-doc/ext2.html文件,是在每一個Inode的第40Bytes開始。這段資料總共有15個4Bytes的空間,配置如下圖。

2019年7月15日 星期一

安卓操作002 - (1) 註冊及登入Google帳戶



Google  是全世界排名第二的公司,串連起世界各個資訊,其帳戶更可以同步處理所有資訊,「一個帳戶即可使用Google全部的服務!」
同步處理:任何一個裝置只要登入同一個Google帳戶,並連接網路,就可以即時顯示所有的操作變更。
如何從「設定  」登入Google帳戶?
輕觸設定,點選帳戶,於個人列表下點選新增帳戶。之後照以下順序即可完成。

註冊

建立Google帳戶

請輸入您的姓名。
  • 輸入姓氏
  • 輸入名字
輕觸繼續

2019年7月13日 星期六

自製64位元作業系統09──讀取硬碟

我們要開始進行讀取核心的準備工作。首先,我們要先製作一個讀取ATA的程式。
讀取ATA十分的麻煩,要了解ATA的各個暫存器的IO Port和使用方法。詳情可以參考這篇文章的介紹。https://wiki.osdev.org/ATA_PIO_Mode
利用這篇文章中,28bit PIO提供的方法,我們就要寫一個讀取硬碟的函式。
首先,我們要了解LBA的硬碟定址。

2019年7月12日 星期五

安卓操作002 - 新機設定:語言與地區、Wi-Fi、Google帳戶、你的姓名、Google服務


 CHAWTeam  Jul 7, 2019


每支手機在出廠時,都是原廠最初始的狀態。
在首次開機時,必須進行一些啟動操作,也要登入Google帳戶,作為手機的身分識別。
各手機的啟動操作略有不同,基本上照螢幕上的文字指示,就可以輕鬆完成。
記得完成後按下一步,切換到下一個頁面。

語言與地區

(以臺灣為例)手機會依出產地點,預先設定成「正體中文(臺灣)」或「繁體中文 - 臺灣」。
為什麼要選對語言與地區?
手機會依選擇的語言與地區,顯示我們熟悉的中文文字,也會依地區顯示正確的日期與時間。

Wi-Fi

常被誤用成「WiFi」、「wifi」。俗稱為「無線網路」、「無限熱點」,可以供裝置連接網路。
「Wi-Fi」僅是個名詞,無中文名稱,代表著「無線網路」的意思。
輕觸選取可供連接的Wi-Fi。如有密碼,輸入正確的密碼後,即可連接網路。
  1. 私人網路建議先告知網路擁有者後,再做連接。
  2. 公共網路應注意使用安全,避免連接未知的網路,以免個資外洩。
若沒有Wi-Fi可供連結,輕觸跳過,切換到下一個頁面

2019年7月11日 星期四

自製64位元作業系統08──正式移植到硬碟

我們的系統已經在軟碟一段時間了,是時候移動到硬碟了。其實我們之前的程式很容易就可以移到硬碟。不過我們要加一段有關硬碟分割的資訊的東西在裡面。

2019年7月10日 星期三

歌詞 (附影印檔) 王世堅solo【新台灣斷交夢】老天鵝金曲改編 │ 原作:黃安/新鴛鴦蝴蝶夢

幫忙記錄下經典的改編歌曲的歌詞,
有附歌詞檔可供下載或列印。




【老鵝金曲改編】新台灣斷交夢(原曲:黃安 /新鴛鴦蝴蝶夢)



改編:老天鵝娛樂
原作:黃安
原曲:新鴛鴦蝴蝶夢


昨日斷那聖多美 今日斷薩爾瓦多 上月斷布吉 納法索
外交被當盤子國 這些錢要賺好久 稅收都在中美洲
有的國名廢到笑 有的國名難到哭 外交兩個字 好無助
乾脆斷一個明白 要錢的都去吃土 不如廢掉外交部

2019年7月9日 星期二

自製64位元作業系統07──直接操控螢幕

我們在上一篇文章寫了有關於進入保護模式的內容。只要我們在保護模式,就沒有辦法利用BIOS中斷了,連印出訊息在螢幕上都不行。所以,我們今天要利用其它的方法,來直接操控螢幕。

2019年7月8日 星期一

【C程式設計】Unix時間計算

這個程式可以把年月日時分秒轉換為Unix Time(又稱POSIX Time,從1970年1月1日開始計算的秒數,不含閏秒)。
#include <stdio.h>
static long dpm[]
  = {0, 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334};
int main()
{
  unsigned long Y, M, D, h, m, s;
  puts("YYYY MM DD hh:mm:ss");
  scanf("%lu %lu %lu %lu:%lu:%lu", &Y, &M, &D, &h, &m, &s);
  if (M > 12 || Y < 1970 || h > 23 || m > 59 || s > 59) {
    return 1;
  }
  --D;
  D += dpm[M];
  if ((Y & 3) == 0 && ((Y % 100) != 0 || (Y % 400) == 0)) {
    if (M > 2) {
      D += 1;
    }
  }
  D += (Y - 1970) * 365;
  if (Y > 1972) {
    D += (Y - 1972) >> 2;
    D += (((Y - 1972) & 3) && 1);
    if (Y > 2000) {
      D -= (Y - 2000) / 100;
      D -= ((Y - 2000) % 100) && 1;

      D += (Y - 2000) / 400;
      D += ((Y - 2000) % 400) && 1;
    }
  }
  printf("%ld\n", D * 86400 + h * 3600 + m * 60 + s);
  return 0;
}

安卓操作001 - 基本操作:按鈕(電源鍵、音量鍵、智慧按鍵)、導覽列(返回、首頁、總覽)、手勢(返回、首頁、總覽)


 CHAWTeam  Jul 7, 2019


智慧型手機為方便使用者操作,都會配置幾個按鈕與插孔,或其他小物件。
以下介紹常見的手機配置,可能因廠牌、型號不同,而有差異。

按鈕


電源鍵

位置
手機側邊,常與音量鍵排列;或上方。
功能
開機、關機、開啟螢幕、關閉螢幕。
操作
  1. 長按:開機、關機。
長按電源鍵關機時,需點擊螢幕上的[關機]。
  1. 短按:開啟螢幕、關閉螢幕。

2019年7月7日 星期日

【C++程式設計】溫度換算器(℃、℉) │ if-else版

本程式僅提供華氏與攝氏的換算。

#include <iostream> #include <cstdlib>
using namespace std;
int main ()
{
    float a;
    char b;
    cout << "請輸入溫度(僅需輸入數字與英文字母。範例:32C或50f):";
    cin >> a >> b;
    if (b == 'c' || 'C')
    {
        cout << a*(9.0/5)+32 << 'F' << endl;
    }
    else if (b == 'f' || 'F')
    {
        cout << (a-32)*(5.0/9) << 'C' << endl;
    }
    else
        cout << "請輸入正確的內容,請重新運行本程式。";
    system ("pause");
    return 0;
}

【C程式設計】溫度換算器(℃、℉)

本程式提供華氏與攝氏的換算。
#include <stdio.h>
#include <ctype.h>
int main(void)
{
  double t; char c;
  scanf("%lf %c", &t, &c);
  c = toupper(c);
  if (c != 'C' && c != 'F') {
    puts("Please Check Your Data");
  }
  printf("RESULT = %f\n", c == 'C' ? (1.8 * t + 32): (5.0/9.0)*(t-32));
  return 0;
}

2019年7月6日 星期六

自製64位元作業系統06──進入保護模式

我們現在都還在bootloader裡面,之後,我們預計把之後會放在檔案系統中的核心讀取,並且放在記憶體1MB的地方。但是,目前我們只能讀取1MB以下的記憶體。今天,我們要開啟A20,並且進入32位元保護模式,讓我們之後更容易進行。

2019年7月5日 星期五

安卓操作000 - 認識安卓:認識、歷史、版本、平臺


 CHAWTeam  Jul 5, 2019


認識

「安卓」是華人對Android常見的別稱。本系列教學為更在地化,標題名稱均使用「安卓」命名,內文仍使用原名稱「Android」。
Android是一個自由度高的作業系統,有點像是一臺機器的核心,一般使用者不會直接與它接觸,可是沒有了它,很多東西都無法運作。像現在很多智慧型手機、平板電腦、智慧型穿戴設備等,都是搭載Android作業系統。
「系統」與「作業系統」的差別?

系統:同類事物按照一定的秩序或關係,而組成的整體。
作業系統:作業系統專指提供電腦基本運作的程式。
Android採圖形化介面,我們可以在螢幕上,直接用手指點擊顯示圖案,即可操控裝置。

2019年7月4日 星期四

自製64位元作業系統05──偵測記憶體

我們利用BIOS中斷來偵測記憶體的數據。偵測記憶體的方法是利用0x15號中斷,再配上0x88、0xE801、0xE820這三種功能號,就可以讀取記憶體的各種數據。
其中,前兩個方法都有許多大小上的限制(它們比較老舊),所以我們只實作利用0xE820功能號的偵測法。

2019年7月3日 星期三

備份》歌詞 │ 呂秀蓮不選的故事【不選我就退掉】老天鵝金曲改編 │ 原作:周杰倫/不愛我就拉倒

幫忙記錄下經典的改編歌曲的歌詞,
有附歌詞檔可供下載或列印。




【老鵝金曲改編】呂秀蓮-不選我就退掉 ( 原曲:周杰倫/不愛我就拉倒)



改編:老天鵝娛樂
原作:周杰倫
原曲:不愛我就拉倒


文智上了 靠邀
民進黨你 注定年底輸掉
祖母綠我最屌
我法律蓮 能讓台北更好

2019年7月2日 星期二

自製64位元作業系統04──組合語言的印訊息函式:使用BIOS中斷

我們之前每一次印出訊息都要重複好幾行的東西,而且每一次都要自己計算字串有多少的字數,十分麻煩。加上我們以前印出字的地方都在螢幕左上角,而不是游標的位置。我們這次就來製作一個函式,解決這些問題。

2019年7月1日 星期一

預告──從0到100的安卓手機操作 │ 每週一、五發布文章 │ 7/5 驚爆第一彈──認識安卓

全新長期連載系列開幕!


介紹


  • 花費大量時間研究安卓系統與操作體驗。
  • 精心排版設計以求完美詮釋體驗的感受。
  • 從頭到尾無一缺漏的安卓手機體驗教學。


適合長者閱讀的文章

各關鍵字都有詳盡說明其功用與如何操作,讓長者跟科技無縫接軌。


你不會的,我全都教你

很多人常忽略掉的細節,這裡都會教你,讓你的操作體驗更加方便。


總有一篇是屬於你的文章

有可以教你的,我們都會告訴你,就算只有一篇文章,但還是能讓你終身受用。

敬請期待7月5日週五晚間