操作系統(tǒng)基礎(chǔ)3-宏內(nèi)核與微內(nèi)核

1.操作系統(tǒng)的內(nèi)核

內(nèi)核?是計(jì)算機(jī)上配置的底層軟件唯鸭,是操作系統(tǒng)最基本、最核心的部分硅确。實(shí)現(xiàn)操作系統(tǒng)內(nèi)核功能的那些程序就是內(nèi)核程序目溉。

可以看到內(nèi)核的主要功能有:時(shí)鐘管理唠粥、中斷管理、原語(設(shè)備驅(qū)動(dòng)停做、CPU切換等)。還有對(duì)系統(tǒng)資源的管理功能:進(jìn)程管理大莫、存儲(chǔ)器管理蛉腌、設(shè)備管理等功能。有些操作系統(tǒng)不把這部分功能歸為"內(nèi)核"功能只厘,不同的操作系統(tǒng)對(duì)內(nèi)核功能的劃分可能不一樣烙丛。

2.宏內(nèi)核與微內(nèi)核

宏內(nèi)核

簡(jiǎn)單的講宏內(nèi)核就是操作系統(tǒng)是個(gè)大管家,幾乎包辦一切羔味,用戶應(yīng)用程序的需求直接向內(nèi)核提出就行河咽;微內(nèi)核更像一個(gè)代理人,幾乎所有的驅(qū)動(dòng)赋元、文件系統(tǒng)全部運(yùn)行在與用戶應(yīng)用程序平級(jí)的用戶模式下忘蟹。

UNIX 系統(tǒng),1971 年誕生于大名鼎鼎的貝爾實(shí)驗(yàn)室的一臺(tái) PDP-11/24 機(jī)器上搁凸,其后經(jīng)過不斷發(fā)展與傳播媚值,在 80 年代取得了巨大成功,UNIX 被移植到眾多的處理器架構(gòu)护糖,并在眾多行業(yè)得到廣泛使用褥芒,甚至成為行業(yè)標(biāo)準(zhǔn)影響至今。

龐大的 UNIX 家族

UNIX 以及類 UNIX 系統(tǒng)如 Linux 都是典型的宏內(nèi)核設(shè)計(jì)嫡良,也就是把所有系統(tǒng)服務(wù)都放到內(nèi)核里锰扶,因?yàn)橄到y(tǒng)服務(wù)代碼之間存在大量數(shù)據(jù)交換和大量的服務(wù)請(qǐng)求,而在同一個(gè)代碼段內(nèi)進(jìn)行函數(shù)調(diào)用(C 語言)或跳轉(zhuǎn)(匯編或者機(jī)器碼時(shí)代)是最直接寝受、最高效的方法坷牛,在同一片地址空間也方便數(shù)據(jù)交換,所以這樣的宏內(nèi)核設(shè)計(jì)是很自然的很澄。

微內(nèi)核

微內(nèi)核設(shè)計(jì)的基本思想是簡(jiǎn)化內(nèi)核功能漓帅,在內(nèi)核之外的用戶態(tài)盡可能多地實(shí)現(xiàn)系統(tǒng)服務(wù),同時(shí)加入相互之間的安全保護(hù)痴怨。內(nèi)核只提供最基礎(chǔ)的服務(wù)忙干,比如多進(jìn)程調(diào)度、多進(jìn)程通信(IPC)等浪藻。其中進(jìn)程通信是作為連接應(yīng)用與用戶態(tài)系統(tǒng)服務(wù)的橋梁捐迫。

宏內(nèi)核與微內(nèi)核的對(duì)比示意圖

微內(nèi)核則把更多的系統(tǒng)服務(wù)(例如文件系統(tǒng)、POSIX 服務(wù)爱葵、網(wǎng)絡(luò)協(xié)議棧甚至外設(shè)驅(qū)動(dòng))放到用戶態(tài)應(yīng)用施戴,形成一個(gè)個(gè)服務(wù)反浓,等待其他應(yīng)用的請(qǐng)求。

微內(nèi)核在效率方面肯定是處于劣勢(shì)的赞哗,所以目前的主流操作系統(tǒng)如Linux和Windows本質(zhì)上使用的都是宏內(nèi)核雷则,當(dāng)然有讀者可能會(huì)提出Windows使用的是混合內(nèi)核,不過這種混合內(nèi)核也是以效率優(yōu)先的扁平化架構(gòu)肪笋,本質(zhì)上還是宏內(nèi)核月劈。

下面重點(diǎn)說說微內(nèi)核

微內(nèi)核這個(gè)概念從提出開始就在不斷地發(fā)展、完善進(jìn)步之中藤乙,到目前為止可以分為三代猜揪。

第一代微內(nèi)核:從無到有

第一代微內(nèi)核的主要代表是 Mach,該系統(tǒng)由美國(guó)卡耐基梅隆大學(xué)的 Avie Tevanian 和 Richard Rashid 主導(dǎo)開發(fā)坛梁。在 Mach 剛剛開始設(shè)計(jì)時(shí)而姐,UNIX 的發(fā)展正如日中天,所以Mach在設(shè)計(jì)時(shí)的一大目標(biāo)就是兼容 UNIX划咐,但是與 UNIX 不同的是 Mach 嘗試使用微內(nèi)核架構(gòu)去設(shè)計(jì)拴念。Mach 以 IPC 是作為所有系統(tǒng)服務(wù)與內(nèi)核交換數(shù)據(jù)的基礎(chǔ)機(jī)制,充分運(yùn)用 IPC褐缠、虛擬內(nèi)存丈莺、多進(jìn)程等特性將冗余的系統(tǒng)服務(wù)移出內(nèi)核作為進(jìn)程運(yùn)行。

1986年送丰,經(jīng)過兩年的開發(fā)缔俄,第一版的 Mach 發(fā)布后的第二年,Mach 就發(fā)布了第2版器躏,不過由于時(shí)間倉促俐载,加之沒有足夠的人手與資金,所以此時(shí) Mach 內(nèi)核并不提供完全的系統(tǒng)服務(wù)登失。

為了支撐系統(tǒng)上層運(yùn)行遏佣,這一版的內(nèi)核包含了大量 4.3 版本的 BSD 系統(tǒng)(UNIX的一個(gè)分支)代碼提供系統(tǒng)服務(wù),并且 BSD 系統(tǒng)服務(wù)運(yùn)行在內(nèi)核狀態(tài)揽浙,這導(dǎo)致 Mach 內(nèi)核的代碼體積甚至大于常規(guī) UNIX 內(nèi)核状婶。

第一版和第二版的 Mach 主要做了如下工作:

1. 驗(yàn)證了微內(nèi)核的可行性;

2. 在多處理器計(jì)算機(jī)上進(jìn)行移植驗(yàn)證了微內(nèi)核在多處理器計(jì)算機(jī)上的運(yùn)行馅巷;

3. 最后為了提高?IPC(進(jìn)程通信)?的效率膛虫,Mach 使用共享內(nèi)存機(jī)制來完成?IPC

而 Mach 的共享內(nèi)存機(jī)制是在虛擬內(nèi)存技術(shù)的支持下實(shí)現(xiàn)的钓猬,只有需要對(duì)內(nèi)存進(jìn)行寫入時(shí)才進(jìn)行復(fù)制稍刀。這么一處理比每次都復(fù)制一遍內(nèi)存節(jié)省了內(nèi)存使用同時(shí)又加快了 IPC 機(jī)制的處理時(shí)間,這個(gè)改進(jìn)稱為寫時(shí)復(fù)制,并且在如今的通用操作系統(tǒng)如 Linux 中常常用到账月。

當(dāng)然此時(shí) Mach 內(nèi)核還不算完全的微內(nèi)核综膀。而考慮到微內(nèi)核可以更高效地利用多處理器計(jì)算機(jī)的處理器核心資源,人們期待著等 Mach 把系統(tǒng)服務(wù)都搬到內(nèi)核之外后可以把運(yùn)行效率損失降下來局齿。

同時(shí) Mach 在微內(nèi)核方面小小的嘗試迅速吸引了大批公司與組織的注意剧劝,開放軟件基金會(huì)(Open Software Foundation,OSF)宣布下一代系統(tǒng) OSF/1 將基于 Mach 的內(nèi)核抓歼, NeXTSTEP 也將使用 Mach2.5讥此, 甚至 IBM 也打算利用 Mach 構(gòu)建 Workplace OS。蘋果公司這個(gè)時(shí)候也出手了锭部,蘋果公司也從此基于 Mach2.5 打造其操作系統(tǒng)內(nèi)核 XNU,XNU的構(gòu)成如下圖所示面褐,Mach 作為內(nèi)核的內(nèi)環(huán)拌禾,外環(huán)右側(cè)是蘋果的驅(qū)動(dòng)框架(I/O Kit),外環(huán)左側(cè)是 BSD 的系統(tǒng)服務(wù)代碼提供 UNIX 兼容的服務(wù)層展哭,這三者共同協(xié)作向上層提供完整的系統(tǒng)服務(wù)湃窍。XNU 廣泛地使用在蘋果公司的 OSX、IOS等系統(tǒng)中匪傍。

這個(gè)時(shí)候由于 UNIX 系統(tǒng)廣泛使用帶來的商業(yè)利益您市,此時(shí) BSD 系統(tǒng)開發(fā)者與 UNIX 的擁有者 AT&T 陷入了法律大戰(zhàn),Mach 使用的 BSD 相關(guān)代碼有了法律風(fēng)險(xiǎn)役衡。

提升性能的期望和規(guī)避法律風(fēng)險(xiǎn)的需求推動(dòng)著 Mach 3.0 的開發(fā)茵休,Mach 3.0 的開發(fā)目標(biāo)主要是為了替換 BSD 系統(tǒng)服務(wù),同時(shí)盡量多地將系統(tǒng)服務(wù)放到內(nèi)核之外去運(yùn)行手蝎,成為名副其實(shí)的微內(nèi)核設(shè)計(jì)榕莺。

經(jīng)過眾多開發(fā)者 3 年的努力,Mach 3.0 于 1990 年發(fā)布棵介,但是由于在系統(tǒng)服務(wù)之間完全使用 IPC 通信钉鸯,而不是像宏內(nèi)核那樣直接進(jìn)行函數(shù)調(diào)用,即便是多處理器機(jī)器上運(yùn)行也性能損失慘重邮辽,Mach 3.0 最多比 UNIX 損失 67% 運(yùn)行效率唠雕,這導(dǎo)致 Mach 3.0 以及其所代表的第一代微內(nèi)核設(shè)計(jì)被看衰。此后斷斷續(xù)續(xù)有在 Mach 的基礎(chǔ)上對(duì)性能進(jìn)行提升的嘗試吨述,但是均不太理想岩睁,至此 Mach 成為了微內(nèi)核第一代先驅(qū)者

第二代微內(nèi)核:解決性能問題

第二代微內(nèi)核的主要代表是 L3 和 L4,以及 QNX 系統(tǒng)使用的 Neutrino 內(nèi)核揣云。前面第一代的微內(nèi)核 Mach 由于效率問題雖然失敗了笙僚,但是微內(nèi)核的理念并沒有被放棄,德國(guó)的計(jì)算機(jī)科學(xué)家 Jochen Liedtke 認(rèn)為 Mach 的 IPC 效率低下的原因就是因?yàn)?IPC 部分不夠精簡(jiǎn)灵再,于是他開發(fā)了 L3 和 L4 微內(nèi)核肋层,對(duì) IPC 部分進(jìn)行了很徹底的精簡(jiǎn):

1. 內(nèi)核的 IPC 機(jī)制只是單純地傳遞信息亿笤,諸如安全權(quán)限檢查這類的代碼都省略掉,省略掉的功能全部由用戶進(jìn)程自己處理栋猖。如此一來 IP C功能部分的代碼執(zhí)行時(shí)間大大縮短净薛;

2. IPC 不使用內(nèi)存?zhèn)鬟f消息,而使用寄存器傳遞消息蒲拉,同時(shí)限制 IPC 每次傳遞的信息長(zhǎng)度肃拜,這樣省去了對(duì)內(nèi)存的訪問時(shí)間。L4 微內(nèi)核的 IPC 速度經(jīng)過測(cè)試要比 Mach 快 20 倍雌团,這個(gè)令人驚訝的優(yōu)化效果吸引了眾多的目光燃领,使微內(nèi)核的研究重新火熱起來。后面 L4 內(nèi)核又發(fā)展出了很多相關(guān)系統(tǒng)锦援,比如 Pistachio猛蔽、L4/MIPS 與 Fiasco 等等,這些內(nèi)核組成了 L4 的大家族灵寺。

第二代微內(nèi)核的代表除了有 L4 內(nèi)核曼库,也還有其他微內(nèi)核比如 Exokernel、Rambler 等略板,不過商業(yè)上最成功的則是目前黑莓公司旗下的?QNX?系統(tǒng)所使用的 Neutrino 內(nèi)核(QNX毁枯,1980年誕生,最初以 QUICK UNIX 為名叮称,后改為?QNX种玛;2004 年 QNX 被 Harman 國(guó)際收購;2010 年 Harman 國(guó)際下被黑莓收購瓤檐,QNX 成為黑莓旗下的資產(chǎn))蒂誉,QNX 主要為高可靠領(lǐng)域提供解決方案,比如交通距帅、能源右锨、醫(yī)療、航天航空等碌秸。

第三代微內(nèi)核:主要重視安全問題等

在前面兩代的基礎(chǔ)上绍移,第三代微內(nèi)核蓬勃發(fā)展,許許多多微內(nèi)核都被開發(fā)出來讥电,主要代表有:seL4蹂窖、Fiasco.OC、NOVA 等恩敌。

本來第一代微內(nèi)核的設(shè)計(jì)隔離了使內(nèi)核安全性降低的系統(tǒng)服務(wù)瞬测,讓系統(tǒng)服務(wù)漏洞不會(huì)影響內(nèi)核,進(jìn)而提高了內(nèi)核安全性,可以說是關(guān)上了破壞系統(tǒng)的門月趟, 但是第二代系統(tǒng)卻又給攻擊者開了個(gè)窗戶灯蝴。

由于第二代微內(nèi)核在內(nèi)核中省去了關(guān)于安全性檢查等步驟,把所有關(guān)于安全檢查功能的實(shí)現(xiàn)都交給系統(tǒng)服務(wù)自己去實(shí)現(xiàn)孝宗,這導(dǎo)致系統(tǒng)服務(wù)的通信接口直接暴露給用戶態(tài)穷躁,任何進(jìn)程都可能無限制地請(qǐng)求系統(tǒng)服務(wù),系統(tǒng)服務(wù)不得不花費(fèi)額外的代價(jià)來區(qū)分請(qǐng)求是否合法因妇,容易造成拒絕服務(wù)攻擊问潭。

比如正常的文件服務(wù)應(yīng)該是從虛擬文件系統(tǒng)服務(wù)->文件系統(tǒng)服務(wù)->磁盤驅(qū)動(dòng)服務(wù)這個(gè)流程來完成的,但是如果攻擊者如果繞過虛擬文件系統(tǒng)服務(wù)婚被,直接無限制地請(qǐng)求攻擊者本身沒有權(quán)限訪問的文件系統(tǒng)服務(wù)狡忙,使文件系統(tǒng)服務(wù)長(zhǎng)期處于滿載狀態(tài),讓其他進(jìn)程無法通過正常的虛擬文件系統(tǒng)得到文件系統(tǒng)服務(wù)址芯。為了增強(qiáng)安全性灾茁,且不過分影響性能,人們開始研發(fā)第三代微內(nèi)核是复。

seL4 是在第二代內(nèi)核 L4 的基礎(chǔ)上發(fā)展而來的删顶。seL4 不僅僅繼承了 L4 內(nèi)核家族的高性能特性竖螃,還具備基于端點(diǎn)(enndpoint)的 IPC 機(jī)制淑廊。

這種 IPC 機(jī)制最大的特點(diǎn)是使用了能力空間的概念,進(jìn)程在使用 IPC 請(qǐng)求系統(tǒng)服務(wù)時(shí)必須具備相對(duì)應(yīng)的能力特咆,進(jìn)程持有不可偽造的令牌來表示擁有請(qǐng)求某種服務(wù)的能力季惩。令牌可以被復(fù)制,可以被轉(zhuǎn)移腻格,還可以通過 IPC 進(jìn)行傳輸画拾。令牌其實(shí)是一個(gè)指向存在于內(nèi)核空間內(nèi)核對(duì)象的指針,所以普通進(jìn)程并不能修改自身以及其他進(jìn)程的權(quán)限分配菜职,但是內(nèi)核可以對(duì)令牌指定的權(quán)限進(jìn)行控制青抛,從而保證了用戶態(tài)不能繞過能力空間這個(gè)機(jī)制對(duì)系統(tǒng)服務(wù)造成濫用。

seL4 還是第一個(gè)完全通過形式化驗(yàn)證的內(nèi)核酬核,通俗說形式化驗(yàn)證就是在數(shù)學(xué)軟件的幫助下使用數(shù)學(xué)語言自動(dòng)化地推導(dǎo)檢查系統(tǒng)的每一個(gè)運(yùn)行狀態(tài)蜜另。seL4 形式化驗(yàn)證相關(guān)論文。

其他的微內(nèi)核系統(tǒng):Fuchsia嫡意、Minix

Fuchsia 是 Google 開發(fā)的一款全新操作系統(tǒng)举瑰,試圖覆蓋手機(jī)、平板甚至筆記本等一系列領(lǐng)域蔬螟。Google 為該系統(tǒng)配備了 Vulkan 圖形接口此迅、3D 桌面渲染 Scenic、Flutter 應(yīng)用開發(fā)框架,還有一個(gè)稱為 zircon 的微內(nèi)核耸序。

zircon 內(nèi)核是從高通平臺(tái)的一個(gè) Bootloader 項(xiàng)目:Little Kernel發(fā)展而來忍些。zircon內(nèi)核屬于微內(nèi)核設(shè)計(jì),只提供?IPC佑吝、進(jìn)程管理坐昙、地址空間管理功能。zircon 區(qū)別于以進(jìn)程或者以文件為核心的設(shè)計(jì)芋忿,zircon 是以內(nèi)存為核心來設(shè)計(jì)的炸客,內(nèi)存在 zircon 中是以對(duì)象的方式存在,可以通過 channel 通信機(jī)制傳遞虛擬內(nèi)存對(duì)象(Virtual memory object)的句柄戈钢,進(jìn)程拿到句柄后可以把這塊內(nèi)存映射到自己的空間痹仙。

Minix 系統(tǒng)則由荷蘭阿姆斯特丹的 Vrije 大學(xué)的 Andrew S.Tanenbaum 教授所開發(fā)。

該系統(tǒng)最大的特點(diǎn)是可以故障隔離殉了,自動(dòng)重啟失敗的服務(wù)开仰。

Minix 使用分層設(shè)計(jì),最底層的微內(nèi)核提供中斷處理薪铜、進(jìn)程管理众弓、進(jìn)程通信等服務(wù),這一層運(yùn)行在內(nèi)核態(tài)隔箍;中間層提供輪回服務(wù)(Reincarnation Server)谓娃、文件服務(wù)、進(jìn)程管理蜒滩、X 圖形服務(wù)以及驅(qū)動(dòng)等滨达,這一層運(yùn)行在用戶態(tài),最上層為用戶進(jìn)程俯艰。

其中輪回服務(wù)負(fù)責(zé)在中間層的服務(wù)出現(xiàn)崩潰時(shí)重啟這些服務(wù)捡遍,從而保證服務(wù)的自我修復(fù)。Minix 由于其自我修復(fù)特性被英特爾管理引擎(ME)所選用竹握,該管理引擎主要負(fù)責(zé)管理英特爾芯片的內(nèi)部模塊画株。

華為的鴻蒙操作系統(tǒng)就是微內(nèi)核系統(tǒng)。


做一個(gè)比較簡(jiǎn)單的類比啦辐,如果把操作系統(tǒng)看成一家公司谓传,而宏內(nèi)核的特點(diǎn)是用戶請(qǐng)求直達(dá)內(nèi)核,內(nèi)核統(tǒng)一安排執(zhí)行昧甘,這代表此公司使用扁平化的管理架構(gòu)良拼,而微內(nèi)核的操作系統(tǒng)中則需要設(shè)立很多如驅(qū)動(dòng),文件系統(tǒng)等部門充边,這顯示公司使用制度化庸推、等級(jí)化的管理架構(gòu)常侦。

上下文上下文切換這個(gè)名詞經(jīng)常出現(xiàn)在各類操作系統(tǒng)的書籍當(dāng)中,還是以公司為例贬媒,上下文就代表了處理一個(gè)項(xiàng)目所需要的相關(guān)材料聋亡、文件,而上下文切換則代表這些材料文件在不同部門(進(jìn)程)或者領(lǐng)導(dǎo)(CPU)之間的流轉(zhuǎn)际乘。

狀態(tài)保持(快照)及恢復(fù):假設(shè)這樣一種場(chǎng)景坡倔,我正在領(lǐng)導(dǎo)的辦公室中匯報(bào)工作,此時(shí)外面另一個(gè)人有更重要的事情向領(lǐng)導(dǎo)匯報(bào)脖含,由于涉及權(quán)限問題需要我先退出他的辦公室罪塔,那么我在退出前需要做一次狀態(tài)快照,以便領(lǐng)導(dǎo)處理完緊急事務(wù)后可以繼續(xù)處理我的工作养葵。這就是計(jì)算機(jī)中狀態(tài)保持與恢復(fù)的過程征堪。

運(yùn)行效率宏內(nèi)核更優(yōu):相信大家都有過跑部門跑公章的經(jīng)歷,很多時(shí)間关拒、精力都浪費(fèi)在了部門(進(jìn)程)之間的上下文切換(上文已經(jīng)釋義)中了佃蚜,微內(nèi)核效率方面肯定是處于劣勢(shì)的,所以目前的主流操作系統(tǒng)如Linux和Windows本質(zhì)上使用的本質(zhì)上都是宏內(nèi)核着绊。

安全性的比較谐算,其實(shí)僅憑直覺就能得到正確結(jié)論。正如各位日常所見归露,正規(guī)軍隊(duì)采用的都是“下級(jí)服從上級(jí)洲脂、命令絕對(duì)執(zhí)行”的管理方式,而只有游擊隊(duì)才搞會(huì)扁平化管理的靶擦。其中邏輯也不難理解腮考,扁平化雖然能有比較高的效率雇毫,但是難免會(huì)在身份鑒別玄捕、數(shù)據(jù)傳遞的過程中出現(xiàn)紕漏,從而給入侵者可趁之機(jī)棚放。

我們也知道宏內(nèi)核的操作系統(tǒng)尤其是Windows枚粘,經(jīng)常會(huì)暴出安全漏洞,用戶在沒有泄露密碼且沒使用問題硬件的情況下飘蚯,還是會(huì)遭到被黑客入侵馍迄。所以在安全性對(duì)比上微內(nèi)核可謂優(yōu)勢(shì)明顯。

宏內(nèi)核vs微內(nèi)核?實(shí)時(shí)性強(qiáng)??這個(gè)問題的答案可能與讀者的第一反應(yīng)不同局骤,效率更優(yōu)的宏內(nèi)核在實(shí)時(shí)性方面的表現(xiàn)其實(shí)不如微內(nèi)核攀圈。那些對(duì)于實(shí)時(shí)性要求極高的軍用操作系統(tǒng)(如vxWorks等)使用的都是微內(nèi)核架構(gòu)。

總結(jié):

微內(nèi)核效率比宏內(nèi)核慢峦甩,但在安全性赘来、可靠性方面要比宏內(nèi)核好现喳,在擴(kuò)展性方面微內(nèi)核也有優(yōu)勢(shì)。

從內(nèi)核構(gòu)架發(fā)展趨勢(shì)來說目前微內(nèi)核正在回歸犬辰,正好說明了微內(nèi)核與多處理器的硬件平臺(tái)配合會(huì)更好嗦篱。如果微內(nèi)核真正解決了效率方面的不足,那一定會(huì)有比Linux更為強(qiáng)勁的基于微內(nèi)核架構(gòu)的操作系統(tǒng)的出現(xiàn)幌缝。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末灸促,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子涵卵,更是在濱河造成了極大的恐慌浴栽,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件轿偎,死亡現(xiàn)場(chǎng)離奇詭異吃度,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)贴硫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門椿每,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人英遭,你說我怎么就攤上這事间护。” “怎么了挖诸?”我有些...
    開封第一講書人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵汁尺,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我多律,道長(zhǎng)痴突,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任狼荞,我火速辦了婚禮辽装,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘相味。我一直安慰自己拾积,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開白布丰涉。 她就那樣靜靜地躺著拓巧,像睡著了一般。 火紅的嫁衣襯著肌膚如雪一死。 梳的紋絲不亂的頭發(fā)上肛度,一...
    開封第一講書人閱讀 49,144評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音投慈,去河邊找鬼承耿。 笑死策吠,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的瘩绒。 我是一名探鬼主播猴抹,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼锁荔!你這毒婦竟也來了蟀给?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤阳堕,失蹤者是張志新(化名)和其女友劉穎跋理,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體恬总,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡前普,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了壹堰。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拭卿。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖贱纠,靈堂內(nèi)的尸體忽然破棺而出峻厚,到底是詐尸還是另有隱情,我是刑警寧澤谆焊,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布惠桃,位于F島的核電站,受9級(jí)特大地震影響辖试,放射性物質(zhì)發(fā)生泄漏辜王。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一罐孝、第九天 我趴在偏房一處隱蔽的房頂上張望呐馆。 院中可真熱鬧,春花似錦肾档、人聲如沸摹恰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至姑宽,卻和暖如春遣耍,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背炮车。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工舵变, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留酣溃,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓纪隙,卻偏偏與公主長(zhǎng)得像赊豌,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子绵咱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345