教孩子寫遊戲:什麼是作業系統?它和程式語言有什麼關係?

2020-12-16 我是遊戲小胡

「學」的部分

首先我們來簡要了解一下,什麼是作業系統。

計算機被發明出來之後,是可以直接使用的,因為計算機的功能就是快速計算嘛!和普通計算器的區別,就是計算機的計算都是二進位的而已。所以,最早發明計算機的目的就是為了科學計算。然而,隨著當時的使用人員(程式設計師)慢慢的深入,發現數學計算可不僅僅是數學計算,很多其他的內容都可以轉化成數學計算。

也是從那個時候開始,我們才真正明白,數學為什麼是基礎科學,因為世界上幾乎所有的事物都可以轉化成數學計算。最早的時候,程式設計師們解決了屏幕顯示的問題,成功把顯示轉化成了數學計算。後來,隨著研究的深入,各種各樣的模擬都變成了數學計算。隨著計算機的功能被開發得越來越多,程式設計師們發現了一個非常嚴重的問題:

計算機功能太多太複雜了,一個人想從零開始學習,可能需要花費半輩子的時間,實在是太耗時間了。

但是,計算機的這些功能都具有劃時代的意義,可不能因為難學就拋棄掉。

後來,程式設計師們真的想到了一個折中的辦法:設計一個中間程序,把使用計算機功能的那些非常繁瑣的、晦澀難懂的部分提前寫好,這樣,這個複雜難用的功能一下子就簡化了。

這個中間程序就是作業系統最初的形態,它把所有紛繁複雜的東西提前處理好了,讓我們可以非常方便地使用計算機那強大的功能。隨著時間的推移以及程式設計師們的經驗累積,人們越發覺得這個中間程序的重要性,如果沒有這個中間程序,他們眼前的計算機就是一臺大型的廢鐵了(因為他們並不懂這個中間程序的具體編寫過程)。

計算機是1946年誕生的,一直到70年代末,計算機的體型才變得比較小(差不多小衣櫃大小),也是這個時候,計算機得到了大量的普及,各大研究機構都有一臺計算機,可是,這個中間程序卻越來越不盡如人意:計算機的功能越發展越多,而中間程序的編寫難度是很高的。

所以,70年代末的時候,世界上終於出現了計算機系統了,也就是所謂的作業系統。

作業系統比上面的中間程序要更加完善:中間程序只是為了讓我們更方便使用計算機,而作業系統不僅能方便使用計算機,還具有無限的擴展性!

什麼是無限的擴展性呢?因為作業系統把所有的計算機功能分類整理,只實現了那些最最基礎的功能,然後以這些基礎功能為背景,再去開發新的功能。

這種打完基礎再創造的方式,一直到了微軟的DOS系統出來後,才被利用得淋漓盡致。你可以這樣理解:

假設計算機一共有100個基礎功能,這些基礎功能都是控制計算機某個硬體的功能,比方說控制CPU或者是內存的功能。雖然這些功能看起來很簡單,可是,要用數學的方法來實現這些功能是非常不容易的,況且這個數學只是二進位的加法而已。拿DOS系統來說,它包含了這100個基礎功能的所有機器語言代碼。作為一個程式設計師,只需要熟悉這100個基礎功能怎麼用,就能寫出各種各樣的擴展程序了。比方說,我們要編輯文字,程式設計師就用這100個功能給我們寫了一個DOS版本的文字編輯程序。

所以,從DOS系統開始,計算機的程式語言就已經和計算機的作業系統綁定了,因為所有的計算機基礎功能都是作業系統給的,如果程式語言和作業系統分開,那麼,程式設計師就需要自己編寫計算機的那些基礎功能。比方說,和作業系統綁定的程式語言要在電腦屏幕上顯示一張圖片是非常簡單的,可能一個函數調用就解決了。如果程式語言和作業系統分開,那想要顯示這張圖片,程式設計師就需要把圖片變成數字,把顯示控制變成數字,把屏幕也變成數字,而這些內容,都是非常高深的內容,99.9%的程式設計師都不知道該怎麼辦。

和作業系統綁定的程式語言已經非常方便了,程式設計師為什麼非要單獨寫程序呢?

所以,現在的計算機程式語言,基本上都是和作業系統綁定的。比方說,Windows下有專門的程式語言,Unix下有專門的程式語言,蘋果公司的Mac系統下也有專門的程式語言。不僅僅是電腦,各種可攜式「電腦」也有自己的程式語言,比方說手機啊、掌上遊戲機啊、各種各樣的遊戲主機啊等等。

我們用的最多的就是Windows系統,所以,這個課程用到的C++語言是Windows系統下的。這也是為什麼,我們推薦使用微軟公司的Visual Studio。畢竟Windows是他們寫的,他們製作的C++集成開發環境能最大程度地使用Windows的系統功能。

總而言之,作業系統幫我們解決了非常紛繁複雜的計算機功能轉化數學計算的難題,可即便如此,我們要在這個相對「簡單」的平臺上開發新的功能,也是非常不簡單的。

「習」的部分

別看這節課好像在講故事,但這個故事對於編程的理解有著很強的幫助作用。所以,一定要帶著孩子好好學習,最好讓孩子能轉述這個「故事」。

相關焦點

  • 少兒遊戲編程:孩子學習遊戲編程有哪些好處?
    我相信,在不久的將來,計算機科學將和數理化科學一樣,變成一門必學的基礎課程。計算機融入生活的當今社會,的的確確是方便了所有的人,可是,計算機給我們帶來方便的同時,也讓一部分人陷入了頭疼之中。其中最頭疼的一部分人就是家長了:似乎真的沒有什麼有效的辦法來引導自己的孩子不沉迷手機遊戲。
  • 教孩子寫遊戲:3D遊戲編程離不開矩陣,我們要如何理解矩陣?
    雖然說,我們不需要對矩陣有非常深入的理解,但是,這並不代表著我們可以不學矩陣。這麼說吧,如果你對矩陣一無所知,那麼,整個3D遊戲編程你是學不懂的。你可以靠著強大的記憶力把本課程的代碼記住,並且也能通過自己的摸索寫出類似的3D遊戲來,但是,你對其中的原理是不理解的,將來想要寫功能更強大的3D遊戲,就純粹是天方夜譚了。
  • 詳解:少兒編程學什麼?它和成人編程教育有何不同?
    幾年前,學好編程還只是多個省市的中高考的加分項,就算孩子不學,其他科目的成績優異,也不至於影響升學。但近年來,編程教育課程逐步由加分項升級為中高考必考科目。在近幾年的高考題中,都有編程的身影。即便有政策驅動和新教改加持,仍有不少家長存疑:孩子又不當程式設計師,沒必要學編程;編程那麼枯燥難懂,孩子玩心重肯定沒法靜下心來學……本文將詳解少兒編程學什麼,它與成人編程教育有何不同?少兒編程學習真的枯燥嗎?一、少兒編程學什麼?
  • 北大青鳥建大IT學院:高中生初學編程該選擇什麼語言?
    對於高中生來說,選擇一門合適的程式語言作為入門的語言對於培養自己編程的興趣會有很大的幫助。在眾多程式語言中,有些程式語言迴避其他語言要好學,一起來看看適合新手學習的程式語言有些。python語法簡潔清晰,具有豐富和強大的類庫,能夠將其他語言製作的模塊輕鬆連接在一起,也被稱為膠水語言。python經常被用來快速生成程序的原型(甚至是程序的最終界面),對其中有特別要求的部分用更適合的語言改寫,比如3D遊戲中的圖形渲染模塊,性能要求比較高可以用C/C++來重寫,而後封裝為Python可以調用的擴展類庫。
  • 教孩子寫遊戲:稍微深入了解一下DirectX
    遊戲編程和其他編程不同的地方在於,遊戲編程對程式設計師的要求更高。說一句不太好聽的話:一般的編程都有例子可以「抄」。我相信,很多人都在網上看過類似這樣的段子:A:最近好累,寫程序寫得頭大!B:累?寫程序不都是複製粘貼嗎?
  • 什麼是Python語言,Python語言可以用來做什麼?
    你可能已經聽說過很多種流行的程式語言,比如非常難學的C語言,非常流行的Java語言,適合初學者的Basic語言,適合網頁編程的JavaScript語言等等。那Python是一種什麼語言?首先,我們普及一下程式語言的基礎知識。
  • 學習編程需要有什麼基礎
    學習編程一直是一個非常熱門的話題,很多人都想進入這個行業,但是由於沒有編程基礎,很多人不知道應該如何學習。如果沒有編程基礎最重要的就是入門,入門需要有一個好的方法和思路,打下基礎,這樣對後續的編程有很大的好處。那麼學習編程需要有什麼基礎呢?
  • 手機APP都是用什麼程式語言寫的呢
    打開APP 手機APP都是用什麼程式語言寫的呢 C語言與程序設計 發表於 2020-12-24 17:05:28   今天想和大家分享的內容是和我們手機上APP相關的,它們都是用什麼程式語言寫的呢?
  • C語言與C++、C Sharp究竟是什麼關係?(附福利)
    簡單來說,C++就像是C語言的親弟弟,而C Sharp(C#)就是他們二者的遠房親戚(其實它更像是Java的表兄弟)。這三門語言都是十分優秀的程式語言,也都有很高的運行效率。這三種程式語言的應用範圍很廣闊,接下來技術學派就分別介紹一下三種語言的來歷以及應用領域。
  • 編程貓孫悅:少兒編程絕不是教孩子編程技能,而是培養編程思維|WISE...
    比如數學、語文、外語都已經在這個行業存在多年了,都在探討有什麼樣的模式更好,但編程這個學科在5年前甚至都是不存在的。所以在這樣一個全新的領域,我們會得到很多反饋,甚至經常會看到少兒編程上熱搜,前幾天還討論少兒編程到底是不是智商稅的問題。所以我今天非常高興借這個機會跟大家追溯一下少兒編程是什麼。首先少兒編程不是為了教孩子編程技能,而是為了教孩子編程思維。
  • Unix和Linux作業系統有什麼區別?
    僅僅是因為自己寫的遊戲「StarTravel」無法玩了。因為當時貝爾實驗室研發Multics系統已經宣告失敗。所以,這位大神就找了一臺報廢很久的老爺機PDP-7小型機。注意,這個報廢小型機和我們現在的小型機完全不是一個概念。這個小型機有1個房間那麼大。他不僅在這臺機器上開發出了作業系統內核,還將自己的遊戲重寫了一遍。
  • 電腦入門程式語言
    今天和大家介紹一下電腦入門編程學什麼語言更合適。首選python語言,python 是一門開源免費、通用型的腳本程式語言,現在社會上會python語言的人很吃香的。它上手簡單,功能強大,堅持「極簡主義」。
  • 編程是什麼?有哪些?它能夠做什麼?
    簡單的說:編程就是寫那些指令的過程,我們使用一種程式語言來實現這些指令的編寫,這些指令被翻譯成計算機能夠讀懂的格式,最後由計算機執行指令。計算機程式語言包括C語言、C++語言、Java語言、Python語言、資料庫開發語言、其他程式語言。計算機程式語言是程序設計的最重要的工具,它是指計算機能夠接受和處理的、具有一定語法規則的語言。從計算機誕生至今,計算機語言經歷了機器語言、彙編語言和高級語言幾個階段。
  • 哪門程式語言最流行?用程式設計師夢寐以求的程式語言,實現完美開發
    我的朋友曾對一位著名的作業系統專家說他想要設計一種真正優秀的程式語言。那位專家回答,這是浪費時間,優秀的語言不一定會被市場接受,很可能無人使用,因為語言的流行不取決於它本身。至少,那位專家設計的語言就遭遇到了這種情況。那麼,語言的流行到底取決於什麼因素呢?流行的語言是否真的值得流行呢?還有必要嘗試設計一種更好的語言嗎?
  • 編程入門學什麼語言好?
    首先應該明確學習程式語言的目的-工作或興趣,這兩者差別比較大!如果是考慮就業問題,那麼根據2019年末的一個流行度調查,關於程式語言的排名,目前前三的分別是:Java(難)C(很難)Python(較難)
  • Java語言的特點都有什麼呢
    在軟體開發中,程式語言的使用是非常廣泛的,程式語言的種類是很多,如何選擇學習呢?在所有程式語言中,Java語言的使用更多廣泛,為什麼Java語言得到廣泛的使用呢?下面小編為大家介紹Java語言的特點。Java語言具有安全、可靠等優勢,並且屬於分布式、多線程和面向對象語言,但是特點的具體內容是什麼呢?
  • 教孩子寫遊戲:3D遊戲編程的必備數學知識,理解三維空間向量
    因為我們要寫的是3D遊戲程序,所以,我們必須要接觸兩個數學方面的難點知識——向量和矩陣。有的人問:這個這麼難,我們可不可以不學?我的答案是這樣的:如果你是有心要學習本課程,那麼這個是必須要學習的,是沒有道理可講的,是想破了腦袋也要學明白的。
  • 2020年最流行的10種程式語言是什麼?
    新技術和創新技術項目對於組織迅速擴大規模極為寶貴。技術是通過程式語言來實現的,技術領域中有600多種程式語言。程式語言的命令和識別每年都在變化。此外,新的程式語言還具有引人注目的特性和功能。為了促進軟體開發服務和Web應用程式的需求,以下急需提及的十大最受歡迎的程式語言。1.
  • 教孩子寫遊戲:如何通俗地讓孩子明白遊戲在電腦上的運行過程?
    所以,我把遊戲程序的運行過程分解成了如下的幾個知識點,這樣的話,你給孩子轉述的時候也會方便許多。可是,二進位的內容太過於晦澀難懂,一個正常的人想要用這些二進位的內容,手裡需要抱著一本非常厚的字典,才能勉強看懂極少的部分,因為那是一堆0和1的數字組合,想要分清楚都很困難。為了方便使用,最早的一批前輩們做出了最開始的程式語言,把一整本字典寫了進去。作為編程人員,可以直接使用比較通俗易懂的英文單詞來代替晦澀難懂的二進位組合。
  • 數學與編程的關係?機器人編程和Scratch編程衝突嗎?
    數學家陶哲軒,年僅31歲就獲得了被稱為「數學界諾貝爾獎」的菲爾茲獎,他曾說過:「數學絕不需要什麼神奇的天才基因,什麼天生的洞察能力。為了達到對數學有一個良好的、有意義的貢獻,人們必須要刻苦努力,學好自己的領域 ,還需要掌握一些其他領域的知識和工具。最重要的,是要有興趣。