Where and how does linux event generate?

Hello,there is a subtle question that captures my mind.
Where and how does linux event generate?
For example:
When we create a event fd by calling eventfd(0,EFD_CLOEXEC|EFD_NONBLOCK) and listen it by adding it to the epoll_wait(x,x,x,-1),we can sit here and wait for the expected event from the event fd and then process the event according to its type.But Who creates the event and how epoll captures the event?
A gereral guess is:the system creates the event when some data is written into the eventfd and deliver it to epoll, then epoll captures it and deliver to user.
But what is the difference between event and signal(suck as SIGHUP,SIGKILL)?
Can you discuss it with me or offer some references?
Thank you very much!
Linux is open source. Have you considered looking at the source?

It sounds like an academic question, in which case you're expected to do a little research.
Thanks for replying.
Actually I'm looking up the source and some unix system reference...,but feels very confused in front of so much knowledge..
yes,I prepare to do some research about it and not sure where to start or wether can take a look at the whole picture before deep into the detail code.
So can you share some experience :)...
Topic archived. No new replies allowed.