ทุกระบบปฏิบัติการต้องการ RAM หรือไม่


76

มีระบบปฏิบัติการที่สามารถใช้งานได้โดยไม่ต้องใช้ RAM โดยเฉพาะอย่างยิ่งชนิดที่ฉันสามารถสร้าง pendrive ที่สามารถบู๊ตได้และใช้ในคอมพิวเตอร์ได้หรือไม่? สิ่งนี้น่าอึดอัดใจเนื่องจากการบู๊ตเป็นการโหลดระบบปฏิบัติการในแรมเป็นหลัก

หมายเหตุ:เดิมฉันต้องการทราบเกี่ยวกับระบบปฏิบัติการที่ใช้ RAM น้อยกว่าเพื่อตรวจสอบว่าแล็ปท็อปของฉัน (ซึ่งไม่บูต แต่นำเสนอหน้าจอว่างเปล่า) RAM ทำงานผิดพลาดหรือไม่ แต่ฉันชอบวิธีที่คำถามนี้มีหิมะขึ้น


23
ผมไม่แน่ใจว่าถ้า CPU สามารถแม้แต่จะฟังก์ชั่นที่ทุกคนโดยไม่ต้อง RAM ที่อาจจะเป็นคำถามที่ดีสำหรับคอมพิวเตอร์ Science.SE สิ่งที่ฉันรู้แน่ ๆ ก็คือคุณจะไม่ไปไหนถ้าคุณไม่สามารถจัดการผ่าน BIOS ได้

12
@ AndréDaniel CPU มีแคชซึ่งจากมุมมอง CS ก็เป็นหน่วยความจำเข้าถึงโดยสุ่ม ดังนั้นในทางทฤษฎีคุณไม่จำเป็นต้องโมดูล RAM เพิ่มเติม แต่ในทางปฏิบัติฉันสงสัยว่าสถาปัตยกรรม x86 อนุญาตสิ่งนี้
ฟิลิปป์

30
อาร์กิวเมนต์ทั้งหมดเกี่ยวกับการใช้แคชตัวประมวลผลมีความน่าสงสัยเนื่องจากอย่างน้อยใน x86 แคชไม่ใช่หน่วยความจำที่คุณสามารถเข้าถึงได้โดยตรง รหัสของคุณอ้างถึง RAM เสมอ แต่ตัวประมวลผลจะจัดการแคชโดยอัตโนมัติเพื่อให้ไม่ต้องดึงข้อมูลใน RAM สำหรับข้อมูลที่เข้าถึงบ่อยที่สุด แต่อีกครั้งไม่มีคำสั่งแอสเซมบลีที่จะพูดว่า "เก็บสิ่งนี้ไว้ในแคช" "เขียนสิ่งนี้ในแคช" มีการลงทะเบียนและมีหน่วยความจำหลัก
Matteo Italia

3
(OTOH ตามทฤษฎีแล้วคุณสามารถใช้ประโยชน์จาก RAM อื่น ๆ (เช่นวิดีโอ RAM) หรืออุปกรณ์ต่อพ่วงที่แมปในพื้นที่ที่อยู่ทางกายภาพ)
Matteo Italia

13
ซีพียู x86 รุ่นใหม่ให้คุณวางแคชแบบ on-ตายในโหมด "Cache as RAM" - ฉันคิดว่า MSR บางตัวจำเป็นต้องตั้งค่าให้ทำเช่นนั้น สิ่งนี้อาจใช้ได้กับซีพียู ARM บางตัวเช่นกัน แคชของ CPU ที่ทันสมัยมีปริมาณมากกว่าพีซีเครื่องแรกของคุณที่มีหน่วยความจำสูงสุด แม้ว่าในพีซีเฟิร์มแวร์จะยังไม่สามารถบู๊ตได้หากไม่มี RAM อยู่ คุณต้องการเฟิร์มแวร์ที่กำหนดเองหรือบางอย่างไม่ใช่แพลตฟอร์มพีซี
LawrenceC

คำตอบ:


96

ทุกระบบปฏิบัติการต้องการ RAM หรือไม่
สำหรับฮาร์ดแวร์ที่ใช้งานร่วมกับพีซี IBM ได้ขั้นตอนบังคับของกระบวนการ POST BIOSคือการตรวจสอบว่ามี RAM สำหรับโหลดไบออสหรือไม่ เป็นทางเลือกกระบวนการ POST ตรวจสอบการทำงานของ RAM ของคุณอย่างถูกต้อง หลังจากกระบวนการ POST BIOS โหลด bootloader ไปที่ RAM และให้การควบคุม bootloader ดังนั้นคำตอบสำหรับคำถามของคุณ ("ระบบปฏิบัติการทุกเครื่องจำเป็นต้องใช้ RAM หรือไม่") คือ: ใช่ฮาร์ดแวร์ที่ทำงานร่วมกันได้ของ IBM PC ทุกเครื่องต้องการ RAM ที่ใช้งานได้ในการบู๊ต สิ่งนี้เป็นจริงสำหรับ OS ใด ๆ ที่ทำงานบนฮาร์ดแวร์นั้น

โปรดทราบว่าในคำถามเดิมของ OP มีการอ้างอิงถึง "แล็ปท็อป" ซึ่งฉันตีความว่าเป็น: ฮาร์ดแวร์ที่เข้ากันได้กับ IBM PC สำหรับส่วนที่เหลือของคำตอบนี้ฉันจะถือว่าฮาร์ดแวร์ที่เข้ากันได้กับ IBM PC

ระบบปฏิบัติการสามารถบู๊ตพร้อม RAM ผิดพลาดได้หรือไม่?
ถ้า RAM ของคุณเป็นความผิดพลาด (และไม่ได้หายไปอย่างสิ้นเชิง / หัก) หรือถ้าคุณสามารถ (บางส่วน) แทนที่ RAM ของคุณคุณอาจจะสามารถบูตใช้BadRAMของBadMEMแพทช์เคอร์เนล มันต้องการให้คุณคอมไพล์เคอร์เนลอีกครั้ง (ฟังดูง่ายกว่าถ้าคุณทำมันเป็นครั้งแรก) และคุณสามารถรีบูตและบอกเคอร์เนลว่าหน่วยความจำไม่ดีของคุณอยู่ที่ไหน คำอธิบายที่ดีของการใช้งานของMemtest86 / Memtest86 + , BadRAM / BadMEM สามารถพบได้ที่นี่

ระบบปฏิบัติการสามารถบู๊ตโดยไม่มี RAM และใช้แคชของ CPU เป็น RAM ได้หรือไม่
เท่าที่ฉันรู้ไม่มีวิธีใช้แคชของ CPU เป็น RAM โดยไม่มี RAM ใด ๆ ในระบบของคุณ (ตามที่ @philipp และอื่น ๆ แนะนำ) ในความคิดเห็น หากมีมันจะเป็นการดีที่จะเพิ่มที่นี่ กระดาษเดียวที่ฉันสามารถค้นหาในหัวข้อนี้คือกระดาษนี้ที่ระบุ: "การใช้แคชของตัวประมวลผลเป็น RAM จนกว่า RAM จะเริ่มต้น" ไม่แน่ใจว่า (และวิธี) มันจะทำงานโดยไม่ต้อง RAM เท่าที่ฉันรู้ไม่มีรหัสทำงานที่บูทระบบปฏิบัติการบนพีซีที่ใช้งานร่วมกับ IBM ได้ การอ้างอิงใด ๆ ถึงหลักฐานแนวคิดแนวคิดรหัสการทำงานหรืออะไรก็ตามยินดีต้อนรับในความคิดเห็นและฉันจะเพิ่มไปยังคำตอบนี้

ฉันจะไปที่ BIOS ได้ไหม
คำถามของ OP นั้นค่อนข้างคลุมเครือถ้าแล็ปท็อปสามารถผ่าน BIOS POST ได้ @Tonny ชี้ให้เห็นว่าไม่มีระบบปฏิบัติการใดที่จะช่วยให้คุณ " เข้าสู่ BIOS " ได้ คุณป้อน BIOS โดยใช้F1หรือF2หรือF10หรือDELหรือESCขึ้นอยู่กับยี่ห้อของ BIOS

วิธีการกู้คืนข้อมูลจากแล็ปท็อปที่ไม่มี RAM
สำหรับเป้าหมายที่อยู่เบื้องหลังคำถามของคุณ: เหตุใดคุณจึงต้องเข้าถึงแล็ปท็อปของคุณ อาจเป็นเพราะยังมีข้อมูลบน HDD ที่คุณต้องการกู้คืนหรือไม่ หากเป็นเช่นนั้นการดึง HDD ออกมาง่ายกว่า (ดูคู่มือ) และต่อเข้ากับอุปกรณ์จัดเก็บข้อมูลภายนอกหรือต่อกับพีซีโดยตรง นี่คือคำแนะนำที่ดีในการทำเช่นนั้น


3
ในทางปฏิบัติมันเป็นไปได้ที่จะรันเครื่องที่มี RAM ค่อนข้างชำรุด (เช่นมีเพียงธนาคารเดียวที่ทำงานไม่ถูกต้อง) หาก BIOS ไม่สังเกตเห็น (หรือหากสังเกตเห็นอาจมีการแทนที่ F1 ตามปกติ) คุณยังสามารถเรียกใช้ระบบปฏิบัติการเช่น Linux ด้วยแพทช์ BadMEM / BadRAM ซึ่งจะสั่งให้เคอร์เนลเพื่อหลีกเลี่ยงการบล็อกหน่วยความจำที่ระบุ
Matteo Italia

5
@VusP: เพียงแค่ตรวจสอบ RAM ของคุณใช้ livecd / -usb พร้อม Memtest86 / Memtest86 + ข้ามการทดสอบ RAM ใน BIOS ของคุณและเรียกใช้ memtest จาก livecd / -usb
ตลอดไป

4
ใครบอกว่าการทดสอบ RAM ขณะบู๊ตเป็น " จำเป็น "? เป็นเรื่องปกติเมื่อเครื่องจักรมีขนาดไม่เกิน MB หรือน้อยกว่า แต่ในไม่ช้าก็กลายเป็นทางเลือกเมื่อขนาดเพิ่มขึ้นและเวลาก็กลายเป็นสิ่งต้องห้าม
Andrew Medico

3
@agtoever: อืม? เคล็ดลับ cache-as-RAM ไม่หยุดทำงานทันทีเมื่อ RAM ถูกเตรียมใช้งาน มันเป็นเพียงจุดนั้นเองที่โง่เขลาที่จะหลีกเลี่ยง RAM ดังนั้นจึงไม่มีใครพยายามทำ แต่เคล็ดลับไม่เกี่ยวข้องกับ RAM ที่ไม่ได้กำหนดค่าเริ่มต้น นั่นเป็นเพียงเมื่อมันมีประโยชน์จริง
Mehrdad

3
@ Hi-Angel ไม่สามารถเรียกใช้งานโดยตรงจากดิสก์เนื่องจาก cpu ไม่สามารถเข้าถึงเนื้อหาของดิสก์ได้โดยตรง มันจะต้องกระตุ้นคำสั่งไปยังตัวควบคุมดิสก์และรอให้มันทำการถ่ายโอนบล็อกข้อมูลจากดิสก์ไปยังที่อื่นในหน่วยความจำ cpu เท่านั้นที่สามารถรันคำสั่งได้จากตรงนั้น
psusi

33

เป็นไปได้ในทางทฤษฎีแต่จะช้ามากเนื่องจากต้องใช้ดิสก์สำหรับที่เก็บข้อมูลชั่วคราวใด ๆ ที่ไม่เหมาะกับแคชของ CPU (CPU มีแคชไม่กี่เมกะไบต์เพราะแม้แต่ RAM ช้าเกินไปลองคิดดูสิ) ดังนั้นคุณต้องมีระบบปฏิบัติการขนาดเล็ก

(ระบบที่ฝังอยู่บนชิปสามารถรันโค้ดจาก RAM หรือหน่วยความจำแฟลชภายใน - BIOS ของ PC สามารถทำได้เหมือนกัน แต่มันไม่สามารถทำงานได้ทั้งระบบปฏิบัติการ)

แต่สิ่งอื่นคือ BIOS ทำงานก่อนและนอกระบบปฏิบัติการใด ๆ ที่ติดตั้งไว้และเป็น BIOS ที่ให้คุณบูตจาก pendrive หรืออะไรก็ตาม ดังนั้นหากคุณไม่สามารถเข้าถึง BIOS ได้แสดงว่าไม่มี OS อื่นใดในโลกที่จะช่วยคุณได้


6
อาจเป็นได้ว่า CPU สามารถใช้แคชของตัวเองแทน RAM มันอาจเป็นคุณสมบัติที่มีประโยชน์สำหรับส่วนต่าง ๆ ของรหัส BIOS ซึ่งทำงานก่อนการทดสอบหน่วยความจำ แต่การใช้ฮาร์ดแวร์อื่นให้ทำงานโดยไม่มีแรมอาจเป็นเรื่องยุ่งยาก คุณจะไม่สามารถทำ DMA ดังนั้นดิสก์ I / O จะต้องทำแตกต่างกัน ฉันเดาว่า BIOS จะไม่พยายามโหลดระบบปฏิบัติการหากไม่พบ RAM ที่ใช้งานได้ ขนาดของแคชนั้นมีปัญหาน้อยกว่า ไม่กี่ MB อาจไม่มากตามมาตรฐานที่ทันสมัย ​​แต่ระบบปฏิบัติการจากสมัยนั้นเมื่อ RAM หนึ่ง MB มีจำนวนมากควรยังคงทำงานบนคอมพิวเตอร์ที่ทันสมัย
kasperd

2
@kasperd DEC อัลฟ่าได้รับการออกแบบมาเพื่อเรียกใช้ขั้นตอนแรกของการเปิดเครื่องเริ่มต้นจากแคชที่โหลดไว้จาก "ซีเรียล ROM" นี่เป็นเพราะ CPU ไม่สามารถเข้าถึง RAM, ROM ทั่วไปหรือทรัพยากรที่แมปหน่วยความจำอื่น ๆ (ซึ่งรวมถึงอุปกรณ์ I / O ทั้งหมด IIRC) จนกว่าตารางหน้าจะเริ่มต้นได้
zwol

@grawity แล้ว SSD ล่ะ?
TechLife

@TechLife: ยังช้ากว่า RAM หลายคำสั่งมากกว่าขนาด แม้ว่าฉันคิดว่าถ้าคุณจะใช้มันเป็น RAM ... มันก็จะเรียกว่า RAM ดังนั้นยังคงไม่
grawity

15

คุณสามารถออกแบบระบบที่ไม่มี RAM ได้ด้วยความพยายาม โหลดซอฟต์แวร์ของคุณจาก ROM (หรือที่เก็บข้อมูล) และทำทุกอย่างในรีจิสเตอร์หรือแคช ระบบดังกล่าวจะมีการใช้งานที่แคบเป็นพิเศษและการกำหนดราคา RAM ในวันนี้จะไม่มีจุดหมายสักหน่อย แล็ปท็อป off-the-shelf จะไม่ทำงานหากไม่มีหน่วยความจำออนบอร์ดบางตัว

คำถามที่แท้จริงของคุณมีแนวโน้มว่า "ฉันจะนำข้อมูลออกจากคอมพิวเตอร์ที่จะไม่บู๊ต" ได้อย่างไรและเป็นเรื่องง่าย ถอดแยกชิ้นส่วนถอดไดรฟ์และเชื่อมต่อเข้ากับเคสไดรฟ์ภายนอก

อย่างไรก็ตามโปรดทราบว่าคอมพิวเตอร์เครื่องเก่าที่เพียงพอที่คุณไม่สามารถรับ RAM มูลค่า 20 ดอลลาร์สำหรับการทำงานนั้นจะมีไดรฟ์ ATA (ปกติ ATA ไม่ใช่ SATA) อินเทอร์เฟซนี้เกือบจะสูญพันธุ์ในวันนี้ดังนั้นคุณจะต้องค้นหากล่องไดรฟ์ด้วยการ์ด ATA รวมถึงอะแดปเตอร์ขนาดเต็มถึงแล็ปท็อป ฉันมีหนึ่งที่ฉันซื้อในปี 2000 และฉันเก็บกรณีเก่า ๆ สองสามรอบเพื่อจุดประสงค์นี้เท่านั้น


ตกลง ไม่มี RAM หมายถึงไม่มีสแต็กซึ่งหมายถึงความสามารถในการเรียกรูทีน รหัสใด ๆ ที่สามารถทำงานได้ในสถานการณ์นี้จะต้องมีการประกอบอย่างระมัดระวัง
Loren Pechtel

จริง ฉันได้เห็นรหัสซึ่งทำอย่างนั้น (ฉันเป็นส่วนแรกของชุดคำสั่ง BIOS ก่อนที่จะเริ่มต้นตัวควบคุมหน่วยความจำ)
Hennes

2
@ LorenPechtel นั่นไม่จริงเลย สแต็กสามารถ (และบ่อยครั้ง) เก็บไว้ในหน่วยความจำบนชิป
reirab

2
@ LorenPechtel ไม่จำเป็น ARM ไม่ได้ใช้ stack เพื่อเรียกรูทีน
domen

1
เท่าที่ฉันเห็นชิปเหล่านั้นมี SRAM ภายใน ... ซึ่งนับเป็น RAM
domen

10

ถ้าฉันอ่านคำถามให้ถูกต้องทุกคนที่นี่เห่าต้นไม้ผิด

เขาระบุอย่างชัดเจนว่า "เพื่อไปที่ไบออส"

หากแล็ปท็อปเสียจนไม่สามารถเข้าไบออสได้สิ่งอื่นก็ไม่มีประโยชน์

คุณไม่สามารถบูตระบบปฏิบัติการใด ๆ ในเรื่องนี้โดยไม่คำนึงถึงสถานการณ์ RAM


8

การสันนิษฐานของคุณว่าหน่วยความจำไม่ดีอาจไม่ถูกต้อง หากคุณไม่ได้รับเสียงบี๊บหรือข้อความบนหน้าจอสาเหตุที่แท้จริงคือ CPU ที่ล้มเหลว (ไม่น่าจะเกิดขึ้น) หรือเมนบอร์ดที่ล้มเหลว แผงวงจรหลักล้มเหลวตามอายุตลอดเวลาเนื่องจากข้อต่อที่เย็นจัดซึ่งเป็นเหตุการณ์ที่พบได้ทั่วไปในยุคแรก ๆ ของการเคลื่อนไหวตามมาตรฐาน RoHS และความต้องการที่จะใช้การบัดกรีแบบไร้สารตะกั่ว เทคนิคการผลิตได้รับการปรับให้เหมาะสมสำหรับการใช้บัดกรีแบบใช้ตะกั่วและอุตสาหกรรมใช้เวลาสักครู่ในการติดตามและแก้ไขปัญหา ผู้ผลิตส่วนประกอบหลายรายไม่เต็มใจที่จะใช้จ่ายเงินเพื่ออัพเกรดกระบวนการของพวกเขา ท้ายที่สุดอุปกรณ์จะทดสอบและเบิร์นด้วยดีเพียงเพื่อล้มเหลวหลายเดือนหรือหลายปีต่อมาหลังจากการรับประกันใด ๆ อาจหมดอายุ ผู้ผลิตเริ่มที่จะปรับปรุงสิ่งต่าง ๆ เท่านั้นด้วยความล้มเหลวที่เพิ่มขึ้นและการตอบรับเชิงลบที่รุนแรงจากผู้ใช้ ในแล็ปท็อปที่มีเมนบอร์ดให้ไหลไปแก้ไขข้อต่อบัดกรีเย็นเป็นค่าใช้จ่ายที่แน่นอน


เป็นไปได้ แต่ความจำที่แย่ก็ไม่ได้เป็นการเดาที่แย่ ฉันเคยเห็นหน่วยความจำไม่ดี (และซ็อกเก็ตหน่วยความจำไม่ดี) ทำให้เกิดความล้มเหลวในการโพสต์หลายครั้งก่อน แน่นอนว่าการตรวจสอบหน่วยความจำที่ง่ายที่สุดมักจะเป็นเพียงการลองบูทโดยนำแท่งที่แตกต่างกันออกหรือการบูทด้วยก้านควบคุมที่รู้จักดีเพียงอันเดียว หากวิธีนี้แก้ไขปัญหาได้แสดงว่าเป็นหน่วยความจำสล็อตหน่วยความจำหรือคอนโทรลเลอร์หน่วยความจำ
reirab

5

คอมพิวเตอร์ส่วนใหญ่ในช่วงต้นของปี 1980 หรือประมาณนั้นมีประเภทของระบบปฏิบัติการ (ไดรเวอร์ฮาร์ดแวร์, การสนับสนุน IO, การโหลดโปรแกรม, อินเตอร์เฟสบรรทัดคำสั่งที่ง่ายมากและอื่น ๆ ) ในชิป ROM มันสามารถทำงานได้แม้ในขณะที่ชิปแรมไม่สามารถใช้งานได้ คุณสมบัตินี้ใช้ในเนื้อหา ROM รุ่นพิเศษที่ออกแบบมาสำหรับการทดสอบฮาร์ดแวร์และสื่อสารส่วนใหญ่ผ่านเสียงบี๊บและไฟคีย์บอร์ด

CPU มีหลายรีจิสเตอร์เพื่อจดจำแอดเดรสของคำสั่งที่ถูกเรียกใช้งานอย่างน้อยที่สุด แต่โดยปกติจะไม่เรียกว่า RAM

รหัส C ปกติไม่สามารถทำงานในระบบที่ไม่มี RAM เนื่องจากใช้หน่วยความจำสแต็กเพื่อจัดสรรตัวแปรและสแต็กอยู่ใน RAM เมื่อเริ่มระบบคอมพิวเตอร์ล่าสุด RAM แบบไดนามิกปกติไม่พร้อมใช้งานในขณะที่อุปกรณ์การรีเฟรช RAM ต้องการการตั้งค่าเริ่มต้นเพื่อให้ทำงานได้ รหัสแอสเซมบลีเรียกใช้ก่อนและทำการเริ่มต้นเมนบอร์ด RAM เริ่มทำงานแล้วรหัส C สามารถเรียกใช้ได้


4
ย่อหน้าสุดท้ายไม่เป็นความจริงทั้งหมด สแต็กไม่จำเป็นต้องอยู่ใน RAM นอกชิป เป็นเรื่องปกติที่สแต็คจะอยู่ในหน่วยความจำบนชิป แม้ในเครื่องปกติสแต็กของเธรดที่กำลังเรียกใช้งานในปัจจุบันมักจะอยู่ในแคชและจะถูกส่งออกไปยัง DRAM เมื่อตัวกำหนดตารางเวลาสลับเธรดเท่านั้น ฉันเขียนโค้ดสำหรับ DSP แต่ที่สแต็กอาศัยอยู่ในหน่วยความจำบนชิปที่อยู่โดยตรงและไม่เคยสัมผัส DRAM แน่นอนฉันคิดว่าคุณสามารถยืนยันได้ว่าหน่วยความจำบนชิปเป็นเทคนิคแรมในกรณีนี้
reirab

4
นอกจากนี้ยังเป็นเรื่องปกติที่พารามิเตอร์บางตัวและค่าส่งคืนจะถูกส่งผ่านไปยังฟังก์ชัน C โดยใช้รีจิสเตอร์ (แทนที่จะเป็นสแต็ก) นอกจากนี้ตัวแปรโลคัลยังถูกเก็บไว้ในรีจิสเตอร์มากกว่าคอมไพล์โดย C คุณสามารถขอให้คอมไพเลอร์ใส่ตัวแปรเฉพาะลงในทะเบียนโดยใช้คีย์เวิร์ด 'register' แน่นอนว่าเมื่อฟังก์ชั่นต้องการตัวแปรท้องถิ่นมากกว่าที่คุณมีพื้นที่ลงทะเบียนคุณจะต้องออกไปที่หน่วยความจำ แต่นั่นเป็นข้อ จำกัด ของฮาร์ดแวร์ที่ใช้โดยไม่คำนึงถึงภาษาการเขียนโปรแกรม
reirab

4

เมื่อฉันไปมหาวิทยาลัยในปี 1967 กรมคอมพิวเตอร์มีStantec ม้าลาย หน่วยความจำประกอบด้วยกลองแม่เหล็ก 8192 คำ นอกจากนี้ยังมีรีจิสเตอร์ 12 ตัวและตัวสะสมสองตัว คุณอาจพิจารณาว่า RAM นั้น แต่ไม่ใช่อย่างที่เรารู้


3

คุณจะต้องมีชิปแคชอย่างน้อยสำหรับการลงทะเบียน (โดยพื้นฐานแล้วมีจำนวนหน่วยความจำบนชิปน้อยมาก) เพื่อให้หน่วยการทำงานของ CPU สามารถทำงานได้ ดังนั้นแม้แต่ CPU ของคุณก็มี 'RAM'

No Von-Neumann OS ได้รับการออกแบบโดยไม่ต้องใช้หน่วยความจำที่ฉันเชื่อ

ไม่เลย


3

ตามที่คนอื่น ๆ ทั้งหมดที่นี่ฉันเห็นด้วยกับความจริงที่ว่าคุณต้องการ RAM และไม่สามารถทำงานได้หากไม่มี แต่ฉันอ่านต่อไปนี้ด้วย:

(ตอนแรกฉันต้องการโหลดระบบปฏิบัติการที่ไม่มี RAM เพื่อตรวจสอบว่า RAM ทำงานผิดปกติหรือไม่ แต่ฉันชอบวิธีที่สโนว์บอลคำถามนี้มีอยู่)

สิ่งนี้มีอยู่จริงใน BIOS มีฟังก์ชั่นเพื่อตรวจสอบ RAM ในเชิงลึก เมื่อทำการบูทและเข้าไปใน BIOS ให้เปลี่ยนตัวเลือก "Quick Power-on self test" เป็น off และจะต้องทำ check pass ที่สมบูรณ์บน RAM ของคุณ ตัวเลือกนี้ควรอยู่ใน "คุณสมบัติ BIOS ขั้นสูง" เหมือนกับตัวเลือกที่สองใน AMI BIOSes

หวังว่าจะทำให้คุณก้าวไปอีกขั้น ;-)


3

คุณไม่จำเป็นต้อง RAM เช่นใช้เครื่องทัวริง

เครื่องทัวริงเป็นอุปกรณ์สมมุติที่จัดการสัญลักษณ์บนแถบเทปตามตารางของกฎ แม้จะมีความเรียบง่ายเครื่องทัวริงสามารถปรับให้เข้ากับการจำลองตรรกะของอัลกอริทึมคอมพิวเตอร์ใด ๆ และมีประโยชน์อย่างยิ่งในการอธิบายการทำงานของ CPU ภายในคอมพิวเตอร์

(ฉันจะไม่พิจารณาเทปให้เป็น RAM)

ตอนนี้คำถามที่แท้จริงของคุณควรจะถามเกี่ยวกับ“ประโยชน์” และกำหนดสิ่งที่คุณหมายถึง“ประโยชน์”


3
ในระดับแนวคิดของเครื่องทัวริงการจัดเก็บข้อมูลแบบอ่าน - เขียนทุกประเภทนั้นเทียบเท่ากัน: RAM, รีจิสเตอร์, แคช, เทปแม่เหล็ก, ดิสก์ ข้อแตกต่างระหว่างพวกเขาคือความเร็วในการเข้าถึง
Barmar

1
@Barmar RAM หมายถึง Random Access Memory นั่นหมายความว่าคุณสามารถเข้าถึงเซลล์ที่อยู่ในลำดับใด ๆ เซลล์บนเทปบนเครื่องทัวริงสามารถเข้าถึงได้ตามลำดับเท่านั้น (ในทิศทางหรือสลับ) ดังนั้นฉันจะบอกว่าเทปบนเครื่องทัวริงโดยนิยามไม่แรม
kasperd

1
@Barmar นั่นไม่ถูกต้อง คำจำกัดความของ RAM ไม่อนุญาตให้ค้นหาเวลา ดังนั้นเทปของ TM นั้นไม่ตรงกับคำจำกัดความของ RAM เพราะคุณไม่สามารถเข้าถึงเซลล์ใด ๆ โดยไม่ต้องค้นหา
kasperd

1
@ บาร์มาร์ความคิดของเวลานาฬิกาแขวนอาจใช้ไม่ได้ แต่ความคิดของเวลาตามที่มันต้องใช้การดำเนินการอ่าน O (n) เพื่อไปที่นั่นอย่างแน่นอน
psusi

1
@Barar ไม่คุณทำไม่ได้ นั่นคือเหตุผลที่เราใช้สัญกรณ์ "O" ขนาดใหญ่เพื่อพูดคุยเกี่ยวกับความซับซ้อนทางคณิตศาสตร์อย่างหมดจดที่ไม่เกี่ยวข้องกับสิ่งที่ "เวลา" จริงอาจใช้เวลาเท่าไหร่ แบบจำลองทางคณิตศาสตร์ของเทปไดร์ฟใน TM นี้เป็นแบบที่มันสามารถอ่านได้ ... ในทิศทางใดทิศทางหนึ่ง ... ไม่ซูมไปข้างหน้าหรือข้างหลังในเวลาใดก็ได้ ดังนั้นหากคุณอ่านไบต์ 1 ครั้งสุดท้ายคุณจะไม่สามารถอ่านไบต์ 27 ได้โดยไม่ต้องอ่านไบต์ที่ 26 ก่อน นั่นคือเหตุผลที่มันไม่ใช่แกะ หากคุณต้องการหน่วยความจำที่สามารถข้าม 26 ไบต์ได้ไม่ว่าจะใช้เวลา 0 หรือ 5 นาทีนั่นก็คือ ram ไม่ใช่เทป
psusi

3

มีระบบปฏิบัติการพิเศษสำหรับการใช้งานแบบฝังที่หมด ROM (อ่านหน่วยความจำเท่านั้น) เพื่อทำสิ่งที่มีประโยชน์แม้ว่าคุณจะยังคงต้องการ RAM อย่างน้อยจำนวนเล็กน้อย ฉันไม่เห็นพีซีที่จะบู๊ตโดยไม่มี RAM

สำหรับคำถามดั้งเดิมเกี่ยวกับการทดสอบหน่วยความจำหากคอมพิวเตอร์จะโพสต์ (เช่นทำให้ผ่านการทดสอบการเปิดเครื่องด้วยตนเองและพยายามบูต) Memtest86 ได้รับการออกแบบมาโดยเฉพาะเพื่อทดสอบ RAM ของคุณ มันทดสอบ RAM ขนาด 64KB แรกโหลดตัวเองลงใน RAM นั้นจากนั้นทดสอบหน่วยความจำระบบที่เหลือของคุณตามที่คุณต้องการ หน่วยความจำ "Flakey" (ตรงข้ามกับหน่วยความจำไม่ดีธรรมดา) เป็นเรื่องแปลก แต่ฉันได้เห็น Memtest86 จับบิตที่ไม่ดีเป็นระยะ ๆ ซึ่งการทดสอบหน่วยความจำของคอมพิวเตอร์พลาด (หลังจากทั้งหมดการทดสอบหน่วยความจำ POST นั้นหมายถึง ในขณะที่การทดสอบที่เร็วที่สุดของ memtest86 ใช้เวลา 5-10 นาทีกับการทดสอบที่ครอบคลุมมากขึ้นใช้เวลาหลายชั่วโมง)


1

ใช่คุณสามารถมีคอมพิวเตอร์โดยไม่มี RAM มีโหมดพิเศษในโปรเซสเซอร์ x86 ส่วนใหญ่ที่อนุญาตให้เรียกใช้ด้วยแคชเท่านั้น หากคุณตรวจสอบ coreboot (linuxbios เดิม) ก็สามารถทำได้ มันเรียกว่า cache-as-ram จริงๆแล้วคุณสามารถทำระบบปฏิบัติการทั้งหมดได้ตามนี้และด้วยแคชขนาดใหญ่ที่ทันสมัยมันอาจจะจบลงด้วยการมี gui (ตรวจสอบเมนู) แต่ยังไม่มีใครทำ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.