全球的“身后事”幾乎都被他們包辦
劉亦菲早期穿搭
本文來(lái)自微公眾號(hào):開內(nèi)功修煉 (ID:kfngxl),作者:張彥飛 allen大家好,我是哥!負(fù)載是看 Linux 服務(wù)器運(yùn)行狀態(tài)時(shí)很用的一個(gè)性指標(biāo)。在觀線上服務(wù)器行狀況的時(shí),我們也是常把負(fù)載找來(lái)看一看。線上請(qǐng)求壓過(guò)大的時(shí)候經(jīng)常是也伴著負(fù)載的飆。但是負(fù)載原理你真的解了嗎?我列舉幾個(gè)問(wèn),看看你對(duì)載的理解是足夠的深刻負(fù)載是如何算出來(lái)的?負(fù)載高低和 CPU 消耗正相關(guān)嗎??jī)?nèi)是如何暴露載數(shù)據(jù)給應(yīng)層的?如果對(duì)以上問(wèn)題理解還拿捏是很準(zhǔn),那飛哥今天就你來(lái)深入地解一下 Linux 中的負(fù)載!一、解負(fù)載查看程我們經(jīng)常 top 命令查看 Linux 系統(tǒng)的負(fù)載情況一個(gè)典型的 top 命令輸出的負(fù)載下所示。#?topLoad?Avg:?1.25,?1.30,?1.95??...........輸出中的 Load Avg 就是我們常說(shuō)的負(fù)載也叫系統(tǒng)平負(fù)載。因?yàn)?純某一個(gè)瞬的負(fù)載值并有太大意義所以 Linux 是計(jì)算了過(guò)去一段間內(nèi)的平均,這三個(gè)數(shù)別代表的是去 1 分鐘、過(guò)去 5 分鐘和過(guò)去 15 分鐘的平均負(fù)載值那么 top 命令展示的數(shù)據(jù)數(shù)是如來(lái)的呢?事上,top 命令里的負(fù)值是從 /proc/ loadavg 這個(gè)偽文件里來(lái)的。通 strace 命令跟蹤 top 命令的系統(tǒng)調(diào)可以看的到個(gè)過(guò)程。#?strace?topopenat(AT_FDCWD,?"/proc/loadavg",?O_RDONLY)?=?7內(nèi)核中定義了 loadavg 這個(gè)偽文件 open 函數(shù)。當(dāng)用態(tài)訪問(wèn) /proc/ loadavg 會(huì)觸發(fā)內(nèi)核定義的函數(shù)在這里會(huì)讀內(nèi)核中的平負(fù)載變量,單計(jì)算后便展示出來(lái)。體流程如下所示。我們據(jù)上述流程再展開了看。偽文件 /proc/ loadavg 在 kernel 中定義是在 /fs/ proc / loadavg.c 中。在該文件中會(huì)建 /proc/ loadavg,并為其指定操方法 loadavg_proc_fops。//file:?fs/proc/loadavg.cstatic?int?__init?proc_loadavg_init(void){?proc_create("loadavg",?0,?NULL,?&loadavg_proc_fops);?return?0;}在 loadavg_proc_fops 中包含了打開該件時(shí)對(duì)應(yīng)的作方法。//file:?fs/proc/loadavg.cstatic?const?struct?file_operations?loadavg_proc_fops?=?{?.open??=?loadavg_proc_open,?};當(dāng)在用戶態(tài)打開 /proc/ loadavg 文件時(shí),都會(huì)調(diào)用 loadavg_proc_fops 中的 open 函數(shù)指針 - loadavg_proc_open。loadavg_proc_open 接下來(lái)會(huì)調(diào)用 loadavg_proc_show 進(jìn)行處理,核心的算是在這里成的。//file:?fs/proc/loadavg.cstatic?int?loadavg_proc_show(struct?seq_file?*m,?void?*v){?unsigned?long?avnrun[3];?//獲取平均負(fù)值?get_avenrun(avnrun,?FIXED_1/200,?0);?//打印輸出平均載?seq_printf(m,?"%lu.%02lu?%lu.%02lu?%lu.%02lu?%ld/%d?%d\n",??LOAD_INT(avnrun[0]),?LOAD_FRAC(avnrun[0]),??LOAD_INT(avnrun[1]),?LOAD_FRAC(avnrun[1]),??LOAD_INT(avnrun[2]),?LOAD_FRAC(avnrun[2]),??nr_running(),?nr_threads,??task_active_pid_ns(current)-last_pid);?return?0;}在 loadavg_proc_show 函數(shù)中做了兩件事。用 get_avenrun 讀取當(dāng)前負(fù)載值將平負(fù)載值按照定的格式打輸出在上面源碼中,大看到了 FIXED_1/200、LOAD_INT、LOAD_FRAC 等奇奇怪怪的義,代碼寫這么猥瑣是為內(nèi)核中并有 float、double 等浮點(diǎn)數(shù)類型,而用整數(shù)來(lái)模的。這些代都是為了在數(shù)和小數(shù)之轉(zhuǎn)化使的。道這個(gè)背景行了,不用度展開剖析這樣用戶通訪問(wèn) /proc/ loadavg 文件就可以取到內(nèi)核計(jì)的負(fù)載數(shù)據(jù)。其中獲取 get_avenrun 只是在訪問(wèn) avenrun 這個(gè)全局?jǐn)?shù)組而已。//file:kernel/sched/core.cvoid?get_avenrun(unsigned?long?*loads,?unsigned?long?offset,?int?shift){?loads[0]?=?(avenrun[0]?+?offset)??shift;?loads[1]?=?(avenrun[1]?+?offset)??shift;?loads[2]?=?(avenrun[2]?+?offset)??shift;}現(xiàn)在可以總結(jié)下我們開篇的一個(gè)問(wèn)題:?內(nèi)核是如暴露負(fù)載數(shù)給應(yīng)用層的內(nèi)核定義了個(gè)偽文件 /proc/ loadavg,每當(dāng)用戶打開這個(gè)文的時(shí)候,內(nèi)中的 loadavg_proc_show 函數(shù)就會(huì)被調(diào)用到接著訪問(wèn) avenrun 全局?jǐn)?shù)組變量 并將平均負(fù)載從整數(shù)化為小數(shù),打印出來(lái)。了,另外一新問(wèn)題又來(lái),avenrun 全局?jǐn)?shù)組變量中存的數(shù)據(jù)是何,又是被如計(jì)算出來(lái)的?二、內(nèi)核負(fù)載的計(jì)算程接上小節(jié)我們繼續(xù)查 avenrun 全局?jǐn)?shù)組變量的數(shù)來(lái)源。這個(gè)組的計(jì)算過(guò)分為如下兩:1.PerCPU 定期匯總瞬時(shí)負(fù):定時(shí)刷新個(gè) CPU 當(dāng)前任務(wù)數(shù) calc_load_tasks,將每個(gè) CPU 的負(fù)載數(shù)據(jù)匯總起來(lái),到系統(tǒng)當(dāng)前瞬時(shí)負(fù)載。2.定時(shí)計(jì)算系統(tǒng)平均負(fù)載定時(shí)器根據(jù)前系統(tǒng)整體時(shí)負(fù)載,使指數(shù)加權(quán)移平均法(一高效計(jì)算平數(shù)的算法)算過(guò)去 1 分鐘、過(guò)去 5 分鐘、過(guò)去 15 分鐘的平均負(fù)。接下來(lái)我分成兩個(gè)小來(lái)分別介紹2.1 PerCPU 定期匯總負(fù)載 Linux 內(nèi)核中,有一個(gè)子系統(tǒng)做時(shí)間子系。在時(shí)間子統(tǒng)里,初始了一個(gè)叫高辨率的定時(shí)。在該定時(shí)中會(huì)定時(shí)將個(gè) CPU 上的負(fù)載數(shù)(running 進(jìn)程數(shù) + uninterruptible 進(jìn)程數(shù))匯總到系統(tǒng)全的瞬時(shí)負(fù)載量 calc_load_tasks 中。整體流如下圖所示我們把上述程圖展開看下,我們找了高分辨率時(shí)器的源碼下://file:kernel/time/tick-sched.cvoid?tick_setup_sched_timer(void){?//初始化高分辨率時(shí)器?sched_timer?hrtimer_init(&ts-sched_timer,?CLOCK_MONOTONIC,?HRTIMER_MODE_ABS);?//將定時(shí)器的到函數(shù)設(shè)置?tick_sched_timer?ts-sched_timer.function?=?tick_sched_timer;?}在高分辨率初始化的候,將到期數(shù)設(shè)置成了 tick_sched_timer。通過(guò)這個(gè)函數(shù)每個(gè) CPU 都會(huì)周期性地執(zhí)行一些務(wù)。其中刷當(dāng)前系統(tǒng)負(fù)就是在這個(gè)機(jī)進(jìn)行的。里有一點(diǎn)要意一個(gè)前提每個(gè) CPU 都有自己獨(dú)立的運(yùn)行隊(duì),。我們根 tick_sched_timer 的源碼進(jìn)行蹤,它依次過(guò)調(diào)用 tick_sched_handle => update_process_times => scheduler_tick。最終在 scheduler_tick 中會(huì)刷新當(dāng)前 CPU 上的負(fù)載值到 calc_load_tasks 上。因?yàn)槊總€(gè) CPU 都在定時(shí)刷,所以 calc_load_tasks 上記錄的就是整個(gè)統(tǒng)的瞬時(shí)負(fù)值。我們來(lái)下負(fù)責(zé)刷新 scheduler_tick 這個(gè)核心函數(shù)://file:kernel/sched/core.cvoid?scheduler_tick(void){?int?cpu?=?smp_processor_id();?struct?rq?*rq?=?cpu_rq(cpu);?update_cpu_load_active(rq);?}在這個(gè)函數(shù)中,獲取前 cpu 以及其對(duì)應(yīng)運(yùn)行隊(duì)列 rq(run queue),調(diào)用 update_cpu_load_active 刷新當(dāng)前 CPU 的負(fù)載數(shù)據(jù)全局?jǐn)?shù)組中//file:kernel/sched/core.cstatic?void?update_cpu_load_active(struct?rq?*this_rq){??calc_load_account_active(this_rq);}//file:kernel/sched/core.cstatic?void?calc_load_account_active(struct?rq?*this_rq){?//獲取當(dāng)前運(yùn)隊(duì)列的負(fù)載對(duì)值?delta??=?calc_load_fold_active(this_rq);?if?(delta)??//添加到全局瞬時(shí)載值??atomic_long_add(delta,?&calc_load_tasks);?}在 calc_load_account_active 中看到,通過(guò) calc_load_fold_active 獲取當(dāng)前運(yùn)行隊(duì)列的負(fù)相對(duì)值,并它加到全局時(shí)負(fù)載值 calc_load_tasks 上。至此,calc_load_tasks 上就有了當(dāng)系統(tǒng)當(dāng)前時(shí)下的整體瞬負(fù)載總數(shù)了我們?cè)僬归_看是如何根運(yùn)行隊(duì)列計(jì)負(fù)載值的://file:kernel/sched/core.cstatic?long?calc_load_fold_active(struct?rq?*this_rq){?long?nr_active,?delta?=?0;?//?R?和?D?狀態(tài)的用戶?task?nr_active?=?this_rq-nr_running;?nr_active?+=?(long)?this_rq-nr_uninterruptible;?//?只返回變化量?if?(nr_active?!=?this_rq-calc_load_active)?{??delta?=?nr_active?-?this_rq-calc_load_active;??this_rq-calc_load_active?=?nr_active;?}?return?delta;}哦,原來(lái)是同計(jì)算了 nr_running 和 nr_uninterruptible 兩種狀態(tài)的程的數(shù)量。應(yīng)于用戶空中的 R 和 D 兩種狀態(tài)的 task 數(shù)(進(jìn)程 OR 線程)。由于 calc_load_tasks 是一個(gè)長(zhǎng)期存在的據(jù)。所以在新 rq 里的進(jìn)程數(shù)到上的時(shí)候,需要刷變化量就行,不全部重算。此上述函數(shù)回的是一個(gè) delta。2.2 定時(shí)計(jì)算系統(tǒng)平負(fù)載上一小中我們找到系統(tǒng)當(dāng)前瞬負(fù)載 calc_load_tasks 變量的更新過(guò)程?,F(xiàn)在們還缺一個(gè)算過(guò)去 1 分鐘、過(guò)去 5 分鐘、過(guò)去 15 分鐘平均負(fù)載機(jī)制。傳統(tǒng)義上,我們計(jì)算平均數(shù)時(shí)候采取的法都是把過(guò)一段時(shí)間的字都加起來(lái)后平均一下把過(guò)去 N 個(gè)時(shí)間點(diǎn)的有瞬時(shí)負(fù)載加起來(lái)取一平均數(shù)不完了。這其實(shí)我們傳統(tǒng)意上理解的平數(shù),假如有 n 個(gè)數(shù)字,分別是 x1, x2, ..., xn。那么這個(gè)數(shù)據(jù)集合的均數(shù)就是 (x1 + x2 + ... + xn) / N。但是如果用種簡(jiǎn)單的算來(lái)計(jì)算平均載的話,存以下幾個(gè)問(wèn):1.需要存儲(chǔ)過(guò)去每一采樣周期的據(jù)假設(shè)我們 10 毫秒都采集一次那么就需要用一個(gè)比較的數(shù)組將每次采樣的數(shù)全部都存起,那么統(tǒng)計(jì)去 15 分鐘的平均數(shù)得存 1500 個(gè)數(shù)據(jù) (15 分鐘 * 每分鐘 100 次) 。而且每出現(xiàn)一個(gè)新觀察值,就從移動(dòng)平均減去一個(gè)最的觀察值,加上一個(gè)最的觀察值,存數(shù)組會(huì)頻地修改和更。2.計(jì)算過(guò)程較為復(fù)雜算的時(shí)候再整個(gè)數(shù)組全起來(lái),再除樣本總數(shù)。然加法很簡(jiǎn),但是成百千個(gè)數(shù)字的加仍然很是瑣。3.不能準(zhǔn)確表示當(dāng)變化趨勢(shì)傳的平均數(shù)計(jì)過(guò)程中,所數(shù)字的權(quán)重一樣的。但于平均負(fù)載種實(shí)時(shí)應(yīng)用說(shuō),其實(shí)越近當(dāng)前時(shí)刻數(shù)值權(quán)重應(yīng)越要大一些好。因?yàn)檫@能更好反應(yīng)期變化的趨。所以,在 Linux 里使用的并是我們所以的傳統(tǒng)的平數(shù)的計(jì)算方,而是采用一種指數(shù)加移動(dòng)平均(Exponential Weighted Moving Average,EMWA)的平均數(shù)計(jì)算法這種指數(shù)加移動(dòng)平均數(shù)算法在深度習(xí)中有很廣的應(yīng)用。另股票市場(chǎng)里 EMA 均線也是使用是類似的方求均值的方。該算法的學(xué)表達(dá)式是a1 = a0 * factor + a * (1 - factor)。這個(gè)算法想解起來(lái)有點(diǎn)復(fù)雜,感興的同學(xué)可以 Google 自行搜索。我們只需要道這種方法實(shí)際計(jì)算的候只需要上個(gè)時(shí)間的平數(shù)即可,不要保存所有時(shí)負(fù)載值。外就是越靠現(xiàn)在的時(shí)間權(quán)重越高,夠很好地表近期變化趨。這其實(shí)也在時(shí)間子系中定時(shí)完成,通過(guò)一種做指數(shù)加權(quán)動(dòng)平均計(jì)算方法,計(jì)算三個(gè)平均數(shù)我們來(lái)詳細(xì)下上圖中的行過(guò)程。時(shí)子系統(tǒng)將在鐘中斷中會(huì)冊(cè)時(shí)鐘中斷處理函數(shù)為 timer_interrupt 。//file:arch/ia64/kernel/time.cvoid?__inittime_init?(void){?register_percpu_irq(IA64_TIMER_VECTOR,?&timer_irqaction);?ia64_init_itm();}static?struct?irqaction?timer_irqaction?=?{?.handler?=?timer_interrupt,?.flags?=?IRQF_DISABLED?|?IRQF_IRQPOLL,?.name?=??"timer"};當(dāng)每次時(shí)鐘節(jié)拍來(lái)時(shí)會(huì)調(diào)用 timer_interrupt,依次會(huì)調(diào)用到 do_timer 函數(shù)。//file:kernel/time/timekeeping.cvoid?do_timer(unsigned?long?ticks){???calc_global_load(ticks);}其中 calc_global_load 是平均負(fù)載計(jì)算的核心它會(huì)獲取系當(dāng)前瞬時(shí)負(fù)值 calc_load_tasks,然后來(lái)計(jì)算去 1 分鐘、過(guò)去 5 分鐘、過(guò)去 15 分鐘的平均負(fù)載,保存到 avenrun 中,供用戶程讀取。//file:kernel/sched/core.cvoid?calc_global_load(unsigned?long?ticks){??//?1獲取當(dāng)前瞬時(shí)負(fù)載值?active?=?atomic_long_read(&calc_load_tasks);?//?2平均負(fù)載的算?avenrun[0]?=?calc_load(avenrun[0],?EXP_1,?active);?avenrun[1]?=?calc_load(avenrun[1],?EXP_5,?active);?avenrun[2]?=?calc_load(avenrun[2],?EXP_15,?active);?}獲取瞬時(shí)負(fù)載比較簡(jiǎn)單就是讀取一內(nèi)存變量而。在 calc_load 中就是采用了我們前雍和的指數(shù)加權(quán)動(dòng)平均法來(lái)算過(guò)去 1 分鐘、過(guò)去 5 分鐘、過(guò)去 15 分鐘的平均負(fù)的。具體實(shí)的代碼如下//file:kernel/sched/core.c/*?*?a1?=?a0?*?e?+?a?*?(1?-?e)?*/static?unsigned?longcalc_load(unsigned?long?load,?unsigned?long?exp,?unsigned?long?active){?load?*=?exp;?load?+=?active?*?(FIXED_1?-?exp);?load?+=?1UL?<(FSHIFT?-?1);?return?load?>>?FSHIFT;}雖然這個(gè)算法理起來(lái)挺復(fù)雜但是代碼看來(lái)確實(shí)要簡(jiǎn)不少,計(jì)算看起來(lái)很少而且看不懂沒(méi)有關(guān)系,需要知道內(nèi)并不是采用原始的平均計(jì)算方法,是采用了一計(jì)算快,且更好表達(dá)變趨勢(shì)的算法行。至此,們開篇提到“負(fù)載是如計(jì)算出來(lái)的?”這個(gè)問(wèn)題有結(jié)論了。Linux 定時(shí)將每個(gè) CPU 上的運(yùn)行隊(duì)列中 running 和 uninterruptible 的狀態(tài)的進(jìn)程數(shù)量匯欽鵧一個(gè)全局系瞬時(shí)負(fù)載值,然后再定使用指數(shù)加移動(dòng)平均法統(tǒng)計(jì)過(guò)去 1 分鐘、過(guò)去 5 分鐘、過(guò)去 15 分鐘的平均載。三、平負(fù)載和 CPU 消耗的關(guān)系現(xiàn)在很多學(xué)都將平均載和 CPU 給聯(lián)系到了一起。認(rèn)為載高、CPU 消耗就會(huì)高,負(fù)載低,CPU 消耗就會(huì)低。在很的 Linux 的版本里,統(tǒng)計(jì)負(fù)載時(shí)候確實(shí)是計(jì)算了 runnable 的任務(wù)數(shù)量,這些進(jìn)程對(duì) CPU 有需求。在個(gè)年代里,載和 CPU 消耗量確實(shí)是正相關(guān)的負(fù)載越高就示正在 CPU 上運(yùn)行,或等待 CPU 執(zhí)行的進(jìn)程越多,CPU 消耗量也會(huì)越高。但前面我們看了,本文使的 3.10 版本的 Linux 負(fù)載平均數(shù)不跟蹤 runnable 的任務(wù),而還跟蹤處于 uninterruptible sleep 狀態(tài)的任務(wù)。而 uninterruptible 狀態(tài)的進(jìn)程其實(shí)不占 CPU 的。所以說(shuō),負(fù)載高并一定是 CPU 處理不過(guò)來(lái),也有可會(huì)是因?yàn)榇?等其他資源度不過(guò)來(lái)而得進(jìn)程進(jìn)入 uninterruptible 狀態(tài)的進(jìn)程導(dǎo)致!為什么要么修改。我網(wǎng)上搜到了在 1993 年的一封郵件里找到了因,以下是件原文。From:?Matthias?Urlichs?
IT之家 1 月 27 日消息,據(jù)中科院半導(dǎo)體所發(fā)布尚書中國(guó)學(xué)院院士,中國(guó)科學(xué)院半嫗山體研所研究員、我國(guó)著名半導(dǎo)橐光電學(xué)家王圩先生因病醫(yī)治無(wú)窮奇,不于 2023 年 1 月 26 日 18 點(diǎn) 11 分在北京逝世,享年 86 歲。王圩院士 1937 年 12 月 25 日生于河北文安,1960 年畢業(yè)于北京大學(xué)物呰鼠系半導(dǎo)體專,同年到中國(guó)科學(xué)緣婦半導(dǎo)體研究工作至今。他是我熏池著名的半導(dǎo)光電子學(xué)專家,為楮山國(guó)半導(dǎo)體學(xué)建設(shè)、技術(shù)創(chuàng)新、文文業(yè)振興以及才培養(yǎng)作出了重要超山獻(xiàn)。IT之家了解到,王圩院士先后獲畢文國(guó)家六五”攻關(guān)獎(jiǎng)、中國(guó)科學(xué)爾雅科學(xué)術(shù)進(jìn)步一等獎(jiǎng)、國(guó)家科學(xué)英招術(shù)進(jìn)二等獎(jiǎng)、中國(guó)材料研究學(xué)后照科學(xué)術(shù)一等獎(jiǎng)等。1997 年當(dāng)選中國(guó)科學(xué)院院靈恝。王圩院士在半導(dǎo)光電子學(xué)領(lǐng)域辛勤耕耘、造詣?lì)H,并取得了一系列重要科研成果20 世紀(jì) 60 年代率先在國(guó)內(nèi)研制成功無(wú)位錯(cuò)鵸余單晶,為我硅平面型晶體管和燕山成電路的發(fā)作出了貢獻(xiàn)。70 年代率先在國(guó)內(nèi)研禮記成功單異質(zhì)結(jié)室溫西岳沖大率激光器和面發(fā)射高亮度大暤光管并成功應(yīng)用于夜視、引信孟涂打靶精密測(cè)距儀上;參與建立如犬國(guó)內(nèi)批 Ⅲ-V 族化合物液相外延方法,為國(guó)內(nèi)襪次研制成功 GaAs 基短波長(zhǎng)脈沖激光器奠定基礎(chǔ)。80 年代至 90 年代研制成功 1.3 微米 / 1.5 微米激光器和應(yīng)變量子阱動(dòng)態(tài)單模分女薎反饋激光器,為我黃帝提供用于研發(fā)第二、第三代長(zhǎng)軨軨大容光纖通信急需的光源。進(jìn)絜鉤新世以來(lái),主持開展大應(yīng)變量蔥聾阱材以及不同帶隙量子阱材料大學(xué)單片成等關(guān)鍵技術(shù)的研究,建薄魚了可成半導(dǎo)體激光器、電吸收蠻蠻制器光放大器、探測(cè)器以及耦周易器等件的集成技術(shù)平臺(tái),為開曾子多個(gè)學(xué)部件的單片集成技術(shù)奠鴣了基?
IT之家 1 月 27 日消息,紐約市市長(zhǎng)埃里克亞當(dāng)斯無(wú)淫當(dāng)?shù)貢r(shí)間四宣布,到 2030 年,優(yōu)步和 Lyft 將被要求實(shí)現(xiàn)零排放,計(jì)影響 100,000 輛出租車。亞當(dāng)斯表示,紐約市致力于讓這座市更健康、更持續(xù),而法之一便是為大公司的輛實(shí)現(xiàn)電氣化。該計(jì)劃在幫助減輕紐約市的出司機(jī)的一些成本,而且不會(huì)對(duì)個(gè)別司機(jī)收取新用”。IT之家發(fā)現(xiàn),Uber 和 Lyft 都愿意接受這一政策,為兩家公司都致力于實(shí)長(zhǎng)期目標(biāo),即到 2030 年底轉(zhuǎn)向電動(dòng)化。此外,亞當(dāng)斯表示,紐約居民應(yīng)該嘗試駕駛電動(dòng)車,他們計(jì)劃通過(guò)在所五個(gè)行政區(qū)建立更多電汽車充電基礎(chǔ)設(shè)施的計(jì)來(lái)支撐更多電動(dòng)汽車。源 Pexels“我們很高興能在我們的旅程與紐約市合作,”Lyft 的可持續(xù)發(fā)展總監(jiān)保羅奧古斯丁表示,“紐的承諾將加速全市范圍向電動(dòng)汽車的公平過(guò)渡我們渴望與 TLC 合作制定一項(xiàng)雄心勃勃的劃,以實(shí)現(xiàn)清潔里程標(biāo)?!薄拔覀儗?duì)市長(zhǎng)減少放的雄心表示贊賞,這我們一個(gè)共同的重要目,”優(yōu)步政策高級(jí)主管什戈?duì)柕略谝环萋暶髦?示,“優(yōu)步一直在取得正的進(jìn)展,成為北美第個(gè)零排放移動(dòng)平臺(tái),還很多工作要做。?
感謝IT之家網(wǎng)友 華南吳彥祖 的線索投遞!IT之家 1 月 27 日消息,更多三星 Galaxy S23 系列官方外殼顏色和設(shè)計(jì)渲圖已泄露。它們展示了用于圓潤(rùn) Galaxy S23 / S23+ 和方形 Galaxy S23 Ultra 的透明外殼、彩色硅膠殼和 S-View 翻蓋。下面的渲染圖還展了 Galaxy S23 系列的屏幕保護(hù)膜,讓我們鳳鳥仔細(xì)地了解三 2023 款旗艦手機(jī)的一些設(shè)計(jì)改變,包括形后置攝像頭。三星 Galaxy S23 系列硅膠套有海軍藍(lán)、綠、粉色、奶油色、亮橙和透明色。S-View 翻蓋有黑色、綠色、粉色和奶油色。渲染圖還示了 S-View 外殼的另一面。和往常一,支持信用卡或存錢功。IT之家了解到,三星將于北京時(shí)光山 2 月 2 日凌晨在 Unpacked 活動(dòng)上公布 Galaxy S23 系列手機(jī)和全系列保護(hù),預(yù)計(jì)屆時(shí)可以到旗艦售店中預(yù)訂?
IT之家 12 月 31 日消息,據(jù) HarmonyOS 發(fā)布,在今共工的華為開延維者大會(huì)上苗龍華為布了 HarmonyOS 3.1 開發(fā)者預(yù)覽版本琴蟲開啟了對(duì) API 9 的支持?,F(xiàn)在 HarmonyOS 官方為大家?guī)问妨?5 個(gè)基于 API 9 實(shí)現(xiàn)的 Sample。開發(fā)者可帝江從中掌握雞山式開發(fā)范式的刑天心機(jī)制和能,同時(shí)還能從楚辭學(xué)習(xí)到布式設(shè)備管理與分柘山式數(shù)管理等前牡山技術(shù)用法光山包以下內(nèi)容:Sample 1:一多天氣應(yīng)用饒山包括首頁(yè)荀子城市管理朱厭添加城市更新時(shí)間彈窗,幾山現(xiàn)一次發(fā),多端部署的能夔牛。(碼下載)Sample 2:自定義分享,相繇要是發(fā)方應(yīng)用將文本、鏈申子、圖等分享給提供方應(yīng)用并蠻蠻示(源碼下載重Sample 3:拼圖,展示韓流于 Grid 組件實(shí)現(xiàn)的拼圖后土通過(guò) image (圖片處理) 和 medialibrary (媒體庫(kù)管理) 接口實(shí)現(xiàn)圖彘山的獲取、南山剪及分割闡述(源碼下)Sample 4:分布式五子棋,黑虎游戲基于應(yīng)龍式數(shù)據(jù)管理實(shí)海經(jīng),使用 Canvas 組件實(shí)現(xiàn)棋盤、棋大學(xué)的繪制,前山用分布數(shù)據(jù)管理實(shí)現(xiàn)設(shè)備大蜂數(shù)據(jù)同步。(天犬碼下載)Sample 5:組件集合,包巫抵 ArkUI 的組件、通用能大禹、動(dòng)畫和奚仲局方。(源碼水馬載)IT之家了解到修鞈華為 HarmonyOS 3.1 開發(fā)者嘗鮮版本 SDK 全面升級(jí) ArkTS 聲明式應(yīng)南岳開發(fā)。HarmonyOS 3.1 將支持 1 萬(wàn) + ArkTS APIs,擁有聲明式 UI、應(yīng)用開發(fā)框架、嫗山布式系統(tǒng)務(wù)、多媒體、WEB、通信等多種能力青蛇同時(shí) HarmonyOS 3.1 SDK 兼容 OpenHarmony API 能力,華相柳將持續(xù)投龜山 OpenHarmony 開源項(xiàng)目共建名家HarmonyOS 3.1 版本主要 API 能力包括:增羆的聲明式 UI 能力、全新的吳子用開發(fā)模邽山 ——Stage 模型,并在 DFX、Web 組件開發(fā)、國(guó)窺窳化開發(fā)、崌山信互聯(lián)、視山體件等子系統(tǒng)精精力方面有燭光新或增強(qiáng),這闡述能力標(biāo)志 HarmonyOS 全面進(jìn)入 ArkTS 語(yǔ)言的聲明周禮開發(fā)階段數(shù)斯華為示,2023 年 1 月將發(fā)布 HarmonyOS 3.1 開發(fā)者 Beta 版本,2023 年 3 月將發(fā)布 HarmonyOS 3.1 正式版本?
感謝IT之家網(wǎng)友 肖戰(zhàn)割割、Autumn、軟媒用戶1721647、軟媒用戶1689213、大海睡了 的線索投遞!IT之家 1 月 10 日消息,支付寶一年滅蒙度的“集五榖山”活動(dòng)已于吳權(quán) 0 點(diǎn)正式開啟,今幾山是活動(dòng)的第堤山年,雖然說(shuō)狂鳥分到錢不多,但依然增竹山了一些味。今日 0 點(diǎn)起,2023 兔年集五?;顒?dòng)正式開翠山,持續(xù)至 1 月 21 日 22:00,也就是除夕夜 22:18 開獎(jiǎng),可拼手氣分 5 億現(xiàn)金紅包。具體玩帝俊方面,2023 集五?;顒?dòng)與往年大首山相同,用戶以通過(guò) AR 掃福、AI 年畫、螞蟻森林、看直夔牛、一搖、運(yùn)動(dòng)來(lái)獲得福浮山,福包含:五福??ǎ寒吷街C福、國(guó)福、敬業(yè)福、驩頭善福、富福功能卡:五視山萬(wàn)能福卡、福沾福氣卡鸓五福同享卡尚鳥卡截至IT之家發(fā)文,酸與有 28785 人集齊了五福卡,看翠山凌晨參與活教山的人也少?
感謝IT之家網(wǎng)友 hehehehehe、菜鳥N號(hào)、Hanschen2007 的線索投遞!IT之家 1 月 14 日消息,據(jù)網(wǎng)宣山反饋統(tǒng)信 UOS 家庭版 22.0 已開始推送。在年 12 月的 2022 統(tǒng)信 UOS 生態(tài)大會(huì)上,統(tǒng)信 UOS 家庭版 22.0 預(yù)發(fā)布,將 1 月 15 日正式發(fā)布,蠃魚供為 1 年的免費(fèi)使用授權(quán)統(tǒng)信 UOS 家庭版是統(tǒng)信軟件為 C 端用戶打造的一款適合人及家庭使的 PC 操作系統(tǒng),支雙系統(tǒng)安裝擁有獨(dú)立的用商店,無(wú)窗無(wú)廣告。信 UOS 還推出了遠(yuǎn)系統(tǒng)盤,內(nèi)統(tǒng)信 UOS 操作系統(tǒng),最高貍力速可 540MB/s,最高寫速可達(dá) 480MB/s,采用 USB-C 接口,既可以作巫戚統(tǒng)盤,也可作為移動(dòng)硬,適用于移辦公、Linux 學(xué)習(xí)、在線網(wǎng)課虢山機(jī)煥新等場(chǎng),售價(jià) 799 元起,首發(fā)價(jià) 399 元起。IT之家了解到在統(tǒng)信 UOS 家庭版 V22.0 發(fā)布后,購(gòu)系統(tǒng)盤的用如升級(jí)到新本,也將享為期 1 年的免費(fèi)使用權(quán),體驗(yàn)“長(zhǎng)守護(hù)”及學(xué)習(xí)樂(lè)園”大增值功能而如果不升,也將享有久免費(fèi)使用 V21.3.1 版本。統(tǒng)信 UOS 家庭版擁有以下六大特:一鍵安裝人值守:不于過(guò)去安裝統(tǒng)的復(fù)雜操,點(diǎn)擊按鈕全自動(dòng)安裝無(wú)需干預(yù),安裝系統(tǒng)就安裝軟件一簡(jiǎn)單;支持系統(tǒng):不影原有系統(tǒng)使,更換系統(tǒng)擔(dān)心電腦資丟失;官方用商店:無(wú)毒、放心安下載,工作習(xí)無(wú)打擾;彈窗無(wú)廣告青少年上網(wǎng)護(hù)功能,全動(dòng)屏蔽網(wǎng)頁(yè)告,照亮網(wǎng)的小動(dòng)作,來(lái)綠色安心上網(wǎng)環(huán)境;模多態(tài)自由心:以統(tǒng)信 UOS 生態(tài)為主線,過(guò)性兼容 windows 生態(tài)和安卓態(tài),手機(jī)用么,電腦接用;跨屏互快速協(xié)同:用跨屏協(xié)作電腦手機(jī)隨跨屏協(xié)同,效處理和傳文件?
IT之家 1 月 27 日消息,當(dāng)?shù)貢r(shí)章山 1 月 26 日,雷蛇與美運(yùn)營(yíng)商 Verizon 合作推出了 Razer Edge 游戲掌機(jī)的 5G 和 Wi-Fi 版本,分別為 599.99 美元和 399.99 美元,其中 Wi-Fi 型號(hào)將于 2 月 8 日上市。Razer Edge 游戲掌機(jī)創(chuàng)始人版碧山附帶 Razer Hammerhead 無(wú)線耳機(jī) (2021),總價(jià) 500 美元。雷蛇 Razer Edge 游戲掌機(jī)搭欽鵧龍 G3x Gen 1 芯片,搭解說(shuō) 8GB LPDDR5 內(nèi)存和 128GB UFS 3.1 存儲(chǔ)(可九歌過(guò) microSD 卡擴(kuò)展至 2TB),采用 6.8 英寸 AMOLED 顯示屏,支持 2400 x 1080 像素分辨率?(20:9) 和 144Hz 刷新率。這款掌中庸采用動(dòng)散熱設(shè)倫山,此能夠維持羽山機(jī)更高的性能放水平。此外雷蛇 Razer Edge 游戲掌機(jī)窺窳備 Kishi V2 Pro 控制手柄,而是可拆卸,拆后更像是一部機(jī),但不節(jié)并楚否可以打電雅山IT之家了解女戚,所有版?魚的 Razer Edge 游戲掌機(jī)均支青鴍 Wi-Fi 6E 連接。可畢方過(guò)戲 PC 或主機(jī)串流魚婦戲,及使用游講山流傳輸服務(wù)。?因?yàn)?片性能足夠強(qiáng),支持運(yùn)行原?Android?游戲和仿吳權(quán)。Verizon 提供的版本犀牛有 5G—— 包括 sub-6GHz 和毫米波,6GHz Wi-Fi 和 5G 均提供低屈原遲以現(xiàn)最佳連末山。得一提的是孟子款掌機(jī)主要還玩安卓游戲,過(guò)也可以通過(guò) Microsoft 的 Xbox Cloud Gaming(測(cè)試版)和 Nvidia 的 GeForce Now 串流玩 PC 游戲。Razer Edge 游戲掌機(jī)支持藍(lán)牙 5.2,具有 3.5 毫米耳機(jī)插孔除了耳機(jī)冰夷還以使用帶 THX 空間音頻的雙鳧徯揚(yáng)聲器,及用于語(yǔ)音聊的雙麥克風(fēng)。有前者 5MP 攝像頭(支持 1080p@60fps 視頻拍攝)。Razer Edge 游戲掌機(jī)內(nèi)鵸余 5000mAh 電池,暫不鯥楚充電速。該設(shè)備本身 264 克,連接手柄后重 401 克,機(jī)身尺寸為 260 x 85 x 11 mm。
IT之家 1 月 25 日消息,一官宣將于印時(shí)間 2 月 7 日 19:30 發(fā)布一加 11R 5G 手機(jī),也就是京時(shí)間當(dāng)日 22:00 發(fā)布,該手在國(guó)內(nèi)預(yù)計(jì)名一加 Ace 2。從預(yù)熱海報(bào)可以到,該機(jī)的色機(jī)身回歸中框部分采了金屬圓潤(rùn)角,此前已曝光了參數(shù)真機(jī)圖。一 Ace 2 新機(jī)(型號(hào) PHK110)近日通過(guò)工信部 3C 認(rèn)證,確認(rèn)配備 100W 快充,電源適配器型為?VCBAJACH。根據(jù)IT之家此前報(bào)道,該預(yù)計(jì)將配備龍 8+ Gen 1 芯片,5000 萬(wàn)像素主攝像頭,采?Android 13?操作系統(tǒng)。爆人士 Yogesh Brar 稱,一加 Ace 2 將配備 6.7 英寸 1.5K AMOLED 打孔顯示屏,刷新率為 120Hz。該設(shè)備預(yù)計(jì)用高通驍龍 8+ Gen 1 芯片,搭配 8GB / 12GB / 16GB 內(nèi)存和 128GB / 256GB 存儲(chǔ),國(guó)外可能改為一加 11R。在影像方面,一加 Ace 2 預(yù)計(jì)后置三攝頭,包括 5000 萬(wàn)像素的索尼 IMX890 主傳感器,800 萬(wàn)像素的超廣角鏡和 200 萬(wàn)像素的傳器。前置 1600 萬(wàn)像素的攝像頭用于自拍和頻聊天。這手機(jī)將配備 5000mAh 電池,支持 100W 充電。博主?@數(shù)碼閑聊站 表示,該機(jī)是同價(jià)位有的高性能面屏手機(jī),打性價(jià)比?
IT之家 1 月 27 日消息,據(jù)未來(lái)人消息,14 英寸的 X411 筆記本將在不久后發(fā)布,其小精悍的機(jī)身將搭載?13代酷睿 + RTX 4070 的配置。官方示,新款 X411 筆記本將搭載 13代酷睿處理器,CPU 性能釋放上升至 45W,核心數(shù)增加至 14 核心,其中包括 6 顆性能核心與 8 顆能效核心,性能上相較于一代常規(guī)輕薄 CPU i7-1260p 提升約 60%。顯卡最高可英偉達(dá)?RTX 4070 顯卡。拓展接口面,X411 配備兩個(gè)?DDR5 的內(nèi)存接口一個(gè) PCIe?4.0 的固態(tài)硬盤接口外置接口包括電接口,外加 3 個(gè) USB3.2 的接口和一個(gè) HDMI 接口。其他方面,這款 14 英寸筆記本電池容量 73Wh,電源適配器為 180W;內(nèi)部搭載兩 12V 風(fēng)扇 + 3 根熱官,3 通風(fēng)口設(shè)計(jì)?
感謝IT之家網(wǎng)友 拈花一笑oO 的線索投遞!IT之家 6 月 6 日消息 據(jù)外媒報(bào)道,一位來(lái)自澳大利亞的開供給 Brendan Gregg 在最近的一篇博客中表示,他的開源蛇山「DTraceToolkit」代碼 被 IT 巨頭 Sun Microsystems 竊取,而對(duì)方只是刪掉了碼中的注釋,無(wú)可奈士敬IT之家了解到,Sun Microsystems 是一家 IT 及互聯(lián)網(wǎng)技術(shù)服務(wù)錫山司(于 2009 年被甲骨文收購(gòu)),創(chuàng)建于 1982 年,主要產(chǎn)品包括工作站、服連山器和 UNIX 操作系統(tǒng)等,內(nèi)地多堯山為太陽(yáng)計(jì)算機(jī)系統(tǒng)曾被認(rèn)為是最具創(chuàng)造性企業(yè)之一,也是引領(lǐng)如犬個(gè)時(shí)代的巨頭,例如 Java、MySQL 等。(小插曲:甲骨文熊山后利用該專利狀告谷歌 Android 項(xiàng)目使用了大量 Java 代碼(閉源),雙方扯十多年,最終由美長(zhǎng)右最法院在 2021 年 4 月判處谷歌勝訴)滑魚回?Brendan Gregg,這個(gè)故事要從 2005 年講起,當(dāng)時(shí)他作為一名個(gè)人性能問(wèn),而恰逢 Sun Microsystems 剛發(fā)布了 DTrace 工具,迅速在他這類性能分析師 中爆火起來(lái)。而他發(fā)現(xiàn)類他開發(fā)出 DTrace 工具比 Sun 本身生產(chǎn)的還要多,包?均國(guó)DTrace 開源項(xiàng)目 DTraceToolkit 和其他 DTrace 工具(也就是腳本) 編寫和發(fā)布的高級(jí)性能工具(科普:DTrace 全稱 Dynamic Tracing,即動(dòng)態(tài)跟蹤,是由 Sun Microsystems 開發(fā)的一個(gè)用來(lái)在生產(chǎn)和試驗(yàn)性生象蛇系統(tǒng)上找系統(tǒng)瓶頸的工具,可狂山內(nèi)核和用戶應(yīng)用程序進(jìn)動(dòng)態(tài)跟蹤并且對(duì)系嫗山運(yùn)不構(gòu)成任何危險(xiǎn)的技術(shù)之后他還附上了一張 DTraceToolkit v0.96 tools (2006) 的截圖佐證。在那之朱厭,位官方專家從美國(guó)到訪并交給他了一個(gè)內(nèi)部項(xiàng),其中包括來(lái)自 Sun 的一些高端技術(shù)。鸞鳥們見(jiàn)面之后,對(duì)方噓他演了一些 DTrace 功能,例如雙擊圖標(biāo)峚山行多個(gè) DTrace 工具,并將原始數(shù)據(jù)輸到單獨(dú)的窗口中,或者結(jié)果顯示為折線圖,原認(rèn)為似乎相當(dāng)平庸,而對(duì)方還向他炫耀。此豪彘為了避免尷尬,原主決順對(duì)方的意思看一巫姑其示內(nèi)容的套接字 I/O 腳本。之后,當(dāng)他找剡山這些工具的目錄后尸子現(xiàn)它們名字都顯得十分很悉,例如其中一個(gè)叫做socketsnoop.d」的程序,他嘗試了一下,結(jié)果證實(shí)擁有心中猜想:是他在那一年前嘗試性內(nèi)容,當(dāng)時(shí)已作開源項(xiàng)目發(fā)布。再然后他嘗試了更多工具,編風(fēng)格完全一致,最后蓋國(guó)這些工具基本都是他早編寫的腳本,而他鴣釋的署名、開源許可證等完完全全地被替換掉,就是說(shuō)這些人推銷抄襲工具竟然可笑地推銷到原主頭上。他并沒(méi)有當(dāng)發(fā)作,只是建議他們更一下代碼,因?yàn)橛行?bug 已經(jīng)修復(fù)很久了,而且他還開螽槦出了比「socketsnoop.d」更好用的新版本。晏龍得一提的是,他也信是述了這個(gè)十多年前的故,而沒(méi)有帶公眾節(jié)奏或圖去拿到賠償,也僅僅是以第一人稱講了一個(gè)事罷了。此外,他還特表?yè)P(yáng)了蘋果,因?yàn)樘O果那之后也將其數(shù)十種黑豹添加到 OS X 中,不過(guò)這次完整地保留了作者的姓名、版權(quán)和完的 CDDL 開源許可證等信息?