-->
KOMPUTER67
Lebih dari sekedar belajar !

Ingin Membuat OS Sendiri ? Tidak Sulit Kok, Begini Caranya !


Ternyata membuat OS sendiri itu tidak begitu sulit ! Membuat OS itu bermacam-macam, ada yang simple, ada yang memerlukan proses yang panjang. Namun begitu, semuanya itu tidak ada yang sulit ? benar ? hehe... Ok, langsung saja kita akan mempelajari bagaimana sih cara membuat OS sendiri !

Sebelum kita memulai, saya jelaskan dulu, cara membuat OS itu bermacam-macam seperti yang saya bilang diatas. Jadi disini saya akan memulai dengan teknik yang paling mudah dahulu. Tapi ingat, teknik yang mudah berarti hasilnya juga mudah2 saja alias biasa-biasa saja.. hehe

Cara Membuat OS Dengan Suse Studio

1. Buka web https://susestudio.com/

2. Lalu klik "Sign or Create Account"

3. Silahkan pilih facebook saja agar cepat.
4. Lalu masukan Display name dan Your email seperti biasa, lalu centang, lalu continue

 
5. Nah lalu pilih base template. Disini saya akan pilih "GNOME desktop"

6. Setelah itu pilih architecture yaitu 64 bit serta masukan namanya. Kalau sudah klik "Create appliance"


7. Tunggu proses hingga selesai


8. Lalu klik "Switch to the Software tab to continue"
9. Nah disini Anda bisa memilih software Anda sendiri, bebas...


10. Lalu jika sudah, masuk ke "Configuration" - "Personalize" dan disitu Anda bebas meilih background, logo, dll. Anda bisa memilih logo OS buatan Anda sendiri.. :D

11. Lalu setelah itu pilih menu "Build", lalu pastikan default format yang terpilih adalah "USB Stick / Hard Disk Image". Lalu jangan lupa centang "Live CD / DVD (.iso)". Lalu klik Build


12. Tunggu prosesnya hingga selesai


13. Setelah selesai klik download, maka Anda sudah berhasil membuat sistem operasi sendiri !
























Cara Membuat OS Dengan Bahasa C & Assembly

Membuat Sistem Operasi bisa dikatakan sulit. Sulit disini karena kita memerlukan beberapa pengetahuan tentang sistem operasi tersebut. Ditambah dengan pengetahuan tentang pemrograman pada hardware.
Pada artikel ini saya ingin sharing bagaimana membuat sistem operasi yang sederhana dengan menggunakan bahasa C dan Assembly. Tujuannya memberikan pengetahuan dasar bagaimana membuat sistem operasi.

Persiapan

Hal yang perlu anda ketahui adalah apa itu sistem operasi dan bagaiamana prinsip kerjanya. Terkait hal ini, saya menyarankan untuk membaca beberapa buku tentang sistem operasi. Berikut ini contoh buku rekomendasinya
  • Andrew S. Tanenbaum, Modern Operating System, 3rd Edition, 2008, Pearson Education.
  • Abraham Silberschatz, Peter Baer Galvin, Greg Gagne, Operating System Concepts, 9th Edition, 2013, John Wiley & Sons
Pada ilustrasi ini, saya menggunakan environment ini. Anda bisa menyesuaikan sesuai dengan platform yang dimiliki. Berikut platform dan beberapa komponen/library yang digunakan.
  • Ubuntu 13.10 x64
  • GCC dan make
  • nasm
  • git
  • qemu
Disini saya menggunakan Ubuntu 13.10 x64. Ya, saya menggunakan 64-bit Ubuntu tapi jangan kuatir bagaimana melakukan kompilasi OS 32 bit melalui Ubuntu 64-bit.









GCC dan make digunakan untuk kompile kernel OS yang dibuat dengan bahasa C. Cara instalasi melalui perintah berikut.
sudo apt-get install build-essential
nasm digunakan untuk kompile bahasa Assembly. Berikut ini instalasinya
sudo apt-get install nasm
git digunakan untuk mengunduh source code sistem operasi yang saya buat sehingga memudahkan proses kompilasinya.
sudo apt-get install git
Kita memerlukan virtual machine untuk menjalankan OS yang dibuat. Anda bisa menjalankan melalui PC atau virtual machine. Disini saya menggunakan qemu untuk virtual machine. Cara instalanya sebagai berikut.
sudo apt-get install qemu

Kita bisa mengecek qemu versi yang dimiliki.
qemu --version


Unduh Source Code

Saya sudah unggah source code sistem operasi sederhana ini dengan nama OS Sirsak ke github.com. Alamatnya di https://github.com/agusk/sirsak .

Kita dapat mengunduh source code ini dengan perintah git.
git clone https://github.com/agusk/sirsak.git
Didalam folder src, anda akan mendapatkan file
  • loader.asm
  • kernel.c
  • linker.ld
Masing-masing saya akan jelaskan pada sesi selanjutnya.

Membuat Loader

Loader berguna untuk sebagai pemicu awal ketika OS di booting awal. Loader ini akan dipanggil pertama kali.
Disini ketika loader dipanggil maka akan memanggil (call kmain). kmain adalah main entry dari kernel yang dibuat dengan bahasa C.
global loader
extern kmain

MODULEALIGN equ 1<<0
MEMINFO equ 1<<1
FLAGS equ MODULEALIGN | MEMINFO
MAGIC equ 0x1BADB002
CHECKSUM equ -(MAGIC + FLAGS)

section .text
align 4
MultiBootHeader:
 dd MAGIC
 dd FLAGS
 dd CHECKSUM
 
STACKSIZE equ 0x4000

loader:
 mov esp, stack + STACKSIZE
 push eax
 push ebx
 
 call kmain
 cli
 
hang:
 hlt
 jmp hang
 
section .bss
align 4
stack:
resb STACKSIZE
Bagi yang belum paham mengenai bahasa Assembly, anda bisa membaca tutorial pada website ini, http://www.tutorialspoint.com/assembly_programming/index.htm .
Kalau kita perhatikan disini ada magic number untuk memastikan pemanggilan kernel yaitu 0x1BADB002. Nanti dibagian kernel kita cukup mengecek dengan nilai 0x2BADB002.
Simpan kode program ini dengan nama loader.asm. Kemudian kita akan melakukan kompilasi file loader.asm.
nasm -f elf32 -o loader.o loader.asm

Membuat Kernel OS

Ini merupakan jantung dari sistem operasi. Disini kita hanya menampilkan tulisan ke layar dan menghapus layar.
Berikut ini konten dari source code kernel.c.
void kmain(void* mbd, unsigned int magic) {
 if(magic != 0x2BADB002) {
  clear();
  print("Error loading!!",0x04);
 }else{
  clear();
  print("Welcome to Sirsak Operating System",0x07);
 }
}

void print(char* message, int color) {
 char* mem = (char*)(0xb8000);
 while(*message!=0){
  *mem = *message;
  mem++;
  message++;
  *mem = (char*)color;
  mem++;
 }
}

void clear(void){
 char* mem = (char*)(0xb8000);
 while(*mem !=0){
  *mem = 0;
  mem++; 
 }
}
kmain() merupakan main entry dari OS yang dibuat. Disini ada method print() dan clear(), kenapa kita harus membuatnya? hal ini karena kita tidak memerlukan library bawaan dari C dan memastikan bebas dari platform-lock. Ukuran layar yang digunakan adalah 0xb8000.
Untuk kompilasinya sebagai berikut.
gcc -c -o kernel.o kernel.c -Wall -Wextra -nostdlib -nostartfiles -nodefaultlibs -fno-builtin -fno-stack-protector -nostdinc -m32
parameter –m32 digunakan untuk memastikan gcc melakukan kompilasi 32 bit ketika kita menggunakan platform 64 bit. Apabila anda menggunakan Ubuntu 32 bit maka paramter –m32 diabaikan saja.

Linking Semua Objek

Disini kita mengambungkan semua objek loader.o dan kernel.o kedalam linking. Disini kita menggunakan ld, http://linux.die.net/man/1/ld .
Berikut ini source code dari linker.ld
ENTRY(loader)
SECTIONS {

 . = 0x00100000;
 .text : {
  *(.text)
 }
 .rodata ALIGN (0x1000):{
  *(.data)
 }
 .bss : {
  sbss = .;
  *(COMMON)
  *(.bss)
  ebss = .;
 }
}

Kompilasi file linker.ld dengan target platform i386 atau 32 bit dapat dilakukan sebagai berikut.
ld -m elf_i386 -T linker.ld -o kernel.bin loader.o kernel.o
Disini kita akan mendapatkan file kernel.bin. File ini yang akan digunakan untuk menjalankan OS.

Testing

Setelah kita melakukan linking dan mendapatkan file kernel.bin maka kita cukup menjalankan ini melalui qemu dengan perintah sebagai berikut.
qemu -kernel kernel.bin
Jika sukses, kita akan mendapatkan response seperti dibawah ini.

Akhirnya anda bisa membuat sistem operasi selanjutna.

Bagaimana Selanjutnya?

Langkah selanjutnya anda bisa mengembangkan file kernel.c dengan melakukan interasi dengan user melalui keyboard. Selain itu, anda bisa mengembangkan dengan memanfaatkan membuat driver dengan networking atau lainnya.
Hal yang terpenting disini adalah memory management. Pastikan ilmu pointer dalam bahasa C lebih diperdalam. Rekomendasi buku
  • Richard Reese, Understanding and Using C Pointers, 2013, O'Reilly


Itulah kira-kira beberapa cara untuk membuat operasi sistem sendiri. Nah, belum selesai nih.. Saya mau kasi video ke kamu bagaimana cara membuat OS (walaupun berbeda dengan cara yang diatas)

VIDEO CARA MEMBUAT OS SENDIRI

Kalau video dibawah ini memiliki 10 part (kalau gak salah) Anda bisa melihat part 1 mulai dari ini
Nah, bila kamu masih bingung sekali dengan cara-cara diatas, tapi kamu sangat berkeinginan membuat OS sendiri, cobain cara ini aja !! Ini adalah cara membuat OS sendiri tapi PALSU.. hehe... iyalah buatnya aja pake VISUAL BASIC hahahaha. Tapi gpp, silahkan coba saja kalau kamu penasaran... :D sumber : youtube & http://blog.aguskurniawan.net

INGIN LIVE CHAT ? INGIN TANYA JAWAB GRATIS ? YUK LANGSUNG SAJA CHAT DENGAN KAMI DI FANSPAGE KOMPUTER67

    Blogger Comment
    Facebook Comment

1 komentar :