Cara Memprogram Sistem Operasi OS – Tidak ada yang lebih sulit daripada mengembangkan sistem operasi OS. Ini adalah “puncak dari pemrograman yang hebat”. Banyak pemrogram mencoba membangun sistem operasi, dan banyak yang tidak pernah mencoba membuat sistem kerja.
Cara Memprogram Sistem Operasi OS
pythonsprints – Namun, jika Anda mencapai garis akhir dan menemukan sistem operasi yang berfungsi, Anda akan bergabung dengan kelompok elit programmer senior.
Baca Juga : Mengenal Tentang Bahasa Pemrograman CPython
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 komputasi yang sebenarnya dimaksudkan untuk dilakukan oleh program tersebut. Situasi ini berarti bahwa bahkan program sederhana pun kompleks.
Ketika sistem komputer terdiversifikasi dan menjadi lebih kompleks dan kuat, menjadi semakin tidak praktis untuk menulis program yang berfungsi baik sebagai sistem operasi dan aplikasi yang berguna. Sebagai tanggapan, pemilik komputer mainframe individu 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 dibutuhkan aplikasi untuk beroperasi. Kelahiran sistem operasi berarti bahwa program tidak lagi harus ditulis untuk mengontrol seluruh ruang lingkup operasi komputer.
Sebagai gantinya, aplikasi komputer dapat ditulis untuk dijalankan oleh sistem operasi sementara sistem operasi mengkhawatirkan sumber daya komputer dan peralatan periferal yang terhubung seperti printer dan pembaca kartu kertas berlubang.
Sejarah Singkat Sistem Operasi
Sistem operasi pertama dikembangkan oleh General Motors pada tahun 1956 untuk menjalankan komputer mainframe IBM. Pemilik komputer mainframe IBM lainnya mengikuti, mengembangkan sistem operasi mereka sendiri.
Seperti yang dapat Anda bayangkan, sistem operasi paling awal sangat bervariasi dari satu komputer ke komputer berikutnya, dan meskipun mereka membuatnya lebih mudah untuk menulis program, mereka tidak mengizinkan program untuk digunakan di lebih dari satu mainframe tanpa penulisan ulang yang 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 membuat sistem operasi selama ini. Control Data Corporation, Computer Sciences Corporation, Burroughs Corporation, GE, Digital Equipment Corporation, dan Xerox semuanya 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 dengan mudah dipindahkan 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 sesuai dengan persyaratan IBM untuk sistem operasi untuk menjalankan berbagai komputer pribadi.
- OS pertama yang dibuat 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 :
- inti;
- Program sistem.
Kernel adalah jantung dari sistem operasi . Ini adalah program pertama yang dimuat ketika komputer dinyalakan, mengelola sumber daya komputer, dan menangani permintaan dari program dan aplikasi sistem.
Program sistem berjalan di atas kernel. Mereka tidak digunakan untuk melakukan pekerjaan yang berguna, melainkan program yang diperlukan untuk menghubungkan kernel ke aplikasi pengguna dan perangkat periferal. Driver perangkat, sistem file, program jaringan, dan utilitas sistem seperti defragmeter disk adalah contoh program sistem .
Program aplikasi bukan bagian dari sistem operasi dan merupakan program yang digunakan untuk melakukan pekerjaan yang berguna. 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 periferal komputer dan perangkat keras.
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 dan praktik terbaik pemrograman komputer;
- Bahasa pemrograman tingkat rendah dan tingkat tinggi.
Belajar Ilmu Komputer
Pengembangan OS tidak seperti pengembangan web. Ini bukan sesuatu yang bisa Anda lompati dan pelajari sambil jalan. Anda perlu mengembangkan dasar yang kuat dalam ilmu komputer sebelum beralih ke topik lain.
Berikut adalah beberapa sumber daya untuk Anda mulai:
Kursus: Ilmu Komputer 101 adalah kursus yang harus Anda ambil pertama kali jika Anda baru di bidang pemrograman komputer dan ilmu komputer.
Jika Anda memiliki sedikit pengetahuan dan pengalaman, lewati kursus ini demi opsi Udacity of edX. Namun, jika Anda baru di bidang ini, kursus ini menggunakan 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 dapat diterapkan pada prospek membangun sistem operasi, ini adalah kursus yang solid yang memberikan informasi yang berguna dan memberikan gambaran yang baik tentang dasar-dasar pemrograman komputer.
edX: Pengantar Ilmu Komputer adalah kursus ilmu komputer paling lengkap dan mendalam dalam daftar ini. Kursus mandiri dan gratis 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 algoritme, struktur data, manajemen sumber daya, rekayasa perangkat lunak, dan mempelajari 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 mempelajari cara menangani proyek pemrograman skala besar.
Udacity: Proses Pengembangan Perangkat Lunak adalah kursus luar biasa yang harus diambil semua orang jika mereka belum pernah melakukan proyek pemrograman yang menantang dan berskala besar sebelumnya. Dalam kursus ini Anda akan mempelajari alur kerja dan alat serta teknik manajemen seperti Git dan cara menyiapkan lingkungan pengembangan terintegrasi.
Belajar Bahasa Pemrograman
Untuk mengembangkan sistem operasi, Anda harus menguasai setidaknya dua bahasa pemrograman:
- Bahasa rakitan tingkat rendah;
- Sebuah bahasa pemrograman tingkat tinggi.
Bahasa assembly digunakan untuk berkomunikasi langsung dengan CPU. Setiap jenis CPU berbicara bahasa mesin dan hanya ada satu bahasa rakitan yang sesuai untuk setiap jenis CPU. Arsitektur komputer yang paling umum adalah x86, 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 rakitan x86.
Bahasa pemrograman tingkat tinggi bekerja pada banyak arsitektur komputer. C merupakan bahasa pemrograman yang paling umum digunakan dan direkomendasikan untuk membuat sistem operasi. Untuk alasan ini, kami merekomendasikan untuk mempelajari dan menggunakan C untuk pengembangan OS. Namun, Anda bisa menggunakan bahasa lain seperti C++ dan Python.
Bahasa Majelis x86
Panduan Perakitan x86 adalah tempat yang tepat untuk mulai belajar bahasa rakitan. Dokumen singkat ini memberikan ikhtisar singkat tentang bahasa rakitan x86 dan akan mengatur tahap untuk sumber daya yang lebih canggih yang akan Anda lanjutkan ke berikutnya.
Pemrograman dari Bawah ke Atas oleh Jonathan Bartlett adalah salah satu buku yang menentukan lanskap bahasa assembly. Buku ini menggunakan bahasa assembly sebagai dasar untuk mempelajari ilmu komputer dan pemrograman. Sumber daya ini juga tersedia dari Internet Archive .
The Art of Assembly Language oleh Randy Hyde adalah teks ikonik lainnya dalam dunia pendidikan bahasa assembly. Awalnya ditulis khusus untuk kursus 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 juga di-host 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 umum digunakan dan sangat direkomendasikan adalah:
- Bahasa Perakitan Langkah-demi-Langkah: Pemrograman dengan Linux oleh Jeff Duntemann;
- Pemrograman Bahasa Perakitan X86 Modern oleh Daniel Kusswurm.
C
Ada banyak bahasa pemrograman tingkat tinggi yang dapat Anda pelajari dan banyak sumber daya berbeda yang dapat Anda gunakan untuk mempelajarinya. Rekomendasi kami, dan rekomendasi yang paling sering disuarakan oleh komunitas pengembangan OS, adalah belajar C, dan kami telah menemukan beberapa sumber daya yang sangat baik yang akan mengubah Anda menjadi programmer C yang kompeten.
Dapatkan gambaran singkat tentang bahasa pemrograman C dengan menyelesaikan Tutorial C ini . Sumber daya ini tidak akan mengubah Anda menjadi ahli, tetapi akan memberi Anda pemahaman dasar yang baik tentang bahasa tersebut dan mempersiapkan Anda untuk menangani topik dan sumber daya yang lebih menantang.
Learn C the Hard Way adalah ebook HTML gratis yang mencakup banyak latihan. Teks ini memandu Anda melalui bahasa pemrograman C, dan jika Anda bekerja keras, meluangkan waktu, dan menyelesaikan semua latihan, Anda sudah siap menjadi programmer C yang kompeten pada saat Anda menyelesaikan tutorial ini.
Jika buku teks tradisional adalah sesuatu yang kemungkinan besar akan Anda selesaikan, kedua teks ini adalah beberapa yang paling populer untuk menguasai bahasa pemrograman C.
- Bahasa Pemrograman C oleh Kernighan dan Ritchie;
- Pemrograman C Panduan Pemula Mutlak 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 memandu seluruh proses pengembangan OS sederhana dari awal. Kami menemukan tiga sumber luar biasa yang melakukan hal itu.
Linux From Scratch akan memandu Anda melalui proses membangun sistem operasi Linux yang lengkap. Sepenuhnya tutorial ini tidak akan menghasilkan sistem operasi yang lengkap, tetapi akan memberi Anda basis kode yang solid untuk membangun sistem operasi yang lengkap. Atasi tutorial lanjutan seperti Beyond Linux from Scratch , Automated Linux from Scratch , Cross Linux dari 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 tingkat lanjut yang penulis selesaikan saat menjadi mahasiswa di Royal Institute of Technology di Stockholm. Kursus ini berjalan melalui proses lengkap pengembangan sistem operasi x86 dengan memulai dengan menyiapkan lingkungan pemrograman, yang berpuncak pada pemrograman untuk multitasking, dan membahas topik-topik seperti mengelola memori sistem dan mengembangkan sistem file di sepanjang jalan.
Seri Pengembangan Sistem Operasi dari Broken Thorn Entertainment adalah serangkaian 25 tutorial yang memandu Anda melalui proses pembuatan OS dari awal. Pemula berhati-hatilah: seri ini mengasumsikan Anda sudah tahu jalan di sekitar IDE dan merupakan programmer bahasa C dan assembly yang kompeten.
Ada banyak teks yang dapat Anda gunakan untuk mempelajari disiplin pengembangan OS. Tiga yang paling sering 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 dari 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 hebat tempat 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 saat Anda menghadapi masalah yang tampaknya tidak dapat Anda selesaikan sendiri.
Ringkasan
Mempelajari pengembangan OS adalah salah satu tugas pemrograman paling menantang yang dapat Anda lakukan. Namun, berhasil 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 sama untuk menciptakan apa yang dianggap biasa oleh dunia sebagai komputer yang berfungsi.