wikiHow adalah suatu "wiki", yang berarti ada banyak artikel kami yang disusun oleh lebih dari satu orang. Untuk membuat artikel ini, 121 penyusun, beberapa di antaranya anonim, menyunting dan memperbaiki dari waktu ke waktu.
Artikel ini telah dilihat 26.403 kali.
Sistem operasi memungkinkan pengguna untuk berinteraksi dengan perangkat keras komputer. Sistem ini terbuat dari ratusan ribu baris kode. Biasanya sistem operasi dibuat menggunakan bahasa pemrograman C#, C, C++, dan bahasa pemrograman rakitan (Assembly). Sistem operasi memungkinkan Anda untuk menjelajahi komputer sambil melakukan penyimpanan dan menjalankan perintah. Jangan berpikir membuat sistem operasi itu mudah. Butuh banyak sekali pengetahuan untuk membuatnya.
Langkah
-
1Pertama-tama, pelajari tentang pemrograman. Bahasa rakitan sangat penting; sangat disarankan Anda mempelajari bahasa tingkat tinggi pelengkap lainnya seperti bahasa C.
-
2Tentukan media apa yang Anda ingin gunakan untuk memuat SO tersebut. Media ini bisa berupa kandar CD, kandar DVD, kandar kilat, kandar keras, disket, atau PC lain.
-
3Tentukan gagasan inti dari sebuah SO. Misalnya, di Windows, gagasan intinya adalah GUI yang mudah digunakan dan banyaknya keamanan.
-
4Tentukan platform prosesor apa yang akan didukung oleh sistem operasi Anda. IA-32, ARM, dan x86_64 adalah platform paling umum untuk komputer pribadi. Jadi, semuanya merupakan pilihan terbaik Anda.
-
5Tentukan apakah Anda lebih suka melakukan semuanya sendiri dari awal, atau adakah kernel yang sudah tersedia yang Anda ingin jadikan landasan. Misalnya, Linux dari awal adalah proyek bagi orang-orang yang ingin membangun distro Linux mereka sendiri.
-
6Tentukan apakah Anda akan menggunakan boot-loader sendiri atau yang sudah dibuat sebelumnya seperti Grand Unified Bootloader (GRUB). Pengkodean bootloader sendiri akan memerlukan pengetahuan yang luas tentang perangkat keras dan BIOS. Akibatnya, langkah ini mungkin akan menghambat jadwal pemrograman kernel yang sebenarnya.
-
7Tentukan bahasa pemrograman apa yang akan digunakan. Membuat sistem operasi dengan bahasa seperti Pascal atau BASIC memang sah-sah saja, tetapi sebaiknya Anda menggunakan bahasa C atau Rakitan (Assembly). Rakitan sangat diperlukan, karena beberapa bagian penting dari sebuah sistem operasi memerlukannya. Di sisi lain, bahasa C ++ mengandung kata kunci yang membutuhkan SO lengkap lainnya agar berjalan.
- Untuk mengompilasi sebuah sistem operasi dari kode C atau C ++, tentu saja Anda akan menggunakan satu compiler atau yang lain. Oleh karena itu, sebaiknya bacalah panduan/manual/dokumentasi pengguna untuk compiler C/C++ pilihan Anda, apakah disertakan dalam perangkat lunak atau tersedia di situs web distributor. Anda perlu mengetahui banyak hal rumit tentang compiler dan, untuk pengembangan C++, Anda harus tahu tentang skema mangling compiler dan ABI-nya. Anda diharapkan memahami berbagai format yang dapat dieksekusi (ELF, PE, COFF, biner dasar, dll.), dan memahami bahwa format eksklusif Windows, PE (.exe), telah dilindungi oleh hak cipta.
-
8Tentukan antarmuka pemrograman aplikasi Anda (API). Salah satu API yang bagus untuk dipilih adalah POSIX karena terdokumentasi dengan baik. Semua sistem Unix memiliki setidaknya sebagian dukungan untuk POSIX. Jadi, menghubungkan program Unix ke SO Anda akan menjadi hal yang mudah.
-
9Tentukan desain Anda. Ada yang namanya kernel monolitik dan kernel mikro. Kernel monolitik menerapkan semua layanan dalam kernel, sementara kernel mikro memiliki kernel kecil yang dipadukan dengan layanan penerapan daemon pengguna. Secara umum, kernel monolitik lebih cepat, tetapi mikro kernel memiliki isolasi kesalahan dan keandalan yang lebih baik.
-
10Pertimbangkan untuk mengembangkan dan bekerja dalam sebuah tim. Dengan begitu, dibutuhkan sedikit waktu untuk memecahkan lebih banyak masalah, yang mungkin akan mempercepat pembuatan SO yang lebih baik.
-
11Jangan hapus kandar keras Anda sepenuhnya. Ingat, menghapus kandar akan menghapus semua data di dalamnya tanpa bisa dikembalikan lagi! Gunakan GRUB atau manajer but lain untuk membuat sistem Anda memiliki but ganda dengan SO lain sampai SO Anda berfungsi penuh.
-
12Mulailah dari yang kecil. Mulailah dari hal-hal kecil seperti menampilkan teks dan lakukan jeda sebelum beralih pada hal-hal seperti manajemen memori dan pekerjaan majemuk. Pastikan juga Anda membuat versi 32 bit dan 64 bit.
-
13Simpan cadangan dari kode sumber terakhir yang bekerja. Langkah ini berguna sebagai perlindungan jika ada sesuatu yang tidak beres dengan versi SO atau pengembangan saat ini. Jika komputer Anda mogok dan tidak bisa but, ada baiknya Anda memiliki salinan kedua untuk dikerjakan sehingga Anda bisa mengatasi masalah.
-
14Pertimbangkan untuk menguji sistem operasi baru Anda dengan mesin virtual. Daripada melakukan but ulang pada komputer Anda setiap kali melakukan perubahan atau setelah mengirim berkas dari komputer pengembangan ke mesin pengujian, Anda dapat menggunakan aplikasi mesin virtual untuk menjalankan SO Anda sementara SO Anda saat ini tetap berjalan. Aplikasi VM yang ada saat ini misalnya: VMWare (yang juga memiliki produk server yang tersedia secara gratis), alternatif sumber terbuka, Bochs, Microsoft Virtual PC (tidak kompatibel dengan Linux), dan Oracle VirtualBox.
-
15Luncurkan versi "release candidate" atau Beta. Langkah ini akan memungkinkan pengguna untuk memberitahukan tentang masalah potensial yang ada pada sistem operasi Anda.
-
16Sistem operasi juga harus ramah pengguna. Pastikan Anda menambahkan fitur yang ramah pengguna, jadikan hal ini bagian integral dari desain Anda.Iklan
Peringatan
- Anda tidak akan mendapatkan sistem operasi penuh dalam waktu dua minggu. Mulailah dengan SO yang dapat melakukan but, lalu beralihlah pada hal-hal yang lebih keren.
- Menulis sistem operasi Anda pada kandar keras dengan ceroboh bisa merusaknya sepenuhnya. Berhati-hatilah.
- Jika Anda melakukan sesuatu yang tidak disarankan, seperti menulis bita acak pada porta I/O acak, Anda akan merusak SO, dan (teorinya) dapat menghanguskan perangkat keras Anda.
- Jangan harap bahwa sistem operasi itu mudah dibuat. Ada banyak sekali interdependensi yang rumit. Misalnya, untuk membuat sistem operasi yang mampu menangani beberapa prosesor, Manajer Memori Anda harus memiliki mekanisme "penguncian" untuk mencegah beberapa prosesor mengakses sumber daya yang sama pada saat bersamaan. "Kunci" yang digunakan untuk ini akan memerlukan adanya penjadwal untuk memastikan bahwa hanya satu prosesor yang mengakses sumber daya kritis pada waktu tertentu dan semua yang lain harus menunggu. Padahal, penjadwal tersebut tergantung pada keberadaan Memory Manager. Ini adalah contoh ketergantungan jalan buntu. Tidak ada cara standar untuk memecahkan masalah seperti ini; setiap pemrogram sistem operasi diharapkan cukup terampil untuk mengetahui caranya sendiri dalam mengatasinya.
Sumber Tambahan
- Pedoman: Linux From Scratch
- Bootloader: GRUB
- Aplikasi mesin virtual: Bochs, VM Ware, XM Virtual Box.
- Pedoman prosesor: pedoman Intel
- Situs pengembangan SO: OSDev, OSDever
Hal yang Anda Butuhkan
- Komputer
- CPU untuk arsitektur yang Anda akan kembangkan
- Kecukupan memori (RAM) untuk mesin virtual
- SO hos (digunakan untuk mengembangkan kode sumber Assembler atau yang lainnya, serta menyusun dan mengemasnya pada tahap-tahap awal; pada akhirnya, SO Anda sendiri bisa menjadi hos)
- Editor kode dengan sintaks warna-warni (digunakan jika Anda tidak memiliki Lingkungan Pengembangan Terpadu)
- Compiler
- Kandar CD/DVD

















