Friday, December 09, 2016

Maksud Linux Kernel



Secara literal, kernel bermaksud bahagian dalam buah bercengkerang seperti buah kelapa sawit. Isinya lembut dan sedikit sahaja tapi di situlah letaknya nilai buah tersebut.

Demikian juga halnya dengan Linux Kernel. Ia adalah bahagian perisian (software) teras yang menjadi perantara di antara mesin komputer dan perisian pengguna yang lain. Sebagai contohnya, pakej Red Hat Linux yang bersaiz sebesar 2.5++ GB sebenarnya mengandungi 47MB sahaja perisian Linux Kernel iaitu kira-kira 2% dari keseluruhan pakej tersebut.  Selebihnya adalah perisian tambahan yang dikenali sebagai perisian pengguna.



Gambarajah di atas menunjukkan peranan Linux Kernel di dalam sistem komputer. Linux Kernel menyediakan khidmat menghubungkan perisian pengguna dengan peranti komputer melalui pintu masuk yang dipanggil System Call

Dari perspektif pengaturcara, System Call kelihatan seperti Function Call sahaja. Namun realitinya ia berbeza sama sekali kerana System Call melibatkan peralihan dari ruang pengguna (user space) kepada ruang kernel (kernel space). Perisian yang membuat System Call tidak perlu mengetahui bagaimana isyarat dihantar kepada atau diterima daripada peranti. Sebaliknya adalah memadai bagi perisian pengguna menggunakan arahan System Call yang disediakan oleh Linux Kernel. Konsep abstraction ini dikenali sebagai Linux Virtual Machine.

Linux Kernel juga bersifat modular; modul boleh ditambah atau dibuang secara dinamik. Hal ini membolehkan saiz Linux Kernel diminimakan dan ia boleh menerima/membuang modul tanpa perlu dihidupkan semula atau reboot.



Terdapat beberapa bentuk nama fail Linux Kernel seperti ditunjukkan di atas. Gambar di atas menunjukkan nama fail Linux Kernel ie vmlinuz; vm membawa maksud virtual memory dan z membawa maksud ianya adalah sejenis compressed format.

Thursday, December 08, 2016

Maksud Linux Initial Ram Disk (initrd)


Linux Initial RAM disk (initrd) adalah akar sistem fail permulaan (inital root file system) yang dipasang (mounted) ke dalam memori komputer untuk digunakan dalam First-stage Boot Loader. initrd mengandungi set minimal File Directory dan Executable yang diperlukan bagi menjalankan proses boot.

Setelah proses boot selesai initrd mungkin akan terus berjalan atau tamat bergantung kepada sistem yang menjadi host. Jika sistem ini dijalankan di dalam Desktop atau Server, peranan initrd adalah sekadar menghubungkan kepada root file system yang sebenar. Ia akan berhenti sebaik sahaja root file system dijalankan. Walaubagaimanapun, jika sistem ini djalankan di dalam embedded system yang tidak mempunyai storan, initrd akan terus berjalan sehingga sistem itu dimatikan.

Disesuaikan dari: https://www.ibm.com/developerworks/library/l-initrd/

Maksud Linux Boot Process (bootstrapping)


Bootstrapping bermaksud menghidupkan mesin komputer. Pada zaman dahulu, ia melibatkan proses mekanikal iaitu memasukkan kertas tape yang mengandungi arahan komputer. Sebaliknya, pada masa kini, kaedah bootstrapping banyak melibatkan proses elektronik.

Apabila sistem komputer dihidupkan buat pertama kali atau sesudah reset, ia akan mencari kod permulaan arahan di tempat tertentu yang telah diketahui. Contohnya, memori Basic Input/Output System (BIOS) iaitu memori yang tersimpan di dalam Flash Memory di atas Motherboard. Dari sini proses boot terbahagi kepada dua peringkat iaitu First-stage Boot Loader dan Second-stage Boot Loader. BIOS akan memindahkan First-stage Boot Loader ke RAM dan menjalankannya. First-stage Boot Loader pula kemudiannya akan memanggil Second-stage Boot Loader. Saiznya kurang daripada 512 bytes.

Apabila Second-stage Boot Loader, ia akan memaparkan splash screen dan Linux bersama Initial RAM Disk, initrd (sejenis sistem fail sementara) akan dipindah masuk ke dalam memori. Setelah kedua-duanya selesai dipindahmasuk, Second-stage Boot Loader akan menyerahkan kawalan kepada Kernel Image. Second-stage Boot Loader juga akan mengenalpasti hardware devices, memasang root device, dan memindahmasuk kernel modules. Apabila proses ini selesai, program pertama user-space (init) akan dijalankan dan high-level system akan di mulakan.

Disesuaikan dari: http://www.ibm.com/developerworks/library/l-linuxboot/






Tuesday, December 06, 2016

Soalan Asas Linux



1. Apakah Linux?

Linux adalah sejenis Sistem Operasi Komputer berdasarkan UNIX yang diperkenalkan oleh Linus Torvalds. Ia berasaskan Linux Kernel, dan boleh dijalankan di atas berbagai pelantar perkakasan (hardware platform) yang dikeluarkan oleh Intel, MIPS, HP, IBM, SPARC dan Motorola.

2. Apakah jenis pengkelasan Sistem Operasi Linux?

Linux adalah sistem operasi yang menyokong Multi User, Multi Tasking, dan menjalankan pelbagai proses yang melaksanakan berbagai tugas serentak.

3. Apakah perbezaan di antara UNIX dan LINUX?

UNIX berasal dari sistem operasi yang dibangunkan oleh Bell Laboratories, yang kemudiannya berkembang menjadi berbagai versi komersil. Manakala Linux pula adalah percuma, sumber terbuka dan disasarkan untuk menjadi sistem kegunaan semua.

4. Apakah kelebihan Sumber Terbuka?

Sumber terbuka membolehkan kita mengedarkan perisian, termasuk kod sumbernya kepada sesiapa sahaja yang berminat. Pembangun perisian boleh menambahkan ciri-cirinya malah boleh memperbetulkan ralat yang terdapat di dalam kod sumber. Dengan itu, ia memberi manfaat kepada komuniti.

5. Apakah komponen asas Linux?

Komponen asas terdiri daripada: kernel, shell dan GUI, utiliti dan aplikasi. Apa yang membezakan Linux berbanding Sistem Operasi yang lan adalah segenap aspeknya mempunyai ciri tambahan dan kesemua kod program boleh dimuat turun secara percuma.

6. Apakah teras Sistem Operasi Linux?

Teras Linux adalah Kernel.

7. Apakah Linux Kernel?

Linux Kernel adalah perisian paras-rendah (low-level) yang berperanan mengawal perkakasan. Ia juga menyediakan antaramuka untuk interaksi manusia-mesin.

8. Apakah Linux Shell?

Linux shell adalah bahasa arahan interpreter yang melaksanakan arahan yang diterima melalui peranti input (keyboard) atau fail. Shell bukan sebahagian dari Kernel Sistem, tetapi ia menggunakan Kernel Sistem untuk menjalankan perisian, mencipta fail dll.

9. Apakah Linux BASH?

BASH adalah akronim untuk Bourne Again SHell. Ia ditulis oleh Steven Bourne sebagai ganti kepada Bourne Shell (yang diwakili oleh /bin/sh). Ia menggabungkan semua ciri yang ada pada Bourne Shell bersama fungsi tambahan yang lebih mudah dan selesa digunakan. Ia telah diterima sebagai default shell bagi sistem yang menjalankan Linux.

10. Apakah Linux Script?

Script adalah koleksi arahan yang disimpan di dalam fail untuk melaksanakan tugas secara automatik.

11. Apakah CLI?

CLI adalah singkatan kepada Command Line Interface. Ia membantu pengguna memberikan arahan kepada komputer melalui teks yang bersifat deklaratif iaitu gabungan perkataan yang boleh dibaca dan difahami secara literal.

12. Apakah contoh Arahan Linux?

Command [options][arguments]

13. Apakah GUI?

GUI, Antaramuka Grafik Pengguna, menggunakan imej dan ikon yang boleh diklik oleh pengguna sebagai cara pengguna berintreaksi dengan komputer. Pengguna tidak perlu mengingati teks arahan sebaliknya mengecam penggunaan grafik atau ikon sebagai simbol mewakili arahan tertentu.

14. Apakah kaedah alternatif kepada pemasangan Linux secara GUI?

Linux juga boleh dipasang secara arahan teks.

15. Terangkan root account.

Root account adalah seperti akaun pentadbir sistem. Ia membolehkan kita mengawal keseluruhan sistem. Melalui akaun ini, akaun pengguna lain akan dicipta. Root account adalah default account apabila Linux dipasang ke sistem komputer.


Diterjemah dari: http://www.learnitguide.net/2015/11/linux-interview-questions-and-answers-for-beginners.html




Sunday, August 28, 2016

Kenapakah Ionic Popular?


.
KENAPA IONIC? DI MANAKAH IA DIGUNAKAN?

Ionic adalah sejenis Framework untuk pembangunan aplikasi mobile berdasarkan HTML5 Framework yang mana sasarannya adalah untuk menghasilkan Hybrid Mobile Apps.

Hybrid Mobile Apps bermaksud website kecil yang dijalankan melalui browser shell di dalam Mobile Apps yang mampu mengakses fungsi native sesebuah mobile platform. Hybrid Mobile Apps mempunyai banyak kelebihan terutamanya dari segi sokongan platform, kepantasan pembangunan dan capaian kepada 3rd party code.

Bayangkan Ionic sebagai satu front-end framework yang menguruskan look-and-feel dan UI interactions yang diperlukan oleh Mobile Apps anda supaya ia menarik. Hal ini seumpama "Bootstrap untuk Native", tetapi pada masa yang sama masih mempunyai sokongan dari berbagai native mobile components, animasi yang lancar dan rekabentuk yang cantik.

Berbeza dengan Responsive Framework, Ionic mempunyai paparan yang sama seperti native-styled mobile UI dan layout. Namun demikian, oleh kerana Ionic masih lagi sejenis HTML5 Framework, ia memerlukan Native Wrapper seperti Cordova atau PhoneGap untuk membolehkan ia berfungsi seperti mana sifat Native Mobile Apps. Pencipta Ionic mengesyorkan pembangun menggunakan Cordova.


KENAPA IONIC DIBINA?

Ionic dibina kerana penciptanya percaya bahawa HTML5 akan mendominasi persekitaran mobile pada suatu hari nanti sepertimana hal yang berlaku pada persekitaran desktop. Apabila komputer desktop mempunyai keupayaan yang tinggi dan teknologi browser semakin maju, hampir setiap orang menghabiskan masanya dengan browser dan pembangun perisian berlumba-lumba membangunkan aplikasi berasaskan Web. Dengan meningkatnya keupayaan mobile technology, smartphones dan tablets, hal yang sama akan berlaku di sini pada suatu hari nanti.

Dengan Ionic, penciptanya mahu membina HTML5 Mobile Development Framework yang memberi tumpuan kepada Native atau Hybrid Apps dan bukan Mobile Websites, kerana pembangunan website kini sudahpun mempunyai tools yang hebat. Maknanya, Ionic tidak dihasratkan untuk dijalankan di dalam mobile browser app seperti Chrome atau Safari sebaliknya di dalam low-level browser shell seperti UIWebView dalam iOS atau WebView dalam Android yang akan dibalut (wrap) oleh teknologi seperti Cordova/PhoneGap.

Penciptanya juga mahukan Ionic menjadi sumber terbuka dengan disokong oleh pembangunan komersil dan terbuka serta menyediakan komuniti yang kuat bagi projek ini. Sudah terdapat beberapa framework sumber terbuka mirip Ionic di pasaran tetapi hakikatnya mereka masih menghendaki pembangun membeli Lesen Komersil untuk meraih semua manfaatnya.

MEMBINA HYBRID APPS DENGAN IONIC

Mereka yang sudah biasa dengan pembangunan akan mendapati struktur ionic mudah. Pada dasarnya, ia adalah web page yang dijalankan di dalam native app shell! Ini bermakna kita akan menggunakan apa sahaja kaedah HTML, CSS dan JavaScript yang kita kehendaki. Bezanya, tanpa membangunkan website kebiasaan, kita membina aplikasi mobile yang tersendiri.

Hampir kebanyakan kod ditulis dalam HTML, JavaScript dan CSS. Jika pembangun berminat, mereka boleh turut melihat native code di dalam Plugin Cordova (tetapi tanpa berbuat demikianpun anda masih boleh menjadi pembangun Ionic yang hebat).

Ionic juga menggunakan AngularJS Framework sebagai terasnya. Walaupun anda boleh mengelak dari menggunakan kod AngilarJS di dalam projek anda, adalah disyorkan ia turut disekalikan kerana ia adalah antara kaedah terbaik bagi membina aplikasi berdasarkan browser pada hari ini.


Artikel ini disesuaikan dari kandungan asal di http://ionicframework.com/docs/guide/preface.html