ทำความเข้าใจกับระดับของการคำนวณ
ขออภัยสำหรับคำถามที่สับสนของฉัน ฉันกำลังมองหาตัวชี้บางอย่าง ถึงตอนนี้ฉันทำงานกับ Java และ Python เป็นส่วนใหญ่บนเลเยอร์แอปพลิเคชันและฉันมีความเข้าใจที่ไม่ชัดเจนเกี่ยวกับระบบปฏิบัติการและฮาร์ดแวร์ ฉันต้องการที่จะเข้าใจมากขึ้นเกี่ยวกับการใช้คอมพิวเตอร์ในระดับที่ต่ำกว่า แต่มันก็ท่วมท้นไปมาก ที่มหาวิทยาลัยฉันเข้าเรียนเกี่ยวกับ microprogramming นั่นคือวิธีที่ตัวประมวลผลมีสายแบบยากที่จะใช้รหัส ASM ถึงตอนนี้ฉันคิดอยู่เสมอว่าฉันจะไม่ทำอะไรให้สำเร็จถ้าเรียนรู้เพิ่มเติมเกี่ยวกับ "ระดับต่ำ" คำถามหนึ่งที่ฉันมีคือ: เป็นไปได้อย่างไรที่ฮาร์ดแวร์จะถูกซ่อนไว้เกือบทั้งหมดจากผู้พัฒนา มันถูกต้องหรือไม่ที่จะบอกว่าระบบปฏิบัติการเป็นเลเยอร์ซอฟต์แวร์สำหรับฮาร์ดแวร์? ตัวอย่างเล็ก ๆ น้อยหนึ่ง: ในการเขียนโปรแกรมฉันไม่เคยเจอความต้องการที่จะเข้าใจ L2 หรือ L3 Cache คืออะไร สำหรับสภาพแวดล้อมของแอปพลิเคชันทางธุรกิจทั่วไปเราแทบไม่จำเป็นต้องเข้าใจแอสเซมเบลอร์และการคำนวณในระดับที่ต่ำกว่าเพราะในปัจจุบันมีเทคโนโลยีสแต็คสำหรับเกือบทุกอย่าง ฉันเดาว่าจุดรวมของระดับล่างเหล่านี้คือการให้ส่วนต่อประสานกับระดับที่สูงขึ้น ในทางกลับกันฉันสงสัยว่าจะมีอิทธิพลต่อระดับล่างได้มากน้อยเพียงใดตัวอย่างเช่นการประมวลผลกราฟิกทั้งหมด ในทางกลับกันมีสาขาวิทยาศาสตร์คอมพิวเตอร์เชิงทฤษฎีนี้ซึ่งทำงานในรูปแบบการคำนวณเชิงนามธรรม อย่างไรก็ตามฉันยังพบกับสถานการณ์ที่ไม่ค่อยพบซึ่งฉันคิดว่ามันเป็นประโยชน์ในการคิดประเภทของแบบจำลองความซับซ้อนการตรวจสอบหลักฐาน ฯลฯ ฉันรู้ว่ามีคลาสความซับซ้อนที่เรียกว่า NP และพวกเขาไม่สามารถแก้ปัญหาได้ สิ่งที่ฉันขาดไปมากคือการอ้างอิงสำหรับกรอบการคิดเกี่ยวกับสิ่งเหล่านี้ สำหรับฉันดูเหมือนว่ามีค่ายต่าง ๆ ทุกประเภทที่ไม่ค่อยมีปฏิสัมพันธ์ ไม่กี่สัปดาห์ที่ผ่านมาฉันได้อ่านเกี่ยวกับปัญหาด้านความปลอดภัย ที่นี่อย่างใดชั้นที่แตกต่างกันมากมารวมกัน การโจมตีและการหาประโยชน์มักเกิดขึ้นในระดับที่ต่ำกว่าดังนั้นในกรณีนี้จำเป็นต้องเรียนรู้เกี่ยวกับรายละเอียดของเลเยอร์ OSI, การทำงานภายในของ OS ฯลฯ