วิธีติดตั้ง OWASP ZAP บน Ubuntu

วิธีติดตั้ง OWASP ZAP

1. ดาวน์โหลด OWASP ZAP เวอร์ชั่น 2.7.0 ที่เป็นไฟล์ archive ไปไว้ที่ไดเรคทอรี่ /tmp

wget -c -P /tmp https://github.com/zaproxy/zaproxy/releases/download/2.7.0/ZAP_2.7.0_Linux.tar.gz

2. extract ไฟล์ archive ไปไว้ที่ไดเรคทอรี่ /opt

sudo tar xvf /tmp/ZAP_2.7.0_Linux.tar.gz -C /opt

3. ถึงตอนนี้ก็ติดตั้งเสร็จแล้วครับ, เริ่มต้นใช้งาน OWASP ZAP ได้เลย 🙂

/opt/ZAP_2.7.0/zap.sh

การตั้งค่า OWASP ZAP เบื้องต้น

วิธีติดตั้ง Root CA certificate บน Web Browser

ปัญหาที่เราจะพบเมื่อเราไม่ติดตั้ง Root CA certificate บน Web Browser เอาไว้ คือ เมื่อเราเข้าเว็บไซต์ที่เป็น HTTPS จะมีข้อความแจ้งเตือนเกี่ยวกับ invalid security certificate แบบในรูปครับ

*** วิธีแก้ไข คือ Export Root CA certificate ออกมาจากโปรแกรม OWASP ZAP แล้วเอาไปติดตั้งลงบน Web Browser ครับ ***

วิธี Export Root CA certificate

  1. เปิดโปรแกรม OWASP ZAP
  2. ไปที่เมนู Tools > Options > Dynamic SSL Certificates
  3. คลิ๊กปุ่ม Save เพื่อ Export ไฟล์ Root CA certificate ออกมา (จำไว้ด้วยครับ ว่าเราตั้งชื่อไฟล์ว่าอะไร แล้วบันทึกไว้ที่ไหน)

วิธีติดตั้ง Root CA certificate บน Firefox

  1. เปิดโปรแกรม Firefox
  2. พิมพ์ about:preferences ที่ address bar แล้วกดปุ่ม Enter
  3. ไปที่ Advanced > Certificates > View Certificates > Authorities
  4. กดปุ่ม Import แล้วเลือกไฟล์ Root CA certificate ที่เราเพิ่ง Export ออกมา
  5. จากนั้นจะมีหน้าต่างใหม่โผล่ขึ้นมา คลิ๊กให้มีเครื่องหมายถูกที่ Trust this CA to identify websites จากนั้นกดปุ่ม OK

วิธีแก้ปัญหา OWASP ZAP มีสถานะเป็น Always on Top เมื่อ Traffic ถูก Intercept

  1. เปิดโปรแกรม OWASP ZAP
  2. ไปที่เมนู Tools > Options > Breakpoints
  3. คลิ๊กเอาเครื่องหมายถูกออกที่ ZAP always on top when breakpoint hit
  4. คลิ๊กปุ่ม OK

วิธีตั้งค่า Firefox ให้ใช้งาน OWASP ZAP เป็น Proxy

  1. เปิดโปรแกรม Firefox
  2. พิมพ์ about:preferences ที่ address bar แล้วกดปุ่ม Enter
  3. ไปที่ Advanced > Network > Connection > Settings
  4. เลือก Manual proxy configuration
  5. กำหนด HTTP Proxy=127.0.0.1, Port=8080
  6. คลิ๊กให้มีเครื่องหมายถูกที่ Use this proxy server for all protocols
  7. ตรง No Proxy for ลบออกให้หมด หากจะใช้ OWASP ZAP เพื่อทดสอบกับ localhost หรือ 127.0.0.1 ด้วย
  8. กดปุ่ม OK

วิธีทำให้ OWASP ZAP ใช้ Tor เป็น Proxy

1. สร้างไฟล์สำหรับเรียกใช้งาน OWASP ZAP ที่ใช้ Tor เป็น Proxy ชื่อว่า zap-tor.sh

sudo cp /opt/ZAP_2.7.0/zap.sh /opt/ZAP_2.7.0/zap-tor.sh

2. แก้ไขไฟล์ zap-tor.sh ให้ใช้ Tor เป็น Proxy โดยส่งผ่าน option ไปที่ JVM (ZAP เป็น JAVA application)

sudo sed 's/exec java ${JMEM}/exec java -DsocksProxyHost=127.0.0.1 -DsocksProxyPort=9050 ${JMEM}/g' -i /opt/ZAP_2.7.0/zap-tor.sh

3. เรียกใช้งาน OWASP ZAP ที่ใช้ Tor เป็น Proxy

/opt/ZAP_2.7.0/zap-tor.sh

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

Raspberry Pi คืออะไร ?

Raspberry Pi คือ บอร์ดคอมพิวเตอร์ขนาดเล็ก (Single-Board Computer หรือ SBC) ที่ถูกพัฒนาขึ้นโดย Raspberry Pi Foundation มีคุณสมบัติเด่น คือ ติดต่อ และความคุมอุปกรณ์อิเล็กทรอนิกส์ได้

Raspberry Pi 3 B+ by Gareth Halfacree from Bradford, UK [CC BY-SA 2.0], via Wikimedia Commons
Raspberry Pi Zero
Raspberry Pi Zero By Evan-AmosOwn work, Public Domain, Link
Raspberry Pi Compute Module
Raspberry Pi Compute Module By Raspberry Pi Foundation (Raspberry Pi Foundation) [CC BY-SA 4.0], via Wikimedia Commons

ลักษณะทั่วไปของ Raspberry Pi

  • เป็นคอมพิวเตอร์ที่ มีความสามารถในการใช้งานทั่วไป เช่น ใช้เพื่อทำงานเอกสาร, ดูหนัง ฟังเพลง, ใช้เพื่อการคำนวณต่างๆ หรือจะทำเป็น Web Server ก็ย่อมได้
  • เป็นคอมพิวเตอร์ที่ มีขนาดเล็ก
  • เป็นคอมพิวเตอร์ที่ มีราคาถูก เพราะผู้พัฒนามีเจตนาสร้างขึ้นมาเพื่อให้เป็นสื่อการเรียนการสอนทางด้านคอมพิวเตอร์ และเพื่อให้กลุ่มประเทศที่กำลังพัฒนาสามารถมีคอมพิวเตอร์ใช้ได้ทั่วถึงขึ้น
    • Raspberry Pi 3 Model B+ ราคาประมาณ 35 USD (ประมาณ 1,200 บาท)
    • Raspberry Pi Zero ราคาประมาณ 5 USD (ประมาณ 170 บาท)
    • Raspberry Pi Compute Module 3 ราคาประมาณ 30 USD (ประมาณ 1,000 บาท)
    • *** ราคานี้เป็นราคาโดยประมาณที่ยังไม่รวมค่านำเข้าไทย ค่าภาษี และ ราคาที่แต่ละร้านจะบวกเพิ่มเพื่อเป็นกำไร ***
  • เป็นคอมพิวเตอร์ที่ มีความสามารถในการสื่อสาร และควบคุมอุปกรณ์อิเล็กทรอนิกส์ได้ เช่น สามารถรับรู้สถานะของเครื่องใช้ไฟฟ้าได้ว่ากำลังทำงานอยู่หรือไม่ และ ยังสามารถสั่งงานให้เครื่องใช้ไฟฟ้าทำงานหรือหยุดทำงานก็ได้

ใช้ Raspberry Pi ทำอะไรได้บ้าง ?

เนื่องจาก Raspberry Pi เป็นคอมพิวเตอร์ แน่นอนมันย่อมทำทุกอย่างที่คอมพิวเตอร์ทำได้ เช่น

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

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

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

ซึ่งผมคงบรรยายได้ไม่หมดว่ามันทำอะไรได้บ้าง เอาเป็นว่าไปลองดูเว็บนี้ก็แล้วกัน ว่าเค้าใช้ Raspberry Pi ทำอะไรกันไปแล้วบ้าง 1132 Projects tagged with “raspberry pi” – Hackaday.io

Raspberry Pi ต้องมีระบบปฏิบัติการ

ก่อนที่จะใช้ Raspberry Pi ได้นั้น จำเป็นต้องติดตั้งระบบปฏิบัติการให้กับ Raspberry Pi ก่อน โดยระบบปฏิบัติการที่นิยมใช้กัน คือ ระบบปฏิบัติการ Raspbian เพราะเป็นระบบปฏิบัติการที่ถูกสนับสนุนโดยตรงจากทาง Raspberry Pi Foundation นั่นเอง

*** Raspbian เป็นระบบปฏิบัติการตระกูลลินุกซ์ครับ ใครที่ไม่เคยใช้ลินุกซ์ก็อาจจะรู้สึกว่ามันยากสักหน่อยนะครับ ***

แต่นอกเหนือจากระบบปฏิบัติการ Raspbian แล้ว ก็ยังมีระบบปฏิบัติการอื่นๆ ให้เลือกใช้กันมากมาย ไปเลือกดูกันเองที่ https://www.raspberrypi.org/downloads/

การควบคุมอุปกรณ์อิเล็กทรอนิกส์

บนบอร์ด Raspberry Pi จะมีสิ่งที่เรียกว่า GPIO (General Purpose Input-Output) ซึ่งมันคือส่วนที่เอาไว้ต่อสัญญาณ Input/Output เข้ากับวงจรอิเล็กทรอนิกส์ภายนอกได้

Raspberry Pi 1 Model B+ GPIO Pins

การรับ/ส่งสัญญาณ Input/Output ผ่าน GPIO จำเป็นต้องเขียนโปรแกรมสั่งงาน โดยภาษาที่นิยมใช้กันทั่วไป ได้แก่ ภาษา Python แต่นอกจากภาษา Python แล้ว ก็ยังมีภาษาอื่นๆ ให้เลือกใช้กันอีก เช่น C/C++, Shell Script และภาษาอื่นๆ

โดยรูปแบบหนึ่งของสัญญาณที่ใช้รับ/ส่งจะอยู่รูปแบบของแรงดันไฟฟ้า 0V กับ 3.3V เช่น

  • เมื่อ GPIO ขา X ได้รับไฟ 0V (หรือไม่ถูกจ่ายไฟ) >> โปรแกรมจะได้รับสัญญาณเป็น 0 หรือ False
  • เมื่อ GPIO ขา X ได้รับไฟ 3.3V >> โปรแกรมจะได้รับสัญญาณเป็น 1 หรือ True
  • เมื่อโปรแกรมส่งสัญญาณออกไปเป็น 0 หรือ False >> GPIO ขา X จะจ่ายไฟ 0V (หรือไม่จ่ายไฟ)
  • เมื่อโปรแกรมส่งสัญญาณออกไปเป็น 1 หรือ True >> GPIO ขา X จะจ่ายไฟ 3.3V

ตัวอย่างโค้ดโปรแกรมภาษา Python

GPIO.setup(X, GPIO.OUT)
GPIO.output(X, True)

ตัวอย่างนี้เป็นการตั้งให้ GPIO ขาที่ X เป็นขา Output และส่งสัญญาณออกไปเป็น True หรือก็คือจ่ายไฟออกไป 3.3V แต่ถ้าเปลี่ยนจาก True เป็น False ก็จะจ่ายไฟออกไป 0V (หรือไม่จ่ายไฟ)

GPIO.setup(X, GPIO.IN)
input = GPIO.input(X)

ส่วนตัวอย่างนี้เป็นการตั้งให้ GPIO ขาที่ X เป็นขา Input และเมื่อได้รับไฟ 3.3V ตัวแปร input จะมีค่าเท่ากับ True และแน่นอนเมื่อได้รับไฟ 0V (ไม่ถูกจ่ายไฟ) ตัวแปร input ก็จะมีค่าเท่ากับ False นั่นเอง

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

วิธี ADD / COPY Hidden File ขณะ Build Docker Image

ปัญหา

เมื่อเราใช้คำสั่ง ADD หรือ COPY ใน Dockerfile เพื่อคัดลอก Hidden File (ไฟล์ในระบบ Linux ที่ชื่อขึ้นต้นด้วยจุด .) ไปยัง Docker Image ในขณะที่เรา Build Image

ถ้าเราใช้รูปแบบคำสั่งเป็น

ADD <src>... <dest>

หรือ

COPY <src>... <dest>

เราอาจจะพบข้อผิดพลาดดังนี้

lstat destdir/.filename: no such file or directory

วิธีแก้ไข

เพื่อหลีกเลี่ยงข้อผิดพลาดดังกล่าว แนะนำให้ใช้คำสั่ง ADD และ COPY ในอีกรูปแบบหนึ่ง ดังนี้

ADD ["<src>",... "<dest>"]

หรือ

COPY ["<src>",... "<dest>"]

ซึ่งโดยส่วนตัวแล้ว ผมคิดว่ารูปแบบนี้น่าใช้กว่ารูปแบบแรก เพราะนอกจากจะใช้คัดลอก Hidden File ได้แล้ว ก็ยังสามารถใช้รูปแบบนี้คัดลอกไฟล์ที่มี Whitespace (เว้นวรรค) ได้ด้วย

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

วิธี build hping3 บน Ubuntu

โดยปกติบน Ubuntu คุณสามารถติดตั้ง hping3 ผ่าน repository ได้โดยใช้คำสั่ง apt หรือ apt-get อยู่แล้ว

แต่ถ้าคุณจะ build hping3 เอง อาจจะด้วยเหตุผลอะไรก็แล้วแต่ ให้คุณทำตามขั้นตอนด้านล่างนี้

1. ถ้าคุณยังไม่ได้ติดตั้งชุดเครื่องมือสำหรับ build ให้ติดตั้งก่อน โดยใช้คำสั่งนี้

sudo apt install -y build-essential

2. ติดตั้ง pcap development package

sudo apt install -y libpcap-dev
sudo ln -s /usr/include/pcap/bpf.h /usr/include/net/bpf.h

3. ติดตั้ง TCL development package

sudo apt install -y tcl-dev

4. ดาวน์โหลด source ไฟล์ hping3 จากเว็บไซต์ต้นฉบับ

wget http://www.hping.org/hping3-20051105.tar.gz

5. extract hping3 archive ที่เพิ่งดาวน์โหลดมา

tar xf hping3-20051105.tar.gz

6. ย้ายไปทำงานที่ไดเรกทอรี่ hping3 ที่เพิ่ง extract ออกมา

cd hping3-20051105

7. ถ้าคุณใช้ Ubuntu เวอร์ชั่น 64บิท คุณต้อง Patch ไฟล์ bytesex.h ก่อน

wget -O hping3-bytesex.h-64bit.patch https://git.io/vMsrB
patch bytesex.h hping3-bytesex.h-64bit.patch

8. รันสคริป configure เพื่อสร้าง Makefile ใหม่

./configure

9. build, strip และ ติดตั้ง hping3

make
make strip
sudo make install

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

วิธีอัปเกรด PHPMailer สำหรับ WordPress

เงื่อนไขการอัปเกรด

การอัปเกรดด้วยวิธีต่อไปนี้ เป็นวิธีการอัปเกรดด้วย command line บน linux server

วิธีอัปเกรด

ย้ายไปทำงานที่ไดเรกทอรี่ของเว็บไซต์ WordPress ที่ต้องการอัปเกรด

cd /var/www/your-wordpress

ค้นหาไฟล์ที่มีคำว่า “phpmailer.php” อยู่ในชื่อไฟล์

find . -iname *phpmailer.php*

ตรวจสอบเวอร์ชั่น PHPMailer ของไฟล์ที่พบ

grep \$Version ./your-found-file # Result is public $Version = 'x.y.zz';

สำรองไฟล์เอาไว้เผื่ออยากดาวน์เกรดกลับมาเป็นเวอร์ชั่นเดิมทีหลัง

# WordPress Core
cp ./wp-includes/class-phpmailer.php ./wp-includes/class-phpmailer.php.bak
cp ./wp-includes/class-pop3.php ./wp-includes/class-pop3.php.bak
cp ./wp-includes/class-smtp.php ./wp-includes/class-smtp.php.bak

# WordPress Themes and Plugins
cp ./wp-content/plugins/your-plugin/class.phpmailer.php ./wp-content/plugins/your-plugin/class.phpmailer.php.bak
cp ./wp-content/themes/your-theme/class.phpmailer.php ./wp-content/themes/your-theme/class.phpmailer.php.bak

ดาวน์โหลด PHPMailer และไฟล์ที่เกี่ยวข้อง เวอร์ชั่นล่าสุดมาพักไว้ที่ไดเรกทอรี่ /tmp

wget -P /tmp https://raw.githubusercontent.com/PHPMailer/PHPMailer/master/class.phpmailer.php
wget -P /tmp https://raw.githubusercontent.com/PHPMailer/PHPMailer/master/class.pop3.php
wget -P /tmp https://raw.githubusercontent.com/PHPMailer/PHPMailer/master/class.smtp.php

เริ่มการอัปเกรดโดยการเขียนทับไฟล์เวอร์ชั่นเก่า ด้วยไฟล์ที่เราดาวน์โหลดมาพักไว้ในไดเรกทอรี่ /tmp

# WordPress Core
cp /tmp/class.phpmailer.php ./wp-includes/class-phpmailer.php
cp /tmp/class.pop3.php ./wp-includes/class-pop3.php
cp /tmp/class.smtp.php ./wp-includes/class-smtp.php

# WordPress Themes and Plugins
cp /tmp/class.phpmailer.php ./wp-content/plugins/your-plugin/class.phpmailer.php
cp /tmp/class.phpmailer.php ./wp-content/themes/your-theme/class.phpmailer.php

ตั้งค่าสิทธิ์ของไฟล์ที่เราเพิ่งอัปเกรด เพื่อให้โปรแกรม Web Server เข้าถึงไฟล์ได้อย่างถูกต้อง

# WordPress Core
chown www-data:www-data ./wp-includes/class-phpmailer.php
chown www-data:www-data ./wp-includes/class-pop3.php
chown www-data:www-data ./wp-includes/class-smtp.php

# WordPress Themes and Plugins
chown www-data:www-data ./wp-content/plugins/your-plugin/class.phpmailer.php
chown www-data:www-data ./wp-content/themes/your-theme/class.phpmailer.php

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

วิธี save docker image เป็นไฟล์ .tar.gz

เมื่อคุณ save docker image โดยใช้คำสั่ง “docker save” คุณจะได้ไฟล์ออกมาเป็น .tar (tar archive)

docker save image_name > image_name.tar

คำสั่งนี้เป็นแค่คำสั่งที่รวมให้ docker image ซึ่งประกอบไปด้วยไฟล์หลายๆ ไฟล์ออกมาเป็นไฟล์ๆ เดียว แต่ยังไม่ได้ผ่านกระบวนการบีบอัดไฟล์ จึงทำให้ขนาดไฟล์ยังมีขนาดที่ข้อนข้างใหญ่ครับ (แต่ถ้าใครคิดว่าขนาดไฟล์ไม่ใช่ปัญหา ก็ใช้คำสั่งนี้ไปก็ได้ครับ)

วิธี save docker image เป็นไฟล์ .tar.gz

คุณสามารถ save docker image ให้ไฟล์ที่ออกมามีขนาดเล็กลงกว่าเดิมได้ โดยการบีบอัดด้วย gzip โดยใช้คำสั่งด่านล่างนี้ครับ

docker save image_name | gzip > image_name.tar.gz

นอกจากนี้คุณยังสามารถบีบอัดไฟล์ด้วย xz หรือ bzip2 ได้อีกด้วย

เช่น คำสั่งด้านล่างนี้ สำหรับ save docker image เป็น .tar.xz

docker save image_name | xz > image_name.tar.xz

หรือ คำสั่งด้านล่างนี้ สำหรับ save docker image เป็น .tar.bz2

docker save image_name | bzip2 > image_name.tar.bz2

วิธี load docker image จากไฟล์ .tar.gz

ข้อความจากเว็บไซต์ docker

The tarball may be compressed with gzip, bzip, or xz

หมายความว่า คุณสามารถ load docker image จากไฟล์ที่ถูกบีบอัดด้วย gzip, bzip หรือ xz ก็ย่อมได้

ดังนั้นคุณสามารถใช้คำสั่ง “docker load” แบบธรรมดาๆ ได้เลย โดยไม่จำเป็นต้องใส่ option เพิ่มเติมใดๆ เลย เช่น

docker load -i image_name.tar.gz

หรือ

docker load -i image_name.tar.bz2

หรือ

docker load -i image_name.tar.xz

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

วิธีติดตั้ง mdk3 บน Ubuntu

ถ้าคุณต้องการจะติดตั้ง mdk3 บน Ubuntu คุณจะต้อง build เอง โดยใช้วิธีดังต่อไปนี้

หมายเหตุ : วิธีนี้ทดสอบแล้ว โดยการ build ด้วย GCC 4.8 และติดตั้งบน Ubuntu 14.04

ขั้นตอนการ build mdk3

1. ดาวน์โหลดไฟล์ source ของ mdk3 จากเว็บไซต์ต้นฉบับ

wget http://aspj.aircrack-ng.org/mdk3-v6.tar.bz2

2. extract ไฟล์ archive ที่เพิ่งดาวน์โหลดมา

tar -xf mdk3-v6.tar.bz2

3. ย้ายไปที่งานที่ไดเรกทอรี่ mdk3 ที่เพิ่ง extract ออกมา

cd mdk3-v6

4. แก้ไขไฟล์ชื่อ “Makefile” ในบรรทัดที่ 2 จาก “LINKFLAGS   = –lpthread” ไปเป็น “LINKFLAGS   = –pthread” (ลบตัวเอ็ล “l” ออก) โดยจะใช้ editor ตัวไหนก็ได้แล้วแต่สะดวก เช่น vim, nano หรือ gedit

จาก > LINKFLAGS   = -lpthread
เป็น > LINKFLAGS   = -pthread

5.ใช้คำสั่ง make เพื่อเริ่มกระบวนการ build

make

6.ติดตั้ง mdk3 ลงบนระบบของคุณ (ขั้นตอนนี้ต้องใช้สิทธิ์ root)

sudo make install

เคล็ดลับ

คุณสามารถรวมขั้นตอนที่ 4 และ 5 เข้าด้วยกันโดยใช้คำสั่งต่อไปนี้

make LINKFLAGS=-pthread

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

Linux คืออะไร ?

Linux อ่านว่า ลินุกซ์ มีความหมายที่ถูกเข้าใจกันโดยทั่วไปได้ 2 ความหมาย คือ

  1. ลินุกซ์ ซึ่งหมายถึง ระบบปฏิบัติการลินุกซ์ (Linux Operating System)
  2. ลินุกซ์ ซึ่งหมายถึง ลินุกซ์ เคอร์เนิล (Linux Kernel)
Tux.svg
มาสคอต อย่างเป็นทางการของ Linux Kernel ชื่อว่า Tux

เริ่มแรกลินุกซ์ถูกสร้างขึ้นโดย Linus Torvalds โดยใช้ระบบปฏิบัติการ MINIX ซึ่งเป็นระบบปฏิบัติการแบบยูนิกซ์เป็นต้นแบบ โดย Linus Torvalds ไม่ได้พัฒนาลินุกซ์ให้เป็นระบบปฏิบัติการ แต่พัฒนาให้ลินุกซ์เป็นเพียงเคอร์เนิล (Kernel) หรือแก่นของระบบปฏิบัติการ ซึ่งจะเป็นส่วนที่อยู่ระดับล่างสุด และใกล้ชิดกับฮาร์ดแวร์มากที่สุด มีหน้าที่หลักในการติดต่อกับฮาร์ดแวร์ (Hardware) และจัดสรรทรัพยากรของระบบ (Resources Management) เท่านั้น ซึ่งยังไม่เพียงพอต่อการถูกนำไปใช้งานโดยผู้ใช้ทั่วไป

Kernel_Layout.svg
By Bobbo (Own work) [CC BY-SA 3.0 or GFDL], via Wikimedia Commons

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

Linux Distribution คืออะไร ?

Linux Distribution (อ่านว่า ลินุกซ์ดิสทริบิวชัน) หรือเรียกย่อๆ ว่า Linux Distro (อ่านว่า ลินุกซ์ดิสโทร) คือ ระบบปฏิบัติการลินุกซ์ที่ถูกออกแบบและปรับแต่งเพื่อการแจกจ่าย โดยการนำเอาระบบปฏิบัติการลินุกซ์มาปรับแต่งและเพิ่มซอฟต์แวร์พื้นฐานต่างๆ รวมเข้าไป เช่น เพิ่มส่วนติดต่อผู้ใช้, โปรแกรมจัดการไฟล์, โปรแกรมสำหรับดูหนัง-ฟังเพลง, โปรแกรมเว็บเบราว์เซอร์ เป็นต้น สรุปง่ายๆ ก็คือ ลินุกซ์ดิสโทรเป็นระบบปฏิบัติการลินุกซ์แบบสำเร็จรูป พร้อมใช้งาน เมื่อติดตั้งแล้วแทบจะไม่ต้องปรับแต่งหรือติดตั้งซอฟต์แวร์เพิ่มเลย ใช้งานได้ทันที เช่น Arch Linux, Debian, Ubuntu, Linux Mint, openSUSE, Red Hat และ Fedora เป็นต้น

ระบบปฏิบัติการ Ubuntu 18.04 LTS
ระบบปฏิบัติการ Ubuntu 18.04 LTS

ข้อดีของระบบปฏิบัติการลินุกซ์

  1. เป็นซอฟต์แวร์โอเพนซอร์ส ทำให้เราสามารถปรับแต่งระบบได้อย่างอิสระ
  2. ระบบปฏิบัติการลินุกซ์ส่วนใหญ่ อนุญาตให้คุณใช้งานได้ฟรี ไม่ต้องเสียค่าใช้จ่าย ทำให้ผู้ผลิตฮาร์ดแวร์ที่จำเป็นต้องมีระบบปฏิบัติการส่วนใหญ่นำลินุกซ์ไปใช้ในระบบ เพราะไม่ต้องจ่ายค่าลิขสิทธิ์เพิ่มเติม เช่น เราเตอร์, โทรศัพท์มือถือ, ระบบเครื่องเสียงในรถยนต์ หรือ อุปกรณ์อื่นๆ ที่ใช้ระบบปฏิบัติการ Android เป็นต้น
  3. ไม่ต้องกังวลเรื่องลิขสิทธิ์ เพราะเขาอนุญาตให้คุณใช้งานฟรีภายใต้เงื่อนไขที่ระบุไว้ในสัญญาอนุญาต
  4. ไวรัสคอมพิวเตอร์ส่วนใหญ่ ไม่สามารถทำงานบนระบบปฏิบัติการลินุกซ์ได้ เพราะมาตรการการรักษาความปลอดภัยของลินุกซ์เอง (เช่น ระบบสิทธิ์การใช้งานไฟล์) และเพราะลินุกซ์ยังมีปริมาณผู้ใช้งานที่น้อยมากเมื่อเทียบกับผู้ใช้งานระบบปฏิบัติการวินโดวส์ จนผู้พัฒนาไวรัสคิดว่ายังไม่คุ้มค่าที่จะมาสร้างไวรัสขึ้นมาเพื่อโจมตีผู้ใช้งานลินุกซ์ (คล้ายๆ กับความคิดที่ว่า จะตกปลาก็ตกในบ่อที่มีปลาเยอะๆ หน่อยย่อมให้ผลที่ดีกว่า ใช้เวลาตกปลาเท่ากันแต่จำนวนที่ตกได้ย่อมต่างกัน)
  5. ซอฟต์แวร์บนระบบปฏิบัติการลินุกซ์ส่วนมากได้รับการอัปเดตอยู่ตลอดเวลา ทำให้มั่นใจได้ในเสถียรภาพ ความสามารถ และความปลอดภัย

ข้อเสียของระบบปฏิบัติการลินุกซ์

  • ผู้ผลิตฮาร์ดแวร์ เช่น การ์ดจอ, printer, USB WiFi ไม่ค่อยให้ความสนใจกับไดรเวอร์อุปกรณ์ (device driver) บนลินุกซ์ ทำให้ฮาร์ดแวร์บางตัวไม่สามารถใช้งานได้กับลินุกซ์ หรือถ้าใช้งานได้ก็ไม่เต็มประสิทธิภาพเท่าที่ควร ดังนั้นหากคิดจะใช้ลินุกซ์ควรตรวจสอบให้แน่ใจก่อนว่าฮาร์ดแวร์นั้นๆ สามารถใช้ได้กับลินุกซ์หรือไม่ ถึงแม้ว่าปัจจุบันปัญหาเรื่องไดรเวอร์บนลินุกซ์จะลดลงแล้วก็ตาม
  • ไม่สามารถติดตั้งและใช้งานซอฟต์แวร์หลายๆ ตัวที่ถูกสร้างขึ้นมาสำหรับระบบปฏิบัติการวินโดวส์โดยเฉพาะได้ ดังนั้นหากจะเปลี่ยนมาใช้ลินุกซ์ควรตรวจสอบให้แน่ใจก่อนว่าซอฟต์แวร์ที่จำเป็น ต้องใช้นั้น สามารถใช้ได้บนลินุกซ์หรือไม่ หากซอฟต์แวร์ตัวนั้นใช้งานบนลินุกซ์ไม่ได้ ยังพอมีซอฟต์แวร์ตัวอื่นทดแทนได้ไหม
  • เกมบนระบบปฏิบัติการลินุกซ์ค่อนข้างน้อยเมื่อเทียบกับเกมบนระบบปฏิบัติการวินโดวส์ และหลายๆ เกมกราฟิกไม่สวยเอามากๆ ดังนั้นลินุกซ์จึงเป็นตัวเลือกที่ไม่ดีนักสำหรับผู้ที่ชื่นชอบการเล่นเกม เป็นชีวิตจิตใจ

หมายเหตุ : ลินุกซ์สามารถใช้งานซอฟต์แวร์ของระบบปฏิบัติการวินโดวส์ได้โดยเรียกใช้งานผ่านโปรแกรม Wine (ใช้ได้บางโปรแกรม) หรือ ติดตั้งซอฟต์แวร์ลงบนระบบปฏิบัติการวินโดวส์ที่ถูกติดตั้งไว้บน Virtual Machine เช่น VirtualBox หรือ VMware อีกที (ซึ่งต้องใช้ทรัพยากรของระบบมากพอตัว แน่นอน.. คอมพิวเตอร์เก่าๆ คงหมดสิทธิ์ !)

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน