0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

cat命令的源碼進(jìn)化史

Linux愛好者 ? 來(lái)源:lq ? 2019-02-04 15:01 ? 次閱讀

有一次,我跟我的親戚有一場(chǎng)爭(zhēng)論,是關(guān)于讀一個(gè)計(jì)算機(jī)科學(xué)的學(xué)位是否值得。當(dāng)時(shí)是我在大學(xué)里面臨是否選擇計(jì)算機(jī)科學(xué)專業(yè)的時(shí)候。我姑姑和一個(gè)表哥認(rèn)為我不該選。他們覺得會(huì)編程當(dāng)然是個(gè)既有用又合算的事情,但是他們也堅(jiān)信,計(jì)算機(jī)科學(xué)更新太快了,當(dāng)下學(xué)到的知識(shí)會(huì)很快被淘汰掉。所以最好是選一門編程的課程,然后主修經(jīng)濟(jì)或者物理這種基本知識(shí)一輩子都適用的專業(yè)。

我并不相信他們的理論,并且選擇了主修計(jì)算機(jī)專業(yè)(抱歉了姑姑和表哥!)其實(shí)不難看出,為什么常人會(huì)認(rèn)為計(jì)算機(jī)科學(xué),或者軟件工程這樣的專業(yè),每幾年就會(huì)更新?lián)Q代。先是誕生了私人計(jì)算機(jī),然后是網(wǎng)絡(luò),手機(jī),機(jī)器學(xué)習(xí)……科技永遠(yuǎn)在變化,那么其潛在的技術(shù)原理當(dāng)然也在變化了。當(dāng)然,最讓人驚訝的是,這些基礎(chǔ)技術(shù)原理,其實(shí)基本沒變。我相信大部分人要是知道他們計(jì)算機(jī)中重要軟件到底有多老,肯定會(huì)震驚。我并不是說軟件的表面,畢竟我自己用的最多的火狐瀏覽器,兩周前才更新過。但是如果你打開幫助手冊(cè)查看grep之類的工具,你會(huì)發(fā)現(xiàn)它的上一次更新還是在 2010 年(至少 Mac 系統(tǒng)是這樣)。grep的初代誕生于 1974 年,那時(shí)候的計(jì)算機(jī)時(shí)代好比侏羅紀(jì)。現(xiàn)如今,人們(以及程序)在工作中仍然要依賴 grep 做很多事情。

我姑姑和表哥把計(jì)算機(jī)科技想象成一系列沙灘上的城堡,漲潮時(shí)潮水抹去舊的城堡,更加華麗的新城堡又會(huì)被建成。其實(shí)在現(xiàn)實(shí)中的很多領(lǐng)域,我們都是不斷地在現(xiàn)有的程序基礎(chǔ)上進(jìn)行迭代。我們也許會(huì)時(shí)不時(shí)的修改這些程序來(lái)避免軟件崩潰,但是除此之外這些程序不需要額外的維護(hù)。grep是一個(gè)簡(jiǎn)單的程序,它所解決的問題現(xiàn)在也有意義,所以它至今還存在。很多應(yīng)用程序的編寫都起始于一個(gè)很高的角度,就像是在金字塔頂端的基礎(chǔ)上構(gòu)建,而金字塔本身是由曾經(jīng)解決問題的答案所建成的?,F(xiàn)在看來(lái)很陳舊的,三四十年前的想法與概念,在很多時(shí)候都融入到了你現(xiàn)在計(jì)算機(jī)上安裝了的應(yīng)用程序里。

我想仔細(xì)研究一個(gè)這樣的老程序,看看它從誕生到現(xiàn)在到底被修改了多少次,這肯定很有趣。我想用cat這個(gè)最簡(jiǎn)單的 Unix 工具來(lái)作為例子。Ken Thompson 在 1969 年開發(fā)了初代cat。如果我跟別人說我計(jì)算機(jī)里有個(gè) 1969 年的程序,這準(zhǔn)確嗎?cat在這幾十年里到底經(jīng)歷了幾次迭代?我們計(jì)算機(jī)里的程序到底有多古老?

幸好有這個(gè)代碼倉(cāng)庫(kù),我們可以清晰地了解到,從 1969 年以來(lái),cat是如何進(jìn)化的。我接下來(lái)會(huì)主要聚焦于我自己 Macbook 上cat程序的歷史實(shí)現(xiàn)方式。你會(huì)看到,cat歷史從最初的 Unix 版本,到現(xiàn)在的 Mac 版本,這個(gè)程序被重寫了比你預(yù)想的還要多的次數(shù),但是最終它所實(shí)現(xiàn)的功能幾乎跟五十年前一模一樣。

Unix實(shí)驗(yàn)版本

1969 年,Ken Thompson 和 Dennis Ritchie 開始在 PDP 7 上開發(fā) Unix。這是在 C 語(yǔ)言出現(xiàn)之前,所以早期的 Unix 程序都是用 PDP 7 上用匯編語(yǔ)言開發(fā)的。他們使用了專門針對(duì)于 Unix 的匯編版本,因?yàn)?Ken Thompson 開發(fā)了自己的匯編編譯器,他在 PDP 7 出廠商DEC 提供的編譯器基礎(chǔ)上添加了新的功能。Thompson 的改進(jìn)文檔在初始Unix 編程手冊(cè)中有收錄,在as編譯器條目下面。

cat的初代實(shí)現(xiàn)使用了 PDP 7 匯編語(yǔ)言。我有添加一些注釋來(lái)解釋每行命令,但是除非你明白 Thompson 編寫匯編編譯器的一些擴(kuò)展,不然這個(gè)程序還是很難理解。這里有兩個(gè)重要的點(diǎn)。第一,字符;可以被用于分隔同一行的聲明語(yǔ)句。根據(jù) sys 指令的描述,;通常被用于在同一行使用系統(tǒng)調(diào)用參數(shù)。第二,Thompson 添加了數(shù)字 0-9 用于支持“暫存標(biāo)記”。這些標(biāo)記可以被整個(gè)程序重用,這就像 Unix 編程手冊(cè)所描述的,“對(duì)于程序員思維和匯編語(yǔ)言字符空間的縮減優(yōu)化”。從手冊(cè)中,你可以使用nf來(lái)表示下一個(gè)標(biāo)記n,用nb來(lái)表示上一個(gè)標(biāo)記n。舉個(gè)例子,如果你有個(gè)標(biāo)記為1:的代碼塊,你可以從相距很遠(yuǎn)的下方代碼中使用jmp 1b來(lái)往上跳回標(biāo)記代碼。(但是你不能往下跳到標(biāo)記代碼,除非你使用jmp 1f。)

關(guān)于初代cat最有意思的是,它包含了兩個(gè)我們熟知的名字,分別是一個(gè)標(biāo)記為是一個(gè)標(biāo)記為getc,和一個(gè)標(biāo)記為putc的代碼塊,這表示這倆名字要比標(biāo)準(zhǔn) C 語(yǔ)言庫(kù)都要?dú)v史久遠(yuǎn)。初代cat實(shí)際上包含了這兩個(gè)方法的實(shí)現(xiàn)。這樣的實(shí)現(xiàn)方式使得輸入字符可以被寫入緩沖區(qū),也就是說,讀和寫不需要以單個(gè)字符為單位完成。

初代cat并沒有存在很久。Ken Thompson 和 Dennis Ritchie 成功勸說了貝爾實(shí)驗(yàn)室?guī)退麄冑?gòu)入了一臺(tái) PDP11,以便于他們對(duì) Unix 系統(tǒng)進(jìn)行擴(kuò)展與提高。PDP 11 使用的是一種不同的指令集,因此他們不得不重寫cat。對(duì)于第二代cat代碼我也加了注釋。第二代使用了針對(duì)于新指令集的新版匯編助記符,也利用了 PDP 11中不同的地址模式。(那些源代碼中的括號(hào)和$符號(hào),是被用來(lái)指代不同的地址模式的。)但是cat第二代中也同樣使用了初代中的;和暫存標(biāo)記,這些功能一定是在 PDP 11 中移植as時(shí)被保留了下來(lái)。

cat的第二代源代碼遠(yuǎn)比初代要簡(jiǎn)潔很多。第二代也更加的”Unix-y”,因?yàn)樗辉傩枰淮募鳛槊顓?shù),而是與如今的cat一樣,在沒有參數(shù)的情況下,從stdin讀取輸入。對(duì)于二代cat,你也可以使用參數(shù)來(lái)指定從stdin讀取輸入數(shù)據(jù)。

1973 年,為了準(zhǔn)備發(fā)布第四版 Unix,很大一部分 Unix 系統(tǒng)都用 C 語(yǔ)言重寫了一遍。但是 C 語(yǔ)言版本的cat在 Unix 發(fā)布后過了一段時(shí)間才出現(xiàn)。第一個(gè) C 語(yǔ)言版本的cat只出現(xiàn)在第七版 Unix 系統(tǒng)中。這個(gè)實(shí)現(xiàn)方法非常值得一讀,因?yàn)樗浅:?jiǎn)單明了。與其他版本比較,這一版最能作為代表cat的 K&R C 語(yǔ)言教育演示版本。這段程序的核心就是如下兩行:

while((c = getc(fi)) != EOF)

putchar(c);

當(dāng)然還有更多的代碼,但是除了這兩行以外,剩下的邏輯更多的是在確保用戶不會(huì)同時(shí)讀寫同一個(gè)文件。另一個(gè)有意思的地方是,這個(gè)版本的 cat 只認(rèn)得一個(gè)標(biāo)記,-u。這個(gè) -u 標(biāo)記可以被用于關(guān)閉輸入輸出緩沖區(qū),不然 cat 會(huì)默認(rèn)緩存 512 字節(jié)。

伯克利軟件套件/BSD

在第七版之后,Unix 催生了各種各樣的衍生品。MacOS 是基于 Darwin 系統(tǒng)的,而 Darwin 是基于伯克利軟件套件(BSD),因此 BSD 是我們最感興趣的 Unix 分支。BSD 最初是作為Unix附加功能的軟件合集,但是它最終成為了一個(gè)完整的操作系統(tǒng)。BSD似乎一直在用cat的初代版本,一直到第四版 BSD 發(fā)布為止。第四版 BSD 也就是 4BSD,它添加了對(duì)于新標(biāo)記的支持。4BSD 版本的 cat 能明顯的看出是初代的衍生品,不過它添加了一些新的函數(shù)用來(lái)實(shí)現(xiàn)用新標(biāo)記觸發(fā)的功能。4BSD 文件系統(tǒng)的命名方法是基于 fflg 這個(gè)變量的,fflg 用于標(biāo)記指令的輸入是從文件,還是 stdin 讀取的。繼 fflg 之后,nflg、bflg、vflg、sflg、eflg 和 tflg 也被用于記錄程序中的標(biāo)記是否被用到。這些命令行標(biāo)記是 cat 添加的最后一批標(biāo)記;如今至少在 Mac 系統(tǒng)中的 cat 命令行手冊(cè)有列出來(lái)這些標(biāo)記。4BSD 是在 1980 年發(fā)布的,所以這一系列的標(biāo)記有 38 歲了。

cat 最后一次被重寫是為了 BSD Net/2,這主要是為了避免軟件許可證問題,因此所有 AT&T Unix 衍生代碼都被替換為了新代碼。BSD Net/2 在 1991 年發(fā)布。最后一次重寫是由 Kevin Fall 完成的,Kevin Fall 于 1988 年畢業(yè)于伯克利,之后他花了一年的時(shí)間在計(jì)算機(jī)系統(tǒng)研究院(CSRG)工作了一年。Fall 告訴我,用 AT&T 代碼寫的 Unix 工具集列表被掛在了 CSRG 的一面墻上,員工們被告知可以選擇感興趣的工具重寫。Fall 選擇了 cat 和 mknod。在如今 Mac 系統(tǒng)的默認(rèn) cat 版本中,F(xiàn)all 的名字排在開發(fā)者名單前列。他所編寫的 cat,雖然是個(gè)很簡(jiǎn)單的程序,但是直到今年還有數(shù)百萬(wàn)的用戶在使用。

Fall 所寫的 cat 源代碼比我們之前看到的版本要長(zhǎng)許多。除了支持 -? 幫助標(biāo)記,這一版并沒有添加新的功能。理論上來(lái)說,這一版代碼與 4BSD 版本非常相似。代碼之所以長(zhǎng),是因?yàn)?Fall 分開了“舊版”和“新版”的邏輯。“舊版”是典型的 cat;它一個(gè)字符一個(gè)字符的輸出?!靶掳妗钡?cat 包括了 4BSD 命令行選項(xiàng)。這樣的分割很有道理,但是使得代碼在第一眼看上去比實(shí)際復(fù)雜很多。代碼的最后有個(gè)華麗的錯(cuò)誤處理方程,這也增加了代碼長(zhǎng)度。

MacOS

2001 年,蘋果公司發(fā)布了 Mac OS X 系統(tǒng)。這次發(fā)布對(duì)于蘋果公司來(lái)說非常重要,因?yàn)樗麄兓撕芏嗄?,走了不少?gòu)澛罚瑸榱搜邪l(fā)能夠取代存在了很多年的舊版 Mac OS 系統(tǒng)。蘋果公司內(nèi)部曾經(jīng)有過兩次研發(fā)新系統(tǒng)的嘗試,但是最終都沒能成功;后來(lái),蘋果收購(gòu)了史蒂夫·喬布斯的公司 NeXT,他們公司開發(fā)了一款名為 NeXTSTEP 的,基于面向?qū)ο缶幊炭蚣艿牟僮飨到y(tǒng)。蘋果決定使用 NeXTSTEP 作為Mac OS X 的基礎(chǔ)。NeXTSTEP 的一部分是基于 BSD 開發(fā)的,所以用 NeXTSTEP 作為 Mac OS X 的基礎(chǔ),同時(shí)也給蘋果系統(tǒng)帶來(lái)了 BSD 代碼風(fēng)格。

新發(fā)布的第一版 Mac OS X中包含了來(lái)自 NetBSD 項(xiàng)目的 cat 代碼實(shí)現(xiàn)。NetBSD 項(xiàng)目如今仍在不斷開發(fā)中,它最初是來(lái)自 386BSD 的分支。而 386BSD 是直接基于 BSD Net/2 的。所以 Mac OS X 上的 cat 就是 Kevin Fall 所寫的 cat。唯一變化的是,Kevin Fall 寫的錯(cuò)誤處理函數(shù) err() 被替換成了 err.h 中的 err()。err.h 是 BSD 基于 C 語(yǔ)言標(biāo)準(zhǔn)庫(kù)的擴(kuò)展。

NetBSD 版本的 cat 在不久之后被 FreeBSD 版本取代了。根據(jù)維基百科,蘋果從 Mac OS X 10.3 (Panther)開始,使用 FreeBSD 來(lái)取代 NetBSD。但是 Mac OS X 版本的 cat,根據(jù)蘋果的開軟發(fā)布記錄,一直到 2007 年發(fā)布 Mac OS X 10.5 (Leopard) 才被取代。蘋果為了發(fā)布 Leopard 而引進(jìn)的 FreeBSD 的實(shí)現(xiàn)版本一直被沿用到了今天。從 2007 一直到 2018 年,這一版沒有做過任何升級(jí)或者改變。

所以說 Mac OS 中的 cat 是古老的。實(shí)際上 cat 的出現(xiàn),比 2007 年的正式發(fā)布時(shí)間還早兩年。2005 年的改動(dòng),在 FreeBSD 的Github 鏡像中可以看到,是 cat 被移植到 Mac OS X 之前 FreeBSD 版的最后一次更新。所以 Mac OS X 中 cat 實(shí)際上有 13 年的歷史了,它并沒有與 FreeBSD 的 cat 進(jìn)行同步更新。這里有過一個(gè)辯論,軟件到底被改動(dòng)過幾次才算是一個(gè)新的軟件呢;就 cat 這個(gè)個(gè)例來(lái)看,它的源代碼從 2005 年開始就完全沒有改變過了。

如今 Mac OS 系統(tǒng)中的 cat 與 Fall 在 1991 年為 BSD Net/2 所寫的版本并沒有太多不同。最大的不同是添加了一個(gè)新的函數(shù)用來(lái)支持 Unix 上的套接字。一個(gè) FreeBSD 的開發(fā)者認(rèn)為 Fall 所寫的 raw_args() 函數(shù)應(yīng)該與 cook_args() 合并為一個(gè)函數(shù) scanfiles()。除此之外,最核心的部分還是 Fall 的代碼。

我問過 Fall,有幾百萬(wàn)蘋果用戶在使用你所寫的 cat,還有很多程序直接或者間接依賴 cat,對(duì)此你有什么感想。如今已經(jīng)是顧問兼最新版 TCP/IP 協(xié)議合作者的 Fall 表示,人們對(duì)他開發(fā) cat 的經(jīng)歷如此的感興趣,讓他覺得非常驚訝。Fall 曾經(jīng)在計(jì)算領(lǐng)域工作過很久,并且有過很多有影響力的項(xiàng)目經(jīng)歷。但是似乎人們對(duì)于他在 1989 年開發(fā) cat 的那六個(gè)月更加感興趣。

百歲程序

縱觀歷史上各種偉大的發(fā)明,計(jì)算機(jī)的歷史并沒有很久。我們?nèi)匀辉谑褂糜兄倌隁v史的照片和膠卷。但是計(jì)算機(jī)軟件是另外一個(gè)類別——目前仍屬于高新科技。至少現(xiàn)在的軟件是這樣。隨著計(jì)算機(jī)產(chǎn)業(yè)日漸成熟,我們會(huì)不會(huì)有一天發(fā)現(xiàn),我們?cè)谑褂糜兄倌隁v史的軟件呢?

計(jì)算機(jī)硬件最終也會(huì)更新?lián)Q代,現(xiàn)在的軟件想必是沒法跑在一個(gè)世紀(jì)以后的硬件上。也許高級(jí)語(yǔ)言設(shè)計(jì)的進(jìn)步,也會(huì)導(dǎo)致在將來(lái)沒有人會(huì)使用 C 語(yǔ)言,而 cat 也會(huì)被其他的語(yǔ)言重寫。(不過 C 語(yǔ)言已經(jīng)存在了五十年了,估計(jì)短期內(nèi)也不會(huì)被取代。)不考慮以上這些的話,不如我們就一直用現(xiàn)在這版 cat 吧。

我認(rèn)為,cat 的歷史告訴我們,在計(jì)算機(jī)科學(xué)領(lǐng)域有一些思想是非常耐用的。實(shí)際上,對(duì)于 cat,它的代碼和思想都是很多年前出現(xiàn)的。要說我計(jì)算機(jī)中的cat是1969年的其實(shí)并不準(zhǔn)確。但如果說我計(jì)算機(jī)中的 cat 是 1989 年 Fall 開發(fā)的,就準(zhǔn)確多了。很多軟件都很古老。也許我們不能單純的認(rèn)為計(jì)算機(jī)科學(xué)和軟件開發(fā)是不斷更新?lián)Q代的領(lǐng)域。我們所開發(fā)的系統(tǒng)都是基于歷史基礎(chǔ)的。在某些時(shí)候,我們?cè)陂_發(fā)新代碼的同時(shí),也需要去花時(shí)間去理解和維護(hù)歷史代碼。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • UNIX
    +關(guān)注

    關(guān)注

    0

    文章

    296

    瀏覽量

    41334
  • 源碼
    +關(guān)注

    關(guān)注

    8

    文章

    626

    瀏覽量

    28965
  • cat
    cat
    +關(guān)注

    關(guān)注

    1

    文章

    72

    瀏覽量

    21208

原文標(biāo)題:cat 命令的源碼進(jìn)化史

文章出處:【微信號(hào):LinuxHub,微信公眾號(hào):Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    [圖文] 蘋果iOS系統(tǒng)平臺(tái)進(jìn)化史回顧

    在過去的幾年之中,iOS發(fā)生了巨大的改變。iOS已經(jīng)從一款簡(jiǎn)單的觸控操作系統(tǒng)轉(zhuǎn)變?yōu)閺?qiáng)大的移動(dòng)操作系統(tǒng)。明天蘋果將發(fā)布iOS 6,現(xiàn)在讓我們一起回顧一下iOS進(jìn)化的過程吧!
    發(fā)表于 09-19 10:13 ?3185次閱讀

    自動(dòng)駕駛V2X技術(shù)中DSRC和C-V2X技術(shù)的進(jìn)化史

    近幾年,V2X技術(shù)的發(fā)展不能說是不快,至少現(xiàn)在已經(jīng)能夠在路面上看到量產(chǎn)的V2X技術(shù)了。本文主要介紹了V2X中,DSRC和C-V2X兩種技術(shù)的進(jìn)化史
    的頭像 發(fā)表于 02-24 18:45 ?2.1w次閱讀
    自動(dòng)駕駛V2X技術(shù)中DSRC和C-V2X技術(shù)的<b class='flag-5'>進(jìn)化史</b>

    #SpaceX 星艦進(jìn)化史

    航空航天行業(yè)芯事時(shí)事熱點(diǎn)
    rainflute
    發(fā)布于 :2022年01月11日 18:03:40

    什么是版本控制?git代碼為什么需要版本控制

    系列之嵌入式開發(fā)-git代碼管理第一章 [嵌入式開發(fā)-git代碼管理之git的安裝]文章目錄系列之嵌入式開發(fā)-git代碼管理前言一、為什么需要版本控制?1.什么是版本控制2.版本控制進(jìn)化史3.我們?nèi)绾问褂枚?.[git的下載和安裝]本地建立git庫(kù)2.
    發(fā)表于 12-21 07:25

    iPhone主板芯片及整機(jī)配置的進(jìn)化史

    iPhone主板芯片及整機(jī)配置的進(jìn)化史。iPhone主板芯片的進(jìn)化史,很詳細(xì)的配置清單升級(jí)過程,很專業(yè)很詳細(xì)。
    發(fā)表于 08-24 08:03 ?1221次閱讀

    平板電腦進(jìn)化史

    據(jù)國(guó)外媒體報(bào)道,雖然當(dāng)今社會(huì)處于平板電腦和應(yīng)用程序發(fā)明創(chuàng)新大爆炸的時(shí)代,但是這些創(chuàng)新和發(fā)明也不是一蹴而就的。實(shí)際上,早在上世紀(jì)70年代就有很多人嘗試著開發(fā)一臺(tái)類似現(xiàn)在
    發(fā)表于 10-16 16:55 ?1.2w次閱讀

    海信激光電視發(fā)展歷程回顧

    從CRT電視、液晶平板電視再到激光電視,中國(guó)電視產(chǎn)業(yè)和技術(shù)的“進(jìn)化史”,也正是中國(guó)40年的一部變遷
    發(fā)表于 12-17 16:29 ?4120次閱讀

    OPPOFindX和iPhoneX哪個(gè)最好

    如果縱觀整個(gè)的發(fā)展歷程,那么手機(jī)屏幕的進(jìn)化史幾乎等同于手機(jī)的進(jìn)化史。從黑白液晶到彩色,從電阻屏到多點(diǎn)觸控。技術(shù)在不斷發(fā)展的同時(shí),手機(jī)屏幕的尺寸也一直隨著人們的需要而不斷增加。如何在有限的面積上放入更多的顯示區(qū)域成了各個(gè)品牌亟待解決的問題。
    的頭像 發(fā)表于 01-10 10:32 ?6474次閱讀

    即時(shí)聊天進(jìn)化史

    即時(shí)聊天是指通過特定軟件來(lái)和網(wǎng)絡(luò)上的其他同類玩家就某些共同感興趣的話題進(jìn)行討論,常用的即時(shí)聊天軟件。
    的頭像 發(fā)表于 01-23 14:54 ?1w次閱讀

    從“人機(jī)角力”到“人機(jī)融合”,流水線的百年進(jìn)化史

    導(dǎo)讀 在流水線生產(chǎn)的百年進(jìn)化史中,最大的改變是人機(jī)角力。人機(jī)角力的上半場(chǎng)核心是將人當(dāng)機(jī)器用,還是將機(jī)器當(dāng)人用,下半場(chǎng)核心是人機(jī)融合。多年以來(lái),中國(guó)制造業(yè)持續(xù)推進(jìn)產(chǎn)業(yè)升級(jí)以尋求競(jìng)爭(zhēng)力提升,而具體做法
    的頭像 發(fā)表于 02-28 11:43 ?4690次閱讀

    三星Note系列S-Pen進(jìn)化史

    系列,如果用一句話來(lái)概括,我想“Note之所以是Note,是因?yàn)橛蠸 Pen”這句話應(yīng)該最能體現(xiàn)三星與其它產(chǎn)品的區(qū)別。作為每一代Note系列的標(biāo)配,S Pen已經(jīng)成了三星Note系列的精髓。從某種意義上,S Pen甚至成為了三星Note系列的身份證。因此,我們今天就來(lái)回顧這些年S-Pen的進(jìn)化史。
    的頭像 發(fā)表于 03-29 11:12 ?3730次閱讀

    淺談LED車燈受歡迎的六大原因

    汽車進(jìn)化史也是一部車燈進(jìn)化史,從早期的鹵素?zé)?,到后?lái)亮度超強(qiáng)的氙氣燈,再到如今的LED燈大行其道。
    的頭像 發(fā)表于 03-16 13:39 ?3845次閱讀

    Linux cat命令詳解

    `cat`命令是Linux中最常用的命令之一,`cat`命令的名稱來(lái)自于con**cat**en
    的頭像 發(fā)表于 12-14 17:24 ?9788次閱讀

    大學(xué)寢室門的進(jìn)化史:RFID的寢室門禁系統(tǒng)

    電子發(fā)燒友網(wǎng)站提供《大學(xué)寢室門的進(jìn)化史:RFID的寢室門禁系統(tǒng).rar》資料免費(fèi)下載
    發(fā)表于 11-08 09:19 ?7次下載
    大學(xué)寢室門的<b class='flag-5'>進(jìn)化史</b>:RFID的寢室門禁系統(tǒng)

    斧工智能電批:淺談螺絲刀到智能電批的進(jìn)化史

    斧工智能電批:淺談螺絲刀到智能電批的進(jìn)化史 提起螺絲刀,率先出現(xiàn)在我們腦海中的是日常生活中比較常見的手動(dòng)螺絲刀。但在當(dāng)今這個(gè)飛速發(fā)展的時(shí)代,科技革新的浪潮勢(shì)不可擋,不斷推動(dòng)著各行各業(yè)向前發(fā)展。無(wú)論是
    的頭像 發(fā)表于 01-11 11:39 ?400次閱讀