Ano ang Linux: kernel, distribution at file system na ipinaliwanag nang simple
Ang Linux ay open-source na kernel ng operating system na namamahala sa CPU, memorya, disk, at network; kapag pinagsama sa mga utility, package manager, at init system, ito ay nagiging distribution gaya ng Ubuntu, Debian, o Fedora. Tumatakbo ang Linux sa karamihan ng server, container, at cloud, kaya ang kakayahang magtrabaho dito ay pangunahing kasanayan ng DevOps engineer at system administrator.
Ang Linux ay kernel ng isang operating system na open source, at dito itinatayo ang kumpletong sistema para sa server, desktop, at embedded devices. Kapag sinabing "naka-Linux ang server", hindi ibig sabihin ay iisang programa lamang ito kundi isang distribution: ang kernel kasama ang mga utility, library, package manager, at init system. Ipapaliwanag ng artikulong ito kung ano talaga ang Linux, ano ang mga bahagi nito, at bakit hindi ito malalampasan ng kahit anong DevOps engineer.
Ang Linux ay kernel, hindi buong sistema
Sa mahigpit na kahulugan, kernel lamang ang Linux. Ang kernel ang programang unang tumatakbo pagkatapos ng bootloader at nananatili sa memorya habang bukas ang computer. Ito ang naghahati ng oras ng CPU sa mga process, naglalaan ng memorya, nakikipag-usap sa disk at network card sa pamamagitan ng driver, at nagsusuri ng access permission.
Hindi direktang kinokontrol ng karaniwang programa ang hardware. Kapag nag-save ng file ang text editor, gumagawa ito ng system call (open, write, close), at ang kernel ang nagpapasya kung aling block ng disk ang isusulat at kung may karapatan ang process na gawin ito. Dahil dito matatag ang sistema: ang programang nag-crash ay hindi nagpapabagsak sa buong computer.
Makikita ang bersyon ng kernel sa isang utos:
$ uname -r
6.8.0-45-generic
Nilikha ni Linus Torvalds ang kernel noong 1991 at mula noon ay bukas itong binubuo. Nasa ilalim ng GNU GPL bersyon 2 ang source code, kaya maaaring basahin, baguhin, at ipamahagi ito ng kahit sino sa parehong kondisyon.
Ano ang distribution ng Linux
Hindi sapat ang kernel lamang: kailangan ng shell para makapag-type ng utos, mga utility sa pamamahala ng file, library, at installer ng software. Karamihan sa pangunahing utility (ls, cp, bash, grep) ay galing sa proyektong GNU kaya minsan tinatawag na GNU/Linux ang sistema. Ang kernel kasama ang buong set ng kasangkapang ito, na pinagsama at sinubukan bilang isang pakete, ay tinatawag na distribution.
Nagkakaiba ang mga distribution pangunahin sa package manager, patakaran sa update, at target na gumagamit.
| Pamilya | Mga halimbawa | Mga package | Saan makikita |
|---|---|---|---|
| Debian | Debian, Ubuntu, Linux Mint | .deb, apt | server, cloud, workstation |
| Red Hat | RHEL, Fedora, Rocky Linux, AlmaLinux | .rpm, dnf | enterprise server |
| Alpine | Alpine Linux | apk | Docker image na kailangang maliit |
| Arch | Arch Linux, Manjaro | pacman | mga mahilig, bagong bersyon ng package |
Makikita kung anong distribution ang gamit sa file na /etc/os-release:
$ cat /etc/os-release
PRETTY_NAME="Ubuntu 24.04.1 LTS"
NAME="Ubuntu"
VERSION_ID="24.04"
ID=ubuntu
ID_LIKE=debian
Para sa pag-aaral at server, karaniwang pinipili ang Ubuntu LTS o Debian dahil marami ang dokumentasyon nila, at halos gumagana nang walang pagbabago ang mga utos sa mga gabay sa internet.
Paano nakaayos ang sistema: kernel, shell, user space
Mas madaling isipin ang Linux bilang mga patong. Sa pinakailalim ang hardware. Sa ibabaw nito ang kernel. Sa itaas pa ang user space: mga serbisyo ng sistema, library (halimbawa glibc), at mga programa. Nasa gitna ng tao at sistema ang shell, kadalasan ang bash, na tumatanggap ng utos at nagpapatakbo ng programa.
- Kernel — process, memorya, file system, network, driver.
- Init system — ang unang process na may PID 1; sa karamihan ng modernong distribution ito ay
systemd. Ito ang nagpapatakbo ng iba pang serbisyo. - Mga serbisyo (daemon) — web server, SSH server, cron, log system.
- Shell at mga utility — ang mismong ginagamit mo sa terminal.
Kadalasang walang graphical interface ang server: kumokonekta ang administrator sa pamamagitan ng SSH at nagtatrabaho sa command line. Kaya ang pag-aaral ng Linux ay higit sa lahat pag-aaral ng terminal.
Ang file system ng Linux: lahat ay nagsisimula sa /
Walang drive na C: at D: sa Linux. Iisang puno ng direktoryo lamang, na nagsisimula sa root /. Ang lahat ng disk, flash drive, at network folder ay ikinakabit (mount) sa isang direktoryo sa puno. Isa pang prinsipyo: halos lahat sa Linux ay kinakatawan bilang file, kasama ang mga regular na file, direktoryo, device, at impormasyon tungkol sa mga process.
$ ls /
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
Inilalarawan ang layout ng mga direktoryo ng pamantayang FHS (Filesystem Hierarchy Standard), kaya sa anumang distribution ay halos nasa parehong lugar ang mga config file.
| Direktoryo | Laman |
|---|---|
/etc | config ng sistema at mga serbisyo: /etc/passwd, /etc/ssh/sshd_config, /etc/fstab |
/home | home directory ng mga user: /home/alice |
/root | home directory ng superuser na root |
/var | mga datos na nagbabago: log sa /var/log, cache ng package, database, mail queue |
/usr | mga naka-install na programa at library: /usr/bin, /usr/lib |
/bin, /sbin | pangunahing utos; sa modernong distribution ay link lamang sa /usr/bin at /usr/sbin |
/boot | kernel (vmlinuz-*), initramfs, at mga file ng bootloader |
/dev | mga device file: /dev/sda, /dev/null |
/proc, /sys | mga virtual na file system: ipinapakita ng kernel ang impormasyon ng process at settings dito |
/tmp | pansamantalang file, kadalasang nililinis kapag nag-reboot |
/opt | mga third-party na programang buo ang pag-install |
/mnt, /media | mount point para sa disk at removable media |
Absolute at relative na path
Nagsisimula sa / ang absolute path at hindi nakadepende sa kinaroroonan mo: /var/log/syslog. Nakabatay sa kasalukuyang direktoryo ang relative path: ../logs/app.log. Ang tuldok . ay kasalukuyang direktoryo, ang dalawang tuldok .. ay parent directory, at ang tilde ~ ay iyong home directory.
$ pwd
/home/alice
$ cd /var/log
$ cd ..
$ pwd
/var
$ cd ~
$ pwd
/home/alice
/proc: ang sistema bilang koleksyon ng mga file
Hindi naka-save sa disk ang /proc; ginagawa ito ng kernel habang binabasa. Halimbawa, ipinapakita ng cat /proc/cpuinfo ang mga processor, ang cat /proc/meminfo ang memorya, at bawat process ay may direktoryong /proc/<PID> na naglalaman ng command line at mga bukas na file nito. Binabasa lang ng mga utility gaya ng ps at top ang mga file na ito.
Mounting
Ipinapakita ng df -h kung aling file system ang naka-mount saan at gaano karami ang espasyo nito:
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 40G 12G 26G 32% /
/dev/sda1 1.1G 6.1M 1.1G 1% /boot/efi
tmpfs 393M 1.2M 392M 1% /run
Nakalagay sa /etc/fstab ang mga permanenteng mount point; binabasa ng sistema ang file na ito sa boot.
Paano nag-boot ang Linux: mula sa pagbukas hanggang sa login prompt
Nakakatulong ang pag-unawa sa boot process kapag hindi "nagbo-boot" ang server pagkatapos mag-reboot. Sa pinasimpleng anyo, ganito ang takbo:
- Firmware (UEFI o BIOS) sinusuri ang hardware at hinahanap ang bootloader.
- Bootloader na GRUB nagpapakita ng menu at nilo-load sa memorya ang kernel mula sa
/bootat ang initramfs image. - Kernel nag-iinitialize ng hardware, at gamit ang initramfs ay hinahanap at ikinakabit ang root file system.
- systemd ay nagsisimula bilang process na may PID 1 at pinapatakbo ang mga serbisyo sa tamang pagkakasunod: network, log, SSH, cron, at iba pa.
- Login prompt sa console o sa pamamagitan ng SSH.
Makikita ang mga mensahe ng kernel sa boot gamit ang sudo dmesg o journalctl -k, at ang oras ng bawat yugto gamit ang systemd-analyze.
User at permission: built-in na proteksyon
Multi-user na sistema ang Linux mula pa sa simula. May may-ari, grupo, at mga permission sa pagbasa, pagsulat, at pagpapatakbo ang bawat file. Hindi maaaring sirain ng ordinaryong user ang system file, at ginagawa ang mga administratibong gawain gamit ang sudo. Ang superuser na root ay may kapangyarihang gawin ang lahat, kaya hindi inirerekomendang magtrabaho palagi bilang root.
$ ls -l /etc/passwd
-rw-r--r-- 1 root root 2847 Oct 1 10:12 /etc/passwd
Ganito basahin ang linyang ito: regular na file, nababasa at nasusulatan ng may-ari na root, at nababasa lamang ng iba.
Bakit kailangan ng DevOps engineer ang Linux
Para sa DevOps engineer, hindi lamang ito isa sa maraming paksa; ito ang kapaligirang pinagtatrabahuhan nila halos buong araw. Narito ang mga lugar kung saan nila ito ginagamit araw-araw:
- Mga server. Halos lahat ng web server, database, at queue ay tumatakbo sa Linux.
- Mga container. Gumagamit ang Docker ng mga mekanismo ng Linux kernel gaya ng namespaces at cgroups. Ang container ay isang Linux process na nakahiwalay, at ang image ay nakabatay sa isang distribution gaya ng Debian o Alpine.
- Cloud at Kubernetes. Linux din ang virtual machine sa cloud at ang mga node ng cluster.
- CI/CD. Tumatakbo ang mga build sa mga Linux runner, at kadalasang nakasulat sa bash ang mga build script.
- Diagnostics. Kapag bumagsak ang isang serbisyo, hinahanap ang sagot sa
journalctl,top,ss, atdf. Kung hindi alam ang mga kasangkapang ito, hindi maaayos ang insidente.
Pinakakailangang kasanayan: maayos na paglipat sa file system, pag-unawa sa mga permission, pag-install ng package, pamamahala ng serbisyo gamit ang systemctl, pagbasa ng log, pagtatrabaho sa mga process, network, at SSH, at pagsusulat ng simpleng bash script.
Paano magsimulang mag-aral ng Linux
Hindi kailangang i-install ang Linux kapalit ng pangunahing operating system. May ilang ligtas na paraan para subukan ito:
- Virtual machine (VirtualBox, VMware) na may Ubuntu Server — maaaring sirain at ibalik mula sa snapshot.
- WSL sa Windows — buong Ubuntu environment sa terminal ng Windows:
wsl --install. - Cloud server — pinakamalapit sa totoong trabaho; kumokonekta sa pamamagitan ng SSH.
- Docker container — ang
docker run -it --rm ubuntu bashay nagbibigay ng shell sa loob ng ilang segundo.
Magsimula sa pag-navigate (pwd, ls, cd), saka sa mga file at permission, pagkatapos sa mga package, process, at serbisyo. Laging nandiyan ang built-in na tulong: man ls o ls --help.
Buod
Kernel ang Linux, at ang distribution ay kernel kasama ang mga utility, library, package manager, at systemd. Iisang puno ng direktoryo ang buong sistema na nagsisimula sa root /, kung saan nasa /etc ang mga config, nasa /var/log ang mga log, at nasa /usr ang mga programa. Kapag naintindihan mo kung ano ang Linux at paano ito nag-boot, may pundasyon ka na para sa server, container, at cloud. Ang file system, boot process, at administrasyon ay tinuturo nang may praktikal na hands-on sa kursong Linux.
Mga madalas itanong
Operating system ba o kernel ang Linux?
Sa mahigpit na kahulugan, kernel ang Linux; ang operating system ay ang distribution, na binubuo ng kernel kasama ang mga utility ng GNU, library, package manager, at init system. Sa pang-araw-araw na usapan, ang "Linux" ay kadalasang tumutukoy sa buong sistema.
Libre ba ang Linux?
Libre ang kernel at karamihan sa distribution (Ubuntu, Debian, Fedora) sa ilalim ng open-source na lisensya. Ang bayad ay karaniwang para sa suporta, gaya ng Red Hat Enterprise Linux.
Aling distribution ang pipiliin ng baguhan?
Para sa server at pag-aaral ng administrasyon, mainam ang Ubuntu LTS at Debian dahil stable ang mga bersyon nila at marami ang dokumentasyon. Naipapasa ang kaalaman sa ibang distribution; ang pangunahing pagkakaiba ay ang package manager.
Kailangan bang alam ang Linux bago gumamit ng Docker?
Oo, kahit pangunahing kaalaman lang. Nakabatay ang container sa mga mekanismo ng Linux kernel, may distribution sa loob ng image, at ang debugging ay gamit ang mga utos ng shell.
Ano ang pagkakaiba ng Linux at Unix?
Pamilya ng operating system ang Unix na lumitaw noong 1970s, habang ang Linux ay kernel na isinulat nang hiwalay at ginaya ang mga ideya at interface ng Unix (pamantayang POSIX). Kaya magkakahawig ang mga utos at prinsipyo nila.
Detalyadong tinatalakay ang paksang ito, may praktis, sa kursong “Linux: с нуля до уверенного администрирования”.
- Linux: с нуля до уверенного администрирования
- Как устроена файловая система Linux: от корня до загрузки ядра