Timothy Coding Ground

沒貓在手, 寫code會抖
有貓可吸, 全家開心

0%

前言

開始進入DB的範圍,DB目前分兩類,SQL及No SQL,No SQL並不真的算是一種種類,他比較算是集合,所以兩者的意思說起來應該是:

SQL DB跟那些不是SQL的DB

SQL也就是今天要聊的relational DB到底有什麼了不起的地方,竟然讓除了他以外的DB都被分成一類。
這就是好像有天有人跟你說,這世界上的飲料只分成烏弄跟不是烏弄得一樣XD

另外其實SQL裡面也分了很多不同的DB,那他們有什麼樣相同的特性,讓他們既是不同的DB卻被通稱為SQL DB呢?
我們今天也會稍微看看他們彼此的特色~

Read more »

前言

POSIX到底是什麼神秘的東西呢?老實說,在roadMap提到這個單字前,我是真的完全不知道他是什麼XD

其實他就是一種interface的標準,為了要讓作業系統之間的相容性提高,所以符合POSIX的應用程式都會有一個重要的特性是:

應該要能與其他符合POSIX標準的作業系統相容

於是今天會講到一些歷史,並提到關於POSIX具有移植性的一些原因。

Read more »

前言

許多Process的執行除了依賴CPU的運算及Memory的儲存,也依賴於其他設備,其中一部分專門用於接受使用者輸入及引導輸出的設備,被稱為I/O設備,I/O就是input及output的簡稱。

透過今天的內容,會稍微了解IO管理的設計,以及是透過什麼方式整合IO設備與CPU的溝通。

Read more »

前言

在系統內,Process或是Thread若需要與其他合作,就須要有溝通的方式,而溝通的原因包括資料分享需要、模組…等等,這些就被稱為行程間通訊。

Read more »

前言

並發Concurrency也是一個常在開發中聽到的名詞,他跟並行Parallel有什麼差別呢?他能夠給系統帶來什麼好處?又有什麼風險需要注意?我們常聽到js是個單執行緒的語言,這又是什麼意思?node.js是單執行緒嗎?

這就是今天會希望解答的問題,那就開始吧~

Read more »

前言

今天會討論執行緒Thread,是一個我覺得很容易跟行程Process混淆的概念,為了學習跟整理這個概念,我們可以踩在前人的肩膀上前進XD

透過一張別人整理出來的Process、Thread比較圖,我們來問問一些「為什麼?」。
而透過回答經過整理的問題,可以看到兩者的差別及是什麼造成這些差別。

而最後我相信通過探究這些差異的過程,不只可以幫助理解Thread,也同時可以回頭幫助了解Process~

Read more »

前言

從今天開始進入OS一般知識的範圍,透過了解我們正運行中的程式(Process)在OS如何運作的過程及相關知識,包含I/O, Thread, Memory…等,可以進一步優化程式。

稍微具體舉個例子來說,以node.js來說,作為單執行緒(thread)的執行環境,若一下出現大量的使用者情求時會是什麼狀況呢,如果已經在工作的人,你可以想像辦公室明明有很多人,但電話只跑到你這裡,你頂多叫他們做點事情幫忙,但最終還是你一個人處理所有的電話…情何以堪XD

為了解決這個問題,因此有了pm2套件、原生的cluster及worker threads,他們各自有不同的問題解決邏輯,或許通過這段時間的鑽研我們可以稍微探討這些差異。

我個人是蠻期待這部分的學習,那,就開始今天的OS overview吧。

Read more »

前言

前幾天的主題大概已經描述一個輪廓Web: 一般而言我們使用瀏覽器作為client,透過HTTP,去與一台一個具有特定ip位置的server用GET方法取得網頁內容,並透過瀏覽器引擎渲染出網頁的畫面。

這邊我們用一個問題代入今天的主題: server都被放在哪裡?

事實上具有運算、儲存的設備都可以作為主機使用,但管理一台主機的成本還蠻高的,包括能源、維護甚至是因為流量變大而有的擴充需求。

所以出現了Hosting服務,也就是今天的主題,通常具有較大型的主機,也有專門的人進行維護,一般來說成本相對個人管理來的低,而這些託管商則透過規模化來減少成本獲取利潤。

今天會大概介紹託管的分類並舉一些對應的例子。

Read more »