【Chromium中文文檔】進(jìn)程模型

轉(zhuǎn)載請(qǐng)注明出處:
https://ahangchen.gitbooks.io/chromium_doc_zh/content/zh/General_Architecture/Process_Models.html

全書地址
Chromium中文文檔 for https://www.chromium.org/developers/design-documents
持續(xù)更新ing,歡迎star
gitbook地址:https://ahangchen.gitbooks.io/chromium_doc_zh/content/zh//
github地址: https://github.com/ahangchen/Chromium_doc_zh

這個(gè)文檔描述了Chromium支持的不同線程模型,包括它的渲染器進(jìn)程绢掰,以及現(xiàn)有模型實(shí)現(xiàn)的問題放椰。

概述

網(wǎng)頁內(nèi)容已經(jīng)發(fā)展到包含大量在瀏覽器內(nèi)運(yùn)行的活躍代碼的地步磷雇,使得許多網(wǎng)站更像應(yīng)用程序而非文檔蜜徽。這種變革改變了瀏覽器的角色腋寨,從一個(gè)簡單的文檔渲染器變成一個(gè)操作系統(tǒng)莹桅。Chromium構(gòu)建得像一個(gè)操作系統(tǒng)那樣,使用多進(jìn)程隔離每個(gè)網(wǎng)站和瀏覽器自身尼荆,以一種安全而魯棒的方式運(yùn)行這些程序左腔。這提高了魯棒性,因?yàn)槊總€(gè)進(jìn)程運(yùn)行在自己的地址空間里捅儒,由操作系統(tǒng)調(diào)度液样,即使崩潰也不會(huì)互相影響振亮。用戶也可以在Chromium的任務(wù)管理器里查看每個(gè)進(jìn)程的資源使用情況。

Web瀏覽器有許多方法可以分割成不同的操作系統(tǒng)進(jìn)程鞭莽,最佳的架構(gòu)的選擇取決于許多因素坊秸,包括穩(wěn)定性,資源使用澎怒,對(duì)實(shí)際情況的觀察褒搔。Chromium支持四種不同的進(jìn)程模型,允許開發(fā)者實(shí)驗(yàn)喷面,也有最適合大部分用戶的默認(rèn)模式星瘾。

支持的模型

Chromium支持四種不同的模型,它們影響瀏覽器分配頁面給渲染進(jìn)程的行為惧辈。默認(rèn)情況下琳状,Chromium為用戶訪問的每個(gè)網(wǎng)站使用一個(gè)獨(dú)立的操作系統(tǒng)進(jìn)程。然而盒齿,用戶可以在啟動(dòng)Chromium時(shí)指定命令行選項(xiàng)念逞,以選擇其他的架構(gòu):全網(wǎng)站單進(jìn)程,每組相連標(biāo)簽頁一個(gè)進(jìn)程县昂,或者每個(gè)東西都放在一個(gè)單獨(dú)的進(jìn)程中肮柜。這些模型的區(qū)別在于他們是否影響內(nèi)容的源,是否影響標(biāo)簽頁間的關(guān)系倒彰,或者兩者都會(huì)影響。這個(gè)章節(jié)在更深的細(xì)節(jié)上討論每種模型莱睁,并在這個(gè)文檔的后面描述當(dāng)前Chromium的實(shí)現(xiàn)的一些問題待讳。

單網(wǎng)站實(shí)例單進(jìn)程

默認(rèn)情況下,Chromium為用戶訪問的每個(gè)網(wǎng)站實(shí)例創(chuàng)建一個(gè)渲染器進(jìn)程仰剿。這保證了不同網(wǎng)站的網(wǎng)頁獨(dú)立渲染创淡,讓對(duì)同一個(gè)網(wǎng)站的不同訪問相互獨(dú)立。因此一個(gè)網(wǎng)站實(shí)例中的失斈纤薄(比如琳彩,渲染器崩潰)或者重的資源使用不會(huì)影響瀏覽器的其他部分。這個(gè)模型基于內(nèi)容的源和腳本會(huì)相互影響的標(biāo)簽頁間的關(guān)系部凑。因此露乏,兩個(gè)標(biāo)簽頁可以在同一個(gè)渲染進(jìn)程里展示頁面,同時(shí)在給定的一個(gè)標(biāo)簽頁中導(dǎo)航到網(wǎng)站外的一個(gè)網(wǎng)頁涂邀,可能切換標(biāo)簽頁的渲染進(jìn)程瘟仿。(注意,Chromium當(dāng)前的實(shí)現(xiàn)有一些重要的問題比勉,會(huì)在下面的Caveat(警告)部分討論劳较。)

具體說來驹止,我們把一個(gè)注冊(cè)域名(例如:google.combbc.co.uk)加一個(gè)scheme(例如:https:// )定義為一個(gè)網(wǎng)站。這與同源策略定義相似观蜗,但它將子域名(比如:mail.google.comdocs.google.com)和端口(比如http://foo.com:8080 )合并到同一個(gè)網(wǎng)站中臊恋。允許網(wǎng)站的不同子域名或端口中的頁面通過Javascript訪問是有必要的,如果他們的document.domain變量相同的話墓捻,同源策略也會(huì)這樣允許抖仅。

一個(gè)網(wǎng)站實(shí)例是一些相同網(wǎng)站的相連網(wǎng)頁的集合。我們這樣認(rèn)為兩個(gè)頁面是相連的:如果他們可以在腳本代碼中獲取彼此的引用的話(比如:如果一個(gè)頁面被另一個(gè)頁面用Javascript在一個(gè)新窗口中打開)毙替。

優(yōu)點(diǎn)

  • 隔離不同網(wǎng)站的內(nèi)容岸售。這提供了網(wǎng)頁內(nèi)容的命運(yùn)共享的一種有意義的形式,在這種形式中厂画,網(wǎng)頁間的失敗不會(huì)相互影響凸丸。
  • 隔離展示相同網(wǎng)站的獨(dú)立標(biāo)簽頁。在不同的標(biāo)簽頁中獨(dú)立訪問同樣的網(wǎng)站會(huì)創(chuàng)建不同的進(jìn)程袱院。這可以避免同個(gè)實(shí)例中的爭奪與失敗屎慢,使其不會(huì)影響其他實(shí)例。

缺點(diǎn)

  • 更多的內(nèi)存負(fù)載忽洛。在大多數(shù)工作負(fù)載下腻惠,這個(gè)模型會(huì)比下面的每個(gè)網(wǎng)站一個(gè)進(jìn)程創(chuàng)建更多渲染器進(jìn)程。這雖然能增加穩(wěn)定性并且增加并發(fā)的機(jī)會(huì)欲虚,但它也增加了內(nèi)存負(fù)載集灌。
  • 更復(fù)雜的實(shí)現(xiàn)。不像每個(gè)標(biāo)簽頁一個(gè)進(jìn)程或者單進(jìn)程复哆,這個(gè)模型需要復(fù)雜的邏輯以支持標(biāo)簽在網(wǎng)頁間導(dǎo)航時(shí)的進(jìn)程交換欣喧,以及代理一些允許的源之間的JavaScript行為,比如傳遞消息梯找。(關(guān)于這個(gè)話題的更多內(nèi)容以及我們正在進(jìn)行的對(duì)這種模型的完全支持的努力唆阿,查看下面的Caveats(警告)部分以及我們的站點(diǎn)隔離工程頁面。)

單網(wǎng)站單進(jìn)程

Chromium也支持這樣一種進(jìn)程模式锈锤,隔離不同的網(wǎng)站驯鳖,但將相同網(wǎng)站的所有實(shí)例組合到一塊。為了使用這個(gè)模型久免,用戶需要在啟動(dòng)Chromium時(shí)在終端指定 --process-per-site開關(guān)浅辙。這創(chuàng)建更少的渲染進(jìn)程,用魯棒性交換更少的內(nèi)存占用妄壶。這個(gè)模型基于內(nèi)容的源摔握,而非標(biāo)簽頁間的關(guān)系。

優(yōu)點(diǎn)

  • 隔離不同網(wǎng)站的內(nèi)容丁寄。正如每個(gè)網(wǎng)站實(shí)例一個(gè)進(jìn)程的模型那樣氨淌,不同網(wǎng)站的頁面不會(huì)共享命運(yùn)(不會(huì)同生共死泊愧。。)盛正。

  • 更少的內(nèi)存占用删咱。這個(gè)模型比上一個(gè)模型和每個(gè)標(biāo)簽一個(gè)進(jìn)程的模型可能創(chuàng)建更少的并行進(jìn)程。這對(duì)于減少Chromium的內(nèi)存足跡可能是需要的豪筝。

缺點(diǎn)

  • 可能導(dǎo)致更大的渲染進(jìn)程痰滋。像google.com這樣的站點(diǎn)上有著大量的應(yīng)用程序,它們可能在瀏覽器里被同時(shí)打開续崖,并且全部在同一個(gè)進(jìn)程里渲染敲街。因此,這些應(yīng)用程序中的資源爭奪與失敗會(huì)影響許多標(biāo)簽頁严望,使得瀏覽器看起來不能更好地響應(yīng)多艇。不幸的是,在細(xì)粒度上而非通過注冊(cè)域名區(qū)分網(wǎng)站邊界像吻,并且不影響向后兼容性是很困難的峻黍。
  • 實(shí)現(xiàn)更加復(fù)雜。與每個(gè)網(wǎng)站實(shí)例一個(gè)進(jìn)程的模型相似拨匆,這需要在導(dǎo)航中交換進(jìn)程以及代理一些javascript操作的邏輯姆涩。

單標(biāo)簽頁單進(jìn)程

每個(gè)網(wǎng)站或每個(gè)網(wǎng)站實(shí)例一個(gè)進(jìn)程都需要在創(chuàng)建渲染進(jìn)程時(shí)考慮網(wǎng)站內(nèi)容的源。Chromium也支持一種簡單的模型惭每,將一個(gè)渲染器進(jìn)程分配給每組腳本相關(guān)的標(biāo)簽頁骨饿。這個(gè)模型可以使用 --process-per-tab命令行開關(guān)來選中。

特別地台腥,我們會(huì)把一些腳本相關(guān)聯(lián)的標(biāo)簽頁成為一個(gè)瀏覽實(shí)例样刷,它也與HTML5范疇中的“一個(gè)瀏覽上下文單元”對(duì)應(yīng)。這個(gè)集合由一個(gè)標(biāo)簽以及這個(gè)標(biāo)簽用javascript代碼所打開的標(biāo)簽組合而成览爵。這樣的標(biāo)簽必須在同一個(gè)進(jìn)程中渲染,以允許在這些標(biāo)簽頁間執(zhí)行javascript調(diào)用(大多數(shù)通常發(fā)生在同源頁面之間)镇饮。

優(yōu)點(diǎn)

  • 容易理解蜓竹。每個(gè)標(biāo)簽頁分配有一個(gè)渲染進(jìn)程,并不會(huì)隨時(shí)間改變储藐。

缺點(diǎn)

  • 導(dǎo)致我們不想要的頁面之間命運(yùn)共享俱济。如果用戶在瀏覽實(shí)例中導(dǎo)航一個(gè)標(biāo)簽頁到一個(gè)不同的網(wǎng)站中,新的頁面會(huì)和其他在同一個(gè)瀏覽實(shí)例中的任何其他標(biāo)簽頁共享命運(yùn)钙勃。

某些情況下蛛碌,盡管處于安全的需要,在這個(gè)模型中辖源,Chromium仍然強(qiáng)制標(biāo)簽頁中的進(jìn)程交換已經(jīng)沒有什么價(jià)值蔚携。例如希太,通常的網(wǎng)頁不允許與優(yōu)先級(jí)高的網(wǎng)頁(比如設(shè)置,或者新標(biāo)簽頁)共享進(jìn)程酝蜒。因此誊辉,這個(gè)模型在實(shí)踐中并沒有比單個(gè)網(wǎng)站實(shí)例單進(jìn)程更簡單。

單進(jìn)程

最后亡脑,出于比較的目的堕澄,Chromium支持單進(jìn)程模型,通過--single-process命令行開關(guān)打開霉咨。在這個(gè)模型中蛙紫,瀏覽器和渲染引擎跑在同一個(gè)操作系統(tǒng)進(jìn)程里。

單進(jìn)程模型提供了一個(gè)衡量多進(jìn)程架構(gòu)帶來的負(fù)荷的基線途戒。這不是一個(gè)安全的架構(gòu)坑傅,也不是一個(gè)魯棒的架構(gòu),因?yàn)槿魏武秩酒鞯谋罎?huì)導(dǎo)致整個(gè)瀏覽器進(jìn)程掛掉棺滞。它只是設(shè)計(jì)用于測試和開發(fā)目的裁蚁,并且可能包含在其他架構(gòu)中沒有的bug。

沙箱與插件

在每個(gè)多進(jìn)程架構(gòu)里继准,Chromium的渲染器進(jìn)程運(yùn)行在一個(gè)沙箱進(jìn)程中枉证,它對(duì)用戶電腦只有有限的訪問權(quán)限。這些進(jìn)程對(duì)用戶的文件系統(tǒng)移必,顯示器室谚,或者大部分其他的資源沒有直接的接觸。相反崔泵,他們只通過瀏覽器進(jìn)程獲得對(duì)允許的資源的訪問秒赤,而瀏覽器進(jìn)程可以在這種訪問上附加安全策略。因此憎瘸,Chromium的瀏覽器進(jìn)程可以減輕一個(gè)被利用的渲染器引擎能做的事情入篮。

瀏覽器插件,比如Flash和Silverlight幌甘,也在他們自己的進(jìn)程中執(zhí)行潮售,并且有些插件,比如Flash運(yùn)行在Chromium的沙箱中锅风。在Chromium支持的每個(gè)多進(jìn)程架構(gòu)中酥诽,對(duì)每種活躍的插件都只有一個(gè)進(jìn)程。因此皱埠,所有的Flash實(shí)例運(yùn)行在同一個(gè)進(jìn)程里肮帐,不論它們出現(xiàn)在哪個(gè)網(wǎng)站或標(biāo)簽頁中。

警告

這個(gè)部分列出一些Chromium當(dāng)前進(jìn)程模型實(shí)現(xiàn)的警告边器,以及它們的意義训枢。

  • 大多數(shù)始于渲染器的標(biāo)簽頁中的導(dǎo)航還沒有列入進(jìn)程交換中托修。如果用戶點(diǎn)擊一個(gè)鏈接,提交一個(gè)表單肮砾,或者被腳本重定向诀黍,,如果導(dǎo)航是跨站的話仗处,Chromium不會(huì)試圖切換標(biāo)簽頁中的渲染器進(jìn)程眯勾。Chromium只會(huì)為始于瀏覽器的跨站導(dǎo)航交換進(jìn)程,比如在地址欄輸入一個(gè)URL或者打開一個(gè)書簽婆誓。因此吃环,不同網(wǎng)站的頁面可能會(huì)在同一個(gè)進(jìn)程中渲染,甚至是在單網(wǎng)站實(shí)例單進(jìn)程模型和單網(wǎng)站單進(jìn)程模型中洋幻。這很可能在將來的Chromium版本中郁轻,作為網(wǎng)站隔離工程的一部分進(jìn)行修改。

然而文留,網(wǎng)頁可以使用一種機(jī)制來讓一個(gè)鏈接指向一個(gè)不相關(guān)的頁面好唯,這樣它們可以在不同的進(jìn)程中安全地渲染。如果一個(gè)link有rel=noreferrer或target=blank這樣的屬性燥翅,那么Chromium會(huì)在另外的進(jìn)程中渲染它骑篙。

  • 子頁面現(xiàn)在是與父頁面在相同進(jìn)程中渲染的。雖然跨站點(diǎn)的子頁面沒有訪問它們的父頁面的腳本森书,而且它們可以在不同的進(jìn)程中安全地渲染靶端,但Chromium還沒有在獨(dú)立的進(jìn)程中渲染它們。與上面的第一個(gè)警告相似凛膏,這意味著不同站點(diǎn)的頁面會(huì)在同樣的進(jìn)程中渲染杨名。這很可能在Chromium將來的版本中進(jìn)行修改。

  • Chromium創(chuàng)建的渲染進(jìn)程數(shù)目有上限猖毫。這避免瀏覽器占用用戶電腦的太多進(jìn)程台谍。這個(gè)限制與計(jì)算機(jī)的內(nèi)存成比例,并且最多可以有80個(gè)進(jìn)程吁断。因?yàn)檫@樣的限制典唇,一個(gè)渲染器可能被分配給多個(gè)站點(diǎn)。這種重用現(xiàn)在是隨機(jī)進(jìn)行的胯府,但將來的版本中,Chromium會(huì)做一個(gè)啟發(fā)式的策略恨胚,智能的把站點(diǎn)分配給渲染器進(jìn)程骂因。

實(shí)現(xiàn)記錄

Chromium中有兩個(gè)類代表了不同的進(jìn)程模型實(shí)現(xiàn)的抽象需要:BrowsingInstance和SiteInstance。
BrowsingInstance類代表了一個(gè)瀏覽器中腳本相連的集合赃泡,在HTML5領(lǐng)域中也被稱為相關(guān)瀏覽上下文單元寒波。在單標(biāo)簽頁單進(jìn)程模型中乘盼,我們?yōu)槊總€(gè)BrowsingInstance創(chuàng)建一個(gè)渲染器進(jìn)程。

SiteInstance類代表了來自相同站點(diǎn)的相同頁面俄烁。它是BrowsingInstance內(nèi)部頁面的一個(gè)子集绸栅,因?yàn)樵贐rowsingInstance內(nèi)部,每個(gè)站點(diǎn)只有一個(gè)SiteInstance页屠,所以它很重要粹胯。在單網(wǎng)站實(shí)例單進(jìn)程模型中,我們?yōu)槊總€(gè)SiteInstance創(chuàng)建一個(gè)渲染器進(jìn)程辰企。為了實(shí)現(xiàn)單網(wǎng)站單進(jìn)程风纠,我們必須確保來自同一個(gè)站點(diǎn)的所有的SiteInstance歸入相同的進(jìn)程中。

學(xué)術(shù)論文

現(xiàn)代瀏覽器架構(gòu)中隔離Web程序

Charles Reis, Steven D. Gribble (both authors at UW + Google)

Eurosys 2009. Nuremberg, Germany, April 2009.

摘要

今天的許多網(wǎng)站包含大量客戶端代碼牢贸,因此竹观,他們不再是簡單的文檔,而更多地表現(xiàn)出程序的特征潜索。這給瀏覽器提出了魯棒性與性能的挑戰(zhàn)臭增。為了給用戶提供一個(gè)魯棒而又快速響應(yīng)的平臺(tái),瀏覽器必須識(shí)別應(yīng)用程序邊界竹习,在他們之間提供隔離誊抛。

我們?cè)谶@篇文章中提出三個(gè)點(diǎn)。第一由驹,我們?yōu)閣eb程序和程序?qū)嵗峁┏橄笊置⒄f明這些抽象描繪了瀏覽器組件是如何交互的,合適的程序邊界該如何識(shí)別出來蔓榄;第二并炮,我們識(shí)別回退可用性的代價(jià),因?yàn)檫@約束了在不干擾已有網(wǎng)站的情況下甥郑,將網(wǎng)頁內(nèi)容劃分為程序所能做到的程度逃魄;第三,我們展示了一個(gè)多進(jìn)程瀏覽器架構(gòu)澜搅,相互隔離這些web應(yīng)用程序伍俘,提高容錯(cuò)度,優(yōu)化資源管理和性能勉躺。我們會(huì)討論這個(gè)架構(gòu)在Google Chrome中是如何實(shí)現(xiàn)的癌瘾,然后我們會(huì)提供一個(gè)量化的性能評(píng)估以檢查這種架構(gòu)的好處與代價(jià)。

Chromium瀏覽器安全架構(gòu)
Adam Barth, Collin Jackson, Charles Reis, and The Google Chrome Team

Stanford Technical Report, September 2008.

摘要

大多數(shù)當(dāng)前網(wǎng)頁瀏覽器使用一個(gè)單片架構(gòu)饵溅,將user和web合并到同一個(gè)保護(hù)域中妨退。如果一個(gè)攻擊者在這樣的瀏覽器中利用了任意一個(gè)代碼執(zhí)行漏洞,他們都可以盜取敏感文件或者安裝惡意軟件。在這篇文章里咬荷,我們會(huì)展示Chromium(Google Chrome是在這個(gè)開源軟件的基礎(chǔ)上構(gòu)建的)的安全架構(gòu)冠句。Chromium有兩個(gè)處于不同保護(hù)域中的模塊:一個(gè)是瀏覽器內(nèi)核,與操作系統(tǒng)交流幸乒,一個(gè)是渲染引擎懦底,在沙箱中運(yùn)行,有著有限的權(quán)限罕扎。這個(gè)架構(gòu)能夠減輕高危攻擊聚唐,而且不犧牲已有網(wǎng)站的可用性。我們?yōu)槊總€(gè)瀏覽器調(diào)用定義了一個(gè)威脅模型壳影,并評(píng)估這個(gè)架構(gòu)能夠如何減少過去的漏洞拱层。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌冲粤,老刑警劉巖戳杀,帶你破解...
    沈念sama閱讀 218,640評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,254評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門桃笙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人沙绝,你說我怎么就攤上這事搏明。” “怎么了闪檬?”我有些...
    開封第一講書人閱讀 165,011評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵星著,是天一觀的道長。 經(jīng)常有香客問我粗悯,道長虚循,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,755評(píng)論 1 294
  • 正文 為了忘掉前任样傍,我火速辦了婚禮横缔,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘衫哥。我一直安慰自己茎刚,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,774評(píng)論 6 392
  • 文/花漫 我一把揭開白布撤逢。 她就那樣靜靜地躺著斗蒋,像睡著了一般捌斧。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上泉沾,一...
    開封第一講書人閱讀 51,610評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音妇押,去河邊找鬼跷究。 笑死,一個(gè)胖子當(dāng)著我的面吹牛敲霍,可吹牛的內(nèi)容都是我干的俊马。 我是一名探鬼主播,決...
    沈念sama閱讀 40,352評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼肩杈,長吁一口氣:“原來是場噩夢啊……” “哼柴我!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起扩然,我...
    開封第一講書人閱讀 39,257評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤艘儒,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后夫偶,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體界睁,經(jīng)...
    沈念sama閱讀 45,717評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,894評(píng)論 3 336
  • 正文 我和宋清朗相戀三年兵拢,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了翻斟。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,021評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡说铃,死狀恐怖访惜,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情腻扇,我是刑警寧澤债热,帶...
    沈念sama閱讀 35,735評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站衙解,受9級(jí)特大地震影響阳柔,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蚓峦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,354評(píng)論 3 330
  • 文/蒙蒙 一舌剂、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧暑椰,春花似錦霍转、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,936評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽低滩。三九已至,卻和暖如春岩喷,著一層夾襖步出監(jiān)牢的瞬間恕沫,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,054評(píng)論 1 270
  • 我被黑心中介騙來泰國打工纱意, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留婶溯,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,224評(píng)論 3 371
  • 正文 我出身青樓偷霉,卻偏偏與公主長得像迄委,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子类少,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,974評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容