Unduh PDF
Unduh PDF
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
-
Pertama-tama, pelajari tentang pemrograman. Bahasa rakitan sangat penting; sangat disarankan Anda mempelajari bahasa tingkat tinggi pelengkap lainnya seperti bahasa C.
-
Tentukan 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.
-
Tentukan gagasan inti dari sebuah SO. Misalnya, di Windows, gagasan intinya adalah GUI yang mudah digunakan dan banyaknya keamanan.
-
Tentukan 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.
-
Tentukan 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.
-
Tentukan 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.
-
Tentukan 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.
-
Tentukan 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.
-
Tentukan 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.
-
Pertimbangkan 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.
-
Jangan 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.
-
Mulailah 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.
-
Simpan 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.
-
Pertimbangkan 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.
-
Luncurkan versi "release candidate" atau Beta. Langkah ini akan memungkinkan pengguna untuk memberitahukan tentang masalah potensial yang ada pada sistem operasi Anda.
-
Sistem operasi juga harus ramah pengguna. Pastikan Anda menambahkan fitur yang ramah pengguna, jadikan hal ini bagian integral dari desain Anda.Iklan
Tips
- Periksa potensi adanya kebuntuan dan bug lain. Bug , kebuntuan, dan masalah lain akan memengaruhi proyek pembuatan sistem operasi Anda.
- Pastikan Anda menerapkan fitur keamanan sebagai prioritas utama jika ingin sistem berjalan dengan baik.
- Gunakan situs web seperti OSDev dan OSDever untuk membantu Anda mengembangkan sistem operasi sendiri. Harap dicatat dengan baik bahwa untuk sebagian besar tujuan, komunitas OSDev.org akan lebih senang jika Anda menggunakan wiki mereka, dan tidak bergabung dalam forum. Jika Anda memutuskan untuk bergabung dalam forum, ada prasyaratnya: Anda harus benar-benar mengetahui tentang C atau C++, dan bahasa rakitan x86. Anda juga harus memahami konsep pemrograman umum dan kompleks seperti Linked Lists, Queues, dll. Komunitas OSDev, dalam peraturannya, secara eksplisit menyatakan bahwa komunitasnya bukan dibuat untuk mengasuh para pemrogram baru.
- Jangan bergabung dengan forum OSDev.org lalu mengajukan pertanyaan yang sudah jelas. Anda hanya akan diminta untuk membaca panduan. Bacalah Wikipedia dan instruksi dari peralatan apa pun yang Anda ingin gunakan.
- Jika Anda sedang mencoba mengembangkan sistem operasi, Anda sudah pasti dianggap sebagai "dewa" pemrograman.
- Anda juga harus sudah membaca manual prosesor untuk arsitektur prosesor yang telah Anda pilih; apakah x86 (Intel), ARM, MIPS, PPC, dll. Manual untuk arsitektur prosesor mudah ditemukan dengan menggunakan pencarian Google ("Manual Intel", "manual ARM", dll.).
- Setelah semua pekerjaan pengembangan selesai, putuskan apakah Anda ingin merilis kode tersebut sebagai kode terbuka, atau dengan hak cipta.
- Jangan memulai sebuah proyek pembuatan sistem operasi untuk memulai belajar pemrograman. Jika Anda belum mengetahui luar dalam tentang C, C++, Pascal, atau beberapa bahasa lain yang sesuai, termasuk manipulasi pointer , manipulasi bit tingkat rendah, pergeseran bit, bahasa rakitan inline, dll., Anda belum siap untuk pengembangan sistem operasi.
- Membuat partisi yang sama sekali baru untuk 'mengembangkan' SO mungkin merupakan pilihan yang baik.
- Jika Anda ingin cara yang mudah, pertimbangkan distro Linux seperti Fedora Revisor, Custom Nimble X, Puppy Remaster, PCLinuxOS Mk LiveCD, atau SUSE Studio dan SUSE KIWI. Namun, sistem operasi yang Anda buat merupakan milik perusahaan yang memulai layanan tersebut terlebih dahulu (walaupun Anda memiliki hak untuk mendistribusikannya dengan bebas, mengubahnya dan menjalankannya sesuai keinginan di bawah GPL).
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.
Iklan
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
Iklan