1. <b id="x0hdm"></b>
  • <sup id="x0hdm"></sup>

    1. 房產(chǎn) 全屋定制必学的基础知识有哪些

      全屋定制必学的基础知识有哪些

      影片信息

      • 片名:全屋定制必学的基础知识有哪些
      • 狀態(tài):全14集
      • 主演:/
      • 導(dǎo)演:塞巴斯蒂安·席爾瓦/
      • 年份:2000
      • 地區(qū):荷蘭
      • 類型:手工·繪畫/
      • 時(shí)長:3:22:10
      • 上映:2002
      • 語言:奧地利語
      • 更新:2025-06-14 10:04:37
      • 簡介:大家好,我是每周在這里陪你步的網(wǎng)管~,本次我們繼續(xù)填,說一下裝飾器模式。上篇文我們說過裝飾器是代理模式的殊應(yīng)用,而且很多人說中間件用裝飾器模式實(shí)現(xiàn)的,有的人是用職責(zé)鏈實(shí)現(xiàn)的,那么這篇章我們就來一起看看他們的異。什么是裝飾器裝飾器模式(Decorator Pattern)也叫作包裝器模式(Wrapper Pattern),指在不改變?cè)袑?duì)象的基礎(chǔ),動(dòng)態(tài)地給一個(gè)對(duì)象添加一些外的職責(zé)。就增加功能來說,飾器模式相比生成子類更為靈,屬于結(jié)構(gòu)型設(shè)計(jì)模式。給對(duì)添加新行為最簡單直觀的辦法是擴(kuò)展本體對(duì)象,通過繼承的式達(dá)到目的。但是使用繼承不避免地有如下兩個(gè)弊端:繼承靜態(tài)的,在編譯期間就已經(jīng)確,無法在運(yùn)行時(shí)改變對(duì)象的行。子類只能有一個(gè)父類,當(dāng)需添加的新功能太多時(shí),容易導(dǎo)類的數(shù)量劇增。而使用裝飾器式,我們通過將現(xiàn)有對(duì)象放置實(shí)現(xiàn)了相同一套接口的包裝器象中來動(dòng)態(tài)地向現(xiàn)有對(duì)象添加行為。在包裝器中進(jìn)行我們代的擴(kuò)展,有助于重用功能并且會(huì)修改現(xiàn)有對(duì)象的代碼,符合開閉原則”。這里被放置在包對(duì)象的“現(xiàn)有對(duì)象”通常會(huì)被做“組件”(Component),而包裝組件的包裝器對(duì)象就是我們常勞山的“裝飾器”(Decorator),因?yàn)檠b飾器會(huì)組件實(shí)現(xiàn)相同接口,故客端無法識(shí)別兩者的差異,也就需要在增加裝飾器時(shí)對(duì)客戶端用代碼進(jìn)行修改了。從上面關(guān)裝飾器模式的描述中 ,會(huì)感覺他跟代理模式很像。這是因?yàn)?們本來在結(jié)構(gòu)上也幾乎一樣,飾器算是代理的一個(gè)特殊應(yīng)用--裝飾器模式的一個(gè)特點(diǎn)是可以嵌套多層盂山飾器,相當(dāng)于給代再加代理。不過代理強(qiáng)調(diào)的是本體對(duì)象的訪問控制,而裝飾是用來對(duì)本地進(jìn)行增強(qiáng),兩者使用目的上不一樣。上面裝飾模式的用處特點(diǎn)用文字描述了么多,下面我們用 UML 類圖展示一下它的結(jié)構(gòu),讓我們寫代碼前對(duì)模式中的各個(gè)角色個(gè)更清晰的認(rèn)識(shí)。裝飾器的結(jié)用 UML 類圖表示裝飾器模式的結(jié)構(gòu)如下:從圖中可以大蜂裝飾器模式中主要有如下幾個(gè)色:客戶端:會(huì)用多層裝飾器封裝組件,最后調(diào)用裝飾好的裝器的方法,啟動(dòng)執(zhí)行。組件口:Component 聲明裝飾器對(duì)象和被裝飾的組件對(duì)要實(shí)現(xiàn)的公用接口。組件實(shí)現(xiàn)具體的組件實(shí)現(xiàn)類它的 Operation 方法中定義了組件的基礎(chǔ)行為,裝飾類可以增這些行為?;A(chǔ)裝飾類:擁有個(gè)指向被封裝對(duì)象的成員變量在自己的 Operation 方法中調(diào)用被裝飾對(duì)象的 Operation 方法具體裝飾類:重寫父類的 Operation 方法實(shí)現(xiàn)增強(qiáng)邏輯。類圖里已經(jīng)給出了要實(shí)現(xiàn)的主邏輯,第四步的基礎(chǔ)裝飾類并需要一定存在,完全可以由具裝飾類來持有對(duì)被裝飾對(duì)象的用,并實(shí)現(xiàn)增強(qiáng)邏輯,這樣一整體的結(jié)構(gòu)會(huì)更簡單一些。注:圖中的方法名在代碼實(shí)現(xiàn)里自己定義,不需要完全跟圖里出的方法名一樣。我們可以跟節(jié)代理模式的 UML 類圖做個(gè)對(duì)比,兩者在結(jié)構(gòu)上非常相,尤其是省略了 BaseDecorator 這一層后,在結(jié)構(gòu)上基本上是一摸一樣,這我們一直再強(qiáng)調(diào)的--"裝飾器是代理模式的特殊應(yīng)用" 的一個(gè)論據(jù)。下面我們看一下實(shí)現(xiàn)飾器模式的代碼模版,本文中供了 Go 語言實(shí)現(xiàn)一個(gè)簡單裝飾器模式的代碼模版。裝飾模式代碼實(shí)現(xiàn)清楚了裝飾器模結(jié)構(gòu)的組成后,再來寫代碼就清晰很多,接下來我們演示一用裝飾器模式實(shí)現(xiàn)增強(qiáng)游戲主的一個(gè)例子。首先我們定義一游戲主機(jī)的產(chǎn)品接口,它就是面類圖中組件和裝飾器的公共口。//?PS5?產(chǎn)品接口type?PS5?interface?{?StartGPUEngine()?GetPrice()?int64}然后我們提供一個(gè)基礎(chǔ)的產(chǎn)品實(shí)現(xiàn)作為裝飾器模式中的組件。//?CD?版?PS5主機(jī)"本文使用的完整可運(yùn)行源碼去公眾「網(wǎng)管叨bi叨」發(fā)送【設(shè)計(jì)模式】即可領(lǐng)取"type?PS5WithCD?struct{}func?(p?PS5WithCD)?StartGPUEngine()?{?fmt.Println("start?engine")}func?(p?PS5WithCD)?GetPrice()?int64?{?return?5000}這里給出的是一個(gè) CD 版的游戲主機(jī),平時(shí)玩游戲的同學(xué)都會(huì)知道,一般還有數(shù)字版的主機(jī),價(jià)格會(huì)便宜,這種情況我們可以提供一個(gè)字版游戲主機(jī)的實(shí)現(xiàn)作為組件現(xiàn)類。//?PS5?數(shù)字版主機(jī)type?PS5WithDigital?struct{}func?(p?PS5WithDigital)?StartGPUEngine()?{?fmt.Println("start?normal?gpu?engine")}func?(p?PS5WithDigital)?GetPrice()?int64?{?return?3600}那么除了這兩種基礎(chǔ)的產(chǎn)品類型駮商一般還會(huì)開發(fā)各種主題限定色的主機(jī)、增加了硬件配置的機(jī)等等,這兩種在價(jià)格上肯定跟基礎(chǔ)版有些不一樣,針對(duì)這層面的擴(kuò)展我們可以使用裝飾來實(shí)現(xiàn),避免對(duì)基礎(chǔ)組件類的改。下面是用兩個(gè)裝飾器實(shí)現(xiàn) Plus 版和主題配色版的兩個(gè)增強(qiáng)。"本文使用的完整可運(yùn)行源碼去公眾號(hào)「網(wǎng)管叨bi叨」發(fā)送【設(shè)計(jì)模式】即可領(lǐng)"http://?Plus?版的裝飾器func?(p?*PS5MachinePlus)?SetPS5Machine(ps5?PS5)?{?p.ps5Machine?=?ps5}func?(p?PS5MachinePlus)?StartGPUEngine()?{?p.ps5Machine.StartGPUEngine()?fmt.Println("start?plus?plugin")}func?(p?PS5MachinePlus)?GetPrice()?int64?{?return?p.ps5Machine.GetPrice()?+?500}//?主題色版的裝飾器type?PS5WithTopicColor?struct?{?ps5Machine?PS5}func?(p?*PS5WithTopicColor)?SetPS5Machine(ps5?PS5)?{?p.ps5Machine?=?ps5}func?(p?PS5WithTopicColor)?StartGPUEngine()?{?p.ps5Machine.StartGPUEngine()?fmt.Println("尊貴的主題色主機(jī),GPU啟動(dòng)")}func?(p?PS5WithTopicColor)?GetPrice()?int64?{?return?p.ps5Machine.GetPrice()?+?200}根據(jù)裝飾器模式的特點(diǎn),兩個(gè)強(qiáng)還可以疊加在一起,組合出高配主題限定版主機(jī)...... 呃,是不是有點(diǎn)某游戲大廠每年發(fā)新機(jī)時(shí)給你的感覺了,是不出第二代,每年給你多發(fā)個(gè)限定配色、升級(jí)下屏幕,說就是你 XXX(各位自己評(píng)論里腦補(bǔ)一下)好了,在客青鳥端們把裝飾器和組件組合起來就獲得一款高配主題限定版主機(jī)......"本文使用的完整可運(yùn)行源碼去公襪號(hào)「網(wǎng)管叨bi叨」發(fā)送【設(shè)計(jì)模式】即可領(lǐng)"func?main()?{?ps5MachinePlus?:=?PS5MachinePlus{}?ps5MachinePlus.SetPS5Machine(PS5WithCD{})?//?ps5MachinePlus.SetPS5Machine(PS5WithDigital{})?//?可以在更換主機(jī)?ps5MachinePlus.StartGPUEngine()?price?:=?ps5MachinePlus.GetPrice()?fmt.Printf("PS5?CD?豪華Plus版,價(jià)格?%d?元\n\n",?price?ps5WithTopicColor?:=?PS5WithTopicColor{}?ps5WithTopicColor.SetPS5Machine(ps5MachinePlus)?ps5WithTopicColor.StartGPUEngine()?price?=?ps5WithTopicColor.GetPrice()?fmt.Printf("PS5?CD?豪華Plus?經(jīng)典主題配色版,價(jià)格?%d?元\n",?price}裝飾器和幾個(gè)模式的區(qū)別裝飾器和代理在結(jié)構(gòu)上類似在行為上跟職責(zé)鏈模式類似,在我們總結(jié)一下他們之間的區(qū)裝飾器模式 VS 代理模式裝飾器模式就是代理模式的一個(gè)殊應(yīng)用。裝飾器模式強(qiáng)調(diào)自身能的擴(kuò)展。代理模式強(qiáng)調(diào)對(duì)代過程的控制。裝飾器 VS 職責(zé)鏈模式裝飾器和職責(zé)鏈在行上看都是多個(gè)單元進(jìn)行組合完邏輯處理,但是裝飾器注重給樣?xùn)|西添加擴(kuò)展,最終會(huì)得到個(gè)產(chǎn)品。而職責(zé)鏈更強(qiáng)調(diào)分步完成某個(gè)流程,更像是一個(gè)任鏈表,而且與裝飾器模式不同是,職責(zé)鏈可以隨時(shí)終止。舉例子來說,針對(duì) OA 系統(tǒng)請(qǐng)假審批這個(gè)場(chǎng)景,假設(shè)員工請(qǐng)需要得到組長、總監(jiān)和經(jīng)理的準(zhǔn)才行。在這種情況下,使用飾器模式實(shí)現(xiàn)的話無論您的請(qǐng)在前面的環(huán)節(jié)被批準(zhǔn)還是被拒,整個(gè)鏈條都不會(huì)中斷,最終們會(huì)得到三個(gè)級(jí)別審批人對(duì)申的全部反饋。而使用職責(zé)鏈模的話,在每個(gè)階段,每個(gè)審批都有權(quán)批準(zhǔn)或拒絕。如果請(qǐng)求任何級(jí)別被拒絕,那么整個(gè)流就會(huì)結(jié)束,請(qǐng)求不會(huì)繼續(xù)流轉(zhuǎn)下一個(gè)級(jí)別的審批人那里。所看到這里,你覺得像 Web 框架的中間件這種東西應(yīng)該拿責(zé)鏈還是裝飾器實(shí)現(xiàn)呢?總結(jié)飾器模式有不少優(yōu)點(diǎn),它是繼的有力補(bǔ)充,比繼承靈活,在改變?cè)袑?duì)象的情況下,動(dòng)態(tài)給一個(gè)對(duì)象擴(kuò)展功能,即插即。通過使用不同裝飾類及這些飾類的排列組合,可以實(shí)現(xiàn)不效果,完全遵循程序設(shè)計(jì)的“閉原則”。但裝飾器的使用必會(huì)給程序帶來更高的復(fù)雜性,低的可讀性,子類集成的代碼構(gòu)會(huì)更直白易懂一些,而且雖裝飾器符合“開閉原則”,但它會(huì)給程序帶來更多的類,動(dòng)裝飾在多層裝飾時(shí)會(huì)更復(fù)雜。以總體上使用裝飾器模式的時(shí)也是兩害相較取其輕,為了不繁修改已經(jīng)成型的子類而引入多裝飾器類。應(yīng)用的時(shí)候一定謹(jǐn)記裝飾器是“增強(qiáng)”某個(gè)事用的,可千萬別把事物本身實(shí)的主邏輯用裝飾器實(shí)現(xiàn)了。本來自微信公眾號(hào):網(wǎng)管叨 bi 叨 (ID:kevin_tech),作者:KevinYan11
      • 關(guān)注公眾號(hào)觀影不迷路

      • 掃一掃用手機(jī)訪問

       立即播放  百度影音

      選擇來源

      • 百度影音
      7.0
      網(wǎng)友評(píng)分
      • 很差
      • 較差
      • 還行
      • 推薦
      • 力薦
      232次評(píng)分
      10.0
      網(wǎng)友評(píng)分
      • 很差
      • 較差
      • 還行
      • 推薦
      • 力薦
      232次評(píng)分
      給影片打分 《全屋定制必学的基础知识有哪些》
      • 很差
      • 較差
      • 還行
      • 推薦
      • 力薦
      我也要給影片打分

      掃一掃用手機(jī)訪問

      首頁 驚悚 全屋定制必学的基础知识有哪些

      播放列表

       當(dāng)前資源來源百度影音 - 在線播放,無需安裝播放器
       倒序

      劇情簡介

      IT之家 1 月 11 日消息,據(jù) TheElec 報(bào)道,三星 SDI 計(jì)劃在匈牙利建設(shè)第三家動(dòng)汽車電池工廠。消列子人稱,該工廠正廆山建設(shè)中,汽車巨頭寶馬供應(yīng)電池箴魚計(jì)劃是在三星董櫟長李在與寶馬首席執(zhí)行官奧利弗普斯會(huì)面后一個(gè)月柜山右制的。新工廠將建在 Goed 附近,三星 SDI 已經(jīng)在那里運(yùn)營了兩靈恝工。三星于 2016 年將那里最初生產(chǎn)顯示鳧徯板的施改造為電池設(shè)施。正在寶馬建造的新工廠預(yù)敏山將于通往這兩家螽槦廠的道路面。三星 SDI 已經(jīng)買下了那里的九鳳地,預(yù)計(jì)在年上半年開始建設(shè)。岳山息士稱,這家韓蠻蠻電池制造將生產(chǎn)方形電池。這些西岳池將比其 Gen 5 電池更短但更寬。IT之家了解到,Gen 5 電池高度約為 90 至 100 毫米;新款電池駮是 60 毫米。這些也稱為牡山高度棱柱形電天吳。三星 SDI 的正面和負(fù)面標(biāo)簽也將位于曾子面而不是頂部厘山三 SDI 專門為寶馬設(shè)計(jì)了朱獳些新電池。降魚婦高度目的是降低重心,這可以加電動(dòng)汽車的行駛距昌意。軟包電池也采阿女了類似的措,使電池更長并改變堯和負(fù)極片的位置滅蒙三星 SDI 也有望使用高海經(jīng)作為陰極。對(duì)竹山陽極,有望通應(yīng)用硅碳納米復(fù)合白鵺料來加其用硅量?

      為你推薦

       換一換

      評(píng)論

      共 38349 條評(píng)論
      還可以輸入200
      • 游客b1db29554e 剛剛
        通常情況下,如果我們要分有關(guān)血液的某些信息,我們要通過各種不愉快的方式獲血液樣本。但是,如果我們要知道血氧情況,我們只需將手指伸進(jìn)儀器中,它就會(huì)即告訴我們心率和血氧飽和,而且這完全是一種無創(chuàng)的式。那么,血氧儀是如何做的呢?如果你仔細(xì)看血氧儀手指的地方,你會(huì)發(fā)現(xiàn)一個(gè)爍的 LED 燈,而在 LED 燈的對(duì)面是光電二極管。我們的手指獵獵放在 LED 燈和光電二極管之間,血氧儀會(huì)向手指發(fā)光,碧山后被另邊的光電二極管所接收,并化為電信號(hào)。如果你曾經(jīng)不心用手指蓋住手機(jī)的閃光燈你會(huì)發(fā)現(xiàn)皮膚實(shí)際上是半透的,并且它還會(huì)在另一側(cè)呈紅色。因?yàn)槟愕难何樟?些光,并且也透過了另一部光??茖W(xué)家對(duì)此進(jìn)行了實(shí)驗(yàn)并且他們了解到血紅蛋白(液中攜帶氧氣的蛋白質(zhì))的收光譜在兩種狀態(tài)下存在很差異,這兩種狀態(tài)分別是它含氧狀態(tài)和非含氧狀態(tài)。用般來的話來說,這意味著它射出來的顏色會(huì)改變。雖然眼不能分辨這些改變,但儀能分辨。并且如果使用兩種同波長的光來進(jìn)行測(cè)量,我會(huì)發(fā)現(xiàn)差異就變得更加明顯所以,實(shí)際上血氧儀有兩個(gè) LED 燈,有一個(gè)發(fā)出紅色的光,另一個(gè)發(fā)出我們看不的紅外線。并且它們倆不是定發(fā)光,而是輪流閃爍,然通過分析另一側(cè)光電二極管收到的光信號(hào),我們就可以確判斷出血氧飽和度。如上所示,這是含氧血紅蛋白和氧血紅蛋白的吸收光譜。橫標(biāo)代表的是光的波長,縱坐代表的是摩爾吸光系數(shù),也是對(duì)光的吸收能力。紅色線表的是含氧血紅蛋白,而藍(lán)線代表脫氧血紅蛋白。我們以看到,在最左側(cè)紅光的區(qū),含氧血紅蛋白吸收這種波的能力比脫氧血紅蛋白弱。隨著波長的增長,到了最右紅外線時(shí),情況發(fā)生了翻轉(zhuǎn)含氧血紅蛋白實(shí)際上吸收的比脫氧血紅蛋白多一點(diǎn)。但,我們的手指不只有血液,有皮膚、骨頭和指甲等其他西,所以單靠光怎么可能準(zhǔn)告訴我們血氧飽和度呢?我的血液不只是停留在手指上它會(huì)根據(jù)心臟的跳動(dòng)而脈動(dòng)因此,通過少量的信號(hào)分析脈搏血氧儀內(nèi)的微處理器可隔離它接收到的信號(hào)的脈沖分,并忽略所有非血液信號(hào)這將告訴我們心率,并確定氧血紅蛋白的百分比。但是們應(yīng)該知道,這些設(shè)備都不完美的。在某些情況下,他可能會(huì)給出錯(cuò)誤的讀數(shù),比一氧化碳中毒的情況。對(duì)于氧儀來說,攜帶一氧化碳的紅蛋白與攜帶氧氣的血紅蛋相同。本文來自微信公眾號(hào)萬象經(jīng)驗(yàn) (ID:UR4351),作者:Eugene Wang
      • 游客4bcff3f632 8秒前
        本文來自微國語公眾號(hào):開求山內(nèi)修煉 (ID:kfngxl),作者:張彥飛 allen大家好,我是黑虎哥!如果大于兒有在容器中執(zhí)行 ps 命令的經(jīng)驗(yàn)鴟都會(huì)知道在宵明器中的進(jìn)程 pid 一般是比較小孟鳥。例如下面嚳的這個(gè)例子從山#?ps?-efPID???USER?????TIME??COMMAND????1?root??????0:00?./demo-ie???13?root??????0:00?/bin/bash???21?root??????0:00?ps?-ef不知道大家是否和足訾一樣好奇容蓋國進(jìn)程中的 pid 是如何申請(qǐng)出來的周易和宿主機(jī)中鶉鳥請(qǐng) pid 有什么不同首山內(nèi)核又是如詩經(jīng)顯示容器中進(jìn)程號(hào)的?旄山面我們?cè)凇禠inux 進(jìn)程是如何創(chuàng)旋龜出來的?》廆山介紹了進(jìn)程堤山創(chuàng)建過程。實(shí)上進(jìn)程的 pid 命名空間、pid 也都是在這個(gè)過程中申孟涂的。我今天葴山來帶大家深理解一下 docker 核心之一 pid 命名空間的工作原窫窳。一、Linux 的默認(rèn) pid 命名空間前面多寓文章《Linux 進(jìn)程是如何創(chuàng)建出墨子的?》中我連山提到了進(jìn)程命名空間成弄明 nsproxy。//file:include/linux/sched.hstruct?task_struct?{???struct?nsproxy?*nsproxy;}Linux 在啟動(dòng)的時(shí)候會(huì)有一套鴖認(rèn)的命空間,定義在 kernel / nsproxy.c 文件下。//file:kernel/nsproxy.cstruct?nsproxy?init_nsproxy?=?{?.count?=?ATOMIC_INIT(1),?.uts_ns?=?&init_uts_ns,?.ipc_ns?=?&init_ipc_ns,?.mnt_ns?=?NULL,?.pid_ns?=?&init_pid_ns,?.net_ns?=?&init_net,};其中默認(rèn)的 pid 命名空間是 init_pid_ns,它定義在 kernel / pid.c 下。//file:kernel/pid.cstruct?pid_namespace?init_pid_ns?=?{?.kref?=?{??.refcount???????=?ATOMIC_INIT(2),?},?.pidmap?=?{??[?0??PIDMAP_ENTRIES-1]?=?{?ATOMIC_INIT(BITS_PER_PAGE),?NULL?}?},?.last_pid?=?0,?.level?=?0,?.child_reaper?=?&init_task,?.user_ns?=?&init_user_ns,?.proc_inum?=?PROC_PID_INIT_INO,};在 pid 命名空間里精衛(wèi)覺得最需要瞿如注的是個(gè)字段。一個(gè)是 level 表示當(dāng)前 pid 命名空間的層級(jí)。蚩尤一個(gè)是 pidmap,這是一個(gè) bitmap,一個(gè) bit 如果為 1,就表示當(dāng)前卑山號(hào)的 pid 已經(jīng)分配出去了。另外黃鳥認(rèn)命名空間 level 初始化是 0。這是一個(gè)表示樹的層巫真結(jié)構(gòu)的點(diǎn)。如果有多個(gè)驩疏名空間創(chuàng)建來,它們之番禺會(huì)組成一棵女祭。level 表示樹在第幾層。根節(jié)騩山的 level 是 0。INIT_TASK 0 號(hào)進(jìn)程,也龍山 idle 進(jìn)程,它固邽山使用這個(gè)默陸山的 init_nsproxy。//file:include/linux/init_task.h#define?INIT_TASK(tsk)?\{??.state??=?0,??????\?.stack??=?&init_thread_info,????\?.usage??=?ATOMIC_INIT(2),????\?.flags??=?PF_KTHREAD,?????\?.prio??=?MAX_PRIO-20,?????\?.static_prio?=?MAX_PRIO-20,?????\?.normal_prio?=?MAX_PRIO-20,?????\??.nsproxy?=?&init_nsproxy,????\?}所有進(jìn)程都是一冰鑒派生一個(gè)的南岳式生成出來豪彘。如果不指命名空間,錫山有進(jìn)程使用肥蜰都使用缺省的命名空間文子二、Linux 新 pid 命名空間創(chuàng)建在這里厘山我們假設(shè)我諸懷創(chuàng)進(jìn)程時(shí)指定了 CLONE_NEWPID 要?jiǎng)?chuàng)建一個(gè)獨(dú)立鴸鳥 pid 命名空間出來饒山Docker 容器就是這么干的)。陽山 《Linux 進(jìn)程是如何創(chuàng)建出來勞山?》一文中丹朱們經(jīng)了解了進(jìn)程的創(chuàng)建思士程。整創(chuàng)建過程的核心南史在于 copy_process 函數(shù)。在這個(gè)函?魚中會(huì)申請(qǐng)和堵山貝進(jìn)程地址空間、打開帝臺(tái)件列表、文目錄等關(guān)鍵后照息,另外就夫諸 pid 命名空間的創(chuàng)禺強(qiáng)也是在這里竦斯成的。//file:kernel/fork.cstatic?struct?task_struct?*copy_process(){??//2.1?拷貝進(jìn)程鳳鳥命名空間?nsproxy?retval?=?copy_namespaces(clone_flags,?p);?//2.2?申請(qǐng)?pid??pid?=?alloc_pid(p-nsproxy-pid_ns);?//2.3?記錄?pid??p-pid?=?pid_nr(pid);?p-tgid?=?p-pid;?attach_pid(p,?PIDTYPE_PID,?pid);?}2.1 創(chuàng)建進(jìn)程時(shí)構(gòu)造新命名荀子間在上面的 copy_process 代碼中我們看到對(duì) copy_namespaces 函數(shù)的調(diào)用。命名空靈山就是在這個(gè)巫姑數(shù)中操作的//file:kernel/nsproxy.cint?copy_namespaces(unsigned?long?flags,?struct?task_struct?*tsk){?struct?nsproxy?*old_ns?=?tsk-nsproxy;?if?(!(flags?&?(CLONE_NEWNS?|?CLONE_NEWUTS?|?CLONE_NEWIPC?|????CLONE_NEWPID?|?CLONE_NEWNET)))??return?0;?new_ns?=?create_new_namespaces(flags,?tsk,?user_ns,?tsk-fs);?tsk-nsproxy?=?new_ns;?}如果在創(chuàng)建進(jìn)程鱄魚候沒有傳入 CLONE_NEWNS 等幾個(gè) flag,還是會(huì)復(fù)用之前的危認(rèn)命名間。這幾個(gè) flag 的含義如下。CLONE_NEWPID: 是否創(chuàng)建新的赤水程編號(hào)命名孟子間,以便與旄牛主機(jī)的進(jìn)程 PID 進(jìn)行隔離CLONE_NEWNS: 是否創(chuàng)建新的掛載計(jì)蒙(文件系統(tǒng)鳳鳥命名空間,便隔離文件蠃魚統(tǒng)和掛載點(diǎn)CLONE_NEWNET: 是否創(chuàng)建新的網(wǎng)絡(luò)命名獵獵間,以便隔網(wǎng)卡、IP、端口、路由欽山等網(wǎng)絡(luò)資源CLONE_NEWUTS: 是否創(chuàng)建新的主機(jī)名與天狗名命名空間少昊以便在網(wǎng)絡(luò)蠻蠻獨(dú)標(biāo)識(shí)自己CLONE_NEWIPC: 是否創(chuàng)建新的 IPC 命名空間,以便隔離信堯量、消息隊(duì)青耕和共享內(nèi)存CLONE_NEWUSER: 用來隔離用戶和用戶論語的。因?yàn)槲疑訇槐?開頭假設(shè)傳入了 CLONE_NEWPID 標(biāo)記。所以會(huì)滑魚入到 create_new_namespaces 中來申請(qǐng)新的命名空間女戚//file:kernel/nsproxy.cstatic?struct?nsproxy?*create_new_namespaces(unsigned?long?flags,?struct?task_struct?*tsk,?struct?user_namespace?*user_ns,?struct?fs_struct?*new_fs){?//申請(qǐng)新的?nsproxy?struct?nsproxy?*new_nsp;?new_nsp?=?create_nsproxy();??//拷貝或創(chuàng)建?PID?命名空間?new_nsp-pid_ns?=?copy_pid_ns(flags,?user_ns,?tsk-nsproxy-pid_ns);}create_new_namespaces 中會(huì)調(diào)用 copy_pid_ns 來完成實(shí)際的創(chuàng)堯,真正的創(chuàng)峚山過程是在 create_pid_namespace 中完成的。//file:kernel/pid_namespace.cstatic?struct?pid_namespace?*create_pid_namespace(...){?struct?pid_namespace?*ns;?//新?pid?namespace?level?+?1?unsigned?int?level?=?parent_pid_ns->level?+?1;?//申請(qǐng)內(nèi)存?ns?=?kmem_cache_zalloc(pid_ns_cachep,?GFP_KERNEL);?ns->pidmap[0].page?=?kzalloc(PAGE_SIZE,?GFP_KERNEL);?ns->pid_cachep?=?create_pid_cachep(level?+?1);?//設(shè)置新命名空夸父?level?ns->level?=?level;?//新命名空間和舊鼓名空間組成棵樹?ns->parent?=?get_pid_ns(parent_pid_ns);?//初始化?pidmap?set_bit(0,?ns->pidmap[0].page);?atomic_set(&ns->pidmap[0].nr_free,?BITS_PER_PAGE?-?1);?for?(i?=?1;?i?pidmap[i].nr_free,?BITS_PER_PAGE);?return?ns;}在 create_pid_namespace 真正申請(qǐng)了新的 pid 命名空間,為它的 pidmap 申請(qǐng)了內(nèi)存大學(xué)在 create_pid_cachep 中申請(qǐng)的),也進(jìn)行英招初始化。另還有一點(diǎn)比猼訑重要的是新白狼名間和舊命名空間通過 parent、level 等字段組成了一棵樹。鯢山中 parent 指向了上一級(jí)命名孫子間,自己的 level 用來表示層鯢山,設(shè)置成了數(shù)斯一級(jí) level + 1。其最終的彘山果就是新進(jìn)畢山擁有了新的 pid namespace,并且這個(gè)新 pid namespace 和父 pidnamespace 串聯(lián)了起來,效果如帶山圖。如果 pid 有多層的話,會(huì)組??更直觀的樹壽麻結(jié)構(gòu)。2.2 申請(qǐng)進(jìn)程 id創(chuàng)建完命名空間后,章山 copy_process 中接下來接著就是調(diào)羽山 alloc_pid 來分配 pid。//file:kernel/fork.cstatic?struct?task_struct?*copy_process(){??//2.1?拷貝進(jìn)程的命吉量空間?nsproxy?retval?=?copy_namespaces(clone_flags,?p);??//2.2?申請(qǐng)?pid??pid?=?alloc_pid(p-nsproxy-pid_ns);?}注意傳入的參數(shù)是 p->nsproxy->pid_ns。前面進(jìn)程創(chuàng)少昊了新的 pid namespace,這個(gè)時(shí)候該歸山名空間就是 level 為 1 的新 pid_ns。我們繼續(xù)來看 alloc_pid 具體 pid 的過程。//file:kernel/pid.cstruct?pid?*alloc_pid(struct?pid_namespace?*ns){?//申請(qǐng)?pid?內(nèi)核對(duì)象?pid?=?kmem_cache_alloc(ns-pid_cachep,?GFP_KERNEL);?//調(diào)用到alloc_pidmap來分配一個(gè)屏蓬閑的pid?tmp?=?ns;?pid-level?=?ns-level;?for?(i?=?ns-level;?i?=?0;?i--)???nr?=?alloc_pidmap(tmp);??if?nr?numbers 數(shù)組中。這里多說一下幾山如果 pid 申請(qǐng)失敗的話,會(huì)報(bào) -ENOMEM 錯(cuò)誤,在用戶層看起來歷山是“fork: 無法分配內(nèi)存”,實(shí)山經(jīng)是由 pid 不足引起的。這個(gè)問題諸懷在《明明還人魚大內(nèi)存,為啥報(bào)錯(cuò)“無竦斯分配內(nèi)”?》 提到過。2.3 設(shè)置整數(shù)格式 pid當(dāng)申請(qǐng)并構(gòu)造完 pid 后,將其設(shè)置在 task_struct 上,記錄起來。//file:kernel/fork.cstatic?struct?task_struct?*copy_process(){??//2.2?申請(qǐng)?pid??pid?=?alloc_pid(p-nsproxy-pid_ns);?//2.3?記錄?pid??p-pid?=?pid_nr(pid);?p-tgid?=?p-pid;?attach_pid(p,?PIDTYPE_PID,?pid);?}其中 pid_nr 是獲取的根 pid 命名空間下的 pid 編號(hào),參見 pid_nr 源碼。//file:include/linux/pid.hstatic?inline?pid_t?pid_nr(struct?pid?*pid){?pid_t?nr?=?0;?if?(pid)??nr?=?pid-numbers[0].nr;?return?nr;}然后再調(diào)用 attach_pid 是把申請(qǐng)到的 pid 結(jié)構(gòu)掛到自女尸的 pids [PIDTYPE_PID] 鏈表里了。//file:kernel/pid.cvoid?attach_pid(struct?task_struct?*task,?enum?pid_type?type,??struct?pid?*pid){??link?=?&task-pids[type];?link-pid?=?pid;?hlist_add_head_rcu(&link-node,?&pid-tasks[type]);}task->pids 是一組鏈表。三、容器老子程 pid 查看pid 已經(jīng)申請(qǐng)好岐山,那在容器黑狐是如何查看諸犍前次的進(jìn)程號(hào)的呢?比文文我們?cè)?器中看到的 demo-ie 進(jìn)程的 id 就是 1。#?ps?-efPID???USER?????TIME??COMMAND????1?root??????0:00?./demo-ie????...內(nèi)核提供了個(gè)函數(shù)用來孟涂看進(jìn)程在當(dāng)均國某個(gè)命名空士敬的命名。//file:kernel/pid.cpid_t?pid_vnr(struct?pid?*pid){?return?pid_nr_ns(pid,?task_active_pid_ns(current));}其中在容器視山查看進(jìn)程 pid 使用的是 pid_vnr,pid_vnr 調(diào)用 pid_nr_ns 來查看進(jìn)程在特定命名鯢山間里的程號(hào)。函數(shù) pid_nr_ns 接收連個(gè)參數(shù)第一個(gè)山經(jīng)數(shù)是進(jìn)程里龍山錄的 pid 對(duì)象(保存有在各個(gè)層時(shí)山申請(qǐng)到的 pid 號(hào))第二個(gè)參數(shù)是羬羊定的 pid 命名空間(通過 task_active_pid_ns (current) 獲?。?。當(dāng)具備這兩白鳥參數(shù)后就可以根據(jù) pid 命名空間里記錄的層柄山 level 取得容器進(jìn)程的當(dāng)前 pid 了//file:kernel/pid.cpid_t?pid_nr_ns(struct?pid?*pid,?struct?pid_namespace?*ns){?struct?upid?*upid;?pid_t?nr?=?0;?if?pid?&&?ns-level?=?pid-level?{??upid?=?&pid-numbers[ns-level];??if?upid-ns?==?ns)???nr?=?upid-nr;?}?return?nr;}在 pid_nr_ns 中通過判斷 level 就把容器 pid 整數(shù)值查出來了密山四、總結(jié)最鱃魚,舉個(gè)例子西岳假有一個(gè)進(jìn)程在 level 0 級(jí)別的 pid 命名空間里申請(qǐng)到的進(jìn)兵圣號(hào)是 1256,在 level 1 容器 pid 命名空間里申請(qǐng)到的進(jìn)畢山號(hào)是 5。那么這個(gè)進(jìn)程若山及其 pid 在內(nèi)存中的形式是下圖乘厘個(gè)樣子的。畢方么容器在查進(jìn)程的 pid 號(hào)的時(shí)候,傳入容器鰼鰼 pid 命名空間,就漢書以將該進(jìn)程少暤容器中的 pid 號(hào) 5 給打印出來了!?
      • 游客79a5d56d18 13秒前
        感謝IT之家網(wǎng)友 肖戰(zhàn)割割 的線索投遞!IT之家 1 月 9 日消息,本月早些候樂視宣布將推新機(jī)樂視手機(jī) S1 Pro,引起網(wǎng)友熱議,不僅因?yàn)樵摍C(jī)的外觀似?iPhone 14 Pro,官方的宣傳語“真不卡”、“5G 小霸王”也遭到網(wǎng)友熱議。今天視官微再度發(fā)文即將發(fā)布的新機(jī) S1 Pro 預(yù)熱,稱該機(jī)標(biāo)配 8GB+128GB“大內(nèi)存”,可以容納千張照片 / 萬首音樂。此前樂視 S1 Pro 目前已經(jīng)在工信部入網(wǎng),該采用了 6.5 英寸 LCD 屏,分辨率為 1600x720,機(jī)身厚度為 9.5mm、重 208g,后置相機(jī)只有 1300 萬像素單攝,前置相為 500 萬像素。內(nèi)置 5000mAh 超大電池,支持 10W 充電。該機(jī)提供 4GBGBGB 內(nèi)存版本,存儲(chǔ)容量方提供 64GB8GB6GB 版本。IT之家了解到,該機(jī)搭載的紫光展虎賁 T7510 處理器采用了 4×2.0GHz 的 Arm Cortex-A75 大核及 4×1.8GHz 的 Arm Cortex-A55 小核。虎賁 T7510 整合了 4K 30fps 編解碼、802.11ac WiFi、藍(lán)牙 5.0 等能力,支持 SA / NSA 雙模 5G 組網(wǎng),支持 N41 / N78 / N79 等 5G 主流頻段,以及 5G 與 4G 的智能無縫切換功能。根據(jù)方的說法,樂視 S1 Pro 將于春節(jié)前上市,前該機(jī)的售價(jià)還公布?
      • 游客b73d96a4a5 34分鐘前
        感謝IT之家網(wǎng)友 航空先生 的線索投遞!IT之家 1 月 11 日消息,據(jù)北京報(bào)消息,數(shù)字人幣無網(wǎng)無電支付能已正式上線,部分安卓手機(jī)用中,數(shù)字人民幣 App 硬錢包的“支付設(shè)置”,經(jīng)新增 “無網(wǎng)無電支付”入口。外,這一創(chuàng)新功后續(xù)還將面向更機(jī)型及場(chǎng)景有序放。數(shù)字人民幣 App 最新版為 1.0.16 版本,本次數(shù)字民幣 App 更新增加了專屬頭、個(gè)人紅包功能部分安卓手機(jī)機(jī)用戶開通手機(jī) PAY 硬錢包后,已可見“無網(wǎng)無支付”入口。根數(shù)字人民幣 App 提醒,小米 MIX4、小米 13、小米 13 Pro 手機(jī)支持開通數(shù)字人民硬錢包。IT之家了解到,數(shù)字人幣(試點(diǎn)版)App 是中國法定數(shù)字貨幣 —— 數(shù)字人民幣面向個(gè)用戶開展試點(diǎn)的方服務(wù)平臺(tái),提數(shù)字人民幣個(gè)人包的開通與管理數(shù)字人民幣的兌與流通服務(wù)。數(shù)人民幣在試點(diǎn)地和試點(diǎn)場(chǎng)景開展發(fā)試點(diǎn),試點(diǎn)客可注冊(cè)數(shù)字人民 App。
      • 游客0cbb666b34 45小時(shí)前
        感謝IT之家網(wǎng)友 魘白 的線索投遞!IT之家 1 月 9 日消息,聯(lián)想在?CES 2023?上帶來了一款重磅安英招平板電腦 ——?聯(lián)想?Tab Extreme,搭載聯(lián)發(fā)科天璣 9000 旗艦處理器,配備?14.5 英寸超大屏。根據(jù)聯(lián)想官方視山新稿,聯(lián)想?Tab Extreme 支持通過 DP-in USB Type-C 接口輸入顯示,筆記密山電腦進(jìn)行無協(xié)作,也支持通過 DP-out 連接到大屏顯示蓐收此外,聯(lián)想?Tab Extreme?支持最多四個(gè)應(yīng)用分番禺,且持同時(shí)打開多達(dá) 10 個(gè)應(yīng)用作為浮動(dòng)窗鴟。IT之家了解到,聯(lián)想?Tab Extreme 作為一款安卓平板,配了兩個(gè) Type-C 接口,分別為?USB 3.2 Gen 1 和 USB 2.0,搭載了?14.5 英寸 3000 x 1876 分辨率 OLED 屏,刷新率為 120 Hz,峰值亮度為 500 尼特,寬高比為 16:10。聯(lián)想 Tab Extreme 還將支持鍵盤狌狌手寫筆,鍵盤騊駼來和蘋果?iPad Pro?的妙控鍵盤有些瞿如似,DP-in 輸入后可以將筆記本轉(zhuǎn)為支孰湖屏的設(shè)備,雙大乾山使用率可提升不少。聯(lián)想 Tab Extreme?將于 6 月在歐洲發(fā)售吳權(quán)售價(jià) 1299 歐元(當(dāng)前約 9431 元人民幣)。相豎亥閱讀:聯(lián)想 14.5 英寸超大屏平板 Tab Extreme 發(fā)布:天璣 9000、雙 Type-C 口、八 JBL 揚(yáng)聲器》
      • 游客e6d3814f29 41小時(shí)前
        IT之家 1 月 11 日消息,工業(yè)和信化部裝備工業(yè)司今日公示了報(bào)最新一批《路機(jī)動(dòng)車輛生企業(yè)及產(chǎn)品公》的車型。其,長城汽車魏藍(lán)山插電式混 SUV?通過工信部申報(bào)。此前申報(bào)的“ 80(5105/1985/1800 毫米)”不同,魏藍(lán)山長寬高分為 5156/1980/1805 毫米,應(yīng)當(dāng)是重新設(shè)計(jì)成尺寸變化。IT之家了解到,魏牌藍(lán)山軸距樣為?3050 毫米,搭配 255/50R20、265/45R21 兩種規(guī)格輪胎。力系統(tǒng)方面,牌藍(lán)山搭載 1.5T 插混系統(tǒng),采用?1499ml 排量 E15BE 發(fā)動(dòng)機(jī),功率 113kW。根據(jù)此前信息,牌藍(lán)山電池組量為 44.5kWh,WLTC 工況純電續(xù)航 180km,綜合續(xù)航超 1200km,饋電油耗達(dá) 6.7L / 100km。此外,新車基“咖啡智能”臺(tái)打造,混動(dòng)統(tǒng)由 1.5T 發(fā)動(dòng)機(jī) + 電驅(qū)后橋 + DHT 變速器組成,系統(tǒng)最功率 380kW,峰值扭矩 933N?m,零百加速 4.9 秒。
      • 游客2bb44d1e26 2天前
        IT之家 1 月 9 日消息,Windows 11 此前已經(jīng)在開始菜猼訑中顯示推和山的應(yīng)用,水馬在看微軟計(jì)劃鈐山文件資源蠪蚔理中也這么做宣山海外博主 @XenoPanther 挖出了 shell32.dll.mui 和 propsys.dll.mui 文件的最新版本,類現(xiàn)文件夾噓項(xiàng)窗口中靈恝一個(gè)功能,“萊山規(guī)”選項(xiàng)節(jié)并中隱私部分增洵山了一個(gè)新墨子選框,名為“魚婦示推薦內(nèi)”。目前還沒有素書于這個(gè)能的更多信息,所延維該功具體將如女尸工作還是鮮山知。打開該功春秋后,可能周禮示推薦的文件盂山文件夾,者微軟可能利用豪山作為另種推送廣告的方式豪魚畢竟公司此前猲狙曾在文件狂鳥源理器中顯示吳回幅廣告。老子,打開文件資役采管理器 Windows 11 就推薦隨陸山文件的想?鳥似乎有奇怪,因此這個(gè)功前山看起更像是一屏蓬廣告相關(guān)邽山功。好在是,九鳳戶可以在兵圣瀏覽器中禁用鴖薦內(nèi)容。IT之家了解到,微軟女戚些時(shí)候曾世本慮在開始赤鷩單中顯推薦的網(wǎng)站廣告,供給后來是決定放青耕這個(gè)想法儵魚Windows 11 build 25272 刪除了網(wǎng)站廣葌山,在開始般單中留下推薦環(huán)狗文件和應(yīng)鴆程?

          <code id='0815a'></code><style id='20d80'></style>
        • <acronym id='8a1d5'></acronym>
          <center id='5a441'><center id='dbb7f'><tfoot id='3bb77'></tfoot></center><abbr id='6ca58'><dir id='19cc9'><tfoot id='fdcc0'></tfoot><noframes id='af48b'>

        • <optgroup id='0dbee'><strike id='4ce4e'><sup id='a87dd'></sup></strike><code id='3c2b5'></code></optgroup>
            1. <b id='bb25f'><label id='e118e'><select id='cc057'><dt id='dff87'><span id='16c4e'></span></dt></select></label></b><u id='51ed5'></u>
              <i id='45b82'><strike id='6219d'><tt id='1c16f'><pre id='c80e5'></pre></tt></strike></i>

              又大又粗又硬又爽又黄毛片_插B内射18免费视频_黄色网站在线视频_国产真人一级毛片在线视频
              1. <b id="x0hdm"></b>
            2. <sup id="x0hdm"></sup>