Cara Memprogram Sistem Operasi Anda Sendiri (OS)

Penyingkapan: Dukungan Anda membantu menjaga situs tetap berjalan! Kami mendapatkan biaya referensi untuk beberapa layanan yang kami rekomendasikan pada halaman ini.


Sebenarnya tidak ada bidang pengembangan yang lebih menantang daripada pengembangan sistem operasi (OS). Ini adalah “puncak pemrograman yang hebat.”

Beberapa programmer pernah berusaha membangun OS dan banyak dari mereka yang melakukan upaya tidak pernah menghasilkan sistem yang berfungsi.

Namun, jika Anda berhasil sampai ke garis finish dan menghasilkan sistem operasi fungsional, Anda akan bergabung dengan grup elit programmer papan atas..

Apa itu Sistem Operasi?

Komputer paling awal tidak memiliki sistem operasi.

Setiap program yang berjalan pada sistem awal ini harus menyertakan semua kode yang diperlukan untuk menjalankan komputer, berkomunikasi dengan perangkat keras yang terhubung, dan melakukan perhitungan yang sebenarnya dimaksudkan untuk dilakukan oleh program. Situasi ini berarti bahwa program-program sederhana pun rumit.

Sebagai sistem komputer yang terdiversifikasi dan menjadi lebih kompleks dan kuat, semakin tidak praktis untuk menulis program yang berfungsi baik sebagai sistem operasi dan aplikasi yang berguna.

Sebagai tanggapan, masing-masing pemilik komputer mainframe mulai mengembangkan perangkat lunak sistem yang membuatnya lebih mudah untuk menulis dan menjalankan program dan sistem operasi lahir.

Sistem operasi (OS) adalah perangkat lunak yang mengelola perangkat keras komputer dan sumber daya sistem dan menyediakan alat yang diperlukan aplikasi untuk beroperasi. Kelahiran sistem operasi berarti bahwa program tidak lagi harus ditulis untuk mengendalikan seluruh ruang lingkup operasi komputer.

Sebaliknya, aplikasi komputer dapat ditulis untuk dijalankan oleh sistem operasi sementara sistem operasi khawatir tentang sumber daya komputer dan peralatan periferal yang terhubung seperti printer dan pembaca kartu kertas yang dilubangi.

Sejarah Singkat Sistem Operasi

Sistem operasi pertama diciptakan oleh General Motors pada tahun 1956 untuk menjalankan komputer mainframe IBM tunggal. Pemilik mainframe IBM lainnya mengikuti dan menciptakan sistem operasi mereka sendiri.

Seperti yang dapat Anda bayangkan, sistem operasi paling awal sangat bervariasi dari satu komputer ke komputer lain, dan walaupun mereka membuatnya lebih mudah untuk menulis program, mereka tidak mengizinkan program untuk digunakan pada lebih dari satu mainframe tanpa penulisan ulang lengkap.

Pada 1960-an, IBM adalah produsen komputer pertama yang mengambil tugas pengembangan sistem operasi dan mulai mendistribusikan sistem operasi dengan komputer mereka.

Namun, IBM bukan satu-satunya vendor yang menciptakan sistem operasi selama waktu ini. Control Data Corporation, Computer Sciences Corporation, Burroughs Corporation, GE, Digital Equipment Corporation, dan Xerox semua merilis sistem operasi mainframe pada 1960-an juga.

Pada akhir 1960-an, versi pertama dari sistem operasi Unix dikembangkan. Ditulis dalam C, dan tersedia secara bebas selama tahun-tahun awal, Unix mudah diangkut ke sistem baru dan dengan cepat mencapai penerimaan luas.

Banyak sistem operasi modern, termasuk Apple OS X dan semua rasa Linux, menelusuri akarnya kembali ke Unix.

Microsoft Windows dikembangkan sebagai tanggapan atas permintaan dari IBM untuk sistem operasi untuk menjalankan jajaran komputer pribadi.

OS pertama yang dibangun oleh Microsoft tidak disebut Windows, itu disebut MS-DOS dan dibangun pada tahun 1981 dengan membeli sistem operasi 86-DOS dari Seattle Computer Products dan memodifikasinya untuk memenuhi persyaratan IBM.

Nama Windows pertama kali digunakan pada tahun 1985 ketika antarmuka pengguna grafis dibuat dan dipasangkan dengan MS-DOS.

Apple OS X, Microsoft Windows, dan berbagai bentuk Linux (termasuk Android) sekarang menguasai sebagian besar pasar sistem operasi modern.

Bagian-bagian dari Sistem Operasi

Sistem operasi dibangun dari dua bagian utama:

  • Kernel;
  • Program sistem.

Itu inti adalah jantung dari sistem operasi. Ini adalah program pertama yang dimuat ketika komputer dinyalakan, ia mengelola sumber daya komputer, dan menangani permintaan dari program dan aplikasi sistem.

Program sistem jalankan di atas kernel. Mereka tidak terbiasa melakukan pekerjaan yang bermanfaat, sebaliknya, mereka adalah program yang diperlukan untuk menghubungkan kernel ke aplikasi pengguna dan perangkat periferal. Driver perangkat, sistem file, program jaringan, dan utilitas sistem seperti defragmeters disk adalah semua contoh program sistem.

Program aplikasi bukan bagian dari sistem operasi dan merupakan program yang digunakan untuk melakukan pekerjaan yang bermanfaat. Aplikasi pengolah kata, browser, dan pemutar media adalah jenis program aplikasi yang umum. Program aplikasi dikelola dan diaktifkan oleh kernel, dan menggunakan program sistem untuk mengakses perangkat dan perangkat periferal komputer.

Apa yang perlu Anda ketahui

Daftar hal-hal yang perlu Anda ketahui sebelum Anda mencoba melakukan pengembangan sistem operasi sangat panjang. Tiga hal terpenting yang perlu Anda kuasai sebelum terjun ke pengembangan OS adalah:

  • Pengetahuan dasar ilmu komputer;
  • Teori pemrograman komputer dan praktik terbaik;
  • Bahasa pemrograman tingkat rendah dan tingkat tinggi.

Belajar Ilmu Komputer

Pengembangan OS tidak seperti pengembangan web. Itu bukan sesuatu yang bisa Anda lompat dan pelajari saat Anda pergi. Anda perlu mengembangkan fondasi yang kuat dalam ilmu komputer sebelum beralih ke topik lain.

Berikut ini beberapa sumber untuk membantu Anda memulai:

Coursera: Ilmu Komputer 101 adalah kursus yang harus Anda ambil pertama jika Anda baru di bidang pemrograman komputer dan ilmu komputer.

Jika Anda memiliki sedikit pengetahuan dan pengalaman, lewati saja kursus ini demi Udacity dari opsi edX. Namun, jika Anda baru di bidang ini, kursus ini mengambil pendekatan tanpa pengalaman untuk memperkenalkan ilmu komputer dan topik pemrograman.

Udacity: Pengantar Ilmu Komputer mengambil pendekatan pengembangan web untuk mengajar ilmu komputer. Meskipun tidak secara langsung berlaku untuk prospek membangun sistem operasi, ini adalah kursus yang solid yang memberikan informasi yang berguna dan memberikan tinjauan yang baik tentang dasar-dasar pemrograman komputer.

edX: Pengantar Ilmu Komputer adalah kursus ilmu komputer yang paling lengkap dan mendalam dalam daftar ini. Kursus gratis dan mandiri ini dirancang oleh Universitas Harvard dan mencerminkan konten yang disajikan dalam kursus dengan nama yang sama yang ditawarkan di kampus Universitas Harvard.

Dalam kursus yang luas ini Anda akan belajar tentang algoritma, struktur data, manajemen sumber daya, rekayasa perangkat lunak, dan melihat bahasa pemrograman seperti C, PHP, dan JavaScript.

Pelajari Pemrograman Komputer

Dengan pemahaman yang kuat tentang ilmu komputer di bawah ikat pinggang Anda dan beberapa pengalaman terbatas dengan bahasa pemrograman, langkah selanjutnya adalah belajar bagaimana menangani proyek pemrograman skala besar.

Udacity: Proses Pengembangan Perangkat Lunak adalah kursus luar biasa yang harus diambil setiap orang jika mereka belum pernah melakukan proyek pemrograman berskala besar yang menantang sebelumnya. Dalam kursus ini, Anda akan mempelajari alur kerja dan alat serta teknik manajemen seperti Git dan cara menyiapkan lingkungan pengembangan terintegrasi.

Pelajari Bahasa Pemrograman

Untuk mengembangkan sistem operasi, Anda harus menguasai setidaknya dua bahasa pemrograman:

  • Bahasa rakitan tingkat rendah;
  • Bahasa pemrograman tingkat tinggi.

Bahasa assembly digunakan untuk berkomunikasi langsung dengan CPU. Setiap jenis CPU berbicara bahasa mesin dan hanya ada satu bahasa perakitan yang sesuai untuk setiap jenis CPU. Arsitektur komputer yang paling umum adalah x86, pada awalnya dikembangkan oleh Intel dan sekarang digunakan oleh berbagai produsen chip komputer termasuk AMD, VIA, dan banyak lainnya. Dalam panduan ini kami akan mengarahkan Anda ke arah belajar bahasa assembly x86.

Bahasa pemrograman tingkat tinggi bekerja dengan banyak arsitektur komputer. C adalah bahasa pemrograman yang paling umum digunakan dan direkomendasikan untuk menulis sistem operasi. Untuk alasan ini, kami akan merekomendasikan belajar dan menggunakan C untuk pengembangan OS. Namun, bahasa lain seperti C ++ dan Python juga dapat digunakan.

x86 Bahasa Perakitan

Itu x86 Panduan Pemasangan adalah tempat yang bagus untuk mulai belajar bahasa assembly. Dokumen singkat ini memberikan ikhtisar singkat tentang bahasa assembly x86 dan akan menetapkan tahapan untuk sumber daya yang lebih maju yang akan Anda pindahkan selanjutnya.

Pemrograman dari Bawah ke Atas oleh Jonathan Bartlett adalah salah satu buku pendefinisian lanskap bahasa assembly. Buku ini menggunakan bahasa rakitan sebagai dasar untuk belajar ilmu komputer dan pemrograman. Sumber daya ini juga tersedia dari Internet Archive.

Seni Bahasa Majelis oleh Randy Hyde adalah teks ikonik lainnya di dunia pendidikan bahasa majelis. Awalnya ditulis khusus untuk program pemrograman Hyde di Cal Poly dan UC Riverside, teks ini dirilis sebagai ebook HTML pada pertengahan 1990-an dan diakui sebagai karya yang menentukan dalam bidang ini. Teks ini juga dihosting sebagai serangkaian file PDF oleh Yale FLINT Group.

Jika Anda ingin menggunakan buku teks tradisional untuk mempelajari tentang bahasa rakitan x86, dua teks yang paling sering digunakan dan sangat direkomendasikan adalah:

  • Bahasa Assembly Langkah-demi-Langkah: Pemrograman dengan Linux oleh Jeff Duntemann;
  • Pemrograman Bahasa Majelis X86 Modern oleh Daniel Kusswurm.

C

Ada banyak bahasa pemrograman tingkat tinggi yang dapat Anda pelajari dan banyak sumber berbeda yang dapat Anda gunakan untuk mempelajarinya. Rekomendasi kami, dan rekomendasi yang paling umum didengungkan oleh komunitas pengembangan OS, adalah untuk belajar C, dan kami telah menemukan beberapa sumber yang bagus yang akan mengubah Anda menjadi seorang programmer C yang kompeten..

Dapatkan ikhtisar singkat bahasa pemrograman C dengan menyelesaikan ini C Tutorial. Sumber daya ini tidak akan mengubah Anda menjadi seorang ahli, tetapi itu akan memberi Anda pemahaman dasar yang baik tentang bahasa dan mempersiapkan Anda untuk menangani topik dan sumber daya yang lebih menantang..

Pelajari C Jalan yang Keras adalah ebook HTML gratis yang mencakup banyak latihan latihan. Teks ini membimbing Anda sepanjang jalan melalui bahasa pemrograman C, dan jika Anda bekerja, meluangkan waktu, dan menyelesaikan semua latihan, Anda akan berada di jalur yang tepat untuk menjadi programmer C yang kompeten pada saat Anda selesaikan tutorial ini.

Jika sebuah buku teks tradisional adalah sesuatu yang lebih mungkin untuk Anda selesaikan, dua teks ini adalah beberapa yang paling populer untuk menguasai bahasa pemrograman C.

  • Bahasa Pemrograman C oleh Kernighan dan Ritchie;
  • C Programming Absolute Beginner’s Guide oleh Perry dan Miller.

Tutorial Pengembangan OS

Setelah Anda memiliki pemahaman yang kuat tentang konsep dasar ilmu komputer dan pemrograman, dan telah menguasai bahasa assembly dan C, langkah selanjutnya adalah menyelesaikan satu atau dua tutorial pengembangan OS yang berjalan melalui seluruh proses pengembangan OS sederhana dari awal. Kami menemukan tiga sumber daya luar biasa yang melakukan hal itu.

Linux Dari Awal akan memandu Anda melalui proses membangun sistem operasi Linux yang lengkap. Tutorial ini sepenuhnya tidak akan menghasilkan sistem operasi yang lengkap, tetapi akan memberi Anda basis kode yang solid untuk membangun sistem operasi yang lengkap. Atasi tutorial tingkat lanjut seperti Beyond Linux from Scratch, Linux Automated from Scratch, Cross Linux from Scratch, atau Hardened Linux from Scratch untuk membangun OS dasar Anda menjadi perangkat lunak yang berguna.

Buku kecil tentang pengembangan OS oleh Erik Helin dan Adam Renberg dikembangkan sebagai bagian dari kursus ilmu komputer canggih yang diselesaikan penulis sementara siswa sebagai Royal Institute of Technology di Stockholm. Kursus ini berjalan melalui proses lengkap pengembangan sistem operasi x86 dengan mulai dengan menyiapkan lingkungan pemrograman, yang memuncak dalam pemrograman untuk multitasking, dan mengenai topik-topik seperti mengelola memori sistem dan mengembangkan sistem file sepanjang jalan.

Seri Pengembangan Sistem Operasi dari Broken Thorn Entertainment adalah serangkaian 25 tutorial yang memandu Anda melalui proses pembuatan OS dari bawah ke atas. Hati-hati pemula: seri ini mengasumsikan Anda sudah tahu jalan di sekitar IDE dan adalah seorang C yang kompeten dan programmer bahasa assembly.

Ada banyak teks yang bisa Anda gunakan untuk belajar tentang disiplin pengembangan OS. Tiga dari yang paling umum direkomendasikan adalah:

  • Sistem Operasi Modern oleh Tanenbaum dan Bos;
  • Desain Sistem Operasi UNIX oleh Maurice Bach;
  • Konsep Sistem Operasi oleh Silberschatz, Galvin, dan Gagne.

Komunitas Pengembangan OS

Saat Anda memulai perjalanan menjadi pengembang OS, ada beberapa tempat di mana Anda dapat menemukan pengembang OS lain untuk belajar dan bersimpati dengan:

  • OSDev.org adalah wiki dengan banyak informasi tentang pengembangan OS serta forum di mana Anda dapat bertemu dan mendapatkan umpan balik dari programmer lain yang berpikiran sama.
  • Saluran Pengembangan OS di reddit adalah komunitas yang hebat di mana Anda dapat belajar tentang pengembangan OS dan menikmati momen kesembronoan ketika tugas pengembangan OS menjadi sedikit sulit..
  • Ilmu Komputer, Pemrogram, dan StackOverflow dari StackExchange adalah tempat Anda dapat mengajukan pertanyaan teknis kepada pemrogram lain ketika Anda menghadapi masalah yang sepertinya tidak bisa Anda selesaikan sendiri.

Ringkasan

Mempelajari pengembangan OS adalah salah satu tugas pemrograman paling menantang yang dapat Anda lakukan. Namun, keberhasilan dalam upaya Anda untuk membangun OS yang berfungsi akan menandai Anda sebagai programmer yang kompeten dan orang yang sangat memahami bagaimana prosesor, perangkat keras, dan program komputer bekerja bersama untuk menciptakan apa yang dianggap oleh seluruh dunia sebagai komputer berfungsi..

Langkah selanjutnya – Mencari host web? Lihat panduan kami untuk hosting web & host yang kami rekomendasikan.

Lihat juga panduan kami yang lain tentang bahasa pemrograman.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map