---
import AppList from "@/components/AppList";
import BasicLayout from "@/layouts/BasicLayout.astro";
---

<BasicLayout title="แอพลิเคชั่น Linux">
	<main class="my-8 mx-16">
		<section id="appList">
			<h1>
				ฉันจำเป็นที่จะต้องทำ... Linux มีแอพลิเคชั่นสำหรับงานนั้นรึเปล่า
			</h1>
			<p>
				ด้านล่างนี้เป็นรายการสั้นๆ ของงานทั่วไปและแอพลิเคชั่น Linux
				ที่สามารถใช้ทำงานนั้นได้
			</p>
			<div class="mb-4">
				<span class="text-amber-600 dark:text-yellow-400">คำเตือน:</span
				> นี่ไม่ใช่และจะไม่มีทางเป็นรายการที่สมบูรณ์แบบ 100%
			</div>
			<AppList lang="th" client:load />
		</section>
		<section id="compatQuestions" class="mt-4">
			<h1>ความเข้ากันได้ของซอฟต์แวร์</h1>
			<p>ส่วนสั้น ๆ เกี่ยวกับความเข้ากันได้ของซอฟต์แวร์บน Linux</p>
			<details>
				<summary
					>เว็บแอพลิเคชั่นสามารถใช้งานได้รึเปล่า (Canva, Google Docs,
					Notion, ฯลฯ)</summary
				>
				<p>
					แอพเหล่านี้มีความน่าเป็นห่วงน้อยที่สุด
					ส่วนใหญ่แล้วก็ควรที่จะไม่มีปัญหาแต่อย่างใด
				</p>
			</details>
			<details>
				<summary>แอพลิเคชั่น Adobe ใช้งานได้หรือไม่</summary>
				<p>
					เป็นที่ทราบกันดีว่าอาจใช้งานได้ไม่ดีนัก
					แต่คุณก็สามารถลองดูได้ถ้าคุณต้องการ
				</p>
			</details>
			<details>
				<summary
					>ฉันสามารถใช้แอพหรือเกม Windows ที่ไม่ได้ถูกสร้างมาเพื่อ
					Linux ได้หรือไม่</summary
				>
				<p>
					มันเป็นไปได้ แต่ทุกอย่างจะไม่สามารถทำงานได้อย่างสมบูรณ์แบบ
					ดูที่<a href="https://appdb.winehq.org/"
						>ฐานข้อมูลแอพลิเคชั่น Wine</a
					> สำหรับแอพลิเคชั่นทั่วไปและ
					<a href="https://www.protondb.com/">ProtonDB</a> สำหรับเกมบน
					Steam
				</p>
			</details>
		</section>
		<section id="buzzwords" class="mt-4">
			<h1>คำศัพท์ที่พบเห็นได้บ่อย</h1>
			<p>
				นี่คือรายการคำศัพท์ที่คุณอาจพบเจอได้ในโลกแห่งซอฟต์แวร์และ Linux
				คุณไม่จำเป็นต้องจำคำศัพท์พวกนี้ทั้งหมด
				แต่คุณสามารถย้อนกลับมาอ่านได้หากคุณต้องการความหมายแบบสั้น ๆ
			</p>
			<dl>
				<dt>แพคเกจ (package)</dt>
				<dd>
					จินตนาการถึงกล่องที่มีไฟล์ซอฟต์แวร์
					คุณสามารถติดตั้งแพคเกจได้
					ซึ่งจะหมายถึงการคัดลอกไฟล์ที่อยู่ภายในกล่องนั้นไปยังระบบของคุณ
				</dd>
				<dt>ตัวจัดการแพคเกจ (package manager)</dt>
				<dd>
					ซอฟต์แวร์ที่ช่วยคุณจัดการแพคเกจ เป็นซอฟต์แวร์เฉพาะที่ Linux
					แต่ละเจ้าอาจมีไม่เหมือนกัน ดังนั้น Linux
					บางเจ้าจะมีรูปแบบแพคเกจที่แตกต่างกันออกไป
				</dd>
				<dt>แพคเกจระบบ (system package)</dt>
				<dd>
					แพคเกจที่ติดตั้งอยู่บนระบบของคุณ
					ศัพท์นี้อาจถูกใช้ในการกล่าวถึงว่าเป็นรูปแบบการกระจายซอฟต์แวร์รูปแบบหนึ่ง
					ซึ่งในกรณีนั้นศัพท์นี้จะหมายถึงการสร้างแพคเกจสำหรับระบบระบบหนึ่ง
				</dd>
				<dt>คลังแพคเกจ (package repository)</dt>
				<dd>
					หากแพคเกจเป็นกล่อง คลังแพคเกจก็คือสถานที่ที่รวบรวมแพคเกจ
				</dd>
				<dt>ไบนารี (binary)</dt>
				<dd>ไฟล์ที่สามารถถูกเรียกใช้ได้และผ่านการ "คอมไพล์" มาแล้ว</dd>
				<dt>AppImage</dt>
				<dd>
					รูปแบบในการเผยแพร่ซอฟต์แวร์
					เป็นไฟล์เดี่ยวที่คุณสามารถดาวน์โหลดและเรียกใช้บน Linux
					เจ้าใหนก็ได้โดยที่พึ่งพาแพคเกจระบบน้อยที่สุด ซึ่งจริง ๆ แล้ว
					AppImage นั้นต้องการเพียงแค่มี FUSE (Filesystem in
					Userspace) ติดตั้งอยู่บนระบบ และนามสกุลไฟล์ของรูปแบบนี้คือ <code
						>.AppImage</code
					>
				</dd>
				<dt>Flatpak</dt>
				<dd>
					รูปแบบการเผยแพร่ซอฟต์แวร์
					เมื่อแอพลิเคชั่นถูกเผยแพร่ในรูปแบบนี้
					แอพลิเคชั่นนั้นจะถูกเรียกใช้ภายในกล่องที่สามารถเข้าถึงระบบได้เท่าที่จำเป็น
					(sandbox) เพื่อความปลอดภัย
					และจะมีการพึ่งพาแพคเกจระบบให้น้อยที่สุด
					การเผยแพร่ซอฟต์แวร์รูปแบบนี้กำลังจะเป็นการเผยแพร่ที่นิยมที่สุดเนื่องจากมันเป็นวิธีเผยแพร่แอพที่จะสามารถมั่นใจได้ว่าแอพลิเคชั่นจะทำงานเหมือนกันบน
					Linux ทุกเจ้า คลัง Flatpak ที่โด่งดังที่สุด
					(และสามารถถือว่าเป็นคลังส่วนกลางเลยก็ได้) คือ <a
						href="https://flathub.org/"
						target="_blank"
						rel="noopener">Flathub</a
					>.
				</dd>
				<dt>ไวน์ (Wine)</dt>
				<dd>
					ไวน์ ที่ไม่ใช่เครื่องดื่ม และไม่ใช่อีมูเลเตอร์
					แต่เป็นชั้นความเข้ากันได้ที่ช่วยให้ระบบปฏิบัติการ Linux
					นั้นสามารถใช้งานแอพลิเคชั่น Windows ได้
					การอธิบายการทำงานของมันแบบง่าย ๆ คือ Wine ทำหน้าที่แปลภาษา
					Windows ให้เป็นภาษา Linux
					โดยการทำเช่นนี้นั้นจะช่วยเพิ่มประสิทธิภาพของแอพลิเคชั่นที่อาจลดลงหากเป็นการใช้อีมูเลเตอร์หรือ
					Virtual Machine แทน (เพื่อความถูกต้อง ไวน์นั้นไม่จำกัดสำหรับ
					Linux เท่านั้น มันยังสามารถทำงานบนระบบเสมือน Unix อื่น ๆ
					เช่น FreeBSD และ macOS ได้ด้วย)
				</dd>
				<dt>Proton</dt>
				<dd>
					ชั้นความเข้ากันได้ของซอฟต์แวร์ที่ถูกสร้างขึ้นจาก Wine โดย
					Valve ถูกสร้างขึ้นเพื่อการเรียกใช้เกมโดยเฉพาะ
				</dd>
				<dt>DXVK</dt>
				<dd>ซอฟต์แวร์ที่ทำการแปล DirectX เป็น Vulkan</dd>
			</dl>
		</section>
	</main>
</BasicLayout>

<style>
	@reference "@/styles/global.css";

	h1 {
		@apply text-4xl font-bold mb-4;
	}

	p {
		@apply my-2;
	}
</style>
