從通訊聊電腦

來源:互聯網
上載者:User

標籤:

導問

  給你導線若干,以及一個小燈泡,你能否讓電腦將其點亮?

  通訊中如何保障資料的位的丟失?

  (本文技術主要還是幾年前做的,細節之處所記之處可能不甚準確)

  對於介面, 不同系統不同平台有不同介面,不同的虛擬方式,我們先以RS232舉例,由於硬體參數相同,無論Linux還是Windows這塊是一致的。

  對於RS232程式者來說,往往只關心資料,因此往往只關注2,3口。(其實有的做硬體也他麼的只接了235,具體定義可以去查尋MSDN文檔或者RS232定義)

  眾所周知這個參數非常顯眼——頻率,為什麼是頻率 —— 注意標題哈,我們常用9600不是。目前計算的體系的基礎就是頻率,都還記得高中的物理吧,有個震蕩體來著,技術的發展了,那個比較大,現在是半導體結構的晶振(鄙人不是搞硬體,硬體名稱大概對號)。我們用的計算32位的不是,晶片都處理了,通過類似移位寄存器的東西,弄成一排一排的。

  串口串口,意思就是說資料是串列的,我們舉個例——學生排隊,大家通過串口(門口)串列出來,現在32個人一排(移位寄存器處理),現在可以看成32位的並行數了。32位計算的含義,是說邏輯單元一次運算的位元組寬度,現在資料可以扔去計算了。現在我們看成並行的,你可以聯想一下異或操作,通過基本的異或門能夠組成一個特定的開關(指令),這個感謝一下布爾的NB(搞數學的大師——膜拜一下,不只是高深的圖形映像需要數學,電腦基礎也是有數學理論才有它的誕生,至於其他多元方程,積分...雖然高數沒有學怎麼樣,搞明白了學了有什麼用)。

  剛剛提到頻率,為什麼要設定頻率?

  ——順便回答一下導問的第二個問題 —— 這個問題是個偽命題,原則上位是不會丟失的。

  你不告訴電腦是9600,它便不知道那邊發資料的速率,那假設你設定了9600*2,它以9600*2的速率讀取會怎麼樣?其實從理論上說你是可以擷取到資料的,如果原來是2個位元組,那麼你將會得到4個位元組不是?那麼按道理偶數位和奇數位會相同(時序準確的前提),要得到資料你只需要把資料取所有的奇數位便可以得到。哦哦,是不是想到什嗎?是不是有個叫倍頻的東西?!為什麼有倍頻,為什麼記憶體要買固定頻率的?是不是一個道理。(可以隨便試試一個頻率,都是可以收到資料的,只是...)

  點亮燈泡其實很容易,大多數介面都有控制訊號線一類的東西,將其抬高,連上燈泡和底線就OK。第一個問題我們也解決了,當然用資料線原則上也是可以的,使勁刷高位元據即可(即使它內部消耗點什麼肉眼也看不出來不是,我們的用的交流電才50hz)。

  呃,聊一下代碼。通訊裡面個人感覺痛點在於邏輯上的,為了保障資料的有效性我們往往會有重發機制,稍不慎則很容易墜入死迴圈的陷阱中。這點的確是需要清晰的邏輯。在“遊戲”文中就提過,因為一個解密的原因當時就搞的我們程式蛋疼。至於像TCP這種,都叫協議族,那個真不是一般難,但原理原則是相同的,不同處就要看需求了,它要解決些什麼問題(它要解決的問題也真不是一般多)。

  串列並行有了概念了。

  ——來個並口也就不是什麼問題了。

  ——既然叫並口,那資料就不是寫串列流(軟體編程裡屏蔽底層,封裝了stream,當然很進階,Linux反正是寫檔案,也都帥氣)了。這個玩意兒我們每個口挨個耍,就像一排一排的感覺。哦哦,那邊怎麼收資料,下次怎麼辦?它也有控制線不是 —— 把控制線看成事件通知一樣:“有資料來了”,“好的,知道了,我馬上收”,“我收完了”。

  ——控制電機腫麼辦?燈泡都點亮了,大功率的也不是問題,初中物理介紹了繼電器。換個並口來試試怎麼樣,還可以接多個,這個當開關倒是很方便。

  “遊戲”中我們提到程式檔案的安全問題,老闆拿出一個“神秘”的晶片——“有協議的,禁止賣給朝鮮或伊朗的”。什麼叫安全,只有相對,從硬碟考慮不到,難道就不運行了,難道就沒有手段考記憶體了,高手無處不在啊,破解滿天飛,Windows真的比linux那麼不堪?國產軟體為什麼沒什麼破解版?還不是取決使用者群體,而不是技術上的問題。因此我們未有選擇加密狗,狗名氣大了,反而更不安全。這塊晶片是硬體級的安全,我們的CPU為什麼能出低端的,高端的就弄不出來,不是理論的破解能力問題,製造工藝太弱了。這些晶片的破解 —— 摳開蓋子,顯微,只要製造技術能OK,本朝立馬能山寨。這個“神秘”的晶片就不行了,摳開自毀。精密製造對於本朝來說,還是痛楚的。

  矽的提存,切片,刻板 —— 硬體程式(各種指令,當然可能還要有寄存器)就這麼出來的。

  硬體程式留了編程介面,這就是我們通用CPU了,最最低端的比如一個加法器,或者自己用些二級管組合(沒有參數可以寫,這就是不可程式化晶片了)。

  硬體進一步進化,為了提高安全,又有了多模式;就像現在的防盜門也升級了,裝修一個模式,使用一個模式。切換到使用模式,裝修模式的許可權變沒有了。

  跑作業系統了,它也得留介面啊,不留介面怎麼跑我們的程式。然後各種虛擬機器又提供各種奇葩進入點 —— 當時弄一個flash,弄到flash builder,沒找到進入點,問一個開發了一年多的 —— 竟然不知,最後他終於找出來了,右鍵設定啟動項...至於android這種 —— 不友好,個人還是喜歡代碼式main。

  先閑吹到此。

從通訊聊電腦

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.