តើកុំព្យូទ័រជាអ្វីពិតប្រាកដ?

មាតិកា

  1. ម៉ាស៊ីនដែលធ្វើតាមពាក្យបញ្ជា
  2. Input, ដំណើរការ (Processing), រក្សាទុក (Storage), Output
  3. Hardware និង Software
  4. ស្រទាប់ផ្សេងៗនៃប្រព័ន្ធកុំព្យូទ័រ
  5. កុំព្យូទ័រក្នុងជីវភាពប្រចាំថ្ងៃ
  6. ហេតុអ្វី Developer គួរយល់ដឹងពីចំណុចទាំងនេះ?
  7. ខ្លឹមសារដែលត្រូវសិក្សាក្នុងវគ្គនេះ

1. ម៉ាស៊ីនដែលធ្វើតាមពាក្យបញ្ជា

បើមិនគិតពីអេក្រង់ ក្តារចុច និងការផ្សព្វផ្សាយពាណិជ្ជកម្មទេ កុំព្យូទ័រគឺជាម៉ាស៊ីនដែលធ្វើរឿងតែមួយគត់៖ វាធ្វើតាមបញ្ជីពាក្យបញ្ជាដ៏សាមញ្ញបំផុត ក្នុងល្បឿនលឿនបំផុត។

ពាក្យបញ្ជា (instruction) នីមួយៗមានទំហំតូចណាស់ — «បូកលេខទាំងពីរនេះ», «ចម្លងតម្លៃនេះពីទីនេះទៅទីនោះ», «បើលេខនេះស្មើសូន្យ សូមលោតទៅពាក្យបញ្ជាផ្សេងទៀត»។ ពាក្យបញ្ជានីមួយៗគ្មានអ្វីស្មុគស្មាញ ឬអស្ចារ្យនោះឡើយ។ អ្វីដែលធ្វើឲ្យកុំព្យូទ័រមានថាមពលខ្លាំង គឺវាអាចប្រពឹត្តពាក្យបញ្ជាទាំងនេះបាន រាប់ពាន់លានដងក្នុងមួយវិនាទី ដោយឥតចេះហត់នឿយ និងឥតមានកំហុសឡើយ។

អ្វីៗទាំងអស់ដែលអ្នកធ្វើលើកុំព្យូទ័រ — មើលវីដេអូ, ផ្ញើសារ Telegram ឬបង់ប្រាក់តាម QR code — តាមពិតទៅគឺជាលំដាប់នៃពាក្យបញ្ជាតូចៗរាប់លាន ដែលដំណើរការតៗគ្នា។

អ្នកអាចគិតបែបនេះ៖ កុំព្យូទ័រប្រៀបដូចជាកម្មករដែលមានល្បឿនលឿនបំផុត និងធ្វើតាមបញ្ជាយ៉ាងតឹងរ៉ឹងបំផុត។ វានឹងធ្វើដូចគ្នាបេះបិទទៅនឹងអ្វីដែលគេបានប្រាប់ មិនលើសមិនខ្វះ។ នៅពេលកម្មវិធីមួយមាន bug កុំព្យូទ័រមិនមែនធ្វើច្រឡំទេ — វាកំពុងប្រតិបត្តិពាក្យបញ្ជា (ដែលខុសនោះ) យ៉ាងត្រឹមត្រូវបំផុតទៅវិញទេ។

2. Input, ដំណើរការ (Processing), រក្សាទុក (Storage), Output

ស្ទើរតែគ្រប់កុំព្យូទ័រទាំងអស់ ចាប់ពីទូរស័ព្ទដៃ រហូតដល់ Server នៅក្នុង Data Center សុទ្ធតែបំពេញមុខងារគ្រឹះចំនួន ៤ ដូចគ្នា៖

ការងារអត្ថន័យឧទាហរណ៍
Inputទទួលទិន្នន័យចូលក្តារចុច, កណ្តុរ, អេក្រង់ប៉ះ, កាមេរ៉ា, មីក្រូហ្វូន, បណ្តាញ (Network)
ដំណើរការ (Processing)ធ្វើការលើទិន្នន័យCPU គណនា ប្រៀបធៀប និងសម្រេចចិត្ត
រក្សាទុក (Storage)រក្សាទិន្នន័យទុកRAM (បណ្តោះអាសន្ន), SSD ឬ Hard Drive (អចិន្ត្រៃយ៍)
Outputបញ្ចេញលទ្ធផលអេក្រង់, ឧបករណ៍បំពងសំឡេង, ម៉ាស៊ីនបោះពុម្ព, បណ្តាញ (Network)

ឧទាហរណ៍សាមញ្ញ — ការវាយអក្សរ A ក្នុងកម្មវិធីជជែក៖

  1. Input៖ អ្នកចុចគ្រាប់ចុច A លើក្តារចុច ហើយក្តារចុចផ្ញើសញ្ញាទៅកុំព្យូទ័រ។
  2. ដំណើរការ៖ CPU ប្រតិបត្តិពាក្យបញ្ជារបស់កម្មវិធីជជែក ដើម្បីកំណត់ថាអក្សរនេះត្រូវដាក់ចូលក្នុងប្រអប់សារ។
  3. រក្សាទុក៖ អក្សរនោះត្រូវបានរក្សាទុកក្នុង Memory (RAM) ជាផ្នែកមួយនៃសារដែលមិនទាន់បានផ្ញើ។
  4. Output៖ អេក្រង់ធ្វើបច្ចុប្បន្នភាព (Refresh) ដោយបង្ហាញអក្សរ A នៅក្នុងប្រអប់សារ។

វដ្តទាំងមូលនេះកើតឡើងក្នុងរយៈពេលត្រឹមតែមួយភាគមួយពាន់នៃវិនាទី (ប៉ុន្មានមីលីវិនាទី) ប៉ុណ្ណោះ ហេតុនេះហើយបានជាយើងមានអារម្មណ៍ថាវាបង្ហាញឡើងភ្លាមៗ។

3. Hardware និង Software

Hardware គឺជាសមាសភាគរូបវន្ត — ពោលគឺអ្វីៗទាំងអស់ដែលអ្នកអាចមើលឃើញ និងប៉ះពាល់បាន៖

  • CPU (Processor)៖ ខួរក្បាលដែលទទួលខុសត្រូវលើការប្រតិបត្តិពាក្យបញ្ជា
  • RAM (Memory)៖ អង្គចងចាំបណ្តោះអាសន្នដែលមានល្បឿនលឿន
  • Storage (SSD ឬ Hard Drive)៖ កន្លែងរក្សាទុក File ជាអចិន្ត្រៃយ៍
  • Motherboard៖ បន្ទះសៀគ្វីចម្បងដែលភ្ជាប់គ្រឿងបន្លាស់ទាំងអស់បញ្ចូលគ្នា ដើម្បីឲ្យពួកវាប្រាស្រ័យទាក់ទងគ្នាបាន
  • ឧបករណ៍ Input/Output៖ ក្តារចុច, អេក្រង់, Network Card និងឧបករណ៍ផ្សេងៗទៀត

Software គឺជាសំណុំពាក្យបញ្ជា — ពោលគឺកម្មវិធីកុំព្យូទ័រ។ អ្នកមិនអាចប៉ះពាល់ Software ដោយផ្ទាល់បានទេ ព្រោះវាជាទិន្នន័យ ឬព័ត៌មានដែលត្រូវបានរក្សាទុកនៅលើ Hardware។ Web browser, Telegram, ប្រព័ន្ធប្រតិបត្តិការ (Operating System) និងកម្មវិធីគ្រប់យ៉ាងដែលអ្នកសរសេរ សុទ្ធតែជា Software។

ការប្រៀបធៀបដើម្បីងាយស្រមៃ៖ Hardware ប្រៀបដូចជា ផ្ទះបាយ (ចង្ក្រាន, ទូទឹកកក, កាំបិត) រីឯ Software ប្រៀបដូចជា រូបមន្តធ្វើម្ហូប។ ផ្ទះបាយតែមួយអាចចម្អិនម្ហូបបានរាប់ពាន់មុខ អាស្រ័យលើរូបមន្តដែលយកមកប្រើ។ ដូចគ្នានេះដែរ Laptop តែមួយអាចក្លាយជាកម្មវិធីកាត់តវីដេអូ ម៉ាស៊ីនលេងហ្គេម ឬ Web Server បាន គឺអាស្រ័យលើ Software ដែលកំពុងដំណើរការលើវា។

4. ស្រទាប់ផ្សេងៗនៃប្រព័ន្ធកុំព្យូទ័រ

កម្មវិធីរបស់អ្នកមិនដែលធ្វើការទាក់ទងផ្ទាល់ជាមួយ Hardware នោះទេ។ ផ្ទុយទៅវិញ ប្រព័ន្ធកុំព្យូទ័រត្រូវបានបង្កើតឡើងជា ស្រទាប់ៗ (Layers) ដោយស្រទាប់ខាងលើ មិនចាំបាច់ដឹងពីភាពស្មុគស្មាញនៃស្រទាប់ខាងក្រោមវាឡើយ៖

ស្រទាប់នានារបស់កុំព្យូទ័រ៖ hardware នៅខាងក្រោមបំផុត បន្ទាប់មកប្រព័ន្ធប្រតិបត្តិការ កម្មវិធី និងអ្នកប្រើប្រាស់

  • Hardware៖ CPU, RAM, Storage និងឧបករណ៍ផ្សេងៗ
  • ប្រព័ន្ធប្រតិបត្តិការ (OS)៖ Windows, macOS, Linux, Android, iOS — មានតួនាទីគ្រប់គ្រង Hardware និងបែងចែកធនធានទាំងនោះទៅឲ្យកម្មវិធីផ្សេងៗប្រើប្រាស់
  • កម្មវិធី (Applications)៖ Web Browser, Text Editor និងកម្មវិធីដែលអ្នកសរសេរ — ពួកវាស្កាត់ស្នើសុំធនធានដែលត្រូវការតាមរយៈ OS
  • អ្នកប្រើប្រាស់ (User)៖ ប្រើប្រាស់កម្មវិធីទាំងនោះ

ការរៀបចំជាស្រទាប់បែបនេះហើយ ដែលធ្វើឲ្យ Chrome Browser តែមួយអាចដំណើរការលើ Laptop រាប់ពាន់ម៉ូដែលផ្សេងៗគ្នាបាន៖ Chrome មានភារកិច្ចប្រាស្រ័យទាក់ទងតែជាមួយ OS ប៉ុណ្ណោះ ហើយ OS គឺជាអ្នកទទួលបន្ទុកដោះស្រាយជាមួយ Hardware ជាក់ស្តែងរបស់ម៉ាស៊ីននីមួយៗ។ យើងនឹងស្វែងយល់លម្អិតអំពីស្រទាប់ប្រព័ន្ធប្រតិបត្តិការនេះនៅជំពូកទី ៦។

5. កុំព្យូទ័រក្នុងជីវភាពប្រចាំថ្ងៃ

ពាក្យ «កុំព្យូទ័រ» ធ្វើឲ្យមនុស្សភាគច្រើននឹកឃើញតែ Laptop ប៉ុន្តែតាមនិយមន័យ — ម៉ាស៊ីនដែលធ្វើតាមពាក្យបញ្ជាដើម្បីដំណើរការទិន្នន័យ — កុំព្យូទ័រមានវត្តមាននៅគ្រប់ទីកន្លែង៖

  • ទូរស័ព្ទដៃ៖ ជាកុំព្យូទ័រពេញលេញមួយ ដែលមាន CPU, RAM, Storage និង OS
  • Web Server៖ ជាកុំព្យូទ័រដែលគ្មានអេក្រង់ ស្ថិតនៅក្នុង Data Center ហើយមានតួនាទីឆ្លើយតបទៅនឹងសំណើ (Request) របស់ទិន្នន័យ
  • ម៉ាស៊ីន ATM, Smart TV, ផ្ទាំងបញ្ជារថយន្ត និង Wi-Fi Router៖ សុទ្ធតែមានប្រព័ន្ធកុំព្យូទ័រតូចៗ embedded នៅខាងក្នុង
  • ម៉ាស៊ីនបោកខោអាវ៖ ក៏មានកុំព្យូទ័រតូចមួយ (ហៅថា Microcontroller) សម្រាប់បញ្ជា និងកំណត់ពេលវេលាបង្វិលផងដែរ

ពួកវាមានលក្ខណៈខុសគ្នាតែលើទំហំ ល្បឿន និងគោលបំណងប្រើប្រាស់ប៉ុណ្ណោះ ប៉ុន្តែពួកវាទាំងអស់សុទ្ធតែដំណើរការលើគោលការណ៍គ្រឹះដូចគ្នា ដែលអ្នកនឹងបានសិក្សានៅក្នុងស៊េរីមេរៀននេះ។

6. ហេតុអ្វី Developer គួរយល់ដឹងពីចំណុចទាំងនេះ?

អ្នកអាចសរសេរគេហទំព័រមួយដែលដំណើរការបាន ដោយមិនបាច់ដឹងពីរឿងទាំងនេះឡើយ។ ប៉ុន្តែមិនយូរមិនឆាប់ អ្នកនឹងជួបប្រទះសំណួរដូចជា៖

  • ហេតុអ្វីកម្មវិធីរបស់ខ្ញុំដើរយឺតជាងមុន នៅពេលមានអ្នកប្រើប្រាស់ច្រើន?
  • ហេតុអ្វី Server របស់ខ្ញុំគាំង (Crash) ដោយបង្ហាញសារ «Out of Memory»?
  • ហេតុអ្វីការទាញទិន្នន័យពី Database យឺតជាងការអានតម្លៃពី Variable?
  • ហេតុអ្វី UI របស់ខ្ញុំគាំង ពេលកំពុង Load File ធំ?
  • តើ Docker ពិតជាញែក (Isolate) អ្វីខ្លះ?

សំណួរនីមួយៗសុទ្ធតែមានចម្លើយដែលផ្សារភ្ជាប់ទៅនឹងប្រធានបទគ្រឹះក្នុងវគ្គសិក្សានេះ៖ CPU, Memory, Storage, Process, Thread និង I/O។ ការយល់ដឹងពីរបៀបដែលម៉ាស៊ីនធ្វើការ នឹងផ្លាស់ប្តូររឿងដែលធ្លាប់តែស្មុគស្មាញ និងអាថ៌កំបាំង ឲ្យទៅជាបញ្ហាដែលអ្នកអាចវិភាគ និងដោះស្រាយបានយ៉ាងច្បាស់លាស់។

7. ខ្លឹមសារដែលត្រូវសិក្សាក្នុងវគ្គនេះ

នេះជាផ្លូវ និងមេរៀនដែលនៅខាងមុខ៖

  1. តើកុំព្យូទ័រជាអ្វីពិតប្រាកដ? — (អ្នកកំពុងស្ថិតនៅទីនេះ)
  2. Bit, Byte ហើយអ្វីៗទាំងអស់គឺជាលេខ — របៀបដែលទិន្នន័យគ្រប់យ៉ាងត្រូវបានបម្លែងទៅជាលេខ
  3. CPU — របៀបដែលពាក្យបញ្ជា (Instruction) ត្រូវបានប្រតិបត្តិជាក់ស្តែង
  4. Memory៖ ប្រៀបធៀប RAM និង Storage — ទីតាំងរក្សាទុកទិន្នន័យ និងសារសំខាន់នៃល្បឿន
  5. File និង File System — របៀបដែល Storage រៀបចំទិន្នន័យជា File និង Folder
  6. ប្រព័ន្ធប្រតិបត្តិការ (OS) — អ្នកគ្រប់គ្រងដែលដំណើរការ និងសម្របសម្រួលប្រព័ន្ធទាំងមូល
  7. Process — អ្វីទៅជាកម្មវិធីដែលកំពុងដំណើរការ (Running Program)
  8. Thread និង Concurrency — ការបំពេញភារកិច្ចច្រើនក្នុងពេលតែមួយ
  9. Input/Output — ការប្រាស្រ័យទាក់ទងជាមួយឧបករណ៍ខាងក្រៅ និងមូលហេតុដែល I/O យឺតជាងគេ
  10. ការប្រមូលផ្តុំមេរៀនទាំងអស់ — តាមដានដំណើរការនៃការចុចបើកកម្មវិធីមួយ ចាប់ពីដើមដល់ចប់

មិនចាំបាច់មានជំនាញសរសេរកូដពីមុនមកទេ។ កុំព្យូទ័រដែលអ្នកកំពុងប្រើអានអត្ថបទនេះ គឺជាមន្ទីរពិសោធន៍ដ៏ល្អបំផុតសម្រាប់វគ្គសិក្សាទាំងមូល។

ទិញកាហ្វេជូនខ្ញុំ

ចូលចិត្តមេរៀននេះមែនទេ? សូមពិចារណាទិញកាហ្វេជូនខ្ញុំមួយកែវ ដើម្បីគាំទ្រការបង្កើតមាតិកាឥតគិតថ្លៃបន្ថែមទៀត!