私はこれまで、Cでポインタとメモリの割り当てを壊してしまい、実行中の他のプログラムやオペレーティングシステム自体がプログラムの外で破損し、システムがクラッシュする可能性があることを理解しています。これにより、ピースをピックアップしてプログラム開発を続けるために再起動が必要になります。Cでプログラミングして、オペレーティングシステムのセキュリティをより簡単にして、実行を無効にしましたか?
システムのセキュリティの改善により、これが起こらないようにしましたか?
MSDOSとWindows 3.1/95/98/Me、MacOS以前のバージョンでは(一般的にプリエンプティブマルチタスクがすべての標準となった前に)、システムセキュリティは一般的に存在しませんでした。プログラムはいつでもどこでもデータを書き込むことができます。
しかし、より現代的なシステム設計とプロセスセキュリティでは、プログラムは一般的に、システムセキュリティによって偶発的または意図的に他のものを傷つけることからブロックされます。
最新のプロセッサの実行禁止機能は、誤ってランダムなメモリ位置にジャンプしたり、プロセッサのマシンコードとして何かを実行したりするのを防ぐのに役立つかもしれません。
オペレーティングシステムのセキュリティをハックしようとせずに、Cを使用して最新のプログラミングに取り組むことができますか?
システム全体が誤ってクラッシュすることはありますか?これはもはや可能ではないと私は考えている。カーネルまたは他のシステムセキュリティは、アクションを実行し、アクションを停止します。
ログイン環境が壊れていて、ログアウトして再度ログインする必要がありますか?プロセスが通常は自分のログインセキュリティ環境内であっても他のプロセスメモリ空間にアクセスするべきではないので、これも防止されていると私は考えています。
一般的に、Cでのプログラミングは、今やどこからでも使用されているこれらのシステム保護のために過去よりもはるかに簡単になっているようです。
普通のユーザープログラムはシステムによって保護されていますが、 g。デバイスドライバ、あなたは直前のものに素早く戻ります - ちょうど割り込みサービスルーチンでヌルポインタを逆参照すると想像してください... – Aconcagua