Tugas SO Program Bash/Shell

19 December 2014 21:03:58 Dibaca : 102

Tugas Sistem Operasi
Nama : ANGGRAINI LOI
Nim : 532414024
Pendidikan teknologi informasi (B)
1.#!/bin/sh
echo "============================="
echo "======= Anggraini Loi ======="
echo "============================="
echo "[1] melihat user"
echo "[2] melihat waktu dan tanggal"
echo "[3] melihat waktu ON "
echo "[4] melihat lokasi direktori"
pil=4
while [ $pil = 4 ]
do
read -p "pilihan anda " x
case $x in
1)
echo -n "user :"
whoami
;;
2)
echo -n "waktu/tanggl :"
date
;;
3)
echo -n "waktu ON :"
uptime
;;
4)
echo -n "lokasi directori :"
pwd
;;
*)
echo -n "salah pilih !!"
esac
done
2. #!/bin/sh
echo "========================="
echo "= Data Mahasiswa Teknik ="
echo "========================="
echo
read -p "Silahkan masukan nama file anda :" file
touch $file
pil='yes'
while [ $pil = 'yes' ]
do
read -p "Nama :" nama
read -p "NIM :" nim
read -p "Prody :" prody
read -p "Jurusan :" jur
read -p "fakultas :" fak
read -p "Usia :" usia
read -p "Jumlah SKS :" sks
read -p "Nilai IPK :" ipk
read -p "Dosen PA :" pa
echo "nama :" $nama >> $file
echo "nim :" $nim >> $file
echo "prody :" $prody >> $file
echo "jurusan :" $jur >> $file
echo "fakultas :" $fak >> $file
echo "usia :" $usia >> $file
echo "jumlah sks:" $sks >> $file
echo "nilai ipk :" $ipk >> $file
echo "dosen pa :" n$pa >> $file
read -p "mau mengisi kembali ??" pil
while [ $pil = 'no' ]
do
echo "terima kasih, file telah tersimpan !!"
break
done
done
3. #!/bin/sh
pil='y'
while [ $pil = 'y' ]
do
read -p "masukan bilangan yang anda mau :" x
if test 'expr $x % 2' -eq 0
then
echo $x "bilangan genap"
else
echo $x "bilangan ganjil"
fi
read -p "ingin menginput kembali ?? [y/n] :" pil
while [ $pil = 'n' ]
do
echo "terima kasih"
break
done
done
4. #!/bin/bash

buatfolder (){
echo -n "Nama folder :"
read a
mkdir $a
echo "Folder $a berhasil dibuat."
sleep 2
}
buatfile (){
echo -n "Nama file :"
read a
touch $a
echo "File $a berhasil dibuat."
sleep 2
}
hapusfile (){
echo -n "Nama file yang ingin dihapus :"
read a
rm -r $a
echo "File $a berhasil di hapus."
sleep 2
}
hapusfolder (){
echo -n "Folder yang ingin dihapus :"
read a
rmdir-r $a
echo "Folder $a berhasil dihapus."
sleep 2
}
gantinama (){
echo -n "File/folder yang ingin di ganti:"
read a
echo -n "Ganti dengan nama :"
read b
mv $a $b
echo "File/folder $a berhasil diganti."
sleep 2
}
cekstatus (){
echo -n "file yang ingin dicek :"
read a
ls -l $a
sleep 2
}
lihatfile (){
ls
sleep 3
}
hakakses (){
echo -n "File/folder yang ingin digantipermissio :"
read b
echo -n "Ganti permission (contoh : 777) :"
read a
echo "#read(baca) :4
#write(tulis) :2
#excute(eksekusi) :1"
chmod $a $b
echo "File/folder $b berhasil diganti hak aksesnya."
sleep2
}
duplikasi (){
echo -n "File/folder yang ingin duplikat:"
read a
echo -n "Pindah ke (contoh : dekstop atau home/zishak/dekstop) :"
read b
mv $a $b
echo "File/folder $a berhasil diduplikat."
sleep 2
}
pindah (){
echo -n "file/folder yang ingin di pindah :"\
read a
echo -n "Pindah ke (contoh: dekstop atau home/zishak/dekstop) :"
read b
mv $a $b
echo "File/folder berhasil dipindah."
sleep 2
}
opsi=1
while [ $opsi ]
do
clear
echo "1.Buat folder"
echo "2.Buat file"
echo "3.Hapus file"
echo "4.Hapus folder"
echo "5.Ganti nama file/folder"
echo "6.Cek status file"
echo "7.Lihat file"
echo "8.Ganti permission"
echo "9.Duplikat file/folder"
echo "10.Pindah file/folder"
echo "11.Keluar"
echo -n "pilih opsi :"
read opsi
case $opsi in
1) buatfolder
;;
2) buatfle
;;
3) hapusfile
;;
4) hapusfolder
;;
5) gantinam
;;
6) cekstatus
;;
7) lihatfile
;;
8) hakakses
;;
9) duplikat
;;
10) pindah
;;
11) echo "terima kasih telah mengunjungi program ini."
sleep 2
;;
*)echo "maaf anda salah opsi!"

sleep
esac
done

5. #!/bin/sh
pil='y'
while [ $pil = 'y' ]
do
read -p "bil. pertama :" x
read -p "bil. kedua :" z
echo "pilihan anda "
echo "tambah"
echo "kurang"
echo "kali"
echo "bagi"
echo -n "masukan pilihan anda :"
read masuk
case $masuk in
tambah)
tambah=$(echo "$x+$z"|bc)
echo "hasil :" $tambah
;;
kurang)
kurang=$(echo "$x-$z"|bc)
echo "hasil :" $kurang
;;
kali)
kali=$(echo "$x*$z"|bc)
echo "hasil :" $kali
;;
bagi)
bagi=$(echo "$x/$z"|bc)
echo "hasil :" $bagi
;;
*)
echo "pilhan salah !!"
esac
read -p "ingin menciba kembali [y/n] :" pil
while [ $pil = 'n' ]
do
exit
done
do

 

SISTEM OPERASI

13 December 2014 16:13:48 Dibaca : 43

NAMA : ANGGRAINI LOI

KELAS : PTI B

 

PEMROGRAMAN BASH PADA LINUX DENGAN MEMBALIKAN HURUF

Pertama-tama ketikan nama anda secara terbalik sperti contoh dibawah ini

kemudian, kita simpan dengan meklik ctrl+O lalu tekan enter dan ctrl+x , dan hasilnya akan sperti dibawah ini.

selanjutnya, kita ubah kembali  dengan perintah sperti dibawah ini

dan hasilnya akan jadi seperti berikut

OKTAL

22 October 2014 19:09:47 Dibaca : 91

Oktal atau sistem bilangan basis 8 adalah sebuah sistem bilangan berbasis delapan. Simbol yang digunakan pada sistem ini adalah 0,1,2,3,4,5,6,7. Konversi Sistem Bilangan Oktal berasal dari Sistem bilangan biner yang dikelompokkan tiap tiga bit biner dari ujung paling kanan (LSB atau Least Significant Bit).
Biner Oktal
000 000 00
000 001 01
000 010 02
000 011 03
000 100 04
000 101 05
000 110 06
000 111 07
001 000 10
001 001 11
001 010 12
001 011 13
001 100 14
001 101 15
001 110 16
001 111 17

1. Penjumlahan Pada Oktal

Ada beberapa ketentuan yang perlu kalian ketahui dalam penjumlahan bilangan oktal. Dimana semua ketentuan akan digunakan pada pengurangan dan perkalian. Kalau kalian belum paham betul tentang penjumlahan, saya sarankan jangan mempelajari pada tahap pengurangan dan perkalian. Karena walaupun terlihat susah, namun sebenarnya sangat mudah. Kunci utama yang perlu kalian pahami dalam mempelajari ini adalah teliti, semangat dan pantang menyerah.

Ketentuan yang perlu diketahui adalah:

Tambahkan masing-masing basis secara desimal.
Kemudian kalian ubah dari hasil desimal ke oktal.
Setelah itu kalian tulis hasil dari penjumlahan digit paling kanan dari hasil bilangan oktal.
Jika hasil penjumlahan yang dilakukan pada tiap basis terdiri dari 2 digit, maka digit paling kiri merupakan carry of untuk penjumlahan kolom selanjutnya.

KONVERSI BILANGAN BINER KE DESIMAL DAN ASCII

09 October 2014 19:13:41 Dibaca : 2175

1. Cara Merubah bilangan biner ke desimal.

Kalian pasti sudah pernah melihat kode biner, seperti di bawah inikan.
010010101010101001101011

nah tetapi angka 1 dan 0 ini juga dapat mewakili angka sistem desimal. Pertama-tama, saya akan menjelaskan bagaimana caranya membaca angka ini sebagai angka sistem desimal. Kemudian, saya akan memperlihatkan bagaimana caranya mempergunakan angka itu dan menerjemahkannya ke dalam teks.

Sistem Biner:
Di sini adalah satu contoh sederhana dari bilangan biner:

1 0 1 0 0

Dan cara membaca bilangan biner itu mulai dari kanan ke kiri, jadi nya seperti ini :
0 0 1 0 1

untuk menghitung nya, slot pertama di kalikan dengan pangkat satu, slot kedua di kalikan dengan pangkat dua, slot ketiga di kalikan dengan pangkat empat, slot ke empat di kalikan dengan pangkat delapan, begitu seterusnya.

1 0 0 0 = 0 0 0 1 0 0 0 (1000 = 000100)

untuk memperjelas contoh di atas

0 1 = 1

kenapa ? jawab : ( 1*1 ) + ( 0*2 ) = 1 + 0 = 1

langsung ke contoh aja deh biar ada bayangan dan ngerti :

a) 100
= (0 * 1) + (0 * 2) + (1 * 4) = 0 + 0 + 4 = 4

b] 000100
= (0 * 1)+(0 * 2)+(1 * 4)+(0 * 8)+(0 * 16)+(0 *32)
= 0+0+4+0+0+0 = 4

c) 100000
= (0 * 1) + (0 * 2) + (0 * 4) + (0 * 8) + (0 * 16) + (1 * 32)
= 0+0+0+0+0+32 = 32

d) 0010
= (0 * 1) + (1 * 2) + (0 * 4) + (0 * 8)
= 0 + 2 + 0 + 0 = 2

jawaban :
a) 4
b] 4
c) 32
d) 2

Kalau kalian dah dapet jawaban yang benar di atas, berarti kalian sudah mengerti dasar dari bilangan biner.

2. cara merubah bilangan biner ke code ASCII

untuk lebih lanjut ke posting sebelumnya aja ASCII code

contoh :
0100100001100101011011000110110001101111

nah sebelumnya kita pisahkan dulu bilangan biner di atas menjadi 8 digit seperti ini
01001000 01100101 01101100 01101100 01101111

nah sekarang kita tinggal menghitung bilangan biner tersebut per 8 digit.
cara menghitung nya seperti ini :

01001000 = (0*1)+(0*2)+(0*4)+(1*8)+(0*16)+(0*32)+(1*64)+(0*128)
= 0+0+0+8+0+0+64+0 = 72

01100101 = (1*1)+(0*2)+(1*4)+(0*8)+(0*16)+(1*32)+(1*64)+(0*128)
= 1+0+4+0+0+32+64+0 = 101

01101100 = (0*1)+(0*2)+(1*4)+(1*8)+(0*16)+(1*32)+(1*64)+(0*128)
= 0+0+4+8+0+32+64+0 = 108

01101100 = (0*1)+(0*2)+(1*4)+(1*8)+(0*16)+(1*32)+(1*64)+(0*128)
= 0+0+4+8+0+32+64+0 = 108

01101111 = (1*1)+(1*2)+(1*4)+(1*8)+(0*16)+(1*32)+(1*64)+(0*128)
= 1+2+4+8+0+32+64+0 = 111

jadi, hasil nya adalah :

01001000 = 72
01100101 = 101
01101100 = 108
01101100 = 108
01101111 = 111

untuk mengetahui karakter apa yg di hasilkan dari angka 72 itu, cobalah anda tekan ALT + [NO], NO di sini maksud nya adalah angka hasil convert bilangan biner ke desimal.
nanti kalian akan mendapatkan hasil kode ASCII nya.

72 = H
101 = e
108 = l
108 = l
111 = o

jadi hasil biner di atas adalah sebuah kata yaitu ( Hello).

KERNEL DAN JENISNYA

09 October 2014 19:11:46 Dibaca : 281

PENGERTIAN KERNEL
 Perangkat lunak yang menjadi bagian utama dari sebuah sistem operasi.
 Melayani bermacam program aplikasi untuk mengakses perangkat keras komputer secara aman.
 Bagian pertama yang di-load ke memory saat boot
 Menyediakan fasilitas berupa service dasar untuk menangani manajemen memori, process management, file management and I/O (input/output) management (i.e., accessing the peripheral devices).
JENIS KERNEL

 

1. Kernel monolitik

          Pendekatan kernel monolitik didefinisikan sebagai sebuah antarmuka virtual yang berada pada tingkat tinggi di atas perangkat keras, dengan sekumpulan primitif atau system call untuk mengimplementasikan layanan-layanan sistem operasi, seperti halnya manajemen proses, konkurensi (concurrency), dan manajemen memori pada modul-modul kernel yang berjalan di dalam mode supervisor.
Meskipun jika setiap modul memiliki layanan operasi-operasi tersebut terpisah dari modul utama, integrasi kode yang terjadi di dalam monolithic kernel sangatlah kuat, dan karena semua modul berjalan di dalam address space yang sama, sebuah bug dalam salah satu modul dapat merusak keseluruhan sistem. Akan tetapi, ketika implementasi dilakukan dengan benar, integrasi komponen internal yang sangat kuat tersebut justru akan mengizinkan fitur-fitur yang dimiliki oleh sistem yang berada di bawahnya dieksploitasi secara efektif, sehingga membuat sistem operasi dengan monolithic kernel sangatlah efisien—meskipun sangat sulit dalam pembuatannya.
Pada sistem operasi modern yang menggunakan monolithic kernel, seperti halnya Linux, FreeBSD, Solaris, dan Microsoft Windows, dapat memuat modul-modul yang dapat dieksekusi pada saat kernel tersebut dijalankan sehingga mengizinkan ekstensi terhadap kemampuan kernel sesuai kebutuhan, dan tentu saja dapat membantu menjaga agar kode yang berjalan di dalam ruangan kernel (kernel-space) seminim mungkin.
Di bawah ini ada beberapa sistem operasi yang menggunakan Monolithic kernel:
• Kernel sistem operasi UNIX tradisional, seperti halnya kernel dari sistem operasi UNIX keluarga BSD (NetBSD, BSD/I, FreeBSD, dan lainnya).
• Kernel sistem operasi GNU/Linux, Linux.
• Kernel sistem operasi Windows (versi 1.x hingga 4.x; kecuali Windows NT).

2. Mikrokernel

        Pendekatan mikrokernel berisi sebuah abstraksi yang sederhana terhadap hardware, dengan sekumpulan primitif atau system call yang dapat digunakan untuk membuat sebuah sistem operasi agar dapat berjalan, dengan layanan-layanan seperti manajemen thread, komunikasi antar address space, dan komunikasi antar proses. Layanan-layanan lainnya, yang biasanya disediakan oleh kernel, seperti halnya dukungan jaringan, pada pendekatan microkernel justru diimplementasikan di dalam ruangan pengguna (user-space), dan disebut dengan server.
Server atau disebut sebagai peladen adalah sebuah program, seperti halnya program lainnya. Server dapat mengizinkan sistem operasi agar dapat dimodifikasi hanya dengan menjalankan program atau menghentikannya. Sebagai contoh, untuk sebuah mesin yang kecil tanpa dukungan jaringan, server jaringan (istilah server di sini tidak dimaksudkan sebagai komputer pusat pengatur jaringan) tidak perlu dijalankan. Pada sistem operasi tradisional yang menggunakan monolithic kernel, hal ini dapat mengakibatkan pengguna harus melakukan rekompilasi terhadap kernel, yang tentu saja sulit untuk dilakukan oleh pengguna biasa yang awam.
Dalam teorinya, sistem operasi yang menggunakan microkernel disebut jauh lebih stabil dibandingkan dengan monolithic kernel, karena sebuah server yang gagal bekerja, tidak akan menyebabkan kernel menjadi tidak dapat berjalan, dan server tersebut akan dihentikan oleh kernel utama. Akan tetapi, dalam prakteknya, bagian dari system state dapat hilang oleh server yang gagal bekerja tersebut, dan biasanya untuk melakukan proses eksekusi aplikasi pun menjadi sulit, atau bahkan untuk menjalankan server-server lainnya.
Sistem operasi yang menggunakan microkernel umumnya secara dramatis memiliki kinerja di bawah kinerja sistem operasi yang menggunakan monolithic kernel. Hal ini disebabkan oleh adanya overhead yang terjadi akibat proses input/output dalam kernel yang ditujukan untuk mengganti konteks (context switch) untuk memindahkan data antara aplikasi dan server.
Beberapa sistem operasi yang menggunakan microkernel:
• IBM AIX, sebuah versi UNIX dari IBM
• Amoeba, sebuah kernel yang dikembangkan untuk tujuan edukasi
• Kernel Mach, yang digunakan di dalam sistem operasi GNU/Hurd, NexTSTEP, OPENSTEP, dan Mac OS/X
• Minix, kernel yang dikembangkan oleh Andrew Tanenbaum untuk tujuan edukasi
• Symbian OS, sebuah sistem operasi yang populer digunakan pada hand phone, handheld device, embedded device, dan PDA Phone.


3.Kernel hibrida
       

        Kernel hibrida aslinya adalah mikrokernel yang memiliki kode yang tidak menunjukkan bahwa kernel tersebut adalah mikrokernel di dalam ruangan kernel-nya. Kode-kode tersebut ditaruh di dalam ruangan kernel agar dapat dieksekusi lebih cepat dibandingkan jika ditaruh di dalam ruangan user. Hal ini dilakukan oleh para arsitek sistem operasi sebagai solusi awal terhadap masalah yang terjadi di dalam mikrokernel: kinerja.
Beberapa orang banyak yang bingung dalam membedakan antara kernel hibrida dan kernel monolitik yang dapat memuat modul kernel setelah proses booting, dan cenderung menyamakannya. Antara kernel hibrida dan kernel monolitik jelas berbeda. Kernel hibrida berarti bahwa konsep yang digunakannya diturunkan dari konsep desain kernel monolitik dan mikrokernel. Kernel hibrida juga memiliki secara spesifik memiliki teknologi pertukaran pesan (message passing) yang digunakan dalam mikrokernel, dan juga dapat memindahkan beberapa kode yang seharusnya bukan kode kernel ke dalam ruangan kode kernel karena alasan kinerja.
Di bawah ini adalah beberapa sistem operasi yang menggunakan kernel hibrida:
• BeOS, sebuah sistem operasi yang memiliki kinerja tinggi untuk aplikasi multimedia.
• Novell NetWare, sebuah sistem operasi yang pernah populer sebagai sistem operasi jaringan berbasis IBM PC dan kompatibelnya.
• Microsoft Windows NT (dan semua keturunannya).


4. Exokernel


     Sebenarnya, Exokernel bukanlah pendekatan kernel sistem operasi yang umum—seperti halnya microkernel atau monolithic kernel yang populer, melainkan sebuah struktur sistem operasi yang disusun secara vertikal.
Ide di balik exokernel adalah untuk memaksa abstraksi yang dilakukan oleh developer sesedikit mungkin, sehingga membuat mereka dapat memiliki banyak keputusan tentang abstraksi hardware. Exokernel biasanya berbentuk sangat kecil, karena fungsionalitas yang dimilikinya hanya terbatas pada proteksi dan penggandaan sumber daya.
Kernel-kernel klasik yang populer seperti halnya monolithic dan microkernel melakukan abstraksi terhadap hardware dengan menyembunyikan semua sumber daya yang berada di bawah hardware abstraction layer atau di balik driver untuk hardware. Sebagai contoh, jika sistem operasi klasik yang berbasis kedua kernel telah mengalokasikan sebuah lokasi memori untuk sebuah hardware tertentu, maka hardware lainnya tidak akan dapat menggunakan lokasi memori tersebut kembali.
Exokernel mengizinkan akses terhadap hardware secara langsung pada tingkat yang rendah: aplikasi dan abstraksi dapat melakukan request sebuah alamat memori spesifik baik itu berupa lokasi alamat physical memory dan blok di dalam hard disk. Tugas kernel hanya memastikan bahwa sumber daya yang diminta itu sedang berada dalam keadaan kosong—belum digunakan oleh yang lainnya—dan tentu saja mengizinkan aplikasi untuk mengakses sumber daya tersebut. Akses hardware pada tingkat rendah ini mengizinkan para programmer untuk mengimplementasikan sebuah abstraksi yang dikhususkan untuk sebuah aplikasi tertentu, dan tentu saja mengeluarkan sesuatu yang tidak perlu dari kernel agar membuat kernel lebih kecil, dan tentu saja meningkatkan performa.
Exokernel biasanya menggunakan library yang disebut dengan libOS untuk melakukan abstraksi. libOS memungkinkan para pembuat aplikasi untuk menulis abstraksi yang berada pada level yang lebih tinggi, seperti halnya abstraksi yang dilakukan pada sistem operasi tradisional, dengan menggunakan cara-cara yang lebih fleksibel, karena aplikasi mungkin memiliki abstraksinya masing-masing. Secara teori, sebuah sistem operasi berbasis Exokernel dapat membuat sistem operasi yang berbeda seperti halnya Linux, UNIX, dan Windows dapat berjalan di atas sistem operasi tersebut.

 

 

Kategori

  • Masih Kosong

Blogroll

  • Masih Kosong