Mengapa penduduk bumi membuat perangkat lunak dan perangkat keras kereta

Saya pikir tidak ada yang akan berdebat dengan fakta bahwa kualitas sistem kompleks yang diciptakan oleh penduduk bumi jauh dari ideal. Tentu saja, kita dapat mengatakan bahwa semuanya berfungsi - pesawat terbang, pesawat ruang angkasa membajak ruang terbuka orbit Bumi, dll.

Tetapi pada saat yang sama, semua orang terbiasa dengan kenyataan bahwa perangkat lunak pada perangkat mereka bekerja tanpa terduga, sekali, bahkan menginstal pembaruan terbaru tidak menjamin bahwa tidak ada masalah keamanan, bahwa mereka sering menemukan kesalahan yang ada di sana selama bertahun-tahun dalam kode open source yang bahkan perusahaan besar dan "teknologi" ada gangguan dan kebocoran data bahwa pesawat ruang angkasa crash atau kehilangan beberapa fungsi sama sekali bukan karena intrik alien (Mars bersumpah bahwa mereka tidak menjatuhkan ExoMars).

Saya ingin mempertimbangkan penyebab dan kemungkinan solusi untuk masalah planet ini.

  1. — , , . , , . , - , , , .

  2. / / — , , . , , 160 , .

  3. / — . - «, », « », « ».

Ketika Earthlings mengambil tugas paling sulit yang mereka hadapi, akan logis untuk menggunakan alat terbaik yang tersedia untuk menyelesaikannya.
Dan alat ini, jelas bukan otak manusia , otak homo sapiens hanyalah alat dari seri “sepertinya bekerja” dan tidak perlu heran, namun berevolusi untuk tugas yang sama sekali berbeda, sehingga bahkan profesional paling keren dapat membuat kesalahan bodoh di tumpukan alasan.

Tentu saja, menyatukan banyak otak yang baik dapat meningkatkan hasilnya, tetapi tanpa alat yang baik, semua otak di planet ini tidak akan mencapai apa yang telah dicapai.

Untuk memahami alat sulap macam apa, ada baiknya mencoba menjawab pertanyaan seperti “Mengapa gedung pencakar langit tidak runtuh karena bobotnya sendiri atau tertiup angin?”, “Bagaimana pesawat ruang angkasa kita sampai ke target di ruang angkasa yang luas?”, “Bagaimana kita bisa mengatur pengiriman data dengan andal?”, melalui saluran komunikasi yang tidak dapat diandalkan? "," Dari mana metode enkripsi yang dapat diandalkan berasal? " dan seterusnya dan seterusnya.

Jawaban untuk semua pertanyaan ini adalah satu, alat ini adalah matematika . Matematika adalah keajaiban dunia modern, untuk yang belum tahu, artefak seperti Zcash atau CryptDB , dan, seperti biasa, enkripsi asimetris terlihat seperti sihir, meskipun ini hanyalah aplikasi alat yang kuat ini.

Untuk mengatakan "Ya, program berfungsi seperti yang disyaratkan", Anda harus memiliki bukti matematis dari pernyataan ini, sayangnya saya bukan ahli dalam bidang ini, tetapi sejauh yang saya tahu proses bukti ini cukup rumit, tetapi ini seharusnya tidak menjadi hambatan karena alasan berikut:

  1. Tidak ada cara lain, sistem kami menjadi lebih rumit, lapisan baru bergantung pada yang lama, tapi sayangnya ini bukan fondasi yang sangat andal.

  2. Anda perlu membuktikan program kecil ( Unix Way ).

  3. Itu hanya perlu untuk membuktikan program yang sangat penting untuk keandalan keandalan. Anda tidak dapat membuktikan kebenaran suite kantor, tetapi kernel mikro OS atau perpustakaan enkripsi harus dibuktikan.

  4. , , - , , , , .

  5. (Haskell?). , - , .

  6. , .

Tentu saja, bukti program tidak menyelamatkan kita dari kebutuhan untuk merumuskan persyaratan secara akurat, tetapi saya pikir ini adalah tugas yang dapat dipecahkan, terutama karena dalam beberapa kasus (seperti perpustakaan enkripsi) persyaratan itu sendiri juga diformalkan.

Saya pikir semua orang ingin perangkat lunak yang benar-benar dapat diandalkan untuk bekerja di pembangkit listrik tenaga nuklir, di peralatan medis dan tempat-tempat serupa.

Saya tidak akan mengatakan bahwa perlu melakukan ini untuk waktu yang lama, industri berkembang pesat, banyak hal telah berubah secara signifikan, tetapi hari ini, dari sudut pandang saya, industri sudah cukup matang untuk mulai membereskan segala sesuatunya.

Ada kelas tugas baru seperti komputer kuantum dan prosesor khusus untuk jaringan saraf, semuanya baru saja dimulai. Tetapi pengembangan industri ini tidak meniadakan perlunya pendekatan klasik - semuanya memiliki tugasnya sendiri.

Peradaban bumi sekarang sangat tergantung pada keandalan sistem komputer dan agar tidak tersentak pada malam hari dari kebisingan sayap burung pelatuk yang terbang, kita harus mencari solusi yang meningkatkan keandalan.

Pelatuk? Dan di sini pelatuk
: « , »

Secara terpisah, perlu disebutkan tentang jaringan saraf, jaringan saraf adalah upaya untuk menyalin otak dengan semua plus dan minusnya, solusi pada jaringan saraf berisi masalah yang sama dengan otak manusia, sehingga mereka perlu diterapkan hanya di mana kita tidak tahu bagaimana menyelesaikan masalah menggunakan formal Algoritma bekerja sangat andal.

Saya berpikir bahwa agar peradaban duniawi dapat berkembang dengan mantap, sekarang saatnya bagi dia untuk memikirkan keandalan infrastrukturnya, mengenai IT saya melihatnya dengan cara ini - Anda perlu memilih / membuat bahasa pemrograman matematika tingkat tinggi dan mulai membuat sepenuhnya di atasnya (tanpa file tersembunyi di bawah tenda) program paling penting dengan bukti mereka selanjutnya. Sangat mungkin bahwa arsitektur perangkat keras dari prosesor harus dibuktikan dan dipertajam untuk pelaksanaan program dalam bahasa ini (Mesin Gantung ?).

Siapa yang harus melakukan ini? Saya tidak tahu, tetapi pertanyaan yang sama dapat diajukan pada proposal oleh seluruh dunia untuk menulis kernel OS, tetapi Linux ditulis, yang berarti ada opsi. Misalnya, ada kernel seL4 yang terverifikasi secara formal ( penjelasan dalam wiki mereka ) yang dikembangkan di NICTA , jika proyek seperti itu tidak menjadi dasar bagi infrastruktur digital masa depan, maka umat manusia akan memiliki kesempatan untuk tidak melalui filter peradaban yang hebat (siapa yang yakin bahwa virus tidak akan memulai perang nuklir?).
beberapa lirik
, . , , , , , , , , , , .

— … ! , !

— . , …

— , , … ?..

« »

UPDATE: Selama diskusi, pemikiran penting telah matang dalam komentar - untuk menerapkan perangkat lunak yang diverifikasi di daerah kritis tidak perlu untuk menghentikan pengembangan saat ini, Anda perlu membuat komponen diverifikasi gratis secara paralel, dan sesuai dengan kesiapan mereka untuk melakukan hal-hal baru dengan bantuan mereka, misalnya, seL4 microkernel yang disebutkan di atas. untuk kebutuhan tertanam sudah ada, yang berarti Anda harus menggunakannya di mana saja sesuai. Dan mengerjakan komponen lainnya.

Source: https://habr.com/ru/post/id400149/


All Articles