ระบบปฏิบัติการมีลักษณะเป็นอย่างไรโดยไม่มีเชลล์?


41

เชลล์เช่นทุบตีหรือคอมมิชชัน (สูงสุด Windows ME) หรือ CMD.EXE (ในรุ่นที่ใหม่กว่า) ให้อินเทอร์เฟซที่ (เหนือสิ่งอื่นใด) ยอมรับคำสั่งจากผู้ใช้ ระบบปฏิบัติการมีลักษณะอย่างไรก่อนที่เชลล์จะรัน? ระบบใช้งานอย่างไรก่อนที่เชลล์แรกจะถูกพัฒนา (เช่น UNIX ในต้นปี 1970) หากคอมพิวเตอร์ไม่สามารถยอมรับคำสั่ง (ไม่มีบรรทัดคำสั่ง) ผู้ใช้จะโต้ตอบกับมันได้อย่างไร อินเทอร์เฟซพื้นฐานที่สุดนี้คืออะไร ฉันสามารถรันอินเตอร์เฟสนี้ในเทอร์มินัลอีมูเลเตอร์หรือไม่มีวิธีใดที่อยู่เบื้องหลังเชลล์?


2
(นอกเหนือจากกัน: คำว่าเชลล์ไม่ได้ใช้กับเชลล์บรรทัดคำสั่งเท่านั้น)
Arjan

2
@Ramhound แน่นอนว่าคุณสามารถโต้ตอบกับระบบโดยไม่มีบรรทัดคำสั่ง เราสามารถโต้แย้งข้อดีของการออกแบบ UI ที่หลากหลายได้ตลอดทั้งสัปดาห์ แต่แน่นอนว่ามันเป็นไปได้ที่จะโต้ตอบกับทั้ง Mac OS คลาสสิคและ Altair ทั้งๆที่ไม่มีบรรทัดคำสั่งออกมา
CVn

4
อินเทอร์เฟซพื้นฐานที่สุดน่าจะเป็นแผงสวิตช์เหมือนกับใน PDP11 / 04 และอื่น ๆ
Tog

1
อันนี้ดูเหมือนหมากรุกraspberrypi.org/archives/4300
Nico Burns

1
ดูเหมือนต้นไม้ที่ตกลงมาในป่าโดยที่ไม่มีใครเห็น
ธานเฮย์ฟิลด์

คำตอบ:


35

ระบบปฏิบัติการมีลักษณะอย่างไรก่อนที่เชลล์จะรัน?

ขึ้นอยู่กับระบบปฏิบัติการและวิธีการกำหนดค่า Linux สามารถกำหนดค่าให้เขียนข้อความบูตไปยังอุปกรณ์คอนโซลได้ไม่ว่าจะเป็นคอนโซลโหมดข้อความคอนโซลเฟรมบ็อกเซอร์หรือพอร์ตอนุกรม นอกจากนี้ยังสามารถกำหนดค่าให้เงียบอย่างสมบูรณ์แบบ ระบบปฏิบัติการ / ระบบบางระบบอาจเขียนข้อมูลการวินิจฉัยไปยังหน่วยความจำที่ไม่ลบเลือนซึ่งสามารถเข้าถึงได้โดยการทำให้ระบบอยู่ในโหมดผู้พัฒนาดีบักหรือการวินิจฉัย ระบบปฏิบัติการหลายระบบรองรับการแสดงผลการบูตและข้อมูลการวินิจฉัยในรูปแบบของ UART ซึ่งอาจมีอยู่ในหน่วยแม้ว่าจะซ่อนจากผู้ใช้ (google "เพิ่มพอร์ตอนุกรมไปยัง DD-WRT") สำหรับตัวอย่างที่ผู้ผลิตซ่อนพอร์ตอนุกรมและวิธีการ คุณสามารถรับพวกเขา)

ระบบปฏิบัติการไม่จำเป็นต้องมีจอแสดงผลภายนอกเลย - เป็นเพียงอุปกรณ์อีกตัวสำหรับระบบปฏิบัติการ

ระบบใช้งานอย่างไรก่อนที่เชลล์แรกจะถูกพัฒนา (เช่น UNIX ในต้นปี 1970)

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

หากคอมพิวเตอร์ไม่สามารถยอมรับคำสั่ง (ไม่มีบรรทัดคำสั่ง) ผู้ใช้จะโต้ตอบกับมันได้อย่างไร

ฉันไม่มีความเชี่ยวชาญในด้านนี้ แต่คอมพิวเตอร์เก่า ๆ เช่น Altair, IMSAI และ PDP-8 และมีสวิตช์ด้านหน้าที่ควบคุมซีพียูโดยตรงและสามารถอ่านและเขียนหน่วยความจำได้โดยตรงโดยไม่ต้องแทรกแซงซีพียู

อินเทอร์เฟซพื้นฐานที่สุดนี้คืออะไร

ฉันเชื่อว่าส่วนใหญ่หากไม่ใช่ซีพียูที่ทันสมัยทั้งหมดจะมี "พอร์ต JTAG" ซึ่งอนุญาตการทำงานโดยตรงประเภทเดียวกัน พึงระลึกว่าคอมพิวเตอร์เป็นเวลานานที่คาดว่าจะมี ROM หรือเฟิร์มแวร์ที่ควบคุมระบบเมื่อเปิดเครื่องก่อนที่จะส่งไปยังระบบปฏิบัติการ ที่นี่ยูทิลิตีการบู๊ตก่อนบู๊ตสามารถมีอยู่ได้หรือมีกลไกขั้นต่ำสำหรับการโหลดยูทิลิตีดังกล่าว bootloaders บางตัวเช่น U-Boot สามารถเข้าถึงได้ผ่านพอร์ตอนุกรม Bootloaders ไม่ทำงาน "หลัง" ระบบปฏิบัติการพวกเขาโหลดระบบปฏิบัติการควบคุมด้วยมือแล้วไม่ทำงานอีกต่อไป

ฉันสามารถรันอินเตอร์เฟสนี้ในเทอร์มินัลอีมูเลเตอร์หรือไม่มีวิธีใดที่อยู่เบื้องหลังเชลล์?

ไม่ได้คุณต้องมีอินเตอร์เฟส JTAG นั่นคือการดำน้ำเข้าไปในดินแดนของอิเล็กทรอนิกส์และฉันยอมรับว่าฉันไม่รู้อะไรมากเกี่ยวกับเรื่องนี้ยกเว้นว่าGuruPlugของฉันมาพร้อมกับหนึ่งและฉันสามารถตั้งโปรแกรมแฟลชชิพบนกระดานของ GuruPlug ได้โดยตรง - หมายความว่ามีบางอย่างฆ่า bootloader บน GuruPlug ฉันมีวิธี "CPU อิสระ" ในการกระพริบกลับ


4
อินเทอร์เฟซ JTAG อนุญาตให้ (ด้วยความช่วยเหลือของคอนโทรลเลอร์เฉพาะ) เข้าถึงอินเทอร์เฟซการทดสอบของส่วนประกอบทั้งหมดผ่านโหมดการทำงานปกติ คุณสามารถตั้งโปรแกรมหน่วยความจำควบคุมอินพุต / เอาต์พุตเริ่ม / หยุด CPU หรืออ่านรีจิสเตอร์ภายใน
Chaos_99

23

ระบบปฏิบัติการไม่จำเป็นต้องจัดเตรียมเชลล์เนื่องจากเป็นคำที่ใช้กันทั่วไปในปัจจุบัน (หมายถึงแอปพลิเคชันที่จะยอมรับคำสั่งแบบโต้ตอบจากผู้ใช้) แต่ระบบปฏิบัติการดังกล่าวจะไม่ "มีลักษณะเหมือน" ทุกอย่าง ผู้ใช้งาน ดังที่ Oliver Salzburg กล่าวถึงมันอาจเป็นเพียงแค่แสดงหน้าจอว่างเปล่า (หากมีการแสดงผลรองรับการแสดงผลเลย) แม้ว่าจะไม่มีเหตุผลก็ตาม ใช้ตัวอย่างเอาต์พุตการวินิจฉัยของเคอร์เนล Linux ระหว่างกระบวนการบูตและเคอร์เนล

เชลล์, ไม่ว่าจะเป็นเชลล์กราฟิก, ตัวแปลบรรทัดคำสั่งหรืออย่างอื่น, ใช้เครื่องมือที่ระบบปฏิบัติการจัดเตรียมไว้ให้เพื่อทำสิ่งต่าง ๆ เช่นคำสั่งการอ่าน, กระบวนการเริ่มต้น, การเปลี่ยนเส้นทาง I / O และอื่น ๆ

แต่มีเหตุผลว่าทำไมแอพลิเคชันที่ใช้สิ่งอำนวยความสะดวกเหล่านั้นมีจะเป็นเปลือก

ในสมัยก่อนระบบปฏิบัติการเป็นเพียงชุดของ "กิจวัตรที่มีประโยชน์" ที่แต่ละโปรแกรมจะต้องเขียนใหม่ตั้งแต่ต้นและคอมพิวเตอร์เป็นอุปกรณ์ประมวลผลแบบกลุ่ม สิ่งต่าง ๆ เช่นไฟล์ดิสก์และเครื่องพิมพ์ I / O อาจเป็นสิ่งแรกที่ถูกรวบรวมไว้ในสิ่งที่เรียกว่าระบบปฏิบัติการตามด้วยการจัดตารางกระบวนการ (มันน่าสังเกตว่าApollo Guidance Computerในช่วงต้นทศวรรษ 1960 เป็นคอมพิวเตอร์แบบมัลติทาสก์) แอปพลิเคชันสามารถโทรไปยังระบบปฏิบัติการแทนการใช้งานประจำของตัวเองเพื่อทำสิ่งต่าง ๆ ซึ่งลดความซับซ้อนของการเขียนโปรแกรมและอาจช่วยลดขนาดรหัสหรือเวลาดำเนินการ (เพราะสิ่งอำนวยความสะดวกของระบบเหล่านั้น . เมื่อคอมพิวเตอร์เริ่มแพร่หลายมากขึ้นระบบปฏิบัติการจึงเพิ่มฟีเจอร์ที่ผู้ใช้เป็นศูนย์กลางเช่นวิธีที่ผู้ใช้โต้ตอบกับคอมพิวเตอร์และให้คำสั่งในรูปแบบอินเทอร์แอคทีฟ เชลล์กราฟิกเป็นเพียงส่วนขยายของบรรทัดการให้เหตุผล

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


4
วันนี้เป็นเรื่องธรรมดามากที่จะเขียนโปรแกรมที่ทำงานบนโลหะเปลือยโดยไม่ต้องใช้ระบบปฏิบัติการ - อาจเป็นเรื่องปกติมากกว่าที่เคยเป็นมา ทุกวันนี้ทุกอย่างที่มีอิเล็กทรอนิคส์มีไมโครคอนโทรลเลอร์ ระบบฝังตัวเหล่านี้บางอย่างเช่นรถยนต์หรือเราเตอร์มีระบบปฏิบัติการ แต่สิ่งง่าย ๆ เช่นเทอร์โมสแตทเครื่องซักผ้า ฯลฯ โดยทั่วไปจะไม่มี
Jeanne Pindar

1
@JeannePindar จุดดี; ฉันชี้แจงว่าฉันหมายถึงในบริบทของคอมพิวเตอร์ส่วนบุคคล
CVn

11

คอมพิวเตอร์ยุคแรก ๆ ไม่มีระบบปฏิบัติการในแง่ที่เราใช้คำว่าวันนี้ พวกเขาแสดงฟังก์ชั่นการใช้งานในฮาร์ดแวร์โดยตรงกับโปรแกรมใด ๆ ที่ทำงานบนมัน มีเพียงหนึ่งโปรแกรมที่ทำงานกับโปรแกรมเหล่านั้นในเวลาเดียวกัน ตัวโปรแกรมเองต้องควบคุมงานทั้งหมดไม่มีการทำ 'เบื้องหลัง' โดยระบบปฏิบัติการ

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

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

คุณอาจต้องการตรวจสอบหน้าวิกิพีเดียที่ดีงามเกี่ยวกับประวัติความเป็นมาของการคำนวณแม้ว่ามันจะไม่ได้มุ่งเน้นไปที่มุมมองอินพุต / เอาต์พุต


6

มันอาจจะเป็นหน้าจอที่ว่างเปล่า

เปลือกอาจจะเป็นชื่อเปลือกเพราะมันเป็นเปลือกรอบเคอร์เนล (เคอร์เนลเป็นระบบปฏิบัติการ) ดังนั้นในแง่หนึ่งมันคือส่วนต่อประสานผู้ใช้สำหรับระบบปฏิบัติการไม่ว่าจะเป็นส่วนต่อประสานใดก็ตาม

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


2

จากมุมมองทางประวัติศาสตร์ฉันจะเดาว่ามีบัตร Punched ( https://en.wikipedia.org/wiki/Punched_card ) เพื่อโต้ตอบกับระบบคอมพิวเตอร์ แต่ฉันเดาว่านี่คือคำถามของคุณ


การ์ดที่ถูกเจาะคือ (คือ) กลไกการจัดเก็บข้อมูลไม่ใช่ส่วนที่มองเห็นได้ของระบบปฏิบัติการ
CVn

2

ระบบปฏิบัติการแรกที่ฉันใช้ (1981) หลังเลิกเรียนก็คือ PRIMOS ในมินิคอมพิวเตอร์ขนาดใหญ่ นี่เป็นระบบปฏิบัติการแบ่งปันเวลาและรองรับผู้ใช้จำนวนมากแต่ละคนใช้เทอร์มินัลที่เชื่อมต่อกับคอมพิวเตอร์ผ่านสายเคเบิล RS232 คุณต้องเข้าสู่ระบบโดยใช้ชื่อผู้ใช้และรหัสผ่าน เซสชันเทอร์มินัลของคุณเป็นเปลือกแปลก ๆ คุณสามารถแก้ไขไฟล์คอมไพล์รันทุกสิ่งที่เราทำทุกวันนี้ เทอร์มินัลทั้งหมดสามารถเข้าถึงระบบการจัดเก็บไฟล์เดียวกันได้ เทอร์มินัลส่วนใหญ่ไม่เกินเครื่องพิมพ์ดีด - ไม่มีบรรณาธิการของ WYSISWYG แม้แต่ emacs ก็เป็นความฝัน

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

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

คอมพิวเตอร์ทุกวันนี้มีลำดับที่คล้ายกันดังนั้นเมื่อคุณเปิดเครื่องมันจะโหลด BIOS ซึ่งจะเริ่มดิสก์การ์ดเครือข่ายการ์ดวิดีโอและอื่น ๆ จากนั้น BIOS จะค้นหาโปรแกรมเฉพาะบนฮาร์ดดิสก์และเรียกใช้งานนั้น (บน Windows อย่างน้อย). Unix ทำสิ่งที่คล้ายกันโดยตั้งค่าเคอร์เนลอย่างต่อเนื่องโดยเริ่มจากโมดูลพื้นฐานและสร้างมันจนกว่ามันจะได้รับพร้อมต์ล็อกอิน


1

ระบบปฏิบัติการตามคำนิยามค่อนข้างคลุมเครือ มันเป็นเคอร์เนลหรือไม่? มันเป็นเคอร์เนลและเครื่องมือที่มาพร้อมกันหรือไม่ Linux เป็นเคอร์เนล แต่ GNU / Linux เป็นระบบปฏิบัติการที่ใช้เคอร์เนล Linux และเครื่องมือโครงการ GNU เชลล์เป็นส่วนสำคัญของระบบปฏิบัติการดังกล่าว

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

kernel /boot/vmlinuz-2.6.30 root=/dev/sda1 ro init=/bin/fancy

จากนั้นโปรแกรม/bin/fancyจะพิมพ์ "Hello world!" เราไม่ต้องการเปลือกสำหรับสิ่งนั้น หากคุณต้องการเริ่มโปรแกรมอื่นเพียงแค่วางกระบวนการใหม่โดยman 2 forkและman 2 execveหรืออ่านจากอุปกรณ์ปลายทางและยอมรับอินพุตของผู้ใช้ ยังไม่จำเป็นต้องใช้เปลือก

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

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


1

ระบบปฏิบัติการที่ไม่มีเชลล์บรรทัดคำสั่งหรืออินเตอร์เฟสแบบกราฟิกมี "ใบหน้า" ประเภทอื่น ๆ อีกมากมาย

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

นี่เป็นสูตรในระดับสูงของวิธีการในฐานะมือสมัครเล่นคุณสามารถสร้างคอมพิวเตอร์ที่มีประโยชน์โดยไม่ต้องใช้เปลือกใน:

  • สร้างแผงวงจรสำหรับไมโครคอนโทรลเลอร์หรือรับบอร์ดทั่วไป
  • ขอเกี่ยวเพื่อขับอุปกรณ์ที่มีประโยชน์เช่นพูดเซ็นเซอร์ความชื้นและวาล์วน้ำ ไมโครคอนโทรลเลอร์มีพินต่อพ่วงสำหรับจุดประสงค์นี้: UARTs, GPIO และอื่น ๆ
  • เขียนเฟิร์มแวร์เพื่อตรวจสอบเซ็นเซอร์และรดน้ำดิน
  • อัปโหลดเฟิร์มแวร์ผ่านเครื่องมือการพัฒนา (ดังนั้นไม่จำเป็นต้องใช้เชลล์ในคอมพิวเตอร์โฮสต์เพื่อโหลดและรันอะไรเลยและเฟิร์มแวร์จะถูกเก็บไว้ในหน่วยความจำแฟลชบนชิป) การเขียนโปรแกรมอาจเกี่ยวข้องกับไมโครคอนโทรลเลอร์ที่เสียบเข้ากับบอร์ดเขียนโปรแกรมพิเศษหรืออาจมีวิธีการทำในขณะที่กำลังนั่งอยู่ในบอร์ดจริงของคุณ บอร์ดส่วนต่อประสานกับพีซีของคุณ (ทุกวันนี้ผ่าน USB เป็นต้น) และคุณใช้เครื่องมือบางอย่างเช่น IDE หรือเครื่องมือบรรทัดคำสั่งบนโฮสต์
  • ปรับใช้สิ่งที่: ตอนนี้มันเป็นกล่องดำอิเล็กทรอนิกส์เป็นหลักที่อย่างใดตรวจสอบความชื้นในดินและเปิดน้ำโดยไม่มีปัจจัยการผลิตหรือการส่งออกอื่น ๆ

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

ก่อนที่จะเจาะการ์ดและภาษาควบคุมงานโปรแกรมเมอร์ต้องสลับสวิตช์เพื่อป้อนรหัสไบนารีลงในเครื่อง คุณอาจเคยได้ยินเรื่องราวจากผู้จับเวลาเก่าที่ต้อง "สลับเป็น" ลำดับการสอนเพื่อเริ่มต้น bootstrap สิ่งนี้ยังคงทำอยู่ในปัจจุบัน: อุปกรณ์ยังคงมีอยู่ซึ่งมีจัมเปอร์หรือสวิตช์ DIP และมีข้อดีบางประการเมื่อเทียบกับการตั้งค่าในเฟิร์มแวร์


0

คอมพิวเตอร์เครื่องแรกที่ฉันติดอยู่คือ Siemens 305 ในปี 1977 ฉันเรียนรู้ FORTRAN IV มันมีเครื่องพิมพ์ดีดเพื่อเรียกใช้คำสั่งและพิมพ์ข้อความวินิจฉัยบนกระดาษเครื่องอ่านบัตร punchcard เครื่องอ่าน / เครื่องอ่านบัตรประชาชนและเครื่องพิมพ์ อย่าลืมฮาร์ดดิสก์ที่ลบได้ขนาด 40 MB ขนาด 16 นิ้วหรือมากกว่านั้น ดังนั้นมันจึงมีเชลล์อยู่แล้วและส่วนต่อประสานนั้นเป็นเครื่องพิมพ์ดีด


0

ฉันจำได้ว่าเรียกใช้ดีบักเกอร์และโปรแกรมแก้ไขข้อความ (DDT และ emacs) ซึ่งเทียบเท่ากับเชลล์คำสั่งในปี 1970 ดังนั้นหากคุณเรียกใช้ emacs ในโหมดคอนโซลด้วยโปรแกรมอื่นที่ดำเนินการผ่าน eshell ไปยังโปรแกรมดีบั๊กที่เรียกใช้งานโปรแกรมคุณจะมีประสบการณ์อย่างใกล้ชิด

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

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