口腹蜜剑什么意思| p代表什么| 螺蛳吃什么| 无的放矢什么意思| 什么蛇有毒| 心肌梗塞有什么症状| 男女身份证号码有什么区分| 凤尾菜又叫什么菜| 李白号称什么| 无犯罪记录证明需要什么材料| pao2是什么意思| 又当又立是什么意思| 大骨节病是一种什么病| 火华念什么| 最小的单位是什么| 心脏供血不足吃什么药好| 治疗阳痿早泄什么药最好| 尿蛋白是什么原因| 农历8月是什么星座| 干戈指什么| 掌中宝是什么东西| 齿痕舌吃什么中成药| 种田文什么意思| 脾虚湿气重吃什么中成药| 血透是什么意思| 霸王龙吃什么| 女性分泌物发黄是什么原因| 四级什么时候报名| 阴唇发黑是什么原因| 猫薄荷是什么| 3月31号什么星座| 胃不好应该吃什么| 一什么书桌| 芽菜是什么菜| 7.15什么星座| b什么意思| 750是什么金| 特勤是干什么的| 妇科做活检是什么意思| 笑点低是什么意思| 大白菜什么时候种| 腋臭看什么科| c3是什么驾驶证| 螨虫是什么样子的| 蒸鱼豉油可以用什么代替| 窦性心动过缓什么意思| 尿素高是什么原因| 荸荠又叫什么| 绝世是什么意思| 猫癣用什么药| 赖是什么意思| 特别提款权是什么意思| 四月什么星座| 菩提树长什么样| o型rhd阳性是什么意思| 梦见墙倒了有什么预兆| 什么东西最吸引蛇| 尿臭是什么病| 白带豆腐渣状是什么原因造成的| 磺胺是什么药| 策划是干什么的| 这是什么品牌| 爱豆是什么| 吃了避孕药有什么反应| 姓彭的女孩子取什么名字好| 花卉是什么意思| 人有三急指的是什么| 顶臂长是什么意思| 宵夜吃什么| 十月二十二是什么星座| 破财免灾什么意思| 咳嗽一直不好是什么原因| 什么药可以流产| 啤酒酵母是什么| 为什么医生说直肠炎不用吃药| 刀鱼和带鱼有什么区别| 大口鱼是什么鱼| 双侧瞳孔缩小见于什么| 解表是什么意思| 小狗咳嗽吃什么药好使| 什么叫粳米| 月经期间同房有什么危害| 治疗幽门螺旋杆菌的四联药是什么| 什么鱼红烧好吃| 淋巴结肿大是什么原因| 老人流口水是什么原因引起的| 烂舌头是什么原因| 女性肾虚吃什么药| 阴虱是什么样子图片| 拉肚子喝什么粥| 金星原名叫什么| 平起平坐是什么动物| 萎缩性胃炎吃什么食物好| 痛点是什么意思| tt什么意思| 入睡难一般是什么原因造成的| 猿是什么动物| 牛杂是什么| 什么叫早搏| 喉咙有痰是什么原因引起的| 员外是什么生肖| 神经衰弱有什么症状| 王维有什么之称| 白绫是什么意思| 梦见闹离婚是什么意思| 玉米芯有什么用途| 未成年喝酒有什么危害| 过敏性咳嗽用什么药| 牛头人什么意思| 八字带什么的长寿| 精氨酸是什么| 老年人晚上夜尿多是什么原因| 尿液突然变深褐色是什么原因| exm是什么意思| 飞天奖是什么奖| 柳条像什么| 姜子牙是什么神仙| 凝血六项是检查什么的| 芹菜吃多了会有什么影响| 阴道炎用什么药效果最好| 湿气重可以吃什么水果| 命名是什么意思| 什么是早泄| 生理期腰疼是什么原因| 商鞅姓什么| 什么是老年斑图片| 不甘心是什么意思| 死心眼什么意思| 月亮为什么会有圆缺变化| 2025是什么年| 流黄鼻涕是什么原因| 二月四号是什么星座| 脚肿吃什么消肿最快| 市政府秘书长什么级别| 口腔溃疡是缺少什么维生素| 96年什么命| 梦见小孩是什么| pad是什么设备| 前降支中段心肌桥什么意思| 吃什么水果补铁| 安全感是什么| 热闹非凡是什么意思| 为什么一抽烟就想拉屎| 湿热体质吃什么中成药| 磨玻璃结节是什么意思| 晚上喝柠檬水有什么好处| 瑞夫泰格手表什么档次| 1958年属什么生肖| 反社会人格有什么表现| 今天什么冲什么| 2043年是什么年| 右手发麻是什么病的前兆| 胸部ct挂什么科| 胃酸胃烧心吃什么药| 珍珠母是什么东西| 动物的尾巴有什么用处| 戏谑是什么意思| 日逼是什么意思| 什么是皮炎| 度蜜月什么意思| 范字五行属什么| 孩子嗓子有痰吃什么药| bosch是什么牌子| 超市属于什么行业| 脂蛋白是什么| 脚指甲盖凹凸不平是什么原因| 英语6级是什么水平| 八十岁是什么寿| 下肢血管堵塞吃什么药| 珠地棉是什么面料| 检查胃应该挂什么科| 颈椎退行性病变是什么意思| 土化是什么字| 什么是癫痫| 秦始皇的母亲叫什么名字| 蹲马步有什么好处| 海带和什么不能一起吃| 甲状腺肿大吃什么药| 五大三粗是什么意思| 心肌炎是什么| 什么症状吃保心丸| 逝者如斯夫什么意思| 便秘去药店买什么药吃| 57年的鸡是什么命| 一个木一个号念什么| 今年22岁属什么生肖| 舌头口腔溃疡是什么原因引起的| 属猴的跟什么属相最配| 玉髓是什么| 深耕是什么意思| 小孩牙疼吃什么药| 属马的是什么星座| 糖尿病吃什么主食最好| 浑身麻是什么原因| 胎盘老化对胎儿有什么影响| 6月30日是什么座| 弥月之喜是什么意思| 立刀旁的字和什么有关| 戾是什么意思| 第一次坐飞机需要注意什么| 杠杠的是什么意思| 女性解脲支原体阳性是什么意思| 为什么风团会在晚上爆发| 九牛一毛指什么生肖| 山魈是什么| 哺乳期抽烟对宝宝有什么影响| 炖牛肉放什么佐料| 石光荣是什么军衔| 澳门使用什么货币| 申时属什么生肖| 人皇是什么意思| 胃不好吃什么蔬菜| 三星堆是什么意思| 荀彧字什么| 胆囊炎可以吃什么水果| 谋杀是什么意思| 诺如病毒吃什么药最有效| 两毛四是什么军衔| 精疲力尽是什么意思| 腰底部疼痛跟什么病有关| 吃什么可以化痰| 梦见佛像是什么预兆| 三个全念什么| 水瓶座什么象| 炎热的夏天风儿像什么| 指甲上有竖条纹是什么原因| 肛周脓肿挂什么科| 梦见自己准备结婚是什么意思| 梦见煮鱼有什么预兆| 叶酸片有什么作用| 肉蔻炖肉起什么作用| 为什么早上起来眼睛肿| 什么的大叫| 陕西八大怪是什么| 乳香是什么东西| 谷丙转氨酶高是什么原因| 曹操是什么样的人| 五金店卖什么| 红细胞偏高有什么危害| 右侧后背疼是什么原因| 处口念什么| 手发麻是什么原因| 疖子是什么原因引起的| 猫叫是什么意思| 什么样的毛刺是良性的| 鼻炎咳嗽吃什么药| 什么是甲状腺| 眼睛模糊吃什么好| 忽悠什么意思| 大便暗红色是什么原因| 什么时候放开二胎| 拍肺部ct挂什么科| 一什么眉毛| 146是什么意思| 梦见蛇是什么预兆| 柴鱼是什么鱼| stories是什么意思| 全期猫粮什么意思| 为什么泡完脚后非常痒| 大黄米和小黄米有什么区别| 易孕体质有什么特征| 幕后是什么意思| 柠檬水苦是什么原因| mp5是什么| 百度

新常态下谋转型 中信银行打造创新型零售银行

spezieller Betriebsmodus der IA-32-Architektur von Intel
百度   土耳其武装力量总参谋部当天发表声明说,这架战机是在22日晚的训练飞行中坠毁的,坠机地点位于内夫谢希尔省。

Der Begriff Protected Mode (englisch; deutsch: geschützter Modus oder Schutzmodus) bezeichnet einen Betriebsmodus von x86-Prozessoren, der seit dem 80286er-Prozessor von Intel vorhanden ist. Er erlaubt die Begrenzung von Speicherzugriffsrechten für verschiedene Software, au?erdem erh?hte sich mit ihm der direkt zugreifbare Speicher auf 16 MiB Hauptspeicher (16-Bit-Protected-Mode des 80286). Mit dem 80386er und dessen 32-Bit-Protected-Mode wurde der lineare Zugriff auf bis zu 4 GiB Hauptspeicher m?glich. Der Protected Mode wird von allen weiterentwickelten 16-Bit- und 32-Bit-PC-Betriebssystemen genutzt.

Hintergründe und Idee

Bearbeiten
 
Segmentdeskriptortabelle im Protected Mode

Ursprünglich existierte nur der retronym ab dem 80286 so bezeichnete Real Mode der 8086-Prozessoren, dem Begründer der x86-Architektur, der aus Kompatibilit?tsgründen immer noch bei 32-Bit- und 64-Bit-x86-Prozessoren der Startmodus ist, so dass ?ltere Software wie etwa das auf IBM-PC-kompatiblen Computern bis in die 1990er Jahre am weitesten verbreitete Betriebssystem DOS lauff?hig ist.[1] In diesem Modus gab es keine Speicherschutzmechanismen oder Policies, das Betriebssystem und auch jedes einzelne Programm konnte jederzeit sowohl lesend auch schreibend auf jede Speicheradresse zugreifen. Dies bedeutet die unrealistische Anforderung der v?lligen Fehlerfreiheit an Software, da schon ein einziger fehlerhafter Zugriff auf eine Adresse einer anderen Software (z. B. des Betriebssystems) zu Datenverlust oder Instabilit?t des gesamten Systems führen kann.

Bei der Weiterentwicklung der x86-Architektur hat Intel daher Mechanismen eingeführt, mit denen die Zugriffsrechte von Programmen auf verschiedene Speicherbereiche feingranularer einstellbar sind, was Speicherschutz zwischen verschiedener Software erm?glicht und die ursprüngliche Situation im Real Mode entsch?rft. Der Prozessor muss dazu allerdings in den Protected Mode versetzt werden, mit dem bestehende Software – allen voran MS-DOS und PC DOS der mit dem IBM PC begründeten Plattform – nicht mehr kompatibel war. Ab dem 80386 wurde mit dem Virtual 8086 Mode ein Kompatibilit?tsmodus integriert, der die Ausführung von 16-Bit-Software im 32-Bit-Protected-Mode erm?glicht.

Konzept und Charakteristika

Bearbeiten

Im Protected Mode unterstützt der Prozessor sowohl Segmentierung (ab dem 80286) als auch Paging (ab dem 80386). Aus Kompatibilit?tsgründen entschied sich Intel für die virtuelle Speicherverwaltung als Methode, da hier jedem Programm durch die Speicherverwaltungseinheit, kurz ?MMU“ für englisch Memory Management Unit, weiterhin ein vollst?ndiger Adressraum wie im Real Mode vorgegaukelt werden kann. Jedes Programm wird in seiner eigenen, von anderer Software abgeschotteten Kopie des physischen Adressraums ausgeführt. Betriebssystembereiche (typischerweise im oberen Bereich des Adressraums 2 bis 4 GiB) k?nnen mit einer h?heren Befugnisstufe ausgestattet sein (englisch ?privilege level“).

Der namensgebende Speicherschutz des Protected Mode ist auf vier verschiedene Schutzebenen auf Segmentebene und zwei Schutzebenen auf Page-Ebene aufgebaut. Die vier verschiedenen im x86-Schutzmodus existierenden und als Ringe oder ?Domain“ bezeichneten Schutzebenen bzw. Befugnisstufen gew?hren den darauf ablaufenden Codesegmenten unterschiedliche Rechte. Dies erm?glicht unter anderem die Unterscheidung zwischen Kernel-Modus (Ring 0) und Benutzer-Modus (Ring 3), welche in modernen Betriebssystemen umgesetzt ist. Dadurch wird verhindert, dass fehlerhafte oder b?swillige Anwendungsprogramme das Betriebssystem überschreiben und somit ver?ndern oder zum Absturz bringen k?nnen oder Daten anderer Programme aussp?hen k?nnen, was auf dem 8086er-Prozessor noch ohne weiteres m?glich war und nicht verhindert werden konnte.

Ein x86-Prozessor schaltet in den Protected Mode um, indem das PE-Bit, für englisch Protection Enable, im Control Register 0 (CR0) gesetzt wird.[2]

Ebenfalls aus Kompatibilit?tsgründen integrierte Intel im 32-Bit-Protected-Mode ab dem 80386 einen Sondermodus, den Virtual 8086 Mode (auch ?Virtual Real Mode“ genannt), der die Ausführung von existierenden Real-Mode-Programmen im Protected Mode erm?glicht.

16-Bit Protected Mode

Bearbeiten

Der ursprüngliche Protected Mode wurde mit dem 80286 von Intel eingeführt und ist wie dieser ein reiner 16-Bit-Modus. Dieser wird daher retronym meist mit ?16-Bit Protected Mode“ bezeichnet. Damit konnten maximal 16 MB physischer Hauptspeicher über 2 Tabellen mit jeweils 8.192 Segmenten zu je maximal 64 KB angesprochen werden. Damit steht ein theoretischer Speicherraum von 1 GB zur Verfügung. Der Zugriff auf diese Segmente erfolgt über sogenannte Segmentdeskriptortabellen, welche vom Betriebssystem angelegt und verwaltet werden. Es ist m?glich, mehr virtuelle Adressen anzusprechen, als physischer Arbeitsspeicher vorhanden ist. über eine virtuelle Speicherverwaltung k?nnen einzelne Segmente beispielsweise auf Festplatte ausgelagert werden und anschlie?end in der Deskriptortabelle als ?nicht vorhanden“ gekennzeichnet werden. Sobald ein Lese- oder Schreibzugriff auf so ein Segment erfolgt, l?st der Prozessor eine ?Segment not present“-Ausnahme aus, die vom Betriebssystem abgefangen wird, um das angeforderte Segment wieder zu laden und das Programm fortzusetzen.

Der 16-Bit-Protected-Mode wurde unter anderem von Concurrent DOS 286 (1985), FlexOS 286 (1986/1987), IBM 4680 OS (1986), OS/2 1.x (1987) und Windows 3.x im ?Standardmodus“ verwendet. Auf 32- und 64-Bit-Systemen hat der ursprüngliche Protected Mode keine Bedeutung mehr.

Deskriptortabellen

Bearbeiten

Es existieren drei Arten von Deskriptortabellen:

  • Global descriptor table (GDT) – diese ist für alle Tasks identisch
  • Local descriptor table (LDT) – jeder Task kann eine eigene LDT besitzen
  • Interrupt descriptor table (IDT) – wird beim Anspringen von Interrupt Service Routinen verwendet.

Die Deskriptortabellen liegen im Hauptspeicher und werden vom Betriebssystem verwaltet. In speziellen Registern wird ihre jeweilige (Basis-)Adresse gespeichert:

  • GDTR – speichert die physische Basisadresse der GDT (24 Bits)
  • IDTR – speichert die physische Basisadresse der IDT (24 Bits)
  • LDTR – ist ein (16-Bit-)Segmentselektor für das Segment, in dem die LDT liegt.
 
386er Segmentdeskriptor
(auf dem 286er sind die Bits 24…31 reserviert und müssen 0 sein)

Jede Deskriptortabelle enth?lt maximal 8.192 Eintr?ge, sogenannte Segmentdeskriptoren. Jeder Segmentdeskriptor beschreibt ein Speichersegment und enth?lt dafür folgende Felder:

  • die Segmentl?nge (segment limit – 1 Byte bis 64 KiB)
  • die Startadresse (base address – auf 1 Byte genau)
  • Segmenttyp (type und S: S=0 bedeutet Systemsegment, S=1 bedeutet Benutzersegment)
  • Descriptor Privilege level (dpl, wobei der Wert 0 die Stufe mit den h?chsten Rechten, 3 die Stufe mit den niedrigsten Rechten bedeutet)
  • Present – Nur Segmente, deren P-Bit im Deskriptor auf 1 gesetzt ist, sind im physischen Hauptspeicher vorhanden. Dies kann zum Auslagern von Speichersegmenten (?Swapping“) genutzt werden, da bei Zugriff auf Segmenten mit P-Bit = 0 vom Prozessor eine Ausnahme ausgel?st wird, die vom Betriebssystem abgefangen werden kann.

Der erste Eintrag (mit Index 0) der GDT ist als Nullselektor reserviert und darf auf keinen Speicherbereich verweisen.

Segmentselektoren

Bearbeiten
 
Aufbau eines Segmentselektors

Im Real Mode enthalten die Segmentregister direkt die Startadresse des Speichersegments (genauer: die obersten 16 Bits der 20-Bit-Real-Mode-Speicheradresse). Im Protected Mode dagegen enthalten die Segmentregister einen Verweis auf eine der beiden Deskriptortabellen (GDT oder LDT), in denen die Eigenschaften der Speichersegmente festgehalten sind.

Die Segmentselektoren sind 16 Bits gro? und haben den nebenstehenden Aufbau: Das Bit 2 (TI=table indicator) legt fest, auf welche der beiden Tabellen sich der Index (in den Bits 3…15) bezieht.

32-Bit Protected Mode

Bearbeiten

Mit dem 80386 wurde der Protected Mode von Intel auf 32 Bits erweitert, der über bisher ungenutzte Felder in den Deskriptortabellen den Zugriff auf bis zu 4 GiB physischer Hauptspeicher in 8.192 Segmenten zu je maximal 4 GiB erm?glicht. Durch Erweiterung der Paging-Einheit, bezeichnet mit englisch Physical Address Extension oder kurz ?PAE“, ist der maximal nutzbare Hauptspeicher im 32-Bit-Modus sogar bis theoretisch 4.096 TiB erweiterbar.

32-Bit-Software für die x86-Architektur IA-32 ist immer für den Protected Mode des ?i386“ oder neuer geschrieben, da es keinen anderen 32-Bit-Modus gibt.

Im Vergleich zum ursprünglichen 16-Bit-Protected-Mode weist der 32-Bit-Protected-Mode folgende Erweiterungen auf:

  • Segmentlimit – Es wurde auf 20 Bits erweitert, so dass ein Segment bis zu 1 MiB gro? sein kann. Um gr??ere Segmente zu unterstützen, ohne das L?ngenfeld noch gr??er zu machen, wurde ein zus?tzliches ?Granularit?tsbit“ (G) eingeführt. Ist dieses Bit gesetzt, wird die Segmentl?nge nicht mehr in Bytes, sondern in 4-KiB-Bl?cken interpretiert. Damit sind Segmentgr??en bis 4 GiB m?glich.
  • Startadresse – Sie wurde auf 32 Bits erweitert, so dass die Startadresse den gesamten physischen Adressraum abbilden kann.
  • Operandengr??e – Dieses Bit legt fest, ob ein Codesegment 16- oder 32-Bit-Code enth?lt, oder ob ein Stacksegment über den 16-Bit-Stackpointer SP oder den 32-Bit-Stackpointer ESP angesprochen werden soll.

Diese Erweiterungen beherrscht der 80386er und alle Nachfolgeprozessoren auch im 16-Bit-Protected-Mode, so dass 16-Bit-Programme, die die 32-Bit-Befehlserweiterungen IA-32 benutzen, den zus?tzlichen Speicher auch ansprechen k?nnen. Zus?tzlich bietet jeder 32-Bit-x86-Prozessor die M?glichkeit, Seitenverwaltung (Paging) zu aktivieren, welche der Segmentierung nachgeschaltet ist.

Der 32-Bit-Protected-Mode wird von allen 32-Bit-Betriebssystemen verwendet, beispielsweise:

64-Bit-Modus

Bearbeiten

Mit der Einführung der AMD64-Architektur in der K8-Prozessorgeneration von AMD, welche wenig sp?ter auch von Intel unter dem Namen EM64T (auch IA-32e) bzw. schlie?lich Intel 64 übernommen wurde, wurde ein neuer 64-Bit-Betriebsmodus bei x86-Prozessoren eingeführt, der sich von dem bisherigen Protected Mode grundlegend unterscheidet. Neben einigen anderen Modernisierungen der Prozessorarchitektur gibt es in diesem Modus de-facto keine Segmentation mehr (mit einer Ausnahme, siehe weiter im Text). Die Basisadresse der Segmente ist fest auf 0 gesetzt. Der Deskriptor für das Codesegment wird nur noch zur Ermittlung des Sub-Modus, der ?Default Operation Size“ und der Privilegienstufe des in diesem Segment ausgeführten Codes verwendet. Einzig die Segmentregister FS und GS k?nnen vom Ring 0 aus über spezielle Maschinenbefehle direkt (ohne auf Segmentdeskriptoren zuzugreifen) eine 64-Bit-Segmentbasisadresse erhalten.

Die Sub-Modi bei x64 werden ?Long Mode“ (64-Bit-Modus; bei Intel auch ?IA-32e Mode“) und ?Compatibility Mode“ (32-Bit) bezeichnet. Der 32-Bit-Kompatibilit?tsmodus erm?glicht die Ausführung von 32-Bit-Programmen unter einem 64-Bit-Betriebssystem.

Für Systemsegmente wurde das Format der Segmentdeskriptoren erweitert, so dass sie 64-bittige Basisadressen bzw. Offsets enthalten. Diese Deskriptoren belegen damit effektiv 2 Eintr?ge in den Deskriptortabellen.

Paging und Speicherauslagerung

Bearbeiten

Betriebssysteme für die x86-Architektur, wie zum Beispiel Windows, Linux, PC-BSD oder macOS, arbeiten im 32-Bit-Protected-Mode oder bieten, als 64-Bit-Betriebssysteme in dessen Nachfolger ?Long Mode“, mit dem ?Compatibility Mode“ essentiell ebenfalls einen 32-Bit-Protected-Mode. Dabei wird zur Realisierung des Speicherschutzes im Wesentlichen nur noch das Paging eingesetzt, w?hrend die Segmentierung nicht mehr benutzt wird. Mit diesem Mechanismus kann jedem Prozess in einem Betriebssystem ein eigener, von den anderen Prozessen getrennter virtueller Adressraum bereitgestellt werden. Gleichzeitig lassen sich dadurch aber auch die gemeinsame Speichernutzung zwischen Prozessen, Copy-On-Write-Mechanismen oder Speicherauslagerung sowie eine klare Trennung in Kernel- und Benutzeradressraum realisieren (Speicherschutz des Kernels vor Fehlern von Anwendungsprogrammen). Dieses Flat Memory Model ist allerdings nicht sicher vor Pufferüberl?ufen.

Siehe auch

Bearbeiten
Bearbeiten

Einzelnachweise

Bearbeiten
  1. Intel 64 and IA-32 Architectures Software Developer Manuals. Intel, Denver, Colorado Mai 2005, 3.2 Modes of Operation, S. 59 (Online).
  2. Robert Collins: Protected Mode Basics. (PDF) ftp.utcluj.ro, 2007, abgerufen am 31. Juli 2009.
绿色心情是什么意思 见字如面什么意思 六月初四是什么星座 酸根是什么 脚麻木是什么原因引起的
吃生南瓜子有什么好处 王八看绿豆是什么意思 珊瑚绒是什么面料 急得很什么 什么罩杯最大
e m s是什么快递 回族不吃什么肉 熊猫血是什么 狗狗发烧吃什么药 喝什么可以解酒
涤棉是什么材质 祛是什么意思 龟苓膏的原料是什么 姓陆的女孩取什么名字好 发烧吃什么食物比较好
内疚是什么意思hcv7jop9ns2r.cn 立牌坊是什么意思hcv8jop4ns5r.cn 妞字五行属什么adwl56.com 紫色属于五行属什么hcv8jop9ns3r.cn 建议随诊是什么意思hcv8jop6ns8r.cn
肝胆胰脾彩超查什么病hcv9jop4ns5r.cn 普外科是看什么病的hcv8jop3ns8r.cn 吃什么hcg翻倍快dayuxmw.com 女人男相有什么说法hcv9jop5ns2r.cn 精神萎靡是什么意思hcv8jop6ns1r.cn
包皮什么意思hcv7jop6ns1r.cn 丝瓜吃了有什么好处hcv8jop9ns8r.cn 大便少是什么原因hcv8jop1ns0r.cn 腰椎疼痛是什么原因hcv9jop4ns4r.cn 身体缺糖有什么症状hcv7jop6ns6r.cn
胃底腺息肉是什么意思hcv9jop4ns8r.cn 佝偻病是什么样子图片beikeqingting.com 14数字代表什么意思cj623037.com 2月16日什么星座hcv9jop1ns4r.cn 什么原因得疱疹hcv7jop9ns3r.cn
百度