5 min read
windows -> linux

init

ก่อนเราย้ายมาลองใช้ linux ทีแรกเราคงคิดว่าไม่น่าได้เอามาลองใช้จริงๆหรอก แต่น่าจะเพราะว่าเราเลื่อนเว็บไปเจอคนแต่งหน้าจอใน r/unixporn แล้วอยากลองทำตามดูมั่ง (ไม่มีอะไรหรอก แค่เห็นละมันค่อนข้าง customize ดี)

problem

ปัญหาก่อนที่เราลองตัดสินใจย้ายมาใช้ linux มันน่าจะมาจากที่ว่า windows 11 ที่เราใช้ก่อนหน้านี้มันค่อนข้างกิน “ทรัพยากร” ค่อนข้างมากเลย เนื่องจากคอมส่วนตัวที่เราใช้มันเป็นประจำทุกวันจริงๆอะ คือเรามีงบค่อนข้างจำกัดในการประกอบคอมที่ใช้ปัจจุบันขึ้นมา ปัญหาที่เราเจอจริงๆเลยคือ ตอนเราเพิ่งเปิดเครื่องมาโดยที่ “ไม่ได้ลงอะไรนอกจากเกมส์พวก steam หรือพวกโปรแกรมจิปถะที่ใช้เป็นประจำ” มันก็กินแรมเราไปเลย “ครึ่งนึง” เราแปะ spec ก่อนเลยดีกว่าน่าจะเข้าใจได้ง่ายกว่า

copy from fastfetch

CPU: 12th Gen Intel(R) Core(TM) i3-12100F (8) @ 4.30 GHz
GPU: Intel Arc A380 @ 2.45 GHz [Discrete]
Memory: 16GB / 3200

จากข้างต้นเนี่ย จริงๆมันพอนะกับ windows 11 ด้วยที่ cpu/gpu กับพวก ram มันก็เลยขั้นต่ำมาต้องเยอะนะ แต่พอใช้จริงๆ คือมันกินเยอะจนไม่กล้าเอาอะไรมาเปิดเพิ่มอะ อย่างที่เราใช้ปัจจุบันอะ เราใช้แค่เปิด browser กับเกมส์ที่เล่นอยู่ประจำ (เดี๋ยวเล่า session เกมส์ทีหลัง) เพิ่งนึกออก เราแปะขั้นต่ำของ windows 11 ก่อน

via Microsoft Support - Windows 11 System Requirements

Processors/CPUs (Central Processing Units): 1 Ghz or faster with 2 or more cores and appearing on our list of approved CPUs.
The processor in your PC will be a main determining factor for running Windows 11. The clock speed
(the 1 Ghz or faster requirement) and number of cores (2 or more) are inherent to the processor design as it was manufactured
and are not considered upgradable components.

RAM: 4 GB. If your PC has less than 4GB of memory, there are sometimes options for upgrading to get additional RAM.
You may want to consult your PC manufacturer’s website or with a retailer to see if there are easy and affordable
options to meet the minimum requirements for Windows 11.

Storage: 64 GB or larger storage device. If your PC does not have a large enough storage drive, there are sometimes
options for upgrading the drive. You may want to consult your PC manufacturer’s website or with a retailer to see if
there are easy and affordable options to meet the minimum requirements for Windows 11.

จริงๆจากข้างบนที่เราเอามาแปะลงใน blog จริงๆมันผ่านหมดแหละ แต่ 4GB กับแรมขั้นต่ำ? แค่เปิด browser คิดว่ามันน่าจะไม่ไหวละ จอน่าจะฟ้าก่อน (ฮา)

ต่อมาที่เราคิดว่าเราน่าจะบ่นได้ตอนที่เรายังใช้ windows อยู่ คือช่วงหลังๆ ที่ os release ออกมาใหม่จริงๆ feature ที่ออกมากับ version แต่ละ ทีอย่างพวก 7 -> 8 -> 10 -> 11 มันก็มีพัฒนาการที่เพิ่มขึ้นเรื่อยๆ อะไรก็ใช้ง่ายขึ้นกับสะดวกขึ้น แต่ยุคหลังๆที่เราใช้ล่าสุดเหมือนจะพยายามยัดอะไรที่มันเป็น bloatware มากเกินกว่าที่จะเป็น feature ที่เราคิดว่าจะได้ใช้มันบ่อยๆเป็นประจำทุกวันที่เปิดคอมขึ้นมาใช้ อาทิจำพวก Copilot กับ webapps ที่ใช้ runtime ที่เป็น browser ที่ลบออกค่อนข้างยาก ถึงแม้ว่าเราจะเคยใช้มันมาก่อนก็ตามที (เคยใช้พวก edge remover แล้วแต่ก็ต้องหาความพยายามมานั่งลบเองแบบ manual ทุกครั้งหลังจากที่มันอัพเดทของ windows update)

ใช่ อีกข้อนึงคือ “it’s expensive”

linux part

linux มันก็เหมือนกับ windows แหละแต่ว่ามันก็ไม่เหมือนในเวลาเดียวกันตรงที่

  • เราอยากลบอะไรออกก็ลบได้ อยากลงอะไรก็ลงได้ตามใจอยาก
  • อยากพิเรนอะไรแปลกๆ พวก rm -rf /*
  • อยากเปลี่ยน windows manager ตามใจอยากที่อีกเจ้ามันทำไม่ได้
  • คอมกาก / อยากลง linux แต่ลงในนี้ ไม่ก็ นี่ นี่ นี่ นี่ และก็ นี่

linux distro

grab from distrobox

เห็นรูปข้างบนมั้ย นั่นแหละทำไมเราถึงวนเข้าหัวข้อนี้ก่อน ก่อนที่เราจะเลือก distro ที่ใช้จริงก็ลองมาพอสมควรแหละ ไหนๆก็ลองทำพวก Distrochooser มาบ้าง แต่หลักที่เราเคยลองเล่นคือจำพวก

  • Ubuntu
  • Arch
  • Fedora

ในหัวข้อนี้เราคงไม่ได้ลงลึกอะไรมาก เราเขียนแค่ว่ามันแตกต่างกันตรงไหนเฉยๆ

Ubuntu

ก่อนอื่นเลย มันเหมาะมากสำหรับถ้าอยากจะลองใช้ มี based มาจาก Debian แถมหน้า Desktop เป็น GNOME จัดว่าสวยเลยแหละ แต่เรามีปัญหาอยู่อย่างนึงคือ apt ของมันที่ใช้คือ “ช้ามาก” เราไม่รู้ว่าทำไมมันถึงช้า ด้วยที่แรกๆเราหัดใช้เรายังไม่ค่อยกล้าใช้พวก command ใน terminal มากซะเท่าไหร่ ตอนนั้นเรายังละอ่อนอยู่ (ฮา) พอใช้เป็นนิดหน่อยก็ถือว่าเป็นอะไรที่เปิดโลกดีสำหรับ “first look of linux world”

จริงๆของ Ubuntu มันก็มี หลายแบบ นะ พวก Kubuntu Lubuntu Xubuntu ที่แตกต่างกันตรง Desktop Manager (คิดไม่ออกให้นึกถึง ui windows ที่เปลี่ยนไปในแต่ละ os แต่อันนี้ได้หลายแบบตามใจเราเลย) ไปจนถึงพวก Ubuntu Studio ที่แถมพวกโปรแกรมตัดต่อ หรืออะไรที่มันทำงานที่เป็น media

ตอนนี้เราก็ยังใช้อยู่นะ แต่ใช้กับเครื่อง server ส่วนตัว เพราะว่าโปรแกรมส่วนมากมักจะ support ให้ ubuntu อยู่เสมอ แถมเราไม่ต้องไประแวงอัพเดทเครื่องอยู่เสมอด้วย (ส่วนมากก็ run บน docker container หมดอะเพราะว่าไม่อยากรื่ออะไรกับระบบมาก)

Arch

ok, i don’t use arch btw

อันนี้เป็นอีก distro ที่มีคนใช้เยอะเหมือนกันเนื่องจาก package ใน distro มันค่อนข้างเยอะกว่าชาวบ้าน แถม community ใหญ่อีก ด้วยความที่ว่า arch มันมีสิ่งที่เรียกว่า AUR เป็นศูนย์รวม package ที่ community port กันเพื่อที่เอามาใช้ใน archlinux ซึ่ง “Perfect” บางทีพวก nixos อาจจะเยอะกว่า แต่เราไม่เคยใช้ เราจะไม่พูดถึงมัน ละก็มัน lightweight มากถ้าเทียบกับ ubuntu

ใช่ เพิ่งนึกออก package manager อย่าง pacman นี่ไวแบบนรกเลย สั่งปุ๊บมาปั๊บ กับ archwiki ที่ทำให้เราใช้ linux กับพวกจำคำสั่งพื้นฐานได้

thanks archwiki

ปัญหาหลักๆที่เราย้ายมันก็ไม่มากหรอก เพราะว่าตอนเราเพิ่งเคยใช้ใหม่ๆ เราเคยจะลบโปรแกรมนึงออก แต่เรางงกับคำสั่งลบหลายแบบ แล้วเราเผลอไปลบอะไรที่เกี่ยวกับ sys ไปแล้วหลังเปิดเครื่องใหม่มันเปิดคอมมาแบบไม่ปกติ (ฮา) กับตอนที่เราจะลง kernel หรือ patch พวก kernel ไว้ใช้กับพวก waydroid มันค่อนข้างยุ่งยากสำหรับเรา (แค่ลงก็ไม่ง่ายละ แถมตอนแตะ kernel นี่พลาดทีนี่ได้หา rescue มาแก้แน่ๆ) กับ package ที่มันอัพเดทบ่อยทุกวันจนมันทำ program บางอย่างที่ใช้ใน daily use มันพัง เนื่องจากมันเป็น Rolling Release แหละเราเข้าใจ เราเลยทนใช้ได้มาไม่กี่เดือนจนเราย้ายไป fedora ใน session ต่อไป

Fedora

อันนี้เราคิดว่ามันไม่ได้แตกต่างอะไรกับทั้งสองอันข้างบนมากหรอก เพราะว่าเราใช้เป็น daily อยู่ทุกวัน (เราหยุด distro-hopper เพราะว่าเจอ fedora นี่แหละ) เราคงไม่อธิบายว่ามันมีที่มายังไง แต่เรามาจบตรงนี้เพราะว่าเราชอบ package manager ของมันที่เป็น “dnf” แปลกกว่าชาวบ้านหน่อย แต่เราชอบมันที่สุดละ เช่น บางทีเราอยากจะลงโปรแกรมพวก waydroid ที่เอาไว้ใช้แอพ android ปกติถ้าเป็น arch บางทีเราต้องไปหาวิธีลง linux-zen ที่มันมี binder (ถ้าจำไม่ผิดน่าจะชื่อนี้) เอาไว้เปิด android apps บางอันที่เป็น arm แต่ถ้าเราลงในพวก fedora เราแทบไม่ต้องมีความจำเป็นที่เราต้องไปหา binder มา patch kernel หรือว่าหาลง linux-zen มาเลยเพราะว่ามันจะ patch ให้เองหลังจากเราใช้

dnf install waydroid

แถมตอนที่เราลบออก ก็แค่เปลี่ยนจาก install เป็น remove มันก็จะลบแค่ dependency ที่มันต้องใช้สำหรับ waydroid และจะไม่แตะต้องอะไรกับ system เลย (ใน case ที่มัน conflict จริงๆมันก็ใช้ —allowerasing เพื่อที่จะลงแทนหรือลบออกได้อยู่)

หลักๆแล้วหลังจากเราลง fedora ถ้าเราต้องใช้โปรแกรมที่มันไม่ได้เป็น opensource พวก discord หรืออย่างอื่น มันจะอยู่ใน rpmfusion ซึ่ง “เราต้องหามันมาลงเอง” แต่ไม่ได้ยากเกินไปหรอกเพราะว่ามีบอกวิธีลงอยู่

ที่เหลือน่าจะไม่มีอะไรมาก ใน fedora มันมีสิ่งที่เรียกว่า copr มันก็คล้ายๆ aur ของ archlinux แหละ แต่มันจะไม่ได้เยอะมากเหมือน aur ก็เท่านั้นเอง

หลักๆของ fedora มันก็คล้ายๆกับ ubuntu นะที่มันมีหลาย flavor ที่จะแตกต่างไปตาม Desktop Manager ที่มีมากมายหลายแบบ แถมเพิ่งมีแบบ Immune os อย่าง fedora atomic อีก โดยรวมสำหรับเราเหมือนมันอยู่ตรงกลางระหว่าง

ubuntu -> fedora <- archlinux

มันมีจุดที่เราไม่ชอบอยู่นะตรงที่มันเปิดนาน แต่ก็ดีในเวลาเดียวกันตรงที่ system มันอัพเดทอะไรที่เกี่ยวกับ kernel ใหม่มันก็จะยังไม่ได้ลบอันเก่าออก เผื่อตอนใช้อันใหม่แล้วมัน hang/error อะไรซักอย่างนึง

มันก็ลบออกได้เหมือนกับสำหรับ kernel เก่าที่ไม่ได้ใช้แล้ว แถม grub ก็ autoconfig ให้ทุกรอบด้วย

Real use-case

น่าจะเป็นหัวข้อที่เราคิดว่าน่าจะไม่ยืดมากละ เราจะเขียนแค่ว่าวัน ๆ นึงเราใช้ทำอะไรบ้างละกัน หลักๆเลยเราน่าจะใช้เล่นเว็บ / เกมส์ สลับกับทำงานบ้าง (นิดหน่อย ฮา)

Game use-cases

ก่อนหน้าเราไม่รู้ว่าคนที่จะใช้เล่นเกมส์ในนี้เขาลำบากกันมากขนาดไหน แต่เราเป็นคนติดเกมส์มาก (ถึงแม้ว่าเราจะไม่ได้ติดในเกมส์ที่คนอื่นเขาเล่นกัน) เราจะแยกเป็นเกมส์ระหว่างที่มันมาจาก Windows กับ Native แต่อยากเล่าส่วนของ windows based games ก่อนละกัน

Windows

ด้วยความที่ในยุค “ปัจจุบัน” ที่มี Steam Deck ที่มันใช้เปิดเกมส์ผ่าน Proton เกมส์ในยุคปัจจุบันเลยทำให้มันเล่นบน linux ได้เกือบทุกเกมส์ยัน online-competitive อาทิ

  • Apex Legends
  • Overwatch
  • XDefiant

ยกตัวอย่างแค่นี้แหละ เพราะว่าไม่ได้เงิน (ฮา) ที่เหลือลองหาดูใน areweanticheatyet กับจำพวกเกมส์ online-competitive ไม่ก็ ProtonDB แต่มีข้อยกเว้นอยู่คือเกมส์ที่มันใช้ไม่ได้มันจะมีเกมส์ที่ใช้ระบบ Anti-cheat เป็น

  • kernel-mode anticheat
  • unsupport anti-cheat (พวก Gacha Games)

แต่สำหรับพวกบางเกมส์ที่เป็นกาชาก็อาจจะหาวิธีให้มันเปิดได้อยู่ แต่อาจจะต้องรับความเสี่ยงบ้าง

ส่วนที่เหลือเกมส์ที่อยู่นอก Steam อาทิพวก XDefiant หรือ Starcraft ก็อาจะต้องใช้พวกโปรแกรมนอกหน่อยอย่างใช้ Lutris ลงเอา โดยผ่าน wine อีกทีนึง ที่เหลือไม่น่าจะมีอะไรยากเกินไปสำหรับยุคหลังๆแล้ว

thanks Steam :cheers:

General use-cases

ในเรื่องการใช้งานทั่วไป? ปกติทุกวันเราจะใช้พวกแค่

  • Firefox เป็น Browser แต่ก็มีเจ้าอื่นเหมือนกัน แล้วแต่จะสะดวกใช้ในประจำวัน
  • ฟังเพลง (ในเครื่อง) ก็จะมีพวก Audacious Strawberry ไม่ก็ทำเป็น mpd ขึ้นมาได้เหมือนกัน (i’m main mpd with ncmpcpp)
  • video player ก็ VLC ไม่ก็ mpv
  • word procressor, เราไม่ค่อยได้ใช้มันเท่าไหร่ แต่ใช้จริงๆก็ใช้พวก Based-webapp ที่เป็นเจ้าชั้นนำ ไม่ก็พวก LibreOffice (เราหนักใช้ Markdown มากกว่าเพราะว่ามัน Export สะดวกดีตอนจะเอามันไปปริ้นเป็นเอกสาร)

Developer (for me)

หลักๆเราเขียนเกมส์ด้วย unity เป็นหลัก ปัญหาที่เราเจอน่าจะเจอแค่ ระบบการทำงานของ source control ที่เราต้องมาหัดใช้มันใหม่หมดเลย เพราะว่ามันไม่ค่อยมีพวกโปรแกรม git gui ซะเท่าไหร่ จึงต้องหัดใช้มันใหม่หมด ส่วน stack ปัจจุบันเราจะใช้พวก

  • vscode
  • rider (Jetbrains IDE)
  • terminal code-editor (eg., neovim with nvchad, hylix or vim) อันนี้น้อยมากที่เราจะได้ใช้ เพราะว่าเราหัดอยู่เผื่อได้ใช้มันซักวันนึง 55555555

ส่วนภาษาอื่นก็พวก nodejs มาใช้ในนี้มันก็ไวดีนะ ถึงแม้ว่าจะไม่ค่อยได้ใช้มันก็ตาม แต่เรื่อง requirement บาง engine ของการทำเกมส์หรืออื่นๆเราก็แก้ปัญหาด้วย distrobox เอา เพราะจะได้ไม่ต้องมาลงใหม่อีกรอบ

ฉันไม่อยากลง distro ใหม่ แถมไม่ต้องมานั่งเคลีย package ตอนที่ไม่ได้ใช้มันแล้วด้วย

Last word

สำหรับตอนนี้การที่เราย้ายมาซบ linux มันก็ไม่ได้แย่ ณ ปีที่เราเขียน post นี้ขึ้นมา โดยรวมเราให้ 7/10 ที่เอามาทดแทนได้สำหรับเรา แต่ก็ขึ้นอยู่กับการตัดสินใจในแต่ละคนด้วยว่า “โอเค” กับมันหรือเปล่า


ที่เหลือก็น่าจะหมดละสำหรับ blog แรกเรา อาจจะเขียนมืนๆ หน่อยแต่จะพยายามกลับมาหัดเขียนให้บ่อยขึ้นละกัน ขึ้นอยู่กับว่าเราจะไปเจอเรื่องอะไรมา (ฮา)