Materi Pertemuan 11 (NOS & Cloud Computing)

Nama          : Gede Haris Premana Wibawa.
Nim             : 1605551016.
Dosen         : I Putu Agus Eka Pratama ST., MT.
Matakuliah  : Network Operating System.
Kampus      : Universitas Udayana, Fakultas Teknik, Program Studi Teknologi Informasi.


Materi pertemuan ke-11 ini akan membahas mengenai Network Operating System dan Cloud Computing. Pembahasan materi ini mencakup teknologi Cloud Computing, dan peranan Network Operating System pada teknologi Cloud Computing.


Teknologi Basis Data

Secara umum, definisi Cloud Computing merupakan gabungan pemanfaatan teknologi komputer dalam suatu jaringan dengan pengembangan berbasis internet yang mempunyai fungsi untuk menjalankan program atau aplikasi melalui beberapa komputer yang terkoneksi pada waktu yang sama, tetapi tidak semua yang terkoneksi melalui internet menggunakan cloud computing.

Teknologi komputer berbasis sistem Cloud ini merupakan sebuah teknologi yang menjadikan internet sebagai pusat server untuk mengelola data dan juga aplikasi pengguna. Teknologi ini mengijinkan para pengguna untuk menjalankan program tanpa instalasi dan mengizinkan pengguna untuk mengakses data pribadi mereka melalui komputer dengan akses internet.

4 Model Deployment Cloud Computing


Ada 4 model deployment yang terdapat pada Cloud Computing. Berikut ini merupakan penjabaran 4 model tersebut.
1. Public Cloud. Merupakan  layanan cloud dapat diakses oleh siapa saja (Public). Layanan Public Cloud ada yang berbayar dan ada yang gratis. Pengguna Public Cloud pada umumnya adalah masyarakat umum. Kelebihan menggunakan Public Cloud, pengguna tidak perlu pusing memikirkan biaya investasi, penyediaan infrastruktur dan sumber daya manusia agar layanan bisa terus berjalan. Data juga dapat mudah disimpan dan diakses selama terkonkesi dengan internet. Kekurangannya memerlukan akses internet yang memadai dan sangat bergantung dengan penyedia layanan. 

2. Private Cloud. Merupakan layanan cloud hanya dapat diakses oleh orang/organisasi tertentu saja (Private). Model ini banyak diterapkan pada lingkungan pendidikan atau perusahaan. Kelebihan paling utama dari Private Cloud adalah kerahasiaan data. Jika Private Cloud ini diimplementasikan pada jaringan intranet maka dapat menghemat biaya dan aksespun lebih cepat. Kekurangannya memerlukan biaya investasi infrastruktur dan sumber daya manusia.

3. Community Cloud. Merupakan layanan cloud yang dikembangkan oleh komunitas yang memiliki kepentingan atau tujuan yang sama. Misalnya komunitas atau asosiasi perguruan tinggi di Indonesia membangun layanan cloud yang berisi data dan aplikasi untuk lingkungan pendidikan.

4. Hybrid Cloud. Merupakan layanan cloud yang merupakan gabungan dari Private Cloud, Public Cloud, dan/atau Community Cloud. Misalnya sebuah perusahaan menggunakan gabungan Private dan Public Cloud, aplikasi dan data-data yang tidak rahasia atau ditujukan untuk konsumen ditempatkan pada Public Cloud sementara untuk aplikasi dan data yang sangat sensitif ditempatkan pada Private Cloud.

3 Model Layanan Cloud Computing

 

Ada 3 model layanan yang terdapat pada Cloud Computing yaitu IaaS, PAAS, dan SAAS. Berikut ini merupakan penjabaran 3 model tersebut.
1. Software as a Service. Merupakan  layanan pada cloud yang paling populer. Layanan ini merupakan evolusi lanjutan dari konsep ASP (Application Service Provider) yang dulu pernah ada. Software as a Services pun merupakan layanan di dalam cloud computing dimana kita tinggal memakai software/perangkat lunak saja yang telah disediakan oleh provider (pemberi layanan). Pengguna atau user hanya tahu bahwa software tersebut dapat berjalan dan bisa digunakan dengan baik. Pelanggan dapat menggunakan layanan SaaS ini dengan cara berlangganan atau pay per-use sehingga tidak perlu melalukan investasi IT. Keterbatasan dari layanan Software as a Services ini adalah memiliki keterbatasan dalam pemanfaatan fitur aplikasi. Mengapa? Karena layanan ini bersifat multi-tenant, maka fitur-fitur yang ada biasanya bersifat umum. Contoh dari layanan SaaS ini, yaitu :
- Layanan Email Publik. Seperti : Gmail, YahooMail, Hotmail, dan lain sebagainya.
- Social Network. Seperti : Facebook, Twitter, Path, dan lain sebagainya.
- Instant Messaging. Seperti : Yahoo Messenger, Skype, Gtalk, dan lain sebagainya.

2. Platform as a Service. Merupakan layanan cloud computing yang menyediakan modul-modul siap pakai yang dapat digunakan untuk mengembangkan sebuah aplikasi yang hanya dapat berjalan di atas platform tersebut. Layanan yang satu ini jika kita analogikan dimana kita menyewa sebuah “rumah” berikut dengan lingkungannya (sistem operasi, network, database, engine, framework aplkasi, dll). Dimana berfungsi untuk menjalankan aplikasi yang ingin kita buat. Layanan Platform as a Services atau PaaS ini juga memiliki keterbatasan dimana pengguna tidak memiliki kendali terhadap sumber daya memory, storage, processing power dan sumber daya lainnya. Pionir layanan PaaS adalah Google AppEngine yang menyediakan aplikasi di atas platform Google dengan bahasa pemrograman Phyon dan Django. Contoh dari layanan PaaS sendiri, yaitu :
- Salesforce melalui Force.com. Dimana Salesforce menyediakan modul-modul untuk mengembangkan aplikasi di atas salesforce dengan menggunakan bahasa pemrograman Apex.
- Layanan Amazon Web Services.
- Windows Azure.

3. Infrastructure as a Service. Merupakan salah satu layanan dari cloud computing yang terletak satu level lebih rendah dari PaaS. Layanan ini adalah sebuah layanan yang “menyewakan” sumber daya teknologi informasi dasar, yang meliputi media penyimpanan data, processing power, memory, sistem operasi, kapasitas jaringan dan lain-lain. Dimana sumber daya ini dapat digunakan oleh penyewa untuk menjalankan aplikasi yang dimilikinya. Model bisnis ini mirip dengan penyedia data center yang menyewakan ruangan untuk co-location, tapi layanan ini lebih ke level mikronya. Dimana penyewa tidak tahu, dengan mesin apa dan bagaimana caranya penyedia melayani. 
Perbedaan yang mendasar dengan layanan data center dengan layanan ini adalah IaaS memungkinkan pelanggan untuk melakukan penambahan atau pengurangan kapasitas secara fleksibel dan otomatis. Salah satu pionir di dalam penyedia jasa layanan IaaS ini adalah amazon.com yang meluncurkan Amazon EC2 (Elastic Computing Cloud). Layanan Amazon EC2 ini menyediakan berbagai pilihan penyewaan mulai dari CPU, media penyimpanan, dilengkapi dengan sistem operasi dan juga platform pengembangan aplikasi yang bisa disewakan dengan perhitungan perjam.

Manfaat Cloud Computing

Beberapa manfaat mengapa harus menggunakan Cloud Computing. Berikut ini beberapa manfaat tersebut.
1. Meningkatkan Kecepatan Bisnis. Layanan Cloud Computing yang fleksibel mendukung perusahaan dalam mengembangkan produk-produk inovatif yang kemudian memberikan kecepatan kepada perusahaan guna mempertahankan daya saing di pasar yang dinamis. Sistem yang baik memiliki virtualisasi yang sudah tersedia di dalamnya, dengan aplikasi yang mudah untuk dipasang, serta mendukung beban kerja dari perangkat mobile.

2. Kemanan data. Keamanan data perusahaan merupakan faktor penentu penting untuk layanan Cloud Computing. Penyedia layanan harus memiliki standar keamanan terbaru dan ditinjau secara berkala. Komponen keamanan yang harus ditinjau termasuk firewall, anti-virus, multi-factor user authentication, enkripsi data, dan audit keamanan.

3. Semua Data Tersimpan dalam Server yang Terpusat. Dengan menyimpan data ke dalam cloud, pengguna tidak perlu kesulitan dalam menghandle infrastruktur seperti data center, media penyimpanan, dan sebagainya karena telah disediakan secara virtual dan terpusat dalam satu server cloud.

4. Pembayaran dalam Jangka Waktu Tertentu. Penghematan biaya akan pembelian suatu inventaris seperti infrastruktur, hardisk, dan lain-lain akan berkurang dikarenakan pengguna akan dikenakan biaya kompensasi rutin per-bulan sesuai dengan paket layanan yang telah disepakati dengan penyedia layanan Cloud Computing. Biaya royalti atau lisesnsi software juga bisa dikurangi karena semua telah dijalankan lewat komputasi berbasis Cloud.

Model Implementasi Cloud Computing

Secara umum model implementasi cloud computing dapat dibedakan menjadi 2 bagian yaitu sebagai berikut.
1. Virtualisasi. Merupakan sebuah penyediaan emulasi untuk platform hardware, system operasi, ataupun data storage. Dengan menggunakan virtualisasi maka sebuah hardware actual bisa digunakan untuk mengemulasi beberapa computer sekaligus dan beberapa computer ini bisa langsung dimanfaatkan untuk menjalankan aplikasi yang berbeda dan bahkan system operasi  berbeda secara simultan. Dalam model virtualisasi pilihan konfigurasi hardware sangat tergantung dari kebutuhan kita.
 
2. Service aplikasi. Service aplikasi bisa dilakukan dengan membuat sebuah aplikasi yang menggunakan model multi organisasi, di mana setiap pengguna harus melakukan proses login dan kemudian pengguna tersebut bisa mengakses aplikasi yang diperuntukkan bagi dia. Layanan service aplikasi biasanya menggunakan basis web, sehingga aplikasi yang digunakan bisa di akses dari mana saja dan kapan saja. 
 
Contoh yang bisa kita lihat untuk model nomer 1 misalnya layanan Amazon EC2. Amazon menyediakan layanan komputasi berdasarkan jam penggunaan. Sehingga untuk perusahaan yang menggunakan server hanya beberapa jam saja, maka biaya yang dibutuhkan untuk pengadaan server bisa dihitung pemakaiannya sehingga biaya secara keseluruhan bisa ditekan sedemikian rupa sesuai keadaan keuangan perusahaan.

Pada kasus kedua contoh yang sudah sering kita gunakan adalah layanan email berbasis web seperti Gmail, Yahoo Mail, Telkom mail, dan layanan email berbasis web yang lain. Tentu saja layanan ini bisa berkembang menjadi layanan-layanan lain seperti layanan penyimpanan file (storage) video, dan layanan aplikasi-aplikasi office misalnya. Google sebagai pionir mesin pencari telah menyediakan aplikasi office sederhana berbasis web yang bisa digunakan oleh siapapun. Demikian pula Microsoft sebagai raksasa pembuat software juga mulai memport aplikasi officenya menjadi berbasi web. 

Referensi

[1] I Putu Agus Eka Pratama. "PPT Network Operating System Pertemuan 11". 2018. 
 

Materi Pertemuan 10 (Security & Security Management NOS)

Nama          : Gede Haris Premana Wibawa.
Nim             : 1605551016.
Dosen         : I Putu Agus Eka Pratama ST., MT.
Matakuliah  : Network Operating System.
Kampus      : Universitas Udayana, Fakultas Teknik, Program Studi Teknologi Informasi.


Materi pertemuan ke-10 ini akan membahas mengenai Keamanan dan Manajemen Keamanan pada Network Operating System. Pembahasan materi ini mencakup keamanan pada Network Operating System, bentuk-bentuk ancaman keamanan, dan manajemen keamanan pada Network Operating System. 
 


Pengertian Keamanan Jaringan

Keamanan jaringan didefinisikan sebagai sebuah perlindungan dari sumber daya terhadap upaya modifikasi, utilisasi, pelarangan dan perusakan oleh seseorang yang tidak diijinkan. Beberapa insinyur jaringan mengatakan bahwa hanya ada satu cara mudah dan ampuh untuk mewujudkan sistem jaringan komputer yang aman yaitu dengan menggunakan pemisah antara komputer dengan jaringan selebar satu inci, dengan kata lain, hanya komputer yang tidak terhubung ke jaringanlah yang mempunyai keamanan yang sempurna. Meskipun ini adalah solusi yang buruk, tetapi ini menjadi pertimbangan fungsionalitas dan mengatasi gangguan. Tujuan utama dengan adanya keamanan jaringan ini adalah untuk membatasi akses informasi dan sumber daya hanya untuk pemakai yang memiliki hak akses.

Prinsip Keamanan Jaringan

Prinsip keamanan jaringan sangat perlu dipahami maka dari itu berikut ini saya akan memaparkan beberapa prinsip keamanan jaringan.
1.  Kerahasiaan. Berhubungan dengan hak akses untuk membaca data atau informasi dan suatu sistem komputer. Dalam hal ini suatu sistem komputer dapat dikatakan aman jika suatu data atau informasi hanya dapat dibaca oleh pihak yang telah diberi hak akses.

2. Integritas. Berhubungan dengan hak akses untuk mengubah data atau informasi dari suatu sistem komputer. Dalam hal ini suatu sistem komputer dapat dikatakan aman jika suatu data atau informasi hanya dapat diubah oleh pihak yang telah diberi hak akses.

3. Ketersediaan. Berhubungan dengan ketersediaan data atau informasi pada saat yang dibutuhkan. Dalam hal ini suatu sistem komputer dapat dikatakan aman jika suatu data atau informasi yang terdapat pada sistem komputer dapat diakses dan dimanfaatkan oleh pihak yang berhak.

4. Autentikasi. Aspek ini berhubungan dengan metode untuk menyatakan bahwa informasi benar-benar asli, orang yang mengakses atau memberikan informasi adalah benar-benar orang yang dimaksud, atau server yang kita hubungi adalah benar-benar server yang asli.
Untuk membuktikan keaslian dokumen dapat dilakukan dengan teknologi watermarking dan digital signature. Sedangkan untuk menguji keaslian orang atau server yang dimaksud bisa dilakukan dengan menggunakan password, biometric (ciri-ciri khas orang), dan sejenisnya.

5.  Akses Kontrol. Merupakan fitur-fitur keamanan yang mengontrol bagaimana user dan sistem berkomunikasi dan berinteraksi dengan sistem dan sumberdaya yang lainnya. Akses kontrol melindungi sistem dan sumber daya dari akses yang tidak berhak dan umumnya menentukan tingkat otorisasi setelah prosedur otentikasi berhasil dilengkapi.

Bentuk-bentuk Ancaman Keamanan Jaringan

Beberapa bentuk ancaman yang dapat mengganggu keamanan jaringan adalah sebagai berikut.
1. DOS / DDOS. Denial of Services dan Distributed Denial of Services adalah sebuah metode serangan yang bertujuan untuk menghabiskan sumber daya sebuah peralatan jaringan komputer sehingga layanan jaringan komputer menjadi terganggu.

2. Paket Sniffing. Sebuah metode serangan dengan cara mendengarkan seluruh paket yang lewat pada sebuah media komunikasi, baik itu media kabel maupun radio. Setelah paket-paket yang lewat itu didapatkan, paket-paket tersebut kemudian disusun ulang sehingga data yang dikirimkan oleh sebuah pihak dapat dicuri oleh pihak yang tidak berwenang.

3. DNS Forgery. Salah satu cara yang dapat dilakukan oleh seseorang untuk mencuri data-data penting orang lain adalah dengan cara melakukan penipuan. Salah satu bentuk penipuan yang bisa dilakukan adalah penipuan data-data DNS.

4. Trojan Horse. Program yang disisipkann tanpa pengetahuan si pemilik komputer, dapat dikendalikan dari jarak jauh & menggunakan timer.

5. IP Spoofing. Sebuah model serangan yang bertujuan untuk menipu seseorang. Serangan ini dilakukan dengan cara mengubah alamat asal sebuah paket, sehingga dapat melewati perlindungan firewall dan menipu host penerima data.

6. Probe. Usaha yang tidak biasa untuk memperoleh akses ke dalam suatu sistem / untuk menemukan informasi tentang sistem tersebut. Dapat dianalogikan sebagai usaha untuk memasuki sebuah ruangan dengan mencoba-coba apakah pintunya terkunci atau tidak.

7. Account Compromise. Penggunaan account sebuah komputer secara ilegal oleh seseorang yang bukan pemilik account tersebut. Account Compromise dapat mengakibatkan korban mengalami kehilangan atau kerusakan data.

8. Root Compromise. Mirip dengan account compromise, dengan perbedaan account yang digunakan secara ilegal adalah account yang mempunyai privelege sebagai administrator sistem. Akibat yang ditimbulkan bisa mengubah kinerja sistem, menjalankan program yang tidak sah.

Pengertian Vulnerability 

Vulnerability merupakan suatu kelemahan yang memungkinkan seseorang untuk masuk dan mendapatkan hak akses kedalam komputer yang dituju. Biasanya vulnerability adalah kelemahan yang dikarenakan kesalahan saat melakukan konfigurasi ataupun ketidaktahuan administrator. Beirkut ini merupakan beberapa ancaman vulnerability. 
1. Exploit. Sebuah kode yang menyerang keamanan komputer secara spesifik. Exploit banyak digunakan untuk penentrasi baik secara legal ataupun ilegal untuk mencari kelemahan(Vulnerability) pada komputer.
2. Shellcode. Kode yang digunakan dengan payload untuk mengeksploitasi komputer target. Biasanya shellcode dibuat untuk dapat mengontrol komputer, ataupun mendapatkan hak akses komputer target.
3. Payload. Pembawa exploit yang digunakan untuk mengeksekusi shellcode. Payload kemudian akan menjalankan shellcode yang dipilih pada target komputer untuk mendapatkan akses. 

SELinux 

SELinux merupakan kependekan dari Security Enhanced Linux. Dari kepanjangannya kita dapat mengetahui bahwa SELinux ini merupakan peningkatan keamanan dari security system yang ada di Linux. SELinux pertama kali dikenalkan pada distro Fedora Core 2, kemudian digunakan juga pada distribusi RHEL dan CentOS. SELinux pun terus dikembangkan, hingga saat ini masih digunakan pada distibusi Fedora 18, RHEL 6.4, dan CentOS 6.4. 
SELinux mengikuti aturan untuk membuat priviledge paling rendah dengan demikian menekankan keamanan, kemudian baru dilanjutkan dengan serangkaian aturan exception. SELinux memiliki 3 mode dalam penggunaannya antara lain sebagai berikut.
1. Enforcing. Merupakan konfigurasi keamanan yang paling ketat.
2. Permissive. Merupakan konfigurasi keamanan yang sedikit longgar, tetapi akan melakukan login untuk tindakan jika berjalan dalam mode enforcing kembali.
3. Disabled. Konfigurasi yang tidak mengaktifkan SELinux.

Bagaimana agar Network Operating System menjadi lebih aman ? 

Network Operating System tentunya tidak 100% aman, nah bagaimana caranya agar NOS menjadi lebih aman dari sebelumnya ? Berikut ini beberapa cara yang dapat dipahami agar NOS menjadi lebih aman. 
1. Sistem Hardening adalah proses untuk menilai atau menimbang arsitektur keamanan sistem operasi, serta proses auditing (memeriksa kembali) apakah sistem operasi yang sudah terpasang berjalan dengan baik atau tidak. Hal ini untuk mengantisipasi beberapa jenis serangan yang dapat dilakukan terhadap sistem operasi tersebut. Serangan tersebut bisa dilakukan oleh attacker apabila banyak kesalahan (vulnerable) yang dijumpai didalam sistem operasi. Sistem Hardening kurang lebihnya dapat disimpulkan sebagai langkah awal untuk bertahan dan mengevaluasi dari serangan yang dilakukan terhadap sistem operasi (komputer), hal ini meliputi.
- Pengecekan setelah proses instalasi awal.
- Pengoptimalan sistem operasi sebelum dilakukan hubungan ke internet
- Pengecekan secara rutin apabila perlu dilakukan patching (tambahan) terhadap fasilitas pendukung yang ada didalam sistem operasi dan aplikasinya.
- Penghapusan terhadap kesalahan (vulnerabilities) yang ditemukan.   

2. Patching merupakan software yang dirancang untuk mengupdate komputer program atau data pendukungnya untuk memperbaiki atau memperbaharuinya, termasuk memperbaiki masalah kelemahan keamanan.

3. Open Source. Dengan open source kita dapat melakukan perbaikan keamanan dengan segera karena dibantu dengan komunitas dan juga enterprise. 

Manajemen Keamanan pada NOS

Beberapa manajemen keamanan yang dapat diketahui adalah sebagai berikut. 
1. Intrusion Detection System yaitu metode yang dapat digunakan untuk mendeteksi aktivitas yang mencurigakan dalam sebuah sistem atau jaringan.
2. Kontrol Akses yaitu teknik keamanan yang dapat dirancang untuk mengatur siapa atau jadi apa yang dilakukan penggunaan sumber daya dalam lingkungan komputasi.
3. Risk Management dan IT Risk Management yaitu mengidentifikasi resiko termasuk ancaman untuk melindungi sistem IT dan data didalamnya.
4. Prosedur Keamanan yaitu keamanan dalam operasi dimana mengatur dan mengelola sistem keamanan, juga termasuk prosedur setelah serangan.
5. Manajemen Pengguna,yaitu pengelompokkan client satu dan kelompok lainnya memiliki hak akses dalam jaringan yang berbeda.
6. Manajemen Hak Akses yaitu pembagian hak akses yang ada sesuai dengan kebijakan dari pihak manajemen instansi terkait.
7. Manajemen Memori yaitu mengatur kinerja memori dalam sebuah sistem komputer melalui sistem operasi
8. Sumber Kode merupakan keterbukaan sumber kode akan memudahkan pengembangan di sisi software
9. Simulasi Penyerangan merupakan simulasi penyerangan dapat dilakukan dengan berbasis honeynet dan honeypot.
10. Keamanan di Level Fisik merupakan keamanan  tahap awal dari keamanan komputer. Jika keamanan fisik tidak terjaga dengan baik maka data tidak dapat diamankan.

Referensi

[1] I Putu Agus Eka Pratama. "PPT Network Operating System Pertemuan 10". 2018.

Materi Pertemuan 9 (NOS pada Server)

Nama          : Gede Haris Premana Wibawa.
Nim             : 1605551016.
Dosen         : I Putu Agus Eka Pratama ST., MT.
Matakuliah  : Network Operating System.
Kampus      : Universitas Udayana, Fakultas Teknik, Program Studi Teknologi Informasi.


Materi pertemuan ke-9 ini akan membahas mengenai Network Operating System pada sebuah Server. Pembahasan materi pada postingan kali ini mencakup Server dan pemilihan, manajemen, konfigurasi, maintenance Network Operating System untuk Server. 




Pengertian Server

Server merupakan salah satu contoh menjalankan perangkat lunak yang mampu menerima perintah dari klien, komputer yang mengeksekusi perangkat lunak, dimana “server” adalah program komputer yang menjalankan untuk melayani permintaan dari program lain, klien mungkin berbagi data, informasi, hardware dan software. Server bisa digunakan cukup luas dalam teknologi informasi. Setiap proses komputerisasi yang berbagi sumber daya untuk satu lebih proses klien. Demikian pula perangkat lunak server web dapat dijalankan pada setiap komputer, dan laptop yang dapat memenuhi peran web server. Contoh ini adalah aplikasi server Mail Server, Web / HTTP Server, FTP Server, DHCP Server, DNS Server, dan sebagainya. Berikut ini merupakan beberapa layanan yangdiberikan server terhadap komputer klien.
- Resource sharing, merupakan istilah dari fungsi server untuk melayani penggunaan perangkat tambahan secara bersama-sama. (contoh: penggunaan pronter, penggunaan scaner dan lain-lain). 
- Data sharing, dengan adanya server memungkinkan pengguna komputer untuk melakukan pengolahan data maupun informasi secara bersama-sama.
- Mengatur sekuritas dalam jaringan, sehingga membuat data yang tersimpan di dalam komputer server lebih aman.
- Mengatur hak akses terhadap pengguna jaringan komputer sehingga dengan adanya server admin dapat mengatur siapa yang berhak mengatur server maupun siapa yang saja yang tidak berhak mengatur server, hal ini bertujuan untuk meningkatkan keamanan data yang tersimpan dalam komputer server.

Jenis-jenis Server

Jenis-jenis server dapat dibagi menjadi beberapa server sesuai dengan kebutuhan dan keperluannya. Berikut ini merupakan beberapa jenis server. 
1. Server Platform: Server platform adalah hardware atau software dasar untuk sistem yang bertindak sebagai mesin yang menggerakkan server.
2. Server Aplikasi: Juga dikenal sebagai jenis middleware, berfungsi sebagai pengolah perintah dari client dan database.
3. Server Audio / Video : Menyediakan kemampuan multimedia ke situs web dengan membantu pengguna untuk menyiarkan streaming konten multimedia.
4. Chat Server : Untuk menangani chatting beberapa user.
5. Fax Server : Fax server memungkinkan user untuk mengirim dan menerima fax melalui jaringan komputer
6. FTP Server : File Transfer Protocol Server untuk transfer data, dari atau ke client
7. Groupware Server : Ini adalah software yang dirancang yang memungkinkan pengguna untuk bekerja sama, terlepas dari lokasi, melalui Internet atau intranet perusahaan dan berfungsi bersama-sama dalam suasana virtual.
8. IRC Server : Internet Relay Chat server memungkinkan user untuk berdiskusi lewat jaringan
9. List Server : Menyediakan cara yang lebih baik mengelola milis. Server dapat berupa diskusi interaktif terbuka untuk orang-orang atau daftar satu arah yang memberikan pengumuman, buletin atau iklan.
10. Mail Server : Server yang bertugas untuk menangani e-mail
11. News Server: Ini berfungsi sebagai sumber distribusi dan pengiriman untuk banyak kelompok berita umum, didekati melalui jaringan berita USENET.
12. Proxy Server : Proxy Server bertindak sebagai mediator antara client dan server diluar jaringan untuk menyaring/membatasi permintaan, meningkatkan kinerja koneksi dan sharing.
13. Telnet Server : Untuk log on ke komputer host dengan cara remote dari komputer lain.
14. Virtual Server : Virtual server adalah metode untuk mengurangi jumlah server fisik, jadi pada satu server fisik seolah-olah ada beberapa server.
15. Web Server : Menyediakan konten ke web browser, Web Server berkomunikasi menggunakan HTTP (Hypertext Transfer Protocol).

Network Operating System untuk Server

Server dalam menjalankan fungsinya untuk melayani didalam jaringan komputer atau pun internet memerlukan sistem operasi yang optimal untuk menangani pelayanan terhadap pengguna/klien. Berikut ini merupakan sistem operasi yang sering digunakan pada Server. 
1. OS Linux dan kernel Linux dengan semua distribusinya (Ubuntu, Debian, OpenSUSE, Fedora, BackTrack, Mandriva, Slackware, PCLinuxOS, CentOS).
2. Free BSD dan semua varian BSD (Open BSD, Dragon Fly BSD, PC BSD, dll).
3. Sun Solaris (Sun Microsystem).
4. Novell Netware.
5. UNIX, MINIX, IRIX.


Aspek Penting Network Operating System untuk Server

Terdapat 4 aspek penting yang perlu diperhatikan dalam Network Operating System untuk Server. Berikut ini merupakan 4 aspek penting NOS untuk Server.
1. Pemilihan. Hal yang pertama yang perlu diperhatikan dalam menggunakan sistem operasi untuk server. Pemilihan mencakup pertimbangan keamanan server, kenyamanan, dukungan dari komunitas atau enterprise, mengenai biaya, dan kebutuhan.
2. Manajemen. Hal kedua yang perlu juga diperhatikan adalah bagaimana mengatur mengenai pengguna, hak akses, hak kepemilikan, memori, dan penyimpanan.
3. Konfigurasi. Mengenai cara menkonfigurasi file-file yang ada pada sistem operasi tersebut 
4. Maintenance. Upaya perbaikan yang dilakukan secara berkala untuk menjaga agar sistem operasi yang digunakan untuk Server tetap optimal pengoperasiannya. Jangka waktu perbaikan bisa dilakukan dalam per-hari, per-minggu, per-bulan, maupun menggunakan cron.

Referensi

[1] I Putu Agus Eka Pratama. "PPT Network Operating System Pertemuan 9". 2018.

Materi Pertemuan 8 (Kernel & Kernel Linux)

Nama          : Gede Haris Premana Wibawa.
Nim             : 1605551016.
Dosen         : I Putu Agus Eka Pratama ST., MT.
Matakuliah  : Network Operating System.
Kampus      : Universitas Udayana, Fakultas Teknik, Program Studi Teknologi Informasi.


Materi yang akan saya bahas kali ini mengenai kernel dan kernel linux berbeda dengan materi yang saya bahas pada post sebelumnya yaitu mengenai Scheduling. Bahasan materi ini mengenai Kernel, Kernel Linux, dan Bagian Kernel. 


Definisi Kernel 

Sebuah sistem operasi mempunyai sebuah bagian sangat penting yang disebut dengan kernel. Kernel  adalah inti dari sistem operasi dan bagian yang pertama kali di-load ke memori ketika sistem mulai dan tetap berjalan sampai sistem berhenti. Servisnya diperlukan oleh bagian dari sistem operasi lainnya dan program aplikasi. Kernel menjalankan servis dasar dari sistem operasi seperti manajemen memori, manajemen proses, manajemen file, dan manajemen i/o (input/output). Ketika menjalankan servis-servis tersebut, kernel terdiri dari bermacam isi tergantung dari sistem operasinya, tetapi umumnya ada scheduler, supervisor, interrupt handler, dan memory manager. Berikut ini merupakan pengertian isi dari sistem operasi :
1. Scheduler berfungsi untuk mengatur pembagian waktu dan urutan dari proses-proses yang ingin mendapatkan servis dari kernel.
2. Supervisor berfungsi untuk memberikan servis oleh kernel kepada proses yang sudah dijadwalkan. 
3. Interrupt handler berfungsi untuk menangani seluruh permintaan dari hardware yang ingin mendapatkan servis dari kernel.
4. Memori manager berfungsi untuk mengatur alokasi alamat di memori.

Kernel yang didisain untuk linux hanya akan dipakai oleh sistem operasi tersebut. Linux mempunyai kernel yang didisain untuknya tetapi user bisa memodifikasinya sesuai kebutuhannya masing-masing. Hal tersebut juga yang membuat kernel lebih dikenal di linux karena sifat kernelnya yang open source, berbeda dengan sistem operasi lainnya yang kernelnya tidak bisa dimodifikasi. 

Bagian Kernel 

Sistem operasi mengembangkan kernel yang dapat dibagi menjadi 4 bagian yang berbeda secara desain, berikut ini merupakan bagian-bagian tersebut :
1. Kernel Monolithic, yaitu mengintegrasikan banyak fungsi di dalam kernel dan menyediakan lapisan abstraksi perangkat keras secara penuh terhadap perangkat keras yang berada di bawah sistem operasi. Kernel monolithic memiliki seluruh servis dasar dari sistem operasi didalamnya. Kelebihan dari disain monolithic adalah efisiensi, sehingga performa sistem juga meningkat. Hal ini dikarenakan keseluruhan proses yang memerlukan fungsi kernel terjadi didalam kernel itu sendiri. Monolithic juga memiliki kelemahan, salah satunya dalam hal stabilitas, dimana kemungkinan sistem crash lebih besar. Contoh kernel berdisain monolithic yang paling dikenal terdapat dalam sistem operasi linux dan microsoft windows 9x.

2. Kernel Microkernel, berfungsi menyediakan sedikit saja dari abstraksi perangkat keras dan menggunakan aplikasi yang berjalan di atasnya (yang disebut dengan server) untuk melakukan beberapa fungsionalitas lainnya. Disain microkernel hanya mengimplemetasikan servis dasar minimal yang diperlukan, yaitu manajemen pengalamatan memori, manajemen proses/thread, dan inter-process communication. Kelebihan microkernel adalah stabilitas sistem lebih terjaga dan kekurangannya adalah komunikasi antara proses menjadi lebih rumit sehingga sistem menjadi tidak efisien. Contoh kernel berdisain microkernel terdapat dalam sistem operasi mac os x, minix, qnx ,dan lain-lain.

3. Kernel Hibrida, adalah pendekatan desain microkernel yang dimodifikasi. Pada kernel hibrida, terdapat beberapa tambahan kode di dalam ruangan kernel untuk meningkatkan performa. Disain hibrida kernel menyerupai microkernel tetapi dengan tambahan kode yang menyebabkan hybrid kernel dapat berjalan lebih cepat dari microkernel. Hal tersebut yang juga merupakan kelebihan dari hybrid kernel. Contoh kernel berdisain hybrid kernel terdapat dalam sistem operasi microsoft windows nt, windows 2000, dan windows xp.

4. Kernel Exo-kernel, menyediakan hardware abstraction secara minimal, sehingga program dapat mengakses hardware secara langsung. Dalam pendekatan desain Exo-kernel, library yang dimiliki oleh sistem operasi dapat melakukan abstraksi yang mirip dengan abstraksi yang dilakukan dalam desain monolithic kernel. Disain exo-kernel masih merupakan disain eksperimental dan dalam tahap penelitian sehingga belum dipakai secara luas. Perbedaan konsep disain exo-kernel dengan disain kernel lainnya adalah exo-kernel memiliki fungsi perlindungan dan pembagian resource untuk hardware. Kelebihan exo-kernel adalah bisa dimasukkan library sistem operasi lebih dari satu sehingga bisa menjalankan program-program untuk sistem operasi yang berbeda secara bersamaan. Contoh exo-kernel terdapat pada nemesis, masih sistem operasi konsep, ditulis oleh university of cambridge, university of glasgow, citrix systems, dan the swedish institute of computer science.

Kernel Linux

Kernel Linux adalah kernel yang digunakan dalam sistem operasi GNU/Linux. Kernel ini merupakan turunan dari keluarga sistem operasi UNIX, dirilis dengan menggunakan lisensi GNU General Public License (GPL), dan dikembangkan oleh pemrogram di seluruh dunia. Linux merupakan contoh utama dari perangkat lunak bebas dan sumber terbuka. Linux pada awalnya dibuat oleh seorang mahasiswa Finlandia yang bernama Linus Torvalds. Dulunya Linux merupakan proyek hobi yang diinspirasikan dari Minix, yaitu sistem UNIX kecil yang dikembangkan oleh Andrew Tanenbaum. Linux versi 0.01 dikerjakan sekitar bulan Agustus 1991. Kemudian pada tanggal 5 Oktober 1991, Linus mengumumkan versi resmi Linux, yaitu versi 0.02 yang hanya dapat menjalankan shell bash (GNU Bourne Again Shell) dan gcc (GNU C Compiler). Berikut ini merupakan bagan mengenai kompleksnya Kernel Linux. 

Praktek Membedah Kernel Linux

Saya mencoba membuka source code kernel linux versi awal. Berikut ini merupakan beberapa direktori yang akan coba saya jelaskan. 
1. Direktori boot 
File yang terdapat pada direktori ini ada 2 yaitu boot.s dan head.s. boot.s merupakan file yang berfungsi untuk menjalankan startup BIOS. head.s merupakan file yang berfungsi sebagai kode startup 32-bit pada linux. 

2. Direktori lib
File yang terdapat pada direktori ini ada 11 yaitu _exit.c, close.c, ctype.c, dup.c, errno.c, execve.c, open.c, setsid.c, string.c, wait.c, dan write.c.
- File _exit.c ini menjalan fungsi _exit(int exit_code) 
- File close.c ini menjalankan fungsi syscall1(int,close,int,fd)
- File dup.c ini menjalankan fungsi yang sama dengan file close.c namun parameternya berbeda yaitu syscall1(int,dup,int,fd)
- File ctype.c ini menggunakan library ctype.h yang berfungsi untuk menguji dan mengkonversi karakter.
- File execve.c ini menjalankan fungsi _syscall3(int,execve,const char*, file, char **, argv, char **, envp)
- File open.c ini menggunakan library stdarg. yang berfungsi mengakses berbagai jumlah argumen dilewatkan ke fungsi. File ini menjalankan fungsi open.
- File setsid.c ini menjalankan fungsi _syscall0(pid_t,setsid)
- File string.c ini menggunakan library string.h dan mendeklarasikan fungsi extern, inline, dan __LIBRARY__ 
- File wait.c ini menggunakan library sys/wait.h dan menjalankan fungsi wait.
- File write.c ini menjalankan fungsi _syscall3(int,write,intfd,const char*, buf, off_t, count)

Referensi 

[1] I Putu Agus Eka Pratama. "PPT Network Operating System Pertemuan 8". 2018.