操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    次和大家科普了電腦的CPU應該怎么選擇,今天暢玩君繼續和大家聊聊,電腦CPU的兩大巨頭AMD和Intel之間的區別。

    首先,AMD的CPU我建議是買最新代的,因為每一代都提升巨大,比如AMD的R5 5600X就比R5 3600X強上不少。如果錢不夠,最低也要從2代銳龍開始挑起,一代銳龍性能還是太弱了,二代強了不少,三代差不多追平Intel的CPU,四代是加了核顯的三代,五代趕超Intel。



    而Intel那邊則是根據自身經濟情況選核心數了,8到11代都行,這家公司的U性能上擠牙膏擠了好幾年,隔代提升并不大,7代i7到了10代還能當i3賣,幾年的發展也就核心數和頻率上去了,其他方面進步真的不明顯。不對,它的U制熱效果越來越好了,11代甚至溫度能一秒破百!



    另外,AMD和Intel兩家公司的CPU命名規則差不多。字母后第一個數是級別,級別后的第一個數字是代數, R9是AMD這邊12核頂級CPU,R7是8核高端CPU,R5是6核中端,R3是4核低端。



    比如R7 5800X, R7表示這個CPU等級是高端8核,數字5就說明他是第5代(現在最新的),后續的三個數字800是型號,X表示是增強性能版。

    后綴字母則分別代表不同的功能定位,后綴X表示這顆是桌面性能增強版,也就是更能超頻,H表示這顆CPU是筆記本標壓U(性能強)如果是后綴U則表示這顆是筆記本低壓U,如R7 5800U的U是低壓U的意思(更省電)。



    AMD的筆記本U絕大多數有核顯,但臺式U卻默認沒有核顯,有核顯的會加后綴g,如R7 4750g就是4代8核R7,有核顯的CPU。和AMD不同,Intel所有CPU默認帶核顯,不帶的話會在后綴字母f。

    Intel這邊后綴挺多的:

    K表示不鎖倍頻(能超頻)

    H更高電壓(更高性能)

    S和T功耗低(節能版)

    ES(不穩定工程樣品)

    Ex則是同系頂級

    x表示是高性能CPU

    M表示這顆U是筆記本標壓CPU(更高性能)

    U則表示筆記本使用的是低壓CPU(節能版)

    QS:品質確定樣品(提前給各個工廠的合格樣品)


    其他命名規則大致一致,如i5 9400f 就是一顆中端6核心i5,9代,型號400的CPU,無核顯。但不能完全按此標準,看性能還是要看核心數和頻率,不然就會被坑,比如i5 10200h如果按常規命名規則來看,就是一個6核中端cpu,但實際卻是一顆4核低端U。



    另外,Intel這邊最新的11代筆記本U十分特殊,全系列最高4核,這就導致i3i5i7之間只有頻率和核顯規格還有三緩有一定不同,根本拉不開性能差距。

    如果你買11代低壓u的筆記本話,低端4核i3就差不多了,不用無腦追求i7,兩者性能差距特別小,不值得多花錢,買無獨顯的輕薄本里最具性價比的是i5-1135g7,再花幾百塊換價格更高的i7級CPU游戲也就提個幾針,沒必要。



    AMD這邊就老實很多了,無論是筆記本還是臺式,該是幾核就是幾核,不用擔心會在型號上坑你。



    總之,用AMD銳龍CPU的筆記本會比同款用IntelCPU的筆記本便宜一些,但性能差距不大,性價比更高。至于內存啥的,現在只能給個簡單建議,筆記本選16G正好,有錢無所謂隨便加。

    伙伴們好啊,日常工作中,經常會遇到一些不規范的數據,字符串的提取問題也是讓很多人頭疼不已,今天咱們就分享一期關于字符串提取的內容。


    一、提取字符串中的英文

    先來看下面的數據,是一些混到一起的客戶信息,有姓名、英文名和住址,現在咱們要提取出其中的英文名。


    有小伙伴可能首先想到的就是在2013及以上版本中的快速填充功能,嗯嗯,可以實現要求,但是這個功能有很大的局限性,第一是數據源變化后不能更新,第二是要求數據必須要有非常明顯的規律性,否則結果就會出錯,因此快速填充功能不是今天咱們討論的主題。

    熟悉函數公式的小伙伴應該在偷偷笑了,嗯嗯,函數公式也行,但是數據量多了的時候,函數公式直接歇菜,我可不想在電腦前面一直眼巴巴的等:

    咱們要分享的方法,不但可以刷新,而且在數據量非常多的時候仍然可以快速返回結果。說了半天,究竟要使用什么方法呢?

    猜對了——就是Power Query功能。


    接下來咱們就以Excel 2019為例,看看具體的步驟:

    1、單擊數據區域,數據→自表格/區域,將數據加載到數據查詢編輯器


    2、依次單擊【添加列】→【自定義列】,輸入公式:

    =Text.Remove([混合內容],{"一".."龜"})

    然后刪除原有的數據列,將數據加載到工作表。

    Text.Remove 函數是PQ中特有的函數,Text表示函數的類型,Remove的意思就是移除。函數的作用就是從字段中移除指定的字符。

    這個函數有兩個參數,第一個參數是要處理的字段,第二個參數是要移除的字符內容,公式中的{"一".."龜"}表示所有中文字符,也就是說只要是中文字符,就從【混合內容】字段中移除。


    二、提取字符串中的中文

    仍然以上面這組數據為例,要提取出其中的中文內容,也就是客戶的姓名和地址信息。

    1、單擊數據區域,數據→自表格/區域,將數據加載到數據查詢編輯器

    2、依次單擊【添加列】→【自定義列】,輸入公式:

    =Text.Remove([混合內容],{"A".."z"})

    然后刪除原有的數據列,將數據加載到工作表。

    公式的意思是從【混合內容】這個字段中,移除所有A~Z和a~z的字母。


    三、提取字符串中的數字

    再看下面的數據,里面有中文、英文、數字還有一些間隔符號,需要從這些混合內容中,提取出電話信息:

    要刪除的字符類型太多了,這回咱們換一個函數。

    1、單擊數據區域,數據→自表格/區域,將數據加載到數據查詢編輯器

    2、依次單擊【添加列】→【自定義列】,輸入公式:

    =Text.Select([混合內容],{"0".."9"})

    然后刪除原有的數據列,將數據加載到工作表。

    Text.Select 函數的作用和 Text.Remove 函數相反,Select的意思是挑選,顧名思義,Text.Select 函數就是從字段中挑選出指定的內容。

    第二參數使用{"0".."9"},表示提取0至9的所有數字。如果要提取是其他類型的內容,可以使用以下幾個公式。


    編后話:從Excel 2016版本開始,Power Query成為了內置功能,如果你使用的是2010或是2013版本的Excel,可以百度一下安裝微軟的Power Query插件。如果使用的是2007或是2003,那就盡快升級吧~

    今天的練手文件在此,你也試試:

    鏈接: htt敏感字ps:/敏感字/pa敏感字n.b敏感字aidu.敏感字co敏感字m/s/1lK4敏感字GHyui敏感字Wk0N敏感字HhCTjlM敏感字bmg

    提取碼: 4kga

    達哥拉斯說:萬物皆數,萬物皆可用整數或分數來表示。

    希帕索斯(Hippasus,公元前5世紀)不以為然:一個腰為1的等腰直角三角形的斜邊的長度是多少?由此引發了第一次數學危機,自此,幾何學強勢崛起。

    中國人發現計算時需要記憶中間結果很是麻煩,發明了算盤和珠算法,計算的中間結果用不同的算珠的組合來表示。

    納皮爾發現一些大數的乘除實在是太費時間了,發明了對數,化乘除為加減。(1614年)

    雖然對數表實現了計算降維,但查閱起來畢竟眼花繚亂,厚厚的書冊也不便攜帶。不多久,一位叫甘特的英國數學家想到:既然對數表是把兩個數的求積問題轉換為兩個對數的求和,那么,如果把一個對數視為一段可以用直尺丈量的長度,對數之和不就可以利用直尺直接量出來了嗎?1620年,甘特將對數表刻到一把尺上,借助圓規一類的輔助工具,實現了這種想法。這樣的工具被稱為計算尺

    施卡德(Wilhelm Schickard)從時鐘的齒輪技術獲得靈感,建造出世界已知的第一部機械式計算器,這部機械能進行六位數的加減,并經由鐘聲輸出答案,因此又稱為「算數鐘」。該機器利用11個完整的、6個不完整的鏈輪進行加法運算,并能借助對數表進行乘除運算。但不幸在即將完成時被毀。(1623年)

    1642年,帕斯卡建造了可以實際使用的能做加減的計算器,是一種由齒輪+刻度盤組成的機器。

    笛卡爾找到了坐標系這個神器,說:數形是可以合二為一的。(1637年)

    萊布尼茨說,我的計算器不僅要能做加減,還要能做乘除。萊布尼茨在加減法計算器的基礎上加了一個叫“步進輪”(“Stepped Reckoner”)的裝置。

    步進輪是一個有9個齒的長圓柱體,9個齒依次分布于圓柱表面;旁邊另有個小齒輪可以沿著軸向移動,以便逐次與步進輪嚙合。每當小齒輪轉動一圈,步進輪可根據它與小齒輪嚙合的齒數,分別轉動1/10、2/10圈……,直到9/10圈,這樣一來,它就能夠連續重復地做加減法,在轉動手柄的過程中,使這種重復加減轉變為乘除運算。(1671年)

    同時,萊布尼茨和牛頓兩人各自獨立地找到了求曲線下面積的一般方法。萊布尼茨說,求面積不過是求和,求面積的變化率不過是求差。求面積與求變化率是兩個互逆的過程,這就是微積分。

    巴貝奇說,為什么只把蒸汽機用于紡織業,為什么不用它來驅動計算器呢,于是發明了用蒸汽驅動的專用計算用途的差分機(由齒輪、轉輪、杠桿、拉桿組合而成)。更進一步,構思了具有通用性的分析機,可以運行包含“條件”、“循環”語句的程序,有寄存器用來存儲數據,但成千上萬個嚙合的十齒齒輪過于復雜,思想太過超前,最后以失敗告終。但是,程序存儲與控制的思想由此萌芽。(1837年)

    布爾說,邏輯學可以和數學相結合,邏輯學的真”與“假”可以用二進制的0和1來表示。用兩個字符進行組合便可以表示世間萬物,只有有足夠的數字位即可,這就是二進制和布爾代數。(1847年)

    1854年,George Boole在《An Investigation of the laws of thought,on which are founded the mathematical theories of logic and probabilities》一文中,第一次向人們展示了如何用數學解決邏輯的問題;布爾代數簡單得不能再簡單了,運算的元素只有兩個:1、0;或True、False,基本的運算只有“與”(“and”)、”或”(“or”)、”非”(“not”),全部的運算只用幾張真值表就能表達清楚。

    圖靈(Alan Mathison Turing,1912-1954)頭腦大風暴,用一條紙帶來存儲指令,用一個讀寫頭來讀寫紙帶上的指令并可改寫紙帶上的數據,這樣的機器似乎可以解決自動計算的問題,這就是后人所謂的“圖靈機”,存儲程序概念與實現呼之欲出。

    香農發現真”與“假”、0和1不就是電路系統的“開”與“關”嗎,電學中的并聯電路和串聯電路似乎與布爾代數的邏輯與和邏輯并有點關系,既然邏輯學和數學可以相互結合,再與電學結合一下怎么樣,這就是開關電路。(1938)

    可以通過開關的組合來構建邏輯門(非門、與門、或門),

    通過邏輯門來構建半加器、加法器:

    構建記憶電路(循環電路):

    計算機中的計算主要包括邏輯運算和算術運算,邏輯運算可以用計算機的門電路很自然地實現,而算術運算則皆可以以加法器為基礎:

    減法:減法轉換為加法,減數用補碼表示。

    乘法:用加法和移位來計算。

    除法:用加/減法和移位來計算。

    以一個或多個ALU(或加法器)為核心,加上移位器和存放中間臨時結果的寄存器組,在相應邏輯控制下,可實現各種運算

    楚澤(Zuse)認為,計算機最重要的部分不一定是計算本身,而是過程和計算結果的傳送和儲存,同時發現了繼電器這種更好的邏輯開關,發明了Z型系列計算機。(1940年代)

    1820年,奧斯特發現電流的磁效應。1831年,美國科學家約瑟夫·亨利 (Joseph Henry 1797-1878)制造了一個電磁鐵,繼而利用磁鐵制作了繼電器。繼電器是在機電式計算機第一個派上用場的電氣元件。但電的作用不是作為信號而是電磁感應原理的利用。

    阿坦那索夫貝利找來了真空管作為存儲與運算元件發明了ABC計算機(Atanasoff Berry Computer)。(1942)

    1903年,弗萊明在真空中加熱的電絲(燈絲)前加了一塊板極,從而發明了第一只電子管。他把這種裝有兩個極的電子管稱為二極管。電子管的開關特性做為計算機的邏輯部件,開關切換速度當然比繼電器來得更快。此時電真正作為信號的功能而存在。

    1941年6月,莫齊利拜訪了阿坦那索夫并詳細向其了解ABC,不久,莫齊利離開厄辛諾前往賓夕法尼亞大學的摩爾學院任教。1941年秋天,他遇到該學院電氣工程系畢業的研究生艾克特。兩人得到了美國軍方的支持,領導開發了Eniac,號稱史上第一臺可變程序電子計算機。程序雖然可變,但卻沒有實現程序存儲,只能通過開關和連接電纜(插線或插線板)來改變模塊計算模塊的組合,實現不同的任務。

    馮·諾依曼早就認識到了Eniac不夠自動,手工摁開關和連接電纜(插線)的工作似乎也可以交給計算機去做,這樣的操作不都是對應于電路的通與斷來實現模塊的不同組合嗎?不就是對應一個0和1的指令序列或者一串電信號嗎?如果存儲到計算機內,再按順序讀出來,然后處理為控制電信號,不就實現了不同模塊的自由組合?于是1945年6月寫出了長達101頁的《關于離散變量自動電子計算機的草案》,提出了程序和數據一樣存放在計算機內存儲器中,并給出了通用電子計算機的基本架構,后來這些思想被稱為存儲程序控制概念和“馮·諾依曼結構”。存儲程序控制也就是存儲程序和程序控制,對應于硬件,也就是要實現存儲器(內存)和控制器(由其進行取碼、譯碼、發出控制信號)。存儲程序控制概念是計算機理論和實踐方面最重要的思想之一,可以理解為“圖靈機”的具體實現,現在絕大多數計算機都是存儲程序控制概念的實現或“馮·諾依曼結構”。

    威爾克斯(Maurice Vincent Wilkes)使用了水銀延遲線作存儲器,利用穿孔紙帶輸入和電傳打字機輸出,領導、設計和制造了EDSAC(Electronic Delay Storage Automatic Calculator,電子延遲存儲自動計算機),終于將存儲程序控制的思想實驗變成了現實。

    從此,摁開關和連接電纜的工作由程序員來代替。程序員查閱計算機能夠實現的指令集,將解決問題的全過程通過指令集中的指令來做排列組合,這就是程序,是一個0和1的序列,執行時加載到內存的代碼區,表示指令時由控制器取指、譯碼、產生控制信號。指令中描述的數據存儲到內存的數據區,按數據的編碼規則(如補碼、ASCII碼等)進行解釋。所以,數據和指令都由0、1的組合來表示,都存儲到內存,只是做不同的解釋而已。

    0、1序列直接對應硬件的的兩個狀態,直接與電信號相對應,所以機器能直接識別,稱為機器語言

    用機器語言描述程序的0、1序列,難寫、難讀、難改。指令集可不可以用一些單詞、短語或其縮寫來描述,使用名字來指代特定的內存位置,然后再用這些單詞、短語或其縮寫來編程,最后再翻譯成機器語言?這是可行的,而查找、替換的工作也正是計算機所擅長的。用單詞、短語或其縮寫來描述的指令稱為匯編程序,這樣的翻譯程序稱為匯編器,將源程序翻譯成機器語言的0、1序列。由此開始了程序控制程序的思想(由程序來翻譯或解釋另一程序)。

    匯編指令與機器直接相關,一一對應,不具有通用性,且匯編指令的抽象程序過低,是否可以將一些常用功能的匯編指令組合用一些關鍵字、操作符來表示,地址可以用標識符來表示,以實現更高程度的抽象和封裝,答案是可以的,這就是高級語言。其翻譯程序稱為編譯器或解釋器,由其來翻譯由該語言規則編寫的程序到機器語言。當然,對應于不同的硬件系統和操作系統(提供最基礎功能,更底層的一系列程序),相同的高級語言可以實現不同的編譯器或解釋器。在實際當中,編譯器在內部可能會被分成一個“前端”和多個“后端”?!扒岸恕必撠煱迅呒壵Z言的程序轉換為中間形式,而“后端”則負責把中間表現形式轉換成不同體系結構的匯編指令。這種做法要比使用多個完全不同的編譯器更簡單。

    順序、分支、循環三種控制結構便是更高程度的抽象,分支、循環的本質也是順序結構,只不過是不同地址的跳轉而已。

    1958年,供職于IBM的約翰·巴庫斯領導開發了世界上第一個高級語言,FORTRAN。FORTRAN說,科學計算和公式翻譯交給我好了。

    一些高級語言設計者覺得,區分數據類型是一個不錯的選擇,數據類型可以選擇要求先聲明,后使用,也可以選擇由編譯器來推斷,也就是強類型與弱類型的區別,各有優劣。

    另外,不同的領域可以設計出不同側重點的高級語言,自此,各類高級語言百花齊放。

    面對復雜性和需求的變動性,高級語言的設計者還面臨代碼如何組織的問題。

    C語言說,一切都是函數。(1972年)

    Smalltalk說,一切都是對象,一些數據和操作這些數據的函數因為者關系緊密,需要封裝,組織成類與對象的方式。(1980年)

    C++說,我是帶類的C,我還可以通過模板將函數或類,讓其獨立于具體數據類型的。我是集成面向過程、面向對象、泛型編程思維的瑞士軍刀。(1983年)

    面對復雜性和需求的變動性,程序員在構建系統時還總結出來諸多的設計模式。

    為了實現代碼重用,常用的功能、數據結構、算法實現成了函數庫、類庫。所以,一個成熟的編程語言,不但具有語言的部分,編譯器或解釋器的部分,還要集成庫、框架,以實現效率、穩定的使用需求。所以編程語言通常包含三部分,一是語言本身,二是庫,三是其運行環境,也就是后面要提到的操作系統,而javascript則還有其宿主環境,也就是瀏覽器,瀏覽器也是一個應用程序,運行于特定的操作系統之上。

    按照馮諾依曼結構,程序需要加載到內存(RAM)才可以被CPU隨機訪問。RAM是電存儲,速度相對硬盤快很很多,但斷電則會丟失數據,是否可以既是電存儲又可以斷電不丟失數據呢?答案是ROM或單片機的燒錄或bios固件。程序中的0表示這條熔絲要燒斷,1表示這條熔絲不燒,以此方法記錄二進制信息,也是相當于邏輯電路的重新組合。程序燒錄好后,芯片就有了邏輯功能。包括一次擦寫的PROM和可以反復擦寫的EPROM。

    所以說,邏輯電路的重新組合,可以是硬連接,如Eniac的開關與連接電纜,也可以是軟連接,如程序,也可以是處于中間狀態的固件,如單片機的燒錄或bios固件。也就是說,硬件與軟件其實是硬幣的兩面,有時兩者的界限很模糊,相應功能可以用硬件實現,也可以用軟件實現。

    現代系統越來越多地采用通用硬件(如處理器、內存,以及與外界相連接的接口),同時靠軟件來實現特定的行為。人們普遍認為,軟件更便宜、更靈活,比硬件更好修改(特別是跟已經出廠的設備比)。例如,如果用一臺計算機來控制汽車的動力和剎車,那么防抱死和電子穩定控制顯然應該是軟件的功能。

    硬件和軟件一樣也需要不斷進行更高層次的抽象,并封裝抽象。后面提到的集成電路IC、CPU都是其具體體現。

    1959年,IBM制造了第一臺晶體管計算機7090,使用穿孔卡片。有32K內存,系統用5K,用戶用27K,用戶數據在內存和一臺磁鼓之間切換。計算設備的邏輯部件,從齒輪到繼電器是一大進步,電的功能是產生磁,從繼電器到電子管是一大進步,電開始作為電信號的功能而存在,但電子管是用玻璃管抽成真空制造而成的,所以又叫真空管,太脆弱了,想微型化很困難,功耗太大,壽命太短,不穩定。晶體管就不同了,是固體的半導體,真空管上述的一些毛病皆可克服。

    1947年12月,美國貝爾實驗室的肖克利、巴丁和布拉頓組成的研究小組,研制出一種點接觸型的鍺晶體管,晶體管特別適合用作開關,因為其固體特性。而電子管體積大、功耗大、發熱厲害、壽命短、電源利用效率低、結構脆弱而且需要高壓電源。

    早在1952年,達默早就認識到電子線路中的分立元器件與密密麻麻的連線的不足,如何縮小元件體積,降低成本,也許封裝是一種更好的選擇。

    1958年,供職于德州儀器公司的伊利諾斯大學畢業生杰克·基爾比漸漸形成一個天才的想法:電阻器和電容器(無源元件)可以用與晶體管(有源器件)相同的材料制造。另外,既然所有元器件都可以用同一塊材料制造,那么這些部件可以先在同一塊材料上就地制造,再相互連接,最終形成完整的電路。9月12日,基爾比研制出世界上第一塊鍺集成電路(Integrated Circuit, IC)。

    1959年7月,另一位科學界和商業界的奇才羅伯特·諾伊斯(Robert Noyce)研究出一種二氧化硅的擴散技術和PN結的隔離技術,并創造性地在氧化膜上制作出鋁條連線,使元件和導線合成一體。

    封裝成組件的集成電路相互之間以及與其它電子元件之間還是需要連接,而早在20世紀初,人們為了簡化電子機器的制作,減少電子零件間的配線,降低制作成本等優點,開始鉆研以印刷的方式取代配線的方法。三十年間,不斷有工程師提出在絕緣的基板上加以金屬導體作配線。而最成功的是1925年,美國的Charles Ducas 在絕緣的基板上印刷出線路圖案,再以電鍍的方式,成功建立導體作配線。直至1936年,奧地利人保羅·愛斯勒(Paul Eisler)在英國發表了箔膜技術,他在一個收音機裝置內采用了印刷電路板(printed circuit boards, PCB)。

    印刷電路板通過圖形電鍍,蝕刻出電路,還可以多層高溫壓制到一起:

    PCB 可以大規模生產,無需焊接或用一大堆線。通過蝕刻金屬線的方式,把零件連接到一起。

    把 PCB 和 IC 結合使用,可以大幅減少獨立組件和電線,但做到相同的功能,而且更小,更便宜,更可靠。三贏!在制成最終產品時,其上會安裝集成電路、電晶體、二極管、被動元件(如:電阻、電容、連接器等)及其他各種各樣的電子零件。借著導線連通,可以形成電子訊號連結及應有機能。自此,告別了傳統了分立元件和傳統布線。

    許多早期 IC 都是把很小的封裝成的獨立單元,為了實現更復雜的設計,需要全新的制作工藝,于是,光刻登場!1960年,H H Loor和E Castellani發明了光刻工藝。通過多輪光刻,可以摻雜出晶體管,光刻出電阻、電容,蝕刻出細小金屬導線,連接不同晶體管。光刻工藝讓更微小化的集成電路成為可能。

    電腦的輸出可以遠程做為另一臺電腦的輸入嗎?答案就是局域網或互聯網,最初建成的網絡就叫做ARPANET。1969 年10 月29 日,ARPANET 上的第一條消息從加州大學洛杉磯分校發出,到達550 公里外的斯坦福大學。這一天可以看成互聯網的誕生日。提供輸出的稱為服務器,接收輸出做為輸入的稱為客戶端。通過網線、光纖實現物理連接,通過分層的網絡協議規定通信規則,由網絡程序實現邏輯連接,如FTP、SMTP、Telnet、HTTP、HTML等:

    1971年,全球第一個微處理器4004由Intel公司推出,采用的是MOS工藝,這是一個里程碑式的發明。

    1975年,愛德·羅伯茲Ed Roberts設計了Altair 8800,采用Intel 8080處理器。事實上,微軟公司的創始人比爾·蓋茨和保羅·艾倫發跡,也是始于為Altair 微型計算機編寫BASIC 編譯器,這個編譯器是微軟公司的第一個產品。今天,Microsoft Visual Basic 作為BASIC 的一個主要分支,仍然被微軟公司積極地維護著。

    隨著電腦系統的日益復雜化、以及利用電腦速度快的特點而發展出的多任務(多程序)運行方式,靠手工管理這些軟、硬件資源顯然不現實,唯一的辦法就是用程序來管理程序,這就是操作系統,如unix、ninux、windows、ios等,操作系統本身也是許多程序的集成,相互配合完成電腦系統軟、硬件的管理,實現電腦系統基礎的功能支持。

    20世紀50年代初,還沒有應用程序與操作系統之分。計算機的能力非常有限,每次只能運行一個程序,這個程序會接管整臺機器。而程序員要使用計算機,運行自己的程序,必須事先預約時間段(身份低微的學生只能預約在半夜)。隨著計算機變得越來越復雜,再靠非專業人員使用它們效率就會很低。于是,操作計算機的工作就交給了專業操作員。計算機操作員的任務就是把程序輸入計算機,然后把計算結果送交相應的程序員。操作系統最初就是為了代替人工操作員完成上述工作才誕生的。硬件不斷發展,控制它們的操作系統也日益完善。而隨著硬件越來越強大、越來越復雜,就有必要集中更多的資源來控制它們。

    操作系統通常都需要管理數十個同時運行的進程或任務。其中有些是由用戶啟動的程序,但大多數還是一般用戶看不到的系統任務。這些進程或任務(程序),要共享同一臺電腦的CPU、內存、硬盤和其它輸入輸出設備,由操作系統統一進行控制和分配。

    這些操作系統大都由C或C++來編寫,是一個十分復雜的系統工程,如Windows 7 擁有大約1 億行代碼。

    操作系統提供了硬件(其功能由驅動程序定義)和其他軟件之間的接口。有了這個接口,硬件就好像能聽懂人的話了,而程序員編程因此就會變得簡單。用這個圈子里的行話說,操作系統提供了一個平臺,在這平臺上可以構建應用程序。

    操作系統為應用程序定義了一組操作(也叫服務),提供不同編程語言的API,比如將數據存儲至文件或者從文件中取出數據、建立網絡連接、獲取鍵盤輸入、報告鼠標移動和按鈕點擊、繪制屏幕,等等。

    1979年,Intel推出5MHz 8088微處理器,之后,IBM基于8088推出全球第一臺PC,逐漸地,隨著電腦器件的微型化,價格的逐步降低,電腦逐步普及。

    最后,通用的數字系統無所不在。在整合多領域技術進步的基礎上,數字設備向著小型、廉價和高性能的方向發展。某一領域的技術進步,比如存儲密度,經常會影響到所有數字設備。

    計算機硬件系統把大型、復雜系統切分成小型、易管理(可獨立創建)的組件,軟件分層、API、協議和標準莫不如此。

    化學有100 多個元素,物理有十幾個基本粒子。而數字計算機只有兩個元素,0 和1,其他一切都由此衍生出來。比特可用來表示任何信息,從最簡單的真假、是否、對錯之類的二元選擇,到數字、字母,乃至一切事物。復雜的事物比如購物、瀏覽和手機歷史中關于你生活的點點滴滴,則是由簡單的數據項組成,后者又可以用更簡單的形式來表示,如此往復,直到表示成一個一個的比特。

    計算機是操作比特的數字設備。告訴處理器做什么的指令,被編碼為比特,而且通常與數據保存在同樣的存儲器中。改變指令可以改變計算機行為,而這也正是計算機之所以成為通用機器的原因所在。比特的含義取決于上下文,一個人的指令可能是另一個人的數據。雖然有適合處理某種數據的特定技術存在,但復制、加密、壓縮、錯誤檢測等等操作全都可以在比特的層面上執行,與比特所表示的事物無關。運行通用操作系統的通用計算機取代各種專用設備的進程還將繼續。未來很可能出現根據生物計算原理設計的其他處理器,或許還會出現量子計算機。但是,數字計算機還會伴隨我們很長時間。

    數字網絡中從一個處理器傳輸到另一個處理器的數據和指令,同樣也都是比特。

    最后,我們可以簡單理解:

    1 組合的概念,晶體管組合成邏輯門電路,門電路構建半加器、加法器、記憶電路。上億個晶體管組合成一個集成電路,完成一個功能,再由數量不等的集成電路、電子元件、PCB板組合成更復雜的功能模塊,通過不斷抽象、分層、封裝,最后組合成一臺單機,通過網絡組合成局域網、互聯網。軟件也是如此,由CPU指令抽象(組合)出高級語言的關鍵字、運算符、控制結構,由這些再構成語句或語句塊,再組合成簡單的函數或類對象完成一個小功能,不同函數或類組合到一起完成一個較大的功能,再通過接口,實現更大的功能,也是不斷的抽象、分層、封裝,如windows 7就有上億行代碼,包含眾多相互提供接口的程序,構成一個龐大復雜的系統。

    2 軟硬件的邏輯等價性。

    軟件是可以轉化為硬件的,首先是在操作系統之上的應用軟件,這里主要指編譯軟件,它將高級語言或者匯編語言編譯、解釋為目標程序,也就是我們所說的機器碼,然后機器碼被分解為微程序,微程序再分解為微指令,而微指令就是一段定長的二進制數字,再由數字邏輯里的知識被硬件所利用。

    程序還可以固化,就是將程序讀入只讀存儲器,做成固件。對于固件,更是模糊了軟件和硬件的邊界。

    晶體管開關的連線組合能完成一定功能(如加法機、記憶電路),就是硬件,而能完成一定功能的軟件的指令序列(0、1序列)相當于晶體管開關的重新連線,因而具備了新的功能;復雜的邏輯功能單元都是由簡單的邏輯電路搭建而成的,硬件就是邏輯電路的硬連接,軟件就是這些邏輯電路的軟連接(軟件的指令序列也就是0、1序列而已)。

    3 了解了Eniac的編程方式是摁開關和連接電纜(插線)來實現功能模塊的組合,后續硬件的改進和存儲程序控制的方式,都只是對這一手工方式的改進,所以你也可以理解,程序和其二進制的0、1序列都只是為了實現功能模塊的自動組合而已,或者說是一種特殊方式的摁開關和連接電纜(插線)。所以說,相同的功能模塊,可以用硬件實現,也可能由硬件+軟件來實現,只是組合或連接的方式不同而已(硬連接、軟連接)。

    4 不管是紙帶、磁帶、鍵盤、硬盤輸入,都是通過一定的技術手段轉換為電信號,對應邏輯開關的通、斷或高、低電平。加載到內存后,就可以被CPU的控制器取碼、譯碼來產生控制信號,讀取數據,執行算術或邏輯運算,輸出數據。

    ref:

    I Brian W·Kernighan《世界是數字的》

    II 激動人心的信息技術誕生與成長簡史

    III 集成電路的光刻法:半導體摻雜(晶體管)與金屬層蝕刻(連線)

    IV 一張圖認識電腦主板(多層PCB印制電路板)的主要制作工藝

    -end-

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有