วันอังคารที่ 24 มกราคม พ.ศ. 2555

หน่วยที่4 ซอฟแวร์

ซอฟต์แวร์ หมายถึง ส่วนที่มนุษย์สัมผัสไม่ได้โดยตรง (นามธรรม) เป็นโปรแกรมหรือชุดคำสั่งที่ถูกเขียนขึ้นเพื่อสั่งให้เครื่องคอมพิวเตอร์ทำงาน ซอฟต์แวร์จึงเป็นเหมือนตัวเชื่อมระหว่างผู้ใช้เครื่องคอมพิวเตอร์และเครื่องคอมพิวเตอร์ ถ้าไม่มีซอฟต์แวร์เราก็ไม่สามารถใช้เครื่องคอมพิวเตอร์ทำอะไรได้เลย ซอฟต์แวร์สำหรับเครื่องคอมพิวเตอร์สามารถแบ่งออกได้เป็น
ซอฟต์แวร์ระบบ (System Software)
ซอฟต์แวร์ระบบประกอบด้วย ซอฟต์แวร์ 2 ประเภท คือ
  • ระบบปฏิบัติการ (Operating System) ระบบปฏิบัติการ หมายถึง ชุดของโปรแกรมที่อยู่ระหว่างฮาร์ดแวร์แลซอฟต์แวร์ประยุกต์ มีหน้าที่ในการควบคุมการปฏิบัติงานของฮาร์ดแวร์ และสนับสนุนคำสั่งสำหรับควบคุมการทำงานของฮาร์ดแวร์ประยุกต์ ตัวอย่างของซอฟต์แวร์ระบบปฏิบัติการที่นิยมใช้ในปัจจุบัน เช่น MS - DOS , UNIX , Windows 95 , และ Mac System 7 เป็นต้น ระบบปฏิบัติงานมีหน้าที่หลัก ๆ คือ
    • จัดส่วนประกอบต่าง ๆ ของระบบคอมพิวเตอร์ เช่น หน่วยประมวลผลกลาง หน่วยความจำ ที่เก็บข้อมูลสำรอง และเครื่องพิมพ์
    • จัดการงานในส่วนของการติดต่อกับผู้ใช้
    • ให้บริการโปรแกรมประยุกต์อื่น เช่น การรับข้อมูล และการแสดงผล เป็นต้น ปกติแล้วโปรแกรมประยุกต์จะถูกเรียกให้เริ่มต้นทำงานผ่านระบบปฏิบัติการ
ระบบปฏิบัติการทำงานอยู่เบื้องหลังการทำงานของผู้ใช้ โดยเฉพาะระบบปฏิบัติการบนเครื่องเมนเฟรมหรือเครื่องที่มีขนาดใหญ่ก็ย่อมมีการทำงานที่ซับซ้อนมากขึ้น เพราะต้องดูแลการทำงานหลายอย่างจากผู้ใช้หลายคนพร้อมกัน
ระบบปฏิบัติการบนเครื่องไมโครคอมพิวเตอร์
ในปัจจุบันนี้ ระบบปฏิบัติการบนเครื่องไมโครคอมพิวเตอร์ที่ได้รับความนิยม จะแยกตามฮาร์ดแวร์ที่ใช้งานได้เป็น 2 ระบบ คือระบบปฏิบัติการที่ทำงานบนเครื่องไอบีเอ็มพีซี (IBM personal Computer) หรือ ลียนแบบไอบีเอ็มพีซี (IBM PC Competible) และระบบปฏิบัติการที่ทำงานบนเครื่องแมคอินทอช (Macintosh) โดยปกติแล้ว โปรแกรมประยุกต์ใด ๆ จะสามารถทำงานบนระบบปฏิบัติการตัวใดตัวหนึ่งเท่านั้น เช่น โปรแกรมไมโครซอฟต์เวิร์ดที่ถูกออกแบบมาให้ทำงานบนเครื่องไอบีเอ็มพีซี ก็จะไม่สามารถนำไปใช้งานบนเครื่องแมคอินทอช เพราะเครื่องไอบีเอ็มพีซี จะนิยมใช้ระบบปฏิบัติการของไมโครซอฟต์ที่เรียกว่าอ็มเอสดอส (MS - DOS)หรืออาจใช้ระบบที่ใหม่กว่าคือไมโครซอฟต์วินโดว์ (Microsoft Windows) หรือระบบปฏิบัติการแบบเปิดในตระกูลยูนิกซ์ เช่น SCO UNIX หรือ LINUX ในขณะที่เครื่องแมคอินทอชใช้ระบบปฏิบัติการที่เรียกว่าแมคอินทอชซิสเต็มเซเว่น (Macintosh System 7) ซึ่งออกแบบโดยบริษัทแอปเปิล การที่เครื่องสองชนิดใช้ระบบปฏิบัติการต่างกัน เนื่องมาจากมีหน่วยประมวลผลกลางไม่เหมือนกัน ผู้ที่จะผลิตซอฟต์แวร์คอมพิวเตอร์จะต้องเลือกที่จะผลิตซอฟต์แวร์ให้ใช้บนระบบใดระบบหนึ่ง หรือถ้าจะให้ใช้ได้บนระบบปฏิบัติการทั้งสองชนิดก็ต้องพัฒนาซอฟต์แวร์ขึ้นมาสองชุด
โดยมากแล้วผู้ใช้เครื่องคอมพิวเตอร์จะไม่สนใจว่าจะใช้ระบบปฏิบัติการใด แต่จะเลือกซอฟต์แวร์ประยุกต์ที่สามารถทำงานให้ได้ประโยชน์สูงสุดตามต้องการ แล้วจึงพิจารณาว่าซอฟต์แวร์นั้นทำงานบนระบบปฏิบัติการชนิดใด แต่ผู้ใช้บางกลุ่มก็เจาะจงเลือกใช้ระบบปฏิบัติการเอ็มเอสดอส เพราะมีซอฟต์แวร์ประยุกต์ให้เลือกใช้ได้มากมาย และผู้ใช้บางกลุ่มก็ต้องการใช้เครื่องแมคอินทอช เพราะมีระบบโต้ตอบผู้ใช้ที่ได้ง่ายและสวยงาม
  • ระบบปฏิบัติการเอ็มเอสดอส (MS - DOS) ผู้ใช้เครื่องคอมพิวเตอร์ในปัจจุบันนี้มักจะมีฮาร์ดดิสก์ติดอยู่ด้วยเสมอ เมื่อผู้ใช้เปิดเครื่องคอมพิวเตอร์ ระบบปฏิบัติการก็จะถูกเรียกจากฮาร์ดดิสก์มาไว้ในหน่วยความจำของเครื่องเพื่อเตรียมที่จะใช้งานได้ทันทีที่ต้องการ ขั้นตอนที่ย้ายระบบปฏิบัติการเข้าสู่หน่วยความจำของเครื่องนั้นเรียกว่าการบูตระบบ (booting) หรือ บูตแสตป (bootstrap) ซึ่งมีขั้นตอนคือเมื่อเปิดสวิทช์เครื่องคอมพิวเตอร์ขึ้น โปรแกรมเล็ก ๆ ที่อยู่ในหน่วยความจำรอม (ROM) จะเรียกเอาส่วนประกอบพื้นฐานที่จำเป็นของระบบปฏิบัติการจากฮาร์ดดิสก์เข้ามาไว้ในหน่วยความจำหลัก ซึ่งจะได้ผลลัพธ์บนจอภาพเป็น C > หรือ C:\ > โดยที่หมายถึงดิสก์ไดรฟ์ที่ทำงานอยู่ และเครื่องหมาย > หมายถึงการเตรียมพร้อมที่จะทำงาน (prompt) จากนั้นผู้ใช้ก็จะสามารถพิมพ์คำสั่งของเอ็มเอสดอสได้ทันที
  • ไมโครซอฟต์วินโดว์ไมโครซอฟต์วินโดว์ หรือที่นิยมเรียกสั้น ๆ ว่าวินโดว์ มีระบบการติดต่อกับผู้ใช้เป็นแบบกราฟิกที่มีสีสันสวยงามและสามารถใช้ได้ง่าย เรียกระบบที่ติดต่อกับผู้ใช้ลักษณะนี้ว่า GUI (Graphic user Interface) ซึ่งผู้ใช้บนระบบวินโดว์จะทำงานกับเมนู (menu)และรูปภาพที่เรียกว่าไอคอน (icon)แทนที่จะเป็นการพิมพ์คำสั่งต่าง ๆ ดังรูป
แสดงไอคอนและเมนูบนระบบวินโดว์



เมนูดังรูปจะเรียกว่า พูลดาวน์เมนู (pull down menu) ซึ่งจะเป็นเมนูที่เมื่อทำการเลือกรายการที่ต้องการแล้วจะมีรายการย่อยถูกถึงลง (pull down) ให้ปรากฏออกมาก นอกจากนี้จะมี เมนูอีกชนิดกนึ่งเรียกว่า ป๊อปอัพเมนู (pop-up menu) ซึ่งจะปรากฏเป็นหน้าต่างย่อยซ้อนขึ้นมาด้านหน้าเมื่อเลือกรายการที่ต้องการ
ระบบวินโดว์มีข้อดีคือเอื้ออำนวยให้ผู้ใช้สามารถทำงานได้ง่าย โดยการแสดงภาพกราฟฟิกบนจอภาพเมื่อผู้ใช้เปิดเครื่องขึ้นมา และผู้ใช้สามารถใช้เมาส์ในการชี้และคลิกที่ภาพเพื่อเลือกซอฟต์แวร์ที่ต้องการ แทนที่จะต้องพิมพ์คำสั่งเช่นเดียวกับระบบดอส ดังนั้นระบบวินโดว์จึงได้รับความนิยมอย่างกว้างขวาง และได้มีการพัฒนาเป็นเวอร์ชันใหม่ ๆ อย่างต่อเนื่อง นับจาก Windows 3.0 , Window for Workgroup ซึ่งเป็นcooperative multitasking จนมาถึง Windows 95 ซึ่งเป็น preenptive multitasking และ Windows NT ซึ่งเป็นระบบปฏิบัติการเครือข่ายแบบ Client/Server


ระบบปฏิบัติการเครือข่าย
ระบบปฏิบัติการเครือข่าย (Network operating System หรือ NOS) จะเป็นระบบปฏิบัติการที่ถูกออกแบบมาสำหรับจัดการงานด้านการติดต่อสื่อสารระหว่างคอมพิวเตอร์ และช่วยให้คอมพิวเตอร์ที่ต่ออยู่กับเครือข่ายสามารถใช้อุปกรณ์ต่าง ๆ เช่น ฮาร์ดดิสก์ หรือเครื่องพิมพ์ร่วมกันได้ ระบบปฏิบัติการเครือข่ายมีคุณสมบัติต่างๆ คล้ายระบบปฏิบัติการเอ็มเอสดอส แต่เพิ่มการจัดการเกี่ยวกับเครือข่ายและการใช้อุปกรณ์ร่วมกัน รวมทั้งมีระบบการป้องกันการสูญหายของข้อมูลด้วย
ระบบปฏิบัติการเครือข่ายที่นิยมใช้ปัจจุบัน จะใช้หลักการประมวลผลแบบไคลเอนต์เซิร์ฟเวอร์ (Client / Server) โดยส่วนประกอบสำหรับการเรียกใช้แฟ้มข้อมูลและการจัดการโปรแกรมจะทำงานอยู่บนเครื่องเซิร์ฟเวอร์ ในขณะที่ส่วนประกอบอื่น ๆ ของระบบปฏิบัติการเครือข่ายจะอยู่บนเครื่องไคลเอนต์ เช่น การติดต่อกับผู้ใช้ การประมวลผล เป็นต้น การจัดการให้ผู้ใช้เห็นว่างานและอุปกรณ์ทั้งหลายที่ใช้นั้นเสมือนอยู่บนเครื่องไคลเอนต์เอง ถือว่าเป็นหน้าที่หลักอันหนึ่งของระบบปฏิบัติการเครือข่าย
ระบบปฏิบัติการบนเครื่องคอมพิวเตอร์ขนาดใหญ่
เครื่องคอมพิวเตอร์ขนาดใหญ่เช่นเครื่องระดับเมนเฟรม ได้ถูกพัฒนาขึ้นกว่าสองทศวรรษก่อนที่จะมีเครื่องไมโครคอมพิวเตอร์เสียอีก เครื่องระดับเมนเฟรมจะนำมาใช้ในด้านธุระกิจและการศึกษา ซึ่งจะมีผู้ใช้งานพร้อม ๆ กันจำนวนมาก ทำให้ระบบปฏิบัติการของเครื่องระดับนี้มีการทำงานที่ซับซ้อนมากขึ้น โดยต้องทำการดูแลสั่งงานโปรแกรมพร้อม ๆ กันจำนวนหลาย ๆ โปรแกรม (Multitasking) การเข้าใช้งานเครื่องของผู้ใช้จำนวนหลาย ๆ คน (Mutiuser) การจัดลำดับและแบ่งปันทรัพยากรให้กับผู้ใช้ ตลอดจนการรักษาความเป็นส่วนตัวและความลับของผู้ใช้แต่ละคน
ระบบปฏิบัติการแบบเปิด (Open Operating System)
ในสมัยก่อนผู้ที่พัฒนาระบบปฏิบัติการคือบริษัทที่ผลิตคอมพิวเตอร์ ดังนั้นระบบปฏิบัติการจึงถูกออกแบบให้สามารถใช้ได้เฉพาะกับเครื่องของบริษัทเท่านั้น เรียกระบบปฏิบัติการประเภทนี้ว่า ระบบปฏิบัติการแบบปิด (Proprietary operating system) ซึ่งแม้แต่ในปัจจุบันนี้เครื่องระดับเมนเฟรมผู้ขายก็ยังคงเป็นผู้กำหนดความสามารถของระบบปฏิบัติการของเครื่องที่ขายอยู่ อย่างไรก็ดี ปัจจุบันนี้เริ่มมีแนวโน้มที่จะทำให้ระบบการสามารถนำไปใช้งานบนเครื่องต่าง ๆ กันได้(Protable operating system) เช่น ระบบปฏิบัติการยูนิกซ์ (UNIX) เป็นต้น
ะบบปฏิบัติการยูนิกซ์ เป็นระบบปฏิบัติการที่พัฒนาขึ้นในปี ค.ศ. 1971 โดย และ จากห้องปฏิบัติการเบลล์ของบริษัท AT& T ซึ่งได้ทำการพัฒนาบนเครื่องมินิคอมพิวเตอร์ของ DEC ระบบปฏิบัติการยูนิกซ์เป็นระบบที่สนับสนุนผู้ใช้งานจำนวนหลายคนพร้อม ๆ กัน โดยใช้หลัก การแบ่งเวลา (time sharing) ต่อมาในปี ค.ศ. 1970 ได้มีการบริจาคระบบปฏิบัติการนี้ให้กับวงการศึกษา และมีการนำไปใช้ทั้งในมหาวิทยา และวิทยาลัยต่าง ๆ มากมาย นักศึกษาจำนวนมากจึงได้ใช้ระบบปฏิบัติการยูนิกซ์ เป็นผลให้เมื่อนักศึกษาเหล่านั้นจบออกไปทำงาน ก็ยังคงเคยชินกับระบบปฏิบัติการยูนิกซ์และจัดหามาใช้ในองค์กรที่ทำงานอยู่ระบบปฏิบัติการยูนิกซ์จึงได้รับการยอมรับในวงการอุตสาหกรรมและวงการอื่น ๆ อย่างแพร่หลายและมีการใช้งานอยู่ตั้งแต่เครื่องระดับไมโครคอมพิวเตอร์ ไปจนถึงเครื่องระดับซูเปอร์คอมพิวเตอร์
  • ตัวแปลภาษาคอมพิวเตอร์ (Translator) ในการพัฒนาซอฟต์แวร์คอมพิวเตอร์นั้น โปรแกรมเมอร์จะเขียนโปรแกรมในภาษาคอมพิวเตอร์แบบต่าง ๆ ตามแต่ความชำนาญของแต่ละคน โปรแกรมที่ได้จะเรียกว่า โปรแกรมต้นฉบับ หรือ ซอร์สโคด (source code) ซึ่งมนุษย์จะอ่านโปรแกรมต้นฉบับนี้ได้แต่คอมพิวเตอร์จะไม่เข้าใจคำสั่งเหล่านั้น เนื่องจากคอมพิวเตอร์เข้าใจแต่ภาษาเครื่อง (Machine Language) ซึ่งประกอบขึ้นจากรหัสฐานสองเท่านั้น จึงต้องมีการใช้โปรแกรม ตัวแปรภาษาคอมพิวเตอร์ (Translator) ในการแปลภาษาคอมพิวเตอร์ภาษาต่าง ๆ ไปเป็นภาษาเครื่องโปรแกรมที่แปลจากโปรแกรมต้นฉบับแล้วเรียกว่า ออบเจคโคด (object code) ซึ่งจะประกอบด้วยรหัสคำสั่งที่คอมพิวเตอร์สามารถเข้าใจและนำไปปฏิบัติได้ต่อไป
    ตัวแปลภาษาที่มีการใช้อยู่ในปัจจุบัน จะต่างกันที่ขั้นตอนที่ใช้ในการแปลภาษาให้อยู่ในรูปแบบที่คอมพิวเตอร์สามารถเข้าใจได้ สามารถแบ่งได้เป็น
    • แอสเซมเบลอ (Assembler) เป็นตัวแปลภาษาแอสแซมบลีซึ่งเป็นภาษาระดับต่ำให้เป็นภาษาเครื่อง
    • อินเตอร์พรีเตอร์ (Interpreter) เป็นตัวแปลภาษาระดับสูงซึ่งเป็นภาษาที่ใกล้เคียงกับภาษามนุษย์ ไปเป็นภาษาเครื่อง โดยใช้หลักการแปลพร้อมกับงานตามคำสั่งทีละบรรทัดตลอดทั้งโปรแกรม ทำให้การแก้ไขโปรแกรมทำได้ง่ายและรวดเร็วแต่ออบเจคโคดที่ได้จากการแปลโดยการใช้อินเตอร์พรีเตอร์นั้นไม่สามารถเก็บไว้ใช้ใหม่ได้จะต้องแปลโปรแกรมใหม่ทุกครั้งที่ต้องการใช้งาน
    • คอมไพเลอร์ (Compiler) จะเป็นตัวแปลภาษาระดับสูงเช่นเดียวกับอินเตอร์พรีเตอร์แต่จะใช้วิธีแปลโปรแกรมทั้งโปรแกรมให้เป็นออบเจคโคด ก่อนที่จะสามารถนำไปทำงานเช่นเดียวกับแอสแซมเบลอ ออบเจคโคดที่ได้จากการแปลนั้นสามารถจัดเก็บไว้เป็นแฟ้มข้อมูล เพื่อให้นำไปใช้ในการทำงานเมื่อใดก็ได้ตามต้องการ ซึ่งเป็นข้อดีของคอมไพเลอร์ที่จะนำผลที่ได้จากการแปลนั้นไปใช้งานกี่ครั้งก็ได้ไม่จำกัด ไม่ต้องเสียเวลาในการแปลใหม่ทุกครั้ง ทำให้เป็นรูปแบบการแปลที่ได้รับความนิยมอย่างมาก
  • ในปัจจุบัน มีหลักการแปลภาษาคอมพิวเตอร์แบบใหม่เกิดขึ้น คือแปลจากซอร์สโคดไปเป็นรหัสชั่วคราวหรืออินเทอมีเดียตโคด (Intermediate code) ซึ่งสามารถนำไปทำงานได้ด้วยการใช้โปรแกรมในการอ่านและทำงานตามรหัสชั่วคราวนั้น โดยโปรแกรมนี้จะมีหลักการทำงานคล้ายกับอินเทอพรีเตอร์ แต่จะทำงานได้เร็วกว่าเนื่องจากรหัสชั่วคราวจะใกล้เคียงกับภาษาเครื่องมาก มีข้อดีคือสามารถนำรหัสชั่วคราวนั้นไปใช้ได้กับทุก ๆ เครื่องที่มีโปรแกรมตีความได้ทันที


1. ซอฟต์แวร์สำหรับระบบ (System Software)
คือ ชุดของคำสั่งที่เขียนไว้เป็นคำสั่งสำเร็จรูป ซึ่งจะทำงานใกล้ชิดกับคอมพิวเตอร์มากที่สุด เพื่อคอยควบคุมการทำงานของฮาร์ดแวร์ทุกอย่าง และอำนวยความสะดวกให้กับผู้ใช้ในการใช้งาน ซอฟต์แวร์หรือโปรแกรมระบบที่รู้จักกันดีก็คือ DOS, Windows, Unix, Linux รวมทั้งโปรแกรมแปลคำสั่งที่เขียนในภาษาระดับสูง เช่น ภาษา Basic, Fortran, Pascal, Cobol, C เป็นต้น นอกจากนี้โปรแกรมที่ใช้ในการตรวจสอบระบบเช่น Norton’s Utilities ก็นับเป็นโปรแกรมสำหรับระบบด้วยเช่นกัน
2. ซอฟต์แวร์ประยุกต์ (Application Software)
คือ ซอฟต์แวร์หรือโปรแกรมที่มำให้คอมพิวเตอร์ทำงานต่างๆ ตามที่ผู้ใช้ต้องการ ไม่ว่าจะด้านเอกสาร บัญชี การจัดเก็บข้อมูล เป็นต้น ซอฟต์แวร์ประยุกต์สามารถจำแนกได้เป็น 2 ประเภท คือ
2.1 ซอฟต์แวร์สำหรับงานเฉพาะด้าน คือ โปรแกรมซึ่งเขียนขึ้นเพื่อการทำงานเฉพาะอย่างที่เราต้องการ บางที่เรียกว่า User’s Program เช่น โปรแกรมการทำบัญชีจ่ายเงินเดือน โปรแกรมระบบเช่าซื้อ โปรแกรมการทำสินค้าคงคลัง เป็นต้น ซึ่งแต่ละโปรแกรมก็มักจะมีเงื่อนไข หรือแบบฟอร์มแตกต่างกันออกไปตามความต้องการ หรือกฏเกณฑ์ของแต่ละหน่วยงานที่ใช้ ซึ่งสามารถดัดแปลงแก้ไขเพิ่มเติม (Modifications) ในบางส่วนของโปรแกรมได้ เพื่อให้ตรงกับความต้องการของผู้ใช้ และซอฟต์แวร์ประยุกต์ที่เขียนขึ้นนี้โดยส่วนใหญ่มักใช้ภาษาระดับสูงเป็นตัวพัฒนา
2.3 ซอฟต์แวร์สำหรับงานทั่วไป เป็นโปรแกรมประยุกต์ที่มีผู้จัดทำไว้ เพื่อใช้ในการทำงานประเภทต่างๆ ทั่วไป โดยผู้ใช้คนอื่นๆ สามารถนำโปรแกรมนี้ไปประยุกต์ใช้กับข้อมูลของตนได้ แต่จะไม่สามารถทำการดัดแปลง หรือแก้ไขโปรแกรมได้ ผู้ใช้ไม่จำเป็นต้องเขียนโปรแกรมเอง ซึ่งเป็นการประหยัดเวลา แรงงาน และค่าใช้จ่ายในการเขียนโปรแกรม นอกจากนี้ ยังไม่ต้องเวลามากในการฝึกและปฏิบัติ ซึ่งโปรแกรมสำเร็จรูปนี้ มักจะมีการใช้งานในหน่วยงานมราขาดบุคลากรที่มีความชำนาญเป็นพิเศษในการเขียนโปรแกรม ดังนั้น การใช้โปรแกรมสำเร็จรูปจึงเป็นสิ่งที่อำนวยความสะดวกและเป็นประโยชน์อย่างยิ่ง ตัวอย่างโปรแกรมสำเร็จรูปที่นิยมใช้ได้แก่ MS-Office, Lotus, Adobe Photoshop, SPSS, Internet Explorer และ เกมส์ต่างๆ เป็นต้น