Sebelum Sistem Operasi, Konsep apa yang digunakan untuk membuatnya bekerja? [Tutup]

50

Sistem Operasi telah sangat terkait dengan arsitektur komputer. Sebuah OS menangani semua input dan output dalam sistem komputer. Ia mengelola pengguna, proses, manajemen memori, pencetakan, telekomunikasi, jaringan dll. Ia mengirimkan data ke disk, printer, layar, dan periferal lain yang terhubung ke komputer.

Sebelum pengenalan Sistem Operasi,

Apa yang digunakan dalam sistem komputer untuk membuatnya bekerja?

Konsep mana yang digunakan untuk sistem operasi dalam evolusi komputer kita?

Itachi Uchiha
sumber
5
"Sebelum ini, apa yang digunakan dalam sistem komputer ..." - Itu sama seperti jika Anda tidak menjalankan OS hari ini. Anda menjalankan pekerjaan batch dengan menyerahkan seluruh sistem komputer ke satu pengguna, satu per satu.
serbuk kayu
4
Pikirkan kode yang berjalan pada mikrokontroler. Itu tidak berjalan di sistem operasi, tapi itu C-code yang mengkompilasi ke kode mesin, dan dijalankan pada perangkat fisik nyata (setelah kode mesin ini "flash" ke firmware). Sistem operasi hanya memfasilitasi beberapa program berinteraksi secara bersamaan dengan semua bagian komputer dengan menggunakan konsep berbagi sumber daya dan penjadwalan proses . Anda juga dapat menggunakan sistem operasi pada mikrokontroler kecil itu - jika Anda membutuhkannya.
Terobosan
Banyak jawaban yang berfokus pada I / O, bagaimana program dimuat dan perangkat periferal. Tapi itu hanya mengaburkan tujuan OS: manajemen sumber daya dan berbagi, dan mungkin kemampuan multi-pengguna. Tujuan OS tidak berubah jika Anda memuat kode dari papan kawat atau pita atau drum berlubang atau menggunakan SDcard modern.
serbuk gergaji
Dek kartu. Pita kertas berlubang. Operator memberi makan yang sama melalui komputer.
Daniel R Hicks

Jawaban:

42

Komputer awal menjalankan satu program pada satu waktu.

Program dimuat langsung dari (misalnya) pita kertas dengan lubang yang dilubangi.

Anda akan memprogram komputer paling awal dengan mengatur satu set sakelar on-off yang besar.

Patung raksasa:

Atlas:

Manchester:


Saya menggunakan kata "Komputer" yang berarti jenis perangkat yang ada saat ini dalam miliaran. Dari jumlah komputer yang sangat banyak ini, semua kecuali jumlah yang sangat kecil adalah komputer yang dapat diprogram dengan program elektronik digital. Saya yakin pertanyaan awal bukan tentang bagaimana orang dengan jabatan "Komputer" menghabiskan hari kerja mereka. Di antara kedua jenis komputer tersebut, ada perkembangan perangkat menarik yang tidak tercakup dalam jawaban ini.

RedGrittyBrick
sumber
1
Saya memiliki perangkat keras yang saya gunakan yang menggunakan sakelar di gambar kedua. Ini juga menjalankan program dengan cara yang persis sama.
Suara positif
bukankah yang paling awal, katakanlah ENIAC, terprogram? Tidak beralih atau memiliki program tersimpan? Atau ini bukan lagi komputer karena itu ... penasaran
Rich Homolka
1
@RichHomolka: Seperti yang Anda maksudkan, itu benar-benar tergantung pada apa yang Anda anggap sebagai komputer. Kebanyakan orang saat ini mungkin berarti komputer yang dapat diprogram elektronik digital. Tentu saja ada, misalnya, komputer analog mekanik dan komputer paling awal adalah manusia (itu adalah jabatan). Jika saya punya waktu saya mungkin memperluas jawaban untuk mengatasi ini. Saya percaya ENIAC diprogram dengan memanipulasi sakelar dan kabel.
RedGrittyBrick
Sistem operasi datang cukup awal (1956 - lihat en.wikipedia.org/wiki/GM-NAA_I/O ). Komputer yang diproduksi massal pertama adalah sekitar tahun 1954
Bruce Martin
“Saya yakin pertanyaan awal bukan tentang bagaimana orang dengan jabatan" Komputer "menghabiskan hari kerja mereka" - nenek saya adalah komputer.
Paul D. Waite
13

Sumber: Sejarah Sistem Operasi

Sistem operasi telah berevolusi melalui sejumlah fase atau generasi berbeda yang sesuai secara kasar dengan dekade.

The 1940's - Generasi Pertama

Komputer digital elektronik paling awal tidak memiliki sistem operasi. Mesin pada waktu itu sangat primitif sehingga program sering dimasukkan sedikit demi sedikit pada deretan sakelar mekanis (papan plug) . Bahasa pemrograman tidak diketahui (bahkan bahasa assembly). Sistem operasi tidak pernah terdengar.

1950-an - Generasi Kedua

Pada awal 1950-an, rutinitas agak membaik dengan diperkenalkannya kartu punch. The General Motors Research Laboratories menerapkan sistem operasi pertama pada awal 1950 untuk IBM mereka 701 . Sistem 50-an umumnya menjalankan satu pekerjaan sekaligus. Ini disebut sistem pemrosesan batch tunggal-aliran karena program dan data diajukan dalam kelompok atau batch.

Sumber: http://en.wikipedia.org/wiki/History_of_operating_systems

Komputer paling awal adalah mainframe yang tidak memiliki sistem operasi apa pun.

Setiap pengguna memiliki satu-satunya penggunaan mesin untuk jangka waktu yang dijadwalkan dan akan tiba di komputer dengan program dan data, seringkali dengan kartu kertas berlubang dan pita magnetik atau kertas. Program akan dimuat ke dalam mesin, dan mesin akan diatur untuk bekerja sampai program selesai atau crash.

Program umumnya dapat di-debug melalui panel kontrol menggunakan toggle switches dan lampu panel. Dikatakan bahwa Alan Turing adalah ahli dalam hal ini pada mesin Manchester Mark 1 awal, dan dia sudah mendapatkan konsepsi primitif tentang sistem operasi dari prinsip-prinsip mesin Universal Turing.

DavidPostill
sumber
10

Kembali ke awal sistem komputer Anda tidak memiliki sistem komputer tunggal, sebaliknya Anda memiliki mainframe.

masukkan deskripsi gambar di sini

Mainframe ini akan berjalan pada kartu berlubang yang berisi program Anda (dan seringkali data Anda). Orang-orang akan mendapatkan alokasi waktu pada sistem ini, membawa serta kartunya dan memasukkannya ke dalam mesin untuk diproses. Mesin akan menjalankan program sampai selesai maka pengguna berikutnya akan datang bersama dengan kaset dan kartu mereka.

Pada dasarnya begitulah cara kerjanya.

Matthew Williams
sumber
4
Jadi "sistem operasi" di sini adalah ... siapa yang melakukan penjadwalan untuk pengguna?
Kyle Strand
2
Maksud saya adalah bahwa jawaban Anda tidak benar-benar menjelaskan apa yang Anda maksud dengan "Sistem Operasi yang benar-benar sudah ada sejak lama dalam satu bentuk atau yang lain." Anda memberikan deskripsi dasar tentang mainframe, tetapi tidak jelas sama sekali bahwa mainframe ini memiliki sesuatu yang mirip dengan apa yang kita sebut "sistem operasi."
Kyle Strand
3
Saya tahu apa yang ingin Anda katakan, tetapi saya tidak terlalu nyaman dengan deskripsi ini, karena cukup tua untuk bekerja pada mainframe yang memenuhi deskripsi tepat Anda dari mainframe di atas, tetapi yang memang mengandung sistem operasi. Mainframe dalam gambar Anda mungkin adalah mainframe IBM tahun 1970-an (as / 360 atau s / 370?) Yang menjalankan OS / 360 atau versi awal MVS.
Rob Moir
2
Tidak ada yang namanya "kartu magnetik berlubang" . Foto Anda dari "mainframe" sesuai dengan visi Hollywood dan orang awam tentang komputer: deretan transport tape mag.
serbuk gergaji
1
Cukup banyak pernyataan salah di sini. Seperti yang dikatakan @sawdust, kartu berlubang tidak bersifat magnetis. Selain itu, kartu berlubang sering berisi program dan data Anda; atau program Anda mungkin di atas pita kertas. Kumparan pita mag jauh kemudian. Sebelumnya program dimuat melalui switch panel seperti yang ditunjukkan dalam jawaban RedGrittyBrick, atau dengan memasang ulang komputer melalui plugboard. Saya menemukan sejarah Father, Son & Co. yang menarik dan informatif.
Stephen P
6

1890-1950 - Operasi yang melekat pada sistem Komputer yang paling awal memiliki yang setara dengan apa yang sekarang dilakukan oleh OS. Anda (operator) juga merupakan bagian dari sistem operasi. Anda membalik sakelar register (atau menggunakan kartu punch) dan secara fisik bertukar kabel bus (pikirkan stasiun operator telepon mode lama) dan memori dihubungkan (melalui kabel fisik) langsung dengan bola lampu (monitor hari itu) dan printer ( penyimpanan jangka panjang) sedemikian rupa sehingga output program akan menyala dan mencetak langsung ke perangkat saat ditempatkan ke dalam buffer memori output. Tidak ada pengemudi yang diperlukan untuk hal-hal ini karena (karena cara kabel fisik itu berlari) mereka 'hanya bekerja' (juga tidak ada yang disebut monitor pada hari ini. Bahkan itu masih akan menjadi beberapa dekade ke era ini sampai tampilan numerik digital akan ditemukan sehingga Anda benar-benar dapat melihat angka yang sudah Anda masukkan ke dalam register dan output sebagai angka desimal; printer memerintah seluruh era ini sampai monitor. Mereka terhubung persis seperti yang mereka butuhkan agar dapat bekerja dengan benar. Tak satu pun dari bagian ini benar-benar banyak berubah dengan beralih dari mekanik (1890-an) ke analog listrik (1910-an) ke digital (1930-an). Arsitektur 'Plug N play' ini digantikan dengan sistem interupsi selama waktu ini dan tidak akan muncul lagi sampai akhir tahun sembilan puluhan; tentu saja pada saat itu akan ada jauh lebih sedikit memasukkan Dengan interupsi, perangkat diizinkan untuk mengambil waktu CPU yang memungkinkan arsitektur yang bukan t terikat langsung dengan perangkat keras tetapi butuh beberapa generasi untuk ini benar-benar menjadi proses efisien yang kita lihat di lengkungan x86 (dan yang lebih baru); sistem awal sering mengalami kondisi balapan yang mengerikan, masalah kompatibilitas perangkat keras \ keterlambatan, dan perilaku aneh lainnya di mana interupsi terkait. Karena setiap mesin menggunakan arsitektur (percobaan) yang sangat berbeda pada periode ini; hampir semua perangkat dibuat khusus untuk mesin yang mereka kerjakan.

1950-1973 - Operasi dalam suatu sistem Era ini melihat munculnya sebagian besar fitur yang kita pikirkan ketika kita berbicara tentang sistem operasi yang benar. Debugging, bahasa pemrograman, multi-pengguna, multi-tasking, terminal, drive tipe disk, jaringan, standardisasi komponen, dll semuanya diperkenalkan di era ini. Kali ini melihat lompatan besar menuju standardisasi dari banyak hal ini yang berarti bahwa kami memiliki lebih banyak perangkat terstandardisasi, tetapi masing-masing OS dibuat dengan tangan untuk setiap mesin yang berarti bahwa fungsi OS sangat dibatasi oleh apa pun yang dirancang oleh insinyur yang merancang sistem tertentu yang mereka butuhkan. . Selama masa ini, terdapat area abu-abu yang substansial dalam suatu sistem operasi karena arsitektur yang berbeda menangani hal yang jauh berbeda dan mesin yang lebih umum akan membutuhkan lebih banyak OS daripada mesin yang mencakup perangkat keras untuk menangani pekerjaan yang sama. Faktanya adalah perangkat keras akan selalu lebih cepat daripada perangkat lunak dan secara praktis apa pun yang dilakukan dalam perangkat lunak secara teoritis dapat dilakukan dalam perangkat keras (itu adalah biaya \ fleksibilitas \ ukuran \ waktu \ dll yang membatasi kita untuk membuat versi perangkat keras yang hampir murni dari segalanya untuk ini hari). Suatu OS dibuat untuk komputer atau jenis komputer tertentu; itu tidak akan bekerja di tempat lain. Setiap desain komputer baru membutuhkan semua perangkat lunak OS tingkat rendah untuk ditulis ulang dari awal untuk bekerja dengan model mesin tertentu. Menjelang akhir waktu ini muncul sebuah OS baru yang akan segera mengubah paradigma ini, UNIX ditulis di Bell Labs oleh Ken Thompson dan Dennis Ritchie.

1973 - Operasi antar sistem Satu program mengubah semua ini tetapi itu bukan UNIX. Itu adalah kompiler C (yang terkenal dibuat di garasi oleh Ken Thompson dan Dennis Ritchie setelah Bell Labs memotongnya). Sampai saat ini, setiap kali Anda menulis kode, itu adalah kode mesin (kode yang dimengerti mesin tetapi tidak portabel) atau ditulis dalam bahasa yang mengkompilasi kode Anda ke kode byte (kode yang ditafsirkan oleh program lain seperti kode berjalan). Perbedaan besar untuk OS yang dibawa oleh C adalah kemampuan untuk melakukan apa yang dikenal sebagai kompilasi silang ke dalam kode mesin. Ini berarti bahwa kode dapat ditulis satu kali dan dikompilasi untuk dijalankan di banyak jenis mesin yang berbeda secara asli selama kompiler telah ditulis untuk mesin itu. Sistem operasi harus ditulis dalam kode mesin karena kode mesin secara harfiah satu-satunya kode yang diketahui mesin.

Saya akan mengatakan bahwa itu tidak sampai Ken dan Dennis pertama kali mengkompilasi kernel UNIX menggunakan kompiler C yang OS sejati dalam arti modern lahir. Sebelum itu, sebuah OS adalah objek fisik atau hanya sepotong ruang memori yang sudah diinisialisasi yang dirancang khusus untuk mesin tertentu. Menambahkan perangkat baru ke sistem secara harfiah mengharuskan kode 'kernel' ditulis ulang. Sekarang, OS UNIX yang telah mereka rancang untuk mesin tertentu dapat dikompilasi ulang dan dijalankan pada mesin lain tanpa menulis ulang SEMUA (selama mesin itu mampu mengkompilasi kompiler C dari lingkungan bootstrap, sisa OS dapat ditulis dalam kode C tingkat yang relatif tinggi).

Krowe
sumber
1
Seseorang menyebutkan bahwa OS \ 360 datang sebelum UNIX. Ini juga benar tetapi seperti semua OS lainnya pada hari itu, kode itu adalah kode tangan untuk setiap model mesin yang dijalankannya.
krowe
1
Seseorang menyebutkan bahwa FORTRAN juga dapat melakukan kompilasi silang. yang benar, begitu pula ALGOL (pendahulu ke C), tetapi C adalah yang pertama untuk bootstrap dalam rangka membangun mesin OS independen.
krowe
1
" Sampai Ken dan Dennis pertama kali mengkompilasi kernel UNIX ... bahwa OS sejati dalam arti modern lahir .." OMG. Kata-kata yang kurang benar jarang ditulis di situs ini. Tidak ada arti di mana pernyataan ini jauh akurat.
RBarryYoung
1
juga mengabaikan MULTICS (dan BCPL)
Francis Davey
Sebagian besar hal yang tercantum di atas tentang prioritas UNIX dan C tidak benar, terutama mengapa UNIX dan C begitu penting dalam sejarah OS. Ini hampir seluruhnya disebabkan oleh Keputusan Persetujuan 1974 tentang AT&T, yang berarti bahwa (dan banyak teknologi AT&T lainnya) bebas , termasuk kode sumber . Karena itu, ini nyata "pertama" adalah sebagai OS modern berfungsi penuh pertama gratis dan kompiler tingkat rendah, termasuk semua kode sumber. Posisi soliter yang akan ditempuhnya selama 10-20 tahun sebelum kompetitor jujur ​​akan mengakui keuntungan yang memberikannya.
RBarryYoung
3

Pada awalnya, program-program tersebut ditanamkan di dalam komputer, yang akan mulai menjalankan program segera dari lokasi tertentu saat bootup.

Kemudian berbagai bentuk penyimpanan offline ditemukan: kartu berlubang, kaset, drum, bahkan disk. Jauh lebih fleksibel. Namun tidak dapat diakses langsung dari CPU. Program perlu dimuat ke dalam memori sebelum dapat dijalankan. Jadi, Anda menulis sebuah program untuk memuat program Anda. Ini dikenal sebagai loader , atau bootstrap (dari ungkapan "untuk menarik diri Anda dengan tali booting Anda").

Karena sistem menjadi lebih rumit, Anda mungkin memiliki loader sederhana memuat loader yang lebih kompleks. Ini dimulai dengan mikrokomputer: loader pita normal lambat, jadi muat dekompresor dan muatkan sisa kaset dengan cepat. Atau disk speedloader yang berfungsi ganda sebagai sistem perlindungan salinan dengan melakukan hal-hal yang tidak standar dengan disk.

Atau proses boot PC pra-UEFI: prosesor mulai dijalankan di BIOS. Ini memuat sektor pertama dari disk dan melompat ke sana. Itu mencari partisi aktif dan memuat bootloader dari sana, yang memuat sistem operasi. Awalnya itu adalah COMMAND.COM untuk MSDOS; sekarang biasanya NTLDR.EXE untuk Windows.

pjc50
sumber
3

Perlu dicatat bahwa pada perangkat keras awal (sebelum 1960), I / O jauh lebih simpel. Anda dapat membaca kartu, atau meninju kartu atau mencetak garis pada printer, masing-masing dengan instruksi tunggal: ukuran buffer diperbaiki, dan seringkali alamat buffer diperbaiki juga.

Bahkan di awal tahun 60an, dengan prosesor yang lebih canggih (mis., 7090), Anda masih bisa membaca atau meninju kartu dengan rutin kecil (sekitar 20 instruksi), yang mudah disalin ke dalam setiap program.

Karena komputer sepenuhnya didedikasikan untuk satu pekerjaan, tidak masalah jika prosesor menganggur sambil menunggu pembaca kartu siap membaca kartu berikutnya, atau agar printer baris memberi makan baris berikutnya.

Yah, itu penting, karena waktu komputasi sebenarnya mahal. Inilah sebabnya mengapa orang menemukan multi-pemrosesan, berbagi waktu, menambahkan I / O asinkron, dan menginterupsi dan driver perangkat dan sistem operasi. Antarmuka perangkat perangkat keras menjadi lebih kompleks, bagi programmer, memberikan akses ke register I / O tingkat rendah, yang membutuhkan lebih banyak kompleksitas dari driver perangkat. Biaya kompleksitas ini (memori, waktu pemrograman) diamortisasi selama beberapa program menggunakan perangkat "secara bersamaan", multiplexed oleh sistem operasi.

Masih di tahun 80-an saya menggunakan komputer berbasis prosesor mikro, meniru salah satu sistem yang lebih tua. Instruksi mesin memiliki format yang seragam lebih dari 80 bit (10 oktet), dan instruksi untuk membaca sektor pertama dari hard disk pertama dan menyimpannya ke dalam memori di alamat 0 sangat mudah: 0000000000. Jadi prosedur boot terdiri setiap pagi untuk mengetik instruksi ini pada terminal, yang menyimpannya di alamat 0 dan mengeksekusinya, yang kemudian memuat sektor boot dan melanjutkan eksekusi pada instruksi berikutnya (pada alamat 10). Sistem file terdiri dari file pemetaan nama statis "nama" untuk rentang sektor, yang dialokasikan secara manual! I / O dilakukan secara assembler ke file-file tersebut dengan langsung membaca atau menulis sektor-sektor, diimbangi dengan posisi file pada hard disk yang dipulihkan oleh "

Pascal Bourguignon
sumber
2

Generasi pertama dari komputer yang dirancang untuk penggunaan pribadi yang lebih luas disebut "Monitor" dalam ROM (memori hanya baca).

Segera setelah booting, monitor menyediakan antarmuka baris perintah yang sangat terbatas, sebagian besar untuk memuat program dari penyimpanan data seperti tape recorder dan untuk memulai eksekusi (beberapa perintah lain tersedia untuk entri kode manual, sementara jarang diperlukan). Hanya satu program yang dapat berjalan pada waktu.

Berbeda dari sistem operasi, Monitor tidak memiliki dukungan sistem file apa pun. Operator manusia bertanggung jawab untuk menemukan pita yang tepat, meletakkannya di perekam dan memposisikan pada awal program yang diperlukan untuk memuat.

Monitor fungsi gabungan baik BIOS dan sistem operasi dan sudah sangat jelas perangkat lunak.

Setelah dinyalakan, sinyal "reset" pendek itu hanya memusatkan penghitung program sama dengan penghitung lain, pada saat yang sama mengganti mapper memori (jika ada) untuk memetakan alamat 0000 ke ROM Monitor. Itu umum untuk memiliki beberapa rangkaian perangkat keras untuk memetakan kembali Monitor ke ruang alamat tinggi nanti. Selain dari startup kode, tombol "Reset" juga digunakan untuk menghentikan program yang sedang berjalan sehingga yang lain dapat dimuat.

Tombol "reset" yang belum sempurna dapat ditemukan pada beberapa PC desktop bahkan di hari-hari ini.

h22
sumber
Itu berlaku untuk "komputer pribadi" generasi pertama (atau kedua) untuk digunakan di rumah. Sebelum mereka ada, siswa di sekolah menengah memiliki akses jarak jauh ke komputer yang berbagi waktu yang bekerja secara berbeda tetapi masih akan "dirancang untuk penggunaan yang lebih luas". Saya tidak yakin komputer rumah generasi pertama, Altairs dan Heathkits, semuanya memiliki monitor baris perintah.
RedGrittyBrick
0

Pendahulu yang paling langsung ke sistem operasi adalah kombinasi dari perpustakaan standar untuk berinteraksi dengan perangkat, dan sistem bootstrap loader untuk memasukkan program ke dalam memori dan mulai berjalan.

keshlam
sumber