hello.pl —x Prints the message using two different delimeters.

A UNIX Command
$cat hello.pl
# Prints the message using two different delimeters.
print "Hello, world!\n";
print qq=Did you say "Hello?"\n=;

$perl hello.pl
Hello, world!
Did you say "Hello?"
$

UNIX Explanation
"print"  is  categorized  under  Input/Output Functions.
Prints the message using two different delimeters.

source : http://sandbox.mc.edu/~bennet/perl/leccode/index.html

parameters tcp_retries2

A UNIX Parameter
$cat /proc/sys/net/ipv4/tcp_retries2
15
$

Parameter Definition
How  many  times  to   retry  before  killing  alive  TCP
connection. RFC1122 says that  the limit should be longer
than 100 sec.  It is too small number.  The default value
of 15 corresponds to ~ 13 - 30 minutes, depending on RTO.

Parameter Code Internals


snippet 1
{
.procname = "tcp_retries2",
.data = &sysctl_tcp_retries2,
.maxlen = sizeof(int),
.mode = 0644,
.proc_handler = proc_dointvec
},

snippet 2
if (retransmits_timed_out(sk, sysctl_tcp_retries1, 0, 0)) {
/* Black hole detection */
tcp_mtu_probing(icsk, sk);

dst_negative_advice(sk);
}

retry_until = sysctl_tcp_retries2;
if (sock_flag(sk, SOCK_DEAD)) {
const int alive = (icsk->icsk_rto < TCP_RTO_MAX);

retry_until = tcp_orphan_retries(sk, alive);
do_reset = alive ||
!retransmits_timed_out(sk, retry_until, 0, 0);

if (tcp_out_of_resources(sk, do_reset))
return 1;
}


Related From Research Paper
A tool  for TCP  stack testing and  TCP/IP fingerprinting
(a.k.a.   OS  detection)   is  introduced.   While  tools
presently exist  to do either  OS detection[1, 2]  or TCP
stack testing[3, 4], the  methods they employ are limited
by  the  techniques  and  analysis  performed,  sometimes
resulting in incorrect re- sults or no results at all. We
introduce   synscan,  a  tool   whose  objective   is  to
fingerprint     every      aspect     of     a     TCP/IP
implementation.    synscan   is    not    meant   as    a
proof-of-concept tool; rather, it  is a robust and useful
tool which can  be used in addition to  others for TCP/IP
stack  testing and OS  de- tection.  synscan incorporates
most  of the  techiques used  by the  existing  tools and
introduces  a number  of new  ones.  synscan's  s primary
advantage is that each test begins with a TCP SYN segment
(hence the name)  to an open port, giving  it the ability
to   test  and  fingerprint   even  the   most  fortified
hosts. Conclusive data from  large network scans and com-
parisons  to   results  from  existing   tools  are  also
reported.

source:
SYNSCAN: Towards Complete TCP/IP Fingerprinting
                       Greg Taleck
                    
                    NFR Security, Inc.
               5 Choke Cherry Rd, Suite 200
                   Rockville, MD 20850




linux 0.01 boot.s (copy from linux 0.01)

boot.s is  loaded at 0x7c00 by the  bios startup routines
and moves itself  out of the way to  address 0x90000, and
jumps there.It  then loads  the system at  0x10000, using
BIOS    interrupts.    Thereafter    it   disables    all
interrupts,moves the  system down to 0x0000  , changes to
protected mode and calls  the start of system. The system
then should  reinitialize the protected mode  in it's own
tables, and enables interrupts as needed.

boot.s (copy) 0.01 kernel size and paging

currently  system  is atmost  8*65536  bytes long.   This
should be no problem even  in the future.  I want to keep
it simple.This  512 size kernel kB kernel  size should be
enough -  infact more would  mean we should have  to move
not just  these startup  routines, but also  do something
about  the cache memory(block  I/O devices.the  area left
over in the lower 640kB is meant for these.No oher memory
is assumed to  be "physical", ie all memory  above 1Mb is
demand paging. All addresses  under 1Mb are guaranteed to
match their	physical addresses.

searching for call …

$grep -r setup *
boot/head.s:	call setup_idt
boot/head.s:	call setup_gdt
boot/head.s:	mov %ax,%es		# reloaded in 'setup_gdt'
boot/head.s: *  setup_idt
boot/head.s:setup_idt:
boot/head.s: *  setup_gdt
boot/head.s:setup_gdt:
boot/head.s:	jmp setup_paging
boot/head.s:setup_paging:
include/linux/sys.h:extern int sys_setup();
include/linux/sys.h:fn_ptr sys_call_table[] = { sys_setup, sys_exit, sys_fork, sys_read,
include/unistd.h:#define __NR_setup	0	/* used only by init, to get system going */
init/main.c:static inline _syscall0(int,setup)
init/main.c: * Interrupts are still disabled. Do necessary setups, then
init/main.c:	setup();
kernel/hd.c:int sys_setup(void)

IDT interrupt descriptor table

The  Interrupt Descriptor Table  (IDT) is  an array  of 8
byte   interrupt  descriptors   in   memory  devoted   to
specifying (at most)  256 interrupt service routines. The
first 32  entries are reserved  for processor exceptions,
and  any 16  of the  remaining  entries can  be used  for
hardware interrupts. The  rest are available for software
interrupts.

source : http://www.acm.uiuc.edu/sigops/roll_your_own/i386/idt.html

LEA instruction

The lea  instruction places the address  specified by its
second operand  into the register specified  by its first
operand. Note, the contents ofthe memory location are not
loaded, only the effective address is computed and placed
into the register. This is useful for obtaining a pointer
into a memory region.
source: http://www.cs.virginia.edu/~evans/cs216/guides/x86.html