Linux上沒有真正的非同步,為什麼伺服器還是用Linux的多?

時間 2021-05-29 23:06:47

1樓:圓胖腫

windows的gui吃資源而且要錢啊,linux雖然目前沒有實現真正的async,但是我們搞非同步的目的不就是為了省錢麼?總不能這裡省了,那裡吐出去了

而且嘛,可以實現某種意義上的非同步,使用者執行緒降下來就行了,至於os的執行緒,那是os的事

2樓:

現在使用Windows的硬體已經白菜價了。OEM系統已經超過開源軟體的低價擴散,IOCP的優質廉價時代已經來臨。linux成本奇高的特性已經逐漸為人所認識。

3樓:劉智聰

原本的問題其實是很簡單的:「網路模型是否高效「並不是伺服器作業系統選型的決定因素。當然伺服器作業系統的選型是乙個要考慮非常多的決定,但從最核心的生態角度考慮,Linux 是大部分場景下當前最好的選擇。

,甚至進一步得出Proactor模型有沒有必要實現的結論,這是非常不嚴謹的。兩個系統從核心到驅動實現都相差太遠,影響最終效能的因素太多。要做對比也應該是在同環境下的不同模型之間進行對比。

而且Proactor模型相對Reactor模型除了理論上能有更好的效能外,我其實更看重Proactor模型介面設計上的簡單性和一致性。

遺憾的是,沒人知道Linux什麼時候會實現《Unix 網路程式設計》裡定義的非同步模型。而從目前Linux AIO 相關api的糟糕實現來看,預計還有一段很長的路要走。希望Linux社群早日完成這個任務,這樣就能乾掉全平台網路庫(按Proactor設計介面)在Linux下醜陋,笨拙的模擬實現了。

4樓:

其實從純理論來說,iocp這種真正的非同步,確實要比epoll+nbio這種半吊子方案的效能要高那麼一點點。但是實際影響的因素太多了,所以這一點點的純理論的效能差別,能不能在實際的測試或執行中體現出來,也很難說。

而且,現在伺服器裡面,除了極少數類似proxy等io流量佔比很高的服務型別,其餘的大多數瓶頸都不在io上。所以,io模組的效能哪怕真的高那麼一點點,其實總體而言,基本上也是沒有吸引力的。

而作為伺服器,windows有很多其它的麻煩。

例如說遠端管理,別人可以ssh上去的,win就得弄個遠端桌面,而且這遠端桌面好像最多才同時兩個人連?那要在現網部署個開發機或者測試機,多兩個人上去看看都不行了?

還有,sh下,如果用上了expect,一切都可以指令碼化。而windows下的指令碼?先不說那批處理多難用了(powershell也不見得好多少),很多軟體的控制,還未必有批處理介面的。

沒有批處理,就只能用類似autoit之類的去做。自己動動手,試試看就知道expect比autoit之類的圖形化指令碼要方便多少了。

5樓:Frankie楊

不過呢,真正的非同步IO是windows上的IOCP和FreeBSD上的kqueue。epoll還差一點點,不算完全的非同步。但是,Linux就是好,就兩個字 ------ 「開源」!

世界範圍內,新點子、新想法、新實踐、新專案全都先在Linux上播種,Linux是計算機智慧型的最優最佳試驗田!

6樓:董君

有aio,雖然我沒用過。

另,Linux下的網路程式設計模型很多,

Unix Network Programming第一卷有詳細介紹。

為什麼linux是安全的,沒有病毒攻擊,為什麼不把linux設計成像win一樣的圖形介面來使用?

env 圖形介面需要大量資源而且bug非常多難以除錯和維護 linux 主要是用於伺服器工作站基本上可以說並不在乎個人使用者的多少且伺服器一般是專業人員維護 linux普通使用者少,而且基本都是有點計算機基礎的,伺服器的話又基本是有很多防禦措施的,不像win,一堆小白開著管理員許可權,各種防火牆之類...

recreators真正意義上的缺點是什麼?

已登出 不好看。它的人設不錯,劇情精彩,賣點十足,只可惜,沒有讓人欲罷不能的感覺。一定要說的話,就是重點搞錯了,明明每個人都可以用戰鬥表明自己的立場和三觀,卻非得用廢話。講真,我是少有看到戰鬥番能用對話帶動整個故事發展的,物語系列不算,fate系列我都感覺話太多。所以,rec廢在一定要大篇幅的講解上...

為什麼Linux上的IDE沒有vs中的win32和x64選項?

貓科猿 首先現在的電腦cpu都是64位的,當然也相容32的模式。windows相容性好,眾所周知。32位和64位一般都沒啥問題。但linux好像不是。反正現在的ubuntu越新,對32位支援越差。以前用ubuntu12.04時,有的軟體用沒啥問題,但到了14.04,有的就用不了了,需要32位的有些軟...