ส่วนประกอบหลักของระบบปฏิบัติการตระกูล Windows NT คำอธิบายโดยย่อของระบบปฏิบัติการ Windows NT ข้อกำหนดด้านฮาร์ดแวร์

ปลายปี 1988 Microsoft แต่งตั้ง David Cutler เป็นผู้นำ โครงการใหม่ในซอฟต์แวร์: สร้างระบบปฏิบัติการใหม่ของ Microsoft สำหรับปี 1990 เขารวบรวมทีมวิศวกรเพื่อพัฒนาระบบ เทคโนโลยีใหม่(เทคโนโลยีใหม่-เอ็นที)

แผนเดิมคือการพัฒนา NT ด้วยอินเทอร์เฟซผู้ใช้สไตล์ OS/2 และอินเทอร์เฟซการเขียนโปรแกรม (API) แต่ OS/2 ขายได้ไม่ดีและ Windows 3.0 ถือเป็นความสำเร็จครั้งสำคัญและต่อเนื่องในตลาด หลังจากที่ได้เห็นแรงกดดันของตลาดและความท้าทายที่เกี่ยวข้องกับการพัฒนาและสนับสนุนระบบสองระบบที่เข้ากันไม่ได้ Microsoft จึงตัดสินใจเปลี่ยนแนวทางและชี้นำวิศวกรไปสู่กลยุทธ์ระบบปฏิบัติการเดียวที่สอดคล้องกัน กลยุทธ์นี้คือการพัฒนาตระกูลระบบปฏิบัติการที่ใช้ Windows ซึ่งจะครอบคลุมคอมพิวเตอร์หลายประเภท ตั้งแต่แล็ปท็อปขนาดเล็กที่สุดไปจนถึงเวิร์กสเตชันแบบมัลติโปรเซสเซอร์ที่ใหญ่ที่สุด ดังนั้นระบบ Windows รุ่นต่อไปจึงถูกเรียกว่า Windows NT

Windows NT รองรับ Windows graphical user interface (GUI) และยังเป็นรุ่นแรกที่ใช้อีกด้วย ระบบปฏิบัติการวินโดวส์ระบบ Microsoft ที่รองรับ Win32 API ซึ่งเป็นอินเทอร์เฟซการเขียนโปรแกรม 32 บิตสำหรับการพัฒนาแอปพลิเคชันใหม่ Win32 API ทำให้คุณสมบัติระบบปฏิบัติการขั้นสูงพร้อมใช้งานสำหรับแอปพลิเคชัน เช่น กระบวนการแบบมัลติเธรด การซิงโครไนซ์ ความปลอดภัย I/O และการจัดการอ็อบเจ็กต์

ในเดือนกรกฎาคม พ.ศ. 2536 ระบบปฏิบัติการแรกของตระกูล NT ปรากฏขึ้น - Windows NT 3.1 และ Windows NT Advanced Server 3.1

รุ่นต่างๆ

  • วินโดวส์ NT 3.1 (27 กรกฎาคม 1993)
  • วินโดวส์ NT 3.5 (21 กันยายน 1994)
  • Windows NT 3.51 (30 พฤษภาคม 1995)
  • วินโดวส์ NT 4.0 (24 สิงหาคม 2539)
  • วินโดวส์ 2000 (17 กุมภาพันธ์ 2543)
  • วินโดวส์ XP (25 ตุลาคม 2544)
  • Windows XP รุ่น 64 บิต (28 มีนาคม 2546)
  • Windows Server 2003 (25 เมษายน 2546)
  • Windows XP Media Center รุ่น 2003 (18 ธันวาคม 2546)
  • Windows XP Media Center รุ่น 2005 (12 ตุลาคม 2547)
  • Windows XP Professional x64 Edition (25 เมษายน 2548)
  • Windows Fundamentals สำหรับพีซีรุ่นเก่า (8 กรกฎาคม 2549)
  • วินโดวส์ วิสต้า (30 พฤศจิกายน 2549)
  • Windows Home Server (7 พฤศจิกายน 2550)
  • Windows Server 2008 (27 กุมภาพันธ์ 2551)

โครงสร้างวินโดวส์เอ็นที

โครงสร้าง Windows NT สามารถแสดงได้เป็นสองส่วน: ส่วนหนึ่งของระบบปฏิบัติการที่ทำงานในโหมดผู้ใช้ และส่วนหนึ่งของระบบปฏิบัติการที่ทำงานในโหมดเคอร์เนล

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

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

ฝ่ายบริหารให้การสนับสนุนระบบย่อยที่ได้รับการป้องกัน ส่วนประกอบของมันคือ:

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

ผู้จัดการหน่วยความจำเสมือน

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

ส่วนการดำเนินการจะขึ้นอยู่กับบริการระดับล่างที่เคอร์เนล NT มอบให้ ฟังก์ชันเคอร์เนลประกอบด้วย:

  • การวางแผนกระบวนการ
  • การจัดการกับการขัดจังหวะและข้อยกเว้น
  • การซิงโครไนซ์โปรเซสเซอร์สำหรับระบบมัลติโปรเซสเซอร์
  • การกู้คืนระบบหลังจากความล้มเหลว

เคอร์เนลทำงานในโหมดสิทธิพิเศษและไม่เคยถูกลบออกจากหน่วยความจำ เคอร์เนลสามารถเข้าถึงได้ผ่านการขัดจังหวะเท่านั้น

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

ระบบย่อยที่สำคัญที่สุดของสภาพแวดล้อมคือ Win32 ซึ่งเป็นระบบย่อยที่ให้แอปพลิเคชันเข้าถึง Windows API แบบ 32 บิต นอกจากนี้ ระบบนี้ยังมีอินเทอร์เฟซแบบกราฟิกและจัดการอินพุต/เอาท์พุตของผู้ใช้

ระบบย่อยที่ได้รับการป้องกันแต่ละระบบทำงานในโหมดผู้ใช้โดยเรียก บริการระบบส่วนผู้บริหารเพื่อดำเนินการสิทธิพิเศษในโหมดเคอร์เนล เซิร์ฟเวอร์เครือข่ายสามารถรันได้ทั้งในโหมดผู้ใช้หรือโหมดเคอร์เนล ขึ้นอยู่กับวิธีการออกแบบ

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

เครื่องมือหลักที่เก็บระบบย่อย Windows NT ทั้งหมดไว้ด้วยกันคือกลไก Local Procedure Call (LPC) LPC เป็นเวอร์ชันที่ได้รับการปรับปรุงประสิทธิภาพของเครื่องมือทั่วไปที่เรียกว่า Remote Procedure Call (RPC) ซึ่งใช้ในการสื่อสารระหว่างไคลเอนต์และเซิร์ฟเวอร์ที่อยู่บนเครื่องที่แตกต่างกันบนเครือข่าย

ราก

ทุกอย่างเริ่มต้นในปี 1975 เมื่อ Digital Equipment Corporation เริ่มการพัฒนาแพลตฟอร์ม VAX 32 บิต

Cutler เป็นผู้นำโครงการนี้ ซึ่งได้รับชื่อเสียงในฐานะวิศวกรระบบที่แข็งแกร่งด้วยการสร้าง RSX-11M สำหรับมินิคอมพิวเตอร์ PDP-11 ที่มีชื่อเสียง ในปี 1977 มีการประกาศเปิดตัวเครื่อง VAX-11/780 และระบบปฏิบัติการ VMS 1.0 สี่ปีต่อมา Cutler รู้สึกเบื่อหน่ายกับการ "กำหนด" ตัวเลขตามหลังตัวอักษรสามตัวที่คงที่ และเขาตัดสินใจออกจาก Digital อย่างไรก็ตาม เจ้าหน้าที่ของบริษัทกลับกลายเป็นคนเจ้าเล่ห์มากขึ้น เนื่องจากพวกเขาไม่สามารถเก็บนักพัฒนาที่มีความสามารถไว้ในอ้อมอกขององค์กรได้ พวกเขาจึงตัดสินใจเลียนแบบบรรยากาศของการเริ่มต้นธุรกิจและความคิดสร้างสรรค์อย่างอิสระ มีการจัดตั้งแผนกอิสระขึ้นในซีแอตเทิล และ Cutler ได้รับอนุญาตให้รับสมัครพนักงานตามจำนวนที่ต้องการ (ประมาณ 200 คน) จากพนักงาน Digital โดยตรง โครงสร้างใหม่เริ่มออกแบบสถาปัตยกรรมโปรเซสเซอร์และระบบปฏิบัติการชื่อรหัสปริซึม

แผนผังการพัฒนาระบบปฏิบัติการตระกูล Windows NT

“ช่วงเวลาแห่งความสุข” นั้นอยู่ได้ไม่นาน พวกหัวหน้าใหญ่ไม่สามารถสรุปงานที่พวกเขาเริ่มไว้ได้ และในปี 1988 Cutler พร้อมด้วยวิศวกรและโปรแกรมเมอร์อีก 200 คนก็พบว่าตัวเองมีอิสระในการหาเลี้ยงชีพ แต่นักพัฒนาที่มีชื่อเสียงไม่ได้หยุดงาน: ในเวลานั้น Bill Gates ตัดสินใจสุกงอมเกี่ยวกับความจำเป็นในการสร้างระบบปฏิบัติการเซิร์ฟเวอร์ที่จะแข่งขันกับ Unix clones เพียงเพื่อให้ได้ David Cutler หัวหน้าสถาปนิก Microsoft ในอนาคตตกลงที่จะจ้างอดีตวิศวกรดิจิทัล 20 คนที่เขาเลือก ในเดือนพฤศจิกายน พ.ศ. 2531 ทีมงานที่ประกอบด้วยบุคลากรห้าคนจาก Digital และโปรแกรมเมอร์ Microsoft หนึ่งคนได้เริ่มทำงาน

ภารกิจคือเขียนระบบปฏิบัติการสำหรับโปรเซสเซอร์ Intel i860 RISC ใหม่ซึ่งมีชื่อรหัสว่า N-Ten นี่คือที่มาของคำย่อ NT ซึ่งต่อมานักการตลาดของ Microsoft ตีความว่าเป็นเทคโนโลยีใหม่ เมื่อเดือนธันวาคม พ.ศ. 2531 ชิ้นส่วนแรกของระบบก็พร้อมแล้ว สิ่งที่จับได้ก็คือ i860 มีอยู่บนกระดาษเท่านั้น ดังนั้นโค้ดจึงต้องได้รับการทดสอบบนโปรแกรมจำลองซอฟต์แวร์ การพัฒนาได้ดำเนินการกับโมเดล "ของเล่น" ตามมาตรฐานปัจจุบัน เครื่องอินเทล 386 25 MHz พร้อม RAM 13 MB และ ฮาร์ดไดรฟ์ 110 เมกะไบต์

สถาปัตยกรรมไมโครเคอร์เนล ซึ่งแต่เดิมเป็นพื้นฐานของ NT มีความสำคัญอย่างยิ่งเมื่อในปี 1989 พบว่าฮาร์ดแวร์ i860 ไม่สามารถรันโค้ดที่เขียนได้อย่างมีประสิทธิภาพเพียงพอ เราต้องเปลี่ยนไปใช้ MIPS R3000 จากนั้นจึงใช้โปรเซสเซอร์ Intel 386 มาตรฐาน ซึ่งเสร็จสิ้นภายในเวลาไม่ถึงหนึ่งปีโดยทีมงานที่เติบโตเป็นวิศวกร 28 คน

ในปี 1990 เหตุการณ์ที่สำคัญที่สุดเกิดขึ้นซึ่งกลายเป็นกุญแจสำคัญในชะตากรรมของ NT - การเปิดตัวและความสำเร็จที่น่าเวียนหัวของ Windows 3.0 ในความเป็นจริงมันเป็นระบบปฏิบัติการมัลติทาสกิ้งตัวแรกของ Microsoft ที่มีอินเทอร์เฟซแบบกราฟิกที่เหมาะสมในการทำงานจริง การยืมอินเทอร์เฟซและ API นี้เป็นตัวกำหนดอนาคตของ NT ในขั้นต้น ระบบปฏิบัติการเซิร์ฟเวอร์ควรจะเป็นการนำโครงการ OS/2 มาสร้างใหม่ร่วมกับ IBM และด้วยเหตุนี้จึงทำงานร่วมกับ แอปพลิเคชันที่มีอยู่ระบบปฏิบัติการ/2. อย่างไรก็ตาม Windows รุ่นที่สามปรากฏขึ้นทันเวลา: Redmond ละทิ้งพันธมิตรของเขาและเปลี่ยนเส้นทางทีมพัฒนา NT เพื่อออกแบบ Win32 API ซึ่งสร้างขึ้นใน "รูปภาพและภาพเหมือน" ของอินเทอร์เฟซ Win16 สิ่งนี้ให้ความต่อเนื่องที่จำเป็นมาก ทำให้ง่ายต่อการย้ายแอปพลิเคชันจากเดสก์ท็อปไปยังแพลตฟอร์มเซิร์ฟเวอร์

กลุ่มพัฒนา NT ซึ่งในเวลานั้นได้กลายมาเป็น Windows NT เริ่มเติบโตอย่างรวดเร็ว และในไม่ช้าก็มีพนักงานประมาณ 300 คน ความล้มเหลวในการมุ่งเน้นไปที่ OS/2 นำไปสู่ปัญหาร้ายแรงในความสัมพันธ์ระหว่าง Microsoft และ IBM แถลงการณ์อย่างเป็นทางการไม่มีการรายงานอะไรเลย เพียงแต่ในการนำเสนอระหว่างองค์กรครั้งหนึ่ง พนักงานของ IBM ค้นพบด้วยความสับสนว่าระบบปฏิบัติการที่สร้างขึ้นไม่มีส่วนเกี่ยวข้องกับผลิตผลของบริษัทของตน อย่างไรก็ตาม Windows NT 3.1 (หมายเลขถูก "ปรับ" เป็นเวอร์ชันปัจจุบันของ Windows 16 บิตที่มีอยู่ในขณะนั้น) รวมการรองรับ DOS, Win16, POSIX และ OS/2 APIs และอื่นๆ อีกมากมาย ในเดือนกรกฎาคม พ.ศ. 2536 ระบบเซิร์ฟเวอร์ใหม่ของ Microsoft ได้เปิดตัวและเริ่มการเดินทาง

จากนั้นสิ่งต่างๆ ก็ดำเนินไปอย่างราบรื่น: ในเดือนกันยายน พ.ศ. 2537 Windows NT 3.5 เปิดตัว เวอร์ชันก่อนหน้านี้จัดทำขึ้นในช่วงเร่งรีบ ทุกอย่างต้องเขียนโค้ดตั้งแต่ต้น และฟีเจอร์หลายอย่างก็ยังไม่มีการใช้งาน ตอนนี้ถึงเวลาคิดถึงประสิทธิภาพ ความเร็ว และ... การจัดการปฏิสัมพันธ์บางอย่างกับเครือข่ายที่สร้างบน NetWare ซึ่งเป็นผู้นำที่แท้จริงในยุคนั้น ซึ่งครองตลาด เครือข่ายท้องถิ่น- หากในช่วงหลายปีที่ผ่านมาพวกเขาใส่ใจต่อประเด็นการควบคุมการผูกขาดเหมือนเช่นทุกวันนี้ บางทีมันอาจจะเพียงพอที่จะเขียนคำใส่ร้ายที่เกี่ยวข้องไปยังหน่วยงานที่เหมาะสม น่าเสียดายที่ Microsoft ต้องหาสถานการณ์ด้วยตัวเอง Novell ลังเลว่าจะให้การสนับสนุนลูกค้าสำหรับ Windows NT หรือไม่ เรดมอนด์รอไม่ไหวแล้ว - พวกเขาเขียนเอง ไคลเอ็นต์เน็ตแวร์และเป็นสิ่งที่ดีมากที่ยังคงใช้ต่อไปหลังจากซอฟต์แวร์ Novell ดั้งเดิมออกวางจำหน่าย ในเดือนพฤษภาคม พ.ศ. 2538 ด้วยสถาปัตยกรรมที่ใช้ไมโครเคอร์เนลระบบปฏิบัติการ "รุ่น PowerPC" พิเศษจึงปรากฏขึ้น - Windows NT 3.51 ตามรายงานบางฉบับ การเปิดตัวล่าช้าในคราวเดียวเนื่องจาก IBM ไม่สามารถปฏิบัติตามแผนการนำโปรเซสเซอร์นี้ออกสู่ตลาดได้ ดังนั้นวิวัฒนาการของเวอร์ชัน PowerPC จึงไปไกลกว่า Windows NT 3.5 เล็กน้อยซึ่งทำให้กลายเป็นพื้นฐานสำหรับระบบปฏิบัติการเวอร์ชันถัดไป

หากจนถึงขณะนี้ยังคงเป็นไปได้ที่จะพูดคุยเกี่ยวกับความคล้ายคลึงกันระหว่างสถาปัตยกรรมของ Windows NT และแม้แต่ Unix (ในบางแง่ที่ห่างไกลอย่างไม่สิ้นสุดและในอย่างอื่นก็คล้ายกับ VMS OS มาก) จากนั้นด้วยการเปิดตัว NT 4.0 ซึ่งเปิดตัว ระบบย่อยกราฟิกเข้าสู่คอร์ เหตุผลสุดท้ายสำหรับเหตุผลดังกล่าวได้หายไป ตามทฤษฎีแล้วการตัดสินใจดังกล่าวเป็นข้อสรุปที่สมเหตุสมผลอย่างยิ่งจากประสบการณ์ที่น่าเศร้าในการพยายามรวมสภาพแวดล้อมหน้าต่าง Windows 95 ยอดนิยมเข้ากับ NT อาจเป็นไปได้ว่าแนวคิดในการจำลองโมเดลสถาปัตยกรรมของ X Window - Unix นั้นเกิดขึ้นอย่างแม่นยำเพราะ ของ "การวางแนวเซิร์ฟเวอร์" เริ่มต้นของ NT อย่างไรก็ตามหากไม่มีปัญหากับ "การปลูกถ่าย" จริงของเชลล์กราฟิกแสดงว่าประสิทธิภาพในโหมดผู้ใช้ (เช่นในรูปแบบ การสมัครปกติ) เหลือความต้องการอีกมากซึ่งเป็นเรื่องปกติ - ระบบย่อยกราฟิก Windows ที่รองรับอุปกรณ์เอาท์พุตที่เป็นนามธรรม (ไม่ว่าจะเป็นจอแสดงผลแรสเตอร์เครื่องพิมพ์หรืออะไรก็ตาม) นั้นซับซ้อนกว่าอย่างไม่มีใครเทียบได้และด้วยเหตุนี้จึงมีความต้องการทรัพยากรมากกว่า X หน้าต่างซึ่ง "เข้าใจ" จะแสดงแรสเตอร์โดยเฉพาะ ดังนั้นโมดูลอื่นจึงปรากฏโดยเป็นส่วนหนึ่งของเคอร์เนล Windows NT 4.0 ซึ่งเปิดตัวในเดือนกรกฎาคม พ.ศ. 2539 การแก้ไขนี้เรียกว่า Shell Update Release (SUR)

ขั้นต่อไปคือ Windows NT 5.0 ซึ่งเปิดตัวสู่ตลาดในปี 2000 ภายใต้ชื่อ Windows 2000 การเปลี่ยนแปลง "ชื่อ" เกิดขึ้นภายใต้อิทธิพลของนักการตลาดและกลายเป็นการตัดสินใจที่ถูกต้องโดยรวมซึ่งทำให้เป็นไปได้ เพื่อเปลี่ยนตำแหน่งระบบปฏิบัติการนี้ งานยังคงดำเนินต่อไปจนถึงทุกวันนี้ตามที่เห็นได้จากการเปิดตัว วินโดวส์เซิร์ฟเวอร์ 2003.

การต่อสู้เพื่อการออกแบบ Windows และ การใช้งานวินโดวส์เซิร์ฟเวอร์รายงานตรงต่อ Mark Lucovsky หนึ่งในผู้สนับสนุนแผนก OS เซิร์ฟเวอร์ของบริษัท เขาเป็นผู้นำกองทัพนักพัฒนา 5,000 คนที่ได้รับมอบหมายให้ทำงานในห้องปฏิบัติการเจ็ดแห่ง โปรแกรมเมอร์อีก 5,000 คนทำงานในที่ทำงานของตนในบริษัทพันธมิตร โดยมีส่วนร่วมในโค้ดสุดท้าย 50 ล้านบรรทัดทุกวันในระบบปฏิบัติการ Windows Server 2003

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

แก่นสารของกระบวนการพัฒนาคือการประชุมที่ใช้เวลานานหนึ่งชั่วโมงที่เรียกว่า "ห้องสงคราม" ซึ่งจัดขึ้นสองหรือสามครั้งทุกวัน (เวลา 9.30 น. 14.00 น. และ 17.00 น.) พวกเขานำหน้าด้วยเหตุการณ์ที่คล้ายกันใน "ห้องสงคราม" ในท้องถิ่นของคณะทำงานเวลา 8.00 น. ในการประชุมหลัก จะมีการหารือเกี่ยวกับการแก้ไขข้อผิดพลาดที่พบก่อนหน้านี้ และสถานะโดยรวมของโครงการจะถูกกำหนด ในช่วงไม่กี่วันที่ผ่านมา ผู้คนที่นี่มองหาวิธีแก้ปัญหาที่สำคัญเป็นหลัก นั่นคือการเปลี่ยนชื่อ Windows.NET Server 2003 เป็น Windows Server 2003 มีชื่อหลายพันชื่อใน โมดูลต่างๆและนี่คือช่วงเวลาสุดท้ายก่อนที่ระบบจะออก ซึ่งสร้างความปวดหัวอย่างมากให้กับนักพัฒนา

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

การสร้างเริ่มต้นทุกวันเวลา 16:30 น. และอาจล่าช้าได้จนถึง 18:00 น. เพื่อให้การแก้ไขล่าสุดถูกรวมเข้ากับระบบหลังจากการประชุม War Room ครั้งที่สาม ทีมงานไม่สามารถมาประชุมได้หากไม่มี โซลูชั่นสำเร็จรูป ปัญหาที่มีอยู่ไม่เช่นนั้นพวกเขาไม่ควรปรากฏตัวที่นั่นเลย ห้องปฏิบัติการทั้งเจ็ดแห่งแต่ละแห่งมีสำเนาซอร์สโค้ดของระบบที่สมบูรณ์ ซึ่งห้องปฏิบัติการเหล่านี้จะทำการแก้ไข รวบรวม และทดสอบการทำงาน หากทุกอย่างดำเนินไปอย่างราบรื่น โค้ดใหม่จะถูกรวมเข้ากับโค้ดที่สร้างโดยกลุ่มอื่นเข้ากับแอสเซมบลีหลัก ปัญหาอาจเกิดจากการโต้ตอบของโค้ดใหม่ที่เขียนโดยกลุ่มต่างๆ การประกอบหลักไม่ได้ผลดีเสมอไป บางครั้งระบบก็ใช้งานไม่ได้ ในกรณีนี้ทันทีที่พบโมดูลผู้กระทำผิด (โดยปกติประมาณสามหรือสี่โมงเช้า) ผู้ที่เขียนบทจะถูกเรียกไปที่ที่ทำงานอย่างเร่งด่วนและอย่าออกไปจนกว่าข้อผิดพลาดจะได้รับการแก้ไข ดังนั้นโปรแกรมเมอร์จะต้องพร้อมที่จะทำงานตลอด 24 ชั่วโมง 6 วันต่อสัปดาห์ (แนะนำ 6 วันเมื่อใกล้ถึงวันวางจำหน่ายผลิตภัณฑ์)

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

จากนั้นผลิตภัณฑ์จะถูกส่งไปยังพันธมิตรที่ได้รับการคัดเลือกผ่านทางโปรแกรม JDP (Joint Development Partners) เพื่อทำการทดสอบ หากพบข้อผิดพลาด จะมีการทำ "การตัดสินใจตามอำเภอใจ": ปล่อยข้อผิดพลาดเหล่านั้นไว้ในระบบและบันทึกวันที่เริ่มต้นการขาย หรือเลื่อนวันวางจำหน่ายและเริ่มทำการปรับปรุง ในกรณีหลัง ผลลัพธ์ทั้งหมดจะถูกยกเลิก และการทดสอบจะเริ่มต้นใหม่ตั้งแต่ต้น

การให้การสนับสนุนหลังการขายทำได้ยากกว่ามาก หากมีการระบุข้อบกพร่อง ช่องโหว่ด้านความปลอดภัย หรือจำเป็นต้องเพิ่มฟังก์ชันใหม่ให้กับผลิตภัณฑ์ คุณจะต้องสร้างแพตช์เฉพาะที่หรือแพตช์แบบเต็ม เซอร์วิสแพ็ค- เนื่องจากมีโค้ดอื่นๆ อยู่แล้วก่อนแพตช์หรือ Service Pack นี้ โค้ดใหม่จึงได้รับการทดสอบกับระบบหลายรูปแบบ โดยลองใช้แพตช์และ Service Pack รวมกันที่เป็นไปได้ทั้งหมด นอกจากนี้ เพื่อดำเนินการตรวจสอบประสิทธิภาพอย่างเต็มรูปแบบ บริษัทยังสนับสนุนส่วนย่อยของเครือข่ายที่ทำงานบนผลิตภัณฑ์เวอร์ชันเก่า (เช่น Windows Server 2000) ซึ่งคุณสามารถ "ทดสอบ" ระบบในภาคสนามได้

VMS กลายเป็น WNT ได้อย่างไร

ผู้มีปัญญาบางคนเคยพูดติดตลกว่าหากคุณดำเนินการเพิ่ม (เพิ่มขึ้นหนึ่ง) ในแต่ละตัวอักษรของชื่อของระบบปฏิบัติการ Cutler VMS คุณจะได้รับ WNT หรือ Windows NT ตามที่ผู้เชี่ยวชาญกล่าวว่านี่คือความจริงที่สมบูรณ์ ไม่ใช่ความคิดเห็นที่มีอคติโดยพิจารณาจากข้อเท็จจริงที่ว่าสถาปนิกหลักของ NT เคยเป็นนักพัฒนา VMS ครั้งหนึ่ง แต่เป็นความจริงตามวัตถุประสงค์

ในความเป็นจริง NT เป็นศูนย์รวมของแนวคิดทางสถาปัตยกรรมที่ออกแบบใหม่อย่างสิ้นเชิงของแกนแอสเซมบลี VMS ซึ่งใช้งานในภาษา C เพื่อให้พกพาได้ดีขึ้น เสริมด้วยอินเทอร์เฟซ API ที่สอดคล้องกันและระบบย่อยไฟล์และกราฟิกใหม่ ความเหมือนกันของโซลูชันทางสถาปัตยกรรมของทั้งสองระบบนั้นยอดเยี่ยมมาก ดังนั้นจึงมีแนวคิดที่เหมือนกันเกี่ยวกับกระบวนการ ลำดับความสำคัญ (32 ระดับ) การจัดการการเปลี่ยนแปลงลำดับความสำคัญ และการควบคุมการกระจายเวลาของตัวประมวลผลระหว่างกัน แต่ถึงแม้จะมีความคล้ายคลึงกันอย่างมีนัยสำคัญ แต่ไม่ต้องสงสัยเลยว่าเนื่องจากประสบการณ์ก่อนหน้านี้ของทีมหัวหน้าสถาปนิก - Cutler แต่เดิม NT ถูกสร้างขึ้นเป็นระบบปฏิบัติการแบบมัลติเธรด - ความแตกต่าง "เล็ก ๆ น้อย ๆ " นี้ทำให้สามารถเข้าใจขอบเขตที่ NT เป็น ลบออกจากสถาปัตยกรรม VMS "พื้นฐาน"

ไดรเวอร์ในระบบปฏิบัติการทั้งสองทำงานภายในโมเดลสแต็ก ซึ่งแต่ละเลเยอร์จะแยกออกจากเลเยอร์อื่นๆ ซึ่งช่วยให้คุณสามารถจัดระเบียบแผนการจัดการอุปกรณ์แบบหลายขั้นตอนได้ ระบบอนุญาตให้สลับทั้งกระบวนการของผู้ใช้และกระบวนการของระบบ รวมถึงไดรเวอร์ วิธีการแสดงทรัพยากรก็คล้ายกัน ทั้งสองระบบปฏิบัติต่อทรัพยากรเหล่านั้นเสมือนเป็นอ็อบเจ็กต์และจัดการโดยใช้ Object Manager การรักษาความปลอดภัยของ NT เช่นเดียวกับ Discretionary Access Control Lists หรือ DACLs นั้นสืบย้อนไปถึง VMS 4.0

ในปี 1993 วิศวกรดิจิทัลได้ตรวจสอบข้อกำหนดเฉพาะของ Windows NT และค้นพบความคล้ายคลึงที่โดดเด่นกับระบบปฏิบัติการ Mica รุ่นทดลองที่สร้างขึ้นโดยเป็นส่วนหนึ่งของโครงการ Prism เหตุใดจึงให้ความสนใจกับผลิตภัณฑ์ Redmond เช่นนี้? ไม่ใช่เพราะชีวิตที่ดี พนักงาน Digital เริ่มศึกษาระบบภายในของผู้อื่น ในปี 1992 บริษัทตกอยู่ในภาวะดำดิ่งลงอย่างยืดเยื้อ เงินก็ไหลเข้ามา และยอดขายโปรเซสเซอร์ Alpha รุ่นใหม่ก็หยุดชะงัก ในตอนนี้ เพื่อค้นหาความรอด เจ้านายของบริษัทพยายามหันไปขอความช่วยเหลือจากคู่แข่งอันขมขื่นอย่าง Intel ซึ่งประธานของบริษัท Andrew Grove ปฏิเสธ สุดท้ายก็ต้องโค้งคำนับประตูที่ 3 แล้วถาม พอร์ตวินโดวส์ NT ภายใต้ Alpha เพื่อแลกกับสัญญาว่าจะสร้าง NT ให้กับ VMS ซึ่งเป็นระบบปฏิบัติการหลัก อย่างไรก็ตาม เมื่อได้รับ NT เวอร์ชันเบื้องต้น วิศวกรดิจิทัลก็ค่อยๆ ตระหนักว่าระบบปฏิบัติการนี้ต้องการ RAM มากกว่า Alpha PC ทั่วไปที่มีราคา "ห้าพันดอลลาร์" อย่างมาก เห็นได้ชัดว่า NT ไม่เหมาะกับตลาดมวลชนของสถานี RISC ความพยายามที่จะเข้าร่วม Microsoft flag สำหรับ Digital (เช่นเดียวกับบริษัทอื่น ๆ ส่วนใหญ่) กลายเป็นการเสียเวลาและเงิน

เกม "ค้นหา 10 ความแตกต่าง" ระหว่าง WNT และ VMS มอบผลตอบแทนมหาศาลให้กับดิจิทัล ตามเวอร์ชันหนึ่งที่ตีพิมพ์ในเวลานั้นใน Business Week แทนที่จะยื่นฟ้องอย่างเปิดเผย ประธานของ Digital ซึ่งมีหลักฐานที่หักล้างไม่ได้เกี่ยวกับการละเมิดสิทธิในทรัพย์สินทางปัญญา ตัดสินใจที่จะได้รับมากขึ้นโดยการใช้จ่ายน้อยลง เขาหันไปหา Microsoft เพื่อขอคำชี้แจง ซึ่งส่งผลให้มีการลงนามในสัญญาขนาดใหญ่ โดยที่ Digital กลายเป็นผู้รวมเครือข่ายหลักของ NT นอกจากนี้ ในเดือนตุลาคมของปีเดียวกัน Redmond ละทิ้งการสนับสนุนโปรเซสเซอร์ทั้งสองที่แข่งขันกับ Alpha ใน Windows NT: PowerPC และ MIPS น่าเสียดายสำหรับการจัดการด้านดิจิทัลพันธมิตรถูกทำลายในไม่ช้าและสถานะ "บริการติดตั้งเครือข่าย NT" สำหรับไมโครซอฟต์" ไปที่ Hewlett-Packard ซึ่งไม่กี่ปีต่อมาก็ได้รับภาระหนักอีกครั้งจาก บริษัท - VMS OS

แม้ว่า NT และ VMS จะแยกจากกัน แต่ระบบปฏิบัติการเหล่านี้ก็ยังคงมีการยืมแบบแปลกประหลาดอยู่หลายครั้ง โดยเฉพาะอย่างยิ่ง Windows NT ได้รับการรองรับคลัสเตอร์ในปี 1997 เท่านั้น ในขณะที่ VMS มีมาตั้งแต่ปี 1984 และ Windows รุ่น 64 บิตก็ปรากฏขึ้นในภายหลัง (VMS ย้ายไปยังความจุบิตที่สูงกว่าในปี 1996) ในทางกลับกัน VMS 7.0 เปิดตัวเธรดระดับเคอร์เนลในปี 1995 และ VMS 7.2 รวมฐานข้อมูลที่คล้ายกับรีจิสทรีและบันทึกเหตุการณ์ทั่วโลกที่คล้ายกับเครื่องมือ NT ที่เกี่ยวข้อง Windows Server 2003 กำลังจะเปิดตัว มาดูกันว่าอะไรจะเกิดขึ้นต่อไป...

5.1. คำอธิบายสั้น ๆระบบปฏิบัติการวินโดวส์เอ็นที

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

ระบบปฏิบัติการของคลาส MS-DOS ไม่สามารถรับมือกับการไหลของข้อมูลดังกล่าวได้อีกต่อไปและไม่สามารถใช้ทรัพยากรของคอมพิวเตอร์สมัยใหม่ได้อย่างเต็มที่ ดังนั้นเมื่อเร็ว ๆ นี้มีการเปลี่ยนแปลงไปสู่ระบบปฏิบัติการคลาส UNIX ที่ทรงพลังและขั้นสูงยิ่งขึ้นตัวอย่างคือ Windows NT ซึ่งเปิดตัวโดย Microsoft Corporation

เมื่อผู้ใช้เห็นระบบปฏิบัติการ Microsoft เป็นครั้งแรก

Windows NT มีความคล้ายคลึงภายนอกอย่างชัดเจนกับอินเทอร์เฟซอันเป็นที่รักของระบบ Windows 3.+ อย่างไรก็ตามความคล้ายคลึงที่มองเห็นได้นี้เป็นเพียงส่วนเล็ก ๆ ของ Windows NT

Windows NT เป็นระบบปฏิบัติการแบบ 32 บิตที่มีลำดับความสำคัญในการทำงานหลายอย่างพร้อมกัน องค์ประกอบพื้นฐานของระบบปฏิบัติการ ได้แก่ ความปลอดภัยและ

ที่พัฒนา บริการเครือข่าย.

Windows NT ยังให้ความเข้ากันได้กับระบบปฏิบัติการ ระบบไฟล์ และเครือข่ายอื่นๆ อีกมากมาย

ดังแสดงในรูปต่อไปนี้ Windows NT คือ

ระบบปฏิบัติการแบบโมดูลาร์ (ขั้นสูงกว่าแบบเสาหิน) ซึ่งประกอบด้วยระบบที่แยกจากกันซึ่งเชื่อมต่อถึงกันค่อนข้างมาก โมดูลง่ายๆ.

หลัก โมดูล Windows NT คือ (เรียงตามลำดับจากระดับต่ำสุดของสถาปัตยกรรมไปจนถึงสูงสุด): HAL (Hardware Abstraction Layer), เคอร์เนล, ผู้บริหาร, ระบบย่อยที่ได้รับการป้องกัน และระบบย่อยของสภาพแวดล้อม

โครงสร้างโมดูลาร์ของ Windows NT

5.2. ระบบไฟล์วินโดวส์เอ็นที

เมื่อ Windows NT เปิดตัวครั้งแรก จะรวมการรองรับระบบไฟล์สามระบบ นี่คือตารางการจัดสรรไฟล์ (FAT) ที่ให้ความเข้ากันได้กับ MS-DOS ซึ่งเป็นระบบไฟล์ เพิ่มผลผลิต(HPFS) ซึ่งให้ความเข้ากันได้กับ LAN Manager และระบบไฟล์ใหม่ที่เรียกว่า New Technologies File System (NTFS)

NTFS มีข้อดีหลายประการเหนือระบบไฟล์ที่ใช้กับเซิร์ฟเวอร์ไฟล์ส่วนใหญ่ในขณะนั้น

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

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

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

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

NTFS ยังมีคุณสมบัติการบีบอัดที่ปรากฏครั้งแรกใน NT เวอร์ชัน 3.51 มันมีความสามารถในการบีบอัดไฟล์ไดเร็กทอรีหรือ ดิสก์ NTFS- ต่างจากโปรแกรมบีบอัด MS-DOS ที่สร้างดิสก์เสมือนที่มีลักษณะเช่นนี้ ไฟล์ที่ซ่อนอยู่และบีบอัดข้อมูลทั้งหมดบนดิสก์นั้น Windows NT จะใช้เลเยอร์เพิ่มเติมของระบบย่อยไฟล์เพื่อบีบอัดและขยายขนาดไฟล์ที่ต้องการโดยไม่ต้องสร้าง ดิสก์เสมือน- สิ่งนี้มีประโยชน์เมื่อทำการบีบอัดส่วนใดส่วนหนึ่งของดิสก์ (เช่น ไดเรกทอรีผู้ใช้) หรือไฟล์ประเภทเฉพาะ (เช่น ไฟล์กราฟิก) ข้อเสียเปรียบประการเดียวของการบีบอัด NTFS คือการบีบอัดในระดับต่ำเมื่อเทียบกับรูปแบบการบีบอัด MS-DOS แต่ NTFS มีความน่าเชื่อถือและประสิทธิภาพที่สูงกว่า

ดังนั้น จากทั้งหมดที่กล่าวมา เราจึงสรุปได้ว่า:

เพื่อให้เข้ากันได้กับระบบปฏิบัติการต่างๆ Windows NT จึงมีระบบไฟล์ FAT 32 นอกจากนี้ Windows NT ยังมีระบบไฟล์ของตัวเอง ระบบเอ็นทีเอฟเอสซึ่งเข้ากันไม่ได้กับ FAT 16 ระบบไฟล์นี้มีข้อดีเหนือ FAT หลายประการ ทั้งยังมีความน่าเชื่อถือและประสิทธิภาพที่สูงกว่าอีกด้วย

บทสรุป.

MS-DOS เป็นระบบปฏิบัติการ 16 บิตที่ทำงานในโหมดโปรเซสเซอร์จริง ในเวอร์ชัน Windows 3.1 โค้ดบางส่วนเป็นแบบ 16 บิต และบางส่วนเป็น 32 บิต รองรับวินโดวส์ 3.0 โหมดจริงประสิทธิภาพของโปรเซสเซอร์ในระหว่างการพัฒนาเวอร์ชัน 3.1 มีการตัดสินใจที่จะละทิ้งการสนับสนุน

Windows 95 เป็นระบบปฏิบัติการ 32 บิตที่ทำงานในโหมดป้องกัน CPU เท่านั้น เคอร์เนลซึ่งรวมถึงการจัดการหน่วยความจำและการจัดส่งกระบวนการ มีเพียงโค้ด 32 บิตเท่านั้น ซึ่งจะช่วยลดต้นทุนและเพิ่มความเร็วในการทำงาน มีเพียงบางโมดูลเท่านั้นที่มีรหัส 16 บิตเพื่อให้เข้ากันได้กับโหมด MS-DOS Windows 95 ใช้โค้ด 32 บิตทุกครั้งที่เป็นไปได้ ส่งผลให้ระบบมีความน่าเชื่อถือและความยืดหยุ่นเพิ่มขึ้น นอกจากนี้เพื่อความเข้ากันกับ แอปพลิเคชันแบบเดิมและไดรเวอร์ยังใช้รหัส 16 บิต

Windows NT ไม่ใช่การพัฒนาเพิ่มเติมของผลิตภัณฑ์ที่มีอยู่ก่อนหน้านี้ สถาปัตยกรรมของมันถูกสร้างขึ้นตั้งแต่เริ่มต้นโดยคำนึงถึงข้อกำหนดสำหรับระบบปฏิบัติการสมัยใหม่ ในความพยายามที่จะรับรองความเข้ากันได้ของระบบปฏิบัติการใหม่ นักพัฒนา Windows NT ยังคงรักษาอินเทอร์เฟซ Windows ที่คุ้นเคยและดำเนินการสนับสนุนสำหรับระบบไฟล์ที่มีอยู่ (เช่น FAT) และแอปพลิเคชันต่างๆ (เขียนสำหรับ MS - Dos, Windows 3.x) นักพัฒนายังรวมอยู่ในเครื่องมือ Windows NT สำหรับการทำงานกับต่างๆ หมายถึงเครือข่าย.

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


ในตอนท้ายของปี 1988 Microsoft มอบหมายให้ David Cutler เป็นผู้นำโครงการซอฟต์แวร์ใหม่: สร้างระบบปฏิบัติการใหม่ของ Microsoft สำหรับปี 1990 เขารวบรวมทีมวิศวกรเพื่อพัฒนาระบบเทคโนโลยีใหม่ (NT)

แผนเดิมคือการพัฒนา NT ด้วยอินเทอร์เฟซผู้ใช้สไตล์ OS/2 และอินเทอร์เฟซการเขียนโปรแกรม (API) แต่ OS/2 ขายได้ไม่ดีและ Windows 3.0 ถือเป็นความสำเร็จครั้งสำคัญและต่อเนื่องในตลาด หลังจากที่ได้เห็นแรงกดดันของตลาดและความท้าทายที่เกี่ยวข้องกับการพัฒนาและสนับสนุนระบบสองระบบที่เข้ากันไม่ได้ Microsoft จึงตัดสินใจเปลี่ยนแนวทางและชี้นำวิศวกรไปสู่กลยุทธ์ระบบปฏิบัติการเดียวที่สอดคล้องกัน กลยุทธ์นี้คือการพัฒนาตระกูลระบบปฏิบัติการที่ใช้ Windows ซึ่งจะครอบคลุมคอมพิวเตอร์หลายประเภท ตั้งแต่แล็ปท็อปขนาดเล็กที่สุดไปจนถึงเวิร์กสเตชันแบบมัลติโปรเซสเซอร์ที่ใหญ่ที่สุด ดังนั้นระบบ Windows รุ่นต่อไปจึงถูกเรียกว่า Windows NT

Windows NT รองรับ Windows graphical user interface (GUI) และยังเป็นระบบปฏิบัติการ Microsoft ที่ใช้ Windows รุ่นแรกที่รองรับ Win32 API ซึ่งเป็นอินเทอร์เฟซการเขียนโปรแกรม 32 บิตสำหรับการพัฒนาแอปพลิเคชันใหม่ Win32 API ทำให้คุณสมบัติระบบปฏิบัติการขั้นสูงพร้อมใช้งานสำหรับแอปพลิเคชัน เช่น กระบวนการแบบมัลติเธรด การซิงโครไนซ์ ความปลอดภัย I/O และการจัดการอ็อบเจ็กต์

ในเดือนกรกฎาคม พ.ศ. 2536 ระบบปฏิบัติการแรกของตระกูล NT ปรากฏขึ้น - Windows NT 3.1 และ Windows NT Advanced Server 3.1

รุ่นต่างๆ

  • วินโดวส์ NT 3.1 (27 กรกฎาคม 1993)
  • วินโดวส์ NT 3.5 (21 กันยายน 1994)
  • Windows NT 3.51 (30 พฤษภาคม 1995)
  • วินโดวส์ NT 4.0 (24 สิงหาคม 2539)
  • วินโดวส์ 2000 (17 กุมภาพันธ์ 2543)
  • วินโดวส์ XP (25 ตุลาคม 2544)
  • Windows XP รุ่น 64 บิต (28 มีนาคม 2546)
  • Windows Server 2003 (25 เมษายน 2546)
  • Windows XP Media Center รุ่น 2003 (18 ธันวาคม 2546)
  • Windows XP Media Center รุ่น 2005 (12 ตุลาคม 2547)
  • Windows XP Professional x64 Edition (25 เมษายน 2548)
  • Windows Fundamentals สำหรับพีซีรุ่นเก่า (8 กรกฎาคม 2549)
  • วินโดวส์ วิสต้า (30 พฤศจิกายน 2549)
  • Windows Home Server (7 พฤศจิกายน 2550)
  • Windows Server 2008 (27 กุมภาพันธ์ 2551)

โครงสร้างวินโดวส์เอ็นที

โครงสร้าง Windows NT สามารถแสดงได้เป็นสองส่วน: ส่วนหนึ่งของระบบปฏิบัติการที่ทำงานในโหมดผู้ใช้ และส่วนหนึ่งของระบบปฏิบัติการที่ทำงานในโหมดเคอร์เนล

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

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

ฝ่ายบริหารให้การสนับสนุนระบบย่อยที่ได้รับการป้องกัน ส่วนประกอบของมันคือ:

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

ผู้จัดการหน่วยความจำเสมือน

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

ส่วนการดำเนินการจะขึ้นอยู่กับบริการระดับล่างที่เคอร์เนล NT มอบให้ ฟังก์ชันเคอร์เนลประกอบด้วย:

  • การวางแผนกระบวนการ
  • การจัดการกับการขัดจังหวะและข้อยกเว้น
  • การซิงโครไนซ์โปรเซสเซอร์สำหรับระบบมัลติโปรเซสเซอร์
  • การกู้คืนระบบหลังจากความล้มเหลว

เคอร์เนลทำงานในโหมดสิทธิพิเศษและไม่เคยถูกลบออกจากหน่วยความจำ เคอร์เนลสามารถเข้าถึงได้ผ่านการขัดจังหวะเท่านั้น

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

ระบบย่อยที่สำคัญที่สุดของสภาพแวดล้อมคือ Win32 ซึ่งเป็นระบบย่อยที่ให้แอปพลิเคชันเข้าถึง Windows API แบบ 32 บิต นอกจากนี้ ระบบนี้ยังมีอินเทอร์เฟซแบบกราฟิกและจัดการอินพุต/เอาท์พุตของผู้ใช้

ระบบย่อยที่ได้รับการป้องกันแต่ละระบบทำงานในโหมดผู้ใช้ โดยเรียกใช้บริการระบบการดำเนินการเพื่อดำเนินการสิทธิพิเศษในโหมดเคอร์เนล เซิร์ฟเวอร์เครือข่ายสามารถทำงานได้ในโหมดผู้ใช้หรือโหมดเคอร์เนล ขึ้นอยู่กับวิธีการออกแบบ

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

เครื่องมือหลักที่เก็บระบบย่อย Windows NT ทั้งหมดไว้ด้วยกันคือกลไก Local Procedure Call (LPC) LPC เป็นเวอร์ชันที่ได้รับการปรับปรุงประสิทธิภาพของเครื่องมือทั่วไปที่เรียกว่า Remote Procedure Call (RPC) ซึ่งใช้ในการสื่อสารระหว่างไคลเอนต์และเซิร์ฟเวอร์ที่อยู่บนเครื่องที่แตกต่างกันบนเครือข่าย

ประวัติการพัฒนา

การพัฒนา Windows NT ภายใต้ชื่อการทำงาน "NT OS/2" เริ่มต้นในเดือนพฤศจิกายน พ.ศ. 2531 โดยกลุ่มผู้เชี่ยวชาญที่นำโดย David Cutler เดฟ คัตเลอร์ ) ซึ่งเข้าร่วม Microsoft จาก DEC ซึ่งพวกเขาพัฒนา VAX และ VMS งานดำเนินไปควบคู่ไปกับการพัฒนาระบบปฏิบัติการ OS/2 2.0 ของตัวเองของ IBM ซึ่งในที่สุดก็เปิดตัวในเดือนเมษายน พ.ศ. 2535 เท่านั้น ในเวลาเดียวกัน Microsoft ยังคงพัฒนาระบบปฏิบัติการตระกูล DOS และ Windows อย่างต่อเนื่อง ซึ่งมีข้อกำหนดด้านทรัพยากรคอมพิวเตอร์ที่ต่ำกว่า IBM OS/2 หลังจากที่ Windows 3.0 เปิดตัวในเดือนพฤษภาคม พ.ศ. 2533 Microsoft ได้ตัดสินใจเพิ่มอินเทอร์เฟซการเขียนโปรแกรม (API) ที่เข้ากันได้กับ Windows API ให้กับ NT OS/2 การตัดสินใจครั้งนี้ทำให้เกิดความขัดแย้งอย่างรุนแรงระหว่าง Microsoft และ IBM ซึ่งจบลงด้วยการหยุดชะงัก การทำงานร่วมกัน- IBM ยังคงพัฒนา OS/2 ด้วยตัวของมันเองอย่างต่อเนื่อง และ Microsoft ก็เริ่มทำงานกับระบบที่ในที่สุดก็เปิดตัวภายใต้ชื่อ Windows NT แม้ว่าจะไม่ได้รับความนิยมในทันทีเช่น DOS, Windows 3.x หรือ Windows 9.x จากมุมมองทางการตลาด Windows NT กลับกลายเป็นว่าประสบความสำเร็จมากกว่า OS/2 อย่างมาก

ควรสังเกตว่าเป็น อินเทอร์เฟซซอฟต์แวร์เดิมที NT ได้รับการออกแบบด้วย OS/2 และ POSIX API โดยเพิ่มการรองรับ Windows API ไว้ลำดับสุดท้าย นอกจากนี้ ในตอนแรก Intel i860 และ MIPS ได้รับการวางแผนให้เป็นแพลตฟอร์มฮาร์ดแวร์สำหรับ NT นอกจากนี้ยังมีการเพิ่มการรองรับ Intel x86 ในภายหลังด้วย จากนั้น เมื่อระบบปฏิบัติการพัฒนาขึ้น การสนับสนุนทั้งอินเทอร์เฟซซอฟต์แวร์ที่วางแผนไว้แต่เดิมและแพลตฟอร์มฮาร์ดแวร์ที่วางแผนไว้แต่แรกก็หายไป ระบบปฏิบัติการนี้ไม่มีแม้แต่รุ่นเดียวสำหรับ i860 แม้ว่าจะมาจากชื่อรหัสของโปรเซสเซอร์นี้ก็ตาม N10(N Ten) มาจากชื่อระบบปฏิบัติการ NT นั้นเอง ขณะนี้ Microsoft ถอดรหัสตัวย่อ NT เป็นแล้ว เทคโนโลยีใหม่- และเป็นทางเลือกแทนระบบย่อย POSIX Microsoft เริ่มเสนอแพ็คเกจ Microsoft Windows Services สำหรับ UNIX

ในการพัฒนา NT OS นั้น Microsoft ได้เชิญกลุ่มผู้เชี่ยวชาญจาก DEC ซึ่งนำโดย David Cutler ( ภาษาอังกฤษ) มีประสบการณ์ในการสร้างระบบปฏิบัติการมัลติทาสกิ้ง เช่น VAX/VMS และ RSX-11 ความคล้ายคลึงกันบางประการที่สังเกตได้ระหว่างสถาปัตยกรรมภายในของ Windows NT และระบบปฏิบัติการตระกูล VMS ทำให้มีเหตุผลในการกล่าวหาพนักงาน Microsoft ที่เพิ่งจ้างใหม่ว่าขโมยทรัพย์สินทางปัญญาของ DEC ความขัดแย้งที่เกิดขึ้นได้รับการแก้ไขอย่างสันติ: DEC ยอมรับความเป็นเจ้าของเทคโนโลยีที่เป็นรากฐานของ Microsoft ใช้ระบบปฏิบัติการ Windows NT และ Microsoft ได้สร้างและสนับสนุนเวอร์ชันของ Windows NT สำหรับสถาปัตยกรรม DEC Alpha

แม้จะมีรากที่เหมือนกัน แต่ความเข้ากันได้ของ Windows NT และ OS/2 ก็ลดลงตามการเปิดตัวระบบปฏิบัติการใหม่แต่ละครั้ง การสนับสนุน OS/2 2.0 API แม้ว่าจะวางแผนไว้สำหรับ NT แต่ก็ยังไม่เสร็จสมบูรณ์ Windows NT 4.0 ลบการสนับสนุนสำหรับระบบไฟล์ HPFS และ Windows XP ลบระบบย่อยการสนับสนุนโปรแกรมสำหรับ OS/2 1.x

รุ่นต่างๆ

ชื่อ ( ชื่อรหัส) ตัวเลือก หมายเลขเวอร์ชัน ฉบับแรก ฉบับล่าสุด /
วินโดวส์เอ็นที 3.1 3.1.528 27 กรกฎาคม SP3 (10 พฤศจิกายน)
เวิร์กสเตชัน เซิร์ฟเวอร์ขั้นสูง
วินโดวส์เอ็นที 3.5 ( เดย์โทนา) 3.5.807 21 กันยายน SP3 (21 มิถุนายน)
เวิร์คสเตชั่น, เซิร์ฟเวอร์
วินโดวส์เอ็นที 3.51 ( ทูควิลา) 3.51.1057 30 พฤษภาคม SP5 (19 กันยายน)
เวิร์คสเตชั่น, เซิร์ฟเวอร์
วินโดวส์เอ็นที 4.0 ( อินดี้) 4.0.1381 29 กรกฎาคม SP6a (30 พฤศจิกายน)
เวิร์กสเตชัน เซิร์ฟเวอร์ เซิร์ฟเวอร์องค์กร ( หินแกรนิต), เทอร์มินัลเซิร์ฟเวอร์ ( ไฮดรา), แบบฝัง ( อิมพาลา)
วินโดวส์ 2000 ( ไคโร) 5.0.2195 17 กุมภาพันธ์ SP4 (26 มิถุนายน)
มืออาชีพ, เซิร์ฟเวอร์, เซิร์ฟเวอร์ขั้นสูง, เซิร์ฟเวอร์ศูนย์ข้อมูล
วินโดวส์เอ็กซ์พี ( วิสต์เลอร์) 5.1.2600 25 ตุลาคม SP3 (6 พ.ค.)
หน้าแรก, มืออาชีพ, 64 บิต, มีเดียเซ็นเตอร์ (อีโฮม), แท็บเล็ตพีซี, สตาร์ทเตอร์, แบบฝัง ( ตั๊กแตนตำข้าว), ยังไม่มีข้อความ; Windows Fundamentals สำหรับพีซีรุ่นเก่า ( ไอเกอร์)
วินโดวส์เซิร์ฟเวอร์ 2003 ( วิสต์เลอร์เซิร์ฟเวอร์, เซิร์ฟเวอร์ Windows .NET) 5.2.3790 24 เมษายน SP2 (13 พ.ค.)
มาตรฐาน, องค์กร, ศูนย์ข้อมูล, เว็บ, เซิร์ฟเวอร์ธุรกิจขนาดเล็ก ( บ็อบแคท), เซิร์ฟเวอร์คลัสเตอร์คอมพิวเตอร์, เซิร์ฟเวอร์จัดเก็บข้อมูล- Windows XP มืออาชีพ x64
วินโดว์วิสต้า ( ลองฮอร์น) 6.0.6000 30 มกราคม SP2 (25 พ.ค.)
สตาร์ทเตอร์, พื้นฐานบ้าน, โฮมพรีเมี่ยม, ธุรกิจ, องค์กร, สุดยอด, N Home Basic, N Business; รุ่น x64 ทั้งหมดยกเว้นรุ่น Starter
วินโดวส์เซิร์ฟเวอร์ 2008 ( เซิร์ฟเวอร์ลองฮอร์น) 6.0.6001 27 กุมภาพันธ์ SP2 (27 พ.ค.)
มาตรฐาน, องค์กร, ศูนย์ข้อมูล, HPC, เว็บ, อุปกรณ์จัดเก็บข้อมูล, ธุรกิจขนาดเล็ก ( เสือภูเขา), ธุรกิจสำคัญ ( เซ็นโตร), อิเทเนียม; รุ่น x64 ทั้งหมดยกเว้น HPC
วินโดวส์ 7 ( แบล็คโคมบ์, เวียนนา) 6.1.7600 22 ตุลาคม SP1 (KB976932) (22 กุมภาพันธ์)
Starter, Home Basic, Home Premium, Professional, Enterprise, Ultimate, Windows 7 N, Windows 7 E; เวอร์ชัน x64 ทั้งหมดยกเว้น Initial
วินโดวส์เซิร์ฟเวอร์ 2008 R2 6.1.7600 22 ตุลาคม SP1 (KB976932) (22 กุมภาพันธ์)
มาตรฐาน, องค์กร, ศูนย์ข้อมูล, HPC, เว็บ, พื้นที่เก็บข้อมูล, ธุรกิจขนาดเล็ก, Itanium; ทุกรุ่นเป็นแบบ 64 บิตเท่านั้น
วินโดวส์ 8 6.2.9200 26 ตุลาคม โปร (26 ตุลาคม)
Windows 8, Windows 8 RT, Professional, Professional N, Professional WMC, องค์กร, องค์กร N; รุ่น x64 ทั้งหมดยกเว้น Windows RT
วินโดวส์เซิร์ฟเวอร์ 2012 6.2.9200 26 ตุลาคม RTM (1 สิงหาคม)
มาตรฐาน, ศูนย์ข้อมูล, การจัดเก็บข้อมูล; ทุกรุ่นเป็นแบบ 64 บิตเท่านั้น

สถาปัตยกรรมภายใน

ส่วนประกอบเคอร์เนล

ส่วนประกอบโหมดผู้ใช้

ระบบย่อยส่วนต่อประสานผู้ใช้ใน Windows NT ใช้ส่วนต่อประสานหน้าต่างคล้ายกับ Windows รุ่นก่อนหน้า ออบเจ็กต์สองประเภทในระบบย่อยนี้ที่ไม่มีอยู่ใน Windows และ Windows 9x รุ่น 16 บิต ได้แก่ สถานีหน้าต่างและ เดสก์ท็อป- Window station สอดคล้องกับหนึ่งเซสชัน ผู้ใช้วินโดวส์ NT - ตัวอย่างเช่น เมื่อเชื่อมต่อผ่านบริการเดสก์ท็อประยะไกล สถานีหน้าต่างใหม่จะถูกสร้างขึ้น ทั้งหมด กระบวนการทำงานเป็นของหนึ่งในสถานีหน้าต่าง บริการอื่นนอกเหนือจากที่ทำเครื่องหมายว่าสามารถโต้ตอบกับเดสก์ท็อปจะทำงานในสถานีหน้าต่างที่แยกจากกันและมองไม่เห็น

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

สถานีหน้าต่างและเดสก์ท็อปเป็นเพียงวัตถุระบบย่อยของอินเทอร์เฟซผู้ใช้ Windows NT เท่านั้นที่สามารถกำหนดสิทธิ์การเข้าถึงได้ ประเภทวัตถุที่เหลืออยู่คือ หน้าต่างและ เมนู- จัดเตรียม การเข้าถึงแบบเต็มกระบวนการใด ๆ ที่อยู่ใน window station เดียวกันกับพวกเขา นั่นเป็นเหตุผล บริการวินโดวส์ NT ตามค่าเริ่มต้นจะทำงานใน window station ที่แยกจากกัน: ทำงานด้วยสิทธิ์ระดับสูง และการอนุญาตให้กระบวนการของผู้ใช้จัดการหน้าต่างบริการอย่างไม่มีกำหนดอาจทำให้เกิดปัญหาการหยุดทำงานและ/หรือความปลอดภัย

อินเทอร์เฟซซอฟต์แวร์

API ดั้งเดิม

Windows NT มี API หลายชุดสำหรับโปรแกรมแอปพลิเคชัน สิ่งหลักคือ API ที่เรียกว่า "เนทีฟ" ( NT เนทิฟ API) นำไปใช้ในไดนามิกลิงก์ไลบรารี ntdll.dll และประกอบด้วยสองส่วน: การเรียกระบบเคอร์เนล NT (ฟังก์ชันที่มีคำนำหน้า Nt และ Zw ถ่ายโอนการดำเนินการไปยังฟังก์ชันเคอร์เนล ntoskrnl.exe ที่มีชื่อเดียวกัน) และฟังก์ชันที่นำไปใช้ในโหมดผู้ใช้ ( ด้วยคำนำหน้า RTl) ฟังก์ชันบางอย่างของกลุ่มที่สองใช้การเรียกระบบภายใน ส่วนที่เหลือประกอบด้วยรหัสที่ไม่มีสิทธิพิเศษทั้งหมด และสามารถเรียกได้ไม่เพียงแต่จากรหัสโหมดผู้ใช้เท่านั้น แต่ยังมาจากไดรเวอร์ด้วย นอกเหนือจากฟังก์ชัน Native API แล้ว ntdll ยังมีฟังก์ชันของไลบรารีมาตรฐาน C อีกด้วย

เอกสารอย่างเป็นทางการสำหรับ Native API มีน้อยมาก แต่ชุมชนของผู้ที่ชื่นชอบสามารถรวบรวมข้อมูลจำนวนมากเกี่ยวกับอินเทอร์เฟซนี้ผ่านการลองผิดลองถูก โดยเฉพาะในเดือนกุมภาพันธ์ พ.ศ. 2543 หนังสือของ Gary Nebbett “ นำทางไป ฟังก์ชั่นพื้นฐาน Windows NT/2000 API"(ไอ 1-57870-199-6); ในปี 2545 มีการแปลเป็นภาษารัสเซีย (ISBN 5-8459-0238-X) แหล่งข้อมูลเกี่ยวกับ Native API อาจเป็น Windows DDK ซึ่งอธิบายฟังก์ชันเคอร์เนลบางส่วนที่มีให้ใช้งานผ่าน Native API รวมถึงการศึกษา รหัสวินโดวส์(วิศวกรรมย้อนกลับ) - ผ่านการถอดแยกชิ้นส่วน ไม่ว่าจะโดยใช้แหล่งที่มาของ Windows 2000 ที่มีให้ผ่านการรั่วไหล หรือใช้แหล่งที่มาของ Windows 2003 ที่มีให้ผ่าน โปรแกรมวินโดวส์เคอร์เนลการวิจัย

โหลดโปรแกรมที่ทำงานก่อนระบบย่อยที่ให้ส่วนที่เหลือของ Windows NT APIs ถูกจำกัดให้ใช้ Native API ตัวอย่างเช่น โปรแกรม autochk ซึ่งตรวจสอบดิสก์เมื่อโหลดระบบปฏิบัติการหลังจากการปิดเครื่องไม่ถูกต้อง จะใช้เฉพาะ Native API เท่านั้น

Win32 API

บ่อยครั้งที่โปรแกรมแอปพลิเคชันสำหรับ Windows NT ใช้ Win32 API ซึ่งเป็นอินเทอร์เฟซที่สร้างขึ้นโดยใช้ Windows OS 3.1 API ซึ่งช่วยให้คุณสามารถคอมไพล์โปรแกรมที่มีอยู่ใหม่สำหรับ Windows รุ่น 16 บิตโดยมีการเปลี่ยนแปลงซอร์สโค้ดเพียงเล็กน้อย ความเข้ากันได้ของ Win32 API และ Windows API 16 บิตนั้นยอดเยี่ยมมากจนแอปพลิเคชัน 32 บิตและ 16 บิตสามารถแลกเปลี่ยนข้อความได้อย่างอิสระ ทำงานร่วมกับหน้าต่างของกันและกัน ฯลฯ นอกเหนือจากการรองรับฟังก์ชันของ Windows API ที่มีอยู่แล้ว คุณลักษณะใหม่จำนวนหนึ่ง รวมถึงการสนับสนุนโปรแกรมคอนโซล มัลติเธรด และวัตถุการซิงโครไนซ์ เช่น mutexes และเซมาฟอร์ เอกสารประกอบสำหรับ Win32 API รวมอยู่ใน Microsoft Platform SDK และมีอยู่บนเว็บไซต์

ไลบรารีสนับสนุน Win32 API มีชื่อโดยทั่วไปเหมือนกับ ไลบรารีระบบ Windows 3.x พร้อมด้วยส่วนต่อท้าย 32: เหล่านี้คือไลบรารี kernel32, advapi32, gdi32, user32, comctl32, comdlg32, shell32 และอื่นๆ อีกมากมาย ฟังก์ชัน Win32 API สามารถใช้ฟังก์ชันที่จำเป็นด้วยตนเองในโหมดผู้ใช้ หรือเรียกใช้ฟังก์ชัน Native API ที่อธิบายไว้ข้างต้น หรือเข้าถึงระบบย่อย csrss ผ่านกลไก LPC ( ภาษาอังกฤษ) หรือทำการเรียกระบบไปยังไลบรารี win32k ซึ่งใช้สิ่งที่จำเป็นสำหรับ Win32 การสนับสนุน APIในโหมดเคอร์เนล ตัวเลือกทั้งสี่ที่แสดงไว้สามารถรวมกันในรูปแบบใดก็ได้ ตัวอย่างเช่น ฟังก์ชัน Win32 API WriteFile เรียกใช้ฟังก์ชัน Native API NtWriteFile เพื่อเขียนถึง ไฟล์ดิสก์และเรียกใช้ฟังก์ชัน csrss ที่เหมาะสมเพื่อส่งออกไปยังคอนโซล

การสนับสนุน Win32 API รวมอยู่ในตระกูลระบบปฏิบัติการ Windows 9x; นอกจากนี้ยังสามารถเพิ่มลงใน Windows 3.1x ได้ด้วยการติดตั้งแพ็คเกจ Win32s เพื่อให้ง่ายต่อการพอร์ตแอปพลิเคชัน Windows ที่มีอยู่ซึ่งใช้การเข้ารหัส MBCS เพื่อแสดงสตริง ฟังก์ชัน Win32 API ทั้งหมดที่ยอมรับสตริงเป็นพารามิเตอร์จึงถูกสร้างขึ้นในสองเวอร์ชัน: ฟังก์ชันที่มีส่วนต่อท้าย A ( แอนซี่) ยอมรับสตริง MBCS และฟังก์ชันที่มีส่วนต่อท้าย W ( กว้าง) ยอมรับสตริงที่เข้ารหัส UTF-16 ใน Win32s และ Windows 9x รองรับเฉพาะฟังก์ชัน A ในขณะที่ใน Windows NT ซึ่งสตริงทั้งหมดภายในระบบปฏิบัติการถูกจัดเก็บไว้โดยเฉพาะในรูปแบบ UTF-16 แต่ละฟังก์ชัน A จะแปลงพารามิเตอร์สตริงเป็น Unicode และเรียกใช้เวอร์ชัน W ของ ฟังก์ชั่นเดียวกัน ไฟล์ H ที่ให้มาของไลบรารียังกำหนดชื่อฟังก์ชันโดยไม่มีส่วนต่อท้าย และการใช้ฟังก์ชันเวอร์ชัน A หรือ W จะถูกกำหนดโดยตัวเลือกการคอมไพล์ และในโมดูล Delphi จนถึงเวอร์ชัน 2010 เป็นต้น เชื่อมโยงกับตัวเลือกที่มีส่วนต่อท้าย A สิ่งสำคัญคือต้องทราบว่าคุณลักษณะใหม่ส่วนใหญ่ที่นำมาใช้ในระบบปฏิบัติการตระกูล Windows 2000 หรือใหม่กว่านั้นมีอยู่ในเวอร์ชัน Unicode เท่านั้น เนื่องจากงานในการตรวจสอบความเข้ากันได้กับโปรแกรมรุ่นเก่าและกับ Windows 9x ไม่มีการกดเหมือนเมื่อก่อนอีกต่อไป

POSIX และ OS/2

Windows NT 4 รุ่นแรกรองรับสี่แพลตฟอร์ม (x86, Alpha, MIPS และ PowerPC) แต่การสนับสนุนสำหรับแพลตฟอร์มทั่วไปลดลงเมื่อมีการเปิดตัว Service Pack: การสนับสนุน MIPS ถูกลบออกจาก SP1 และการสนับสนุน PowerPC จาก SP3 Windows NT 4 รุ่นล่าสุดรองรับเฉพาะ x86 และ Alpha; แม้ว่าการสนับสนุนอัลฟ่าได้รับการวางแผนเพื่อรวมไว้ใน Windows 2000 แต่ก็ถูกลบออกจากรุ่น RC2 ด้วยเหตุนี้ x86 จึงกลายเป็นแพลตฟอร์มเดียวที่รองรับ Windows 2000

การสนับสนุนโปรเซสเซอร์ 64 บิตถูกนำมาใช้ครั้งแรกใน Windows XP สำหรับสถาปัตยกรรมโปรเซสเซอร์ IA-64 - Intel Itanium ขึ้นอยู่กับ Windows XP รุ่น 64 บิต Windows 2000 รุ่นเซิร์ฟเวอร์ 64 บิตก็ถูกสร้างขึ้นเช่นกัน ต่อมา มีการเพิ่มการสนับสนุนโปรเซสเซอร์ Itanium ให้กับ Windows Server 2003 บางเวอร์ชัน สถาปัตยกรรม 64 บิตตัวที่สองที่รองรับในระบบปฏิบัติการตระกูล Windows NT ถูกสร้างขึ้นโดย สถาปัตยกรรมเอเอ็มดี x86-64 นำไปใช้ในภายหลังใน โปรเซสเซอร์อินเทลเรียกว่า EM64T Windows Server 2003 SP1 x64 และ Windows XP Professional x64 เปิดตัวพร้อมกัน โดยแสดงถึงเวอร์ชันเซิร์ฟเวอร์และเดสก์ท็อปของ Windows รุ่นเดียวกัน โดยเฉพาะอย่างยิ่ง การอัปเดตเดียวกันนี้ใช้กับรุ่นเหล่านี้ ตั้งแต่ปี 2548 เป็นต้นมา Microsoft ได้ตัดสินใจหยุดรองรับ IA-64.; Windows NT เวอร์ชันล่าสุดที่รองรับ Itanium อย่างสมบูรณ์คือ Windows NT 5.2 (XP Professional 64-bit Edition และ Server 2003) อย่างไรก็ตาม สำหรับเซิร์ฟเวอร์ที่มีราคาแพงกว่า (และอัพเกรดได้ยากกว่า) Windows Server 2008 และ Windows Server 2008 R2 เวอร์ชันพิเศษจึงออกวางจำหน่าย และ Windows Server 2012 จะไม่ได้รับการสนับสนุน IA-64 อีกต่อไป

หมายเหตุ

ดูเพิ่มเติม

  • ReactOS เป็นระบบปฏิบัติการโอเพ่นซอร์สที่เข้ากันได้กับแอพพลิเคชั่นและ ไดรเวอร์ Windowsเอ็น.ที.