Modul Bab 7
Modul Bab 7
2020/2021
Praktikum ini bertujuan memperkenalkan konsep system berkas dan direktori pada system operasi.
7.3.2. Direktori
Dalam file system Unix, sebuah node indeks yang lebih dikenal dengan sebutan inode, yang
merupakan strutktur data struktur data yang digunakan untuk mewakili objek filesystem, yang dapat
berupa file atau direktori. Setiap inode menyimpan atribut dan lokasi blok disk dari data objek
filesystem. Atribut objek filesystem dapat mencakup manipulasi metadata. Metadata dari sebuah file
dan direktori dapat berupa :
• Nama File
• Besar File
• Waktu Pembuatan, Perubahan, dan akses terakhir.
• Permissions
• Filepath
• Checksum
• File data (inode)
Direktori hanya melakukan pemetaan nama ke dalam inode, POSIX dalam Unix menyediakan sebuah
fungsi kecil untuk membaca nama file dan nomor inode untuk setiap entri. Dalam Unix, direktori dapat
53
Modul Praktikum Sistem Operasi
2020/2021
direperesentasikan sama dengan semua file dalam inode yang dapat dilustrasikan seperti pada
gambar 7.1.
Praktikum ini dilakukan dengan terlebih dahulu terhubung dengan layanan aws educate dengan cara
mengaktifkan instance dari halaman instance summary. Pilih action dan Start untuk mengaktifkan
instance. Lakukan koneksi SSH dengan cara yang sama seperti pada Bab 1.
tulis.c
1 #include <stdio.h>
2 #include <stdlib.h>
3 int main()
4 {
5 FILE *fh;
6 fh=fopen("Praktikum_IX.txt","w");
54
Modul Praktikum Sistem Operasi
2020/2021
7 if(fh==NULL)
8 {
9 puts("Can't open that file!");
10 exit(1);
11 }
12 fprintf(fh,"Look what I made!n");
13 fclose(fh);
14 return(0);
15 }
tulis.c
1 #include <stdio.h>
2 #include <stdlib.h>
3 int main()
4 {
5 FILE *fh;
6 int ch;
7 fh=fopen("Praktikum_IX.txt","r");
8 if(fh==NULL)
9 {
10 puts("Can't open that file!");
11 exit(1);
12 }
13 while((ch=fgetc(fh))!=EOF)
14 putchar(ch);
15 fclose(fh);
return(0);
}
55
Modul Praktikum Sistem Operasi
2020/2021
7.4.3. Membaca Direktori
1. Login ke sistem GNU/Linux kemudian buka terminal.
2. Buatlah sebuah direktrori yang berisi beberapa (minimal 2) sub direktori. Isi sebuah file
pada masing-masing
3. Lakukan percobaan terhadap tiap kode program pada masing-masing sub bab berikut.
4. Lakukan kompilasi kode program dengan menggunakan perintah
gcc -o <Nama_Output> <Nama_Source.c>
5. Jalankan hasil kompilasi menggunakan perintah ./<Nama_Output>
6. Periksalah masing-masing keluaran dari perintah untuk setiap direktori
7. Capture / Snapshot output-nya dan simpan sebagai laporan.
8. Amati output tiap percobaan dan jawab pertanyaan pada masing-masing percobaan
Ls.c
1 #include <stdio.h>
2 #include <dirent.h>
3 #include <stdlib.h>
4 int main(int argc, char **argv) {
5 if(argc ==1) {
6 printf("Usage: %s [directory]\n", *argv);
7 exit(0);
8 }
9 struct dirent *dp;
10 DIR *dirp = opendir(argv[1]);
11 while ((dp = readdir(dirp)) != NULL) {
12 printf("%s %lu\n", dp-> d_name, (unsigned long)dp-> d_ino
13 );
14 }
15
16 closedir(dirp);
17 return 0;
}
9. Sebut dan jelaskan operasi direktori yang terdapat pada program diatas ?
10. Program yang berhasil anda kompilasi telah dimiliki oleh sistem Unix dan bahkan lebih
kompleks, sebutkan beserta opsi dan keterangannya.
56
Modul Praktikum Sistem Operasi
2020/2021
$ chmod 644 <nama_file>
$ chmod 755 <nama_file>
$ chmod 700 <nama_file>
$ chmod ugo-w <nama_file>
$ chmod o-rx <nama_file>
7.5. Kesimpulan
UNTUK DIPERHATIKAN
Setiap selesai melakukan praktikum, jangan lupa menonaktfikan instance agar billing kuota tidak terus
berjalan. Lakukan dengan cara memilih button Action pada Instance Summary. Pilih Stop sebagai
perintah yang harus dijalankan.
57