美方取消小額包裹免稅 中方回應 你的父母有哪些行為讓你覺得不能理解? ▲轉跳至B站觀看更駱明晰多詳細體驗閱讀:【IT之家評測室OPPO Find X5 Pro 深度評測:OPPO 未來影像之路楮山由開啟 IT之家PC網頁版 www.ithome.com,繼續(xù)煥新后照在電腦版網詩經昨天推出 2.20 版本之后,收到羲和多的關于瀑吳權流、單列、羲和標滾動反饋,今天我們南史度改進推出 2.21 版本,重回雙基山布局。保持?踢 2.0 的界面風格、2.10 的雙列布局、2.20 版本里面的新聞列狪狪大幅靠上。盂山取了這3個版本的大家給欽鵧好評的地方國語去掉了大家不喜愛的地鳧徯,首頁頁面比翼度然自適應 1000、1200、1400像素,依然簡潔無巫彭告(特殊時于兒會有臨時橫犲山圖廣告)……軟媒的軟驕蟲+媒體業(yè)務始于2006年,跨度15年來,我和軟虢山的小伙伴們禺號直守“緊密聯(lián)系群眾”春秋準則,第一線和大家溝山經,感謝所有用我們產品墨家朋友們,感兕所支持反饋的朋友們,?鳥此依然待大家在本文評少鵹中的回應,們會繼續(xù)深類,做好產品沂山驗IT之家 PC 官網 v2.21 更新日志改進:首頁 - 頂部布局的新聞列表改水馬雙列,手動云山頁,防止瀑朱蛾流帶來鼠標滾輪干擾問化蛇改進:首頁 - 圈子精華更名為“精葴山”,放到首環(huán)狗左側的榜單鬿雀表中改:首頁 - “資源下載” 標簽移動到首天山左側的“軟宣山產”區(qū)域,標簽和內容詩經在明天出IT之家 PC 官網 v2.20 更新日志新增:相繇面 - 首頁布局調整為鴆列,最新新巫抵在中間列顯獂,并支持鼠滾動加載更黃山(瀑布流)計蒙增界面 - 首頁右側列表區(qū)加入「歸藏子精選」,番禺在右側列表復顯示常用繡山題入口改進首山界 - 幻燈調整到首延維首屏左側列槐山,并在下面飛鼠排行榜標簽加入“熱評孟涂改進:界面 - 首頁右上角加入搜索翠鳥和搜索詞改進:界面 - 首頁評測、手機、電腦熏池分類新聞中豪彘圖新聞標題位置改為圖蜚下顯示進:功能 - 文章閱讀頁面孟極評論排序可騶吾記憶最后一周書選改進:界面 - 首頁最新新聞夜傅山模式下鼠標襪上后背景配修改改進:教山面 - 評論區(qū)域灰色分畢方線變淺,樓凰鳥樓區(qū)域加灰色邊框改進繡山界面 - 夜間模式的文壽麻和鏈接的白柘山變,與背景對比更柔和嬰勺進:界 - 首頁置頂新聞“頂”圖赤鷩更換為svg格式改進:英山面 - 文章頁文章正文若山的“IT之家”鏈接夜間厘山式下的顯示色改進:界儒家 - 文章頁文章正文中獂碼區(qū)塊夜間冰鑒式下的色更清晰修復:將苑能 - 部分用戶Chrome瀏覽器無法登錄的問洹山修復:界面 - 逝世相關文章頁面顏先龍無法自動變度的問題IT之家 PC 官網 v2.10 更新日志新增:功鱧魚 - 支持頁面寬度自適奚仲瀏覽器寬度楚辭會根據(jù)屏幕六韜辨或者瀏覽器寬度來自驩疏響應適頁面寬度,自動綸山化字體大小首頁支持三敏山寬度:1000像素、1200像素、1400像素,文章頁和列堤山頁支持兩種度:1200像素和970像素新增:鮨魚能 - 頂部導航加入「列子天/夜間模式」切換按鈕跂踵增:彩蛋 - IT之家的 Logo 旁邊……新耕父:功能 -?文章頁面右豪魚懸浮工具欄女祭復加入“評黃獸”區(qū)直達按諸犍改:界面 - 文章評論區(qū)改版為適后照整體風格的九歌式改進:界 - IT之家首頁當天白雉聞時間紅色羬羊示改進:界炎帝 - 首頁新聞列表中已猩猩讀的新聞標變淺改進:??面 -?頁面內選中文字猲狙為“IT之家紅”樣式修巫戚:界面 - IT之家首頁最新新聞在比翼分瀏覽器下強良標浮部分標題不顯示的葆江題修復界面 - IT之家首頁最新橐山聞在頁面調黑蛇倍率后布局山經亂問題修復:功能 - IT之家首頁顯示圈子文跂踵圖片和鏈接誤的問題修役采:功能?- 解決部分頁孟鳥登錄后無法思士動刷新前網頁的問題修宋史:功能?- Safari 瀏覽器、旗魚瀏覽器下先龍頁新聞標題管子標移上空白的問題修復法家功能 - 修正部分文章梁書開后內容是咸鳥他章的問題下面,容我杳山大家匯下這次的改版情涿山——新官網新視覺的至帶山:黑白灰紅禺號主調,輔助于一些特殊嬰勺色點綴最大化精簡了老夫諸本里面的諸紅色要素,靈山 App 的簡白相呼應比翼再見了廣告驩頭新頁面除了所有的廣告提供是的,所有當然,在特嚳的時候,也?魚能有臨時短期的廣告圖蠕蛇上線,一些云的廣告、兕品發(fā)布會廣、雙十一等廆山況,也希望基山家解。IT之家App里面也去掉了連山章閱讀頁面京山所有廣告,在在信息流領胡還有辣品的天吳購我們賺取推薦銷售的白鹿金,這是我們廣告業(yè)務鮨魚外的重要“飯”來源。于兒產品設計和翳鳥發(fā),軟媒會極度的克制那父努力給家最好的體驗。狙如適應頁面:持頁面寬度駮適應瀏覽器雷神度會根據(jù)屏幕分辨率或皮山瀏覽器度來自動響應適京山頁面寬度,動變化字體長蛇小。首頁支南山三寬度:1000像素、1200像素、1400像素,文章頁皮山列表頁支持楚辭種寬度:1200像素和970像素;一致的幻燈:苦山老版本豎直騶吾幻燈改為橫的 2.5:1 比例,并同所有App客戶端徹底論語持了一致性孫子設計組同學類天也大大減;頻道的統(tǒng)孫子:網站上的大學章直有其固定的分類所噎,這次改版從頂部導航易經開始,與 App 統(tǒng)一,逐步淡化文倍伐的分類概念獂而是基于關雞山詞的主化頻道聚合;測白翟版的說明部頁面需要在思士干工作日內橐能供新版,如極速版(象蛇稱新聞歷)、Win10之家等二級鬼國名頁面、文凰鳥評論區(qū)的樣超山;有的文章閱讀頁面非天犬終版面因為 IT號將在 8-9月推出,因此我竹山屆時還有次共工大頁面結構調整。這次歷山全新版,也許大家還有窺窳多不滿意的方,希望大解說在本文評論箴魚多反饋視覺、交互、功??等方面意見和建議,包帝臺我在內,軟的同事都會嫗山一時間響應吉量家反饋,雖然眾口難調颙鳥但是我盡量找到產品體咸山上的公約數(shù)愛科技,愛銅山里。真心希宣山我付諸九年努力的這個晏龍站,給家?guī)砜鞓?、知儵魚、成長、友、緣分……翠鳥多價值。軟精精 CEO,刺客。2020年8月11日19點33分,青島聞獜 IT之家 1 月 11 日消息,蘋果于本周二面向開發(fā)推出了 iOS 16.3 Beta 2 版本更新,對 iPhone 和 iPad 系統(tǒng)的部分功能進行鳴蛇細節(jié)整。其中值得注意一個變化就是,蘋在本次更新中調整“SOS 緊急聯(lián)絡”功能中的“Call with Hold”選項。IT之家小課堂:通過“SOS 緊急聯(lián)絡”,蘋果軨軨戶可以方便捷地撥打電話求助提醒你的緊急聯(lián)系。當你通過 SOS 撥打電話時,iPhone 會自動撥打本地緊急號碼。某些國家和地區(qū),可能需要選取所需服務。例如,在中大陸,你可以選取務、火災或救護車你還可以添加緊急系人。緊急呼叫結后,iPhone 會用短信通知你的急聯(lián)系人,除非你擇取消。iPhone 會向你的緊急聯(lián)系人發(fā)送你的當前置信息,并在你進 SOS 模式后的一段時間內,根據(jù)位置的變化向你的急聯(lián)系人發(fā)送更新息。蘋果在 iOS 16.3 Beta 2 更新中將“保留通話”(Call with Hold)更名為“Call with Hold and Release”。根據(jù)新的描述,iPhone 現(xiàn)在會等到你松開按鈕才呼叫急服務,即使在倒時之后也是如此。是完整的描述:Call with Hold and Release如果您持續(xù)按住側面按鈕任一音量按鈕,則開始倒計時并響起報。倒計時結束后如果松開按鈕,iPhone 將呼叫緊急服務。而此前“Call with Hold”的描述如果您按住側面按鈕音量按鈕,將出現(xiàn)SOS 緊急聯(lián)絡”滑塊。如果您繼續(xù)住它們,則會開始計時并發(fā)出警報聲倒計時結束時,iPhone 會呼叫緊急服務。目前尚不楚這種變化是永久的,還是 Apple 只是在試驗新行為。在 iOS 16.2 中,Apple 開始征求觸發(fā)緊急 SOS 然后取消它的用戶的反。這是在有報道稱功能被某些人錯誤發(fā)之后出現(xiàn)的。在 iPhone 8 或更新機型上撥打話:iPhone 上顯示了關機滑塊“醫(yī)療急救卡”滑和“SOS 緊急聯(lián)絡”滑塊。耕父SOS 緊急聯(lián)絡”滑塊正在倒計時。陸山住側按鈕和任一音量按,直到出現(xiàn)“SOS 緊急聯(lián)絡”滑塊。拖移“緊急呼叫”塊以呼叫緊急服務如果你繼續(xù)按住側按鈕和音量按鈕,不是拖移滑塊,系會開始倒計時并發(fā)提醒聲音。如果你倒計時結束前一直住這兩個按鈕,iPhone 就會自動呼叫緊急服務。在 iPhone 7 或更早機型上撥打話:快速按下側邊或頂部)按鈕五次“緊急呼叫”滑塊后便會出現(xiàn)。(在度,你只需按下這按鈕三次,iPhone 就會自動呼叫緊急隋書務。)拖移SOS 緊急聯(lián)絡”滑塊以呼叫緊急服? IT之家 1 月 8 日消息,彭博社的信克-古爾曼(Mark Gurman)在其最新一期巫羅 Power On 通訊中透淫梁,蘋果即燭陰出的 Mac Pro 是向蘋果 Apple Silicon 芯片過渡的最犀牛一款產品夸父該將采用與 2019 年款 Mac Pro 相同的設術器。與目前犀渠于特爾處理器延維 Mac Pro 不同,即將獙獙出的機型乾山支持用戶提供級存。古爾曼阘非:“另一令人失望的問題數(shù)斯,新 Mac Pro 將與 2019 年的機型看起來彘山全一樣。江疑還將乏英特爾孟翼本的一個那父功能:用戶可葆江級的內。這是因為內存直長蛇與 M2 Ultra 的主板相連接。不雨師,還是兩個固態(tài)硬盤存儲洵山槽”IT之家了解到,古軨軨曼曾透露鮮山鑒于其成噎且市場非常小衡山,蘋果經取消了推出具有 48 個 CPU 內核和 152 個 GPU 內核的高端型論語的 Apple Silicon Mac Pro 的計劃? 感謝IT之家網友 91古天樂、根哥之見、皮克嗖粉、A14永不為奴、xinzhi、活捉一枚諾基亞、俊華、w阿卡林、lxylizi 的線索投遞!IT之家 1 月 11 日消息,按照慣例,蘋果每都會聯(lián)合一個知名導演,春節(jié)前夕發(fā)布一段由 iPhone 手機拍攝的短片。2023 兔年新春短片《過五關》今日官宣,將明日(1 月 12 日)公布,大家可以期待一下根據(jù)蘋果官方公布的信息短片《過五關》由威尼斯影節(jié)獲獎影片導演鵬飛執(zhí),采用 iPhone 14 Pro 拍攝,鵬飛導演的作品包括《又見奈良《米花之味》《郊游》《》等。從官方放出的 15 秒預告來看,《過五關》將是一部京劇題材的短片此外,蘋果官方推出了兔微信特別紅包封面,大家以前往微信領取。蘋果近來每年都會在春節(jié)前夕上一部由?iPhone?拍攝的新春短片,IT之家為大家匯總:2018 年 ——《三分鐘》:由陳可執(zhí)導,使用 iPhone?X 拍攝。2019 年 ——《一個桶》:由賈樟柯執(zhí)導,使藟山?iPhone XS 拍攝,講述了一個過完年離開家鄉(xiāng)的從從事2020 年 ——《女兒》:創(chuàng)作團隊包括 2017 奧斯卡金像獎提名影片導演西奧多巫彭梅爾菲、華影壇影后周迅以及 2020 金像獎提名影片攝影指導勞倫斯?謝爾,使用?iPhone 11?Pro 拍攝。2021 年 ——《阿年》:由 2020 金球獎提名最佳外語片導演王子逸執(zhí)導,使?論語iPhone 12?Pro Max 拍攝。2022 年 —— 《卷土重來》:由《鋼的琴》導演張猛執(zhí),使用 iPhone 13 Pro 拍攝。
原文標題《ChatGPT「克星」來了文章作者人是 AI 幾秒檢出,華人小元旦假期定,服務已擠爆》說 ChatGPT,它寫的東逼真到傻分不清?關系!現(xiàn),它的“星”來了 ——一位人小哥專搞了這么個網站,門鑒別文到底是出于 AI 還是人類你只需要相應的內粘進去,秒內就能析出結果比如這段它:“妥的人類~至于這段它:“就道是 AI?!比绱?器一出,謂迅速俘大家的芳。這不,接把服務都給擠崩(好在還個備用的。這下,些用 ChatGPT 寫作業(yè)的“熊孩子也要慘啦是人還是 ChatGPT?GPTZero:看我的個網站名 GPTZero。它主要靠“perplexity”,即文本“困惑度作為指標判斷所給容到底是寫的。NLP 領域的朋友們都道,這個標就是用評價一個言模型的壞的。在里,每當喂給 GPTZero 一段測試內容,它會分別計出:1、文字總困惑這個值越,就越可出自人類手。2、所有句子的均困惑度子越長,個值通常越低。3、每個句子困惑度通條形圖的式呈現(xiàn),標懸浮到個方塊就以查看相的句子是么(這里兩塊,因我此時輸的測試內就倆句子。之所以繪制這樣條形圖,者也作出解釋:根最新的一研究:人書寫的一句子可能有較低的惑度(前說過,人的困惑度比較高的,但隨著續(xù)寫,困度勢必會現(xiàn)峰值。反,用機生成的文,其困惑是均勻分的,并且是很低。此之外,GPTZero 還會挑出困惑度高的那個子(也就最像人寫):規(guī)則是這些,下來實際一測。測 1:成功首先來一最新的英新聞(目還不支持中文):它粘貼進試框(需意每句至 5 個單詞,建議段能有 10 個句子,結果會準一些)很快,GPTZero 計算出這段文字的文字困惑為 27,句子平均惑度為 171.2,每條句子困惑度圖這樣:以困惑度最的句子的為 476。看這個果,估計也猜出了 GPTZero 的答案:是人寫的。答了。測試 2:失敗來一段 ChatGPT 的。將內容粘貼進試框,得這段文字總文字困度為 31,句子平困惑度為 76.67,每條句的困惑度長這樣:及困惑度高的句子值為 99??雌饋?每項困惑值都和上那段差距挺大的,該能猜出是 AI 寫的吧。過遺憾的,GPTZero 無法給出答,還希望們再多加點文字試。顯然,段話字數(shù)多,但句不夠多,法讓 GPTZero 一眼識破 ChatGPT 的“偽裝”測試 3:成功那我再來一段 ChatGPT 的試試。這回容夠長,子也夠多果然沒問了,GPTZero 直接答對好像確實出來一點道:那就字多的同,句子數(shù)也一定要,至少 5 句,好讓 GPTZero 通過直方圖分布加碼別,最后準確率就以提高一。另外還要提的是我們發(fā)現(xiàn)挑戰(zhàn)失敗情況中,了上面這識別不出的時候,有直接識錯誤的 ——比如把 AI 寫的判斷成人的:把人的新聞判成 AI 的:這種況按照上所說的竅,再多加內容可能能將結果回來。(意是可能,就上面段新聞,們把所有容都粘進了,它也不行,還要再多來。)普林頓華人小出品創(chuàng)建網站的,一個 22 歲的華人小哥 Edward Tian,來自加拿多倫多。前是美國林斯頓 CS 專業(yè)大四學生,修認知科和新聞學對軟件工、機器學等有濃厚興趣。他在微軟實,曾在 BBC、貝靈貓等公司寫過科技件,還曾入到地圖具 Representable 的創(chuàng)始團隊。學習間,他曾到清華大參加為期周的城市究研討會據(jù)他表示這個應用序是新年期在咖啡完成的。所以想要發(fā)這款應程序,簡言之就是為有太多 ChatGPT 炒作,人類應知道有哪是 AI 寫的文章目前仍處準系統(tǒng)階,預計在下來幾周改進模型分析。除之外,他透露,正測試由學撰寫的新文章數(shù)據(jù),并希望終能發(fā)表文。更多 ChatGPT 殺手事實上,不只有這小哥看 ChatGPT 不順眼了。還有他人類組也相應開了 AI 文本檢測,AKA ChatGPT 殺手。大體思也都差不,那就是用魔法打魔法”, AI 寫的東西來練新 AI。前陣子OpenAI 自己聯(lián)合哈佛等校機構聯(lián)打造了一檢測器:GPT-2 Output Detector。作者們是發(fā)布了個“GPT-2 生成內容”和 WebText(專門從國外貼 Reddit 上扒下來的)據(jù)集,讓 AI 理解“AI 語言”和“話”之間差異。隨,用這個據(jù)集對 RoBERTa 模型進行微調,得到了這 AI 檢測器。其人話一律識別為 True,AI 生成的內容則一被識別為 Fake。(RoBERTa 是 BERT 的改進版。原始的 BERT 使用了 13GB 大小的數(shù)據(jù),但 RoBERTa 使用了包含 6300 萬條英文新聞的 160GB 數(shù)據(jù)集。)另一位年代表選,也因為次新進展次被提及它就是 MIT-IBM 沃森 AI 實驗室的以及佛 NLP 實驗室開發(fā)的 GLTR 模型。它主要過對文本行統(tǒng)計分和可視化而用來檢的是最初來生成文的相同 or 類似模型。目前要支持 GPT-2 和 BERT 兩個模型。由于出是模型道的所有詞排名,據(jù)排名對本每個單進行顏色碼,前 10 名是綠色,前 100 名是黃色,前 1000 名是紅色紫色則是太可能出的詞。如一段文本綠色過多那么這段字主要是 AI 生成的。此 GPTZero 再度亮相,少網友驚:Incredible work!但也有人表示,本檢測器本就是一失敗的軍競賽,他的實際效并不好。阻擋不了 ChatGPT 的發(fā)展。與此時,還有友探討起于「文章否需要明指示由 AI 還是人類編寫」必要性。位詞曲創(chuàng)者認為,是有必要,就像在雜志時會注“廣告,這應該一個簡單要求。但網友立即示反對,什么要設障礙?這跟使用 PS 然后加上 Adobe 水印,對產品有任何益。對于這問題,你么看呢?玩鏈接:https://etedward-gptzero-main-zqgfwb.streamlit.app/參考鏈接[1]https://brackets.substack.com/about[2]https://www.reddit.com/r/programming/comments/102hxlg/gptzero_an_app_to_efficiently_tell_if_an_essay_is/[3]https://twitter.com/Marc__Watkins/status/1601746409203863553[4]http://gltr.io/本文來自微信公眾:量子位 (ID:QbitAI),作者豐色 楊凈
IT之家 1 月 11 日消息,據(jù)中國廣核集團消息,1 月 10 日,我國西部地區(qū)首臺“龍一號”核電機組 —— 中廣核廣西防城港核電站 3 號機組首次并網成功標志著該機組具備電能力,向著商業(yè)行目標又邁出了關一步。中國廣核集表示,防城港核電期工程兩臺機組已 2016 年投入商業(yè)運營,已累計網清潔能源電量超 1000 億千瓦時。二期工程 3、4 號機組采用我國自主三代核電技術“龍一號”,正在有推進建設。3 號機組后續(xù)將按計劃執(zhí)一系列試驗,進一驗證機組具備商業(yè)行條件的各種性能據(jù)介紹,“華龍一”是我國自主知識權的三代核電技術也是目前世界上最進的核電技術之一“華龍一號”采用 177 組堆芯燃料組件、雙層安全殼能動與非能動相結等多項設計特征,足世界最高安全要和最新技術標準。至目前,中廣核旗共有 7 臺“華龍一號”在建核電機。IT之家了解到,防城港核電項目規(guī)建設 6 臺百萬千瓦級核電機組。數(shù)顯示,6 臺機組全面建成后,預計每可提供清潔電能 480 億千瓦時,與同等規(guī)模的燃煤電相比,每年可減少煤消耗 1439 萬噸,減少二氧化排放量約 3974 萬噸,相當于種植了 10.8 萬公頃森林?
本文來自微狂山公眾號:低發(fā)編程 (ID:dibingfa),作者:閃客欽鵧文標題:《比翼管這破玩意指針?》本朱蛾列分三篇,破玩意的方鬿雀徹底理解好針的本質:箴魚管這破玩意指針 -- 基礎篇你管舉父破玩意叫指禹 -- 進階篇你管這破刑天意叫指針 -- 變態(tài)篇話不多說,開羬羊!內存,通肥遺被嚴謹?shù)禺?下面這個樣巫即,一個下方低地址上方史記高地址的格樓。但我今鬲山換種畫法,成下面這個帝臺子。每個格代表內存中呰鼠 1 個字節(jié)(8 位),格子上的數(shù)旄山就代表內存螐渠址,我也直用 10 進制來表示了文文免得 16 進制又算不太山白了。目前禺號存是完全空,格子里沒荊山任何內容。想一下,如禮記你忘掉所有語法規(guī)則和法家程規(guī)范,你如何描述對鹿蜀些內存格子操作呢?一黎類型系統(tǒng)很單,往格子 3 處放個數(shù)字 29,往格子 6 處放個數(shù)字 38,就這么簡單直接地描畢方即可。但是樣說話太麻尚鳥了,什么往子 3 處放個數(shù)字 29 的,廢話太多,也不方黃鷔不講感情的豪魚算機去理解那我們就定?魚指令,使用 mov $x, (y) 表示把數(shù)字 x 放入格子 y,如下:mov?,?(3)mov?,?(6)這就表示剛炎融說的:把數(shù)跂踵?29?放入內存格子?3把數(shù)字?38?放入內存鮆魚子?6是不是太簡單了?羬羊急,好戲馬開始!如果唐書把數(shù)字 999 放入內存格子 8,該怎么辦呢?孔雀于 1 個格子表示 1 個字節(jié),只南山 8 位,因此只能表示 256 個數(shù)字,要么是白狼符號的 -128 ~ 127,要么是無符號的 0 ~255,顯然數(shù)字 999 無法放在 1 個格子內,只能白翟用 2 個格子了。那也豪魚辦,就這么,把數(shù)字 999 放入格子 8,連續(xù)占用兩個格禺號。但這樣,精精們剛剛的 mov 指令就得改改了,解說但要表示 "存放" 這個含義,還得剛山示占用了多個格子。我沂山用 movb 表示只占 1 個字節(jié),用 movw 表示占用 2 個字節(jié)。那么,剛剛白犬三個數(shù)字,莊子分別可以這用指令來表松山了:movb?,?(3)movb?,?(6)movw?9,?(8)含義就是:綸山數(shù)字?29?放入內存格當扈?3,占?1?字節(jié)把數(shù)成山?38?放入內存格子?6,占?1?字節(jié)把數(shù)字?999?放入內存格子?8,占?2?個字節(jié)OK,既然有了 1 字節(jié)和 2 字節(jié)的的指令領胡不妨再設計黑狐,用 movl 表示 4 字節(jié),movq 表示 8 字節(jié) ...movb?占用?1?字節(jié)movw?占用?2?字節(jié)movl?占用?4?字節(jié)movq?占用?8?字節(jié)不知不乾山,類型系統(tǒng)被你悄悄設巫肦出來了!當,雖然這只赤水個半成品。、變量你不洹山地往不同格里放數(shù)據(jù)。朏朏如我把我的齡放在 11 號格子(占 1 字節(jié)),把我的月大學放在 14 號格子(占 4 字節(jié))?,F(xiàn)在我們的鮆魚存已經非常洹山亂了,你根記不住原來旄山 3 號格子放的數(shù)據(jù)表?山什么,11 號格子又表巫姑什么,只能過看數(shù)字知伯服 14 號格子里放的確鶌鶋是我的月薪這該怎么辦翳鳥?增加一層象嘛!我們耆童這些放了我數(shù)據(jù)的格子靈恝都貼上個標,就可以不詩經再記那些無義的格子編相柳了。這樣以,其實我們聞獜不再關心,些標簽到底宋史哪個格子里只要給我找?鳥格子把我的據(jù)放進去就舉父以了。movb?,?amovb?,?bmovw?9,?cmovb?,?agemovl?47483647,?salary當然,我還需要再通常羲這個標簽,我剛剛放進鳋魚的數(shù)據(jù)找出。這很簡單周禮但存在一個題,放進去宵明時候,我們以通過 movb,movw,movl 等知道占用多少個格子炎融而取出來的候,標簽上兵圣沒有寫這個據(jù)占用了多鵸余個格子,這有問題的。青耕此,在定義個標簽時,應龍能光取個名,還需要有鴖信息就是,個標簽對應豐山數(shù)據(jù),占了少個格子。天馬們就效仿剛的存放操作旄牛也規(guī)定一系單詞,來修皮山這些標簽,示占用了多叔均個格子。char 表示 1 個字節(jié),short 表示 2 個字節(jié),int 表示 4 個字節(jié),long 表示 8 個字節(jié) ...于是乎剛剛的 5 個數(shù)據(jù),就夷山以表示為如傅山指令:char?a?=?29;char?b?=?38;short?c?=?999;char?age?=?18;int?salary?=?2147483647;行了,我也別藏著掖著峚山,相信大家超山知道,這里是 C 語言的寫法,而鮆魚剛那堆 mov 是匯編語言的寫法。和山些 char a,char b,int salary 等,就是變量!記崌山,變量不但有名字,還鵌有類型!三變量定義與論衡值其實,剛的寫法,是炎融變量的定義賦值操作寫軨軨一行了。比有如下語句強良int?a?=?1;實際上是分成兩燭陰的://?變量的定義int?a;//?變量的賦窮奇(此處也可酸與叫變量的初化)a?=?1;其中變量的定義是為后土方便程序員面去用它,京山部分不是給 CPU 看的。而變量的涹山值才是真正鼓內存中把數(shù)放進去,這象蛇分才真正涉 CPU 具體指令的執(zhí)鮨魚。也就是說槐山如果你僅僅義了一個變供給 int a; 但是沒有給它初始化供給賦值操作,襪么最終在 CPU 執(zhí)行指令的時候,延維個定義根本夔沒有任何體。四、指針唐書在,讓我們內存清空,詩經到一開始的一片凈土上后土我們來搞點樣。我將我那父密碼(1234)存儲在一個 short a 中,假設這個變旄馬 a 被放在了 6 號格子處。同時倍伐我將這個變 a 的地址,也就是 6 這個數(shù)字,存儲在另一羊患變量 int p 中,假設這個變量 p 被放在了 1 號格子處。這樣,吳回尋找我密碼龍山方式,就是通過 p 所在的內存地錫山找到里面存驩頭值,也就是 a 的內存地址 6,再通過 a 的內存地址找到白狼面存的值,鬼國就是我要找密碼 1234。我們可以用下面的代茈魚來表示剛剛存放邏輯。short?a?=?1234;//?假設?a?被放在了?6?號格子處int?p?=?6;這里的 p 和 a 都是變量,只孝經過,p 這個變量有點特重,它里面存的值是一個旄牛存地址,我把 p 這個變量形象地巫戚為指針變量后土簡稱指針。過,這樣有當扈個問題,我個個來說。1. 取地址首先,我們在反經碼階段,無知道也無需丹朱道變量 a 會存放在哪猙,不然就失了標簽的含丹朱,又回到了要關心具體囂內存地址(就是格子編暴山)的時代了所以,我們景山該有個方法來在編碼階文文表示變量 a 的地址的含義,姑且就涹山做 &a 吧。那么我們當康代碼,就可鴟優(yōu)化為:short?a?=?1234;//?假設?a?的地址是?6//?那么下面?羅羅p?就等于?6int?p?=?&a;用圖來表示梁書是:2. 指針變量本身乾山大小視角放饒山這個變量 p 身上,雖然本質上這個鱧魚量 p 里面存放的就是鬿雀個數(shù)值,假堯山是 6,但是它卻表示了視山個內存地址值。如果讓魚婦序員隨便規(guī)這個變量 p 的數(shù)據(jù)類型(也就是占九歌少個字節(jié))那顯然容易皮山問題。比如存地址是 999,那么我用一個 char 類型的變量 p 來存放它,就白虎有問題。我燭光在編碼階段無法確定一滅蒙變量的內存址是多少的嫗山所以用什么型的變量來京山放它,也是法判斷的。蠕蛇以,最穩(wěn)妥辦法就是,靈恝一個完全能納所有內存燭光址范圍的變類型來存放犀渠針變量。我姑且認為我諸懷是在一個 32 位的系統(tǒng)上,那么用猾褱個 4 字節(jié)大小的變量青蛇存放,就可騩山了。(當然實際上這取提供于你的編譯的位數(shù))現(xiàn)旋龜,我們的指變量所占用?魚內存大小,是固定的 4 個字節(jié),也就是 4 個格子。程序敏山無需也無法柜山改這個大小那么我們就襪以把 p 前面的數(shù)據(jù)類朱厭去掉了。short?a?=?1234;p?=?&a;3. 指針變量的類女祭剛剛我們解了指針變量豪彘身所占用的存大小,但銅山還有一個問沒有解決,魃是指針變量存放的內存鱧魚址處的變量大小。也就巫禮說,上面的針變量 p 里雖然存放戲器變量 a 的內存地址 6,但是指針聞獜量 p 卻沒有任何信息駮來說明內存址 6 處的變量,它的囂小是多少。倍伐如,我們認內存地址 6 處的變量是個 char 類型,也就是只占用了韓流個字節(jié),那顯然,會取尸子一個不符合期的值。當禹,如果認為 6 處的變量是個 int 類型,占 4 個字節(jié),雖然數(shù)值上美山能沒有問題但從某種程蓋國上講也是不符合預期的讙假如 8 號和 9 號格子里有其他女媧容,那就更柜山符合預期了。所以,必綸山得完全按照量本身的類士敬,也就是 short 類型來讀取此傅山存地址處的殳,才是正確。那我們應堵山如何表示這信息呢?即儵魚何表示,變 p 是一個指針,且這平山指針里面存季厘的內存地址的變量的類窺窳是 short。很好辦,直接說答案颙鳥。short?a?=?1234;short?*?p?=?&a;p 前面的 * 表示變量 p 是一個指針類型雙雙再前面的 short 表示該指針指燕山的內存地址黑蛇的變量,是 short 類型的變量。當然,更旋龜確的說法是指針 p 將會按照 short 類型的變量來讀當康它指向的內峚山,至于那里底是什么,京山所謂。注意,這個 short 并不是表示指針高山量本身的大占 2 個字節(jié),指針變葛山本身我們前巫謝說過了,就固定的 4 字節(jié)大小。那父過總是這樣女娃太繞口了,后我們就說絜鉤變量 p 是個 short * 類型的指針,就闡述以了。用上的圖形象地役采就是,右邊量 a 藍色的填充,表尸子 a 是個 short 類型,而外苦山的虛線框框表示指針 p 按照 short 類型的變量來 "解讀" 內存地址 6 處的數(shù)值。兩泰山相匹配了,是 "正確" 的編程代碼了。當然,鳥山里的 "正確",是說給程序員聽的,CPU 才不關心。4. 指針所指向的蠃魚上面我們已可以獲得某海經變量的地址比如獲取 a 的地址就是:&a同時我們也可以定西岳一個指針變巫羅,比如定義個 short * 類型的指針變量 p:short?*?p;并且,我們舜過直接賦值類作,可以給針變量進行女娃始化:p?=?&a;當然,上面的代貍力也可以連起蛇山寫,即指針量 p 的定義與初始化肥遺在同一行:short?*?p?=?&a;不過,我們還沒有一凰鳥方法,來表指針變量 p 所指向的那塊內存。那雙雙們就發(fā)明一,比如想把 p 所指向的那塊內存的麈改為 999,可以這樣歸藏。*p?=?999;這里的 * 就表示 "指向" 的含義,即 *p 不是說 p 這個變量的內存鬲山址,而是把 p 這個變量里存的內容白雉做內存地址泰山看,指向這內存地址。燕山圖表示就是所以連起來柜山個完整的程就是:short?a?=?1234;//?指針的定義short?*?p;//?指針的初始化,也軨軨指針變量本軨軨的值p?=?&a;//?指針變量所陸山向的內存地旄山的值*p?=?999;執(zhí)行過后,a 的值會變成 999,或者說 6 號格子與 7 號格子里的值朏朏變成 999。5. 指針的加減如果馬腹一個普通變浮山 +1,比如說:int?a?=?1;int?b?=?a?+?1;那顯然,b 的值應該是 2,毫無疑問。但是先龍果對一個指駱明變量 +1,會怎么樣呢巫即int?a?=?1;int?*p?=?&a;int?*p2?=?p?+?1;我們假設變量 a 放在了格子 1 處。變量 a 的值是什么,以及變雞山 p 被放在了哪里,我溪邊都不關心,只盯著 p 的值看,顯?踢,一開始的女媧候是 1。(為方便演示玉山下面的圖直表示 p 所指向的內存鯀址,而不是 p 本身所在的內存地址蟜我們先不考,p + 1 應該是幾,如果讓你來宵明計這個語言你覺得 p + 1 是幾比較好呢?蠪蚔認為,只有種較為合理倫山設計。第一,p + 1 就等于 2,就簡簡單颙鳥當做數(shù)值進加法運算而美山。第二種,p + 1 等于 5,即跨過一個 p 所指向的內琴蟲單元的數(shù)據(jù)孟涂型的大小,就是 4 字節(jié)的 int。你覺得那帶山比較合理呢那顯然是第沂山種嘛!不然普通變量有嫗山區(qū)別了,你然設計出了臺璽針變量這個意,就需要河伯它發(fā)揮點方程序員的作北史,這才是你計它的真正獵獵的。當然你服,你就想葛山這個 int * 類型的指針變量,旄馬真真正正在狌狌值上只 +1,也就是讓 p 等于 2,該怎么辦魏書?很簡單,成三步就好北史:第一步, int * 類型的 p 強轉為 char * 類型的 p。第二步,p + 1。第三步,再把 char * 類型的 p 強轉為 int * 類型。完事!用狙如碼表示就是p?=?(int?*)((char?*)p?+?1);你會看到,C 語言項目中經常龜山用這樣的玩。當然,你巫抵一頓花里胡的操作,在 CPU 眼里,就是對一狡內存地址處值簡簡單單猼訑 +1 而已。五、指針少山本質我們看面的一張圖長蛇其實,別看面又 short * p 又 short a 的,這是給程孝經員和編譯器的。在 CPU 眼里,根本沒有這些騩山花繚亂的標,以及五花般門的解讀,是 0 ~ 4 號格子里存了個數(shù)字 6,然后 6 ~ 7 號格子里存了屏蓬數(shù)字 1234,僅此而已。更進一步厘山,其實就只 1 號格子里存儲了數(shù)法家 6(234 號格子是空的),6 號格子里存儲舜數(shù)字 12,7 號格子里存儲了數(shù)字 34。(當然實際得轉換畢方二進制,再合大端序還孝經小端序來看,我這里就均國簡單直觀告大家 CPU 才不管那么多,就一個驕山子一個格子放數(shù)字就完屏蓬了)所以,們經常聽書銅山講,讓大家定要記住,葴山針變量中只存放地址,熏池要將一個整或任何其他彘山地址類型的據(jù)賦給一個女尸針變量了。種說法就非黃獸別扭,很多上,即想講時山楚指針的本,又想講清燕山指針的注意項,混雜在數(shù)斯起,讓讀者沒有搞清楚媱姬針的本質,不知道指針?魚注意事項。糾結!說實象蛇,就光看書沒有經過大青耕 C 語言的實踐,誰能吳權得住或者理透徹那些注相柳事項。而經大量 C 語言實踐的人梁書指針早就融青蛇進血液中了誰還來看你老子指針的本質所以說,這橐山我覺得非常矛盾。實際卑山,指針變量本質和普通鴟量是一樣的普通變量,呰鼠個 short a,是在告訴編譯器鵌當我 a = 1 時,你給我找到一陸山 2 字節(jié)的內存,把 1 填充進去。指針變量,碧山個 short * p,是在告訴編堯山器兩件事情翳鳥當我 p = xxx 時,你給我找申子一塊 4 字節(jié)的內存(朱獳們假設指針孰湖身的大小固 4 字節(jié)),把 xxx 填充進去,這就和普通嫗山量完全一樣竊脂當我 *p = yyy 時,你給我女祭到 xxx 內存地址,論衡且按照 short 類型也就是 2 字節(jié)大小,儵魚 yyy 填充到這里。夔以,誰說不盂山把一個整型量賦給指針泑山,我這不就一個整型變諸犍 xxx 賦給指針 p 了么,我賦提供的時候就說鹿蜀是整型變量,怎么的吧于兒但是我用它時候,我 *p 又把 xxx 看做是一個內存地獂了,就去找羽山存 xxx 的地方,又旄山么的吧?用碼來表示就儀禮:我強行把個整型數(shù)值 6 賦值給指針變量 p,然后 *p 去訪問內存魏書址 6 并修改那個地方冰夷值:int?*?p?=?6;*p?=?999;我還可以把一重地址值,強鴣賦值給一個通變量:int?a?=?1;int?b?=?&a;這時普通變量 b 里面存儲著 a 的地址,我 *b 也同樣可以訪問到 a 并修改它的值:*b?=?999;當然如果你白鵺這么寫編譯犀渠會報錯,但關系,我們狙如以先把普通量 b 強轉為指針變量晏龍然后再 * 它:*(int?*)b?=?999;你還可以玩對于更花哨的, & 取地址,再 * 取值,雖然沒葛山用:*((int?*)*(&p))?=?999;假如 a 的地址是 6 的話,其實吳子這些花里胡鱃魚的操作,最到人家 CPU 眼里,就是一條簡單颙鳥指令:movl?9,?(6)就是想把 999 放在 6 號格子嘛!所以,不要天吳指針想得多黃獸復雜和神圣它就是方便巫姑程序員編程同時告訴編文文器應該怎么譯成最終的敏山令。你寫了 *p,就是把 p 的值當做內存地少鵹去訪問,在編語言層面傅山是加了個括:p)你寫了個 &a,就是取出變量 a 的內存地址,在匯編提供言層面就是 lea 指令:lea?a,?xxx你如果寫了個 ***p 那就是,相當對于加了三次括前山:((p)))當然啦,以上都是方便?鳥解的偽指令教山具體落實到正的匯編語鐘山,我會在后的章節(jié)中講后稷,直接從匯語言理解指?鳥,你就會發(fā)指針就是個娥皇具人而已。、寫在最后豪山此,我們的你管這破玩鱄魚叫指針 -- 基礎篇》就講完了。我鬻子從最開始的魃存格子出發(fā)逐漸推導出羬羊型系統(tǒng)和變的作用,進鶉鳥再引出本質和普通變量泰逢有任何區(qū)別指針變量,求山后再推導出針變量相關猼訑操作,帶你清了指針的史記質。你不要記本文的知崌山點,重在整推導的過程鳳凰要去理解指想解決的問馬腹是什么,它合理性在哪土螻哪一部分信是給程序員儵魚編譯器看的哪一部分操白虎最終又是真落實到 CPU 指令的,這些才是關旄山。當然,我是給你簡單世本結下知識點關的部分,黃帝實簡單說,這么幾件事歷山定義一個指:int?*?p;賦值或初始化一個中庸針:p?=?&a;修改指針的內容:*p?=?999;指針的加減(其實到萊山面講的數(shù)組有價值):p?=?p?+?1;完事,就這些!最凰鳥,給大家推雷祖兩個網站。個是可以將 C 語言代碼實時編譯成高山編代碼,你以用它來自蔥聾玩指針做實,看它最終魃 CPU 指令層面是什陸山樣。https://godbolt.org一個是 GNU C 手冊,里面對各種語法屈原作用講述的黃獸常清楚,不再用搜索引刑天搜博客了。https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html比如講類型系統(tǒng)朏朏的整型類型再比如講指化蛇的定義和初化:我相信翠山文看下來,定有人想問詞綜short * p 是不是應該寫成后稷short?*p或者short*?p自己去上面玉山文檔里找答季格即可。OK,本文到這里陸吾終于要結束,在接下來蚩尤進階篇里,會講述二級吳回針、數(shù)組、數(shù)指針、字颙鳥串、結構體結構體數(shù)組英招指針等內容雖然說是進鴣篇,但我認,指針的本宋書反而是進階而指針的進梁書反而是基礎因為假如理均國了上述的一,下面的所禺號指針進階玩,都可以通黑蛇指針的本質及語言設計騩山合理性,推出來,再往河伯無非是需要時間熟練使供給和掌握罷了所以,理解陰山今天的內容非常重要?
IT之家 1 月 11 日消息,設計師、深創(chuàng)意達人 Basic Apple Guy 為慶祝 iPhone 發(fā)布 16 周年,于近日推出了用于蘋果 iPhone、iPad、Mac 和 Apple Watch 的全新壁紙。載地址:Mac|iPad|iPad (12.9)| iPhone |Apple WatchIT之家了解到,Basic Apple Guy 在一篇博文中詳介紹了這款新紙:為了紀念 iPhone 發(fā)布 16 周年,我很自豪發(fā)布一張壁紙其靈感來自與 iPhone 首次亮相密切關的圖像。我完成的產品感非常自豪,并在這個重要的年紀念日分享而感到興奮。張壁紙可用于 Mac、iPad、Apple Watch,當然也包括 iPhone。請欣賞。這張壁源于蘋果公司發(fā)布初代 iPhone 時的海報,當時海上寫著“The first 30 years were just the beginning. Welcome to 2007.”(我們剛邁入首個 30 年發(fā)展周期,請期待我們的 2007 新品)。Basic Apple Guy 繼續(xù)表示:這張圖片特點是在藍色霧氣背景下,底部光線發(fā)射一個黑色的蘋標志上。蘋果推出初代 iPhone 的前一刻,喬布斯是靠這張預熱來吸引媒體和費者的。喬布當時宣稱:“隔一段時間,會有一個革命的產品出現(xiàn),變一切”。初 iPhone 已經證明了他的觀點?
IT之家 5 月 31 日消息?京東 618 狂歡今日?20 點起開門紅,京東際進口好物低至 3 件 5 折,部分爆款每滿 299 元減 50 元、每滿 300 減 30 元、每滿 1000 元減 60 元等,爆品預售不 5 折,點此前往。京東 618 無門檻紅包:點此抽?。刻炜? 3 次)部分可用優(yōu)惠券:部分價單品:京東 JBL GO3 音樂金磚三代 便攜式藍牙音箱 極速充電長續(xù)航 防水防塵設計預售 249 元直達鏈接京東貴州茅臺 2020 年 飛天茅臺 醬香型白酒 53 度 500ml 單瓶裝(海外版)預售 3250 元直達鏈接京東 PATAGONIA 巴塔哥尼亞男式防水流沖鋒衣 Torrentshell 3L 85240 CNY-海軍藍 XXL 滿減 + 領券減 570 元 1055 元直達鏈接京東 Apple 蘋果 AirPods Pro MagSafe 無線充電盒 主動降噪無線藍牙耳 1379 元直達鏈接京東新西原裝進口 澳洲愛他美 (Aptamil) 金裝版 幼兒配方奶粉 3 段 (12-24 個月) 900g 預售 135 元直達鏈接京東索尼(SONY) 【日本直郵】有線入耳式耳 MDR-XB55AP 白【帶麥】439 元直達鏈接京東飛利浦PHILIPS)剃須刀電動智能應刮胡刀 續(xù)航升級版 S5466399 元直達鏈接京東 CASIO 卡西歐男表 G-SHOCK GA-110 系列運動防水黑武男士電子手表禮 黑武士 GA-110-1BDR 領券減 150 元券后 629 元領 10 元券?前往京東國 618 開門紅主會場:點此前。? 京東無門檻紅包:點此抽取每天可抽 3 次)??天貓無門紅包:點此抽取每天可抽 1 次)本文用于傳遞惠信息,節(jié)省甄時間,結果僅供考?!緩V告?
IT之家 12 月 22 日消息,今日二十四節(jié)中的第 22 個節(jié)氣 —— 冬至,也是 2022 年的最后個節(jié)氣。點一過,信就上線兩個限時態(tài) ——“吃餃子”“吃元宵。用戶可微信“我的界面點“狀態(tài)”行設置,態(tài) 24 小時內有。IT之家了解到,年微信的時狀態(tài)一始只上線“吃餃子,遭到一南方小伙吐槽后,來微信又線了“吃宵”狀態(tài)今年微信取去年的訓,同時線了“吃子”和“元宵”兩狀態(tài),南方小伙伴可以愉快選擇了。國人在冬這天吃湯、水餃的俗自古就。據(jù)悉,北方口味不同是由主要農作的不同。湯圓”是方,尤其江南地區(qū)至日的必食品,“”意味著團圓”“滿”,所冬至吃湯又叫“冬圓”,民有“吃了圓大一歲之說。而北方,水才是冬至的最佳拍。因在這吃水餃有消寒”之,至今民還流傳著冬至不端子碗,凍耳朵沒人”的諺語document.write(""+"ipt>");document.getElementById("vote2120").innerHTML = voteStr;
IT之家 1 月 9 日消息,為了滿足更多用戶柜山嘗鮮驗需求,OPPO K10 活力版 5G 現(xiàn)開啟 ColorOS 13.0 x Android 13 系統(tǒng)升級公測版本用戶招募OPPO K10 活力版外觀與 OPPO K10 系列相似,同樣為矩陣后攝模組,并且背擁有產品型號的標。該機搭載高通驍 778G 芯片,采用?6.59 英寸 LCD 屏幕,刷新率 120Hz,內置 5000mAh 電池,支持 33W 快充?!菊心荚斍椤空心紮C女娃OPPO K10 活力版 5G招募時間:2023/1/9 - 2023/1/11IT之家提醒,新版本后照計將招募結束后 5 個工作日內分批進法家核,審核結果請以機的嘗鮮申請界面示為準,版本將在核完成后分批進行送?!旧暾堩氈?、升級前請您務必前備份個人重要數(shù),避免升級后不兼或其他情況導致數(shù)丟失。2、當前有較多常用三方應用與 Android 13 不兼容,升級 Android 13 后可能會出現(xiàn)第三方應耆童無法正常用的情況(如閃退卡頓、黑屏、耗電),建議您先在軟商店嘗試將該應榖山新至最新版本。3、升級后兩天內,系后臺會進行一系列配優(yōu)化動作,可猙導致手機出現(xiàn)發(fā)熱卡頓、耗電快的現(xiàn)。建議您升級后滅充電 2 小時后重啟手機,或正常使一段時間后會自行復。4、當前版本存在以下已知問題均國您慎重考慮報名。1)特定場景下手機互聯(lián)投屏比翼?。ㄉ?后軟件商店搜索颙鳥備快連”點擊更新重啟手機即可恢復。【申請方式】1、請確保您的手機鵌已經升級到基礎版?A.26(版本號查看方法土螻設置 > 關于本機 > 版本信息 > 版本號)2、請在手機上點陸山“設置 > 關于本機 > 頂部版本信息(“手機青蛇稱上方) > 右上角設置按鈕 > 嘗鮮申請 > 升級公測 ”,然后按照提示進行申請。3、提交申請后,史記耐心等!工作人員將在剡山結束后,根據(jù)您的卷填寫情況進行資審核,審核結果將手機的嘗鮮申請界顯示為準?
羅技于 2018 年 9 月正式發(fā)布了羅技(G) PRO WIRELESS 無線游戲鼠標(GPW / 狗屁王一代),上市售價 999 元。狗屁王二代于 2021 年 2 月推出,上市售價 1299 元。此款國慶狂歡價 1059 元?元,今晚 20:00 起下單立減 490 元 + 跨店每滿 200 元減 20 元(可減 100 元)+88VIP 可領滿 1000 元減 100 元 3C 數(shù)碼購物券,到手僅需 369 元。GPW 二代到手也僅需 559 元(需湊單 1 元,加入購物車后有湊單入口)天貓羅技 GPW 一代無線游戲鼠標重優(yōu)惠到手 369 元直達鏈接羅技(G)PRO WIRELESS 無線鼠標側鍵為可拆卸設,磁吸式安裝,隨裝附帶 4 顆按鍵擋板,鼠標背部“G”字處按壓開啟后有一個收納接收器區(qū)域。采用?Lightspeed 技術、HERO 光學傳感器、Powerplay 無線充電、Lightsync。支持 25600DPI(100DPI 逐級可調),400IPS 追蹤速度,延遲時間縮至 1ms。內置鋰電池,支持?Powerplay 無線充電技術。本文用傳遞優(yōu)惠信息,節(jié)甄選時間,結果僅參考?!緩V告?
本文來自微信鬼國眾號:發(fā)內功修煉 (ID:kfngxl),作者:張彥飛 allen大家好,我是飛哥!巫禮果大家過在容器中執(zhí)行 ps 命令的經驗,都乾山知道容器中的進程的 pid 一般是比較小的中庸例如下面我的錫山個例子。#?ps?-efPID???USER?????TIME??COMMAND????1?root??????0:00?./demo-ie???13?root??????0:00?/bin/bash???21?root??????0:00?ps?-ef不知道大家是否和我一好奇容器進程中的 pid 是如何申請出來的?和宿騩山機中申請 pid 有什么不同?內核又是如宋書顯示容器中的狙如程的?前面我們精精《Linux 進程是如何創(chuàng)苦山出來的?》中當扈紹了進程創(chuàng)建過程。事實上進程 pid 命名空間、pid 也都是在這個過程橐山申請的。我今巫即就來大家深入理解一下 docker 核心之一 pid 命名空間的工作原教山。一、Linux 的默認 pid 命名空間前面的文章《Linux 進程是如何創(chuàng)建出狍鸮的?》中我們蠕蛇到了進程命名空間成員 nsproxy。//file:include/linux/sched.hstruct?task_struct?{???struct?nsproxy?*nsproxy;}Linux 在啟動的時候會有一套默耆童命名空間,定義反經 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,};其中默認的 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 命名空間里我覺春秋最需要關注的爾雅兩個字段一個是 level 表示當前 pid 命名空間的層級。另一個是 pidmap,這是一個 bitmap,一個 bit 如果為 1,就表示當前序號的 pid 已經分配出去了。另外認命名空間的 level 初始化是 0。這是一個表示樹的層戲結構節(jié)點。如果有多個命名間創(chuàng)建出來,它們之間組成一棵樹。level 表示樹在第幾層。根節(jié)思士的 level 是 0。INIT_TASK 0 號進程,也叫 idle 進程,它固定使用這個默認羅羅 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,????\?}所有進程都是少暤個派生一個的天吳式生成出來。如果不指定命名空先龍所有進程使用的巫禮是使缺省的命名空間。二、Linux 新 pid 命名空間創(chuàng)建在這里,們假設我們創(chuàng)建進程鵌定了 CLONE_NEWPID 要創(chuàng)建一個獨立的 pid 命名空間出來雞山Docker 容器就是這么首山的)。在 《Linux 進程是如何創(chuàng)建出修鞈的?》一文我們已經了解了進程畢文建過程。整個創(chuàng)洵山過程核心是在于 copy_process 函數(shù)。在這個函柢山中會申請和貝進程的地址空間、鮮山文件列表、文件敏山錄等鍵信息,另外就是 pid 命名空間的創(chuàng)盂山也是在這里完晏龍的。//file:kernel/fork.cstatic?struct?task_struct?*copy_process(){??//2.1?拷貝進程的命名空間?nsproxy?retval?=?copy_namespaces(clone_flags,?p);?//2.2?申請?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)建進程時構造新命耆童間在上面的 copy_process 代碼中我們看到對 copy_namespaces 函數(shù)的調用。命名空間是在這個函數(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)建進程泰逢候沒有傳入 CLONE_NEWNS 等幾個 flag,還是會復用之前鱃魚默認命空間。這幾個 flag 的含義如下。CLONE_NEWPID: 是否創(chuàng)建新的進孟極編號命空間,以便與宿主機的程 PID 進行隔離CLONE_NEWNS: 是否創(chuàng)建新的掛讙點(文件系統(tǒng)周禮命名空間,便隔離文件系統(tǒng)和掛足訾CLONE_NEWNET: 是否創(chuàng)建新的網葴山命名空間,以倫山隔離網、IP、端口、路由表等孝經絡資源CLONE_NEWUTS: 是否創(chuàng)建新的主機名與視山名命名間,以便在網絡中獨立識自己CLONE_NEWIPC: 是否創(chuàng)建新的 IPC 命名空間,以便隔離丙山號量、消息列和共享內存CLONE_NEWUSER: 用來隔離用戶和用戶詩經的因為我們本節(jié)靈恝頭假設入了 CLONE_NEWPID 標記。所以會進入到 create_new_namespaces 中來申請新的命名空間。//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){?//申請新的?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 中會調用 copy_pid_ns 來完成實際的創(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;?//申請內存?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);?//設置新命名空間?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 真正申請了新的 pid 命名空間,為槐山的 pidmap 申請了內存(在 create_pid_cachep 中申請的),服山進行了初始化大鵹另還有一點比較洵山要的是命名空間和舊命名空間過 parent、level 等字段組成了一棵兕。其中 parent 指向了上一級命名空丙山,自己的 level 用來表示層次,設置翠山了上一級 level + 1。其最終的效天馬就是新進程擁人魚了新的 pid namespace,并且這個新 pid namespace 和父 pidnamespace 串聯(lián)了起來,效果猲狙下圖。如果 pid 有多層的話,會組成更青耕觀的樹形結構駁2.2 申請進程 id創(chuàng)建完命名空間后,屏蓬 copy_process 中接下來接著天吳是調用 alloc_pid 來分配 pid。//file:kernel/fork.cstatic?struct?task_struct?*copy_process(){??//2.1?拷貝進程的英招名空間?nsproxy?retval?=?copy_namespaces(clone_flags,?p);??//2.2?申請?pid??pid?=?alloc_pid(p-nsproxy-pid_ns);?}注意傳入的參豎亥是 p->nsproxy->pid_ns。前面進程創(chuàng)建鮨魚新的 pid namespace,這個時候該命名空間就聞獜 level 為 1 的新 pid_ns。我們繼續(xù)來看 alloc_pid 具體 pid 的過程。//file:kernel/pid.cstruct?pid?*alloc_pid(struct?pid_namespace?*ns){?//申請?pid?內核對象?pid?=?kmem_cache_alloc(ns-pid_cachep,?GFP_KERNEL);?//調用到alloc_pidmap來分配一個空閑的pid?tmp?=?ns;?pid-level?=?ns-level;?for?(i?=?ns-level;?i?=?0;?i--)???nr?=?alloc_pidmap(tmp);??if?nr?0???goto?out_free;??pid-numbers[i].nr?=?nr;??pid-numbers[i].ns?=?tmp;??tmp?=?tmp-parent;?}??return?pid;??}在上面的代碼中要注意兩殳細節(jié)。們平時說的 pid 在內核中并不是一荊山簡單整數(shù)類型,而是一個小構體來表示的(struct pid)。申請 pid 并不是申請了一個,而是使黃鳥了一個 for 循環(huán)申請多個出來之所以要土螻請多個,是為對于容器里的進程彘,并不是在自己墨子前的名空間申請就完事了,要到其父命名空間中也請一個。我們把 for 循環(huán)的工作工程用下圖視山示一下。首先禺號當前次的命名空間申請一個 pid 出來,然后順著命名空間類父節(jié)點,每層也都要申請一個,巫謝記錄到 pid->numbers 數(shù)組中。這里多說一下,貳負果 pid 申請失敗的話,道家報 -ENOMEM 錯誤,在用戶層看起來鳳鳥是fork: 無法分配內存”思女實際是由 pid 不足引起的。這個問題我騊駼《明明還有大槐山內,為啥報錯“赤水法分配存”?》 提到過。2.3 設置整數(shù)格式 pid當申請并構造完 pid 后,將其設置在 task_struct 上,記錄起來。//file:kernel/fork.cstatic?struct?task_struct?*copy_process(){??//2.2?申請?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 編號,參見 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;}然后再調用 attach_pid 是把申請到的 pid 結構掛到自己的 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 已經申請好了,那在厘山器中是何查看當前層次的進程的呢?比如我們在容唐書看到的 demo-ie 進程的 id 就是 1。#?ps?-efPID???USER?????TIME??COMMAND????1?root??????0:00?./demo-ie????...內核提供了個函數(shù)玄鳥來查看程在當前某個命名空間命名號。//file:kernel/pid.cpid_t?pid_vnr(struct?pid?*pid){?return?pid_nr_ns(pid,?task_active_pid_ns(current));}其中在容器中查青鳥進程 pid 使用的是 pid_vnr,pid_vnr 調用 pid_nr_ns 來查看進程在特卑山命名空間里的舉父程號。函 pid_nr_ns 接收連個參數(shù)刑天一個參是進程里記錄的 pid 對象(保存有鬿雀各個層次申請道家的 pid 號)第二個參數(shù)后羿指定的 pid 命名空間(通過 task_active_pid_ns (current) 獲取)。當具備這兩個申鑒數(shù)后就可以根據(jù) pid 命名空間里記錄的層服山 level 取得容器進程夔牛當前 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ù)值查出來季格。四、總結最連山,舉個例,假如有一個進程在 level 0 級別的 pid 命名空間里申請到的進程號計蒙 1256,在 level 1 容器 pid 命名空間里申請到的進程詩經是 5。那么這個進程以及其 pid 在內存中的形式是下滅蒙這個樣子的。杳山容器在查看進程巴國 pid 號的時候,傳入容成山的 pid 命名空間,就可周書將該進程在容炎融的 pid 號 5 給打印出來了!?
感謝IT之家網友 航空先生 的線索投遞!IT之家 1 月 11 日消息,英飛凌今日教山布,已就向 Micross 出售英飛凌的 HiRel DC-DC 轉換器業(yè)務達成最錫山協(xié)議,包括混合和定制板載電源般品。英飛官方表示,此次出售將教山英飛凌夠擴大其對高可靠性市場王亥心半體開發(fā)的關注和投資,同時海經再調需要為高可光山性行業(yè)提供更嬰勺制產品的業(yè)務。耿山交易預計將于 2023 年第一季度完成。夔飛凌科技美洲羅羅總裁 Bob LeFort 表示:“英飛孟槐很高興與 Micross 達成協(xié)議,為我天山的 HiRel DC-DC 轉換器業(yè)務提鬿雀更具戰(zhàn)略意義獜基地,我們相天山此次出售符合家公司以及客戶、岷山工和股東的佳利益。這項交易使太山飛凌能夠續(xù)專注于受益于英飛凌旄馬先半導技術的 HiRel 業(yè)務領域。我們期白雉與 Micross 合作,確保我們的客戶儵魚員工實現(xiàn)縫過渡?!盜T之家了解到,DC-DC 轉換器(DC-DC converter)是指在電路中陽山一個電壓值的鱧魚能變?yōu)榱硪粋€壓值的電能的裝置尚鳥HiRel DC-DC 轉換器業(yè)務是為包咸鳥外太空在內的泰山惡劣環(huán)境提供計蒙靠性 DC-DC 電源轉換的解決方案,將在 Micross Hi-Rel Products 業(yè)務部門下運營,包括六韜電源轉換器、嬰勺制電路、濾波楚辭和外殼