How does an OS detect an access to random memory address of a compiled program? I've read a couple things about memory management/virtual memory and I need a little more details on one important point.  If I compile a program and it does an access to a hard-coded address without any allocation calls, when I run it the process gets an error signal, terminated by signal SIGSEGV (Address boundary error).  Example program:  #include &lt;stdio.h&gt;  void main() {     int * x = 0x1312;     printf("%d\n", *x); }   Compiled with mere:  $ gcc accessing-random-address.c -o random-address-access   Here I don't get what exactly happens when a program is turned into a process. The compiled program is all-machine-code, isn't it? The address access should look like mv (0x1312) regN. If this code runs -- how could the OS detect that the code accesses a memory outside of its' memory range?  So, my question is -- what mechanism is used in Linux/Unixes to catch such rogue memory accesses and send the signal to the process? At what moment is it done?  In fact, the same question applies to the way how a program is converted to a process. If the program has been compiled for some architecture -- it should use the physical addresses and registers of the processor. But the process uses the virtual memory, with page-tables etc. So, is there some intermediate executable Linux-specific format, which gcc compiles to? And this format is somehow converted to real machine code when the program is loaded into memory as a process? And then in the real machine code the memory access is not just mv A B but some procedure with kernel's page tables, page numbers and offsets?  PS  Probably this question would be clarified with more reading. But I would like to have this knowledge upfront -- so that "the main picture" is complete before getting other details.
How does the kernel prevent a malicious program from reading all of physical RAM? If I write a program that tries to read memory at every possible address, and I run it on a "full" Unix, it will not be able to access all of the physical RAM.  But how does the operating system prevent it from doing so?  I am more familiar with small CPU architectures where any piece of assembly code can access everything. I don't understand how a program (the kernel) can detect such malicious operations.
Can a curve object modifier created geometry be used as boolean factor This question is related to .  Let me use an exemple to illustrate what I mean.  We've created a text object (made of curves). It can't be used in a boolean modifier as it won't appear in the list of usable objects in the modifier because it's a curve object.  But if we add a remesh modifier on the text, geometry is created from the shape.  The object could be used as boolean if we convert it to mesh. The remesh can't be applied on curve object.  My question is : Can we dynamicaly use the remesh modifier created geometry as real geometry or make the boolean modifier consider the text modified object as a real mesh?  The idea behind this is to be able to change the text (or any curve 3D shape) without having to make it a real mesh.  (don't hesitate to edit my poor english to make it understandable :) ) Moving an already-running process to Screen There is no such thing as magnetism? Here's an interesting "proof" that there is no such thing as magnetism. I know the answer but I love this so much I had to ask it here. It's a great way to confuse people!  As we all know, $$\nabla \cdot\vec{B} =0$$ Using the divergence theorem, we find $$ \iint_S \vec{B} \cdot \hat{n} \, dS = \iiint_V \nabla \cdot \vec{B} \, dV = 0$$ Since $\vec{B}$ has zero divergence, there exist a vector function $\vec{A}$ such that $$\vec{B} = \nabla \times \vec{A}$$ Combining the last two equations, we get $$\iint_S \hat{n} \cdot \nabla \times \vec{A} \, dS = 0$$ Applying Stokes' theorem, we find $$\oint_C \vec{A} \cdot \hat{t} \, ds = \iint_S \hat{n} \cdot \nabla \times \vec{A} \, dS = 0$$ Therefore, $\vec{A}$ is path independent and we can write $\vec{A} = \nabla \psi$ for some scalar function $\psi$. Since the curl of the gradient of a function is zero, we arrive at: $$\vec{B} = \nabla \times \nabla \psi = 0,$$ which means that all magnetic fields are zero, but that can't be!  Can you see where we went wrong? Why is my document pdf generated by pdflatex looks different from the one generated by latex+dvips+ps2pdf ? From the code below, i have tow different papers switch to the tow cited commands above :  \documentclass[10pt,a4paper]{article} \usepackage[utf8]{inputenc} \usepackage[francais]{babel} \usepackage[T1]{fontenc} \usepackage{amsmath} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{graphicx} \usepackage{lipsum} \author{M ROUAN SERIK} \title{Article with \LaTeXe} \fontfamily{cmr} \begin{document} \maketitle \section{Titled section} \lipsum \end{document}   Here's my pdffonts for the tow pdfs : Pdflatex:    name                   type     encoding  emb sub uni object ID   ------------------------------- ---------------- --- --- --- ---------   AMTRHA+SFRM1728        Type 1    Custom   yes yes no       4  0   DPTCLU+SFRM1200        Type 1    Custom   yes yes no       5  0   JVZRKA+CMMI12          Type 1    Builtin  yes yes no       6  0   UEWNID+SFBX1440        Type 1    Custom   yes yes no       7  0   FOVERL+SFRM1000        Type 1    Custom   yes yes no       8  0     latex+dvips+ps2pdf      name                                 type              encoding         emb sub uni object ID   ------------------------------------ ----------------- ---------------- --- --- --- ---------   WVMUEH+SFRM1000                      Type 1C           WinAnsi          yes yes no        16  0   ZHRBNN+SFBX1440                      Type 1C           WinAnsi          yes yes no      14  0   IMJWCD+CMMI12                        Type 1C           Custom           yes yes no      12  0   MDMSVR+SFRM1200                      Type 1C           WinAnsi          yes yes no      10  0   TWHNMT+SFRM1728                      Type 1C           WinAnsi          yes yes no       8  0 they were question banned; it turned out it (in part) it was because of deleted questions.   was deleted by the Community user.  I'm aware it will delete old posts that have a negative score, but for a minute or two, I was really puzzled as to why it was unilaterally deleted without some notation left.  Can we have the Community user leave a notation in a post's history as to why the post was deleted?    Something like the following would suffice:     Post deleted automatically due to having negative votes and no activity for three months Let's re-evaluate the Question Timer I know this seems like a good idea, but this far into the game you should be able to tell from network behavior that I'm not a spammer…  I had a compound question. I broke it up because breaking it up was possible—it probably isn't even necessary in that it wouldn't otherwise get closed. Now I doubt either of my questions will be easily answered, but it stinks when you want to run (irl) to have to wait on a question timer which means posting one at a later time. Can't we fight spammers more effectively in a different way?  You know it's my intent to ask the question (or you'd give me a captcha). You also know that historically my questions have been   Can't we find a way to make this not stupid? Supersymmetry in Quantum Field Theory How do I check the series $\sum_{n=2}^{\infty} \frac{(-1)^n }{n+(-1)^n}$ for absolute convergence/conditional convergence ?  How can I solve this problem? What is time dilation really? Shuffling questions in exam Code   find / -name netcdf   Output  find: `/root/.dbus': Permission denied find: `/root/.gconf': Permission denied find: `/root/.gconfd': Permission denied find: `/root/.gnome': Permission denied find: `/root/.gnome2': Permission denied find: `/root/.gnome2_private': Permission denied If one were to take a similar path as  in shooting candid street photography today, should they be concerned about laws or other realistic norms of today? I am wondering specifically in the US speaking broadly of all states. I am not looking for legal advice, but anything that one photographer to another would caution against as potentially being grey or obviously illegal.  Similar previous question: Comparing two strings in Bash I have the following if block in my bash script:  if [ ${PACKAGENAME} -eq kakadu-v6_4-00902C ]; then   echo "successfully entered if block!!" fi   The script execution is not entering my if block even though $PACKAGENAME is equal to kakadu-v6_4-00902C. What am I doing wrong? I was trying to prove this inequality using induction, but couldn't do.  Question: Suppose $a$ and $b$ are real numbers with $0 &lt; b &lt; a$. Prove that if $n$ is a positive integer, then:  $$a^n-b^n \leq na^{n-1}(a-b)$$ Share a Folder between two Local Users I and my brother have User Accounts on this machine. I want to share the Documents directory with him.  Is there a STRAIGHTFORWARD way to do it?  I am not a power user so I am looking for a way to do this using nautilus, rather than a script or a way that requires creating symlinks.  I can download an application if i have to.  Last time I wanted to do this I just copied the contents to /home for both of us to use.  Something I can do in System Settings would be appreciated What's the difference between:        Have someone do something     Make someone do something   Get someone do something.      To have someone do something means to cause someone to do something. To make someone do something means to force someone to do something. To get someone do something means to persuade someone or trick someone to do something.  This is what the dictionary says but I saw they're sometimes interchangeably used, so dictionary definitions are not enough. Is this series known to converge, and if so, what does it converge to (if known)?  Where $p_n$ is prime number $n$, and $p_1 = 2$,  $$\sum\limits_{n=1}^\infty \frac{1}{p_n}$$ How do I navigate to a samba location I've mounted in Nautilus on the command line? Please note: I am two weeks old in Linux. I have found a lot of answers to this question on the internet, tried many, but all failed one way or another. Therefore I dare to ask once again in the hope that someone here could explain it simply :)  Pre-conditions:  In my institute, we have a Samba server. In Windows, it is accessed by going to \\xyz.220.131.233\ and entering the login abc and the password def.   In Ubuntu, I was able to do exactly the same using Nautilus, pressing Ctrl+L and entering smb://xyz.220.131.233/. It then asks for the login and the password and connects. I can even drag a folder from here to the 'Places' and have a shortcut to the remote location.   So far so good. I've just installed Matlab and want to open this remote location. Trying to cd to smb://xyz.220.131.233/ returns      Cannot CD to smb://xyz.220.131.233 (Name is nonexistent or not a directory).   A Mac user in my group told me I first mount the location, but he didn't know how to do it.   Is it true and how do I do it? What's the purpose of two capacitors in parallel? What's the purpose of the two capacitors in parallel on each side of the regulator in      I've seen similar setups in other similar circuits and can guess that it's related to one being polarized an one not, but I don't really understand what's going on there. cp -r is meant to copy files recursively, and cp -R for copying directories recursively. But I've checked, and both appear to copy both files and directories, the same thing. So, what's the difference actually?