aboutsummaryrefslogtreecommitdiff
path: root/fc
diff options
context:
space:
mode:
Diffstat (limited to 'fc')
-rw-r--r--fc/AND_ANSI_Labelled.pdfbin0 -> 4791 bytes
-rw-r--r--fc/AND_ANSI_Labelled.svg32
-rw-r--r--fc/NAND_ANSI_Labelled.pdfbin0 -> 4858 bytes
-rw-r--r--fc/NAND_ANSI_Labelled.svg33
-rw-r--r--fc/NOR_ANSI_Labelled.pdfbin0 -> 4956 bytes
-rw-r--r--fc/NOR_ANSI_Labelled.svg36
-rw-r--r--fc/Not-gate-en.pdfbin0 -> 4925 bytes
-rw-r--r--fc/Not-gate-en.svg20
-rw-r--r--fc/OR_ANSI_Labelled.pdfbin0 -> 4896 bytes
-rw-r--r--fc/OR_ANSI_Labelled.svg35
-rw-r--r--fc/XOR_ANSI.pdfbin0 -> 1353 bytes
-rw-r--r--fc/XOR_ANSI.svg33
-rw-r--r--fc/Xnor-gate-en.pdfbin0 -> 5225 bytes
-rw-r--r--fc/Xnor-gate-en.svg23
-rw-r--r--fc/buses.pngbin0 -> 120907 bytes
-rw-r--r--fc/image.0PXO9Y.pngbin0 -> 33260 bytes
-rw-r--r--fc/image.RAWR9Y.pngbin0 -> 29844 bytes
-rw-r--r--fc/image.TZVI9Y.pngbin0 -> 831461 bytes
-rw-r--r--fc/image.V5MB9Y.pngbin0 -> 29352 bytes
-rw-r--r--fc/image.Y3EN9Y.pngbin0 -> 71809 bytes
-rw-r--r--fc/n.lyx228
-rw-r--r--fc/n1.lyx763
-rw-r--r--fc/n2.lyx979
-rw-r--r--fc/n3.lyx1257
-rw-r--r--fc/n4.lyx2821
-rw-r--r--fc/n5.lyx1515
-rw-r--r--fc/n6.lyx1436
27 files changed, 9211 insertions, 0 deletions
diff --git a/fc/AND_ANSI_Labelled.pdf b/fc/AND_ANSI_Labelled.pdf
new file mode 100644
index 0000000..2cc4e43
--- /dev/null
+++ b/fc/AND_ANSI_Labelled.pdf
Binary files differ
diff --git a/fc/AND_ANSI_Labelled.svg b/fc/AND_ANSI_Labelled.svg
new file mode 100644
index 0000000..ee294dc
--- /dev/null
+++ b/fc/AND_ANSI_Labelled.svg
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="120" height="50" id="svg2" sodipodi:version="0.32" inkscape:version="0.46" version="1.0" sodipodi:docname="AND ANSI Labelled.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs id="defs4">
+ <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 15 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="50 : 15 : 1" inkscape:persp3d-origin="25 : 10 : 1" id="perspective2714"/>
+ <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 0.5 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="1 : 0.5 : 1" inkscape:persp3d-origin="0.5 : 0.33333333 : 1" id="perspective2806"/>
+ <inkscape:perspective id="perspective2819" inkscape:persp3d-origin="372.04724 : 350.78739 : 1" inkscape:vp_z="744.09448 : 526.18109 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 526.18109 : 1" sodipodi:type="inkscape:persp3d"/>
+ <inkscape:perspective id="perspective2777" inkscape:persp3d-origin="75 : 40 : 1" inkscape:vp_z="150 : 60 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 60 : 1" sodipodi:type="inkscape:persp3d"/>
+ <inkscape:perspective id="perspective3275" inkscape:persp3d-origin="50 : 33.333333 : 1" inkscape:vp_z="100 : 50 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 50 : 1" sodipodi:type="inkscape:persp3d"/>
+ <inkscape:perspective id="perspective5533" inkscape:persp3d-origin="32 : 21.333333 : 1" inkscape:vp_z="64 : 32 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 32 : 1" sodipodi:type="inkscape:persp3d"/>
+ </defs>
+ <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="5.6568542" inkscape:cx="42.125093" inkscape:cy="21.114818" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" inkscape:grid-bbox="true" inkscape:grid-points="true" gridtolerance="10000" inkscape:window-width="1399" inkscape:window-height="874" inkscape:window-x="33" inkscape:window-y="0" inkscape:snap-bbox="true">
+ <inkscape:grid id="GridFromPre046Settings" type="xygrid" originx="0px" originy="0px" spacingx="1px" spacingy="1px" color="#0000ff" empcolor="#0000ff" opacity="0.2" empopacity="0.4" empspacing="5" visible="true" enabled="true"/>
+ </sodipodi:namedview>
+ <metadata id="metadata7">
+ <rdf:RDF>
+ <cc:Work rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1">
+ <path style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 80,25 C 100,25 105,25 105,25" id="path3059" sodipodi:nodetypes="cc"/>
+ <path style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 41,15 L 15,15" id="path3061"/>
+ <path style="fill:none;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 42,35 L 15,35" id="path3944"/>
+ <path style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans" d="M 40,5 L 40,6.4285714 L 40,43.571429 L 40,45 L 41.428571,45 L 60.47619,45 C 71.744098,45 80.47619,35.999955 80.47619,25 C 80.47619,14.000045 71.744099,5.0000002 60.47619,5 C 60.47619,5 60.47619,5 41.428571,5 L 40,5 z M 42.857143,7.8571429 C 50.834264,7.8571429 55.918368,7.8571429 58.095238,7.8571429 C 59.285714,7.8571429 59.880952,7.8571429 60.178571,7.8571429 C 60.327381,7.8571429 60.409227,7.8571429 60.446429,7.8571429 C 60.465029,7.8571429 60.471543,7.8571429 60.47619,7.8571429 C 70.236853,7.857143 77.142857,15.497098 77.142857,25 C 77.142857,34.502902 69.760662,42.142857 60,42.142857 L 42.857143,42.142857 L 42.857143,7.8571429 z" id="path2884" sodipodi:nodetypes="ccccccsccccsssssccc"/>
+ <text xml:space="preserve" style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans" x="11.460938" y="20" id="text6866" sodipodi:linespacing="100%"><tspan sodipodi:role="line" id="tspan6868" x="11.460938" y="20">A</tspan></text>
+ <text xml:space="preserve" style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans" x="11.48828" y="40" id="text6870" sodipodi:linespacing="100%"><tspan sodipodi:role="line" id="tspan6872" x="11.48828" y="40">B</tspan></text>
+ <text xml:space="preserve" style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans" x="118.41016" y="30" id="text6878" sodipodi:linespacing="100%"><tspan sodipodi:role="line" id="tspan6880" x="118.41016" y="30">Q</tspan></text>
+ </g>
+</svg> \ No newline at end of file
diff --git a/fc/NAND_ANSI_Labelled.pdf b/fc/NAND_ANSI_Labelled.pdf
new file mode 100644
index 0000000..91daf42
--- /dev/null
+++ b/fc/NAND_ANSI_Labelled.pdf
Binary files differ
diff --git a/fc/NAND_ANSI_Labelled.svg b/fc/NAND_ANSI_Labelled.svg
new file mode 100644
index 0000000..7f97027
--- /dev/null
+++ b/fc/NAND_ANSI_Labelled.svg
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="120" height="50" id="svg2" sodipodi:version="0.32" inkscape:version="0.46" version="1.0" sodipodi:docname="NAND ANSI Labelled.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs id="defs4">
+ <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 15 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="50 : 15 : 1" inkscape:persp3d-origin="25 : 10 : 1" id="perspective2714"/>
+ <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 0.5 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="1 : 0.5 : 1" inkscape:persp3d-origin="0.5 : 0.33333333 : 1" id="perspective2806"/>
+ <inkscape:perspective id="perspective2819" inkscape:persp3d-origin="372.04724 : 350.78739 : 1" inkscape:vp_z="744.09448 : 526.18109 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 526.18109 : 1" sodipodi:type="inkscape:persp3d"/>
+ <inkscape:perspective id="perspective2777" inkscape:persp3d-origin="75 : 40 : 1" inkscape:vp_z="150 : 60 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 60 : 1" sodipodi:type="inkscape:persp3d"/>
+ <inkscape:perspective id="perspective3275" inkscape:persp3d-origin="50 : 33.333333 : 1" inkscape:vp_z="100 : 50 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 50 : 1" sodipodi:type="inkscape:persp3d"/>
+ <inkscape:perspective id="perspective5533" inkscape:persp3d-origin="32 : 21.333333 : 1" inkscape:vp_z="64 : 32 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 32 : 1" sodipodi:type="inkscape:persp3d"/>
+ </defs>
+ <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="5.6568543" inkscape:cx="80.963696" inkscape:cy="11.63223" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" inkscape:grid-bbox="true" inkscape:grid-points="true" gridtolerance="10000" inkscape:window-width="1399" inkscape:window-height="874" inkscape:window-x="33" inkscape:window-y="0" inkscape:snap-bbox="true">
+ <inkscape:grid id="GridFromPre046Settings" type="xygrid" originx="0px" originy="0px" spacingx="1px" spacingy="1px" color="#0000ff" empcolor="#0000ff" opacity="0.2" empopacity="0.4" empspacing="5" visible="true" enabled="true"/>
+ </sodipodi:namedview>
+ <metadata id="metadata7">
+ <rdf:RDF>
+ <cc:Work rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1">
+ <path style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 88.11111,25 C 101.62222,25 105,25 105,25" id="path3059" sodipodi:nodetypes="cc"/>
+ <path style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 41,15 L 15,15" id="path3061"/>
+ <path style="fill:none;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 42,35 L 15,35" id="path3944"/>
+ <path style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans" d="M 40,5 L 40,6.4285714 L 40,43.571429 L 40,45 L 41.428571,45 L 60.47619,45 C 71.744098,45 80.47619,35.999955 80.47619,25 C 80.47619,14.000045 71.744099,5.0000002 60.47619,5 C 60.47619,5 60.47619,5 41.428571,5 L 40,5 z M 42.857143,7.8571429 C 50.834264,7.8571429 55.918368,7.8571429 58.095238,7.8571429 C 59.285714,7.8571429 59.880952,7.8571429 60.178571,7.8571429 C 60.327381,7.8571429 60.409227,7.8571429 60.446429,7.8571429 C 60.465029,7.8571429 60.471543,7.8571429 60.47619,7.8571429 C 70.236853,7.857143 77.142857,15.497098 77.142857,25 C 77.142857,34.502902 69.760662,42.142857 60,42.142857 L 42.857143,42.142857 L 42.857143,7.8571429 z" id="path2884" sodipodi:nodetypes="ccccccsccccsssssccc"/>
+ <path sodipodi:type="arc" style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linejoin:miter;marker:none;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="path4008" sodipodi:cx="75" sodipodi:cy="25" sodipodi:rx="4" sodipodi:ry="4" d="M 79,25 A 4,4 0 1 1 71,25 A 4,4 0 1 1 79,25 z" transform="translate(9,0)"/>
+ <text xml:space="preserve" style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans" x="11.460938" y="20" id="text6866" sodipodi:linespacing="100%"><tspan sodipodi:role="line" id="tspan6868" x="11.460938" y="20">A</tspan></text>
+ <text xml:space="preserve" style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans" x="11.48828" y="40" id="text6870" sodipodi:linespacing="100%"><tspan sodipodi:role="line" id="tspan6872" x="11.48828" y="40">B</tspan></text>
+ <text xml:space="preserve" style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans" x="118.41015" y="30" id="text6878" sodipodi:linespacing="100%"><tspan sodipodi:role="line" id="tspan6880" x="118.41015" y="30">Q</tspan></text>
+ </g>
+</svg> \ No newline at end of file
diff --git a/fc/NOR_ANSI_Labelled.pdf b/fc/NOR_ANSI_Labelled.pdf
new file mode 100644
index 0000000..a83d273
--- /dev/null
+++ b/fc/NOR_ANSI_Labelled.pdf
Binary files differ
diff --git a/fc/NOR_ANSI_Labelled.svg b/fc/NOR_ANSI_Labelled.svg
new file mode 100644
index 0000000..0fd18f9
--- /dev/null
+++ b/fc/NOR_ANSI_Labelled.svg
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="120" height="50" id="svg2" sodipodi:version="0.32" inkscape:version="0.46" version="1.0" sodipodi:docname="NOR ANSI Labelled.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs id="defs4">
+ <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 15 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="50 : 15 : 1" inkscape:persp3d-origin="25 : 10 : 1" id="perspective2714"/>
+ <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 0.5 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="1 : 0.5 : 1" inkscape:persp3d-origin="0.5 : 0.33333333 : 1" id="perspective2806"/>
+ <inkscape:perspective id="perspective2819" inkscape:persp3d-origin="372.04724 : 350.78739 : 1" inkscape:vp_z="744.09448 : 526.18109 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 526.18109 : 1" sodipodi:type="inkscape:persp3d"/>
+ <inkscape:perspective id="perspective2777" inkscape:persp3d-origin="75 : 40 : 1" inkscape:vp_z="150 : 60 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 60 : 1" sodipodi:type="inkscape:persp3d"/>
+ <inkscape:perspective id="perspective3275" inkscape:persp3d-origin="50 : 33.333333 : 1" inkscape:vp_z="100 : 50 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 50 : 1" sodipodi:type="inkscape:persp3d"/>
+ <inkscape:perspective id="perspective5533" inkscape:persp3d-origin="32 : 21.333333 : 1" inkscape:vp_z="64 : 32 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 32 : 1" sodipodi:type="inkscape:persp3d"/>
+ <inkscape:perspective id="perspective2557" inkscape:persp3d-origin="25 : 16.666667 : 1" inkscape:vp_z="50 : 25 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 25 : 1" sodipodi:type="inkscape:persp3d"/>
+ </defs>
+ <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="5.6568543" inkscape:cx="68.340917" inkscape:cy="10.321133" inkscape:document-units="px" inkscape:current-layer="g2560" showgrid="true" inkscape:grid-bbox="true" inkscape:grid-points="true" gridtolerance="10000" inkscape:window-width="1399" inkscape:window-height="874" inkscape:window-x="33" inkscape:window-y="0" inkscape:snap-bbox="true">
+ <inkscape:grid id="GridFromPre046Settings" type="xygrid" originx="0px" originy="0px" spacingx="1px" spacingy="1px" color="#0000ff" empcolor="#0000ff" opacity="0.2" empopacity="0.4" empspacing="5" visible="true" enabled="true"/>
+ </sodipodi:namedview>
+ <metadata id="metadata7">
+ <rdf:RDF>
+ <cc:Work rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1">
+ <path style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 88.203221,25 C 109.29453,25 105.07627,25 105.07627,25" id="path3059" sodipodi:nodetypes="cc"/>
+ <path style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 41.076272,15 L 15.076272,15" id="path3061"/>
+ <path style="fill:none;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 42.076272,35 L 15.076272,35" id="path3944"/>
+ <g id="g2560" inkscape:label="Layer 1" transform="translate(26.5,-39.5)">
+ <path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 7.6700216,44.5 L 9.6700216,46.9375 C 9.6700216,46.9375 15.326272,53.937549 15.326272,64.5 C 15.326272,75.062451 9.6700216,82.0625 9.6700216,82.0625 L 7.6700216,84.5 L 10.826272,84.5 L 24.826272,84.5 C 27.234348,84.500001 32.515971,84.524514 38.451272,82.09375 C 43.952029,79.840951 50.024779,75.456504 54.984922,67.238862 L 53.826272,64.5 L 54.987161,61.767184 C 44.664037,44.700133 29.409159,44.5 24.826272,44.5 L 10.826272,44.5 L 7.6700216,44.5 z M 13.545022,47.5 L 24.826272,47.5 C 29.510445,47.5 43.113122,47.369793 52.795022,64.5 C 48.028236,72.929075 42.273741,77.18391 37.076272,79.3125 C 31.715611,81.507924 27.234347,81.500001 24.826272,81.5 L 13.576272,81.5 C 15.44986,78.391566 18.326272,72.45065 18.326272,64.5 C 18.326272,56.526646 15.41774,50.599815 13.545022,47.5 z" id="path4973" sodipodi:nodetypes="ccsccccscccccccccsccsc"/>
+ <path sodipodi:type="arc" style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linejoin:miter;marker:none;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="path2604" sodipodi:cx="75" sodipodi:cy="25" sodipodi:rx="4" sodipodi:ry="4" d="M 79,25 A 4,4 0 1 1 71,25 A 4,4 0 1 1 79,25 z" transform="translate(-17.423728,39.5)"/>
+ <text xml:space="preserve" style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans" x="-15.039063" y="59.5" id="text6866" sodipodi:linespacing="100%"><tspan sodipodi:role="line" id="tspan6868" x="-15.039063" y="59.5">A</tspan></text>
+ <text xml:space="preserve" style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans" x="-15.01172" y="79.5" id="text6870" sodipodi:linespacing="100%"><tspan sodipodi:role="line" id="tspan6872" x="-15.01172" y="79.5">B</tspan></text>
+ <text xml:space="preserve" style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans" x="91.910164" y="69.5" id="text6878" sodipodi:linespacing="100%"><tspan sodipodi:role="line" id="tspan6880" x="91.910164" y="69.5">Q</tspan></text>
+ </g>
+ </g>
+</svg> \ No newline at end of file
diff --git a/fc/Not-gate-en.pdf b/fc/Not-gate-en.pdf
new file mode 100644
index 0000000..5f6d108
--- /dev/null
+++ b/fc/Not-gate-en.pdf
Binary files differ
diff --git a/fc/Not-gate-en.svg b/fc/Not-gate-en.svg
new file mode 100644
index 0000000..daf957b
--- /dev/null
+++ b/fc/Not-gate-en.svg
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://web.resource.org/cc/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" id="svg2" sodipodi:version="0.32" inkscape:version="0.43" width="400pt" height="144pt" sodipodi:docbase="D:\wiki_svg" sodipodi:docname="Not-gate-en.png.svg" version="1.0">
+ <metadata id="metadata7">
+ <rdf:RDF>
+ <cc:Work rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs id="defs5"/>
+ <sodipodi:namedview inkscape:window-height="652" inkscape:window-width="756" inkscape:pageshadow="2" inkscape:pageopacity="0.0" borderopacity="1.0" bordercolor="#666666" pagecolor="#ffffff" id="base" inkscape:showpageshadow="false" borderlayer="top" inkscape:zoom="0.70710678" inkscape:cx="299.78322" inkscape:cy="81.877528" inkscape:window-x="66" inkscape:window-y="66" inkscape:current-layer="svg2"/>
+ <text xml:space="preserve" style="font-size:72px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Verdana" x="9" y="116.17383" id="text1308" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan1310" x="9" y="116.17383">A</tspan></text>
+ <path style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:7.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 72,90 L 185,90" id="path1316"/>
+ <use x="0" y="0" xlink:href="#path1316" id="use2208" transform="translate(196.5757,0)" width="500" height="180"/>
+ <path style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:7.49999857;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" d="M 148,10.750011 L 261.2807,89.999989 L 148,169.24995 L 148,10.750011 z " id="rect2193" sodipodi:nodetypes="cccc"/>
+ <text xml:space="preserve" style="font-size:56px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Verdana" x="395.41205" y="109.23633" id="text2210" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan2212" x="395.41205" y="109.23633">out</tspan></text>
+ <path sodipodi:type="arc" style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:7.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path2247" sodipodi:cx="285.3176" sodipodi:cy="89.843887" sodipodi:rx="20.152544" sodipodi:ry="20.152544" d="M 305.47014 89.843887 A 20.152544 20.152544 0 1 1 265.16505,89.843887 A 20.152544 20.152544 0 1 1 305.47014 89.843887 z" transform="translate(-2.828424,0.156093)"/>
+</svg> \ No newline at end of file
diff --git a/fc/OR_ANSI_Labelled.pdf b/fc/OR_ANSI_Labelled.pdf
new file mode 100644
index 0000000..77fe2df
--- /dev/null
+++ b/fc/OR_ANSI_Labelled.pdf
Binary files differ
diff --git a/fc/OR_ANSI_Labelled.svg b/fc/OR_ANSI_Labelled.svg
new file mode 100644
index 0000000..6275ef9
--- /dev/null
+++ b/fc/OR_ANSI_Labelled.svg
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="120" height="50" id="svg2" sodipodi:version="0.32" inkscape:version="0.46" version="1.0" sodipodi:docname="OR ANSI Labelled.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs id="defs4">
+ <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 15 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="50 : 15 : 1" inkscape:persp3d-origin="25 : 10 : 1" id="perspective2714"/>
+ <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 0.5 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="1 : 0.5 : 1" inkscape:persp3d-origin="0.5 : 0.33333333 : 1" id="perspective2806"/>
+ <inkscape:perspective id="perspective2819" inkscape:persp3d-origin="372.04724 : 350.78739 : 1" inkscape:vp_z="744.09448 : 526.18109 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 526.18109 : 1" sodipodi:type="inkscape:persp3d"/>
+ <inkscape:perspective id="perspective2777" inkscape:persp3d-origin="75 : 40 : 1" inkscape:vp_z="150 : 60 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 60 : 1" sodipodi:type="inkscape:persp3d"/>
+ <inkscape:perspective id="perspective3275" inkscape:persp3d-origin="50 : 33.333333 : 1" inkscape:vp_z="100 : 50 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 50 : 1" sodipodi:type="inkscape:persp3d"/>
+ <inkscape:perspective id="perspective5533" inkscape:persp3d-origin="32 : 21.333333 : 1" inkscape:vp_z="64 : 32 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 32 : 1" sodipodi:type="inkscape:persp3d"/>
+ <inkscape:perspective id="perspective2557" inkscape:persp3d-origin="25 : 16.666667 : 1" inkscape:vp_z="50 : 25 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 25 : 1" sodipodi:type="inkscape:persp3d"/>
+ </defs>
+ <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="5.6568542" inkscape:cx="91.01458" inkscape:cy="-4.8292379" inkscape:document-units="px" inkscape:current-layer="g2560" showgrid="true" inkscape:grid-bbox="true" inkscape:grid-points="true" gridtolerance="10000" inkscape:window-width="1399" inkscape:window-height="874" inkscape:window-x="33" inkscape:window-y="0" inkscape:snap-bbox="true">
+ <inkscape:grid id="GridFromPre046Settings" type="xygrid" originx="0px" originy="0px" spacingx="1px" spacingy="1px" color="#0000ff" empcolor="#0000ff" opacity="0.2" empopacity="0.4" empspacing="5" visible="true" enabled="true"/>
+ </sodipodi:namedview>
+ <metadata id="metadata7">
+ <rdf:RDF>
+ <cc:Work rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1">
+ <path style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 80.03125,25 C 100.03125,25 105.03125,25 105.03125,25" id="path3059" sodipodi:nodetypes="cc"/>
+ <path style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 41.03125,15 L 15.03125,15" id="path3061"/>
+ <path style="fill:none;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 42.03125,35 L 15.03125,35" id="path3944"/>
+ <g id="g2560" inkscape:label="Layer 1" transform="translate(26.5,-39.5)">
+ <path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 7.625,44.5 L 9.625,46.9375 C 9.625,46.9375 15.28125,53.937549 15.28125,64.5 C 15.28125,75.062451 9.625,82.0625 9.625,82.0625 L 7.625,84.5 L 10.78125,84.5 L 24.78125,84.5 C 27.189326,84.500001 32.470949,84.524514 38.40625,82.09375 C 44.341551,79.662986 50.942786,74.750484 56.09375,65.21875 L 54.78125,64.5 L 56.09375,63.78125 C 45.790637,44.71559 29.537824,44.5 24.78125,44.5 L 10.78125,44.5 L 7.625,44.5 z M 13.5,47.5 L 24.78125,47.5 C 29.465423,47.5 43.0681,47.369793 52.75,64.5 C 47.983214,72.929075 42.228719,77.18391 37.03125,79.3125 C 31.670589,81.507924 27.189325,81.500001 24.78125,81.5 L 13.53125,81.5 C 15.404838,78.391566 18.28125,72.45065 18.28125,64.5 C 18.28125,56.526646 15.372719,50.599815 13.5,47.5 z" id="path4973" sodipodi:nodetypes="ccsccccscccccccccsccsc"/>
+ <text xml:space="preserve" style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans" x="-15.039063" y="59.706055" id="text6866" sodipodi:linespacing="100%"><tspan sodipodi:role="line" id="tspan6868" x="-15.039063" y="59.706055">A</tspan></text>
+ <text xml:space="preserve" style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans" x="-15.011719" y="79.706055" id="text6870" sodipodi:linespacing="100%"><tspan sodipodi:role="line" id="tspan6872" x="-15.011719" y="79.706055">B</tspan></text>
+ <text xml:space="preserve" style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans" x="91.910156" y="69.706055" id="text6878" sodipodi:linespacing="100%"><tspan sodipodi:role="line" id="tspan6880" x="91.910156" y="69.706055">Q</tspan></text>
+ </g>
+ </g>
+</svg> \ No newline at end of file
diff --git a/fc/XOR_ANSI.pdf b/fc/XOR_ANSI.pdf
new file mode 100644
index 0000000..6670dba
--- /dev/null
+++ b/fc/XOR_ANSI.pdf
Binary files differ
diff --git a/fc/XOR_ANSI.svg b/fc/XOR_ANSI.svg
new file mode 100644
index 0000000..6f14e5b
--- /dev/null
+++ b/fc/XOR_ANSI.svg
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="100" height="50" id="svg2" sodipodi:version="0.32" inkscape:version="0.46" version="1.0" sodipodi:docname="XOR ANSI.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs id="defs4">
+ <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 15 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="50 : 15 : 1" inkscape:persp3d-origin="25 : 10 : 1" id="perspective2714"/>
+ <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 0.5 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="1 : 0.5 : 1" inkscape:persp3d-origin="0.5 : 0.33333333 : 1" id="perspective2806"/>
+ <inkscape:perspective id="perspective2819" inkscape:persp3d-origin="372.04724 : 350.78739 : 1" inkscape:vp_z="744.09448 : 526.18109 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 526.18109 : 1" sodipodi:type="inkscape:persp3d"/>
+ <inkscape:perspective id="perspective2777" inkscape:persp3d-origin="75 : 40 : 1" inkscape:vp_z="150 : 60 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 60 : 1" sodipodi:type="inkscape:persp3d"/>
+ <inkscape:perspective id="perspective3275" inkscape:persp3d-origin="50 : 33.333333 : 1" inkscape:vp_z="100 : 50 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 50 : 1" sodipodi:type="inkscape:persp3d"/>
+ <inkscape:perspective id="perspective5533" inkscape:persp3d-origin="32 : 21.333333 : 1" inkscape:vp_z="64 : 32 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 32 : 1" sodipodi:type="inkscape:persp3d"/>
+ <inkscape:perspective id="perspective2557" inkscape:persp3d-origin="25 : 16.666667 : 1" inkscape:vp_z="50 : 25 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_x="0 : 25 : 1" sodipodi:type="inkscape:persp3d"/>
+ </defs>
+ <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="5.6568542" inkscape:cx="25.938116" inkscape:cy="17.23005" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" inkscape:grid-bbox="true" inkscape:grid-points="true" gridtolerance="10000" inkscape:window-width="1399" inkscape:window-height="874" inkscape:window-x="33" inkscape:window-y="0" inkscape:snap-bbox="true">
+ <inkscape:grid id="GridFromPre046Settings" type="xygrid" originx="0px" originy="0px" spacingx="1px" spacingy="1px" color="#0000ff" empcolor="#0000ff" opacity="0.2" empopacity="0.4" empspacing="5" visible="true" enabled="true"/>
+ </sodipodi:namedview>
+ <metadata id="metadata7">
+ <rdf:RDF>
+ <cc:Work rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1">
+ <path style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 70,25 c 20,0 25,0 25,0" id="path3059" sodipodi:nodetypes="cc"/>
+ <path style="fill:none;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 30.385717,15 L 4.9999998,15" id="path3061"/>
+ <path style="fill:none;stroke:#000000;stroke-width:1.99999976;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 31.362091,35 L 4.9999998,35" id="path3944"/>
+ <g id="g2560" inkscape:label="Layer 1" transform="translate(26.5,-39.5)">
+ <path id="path3516" style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M -2.25,81.500005 C -3.847374,84.144405 -4.5,84.500005 -4.5,84.500005 L -8.15625,84.500005 L -6.15625,82.062505 C -6.15625,82.062505 -0.5,75.062451 -0.5,64.5 C -0.5,53.937549 -6.15625,46.9375 -6.15625,46.9375 L -8.15625,44.5 L -4.5,44.5 C -3.71875,45.4375 -3.078125,46.15625 -2.28125,47.5 C -0.408531,50.599815 2.5,56.526646 2.5,64.5 C 2.5,72.45065 -0.396697,78.379425 -2.25,81.500005 z" sodipodi:nodetypes="ccccsccccsc"/>
+ <path style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M -2.40625,44.5 L -0.40625,46.9375 C -0.40625,46.9375 5.25,53.937549 5.25,64.5 C 5.25,75.062451 -0.40625,82.0625 -0.40625,82.0625 L -2.40625,84.5 L 0.75,84.5 L 14.75,84.5 C 17.158076,84.500001 22.439699,84.524514 28.375,82.09375 C 34.310301,79.662986 40.911536,74.750484 46.0625,65.21875 L 44.75,64.5 L 46.0625,63.78125 C 35.759387,44.71559 19.506574,44.5 14.75,44.5 L 0.75,44.5 L -2.40625,44.5 z M 3.46875,47.5 L 14.75,47.5 C 19.434173,47.5 33.03685,47.369793 42.71875,64.5 C 37.951964,72.929075 32.197469,77.18391 27,79.3125 C 21.639339,81.507924 17.158075,81.500001 14.75,81.5 L 3.5,81.5 C 5.3735884,78.391566 8.25,72.45065 8.25,64.5 C 8.25,56.526646 5.3414686,50.599815 3.46875,47.5 z" id="path4973" sodipodi:nodetypes="ccsccccscccccccccsccsc"/>
+ </g>
+ </g>
+</svg> \ No newline at end of file
diff --git a/fc/Xnor-gate-en.pdf b/fc/Xnor-gate-en.pdf
new file mode 100644
index 0000000..a925fa5
--- /dev/null
+++ b/fc/Xnor-gate-en.pdf
Binary files differ
diff --git a/fc/Xnor-gate-en.svg b/fc/Xnor-gate-en.svg
new file mode 100644
index 0000000..b205563
--- /dev/null
+++ b/fc/Xnor-gate-en.svg
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://web.resource.org/cc/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" id="svg2" sodipodi:version="0.32" inkscape:version="0.43" width="400pt" height="144pt" sodipodi:docbase="D:\wiki_svg" sodipodi:docname="Xnor-gate-en.svg" version="1.0">
+ <metadata id="metadata7">
+ <rdf:RDF>
+ <cc:Work rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs id="defs5"/>
+ <sodipodi:namedview inkscape:window-height="652" inkscape:window-width="756" inkscape:pageshadow="2" inkscape:pageopacity="0.0" borderopacity="1.0" bordercolor="#666666" pagecolor="#ffffff" id="base" inkscape:showpageshadow="false" borderlayer="top" inkscape:zoom="0.5" inkscape:cx="60.099843" inkscape:cy="188.54262" inkscape:window-x="80" inkscape:window-y="81" inkscape:current-layer="svg2"/>
+ <text xml:space="preserve" style="font-size:72px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Verdana" x="9" y="77.173828" id="text1308" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan1310" x="9" y="77.173828">A</tspan></text>
+ <text sodipodi:linespacing="125%" id="text1312" y="155.17383" x="9" style="font-size:72px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Verdana" xml:space="preserve"><tspan y="155.17383" x="9" id="tspan1314" sodipodi:role="line">B</tspan></text>
+ <path style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:7.5;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" d="M 72,51 L 185,51" id="path1316"/>
+ <use x="0" y="0" xlink:href="#path1316" id="use1318" transform="translate(0,78)" width="500" height="180"/>
+ <use x="0" y="0" xlink:href="#path1316" id="use2208" transform="translate(196.5757,39)" width="500" height="180"/>
+ <path id="rect2193" style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:7.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" d="M 135.67366,169.24997 C 135.54865,169.25544 173.11664,161.81425 173.11664,89.999999 C 173.11664,17.478772 135.6709,10.749695 135.67366,10.750027 C 196.16084,18.014053 235.55464,7.7267425 277.18432,90.000005 C 246.14327,162.74602 205.43421,166.19896 135.67366,169.24997 z " sodipodi:nodetypes="czscs"/>
+ <text xml:space="preserve" style="font-size:56px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Verdana" x="395.41205" y="109.23633" id="text2210" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan2212" x="395.41205" y="109.23633">out</tspan></text>
+ <path sodipodi:type="arc" style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:7.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path2247" sodipodi:cx="285.3176" sodipodi:cy="89.843887" sodipodi:rx="20.152544" sodipodi:ry="20.152544" d="M 305.47014 89.843887 A 20.152544 20.152544 0 1 1 265.16505,89.843887 A 20.152544 20.152544 0 1 1 305.47014 89.843887 z" transform="translate(12.64507,0.156113)"/>
+ <path id="path1315" style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:7.50000143;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" d="M 98.49408,167.34036 C 98.35715,167.3457 139.50626,160.08381 139.50626,90.000002 C 139.50626,19.226244 98.49105,12.659314 98.49408,12.659634" sodipodi:nodetypes="czs"/>
+</svg> \ No newline at end of file
diff --git a/fc/buses.png b/fc/buses.png
new file mode 100644
index 0000000..1df9561
--- /dev/null
+++ b/fc/buses.png
Binary files differ
diff --git a/fc/image.0PXO9Y.png b/fc/image.0PXO9Y.png
new file mode 100644
index 0000000..c3fc469
--- /dev/null
+++ b/fc/image.0PXO9Y.png
Binary files differ
diff --git a/fc/image.RAWR9Y.png b/fc/image.RAWR9Y.png
new file mode 100644
index 0000000..d7b6220
--- /dev/null
+++ b/fc/image.RAWR9Y.png
Binary files differ
diff --git a/fc/image.TZVI9Y.png b/fc/image.TZVI9Y.png
new file mode 100644
index 0000000..dcb1e69
--- /dev/null
+++ b/fc/image.TZVI9Y.png
Binary files differ
diff --git a/fc/image.V5MB9Y.png b/fc/image.V5MB9Y.png
new file mode 100644
index 0000000..c823128
--- /dev/null
+++ b/fc/image.V5MB9Y.png
Binary files differ
diff --git a/fc/image.Y3EN9Y.png b/fc/image.Y3EN9Y.png
new file mode 100644
index 0000000..752434d
--- /dev/null
+++ b/fc/image.Y3EN9Y.png
Binary files differ
diff --git a/fc/n.lyx b/fc/n.lyx
new file mode 100644
index 0000000..5852747
--- /dev/null
+++ b/fc/n.lyx
@@ -0,0 +1,228 @@
+#LyX 2.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 544
+\begin_document
+\begin_header
+\save_transient_properties true
+\origin unavailable
+\textclass book
+\use_default_options true
+\maintain_unincluded_children false
+\language spanish
+\language_package default
+\inputencoding auto
+\fontencoding global
+\font_roman "default" "default"
+\font_sans "default" "default"
+\font_typewriter "default" "default"
+\font_math "auto" "auto"
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc false
+\font_osf false
+\font_sf_scale 100 100
+\font_tt_scale 100 100
+\use_microtype false
+\use_dash_ligatures true
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize default
+\spacing single
+\use_hyperref false
+\papersize a5paper
+\use_geometry true
+\use_package amsmath 1
+\use_package amssymb 1
+\use_package cancel 1
+\use_package esint 1
+\use_package mathdots 1
+\use_package mathtools 1
+\use_package mhchem 1
+\use_package stackrel 1
+\use_package stmaryrd 1
+\use_package undertilde 1
+\cite_engine basic
+\cite_engine_type default
+\biblio_style plain
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\justification true
+\use_refstyle 1
+\use_minted 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\leftmargin 0.2cm
+\topmargin 0.7cm
+\rightmargin 0.2cm
+\bottommargin 0.7cm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\paragraph_indentation default
+\is_math_indent 0
+\math_numbering_side default
+\quotes_style french
+\dynamic_quotes 0
+\papercolumns 1
+\papersides 1
+\paperpagestyle empty
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Title
+Fundamentos de Computadores
+\end_layout
+
+\begin_layout Date
+\begin_inset Note Note
+status open
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+def
+\backslash
+cryear{2017}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "../license.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Bibliografía:
+\end_layout
+
+\begin_layout Itemize
+Diapositivas de Fundamentos de Computadores (Curso 2017–18).
+\end_layout
+
+\begin_layout Itemize
+Boletines de prácticas de Fundamentos de Computadores, Título de Grado en
+ Ingeniería Informática, Facultad de Informática, Universidad de Murcia
+ (Curso 2017–18).
+\end_layout
+
+\begin_layout Chapter
+Introducción
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "n1.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Chapter
+Representación de la información
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "n2.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Chapter
+Sistemas digitales: Circuitos combinacionales
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "n3.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Chapter
+Introducción a los sistemas operativos
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "n4.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Chapter
+Lenguajes del computador: alto nivel, ensamblador y máquina
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "n5.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Chapter
+Introducción a las redes de ordenadores
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand input
+filename "n6.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\end_body
+\end_document
diff --git a/fc/n1.lyx b/fc/n1.lyx
new file mode 100644
index 0000000..d912189
--- /dev/null
+++ b/fc/n1.lyx
@@ -0,0 +1,763 @@
+#LyX 2.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 544
+\begin_document
+\begin_header
+\save_transient_properties true
+\origin unavailable
+\textclass book
+\use_default_options true
+\maintain_unincluded_children false
+\language spanish
+\language_package default
+\inputencoding auto
+\fontencoding global
+\font_roman "default" "default"
+\font_sans "default" "default"
+\font_typewriter "default" "default"
+\font_math "auto" "auto"
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc false
+\font_osf false
+\font_sf_scale 100 100
+\font_tt_scale 100 100
+\use_microtype false
+\use_dash_ligatures true
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize default
+\spacing single
+\use_hyperref false
+\papersize default
+\use_geometry false
+\use_package amsmath 1
+\use_package amssymb 1
+\use_package cancel 1
+\use_package esint 1
+\use_package mathdots 1
+\use_package mathtools 1
+\use_package mhchem 1
+\use_package stackrel 1
+\use_package stmaryrd 1
+\use_package undertilde 1
+\cite_engine basic
+\cite_engine_type default
+\biblio_style plain
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\justification true
+\use_refstyle 1
+\use_minted 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\paragraph_indentation default
+\is_math_indent 0
+\math_numbering_side default
+\quotes_style swiss
+\dynamic_quotes 0
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Standard
+La
+\series bold
+informática
+\series default
+ es la ciencia que estudia el procesamiento automático de la información.
+ Su consolidación como ciencia se produce a partir de los años 40 con el
+ desarrollo de los
+\series bold
+computadores
+\series default
+, con los cuales esta se ha podido desarrollar.
+\end_layout
+
+\begin_layout Standard
+Un computador es una máquina que procesa información siguiendo las instrucciones
+ de un programa, y se comunica a través de los dispositivos de entrada y
+ de salida.
+ También dispone de dispositivos para almacenar información y procesarla.
+ Esta está expresada en forma binaria (0's y 1's).
+ Distinguimos:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Hardware:
+\series default
+ Conjunto de componentes que integran la parte material de un computador,
+ incluyendo componentes eléctricos, electrónicos y mecánicos.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Software:
+\series default
+ Conjunto de programas e instrucciones para ejecutar ciertas tareas en un
+ computador.
+ Es intangible, aunque se encuentren almacenados en hardware.
+\end_layout
+
+\begin_layout Section
+Hardware
+\end_layout
+
+\begin_layout Standard
+Tradicionalmente, los computadores siguen el
+\series bold
+esquema de Von Neumann
+\series default
+, que consiste en una unidad central de proceso (CPU), constituida por una
+ unidad de control (UC) y un camino de datos (CD); la memoria principal,
+ y los dispositivos de entrada y salida, incluyendo almacenamiento.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Graphics
+ filename buses.png
+ width 100text%
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Los
+\series bold
+buses
+\series default
+ son un conjunto de hilos paralelos que conectan unidades, como se muestra
+ en la figura.
+ Cada hilo transmite 1 bit a la vez, y el
+\series bold
+ancho de bus
+\series default
+ es el nº de hilos que tiene un bus.
+ En concreto:
+\end_layout
+
+\begin_layout Itemize
+El
+\series bold
+bus de direcciones
+\series default
+ transmite la dirección en memoria, por lo que su ancho define la máxima
+ memoria instalable como
+\begin_inset Formula $2^{n}$
+\end_inset
+
+ bytes.
+\end_layout
+
+\begin_layout Itemize
+El
+\series bold
+bus de datos
+\series default
+ transmite información, por lo que a mayor ancho, mayor cantidad de información
+ se puede transmitir en una sola operación.
+\end_layout
+
+\begin_layout Standard
+La
+\series bold
+memoria
+\series default
+ está formada por un conjunto de celdas, normalmente de 1 byte, en la que
+ se guardan datos e instrucciones.
+ Cada celda tiene una
+\series bold
+dirección
+\series default
+ única y correlativa.
+ Para leerla, la CPU
+\begin_inset Quotes cld
+\end_inset
+
+pone
+\begin_inset Quotes crd
+\end_inset
+
+ la dirección en el bus de direcciones, activa el hilo de lectura en el
+ bus de control y la memoria
+\begin_inset Quotes cld
+\end_inset
+
+deja
+\begin_inset Quotes crd
+\end_inset
+
+ el contenido de la(s) celda(s) en el bus de datos.
+ Para escribir, la CPU
+\begin_inset Quotes cld
+\end_inset
+
+pone
+\begin_inset Quotes crd
+\end_inset
+
+ la dirección en el bus de direcciones, el dato en el bus de datos y activa
+ el hilo de escritura en el bus de control.
+\end_layout
+
+\begin_layout Section
+Software
+\end_layout
+
+\begin_layout Standard
+El
+\series bold
+sistema operativo
+\series default
+ un programa que gestiona los recursos del computador.
+ Es el primer programa en ejecutarse (*), gestiona a todos los demás y actúa
+ de intermediario con el hardware.
+ Es un
+\series bold
+programa de sistema
+\series default
+, al igual que el compilador y el ensamblador.
+ Por contra, las
+\series bold
+aplicaciones
+\series default
+ son programas orientados al usuario, como procesadores de texto, hojas
+ de cálculo, navegadores web, reproductores multimedia, etc.
+\end_layout
+
+\begin_layout Standard
+El
+\series bold
+firmware
+\series default
+ es software de bajo nivel, almacenado de forma semipermanente.
+ En general, puede cambiarse, pero no tan fácilmente como el resto de software.
+\end_layout
+
+\begin_layout Section
+Internet
+\end_layout
+
+\begin_layout Standard
+
+\series bold
+Internet
+\series default
+ es un conjunto descentralizado de redes de comunicación interconectadas
+ mediante protocolos estandarizados, de forma que las redes físicas que
+ las componen funcionan como una única red lógica mundial.
+ Existen muchos
+\series bold
+servicios
+\series default
+ proporcionados a través de la red, como la Web, correo electrónico, transmisión
+ de archivos, chats, acceso remoto, etc.
+\end_layout
+
+\begin_layout Section
+Conceptos
+\end_layout
+
+\begin_layout Standard
+La unidad mínima de información es el
+\series bold
+bit
+\series default
+, que puede valer 0 o 1.
+ Se pueden almacenar como tensión alta o baja en un circuito, superficie
+ magnetizada en uno u otro sentido, superficie perforada, señal de alta
+ o baja frecuencia en un cable, presencia o no de señal luminosa en un cable
+ de fibra óptica, etc.
+ Generalmente se usan secuencias de bits: 1
+\series bold
+byte
+\series default
+ = 8 bits, codifica
+\begin_inset Formula $2^{8}=256$
+\end_inset
+
+ estados distintos.
+\end_layout
+
+\begin_layout Standard
+Múltiplos del byte:
+\begin_inset Formula $\unit[1]{KB}\text{(kilobyte)}=\unit[2^{10}]{B}$
+\end_inset
+
+,
+\begin_inset Formula $\unit[1]{MB}\text{(megabyte)}=\unit[2^{20}]{B}$
+\end_inset
+
+,
+\begin_inset Formula $\unit[1]{GB}\text{(gigabyte)}=\unit[2^{30}]{B}$
+\end_inset
+
+,
+\begin_inset Formula $\unit[1]{TB}\text{(terabyte)}=\unit[2^{40}]{B}$
+\end_inset
+
+,
+\begin_inset Formula $\unit[1]{PB}\text{(petabyte)}=\unit[2^{50}]{B}$
+\end_inset
+
+,
+\begin_inset Formula $\unit[1]{EB}\text{(exabyte)}=\unit[2^{60}]{B}$
+\end_inset
+
+.
+ Los prefijos también se aplican a bits.
+\end_layout
+
+\begin_layout Standard
+Las variables numéricas que ocupan más de un byte se pueden guardar en memoria
+ como:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+\emph on
+Little endian
+\series default
+\emph default
+: El byte menos significativo está en la posición de memoria más baja.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+\emph on
+Big endian
+\series default
+\emph default
+: En la posición más alta.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Note Comment
+status open
+
+\begin_layout Plain Layout
+La terminología procede de una escena de Los Viajes de Gulliver en la que
+ dos personas discuten sobre cuál es el extremo correcto para romper un
+ huevo, si el grande (
+\emph on
+big endian
+\emph default
+) o el pequeño (
+\emph on
+little endian
+\emph default
+).
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+El
+\series bold
+tiempo de ejecución
+\series default
+ o
+\series bold
+de respuesta
+\series default
+ es lo que tarda el computador en realizar una tarea, incluyendo E/S, mientras
+ que el
+\series bold
+tiempo de CPU
+\series default
+ se refiere solo al tiempo que tarda el procesador en realizar un cálculo,
+ y se calcula como:
+\begin_inset Formula
+\[
+{Tiempo}_{CPU}=\frac{{Instrucciones}_{APLICACIÓN}\cdot\frac{Ciclos(Media)}{Instrucción}}{Frecuencia\ procesador}
+\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Section
+Historia
+\end_layout
+
+\begin_layout Standard
+En 1791-1871, Babbage intentó diseñar una máquina mecánica capaz de resolver
+ problemas matemáticos, la cual nunca fue terminada.
+ Podemos dividir la historia de la informática en varias generaciones de
+ ordenadores:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Primera generación (1943-62):
+\series default
+ A principios de siglo, Fleming inventó la válvula de vacío, permitiendo
+ el desarrollo de la electrónica y los primeros ordenadores, de los que
+ destacamos:
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+
+\series bold
+Proyecto ENIAC (Eckert y Mauchly, 1943-46):
+\series default
+
+\emph on
+Electronic Numerical Integrator and Calculator
+\emph default
+:
+\begin_inset Formula $30$
+\end_inset
+
+ toneladas,
+\begin_inset Formula $\unit[180]{m^{2}}$
+\end_inset
+
+,
+\begin_inset Formula $18000$
+\end_inset
+
+ válvulas de vacío, frecuencia
+\begin_inset Formula $\unit[0.1]{MHz}$
+\end_inset
+
+, 20 registros de 10 dígitos decimales, programación cableando directamente,
+ 1900 sumas por segundo.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+UNIVAC:
+\series default
+
+\emph on
+Universal Automatic Computer
+\emph default
+.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Proyecto EDVAC (Von Neumann, 1952):
+\series default
+
+\emph on
+Electronic Discrete Variable Automatic Computer
+\emph default
+: El primero con programas almacenados; saltos condicionales, válvulas de
+ vacío.
+\end_layout
+
+\end_deeper
+\begin_layout Itemize
+
+\series bold
+Segunda generación (1962-67):
+\series default
+ Tras la invención del transistor en 1947; IBM System 360, PDP-8 (primer
+ minicomputador,
+\emph on
+Digital Equipment Corporation
+\emph default
+).
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Tercera generación (1967-78):
+\series default
+ En 1958 se inventa el circuito integrado, con el que se integran varios
+ elementos electrónicos en el mismo bloque.
+ Aparece la microprogramación (propuesta por Wilkes en los 50) y el primer
+ supercomputador (CDC 6000,
+\emph on
+Control Data Corporation
+\emph default
+, Seymour Cray, 1964), y en 1965 Wilkes propone el concepto de caché.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Cuarta generación (1971-):
+\series default
+ En 1971 se diseña el primer microprocesador: Intel 4004, con 2300 transistores.
+ Desde el 1981 y con el desarrollo de CPUs de Intel como el 8088 se desarrolla
+ la informática de consumo.
+\end_layout
+
+\begin_layout Standard
+Desde la mitad de los 90 con la aparición de la web, hay 3 grupos de ordenadores
+:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Ordenadores personales:
+\series default
+ PCs,
+\emph on
+tablets
+\emph default
+, etc., para uso individual, con buen rendimiento a bajo coste.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Servidores:
+\series default
+ Para muchos usuarios, buscan fiabilidad y escalabilidad.
+ Distinguimos de clase baja (servidores de archivos, de impresión, etc.),
+ media (centros de datos,
+\begin_inset Newline newline
+\end_inset
+
+
+\begin_inset Quotes cld
+\end_inset
+
+datacenters
+\begin_inset Quotes crd
+\end_inset
+
+) y alta (supercomputadores con aplicaciones científicas).
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Ordenadores embebidos
+\series default
+ o
+\series bold
+empotrados:
+\series default
+ Ordenadores de coches,
+\emph on
+gadgets
+\emph default
+, etc.
+ Para una sola aplicación, con grandes limitaciones, consumo de energía
+ y fiabilidad.
+\end_layout
+
+\begin_layout Standard
+En 2005, para ahorrar energía, aumentar el rendimiento sin aumentar el ciclo
+ de reloj y mejorar la fiabilidad del diseño, surgen los procesadores
+\series bold
+multinúcleo,
+\series default
+ aunque requieren
+\series bold
+programación paralela.
+\end_layout
+
+\begin_layout Section
+Organización de un PC
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Factor de forma
+\series default
+ o
+\series bold
+geometría:
+\series default
+ Largo, ancho, ubicación de agujeros de montaje, tipo y ubicación de conectores
+ y componentes, etc.
+ Normalmente ATX, aunque los servidores suelen usar factores de forma como
+ WTX, que tienen mayores dimensiones y permiten alojar varias CPUs y más
+ memoria.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+CPUs soportadas:
+\series default
+ Depende del tipo de
+\emph on
+socket
+\emph default
+ de CPU.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Módulos de memoria soportados:
+\series default
+ Tipos (DDR [
+\lang american
+Double Data Rate
+\lang spanish
+], DDR2, DDR3, DDR4...), frecuencia del reloj de la memoria, nº de ranuras,
+ capacidad máxima, etc.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Chipset:
+\series default
+ Formado por:
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+
+\series bold
+\lang american
+Memory Controller Hub
+\series default
+\lang spanish
+ o
+\series bold
+Northbridge:
+\series default
+ Comunica la CPU, tarjeta gráfica, módulos de memoria y el Southbridge.
+ Últimamente su funcionalidad se integra en el procesador.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+\lang american
+I/O Controller Hub
+\series default
+\lang spanish
+ o
+\series bold
+Southbridge:
+\series default
+ Comunica el resto de elementos del sistema.
+\end_layout
+
+\end_deeper
+\begin_layout Itemize
+
+\series bold
+Ranuras de expansión:
+\series default
+ PCI (más antiguo, siendo el más usado un bus de 32 bits a
+\begin_inset Formula $\unit[33]{MHz}$
+\end_inset
+
+), PCI-X (servidores,
+\begin_inset Formula $\unit[66]{MHz}$
+\end_inset
+
+ o más) y PCI Express (más rápido, hasta
+\begin_inset Formula $\unit[250]{MB/s}$
+\end_inset
+
+
+\lang american
+full duplex
+\lang spanish
+ por canal, con ranuras de hasta 16 canales).
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Interfaces de almacenamiento:
+\series default
+ ATA (paralela, hasta
+\begin_inset Formula $\unit[133]{MB/s}$
+\end_inset
+
+), actualmente sustituida por SATA (en serie, hasta
+\begin_inset Formula $\unit[150]{MB/s}$
+\end_inset
+
+ en la versión original), y SCSI (paralela), que será sustituida por SAS
+ (serie).
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Interfaces de audio y red.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Puertos de conexión periféricos
+\series default
+ como USB y Firewire.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Protección de la BIOS:
+\series default
+ La BIOS (
+\lang american
+Basic Input/Output System
+\lang spanish
+) se encarga de arrancar el PC y dar soporte para ciertos dispositivos de
+ entrada y salida.
+ También ofrece una interfaz gráfica para configurar parámetros del PC.
+ Actualmente la BIOS se almacena muchas veces en una Flash, por lo que se
+ puede actualizar, pero de hacerse incorrectamente podría dejar el equipo
+ inutilizable hasta cambiar el chip.
+ Actualmente está siendo sustituida por UEFI (
+\lang american
+Unified Extensible Firmware Interface
+\lang spanish
+).
+\end_layout
+
+\begin_layout Standard
+\align center
+\begin_inset Graphics
+ filename image.TZVI9Y.png
+ width 100text%
+
+\end_inset
+
+
+\end_layout
+
+\end_body
+\end_document
diff --git a/fc/n2.lyx b/fc/n2.lyx
new file mode 100644
index 0000000..7e41f7e
--- /dev/null
+++ b/fc/n2.lyx
@@ -0,0 +1,979 @@
+#LyX 2.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 544
+\begin_document
+\begin_header
+\save_transient_properties true
+\origin unavailable
+\textclass book
+\use_default_options true
+\maintain_unincluded_children false
+\language spanish
+\language_package default
+\inputencoding auto
+\fontencoding global
+\font_roman "default" "default"
+\font_sans "default" "default"
+\font_typewriter "default" "default"
+\font_math "auto" "auto"
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc false
+\font_osf false
+\font_sf_scale 100 100
+\font_tt_scale 100 100
+\use_microtype false
+\use_dash_ligatures true
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize default
+\spacing single
+\use_hyperref false
+\papersize default
+\use_geometry false
+\use_package amsmath 1
+\use_package amssymb 1
+\use_package cancel 1
+\use_package esint 1
+\use_package mathdots 1
+\use_package mathtools 1
+\use_package mhchem 1
+\use_package stackrel 1
+\use_package stmaryrd 1
+\use_package undertilde 1
+\cite_engine basic
+\cite_engine_type default
+\biblio_style plain
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\justification true
+\use_refstyle 1
+\use_minted 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\paragraph_indentation default
+\is_math_indent 0
+\math_numbering_side default
+\quotes_style swiss
+\dynamic_quotes 0
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Section
+Representación de enteros
+\end_layout
+
+\begin_layout Standard
+En un sistema de numeración posicional en base
+\begin_inset Formula $b$
+\end_inset
+
+,
+\begin_inset Formula $N=\dots+n_{2}b^{2}+n_{1}b^{1}+n_{0}b^{0}+n_{-1}b^{-1}+\dots$
+\end_inset
+
+.
+ Nos centraremos en las bases 2 (binario), 8 (octal), 10 (decimal) y 16
+ (hexadecimal).
+ Decimos
+\begin_inset Formula $011)_{2}=3)_{10}$
+\end_inset
+
+.
+ Para convertir de decimal a binario, dividimos sucesivamente entre 2 la
+ parte entera hasta obtener cociente binario, y tomamos los restos y el
+ último cociente.
+ Este es el bit más significativo, y el primer resto el menos significativo.
+ Para la parte fraccionaria, multiplicamos por 2 la parte fraccionaria del
+ número decimal, y el número binario se forma con lo que se va obteniendo.
+\end_layout
+
+\begin_layout Standard
+El desplazamiento a la izquierda (añadir un 0 a la izquierda) multiplica
+ por 2, y el desplazamiento a la derecha (eliminarlo) divide entre 2.
+ También encontramos las operaciones lógicas
+\family typewriter
+\lang american
+OR
+\family default
+\lang spanish
+ (
+\begin_inset Formula $0+0=0$
+\end_inset
+
+,
+\begin_inset Formula $0+1=1+0=1+1=1$
+\end_inset
+
+),
+\family typewriter
+\lang american
+AND
+\family default
+\lang spanish
+ (
+\begin_inset Formula $0\cdot0=0\cdot1=1\cdot0=0$
+\end_inset
+
+;
+\begin_inset Formula $1\cdot1=1$
+\end_inset
+
+) y
+\family typewriter
+\lang american
+NOT
+\family default
+\lang spanish
+ (
+\begin_inset Formula $\overline{0}=1$
+\end_inset
+
+;
+\begin_inset Formula $\overline{1}=0$
+\end_inset
+
+).
+\end_layout
+
+\begin_layout Standard
+Los valores sin signo se representan añadiendo
+\begin_inset Formula $0$
+\end_inset
+
+s a la izquierda del número en binario hasta completar los
+\begin_inset Formula $8$
+\end_inset
+
+,
+\begin_inset Formula $16$
+\end_inset
+
+,
+\begin_inset Formula $32$
+\end_inset
+
+,
+\begin_inset Formula $64$
+\end_inset
+
+, etc.
+ bits.
+ Para los enteros con signo existen las siguientes representaciones:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Signo y magnitud:
+\series default
+ El bit más significativo es de signo, y vale
+\begin_inset Formula $1$
+\end_inset
+
+ si el nº es negativo.
+ El problema es que el
+\begin_inset Formula $0$
+\end_inset
+
+ tiene dos representaciones.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Sesgada:
+\series default
+ Se añade una constante
+\begin_inset Formula $S$
+\end_inset
+
+ (sesgo) al nº a representar para hacerlo positivo.
+ Normalmente
+\begin_inset Formula $S=2^{\text{nº de bits}-1}$
+\end_inset
+
+.
+ Permite realizar restas como sumas.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Complemento a 2:
+\series default
+ Si tenemos
+\begin_inset Formula $n$
+\end_inset
+
+ bits, permite representar desde
+\begin_inset Formula $-2^{n-1}$
+\end_inset
+
+ hasta
+\begin_inset Formula $2^{n-1}-1$
+\end_inset
+
+.
+ Los positivos se representan normalmente.
+ Para los negativos, se niegan todos los bits (
+\family typewriter
+\lang american
+NOT
+\family default
+\lang spanish
+) del opuesto y se suma 1 al resultado.
+ Así, además de poder realizar restas como sumas (despreciando los bits
+ restantes), los números positivos se representan igual a como se representarían
+ sin signo.
+ Si el resultado de una operación sale del rango, se denomina
+\series bold
+desbordamiento
+\series default
+, y la operación no funciona.
+ Para representar un número con mayor cantidad de bits, se replica el bit
+ de signo hacia la izquierda.
+\end_layout
+
+\begin_layout Section
+Códigos intermedios
+\end_layout
+
+\begin_layout Standard
+Para expresar secuencias de bits de forma más concisa usamos la base
+\series bold
+octal
+\series default
+ (
+\begin_inset Formula $\unit[8=2^{3}]{dígitos}$
+\end_inset
+
+,
+\begin_inset Formula $\{0,\dots,7\}$
+\end_inset
+
+) agrupando los bits de 3 en 3 empezando por la coma decimal, así como la
+ base
+\series bold
+hexadecimal
+\series default
+ (
+\begin_inset Formula $\unit[16=2^{4}]{dígitos}$
+\end_inset
+
+,
+\begin_inset Formula $\{0,\dots,9,A,\dots,F\}$
+\end_inset
+
+), agrupándolos de 4 en 4.
+ Las conversiones se realizan de forma similar a la conversión entre binario
+ y decimal, pero con distinta base.
+\end_layout
+
+\begin_layout Section
+Representación de reales
+\end_layout
+
+\begin_layout Standard
+Se usa la
+\series bold
+notación exponencial
+\series default
+, en
+\series bold
+ coma flotante
+\series default
+ o en
+\series bold
+ punto flotante:
+\series default
+
+\begin_inset Formula $N=M\cdot B^{E}$
+\end_inset
+
+, donde
+\begin_inset Formula $M$
+\end_inset
+
+ es la mantisa,
+\begin_inset Formula $B=2$
+\end_inset
+
+ es la base y
+\begin_inset Formula $E$
+\end_inset
+
+ es el exponente.
+ Se representa en tres campos:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Signo (
+\begin_inset Formula $S$
+\end_inset
+
+):
+\series default
+
+\begin_inset Formula $0$
+\end_inset
+
+: positivo;
+\begin_inset Formula $1$
+\end_inset
+
+: negativo.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Exponente (
+\begin_inset Formula $E$
+\end_inset
+
+):
+\series default
+ Entero sesgado, con sesgo
+\begin_inset Formula $S=2^{n_{E}-1}-1$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Mantisa (
+\begin_inset Formula $M$
+\end_inset
+
+):
+\series default
+ Solo se representa la parte fraccionaria; la parte entera siempre es
+\begin_inset Formula $1$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+La norma IEEE 754 especifica reales de
+\series bold
+simple precisión
+\series default
+ (32 bits,
+\begin_inset Formula $n_{E}=8$
+\end_inset
+
+), y de
+\series bold
+doble precisión
+\series default
+ (64 bits,
+\begin_inset Formula $n_{E}=11$
+\end_inset
+
+).
+ Situaciones especiales:
+\end_layout
+
+\begin_layout Itemize
+Si
+\begin_inset Formula $E=0$
+\end_inset
+
+, el
+\begin_inset Formula $1$
+\end_inset
+
+ no está implícito.
+ Así, si
+\begin_inset Formula $E=0$
+\end_inset
+
+ y
+\begin_inset Formula $M=0$
+\end_inset
+
+, el número es
+\begin_inset Formula $0$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Itemize
+Si
+\begin_inset Formula $E=2^{n_{E}}-1$
+\end_inset
+
+, entonces
+\begin_inset Formula $n=+\infty\text{ o }-\infty$
+\end_inset
+
+ si
+\begin_inset Formula $M=0$
+\end_inset
+
+ o
+\begin_inset Formula $NaN$
+\end_inset
+
+ (
+\emph on
+\lang american
+Not a Number
+\emph default
+\lang spanish
+) si
+\begin_inset Formula $M\neq0$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+Cuando un número como el resultado de una operación no se puede representar
+ de forma exacta, se aplica el redondeo al par: Se toman los dos primeros
+ bits que
+\begin_inset Quotes cld
+\end_inset
+
+no caben
+\begin_inset Quotes crd
+\end_inset
+
+ en la mantisa (en orden,
+\series bold
+bit de redondeo
+\series default
+ y
+\series bold
+bit retenedor
+\series default
+).
+ Si el de redondeo es
+\begin_inset Formula $0$
+\end_inset
+
+, se trunca.
+ Si ambos son
+\begin_inset Formula $1$
+\end_inset
+
+, se redondea al alza.
+ En el caso restante, se redondea al par más cercano.
+\end_layout
+
+\begin_layout Standard
+Algunos números que en decimal son exactos no se pueden representar con
+ total exactitud porque en binario son periódicos, y algunas propiedades
+ como la asociatividad de la suma pueden no cumplirse debido a errores de
+ aproximación.
+\end_layout
+
+\begin_layout Section
+Representación de caracteres
+\end_layout
+
+\begin_layout Standard
+Para representar un carácter entre un conjunto de
+\begin_inset Formula $n$
+\end_inset
+
+ caracteres necesitamos
+\begin_inset Formula $\left\lceil \log_{2}n\right\rceil $
+\end_inset
+
+ bits, de forma que a cada carácter le corresponde una combinación.
+ El código es arbitrario, pero existen códigos normalizados:
+\end_layout
+
+\begin_layout Itemize
+El ASCII (
+\emph on
+\lang american
+American Standard Code for Information Interchange
+\emph default
+\lang spanish
+) codifica desde los años 60 la mayoría de caracteres del idioma inglés.
+ Usa
+\begin_inset Formula $7$
+\end_inset
+
+ bits para
+\begin_inset Formula $128$
+\end_inset
+
+ caracteres.
+ Para rellenar 1 byte, el bit adicional se usaba para control de errores.
+ Un ejemplo es el
+\series bold
+bit de paridad
+\series default
+, que garantiza que el total de unos en el byte debe ser par.
+ Si no lo es, ha habido un error en la transmisión.
+\end_layout
+
+\begin_layout Itemize
+Más recientemente, este último bit se usa para extensiones de determinados
+ idiomas.
+ El ISO-8859-1 (
+\lang american
+Latin
+\lang spanish
+ 1) incluye extensiones como acentos y
+\begin_inset Quotes cld
+\end_inset
+
+
+\begin_inset Formula $ñ$
+\end_inset
+
+
+\begin_inset Quotes crd
+\end_inset
+
+.
+ El ISO-8859-15 es similar pero añade el signo del euro.
+\end_layout
+
+\begin_layout Itemize
+El Unicode permite representar cualquier sistema de escritura del mundo.
+ Empezó siendo de 16 bits y actualmente define más de 1 millón de símbolos.
+ A cada uno se le asigna un
+\emph on
+\lang american
+code point
+\emph default
+\lang spanish
+ en el rango de
+\begin_inset Formula $0$
+\end_inset
+
+ a
+\begin_inset Formula $0x10FFFF$
+\end_inset
+
+, que se representa como U+número.
+ El conjunto de
+\emph on
+\lang american
+code points
+\emph default
+\lang spanish
+ que caben en 16 bits se denomina
+\emph on
+\lang american
+Basic Multilingual Plane
+\emph default
+\lang spanish
+ (BMP).
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+Los primeros 256
+\emph on
+\lang american
+code points
+\emph default
+\lang spanish
+ corresponden al ISO-8859-1.
+\end_layout
+
+\begin_layout Itemize
+Todos los
+\emph on
+\lang american
+code points
+\emph default
+\lang spanish
+ se representan como secuencias de bits de varias formas, como el UTF-8
+ y el UTF-16 (
+\emph on
+\lang american
+Unicode Transformation Format
+\emph default
+\lang spanish
+).
+ En UTF-8, cada carácter ASCII ocupa 1 byte, por compatibilidad.
+ Para otros caracteres, se usan de 2 a 4 bytes.
+\end_layout
+
+\begin_layout Itemize
+En UTF-16, para distinguir entre
+\emph on
+Big-Endian
+\emph default
+ y
+\emph on
+Little-Endian
+\emph default
+, se usa la llamada
+\emph on
+\lang american
+Byte Order Mark
+\emph default
+\lang spanish
+ (BOM) al principio del texto, codificado como
+\begin_inset Formula $0xFEFF$
+\end_inset
+
+.
+\end_layout
+
+\end_deeper
+\begin_layout Section
+Representación de imágenes
+\end_layout
+
+\begin_layout Standard
+Las imágenes se pueden representar mediante mapas de bits o de forma vectorial.
+ Un
+\series bold
+mapa de bits
+\series default
+ está formado por una matriz de píxeles
+\begin_inset Formula $M_{m,n}(px.)$
+\end_inset
+
+ con resolución
+\begin_inset Formula $n\times m$
+\end_inset
+
+, de los cuales a cada uno se le asocia un color o un tono de gris.
+ Se almacenan los píxeles sucesivamente.
+ Algunos formatos de mapa de bits son BMP (Windows), PICT (Macintosh), PPM
+ (
+\emph on
+\lang american
+Portable Pix-Map
+\emph default
+\lang spanish
+, de codificación sencilla) y JPEG (compresión normalmente con pérdida,
+ buena calidad para fotos).
+\end_layout
+
+\begin_layout Standard
+Mientras tanto, una
+\series bold
+imagen vectorial
+\series default
+ se representa como una colección de objetos como líneas, polígonos o textos,
+ que se modelan mediante vectores y ecuaciones que se evalúan al visualizar
+ las ecuaciones en pantalla.
+ Son adecuados para gráficos geométricos e ideales para aplicaciones CAD,
+ se pueden escalar a cualquier tamaño y suelen ocupar mucho menos espacio
+ que los mapas de bits.
+ Sin embargo, no son adecuadas para imágenes reales y suelen tener menor
+ calidad de imagen.
+ Algunos formatos son DXF (
+\emph on
+\lang american
+Document eXchange Format
+\emph default
+\lang spanish
+, para imágenes CAD), EPS (
+\emph on
+\lang american
+Encapsulated PostScript
+\emph default
+\lang spanish
+, de Adobe) y ODG (LibreOffice).
+ A menudo estos pueden incluir mapas de bits embebidos.
+\end_layout
+
+\begin_layout Standard
+El color se representa mediante escalas.
+ En
+\series bold
+escala de grises
+\series default
+, cada píxel toma un valor de gris.
+ El modelo de color
+\series bold
+RGB
+\series default
+ es aditivo (la suma de los colores genera el blanco), se usa sobre todo
+ en pantallas y representa la intensidad de rojo, verde y azul.
+ El modelo
+\series bold
+CMYK
+\series default
+ es sustractivo (la suma de los colores genera el negro), se usa principalmente
+ en impresoras y representa el cían, magenta, amarillo y negro.
+\end_layout
+
+\begin_layout Section
+Algunos formatos de archivo
+\end_layout
+
+\begin_layout Subsection
+PPM
+\end_layout
+
+\begin_layout Standard
+El
+\begin_inset Quotes cld
+\end_inset
+
+
+\lang american
+Portable Pixel Map
+\lang spanish
+
+\begin_inset Quotes crd
+\end_inset
+
+ está formado por un
+\begin_inset Quotes cld
+\end_inset
+
+número mágico
+\begin_inset Quotes crd
+\end_inset
+
+ que identifica el tipo de archivo (caracteres
+\series bold
+P6
+\series default
+), una cabecera y una ristra de bytes.
+ La cabecera indica, entre otras cosas, el ancho y alto de la imagen y el
+ valor máximo de un color, en decimal mediante caracteres ASCII (normalmente
+ estos son los tres últimos elementos de la cabecera, los cuales suelen
+ separarse por 0x0A).
+ La ristra de bytes contiene los píxeles uno por uno, de arriba a abajo
+ de izquierda a derecha, representados por los valores de intensidad del
+ rojo, verde y azul.
+ Normalmente el valor máximo es 255.
+ Si es más, se especifican en
+\emph on
+\lang american
+big endian
+\emph default
+\lang spanish
+.
+ Así, en general,
+\begin_inset Formula $\text{Offset}=(y\cdot\text{ancho}+x)\cdot3+\text{fin\_cabecera}+1$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Subsection
+HTML
+\end_layout
+
+\begin_layout Standard
+El
+\emph on
+\lang american
+HyperText Markup Language
+\emph default
+\lang spanish
+ se usa para crear páginas web.
+ Se usan etiquetas con forma
+\family typewriter
+<
+\emph on
+nombre
+\emph default
+
+\emph on
+attr
+\emph default
+="
+\emph on
+val
+\emph default
+" ...>...</
+\emph on
+nombre
+\emph default
+>
+\family default
+, como
+\family typewriter
+<b>Hola</b>
+\family default
+, que indica que el texto está en negrita.
+ Así:
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+<HTML>
+\family default
+ envuelve a todo el documento.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+<
+\lang american
+HEAD
+\lang spanish
+>
+\family default
+ contiene la cabecera.
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+
+\family typewriter
+<
+\lang american
+TITLE
+\lang spanish
+>
+\family default
+ indica el título.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+<
+\lang american
+META NAME="AUTHOR" CONTENT=
+\lang spanish
+"
+\family default
+(autor)
+\family typewriter
+">
+\family default
+.
+\end_layout
+
+\end_deeper
+\begin_layout Itemize
+
+\family typewriter
+<
+\lang american
+BODY
+\lang spanish
+>
+\family default
+ contiene al cuerpo del documento.
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+
+\family typewriter
+<P>
+\family default
+ indica un párrafo.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+<
+\lang american
+BR
+\lang spanish
+>
+\family default
+ introduce una línea en blanco.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+<A
+\lang american
+HREF
+\lang spanish
+="
+\family default
+(URL)
+\family typewriter
+">
+\family default
+ muestra un enlace.
+\end_layout
+
+\end_deeper
+\begin_layout Subsection
+ODF
+\end_layout
+
+\begin_layout Standard
+El formato
+\emph on
+\lang american
+OpenDocument
+\emph default
+\lang spanish
+ es un formato estándar y libre para documentos, hojas de cálculo, gráficos,
+ presentaciones...
+ Es un archivo comprimido en ZIP que contiene varios ficheros y directorios,
+ siendo los más importantes:
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+content.xml
+\family default
+: Almacena el contenido real del documento, salvo datos binarios como imágenes,
+ y su formato es similar al HTML aunque bastante más complejo.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+styles.xml
+\family default
+: Almacena los estilos para el formato y disposición del contenido, y existen
+ varios tipos como los de carácter, párrafo, etc.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+meta.xml
+\family default
+: Contiene metadatos como el autor, la última persona que lo modificó, fecha
+ de la última modificación, etc.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+settings.xml
+\family default
+: Incluye propiedades como el factor de zoom o la posición del cursor, pero
+ no afectan al contenido.
+\end_layout
+
+\end_body
+\end_document
diff --git a/fc/n3.lyx b/fc/n3.lyx
new file mode 100644
index 0000000..63254ed
--- /dev/null
+++ b/fc/n3.lyx
@@ -0,0 +1,1257 @@
+#LyX 2.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 544
+\begin_document
+\begin_header
+\save_transient_properties true
+\origin unavailable
+\textclass book
+\use_default_options true
+\maintain_unincluded_children false
+\language spanish
+\language_package default
+\inputencoding auto
+\fontencoding global
+\font_roman "default" "default"
+\font_sans "default" "default"
+\font_typewriter "default" "default"
+\font_math "auto" "auto"
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc false
+\font_osf false
+\font_sf_scale 100 100
+\font_tt_scale 100 100
+\use_microtype false
+\use_dash_ligatures true
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize default
+\spacing single
+\use_hyperref false
+\papersize default
+\use_geometry false
+\use_package amsmath 1
+\use_package amssymb 1
+\use_package cancel 1
+\use_package esint 1
+\use_package mathdots 1
+\use_package mathtools 1
+\use_package mhchem 1
+\use_package stackrel 1
+\use_package stmaryrd 1
+\use_package undertilde 1
+\cite_engine basic
+\cite_engine_type default
+\biblio_style plain
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\justification true
+\use_refstyle 1
+\use_minted 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\paragraph_indentation default
+\is_math_indent 0
+\math_numbering_side default
+\quotes_style swiss
+\dynamic_quotes 0
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Standard
+En electrónica digital distinguimos dos niveles de tensión (alta y baja),
+ que abstraemos con el sistema binario.
+ Tipos de circuitos:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Combinacionales (sin memoria):
+\series default
+ Las salidas solo dependen de las entradas actuales.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Secuenciales (con memoria):
+\series default
+ Las salidas dependen de las entradas y un valor almacenado (
+\series bold
+estado
+\series default
+).
+\end_layout
+
+\begin_layout Standard
+El
+\series bold
+álgebra de Boole
+\series default
+ sirve para expresar circuitos lógicos.
+ Tenemos las operaciones
+\begin_inset Formula $\overline{A}$
+\end_inset
+
+ (negación),
+\begin_inset Formula $A+B$
+\end_inset
+
+ (o) y
+\begin_inset Formula $A\cdot B$
+\end_inset
+
+ (y), y podemos expresar funciones de
+\begin_inset Formula $n$
+\end_inset
+
+ variables
+\begin_inset Formula $f:\{0,1\}^{n}\rightarrow\{0,1\}$
+\end_inset
+
+ como
+\begin_inset Formula $F(A,B,C)=\dots$
+\end_inset
+
+, o bien como tabla de verdad.
+ Si a cada entrada
+\begin_inset Formula $(A,B,C)$
+\end_inset
+
+ le asignamos su valor
+\begin_inset Formula $ABC_{b}$
+\end_inset
+
+, tenemos las
+\series bold
+formas normalizadas:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Suma de productos (minitérminos):
+\series default
+
+\begin_inset Formula $F(A,B,C)=\overline{A}\cdot B\cdot\overline{C}+\overline{A}\cdot B\cdot C+\dots=m_{2}+m_{3}+\dots=\sum m(2,3,\dots)$
+\end_inset
+
+.
+ Tomamos las combinaciones en las que la salida es 1.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Producto de sumas (maxitérminos):
+\series default
+
+\begin_inset Formula $F(A,B,C)=(A+B+C)\cdot(A+B+\overline{C})\cdot\dots=M_{0}\cdot M_{1}\cdot\dots=\prod M(0,1,\dots)$
+\end_inset
+
+.
+ Tomamos las combinaciones en las que la salida es 0 y negamos cada letra.
+\end_layout
+
+\begin_layout Section
+Mapas de Karnaugh
+\end_layout
+
+\begin_layout Standard
+Representación gráfica de una tabla de verdad.
+ Si la función tiene
+\begin_inset Formula $m+n$
+\end_inset
+
+ variables, realizamos una tabla
+\begin_inset Formula $2^{m}\times2^{n}$
+\end_inset
+
+ y en las cabeceras de fila y columna ponemos los nombres de estas variables
+ con sus posibles combinaciones, de forma que dos celdas adyacentes solo
+ se diferencien en 1 byte.
+ Ponemos
+\begin_inset Formula $1$
+\end_inset
+
+,
+\begin_inset Formula $0$
+\end_inset
+
+ o
+\begin_inset Formula $X$
+\end_inset
+
+ (valor no determinado) en cada celda según el valor de salida para las
+ variables.
+ Un cuadrado tiene
+\begin_inset Formula $n$
+\end_inset
+
+ cuadrados adyacentes (que se diferencien en solo una entrada), y estos
+ se combinan en grupos de
+\begin_inset Formula $2^{k}$
+\end_inset
+
+ celdas con igual valor de salida eliminando
+\begin_inset Formula $k$
+\end_inset
+
+ variables.
+ Debemos intentar cubrir todos los unos (o ceros) en el menor número de
+ grupos posible.
+ Una celda puede estar en varios grupos.
+\end_layout
+
+\begin_layout Standard
+Terminología:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Implicante:
+\series default
+ Producto de variables.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Implicante primo:
+\series default
+ Implicante no contenido en otro.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Implicante primo esencial:
+\series default
+ Implicante primo con al menos un 1 cubierto solo por él.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Cubierta:
+\series default
+ Conjunto de implicantes primos que cubren todos los unos.
+\end_layout
+
+\begin_layout Standard
+Al simplificar, las
+\begin_inset Formula $X$
+\end_inset
+
+ pueden interpretarse a conveniencia como 1s o 0s.
+\end_layout
+
+\begin_layout Section
+Puertas lógicas
+\end_layout
+
+\begin_layout Standard
+\align center
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="1">
+<features tabularvalignment="middle">
+<column alignment="center" valignment="top">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="3">
+<features tabularvalignment="middle">
+<column alignment="center" valignment="top">
+<column alignment="center" valignment="top">
+<column alignment="center" valignment="top">
+<row>
+<cell alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+\begin_inset Formula $A\cdot B$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+0
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+1
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+0
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+0
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+0
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+1
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+0
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+1
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+\begin_inset Graphics
+ filename AND_ANSI_Labelled.svg
+ height 14pt
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+AND
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="1">
+<features tabularvalignment="middle">
+<column alignment="center" valignment="top">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="3">
+<features tabularvalignment="middle">
+<column alignment="center" valignment="top">
+<column alignment="center" valignment="top">
+<column alignment="center" valignment="top">
+<row>
+<cell alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+\begin_inset Formula $A+B$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+0
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+1
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+0
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+0
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+1
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+1
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+1
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+1
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+\begin_inset Graphics
+ filename OR_ANSI_Labelled.svg
+ height 14pt
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+OR
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="1">
+<features tabularvalignment="middle">
+<column alignment="center" valignment="top">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="3">
+<features tabularvalignment="middle">
+<column alignment="center" valignment="top">
+<column alignment="center" valignment="top">
+<column alignment="center" valignment="top">
+<row>
+<cell alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+\begin_inset Formula $A\oplus B$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+0
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+1
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+0
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+0
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+1
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+1
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+1
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+0
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+\begin_inset Graphics
+ filename XOR_ANSI.svg
+ height 14pt
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+XOR
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\align center
+\begin_inset Tabular
+<lyxtabular version="3" rows="2" columns="1">
+<features tabularvalignment="middle">
+<column alignment="center" valignment="top">
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+\begin_inset Graphics
+ filename NAND_ANSI_Labelled.svg
+ height 14pt
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NAND
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="2" columns="1">
+<features tabularvalignment="middle">
+<column alignment="center" valignment="top">
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+\begin_inset Graphics
+ filename NOR_ANSI_Labelled.svg
+ height 14pt
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NOR
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="2" columns="1">
+<features tabularvalignment="middle">
+<column alignment="center" valignment="top">
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+\begin_inset Graphics
+ filename Xnor-gate-en.svg
+ height 14pt
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+XNOR
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\align center
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="1">
+<features tabularvalignment="middle">
+<column alignment="center" valignment="top">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+\begin_inset Formula $\overline{A}:$
+\end_inset
+
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="2" columns="2">
+<features tabularvalignment="middle">
+<column alignment="center" valignment="top">
+<column alignment="center" valignment="top">
+<row>
+<cell alignment="center" valignment="top" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+0
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+1
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+1
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+0
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+\begin_inset Graphics
+ filename Not-gate-en.svg
+ height 14pt
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NOT
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\align left
+A veces la puerta NOT se representa simplemente con el círculo pequeño,
+ pegado a otra puerta.
+ Las puertas NAND, NOR y XNOR equivalen a una puerta AND, OR o XOR, respectivame
+nte, seguida de una puerta NOT.
+ La mayoría de circuitos actualmente se encuentran en chips (circuitos integrado
+s) todo lo grandes o pequeños que queramos.
+ Según el número de puertas lógicas:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+SSI:
+\series default
+ 1-10 puertas.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+MSI:
+\series default
+ 10-100 puertas.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+LSI:
+\series default
+ 100-100000 puertas.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+VLSI:
+\series default
+ >100000 puertas.
+\end_layout
+
+\begin_layout Section
+Retardo
+\end_layout
+
+\begin_layout Standard
+Existe un
+\series bold
+retardo
+\series default
+ de algunos nanosegundos desde que cambia la señal a la entrada hasta que
+ se estabiliza la señal de salida en el valor deseado.
+ Podemos considerar que este es el máximo que debe
+\begin_inset Quotes cld
+\end_inset
+
+recorrer
+\begin_inset Quotes crd
+\end_inset
+
+ una señal dentro del circuito una vez sabemos el retardo de cada puerta
+ lógica.
+\end_layout
+
+\begin_layout Section
+Implementación con puertas NAND/NOR
+\end_layout
+
+\begin_layout Standard
+Para implementar una función en forma de suma de productos sólo con puertas
+ NAND, simplificamos, negamos dos veces y aplicamos De Morgan una vez, obteniend
+o un resultado que se puede interpretar con puertas NAND.
+ El proceso es el mismo para implementar una función en forma de producto
+ de sumas sólo con puertas NOR.
+\end_layout
+
+\begin_layout Section
+Bloques lógicos
+\end_layout
+
+\begin_layout Standard
+Son bloques que contienen una parte del circuito y se usan para simplificar
+ la representación.
+ Se representan como un cuadrado con flechas entrantes a un lado y salientes
+ a otro con un indicador textual del bloque.
+\end_layout
+
+\begin_layout Subsection
+Codificador
+\end_layout
+
+\begin_layout Standard
+Circuito con
+\begin_inset Formula $2^{n}$
+\end_inset
+
+ líneas de entrada y
+\begin_inset Formula $n$
+\end_inset
+
+ de salida.
+ Solo una línea de entrada se activa en cada momento y su nº se representa
+ en binario en la salida.
+\end_layout
+
+\begin_layout Standard
+\align center
+\begin_inset Graphics
+ filename image.RAWR9Y.png
+ width 60text%
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsection
+Decodificador
+\end_layout
+
+\begin_layout Standard
+Circuito con
+\begin_inset Formula $n$
+\end_inset
+
+ líneas de entrada y
+\begin_inset Formula $2^{n}$
+\end_inset
+
+ de salida que activa la línea de salida cuyo nº corresponde a la entrada
+ en binario.
+\end_layout
+
+\begin_layout Standard
+\align center
+\begin_inset Graphics
+ filename image.V5MB9Y.png
+ width 60text%
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Podemos implementar una función con un decodificador conectando las salidas
+ correspondientes a un
+\begin_inset Formula $F(\dots)=1$
+\end_inset
+
+ como entrada de una puerta OR.
+\end_layout
+
+\begin_layout Subsection
+Multiplexores
+\end_layout
+
+\begin_layout Standard
+Circuito con
+\begin_inset Formula $2^{n}$
+\end_inset
+
+ líneas de entrada de datos,
+\begin_inset Formula $n$
+\end_inset
+
+ de entrada de control y una de salida.
+ Las líneas de control seleccionan qué entrada de datos pasa a la salida.
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Graphics
+ filename image.0PXO9Y.png
+ width 100text%
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Podemos implementar funciones como multiplexores conectando a cada entrada
+ de datos el valor de la salida correspondiente y conectando las entradas
+ como entradas de control.
+ Si el multiplexor tiene una entrada de control menos que la función, elegimos
+ una variable que no se conecta como entrada de control, agrupamos en el
+ mapa de Karnaugh las celdas que tienen el resto de entradas iguales y como
+ entradas conectamos 0, 1 o la variable en cuestión, negada o no.
+\end_layout
+
+\begin_layout Subsection
+Memorias ROM
+\end_layout
+
+\begin_layout Standard
+Una
+\series bold
+ROM
+\series default
+ (
+\emph on
+Read Only Memory
+\emph default
+) es un circuito combinacional con
+\begin_inset Formula $m$
+\end_inset
+
+ entradas y
+\begin_inset Formula $n$
+\end_inset
+
+ salidas que almacena
+\begin_inset Formula $2^{m}$
+\end_inset
+
+ celdas (
+\series bold
+altura
+\series default
+ de la ROM) de
+\begin_inset Formula $n$
+\end_inset
+
+ bits (
+\series bold
+anchura
+\series default
+ de la ROM).
+ Se implementa con un plano AND con
+\begin_inset Formula $2^{m}$
+\end_inset
+
+ puertas de
+\begin_inset Formula $m$
+\end_inset
+
+ entradas cada una y un plano OR con
+\begin_inset Formula $n$
+\end_inset
+
+ puertas de salida:
+\end_layout
+
+\begin_layout Standard
+\begin_inset Graphics
+ filename image.Y3EN9Y.png
+ width 100text%
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Variantes:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+PROM:
+\series default
+
+\emph on
+Programmable ROM
+\emph default
+.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+EPROM:
+\series default
+
+\emph on
+Erasable PROM
+\emph default
+.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+EEPROM:
+\series default
+
+\emph on
+Electronically Erasable PROM
+\emph default
+.
+\end_layout
+
+\begin_layout Itemize
+Memorias flash (permiten borrado y reescritura por bloques, miles de veces).
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+PLA:
+\series default
+
+\emph on
+Programmable Logic Array
+\emph default
+.
+ Como una ROM, pero solo se implementan los productos (puertas AND) necesarios.
+ Útil cuando pocas combinaciones se usan realmente.
+\end_layout
+
+\end_body
+\end_document
diff --git a/fc/n4.lyx b/fc/n4.lyx
new file mode 100644
index 0000000..dbe8094
--- /dev/null
+++ b/fc/n4.lyx
@@ -0,0 +1,2821 @@
+#LyX 2.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 544
+\begin_document
+\begin_header
+\save_transient_properties true
+\origin unavailable
+\textclass book
+\use_default_options true
+\maintain_unincluded_children false
+\language spanish
+\language_package default
+\inputencoding auto
+\fontencoding global
+\font_roman "default" "default"
+\font_sans "default" "default"
+\font_typewriter "default" "default"
+\font_math "auto" "auto"
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc false
+\font_osf false
+\font_sf_scale 100 100
+\font_tt_scale 100 100
+\use_microtype false
+\use_dash_ligatures false
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize default
+\spacing single
+\use_hyperref false
+\papersize default
+\use_geometry false
+\use_package amsmath 1
+\use_package amssymb 1
+\use_package cancel 1
+\use_package esint 1
+\use_package mathdots 1
+\use_package mathtools 1
+\use_package mhchem 1
+\use_package stackrel 1
+\use_package stmaryrd 1
+\use_package undertilde 1
+\cite_engine basic
+\cite_engine_type default
+\biblio_style plain
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\justification true
+\use_refstyle 1
+\use_minted 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\paragraph_indentation default
+\is_math_indent 0
+\math_numbering_side default
+\quotes_style swiss
+\dynamic_quotes 0
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Standard
+Un sistema operativo es una capa de software situada entre el hardware y
+ las aplicaciones, que se encarga de
+\begin_inset Quotes cld
+\end_inset
+
+enmascarar
+\begin_inset Quotes crd
+\end_inset
+
+ la complejidad del software a usuarios y programadores, administrando:
+\end_layout
+
+\begin_layout Itemize
+La CPU, que se comparte entre los procesos y el núcleo del SO.
+\end_layout
+
+\begin_layout Itemize
+La memoria, que también se comparte, impidiendo que un proceso acceda a
+ la de otro indebidamente.
+\end_layout
+
+\begin_layout Itemize
+Los dispositivos, que también se comparten, protegiendo de accesos indebidos
+ y ofreciendo una interfaz uniforme a los distintos tipos de dispositivos.
+\end_layout
+
+\begin_layout Standard
+Ejemplos: Windows (2000, XP, Vista...), Linux (Ubuntu, Fedora...), Unix, FreeBSD,
+ MacOS, etc.
+ Una distribución de un sistema operativo incluye al núcleo del SO junto
+ con software adicional.
+ Tipos de SO: De propósito general, de servidores, de tiempo real, integrados,
+ de tarjeta inteligente, de supercomputadores, etc.
+ Conceptos:
+\end_layout
+
+\begin_layout Description
+Usuario Persona que trabaja en el sistema.
+\end_layout
+
+\begin_layout Description
+Sesión Periodo de tiempo en el que un usuario interactúa con el sistema.
+\end_layout
+
+\begin_layout Description
+Programa Código ejecutable almacenado en disco.
+ Concepto estático.
+\end_layout
+
+\begin_layout Description
+Proceso Programa en ejecución, que necesita recursos.
+ Concepto dinámico con estado cambiante.
+ Unidad de trabajo del SO.
+\end_layout
+
+\begin_layout Description
+Fichero Unidad lógica de almacenamiento de datos persistentes.
+ Secuencia de bytes con un formato determinado.
+\end_layout
+
+\begin_layout Description
+Programas
+\begin_inset space ~
+\end_inset
+
+del
+\begin_inset space ~
+\end_inset
+
+sistema Programas que suelen acompañar al SO, como administrador de archivos,
+ intérprete de comandos, programas para información de estado, aplicaciones
+ básicas o utilidades de programación.
+\end_layout
+
+\begin_layout Description
+
+\series bold
+Interfaz
+\begin_inset space ~
+\end_inset
+
+de
+\begin_inset space ~
+\end_inset
+
+usuario
+\series default
+Permite al usuario dar órdenes al sistema.
+\end_layout
+
+\begin_deeper
+\begin_layout Description
+
+\lang english
+GUI
+\begin_inset space ~
+\end_inset
+
+(
+\emph on
+Graphical
+\begin_inset space ~
+\end_inset
+
+User
+\begin_inset space ~
+\end_inset
+
+Interface
+\emph default
+)
+\lang spanish
+ Presenta una visión intuitiva del sistema.
+ Se basa en un gestor de ventanas que permite arrancar y terminar aplicaciones
+ y trabajar con varias al mismo tiempo.
+\end_layout
+
+\begin_layout Description
+Línea
+\begin_inset space ~
+\end_inset
+
+de
+\begin_inset space ~
+\end_inset
+
+comandos Órdenes tecleadas.
+ Permite llamar a
+\series bold
+órdenes internas
+\series default
+ reconocidas por el intérprete y
+\series bold
+programas externos
+\series default
+, en su propio ejecutable.
+\end_layout
+
+\end_deeper
+\begin_layout Section
+Funcionamiento de un SO
+\end_layout
+
+\begin_layout Subsection
+El arranque
+\end_layout
+
+\begin_layout Standard
+Al encender, la CPU ejecuta un programa en ROM (
+\series bold
+iniciador ROM
+\series default
+ o
+\series bold
+ROM BIOS
+\series default
+) que realiza un autodiagnóstico rápido del hardware y lee el
+\series bold
+disco
+\series default
+ el programa
+\series bold
+cargador
+\series default
+, que posiblemente permita seleccionar entre varios SO.
+ Este se encarga de cargar el kernel del SO en memoria, que toma el control,
+ establece sus estructuras internas básicas (tabla de procesos, memoria,
+ E/S, etc.) y ejecuta el
+\series bold
+proceso inicial
+\series default
+, que empieza a lanzar procesos auxiliares y
+\series bold
+demonios
+\series default
+ (para impresión, red, etc.) según esté configurado y, finalmente, lanza
+ uno (o varios) procesos de login, que permiten al usuario autenticarse
+ y comenzar a trabajar.
+\end_layout
+
+\begin_layout Subsection
+Interrupciones
+\end_layout
+
+\begin_layout Standard
+Las
+\series bold
+interrupciones
+\series default
+ son un mecanismo que permite pasar el control al núcleo del SO.
+ Tipos:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Interrupciones software
+\series default
+,
+\series bold
+llamadas al sistema
+\series default
+ o
+\series bold
+traps:
+\series default
+ Las inicia un proceso para llamar a un servicio del sistema.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Interrupciones hardware:
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+
+\series bold
+Excepciones
+\series default
+ o
+\series bold
+desvíos:
+\series default
+ Las produce un error en la ejecución, como una instrucción errónea, acceso
+ indebido, error numérico, etc.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Interrupciones
+\series default
+ propiamente dichas: Las causa un evento externo como el reloj del sistema
+ o un dispositivo de E/S, y llegan a la CPU mediante el bus de control.
+\end_layout
+
+\end_deeper
+\begin_layout Standard
+Algunos tipos de llamadas al sistema:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Procesos:
+\series default
+ Creación y terminación de procesos e hilos...
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Acceso a dispositivos:
+\series default
+ Apertura, cierre, lectura y escritura de ficheros y dispositivos de E/S...
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Gestión de la memoria:
+\series default
+ Solicitud y liberación de espacio...
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Manipulación del sistema de ficheros:
+\series default
+ Creación y borrado de ficheros y directorios, movimiento por directorios,
+ manipulación de permisos, acceso a metadatos...
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Otros:
+\series default
+ Sincronización y comunicación entre procesos...
+\end_layout
+
+\begin_layout Subsection
+El subsistema de gestión de procesos
+\end_layout
+
+\begin_layout Standard
+Los SO permiten la
+\series bold
+multiprogramación
+\series default
+, el uso compartido de la CPU entre varios procesos, y de esta forma permite
+ múltiples usuarios.
+ Periódicamente, el reloj interrumpe al proceso en ejecución para ejecutar
+ código del kernel, que cambia el
+\series bold
+contexto
+\series default
+ para ejecutar otro proceso.
+ Los procesos van avanzando con sensación de simultaneidad, y los que quedan
+ a la espera de E/S ceden la CPU a otro proceso.
+ La parte del kernel encargada de optimizar el uso de CPU es el
+\series bold
+planificador
+\series default
+ o
+\series bold
+\emph on
+scheduler
+\series default
+\emph default
+.
+\end_layout
+
+\begin_layout Standard
+Todos los procesos son creados por otro, llamado
+\series bold
+proceso padre
+\series default
+, siendo la raíz de la jerarquía el proceso inicial (en Linux,
+\family typewriter
+init
+\family default
+), y terminan de forma voluntaria o externa.
+ Los procesos también pueden ser monitorizados, y se autorizan intentos
+ de comunicación entre procesos.
+\end_layout
+
+\begin_layout Subsection
+El subsistema de gestión de memoria
+\end_layout
+
+\begin_layout Standard
+La RAM es compartida por todos los procesos y el propio kernel, el cual
+ aísla a unos procesos de otros ubicándolos en
+\series bold
+espacios de direccionamiento
+\series default
+ independientes.
+ Cada proceso tiene un
+\series bold
+espacio de direcciones virtual
+\series default
+, que es mapeado por el sistema (con ayuda del hardware) a distintas
+\series bold
+direcciones físicas
+\series default
+.
+ Si es necesario, parte del espacio virtual de un proceso se mantiene en
+ disco.
+ El SO se encarga de controlar las zonas de memoria libres y ocupadas, asignar
+ y recuperar espacio y mover datos y código entre la RAM y el disco según
+ sea necesario.
+\end_layout
+
+\begin_layout Subsection
+El subsistema de gestión de E/S
+\end_layout
+
+\begin_layout Standard
+El SO oculta las particularidades de distintos tipos de dispositivos.
+ Por ejemplo, mientras que el usuario ve un sistema de ficheros organizado
+ jerárquicamente, el disco en el que este está almacenado, con el que interactúa
+ el SO, se muestra como una inmensa tabla de sectores de 512 bytes cada
+ uno.
+\end_layout
+
+\begin_layout Standard
+Los dispositivos se manejan mediante una
+\series bold
+controladora
+\series default
+, un CI en el propio dispositivo que lo controla físicamente y acepta comandos
+ elementales, y un
+\series bold
+manejador de dispositivo
+\series default
+ o
+\series bold
+
+\begin_inset Quotes cld
+\end_inset
+
+driver
+\begin_inset Quotes crd
+\end_inset
+
+
+\series default
+, un software ejecutado por el kernel del SO en
+\series bold
+modo privilegiado
+\series default
+ (uso no restringido del procesador) que se comunica con la controladora.
+\end_layout
+
+\begin_layout Standard
+Las operaciones de E/S tardan un cierto tiempo en ejecutarse, por lo que
+ al enviar un comando a la controladora, el SO suspende el proceso en ejecución
+ y otorga la CPU a otro proceso, de forma que cuando termina la transferencia
+ de datos, se envía una
+\series bold
+interrupción
+\series default
+ al procesador, causando que el SO vuelva a tomar el control y despierte
+ al proceso bloqueado.
+\end_layout
+
+\begin_layout Section
+Linux
+\end_layout
+
+\begin_layout Standard
+Es un clon de Unix creado por Linus Torvalds en 1991.
+ Su código fuente está disponible bajo GPL (puede usarse, modificarse y
+ distribuirse libremente).
+ Es multiplataforma, pues funciona en gran cantidad de procesadores por
+ estar escrito casi todo en C, multiusuario, multitarea y multinúcleo.
+ Usa memoria virtual con espacios de direccionamiento diferentes, y soporta
+ múltiples sistemas de archivos, protocolos de red e infinidad de dispositivos.
+ Existen múltiples distribuciones y miles de aplicaciones disponibles, libres
+ y comerciales.
+\end_layout
+
+\begin_layout Standard
+Se accede al sistema mediante nombre de usuario y contraseña, y solo el
+ usuario
+\family typewriter
+root
+\family default
+ tiene el control total.
+ El
+\emph on
+prompt
+\emph default
+ de la línea de comandos, configurable, proporciona información del usuario,
+ la máquina y el directorio actual:
+\end_layout
+
+\begin_layout Standard
+\align center
+
+\family typewriter
+\emph on
+usuario
+\emph default
+@
+\emph on
+máquina
+\emph default
+:
+\emph on
+directorio_actual
+\emph default
+$
+\end_layout
+
+\begin_layout Standard
+La interfaz gráfica más común es X-Window, que actúa como proceso
+\begin_inset Quotes cld
+\end_inset
+
+servidor
+\begin_inset Quotes crd
+\end_inset
+
+ al que se conectan las aplicaciones gráficas
+\begin_inset Quotes cld
+\end_inset
+
+cliente
+\begin_inset Quotes crd
+\end_inset
+
+.
+ Su diseño en red permite ejecutar aplicaciones gráficas remotas siempre
+ que en nuestra máquina se ejecute el servidor X.
+ Este captura los eventos de teclado y ratón y los envía a la aplicación,
+ a la vez que muestra la salida gráfica de la misma en ventanas.
+ Se arranca con
+\family typewriter
+startx
+\family default
+, aunque la mayoría de distribuciones ya lo ejecutan al inicio.
+\end_layout
+
+\begin_layout Standard
+El principal cliente de X-Window es el gestor de ventanas, que determina
+ la apariencia del escritorio y ventanas.
+ En Linux son populares KDE y GNOME, que cuentan con aplicaciones de todo
+ tipo las cuales son compatibles entre sí por funcionar con X, aunque existen
+ muchos más, como otros más ligeros.
+\end_layout
+
+\begin_layout Subsection
+La línea de comandos
+\end_layout
+
+\begin_layout Standard
+La consola de texto, terminal, intérprete, línea de comandos o
+\emph on
+shell
+\emph default
+ de Linux es un programa denominado
+\family typewriter
+bash
+\family default
+.
+ Permite usar, configurar, personalizar y monitorizar el sistema de forma
+ muy avanzada, y realizar tareas repetitivas mediante
+\begin_inset Quotes cld
+\end_inset
+
+guiones shell
+\begin_inset Quotes crd
+\end_inset
+
+ o
+\emph on
+scripts
+\emph default
+, series de órdenes que se almacenan en un archivo para ser ejecutadas posterior
+mente con una sola orden.
+\end_layout
+
+\begin_layout Standard
+Los caracteres
+\family typewriter
+/|
+\backslash
+!?*<>&~()[];#
+\family default
+, así como el espacio, tienen un significado especial en
+\family typewriter
+bash
+\family default
+, por lo que no es conveniente usarlos en nombres de archivos y directorios.
+\end_layout
+
+\begin_layout Standard
+Los comandos se especifican como
+\begin_inset Quotes cld
+\end_inset
+
+
+\family typewriter
+<comando> [parámetros...]
+\family default
+
+\begin_inset Quotes crd
+\end_inset
+
+.
+ Los comandos que aceptan varias opciones (con
+\family typewriter
+-
+\begin_inset Formula $(letra)$
+\end_inset
+
+
+\family default
+) permiten ponerlos separados por espacios o juntos, en cuyo caso solo se
+ indica el guión en el primero.
+\end_layout
+
+\begin_layout Standard
+El tabulador completa una ruta o una orden cuando ya hemos escrito suficientes
+ caracteres para distinguirla.
+ Las teclas arriba y abajo permiten navegar por el historial de órdenes,
+ al que podemos acceder con
+\family typewriter
+CTRL-R
+\family default
+ y tecleando una subcadena, con el comando
+\family typewriter
+history
+\family default
+ o con
+\family typewriter
+!
+\emph on
+número_de_orden
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Standard
+Para evitar la interpretación de cualquier caracter reservado, se introduce
+
+\family typewriter
+
+\backslash
+
+\family default
+ delante o se encierra todo (el parámetro o parte de él) entre comillas
+ simples o dobles (la interpretación de estas, y del
+\family typewriter
+
+\backslash
+
+\family default
+, también pueden ser anuladas por
+\family typewriter
+
+\backslash
+
+\family default
+).
+\end_layout
+
+\begin_layout Standard
+Para salir de la línea de comandos se usa el comando interno
+\family typewriter
+exit
+\family default
+.
+ Linux tiene una serie de terminales virtuales.
+ Para acceder a una, se pulsa
+\family typewriter
+CTRL-ALT-F
+\begin_inset Formula $n$
+\end_inset
+
+
+\family default
+, donde
+\begin_inset Formula $n$
+\end_inset
+
+ es el número de la terminal.
+ En una de ellas está la interfaz gráfica, en el caso de Ubuntu, en la 7.
+ Para copiar y pegar en dichas terminales virtuales, se marca el texto a
+ copiar de principio a fin pulsando el botón izquierdo del ratón y después,
+ con el cursor situado donde se quiere pegar el texto, se pulsa el botón
+ central.
+\end_layout
+
+\begin_layout Subsection
+Órdenes de ayuda
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+man
+\emph on
+page
+\family default
+\emph default
+: Muestra un manual de la orden que se le indica como parámetro, del que
+ se sale pulsando
+\family typewriter
+q
+\family default
+.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+info
+\emph on
+page
+\family default
+\emph default
+: Misma función, aunque funciona de forma distinta.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+help
+\emph on
+command
+\family default
+\emph default
+: Muestra algo de información sobre un comando interno.
+\end_layout
+
+\begin_layout Itemize
+También se puede obtener información llamando al comando con
+\family typewriter
+-h
+\family default
+,
+\family typewriter
+-?
+\family default
+ o
+\family typewriter
+--help
+\family default
+.
+\end_layout
+
+\begin_layout Subsection
+El sistema de ficheros
+\end_layout
+
+\begin_layout Standard
+Todo el almacenamiento se considera un sistema único de ficheros jerárquico
+ que parte del directorio raíz (
+\family typewriter
+/
+\family default
+) y cuyas entradas pueden ser ficheros (regulares, por caracteres, por bloques
+ o enlaces simbólicos) u otros directorios.
+\end_layout
+
+\begin_layout Itemize
+Los
+\series bold
+enlaces simbólicos
+\series default
+ son
+\begin_inset Quotes cld
+\end_inset
+
+punteros
+\begin_inset Quotes crd
+\end_inset
+
+ a otras entradas del sistema de ficheros, que almacenan la ruta de estas.
+ Si el archivo original cambia de lugar o es eliminado, el enlace queda
+
+\begin_inset Quotes cld
+\end_inset
+
+colgando
+\begin_inset Quotes crd
+\end_inset
+
+, apuntado a nada.
+\end_layout
+
+\begin_layout Itemize
+Los
+\series bold
+enlaces físicos
+\series default
+ o
+\series bold
+duros
+\series default
+ se diferencian en que el fichero creado originalmente es indistinguible
+ del enlace, de forma que solo al borrar el último enlace se libera el espacio
+ en disco.
+ Sin embargo, no se puede crear un enlace físico a un fichero en otro disco.
+\end_layout
+
+\begin_layout Standard
+Al indicar una ruta, se usa el caracter
+\family typewriter
+/
+\family default
+ para separar directorios y ficheros.
+ El punto (
+\family typewriter
+.
+\family default
+) en un nombre de archivo se usa opcionalmente para agrupar archivos que
+ serán abiertos con la misma aplicación, diferenciando por
+\series bold
+extensiones
+\series default
+, y si se pone al principio de un archivo o directorio, este cuenta como
+
+\series bold
+oculto
+\series default
+.
+\end_layout
+
+\begin_layout Standard
+Una ruta que empiece por
+\family typewriter
+/
+\family default
+ es
+\series bold
+absoluta
+\series default
+ y parte de la raíz.
+ Cualquier otra ruta es
+\series bold
+relativa
+\series default
+ y parte del directorio actual.
+ El directorio actual se denota por
+\family typewriter
+.
+\family default
+, el directorio
+\begin_inset Quotes cld
+\end_inset
+
+padre
+\begin_inset Quotes crd
+\end_inset
+
+ de otro por
+\family typewriter
+..
+
+\family default
+ y el directorio
+\begin_inset Quotes cld
+\end_inset
+
+home
+\begin_inset Quotes crd
+\end_inset
+
+ (del usuario que ha iniciado sesión) por
+\family typewriter
+~
+\family default
+.
+ Los nombres de archivos diferencian mayúsculas de minúsculas.
+\end_layout
+
+\begin_layout Standard
+Los directorios importantes son los siguientes:
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+/bin
+\family default
+: Programas básicos del sistema.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+/usr/bin
+\family default
+: Aplicaciones y otros programas.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+/sbin
+\family default
+: Programas de administración (para superusuario).
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+/lib
+\family default
+: Bibliotecas del sistema.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+/usr/lib
+\family default
+ Bibliotecas de aplicaciones.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+/etc
+\family default
+: Ficheros de configuración.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+/home
+\family default
+: Directorios de usuarios.
+ En general, cada usuario tiene una carpeta
+\family typewriter
+/home/<user>
+\family default
+.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+/tmp
+\family default
+: Ficheros temporales.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+/dev
+\family default
+: Dispositivos.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+/proc
+\family default
+: Visión dinámica del sistema.
+\end_layout
+
+\begin_layout Standard
+Los dos últimos directorios mencionados no existen en el disco, sino que
+ el SO proporciona esta percepción por comodidad.
+ A veces
+\family typewriter
+/tmp
+\family default
+ tampoco está en disco, sino que solo existe en la RAM.
+\end_layout
+
+\begin_layout Standard
+Los discos
+\begin_inset Quotes cld
+\end_inset
+
+tal cual
+\begin_inset Quotes crd
+\end_inset
+
+ se representan como archivos, que habitualmente se denominan
+\family typewriter
+/dev/sda
+\family default
+,
+\family typewriter
+/dev/sdb
+\family default
+, etc., y sus particiones
+\family typewriter
+/dev/sda1
+\family default
+,
+\family typewriter
+/dev/sda2
+\family default
+, etc., y
+\family typewriter
+/dev/null
+\family default
+ indica un archivo virtual que descarta todo lo que se escribe en él.
+\end_layout
+
+\begin_layout Standard
+En
+\family typewriter
+bash,
+\family default
+si un parámetro es una ruta, podemos usar comodines, y el parámetro se sustituye
+ por la lista de rutas de archivo que cumplen la condición (si existen).
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+*
+\family default
+: Cero o más caracteres.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+?
+\family default
+: Un caracter.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+[
+\begin_inset Formula $a$
+\end_inset
+
+-
+\begin_inset Formula $z$
+\end_inset
+
+]
+\family default
+: Un caracter en el rango.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+[!
+\begin_inset Formula $a$
+\end_inset
+
+-
+\begin_inset Formula $z$
+\end_inset
+
+]
+\family default
+: Un caracter que no esté en el rango.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+{
+\begin_inset Formula $n1$
+\end_inset
+
+,
+\begin_inset Formula $n2$
+\end_inset
+
+,
+\begin_inset Formula $\dots$
+\end_inset
+
+
+\family default
+}: Cualquier secuencia de caracteres de la lista.
+\end_layout
+
+\begin_layout Standard
+Comandos:
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+pwd
+\family default
+.
+ Indica el directorio en que nos encontramos (ruta completa).
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+cd [-|dir]
+\family default
+.
+ Cambia al directorio especificado (o a
+\family typewriter
+~
+\family default
+).
+ Si se indica
+\family typewriter
+-
+\family default
+, vuelve al último directorio en que estuvimos.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+ls [-dlrRaStu] [dir]
+\family default
+.
+ Lista las entradas del directorio
+\family typewriter
+dir
+\family default
+ o del actual:
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+
+\family typewriter
+-l
+\family default
+: Formato largo.
+ En vez de mostrar solo el nombre, muestra el total y a con
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+ti
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+nua
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+ción, para cada archivo:
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+Tipo (
+\family typewriter
+-
+\family default
+: Archivo;
+\family typewriter
+d
+\family default
+: Directorio;
+\family typewriter
+l
+\family default
+: Enlace simbólico;
+\family typewriter
+c
+\family default
+: Fichero por caracteres;
+\family typewriter
+b
+\family default
+: Fichero por bloques) y permisos.
+\end_layout
+
+\begin_layout Itemize
+Número de enlaces duros.
+\end_layout
+
+\begin_layout Itemize
+Usuario.
+\end_layout
+
+\begin_layout Itemize
+Grupo.
+\end_layout
+
+\begin_layout Itemize
+Tamaño (bytes).
+\end_layout
+
+\begin_layout Itemize
+Fecha y hora de modificación.
+\end_layout
+
+\begin_layout Itemize
+Nombre.
+\end_layout
+
+\end_deeper
+\begin_layout Itemize
+
+\family typewriter
+-R
+\family default
+: Lista recursiva.
+ Muestra también el contenido de todos los subdirectorios.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+-a
+\family default
+: Muestra también las entradas ocultas (cuyo nombre empieza por
+\family typewriter
+.
+\family default
+).
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+-S
+\family default
+: Ordena por tamaño.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+-t
+\family default
+: Ordena por fecha y hora de última modificación.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+-u
+\family default
+: Ordena por fecha y hora de último acceso.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+-U
+\family default
+: Ordena por fecha y hora de creación.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+-r
+\family default
+: Invierte el orden escogido por
+\family typewriter
+-S|t|u|U
+\family default
+.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+-d
+\family default
+: Lista la entrada correspondiente al subdirectorio indicado en lugar de
+ las entradas que este contiene.
+\end_layout
+
+\end_deeper
+\begin_layout Itemize
+
+\family typewriter
+cat [file]
+\family default
+.
+ Muestra el contenido del
+\family typewriter
+file
+\family default
+, o de la entrada estándar.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+more [file]
+\family default
+.
+ Igual pero permite mostrarlo poco a poco.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+less [file]
+\family default
+.
+ Igual pero permite desplazarse arriba y abajo y buscar palabras con
+\family typewriter
+/
+\begin_inset Formula $palabra$
+\end_inset
+
+
+\family default
+.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+hexdump -C [file]
+\family default
+: Muestra el contenido de
+\family typewriter
+file
+\family default
+, o de la entrada estándar, en he
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+xa
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+de
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+ci
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+mal con formato.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+find [path] [match] [expr]
+\family default
+.
+ Busca en
+\family typewriter
+path
+\family default
+ (o en el directorio actual) y sus subdirectorios, archivos que cumplan
+ los criterios (
+\family typewriter
+match
+\family default
+) (o todos) y hace lo que indique la expresión (
+\family typewriter
+expr
+\family default
+) (o muestra el nombre por la salida).
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+Criterios:
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+
+\family typewriter
+-name
+\begin_inset Formula $nombre$
+\end_inset
+
+
+\family default
+: Nombre de la entrada (se pueden usar comodines, pero de forma que no los
+ sustituya la
+\emph on
+shell
+\emph default
+).
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+-iname
+\begin_inset Formula $nombre$
+\end_inset
+
+
+\family default
+: Similar pero sin distinguir mayúsculas y minúsculas.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+-user
+\begin_inset Formula $usuario$
+\end_inset
+
+
+\family default
+: Usuario al que pertenece.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+-group
+\begin_inset Formula $grupo$
+\end_inset
+
+
+\family default
+: Grupo al que pertenece.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+-type [c|b|d|l|f]
+\family default
+: Tipo de fichero (igual que en
+\family typewriter
+ls -l
+\family default
+, salvo que
+\family typewriter
+f
+\family default
+ para fichero regular).
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+-mtime [+|-]
+\begin_inset Formula $n$
+\end_inset
+
+
+\family default
+: Modificado hace más (
+\family typewriter
++
+\family default
+), menos (
+\family typewriter
+-
+\family default
+) o exactamente
+\begin_inset Formula $n$
+\end_inset
+
+ días.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+-atime [+|-]
+\begin_inset Formula $n$
+\end_inset
+
+
+\family default
+: Igual pero con el último acceso.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+-amin [+|-]
+\begin_inset Formula $n$
+\end_inset
+
+
+\family default
+: Igual que
+\family typewriter
+-atime
+\family default
+ pero en minutos.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+-size [+|-]
+\begin_inset Formula $n$
+\end_inset
+
+
+\family default
+: Tamaño de más (
+\family typewriter
++
+\family default
+), menos (
+\family typewriter
+-
+\family default
+) o exactamente
+\begin_inset Formula $512n$
+\end_inset
+
+ bytes.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+!
+\family default
+: Negación de lo siguiente.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+-o
+\family default
+: Disyunción lógica.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+-a
+\family default
+: Conjunción lógica (por defecto cuando se usan varios criterios).
+\end_layout
+
+\end_deeper
+\begin_layout Itemize
+Expresiones:
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+
+\family typewriter
+-printf
+\begin_inset Formula $\dots$
+\end_inset
+
+
+\family default
+: Imprime la secuencia de caracteres que se indica.
+ Secuencias de escape:
+\family typewriter
+%s
+\family default
+: Tamaño;
+\family typewriter
+%u
+\family default
+: Usuario;
+\family typewriter
+%p
+\family default
+: Ruta completa; etc.
+\end_layout
+
+\end_deeper
+\end_deeper
+\begin_layout Itemize
+
+\family typewriter
+which
+\emph on
+command
+\family default
+\emph default
+.
+ Muestra la ubicación en el sistema de ficheros de un comando externo.
+ La lista de directorios donde la
+\emph on
+shell
+\emph default
+ busca comandos externos se denomina
+\family typewriter
+PATH
+\family default
+ y se puede consultar con
+\family typewriter
+echo $PATH
+\family default
+.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+touch <file>
+\family default
+.
+ Crea un fichero o, si ya existía, actualiza su fecha de modificación.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+cp [-iprRu] srcfile ...
+ destfile|destdir
+\family default
+.
+ Copia un fichero a otro, o varios ficheros a un directorio.
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+
+\family typewriter
+-R
+\family default
+,
+\family typewriter
+-r
+\family default
+: Copia recursiva, para copiar directorios.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+-i
+\family default
+: Pide confirmación si el fichero de destino ya existía, para evitar sobreescrib
+irlo.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+-p
+\family default
+: Conserva la fecha de modificación al copiar.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+-u
+\family default
+: No se copia si el destino tiene una fecha de modificación igual o posterior
+ al origen.
+\end_layout
+
+\end_deeper
+\begin_layout Itemize
+
+\family typewriter
+mv srcfile|dirfile ...
+ destfile|destdir
+\family default
+.
+ Como
+\family typewriter
+cp
+\family default
+ pero cambia la posición del archivo en vez de copiarlo.
+ Se puede usar para cambiar el nombre de un fichero o directorio.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+rm [-ifrv] file|dir ...
+\family default
+.
+ Elimina ficheros y directorios.
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+
+\family typewriter
+-v
+\family default
+: Muestra los nombres de las entradas conforme se eliminan.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+-i
+\family default
+: Pide confirmación para cada entrada.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+-r
+\family default
+: Borrado recursivo, para eliminar directorios.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+-f
+\family default
+: Nunca pide confirmación.
+\end_layout
+
+\end_deeper
+\begin_layout Itemize
+
+\family typewriter
+mkdir dir
+\family default
+.
+ Crea un directorio vacío en la ruta especificada.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+rmdir dir
+\family default
+.
+ Elimina el directorio indiciado si está vacío.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+tar ...
+\family default
+.
+ Para manipulación de archivos.
+ Estos suelen tener la extensión
+\family typewriter
+.tar
+\family default
+ o
+\family typewriter
+.tar.gz
+\family default
+ (comprimido, también
+\family typewriter
+.tgz
+\family default
+).
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+
+\family typewriter
+tar c[zv][f archive] [files|dirs ...]
+\family default
+.
+ Comprime los ficheros y directorios indicados.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+tar t[zv][f archive]
+\family default
+.
+ Lista los contenidos del archivo.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+tar x[zv][f archive]
+\family default
+.
+ Extrae el contenido del archivo, recuperando también los permisos, estructura
+ de directorios, etc.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+z
+\family default
+: Indica compresión GZip (
+\family typewriter
+\SpecialChar endofsentence
+gz
+\family default
+).
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+v
+\family default
+: Muestra los archivos conforme se comprimen o descomprimen.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+f archive
+\family default
+: Indica el nombre del archivo.
+\end_layout
+
+\end_deeper
+\begin_layout Itemize
+
+\family typewriter
+ln [-s] target link
+\family default
+.
+ Crea un enlace llamado
+\family typewriter
+link
+\family default
+ al fichero
+\family typewriter
+target
+\family default
+.
+ Si
+\family typewriter
+link
+\family default
+ es un directorio existente, se crea dentro el enlace con el nombre de
+\family typewriter
+target
+\family default
+.
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+
+\family typewriter
+-s
+\family default
+: El enlace es simbólico (si no se especifica, se crea un enlace duro).
+ En tal caso, la ruta del fichero
+\family typewriter
+target
+\family default
+ se indica de forma relativa al directorio en que está
+\family typewriter
+link
+\family default
+.
+\end_layout
+
+\end_deeper
+\begin_layout Itemize
+
+\family typewriter
+df
+\family default
+.
+ Informa del espacio total y libre en todos los sistemas de archivos montados.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+du [-hs] dir ...
+\family default
+.
+ Muestra lo que ocupan realmente en el disco los directorios indicados junto
+ con todos sus ficheros y subdirectorios de forma recursiva.
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+
+\family typewriter
+-h
+\family default
+: Muestra en unidades más legibles como KB, MB o GB, en vez de en bloques
+ de 1024 bytes.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+-s
+\family default
+: Muestra sólo el tamaño total para cada argumento en lugar de mostrar lo
+ que ocuparía cada entrada dentro de estos.
+\end_layout
+
+\end_deeper
+\begin_layout Subsection
+Usuarios, grupos y permisos
+\end_layout
+
+\begin_layout Standard
+Existen tres tipos de
+\series bold
+usuarios
+\series default
+: normales; del sistema, vinculados a ciertas tareas del SO, y
+\family typewriter
+root
+\family default
+ o
+\series bold
+superusuario
+\series default
+, que tiene control total y en el prompt aparece con
+\family typewriter
+#
+\family default
+ en vez de
+\family typewriter
+$
+\family default
+.
+ La información sobre los usuarios se guarda en
+\family typewriter
+/etc/passwd
+\family default
+ y las contraseñas cifradas en
+\family typewriter
+/etc/shadow
+\family default
+.
+ Los usuarios se pueden organizar en
+\series bold
+grupos
+\series default
+, con diferentes permisos.
+ Cada usuario tiene un grupo principal, pero puede pertenecer a varios.
+ La información se almacena en
+\family typewriter
+/etc/group
+\family default
+.
+\end_layout
+
+\begin_layout Standard
+Un usuario puede tener tres permisos sobre un fichero o directorio:
+\end_layout
+
+\begin_layout Itemize
+\begin_inset Formula $r$
+\end_inset
+
+: Lectura.
+\end_layout
+
+\begin_layout Itemize
+\begin_inset Formula $w$
+\end_inset
+
+: Escritura.
+\end_layout
+
+\begin_layout Itemize
+\begin_inset Formula $x$
+\end_inset
+
+: Ejecución de un fichero o acceso al contenido de un directorio.
+\end_layout
+
+\begin_layout Standard
+Cada entrada del sistema de ficheros lleva asociado un usuario y un grupo,
+ y existen permisos distintos para el usuario, el grupo y
+\begin_inset Quotes cld
+\end_inset
+
+el resto
+\begin_inset Quotes crd
+\end_inset
+
+.
+ Se suelen indicar con tres secuencias
+\family typewriter
+rwx
+\family default
+ (para usuario, grupo y resto, en orden), de forma que para los permisos
+ que no se concedan se sustituye la letra por un
+\family typewriter
+-
+\family default
+.
+ Así es como se indica en
+\family typewriter
+ls -l
+\family default
+.
+ Comandos:
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+chmod perms file|dir
+\family default
+.
+ Cambia los permisos de un fichero o directorio.
+ El campo
+\family typewriter
+perms
+\family default
+ indica los permisos en octal, asignando 1's a los permisos que se desea
+ conceder y 0's al resto, en el orden en que se muestran en
+\family typewriter
+ls -l
+\family default
+.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+chown user file|dir
+\family default
+.
+ Cambia el propietario de un fichero o directorio.
+ Requiere permisos de superusuario.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+chgrp group file|dir
+\family default
+.
+ Igual pero con el grupo.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+whoami
+\family default
+.
+ Muestra nuestro nombre de usuario.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+who
+\family default
+.
+ Muestra los usuarios actualmente conectados, con sus horas y lugares (terminale
+s) de inicio de sesión.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+w
+\family default
+.
+ Similar, pero además muestra qué está ejecutando cada usuario.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+groups
+\family default
+.
+ Muestra a que grupos pertenecemos.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+sudo command pars ...
+\family default
+.
+ Ejecuta el comando dado como superusuario (pide contraseña).
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+
+\family typewriter
+-s
+\family default
+: Si se indica esto (sin especificar un comando), simplemente cambia a su
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+per
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+u
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+sua
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+rio.
+\end_layout
+
+\end_deeper
+\begin_layout Itemize
+
+\family typewriter
+login user
+\family default
+.
+ Cambia al usuario especificado (pide su contraseña).
+\end_layout
+
+\begin_layout Subsection
+Los procesos
+\end_layout
+
+\begin_layout Standard
+Los comandos separados por
+\family typewriter
+;
+\family default
+ se ejecutan uno detrás de otro, y situar
+\family typewriter
+&
+\family default
+ detrás de un comando (o entre dos comandos, en cuyo caso afecta al de la
+ izquierda) lanza un proceso en segundo plano, ejecutando lo que va delante
+ sin esperar o permitiendo usar la shell sin que termine de ejecutarse.
+
+\family typewriter
+bash
+\family default
+ muestra entonces el PID (identificador de proceso, entero único para cada
+ uno).
+
+\family typewriter
+CTRL-C
+\family default
+
+\begin_inset Quotes cld
+\end_inset
+
+mata
+\begin_inset Quotes crd
+\end_inset
+
+ a un proceso en primer plano, y
+\family typewriter
+CTRL-Z
+\family default
+ lo pausa (lo
+\begin_inset Quotes cld
+\end_inset
+
+duerme
+\begin_inset Quotes crd
+\end_inset
+
+).
+\end_layout
+
+\begin_layout Standard
+El directorio virtual
+\family typewriter
+/proc
+\family default
+ se consulta como un sistema de ficheros normal, pero realmente lo mantiene
+ el núcleo en tiempo real, y contiene un subdirectorio por cada PID de proceso
+ activo, con información sobre el mismo como ficheros abiertos, mapa de
+ memoria, etc.
+ También contiene:
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+/proc/cpuinfo
+\family default
+: Información sobre la CPU.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+/proc/meminfo
+\family default
+: Información sobre la memoria.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+/proc/version
+\family default
+: Versión del núcleo.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+/proc/sys
+\family default
+: Directorio con los parámetros de distintos subsistemas del núcleo.
+ Si se tienen los permisos, se puede hasta cambiar el comportamento del
+ núcleo en tiempo de ejecución.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+kill [-9] PID
+\family default
+: Lanza una señal para terminar el proceso con el PID indicado.
+ Este puede
+\begin_inset Quotes cld
+\end_inset
+
+capturar
+\begin_inset Quotes crd
+\end_inset
+
+ dicha señal evitando su finalización (puede ser útil en ciertos casos).
+ Si aun así se desea terminar dicho proceso, la opción
+\family typewriter
+-9
+\family default
+ manda una señal
+\begin_inset Quotes cld
+\end_inset
+
+no capturable
+\begin_inset Quotes crd
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+Cada proceso tiene una entrada estándar (
+\family typewriter
+stdin
+\family default
+, por defecto el teclado), una salida estándar (
+\family typewriter
+stdout
+\family default
+, por defecto la pantalla) y una salida estándar de error (
+\family typewriter
+stderr
+\family default
+).
+ En
+\family typewriter
+bash
+\family default
+, detrás de un comando,
+\family typewriter
+>
+\begin_inset Formula $archivo$
+\end_inset
+
+
+\family default
+ redirige
+\family typewriter
+stdout
+\family default
+ a un archivo, que sobreescribe en caso de existir, y
+\family typewriter
+>>
+\begin_inset Formula $archivo$
+\end_inset
+
+
+\family default
+ hace lo mismo pero, si el archivo ya existe, en vez de sobreescribirlo
+ añade la salida al final.
+ Igualmente,
+\family typewriter
+2>
+\family default
+ y
+\family typewriter
+2>>
+\family default
+ hacen lo mismo pero con
+\family typewriter
+stderr
+\family default
+, y <
+\family typewriter
+
+\begin_inset Formula $archivo$
+\end_inset
+
+
+\family default
+ toma
+\family typewriter
+stdin
+\family default
+ de ese archivo.
+\end_layout
+
+\begin_layout Standard
+Otra forma de comunicación entre procesos son las
+\series bold
+tuberías
+\series default
+ que permiten redireccionar el
+\family typewriter
+stdout
+\family default
+ de un fichero con el
+\family typewriter
+stdin
+\family default
+ del siguiente.
+ En
+\family typewriter
+bash
+\family default
+ se indican con
+\family typewriter
+/
+\family default
+.
+ Existe un repertorio de comandos útiles, llamados
+\series bold
+filtros
+\series default
+, especialmente diseñados para comunicarse mediante tuberías.
+\end_layout
+
+\begin_layout Standard
+Comandos:
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+ps [-Af]
+\family default
+.
+ Lista los procesos activos.
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+
+\family typewriter
+-A
+\family default
+: Muestra todos los procesos en lugar de solo los lanzados desde ese terminal.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+-f
+\family default
+: Muestra información adicional de interes, como el PID, el consumo de CPU,
+ el PID del proceso padre (PPID), hora de lanzamiento, etc.
+\end_layout
+
+\end_deeper
+\begin_layout Itemize
+
+\family typewriter
+top
+\family default
+.
+ Monitoriza en tiempo real los procesos activos, mostrando información de
+ ellos similar a
+\family typewriter
+ps -Af
+\family default
+.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+fg
+\family default
+: Pasa el último proceso pausado (despertándolo) o el último en ser iniciado
+ en segundo plano al primer plano.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+bg
+\family default
+: Despierta un proceso pausado pasándolo al segundo plano.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Note Comment
+status open
+
+\begin_layout Itemize
+
+\family typewriter
+sort [-n]
+\family default
+.
+ Ordena alfabéticamente las líneas de la entrada.
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+
+\family typewriter
+-n
+\family default
+: Ordena numéricamente.
+\end_layout
+
+\end_deeper
+\begin_layout Itemize
+
+\family typewriter
+grep <pattern>
+\family default
+.
+ Muestra solo las líneas de la entrada que contengan cierto patrón.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+cut -c
+\family default
+
+\begin_inset Formula $start$
+\end_inset
+
+
+\family typewriter
+-
+\begin_inset Formula $end$
+\end_inset
+
+
+\family default
+.
+ Muestra solo las columnas
+\begin_inset Formula $start$
+\end_inset
+
+–
+\begin_inset Formula $end$
+\end_inset
+
+ de cada fila.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+head [-
+\begin_inset Formula $n$
+\end_inset
+
+]
+\family default
+.
+ Muestra solo las primeras
+\begin_inset Formula $n$
+\end_inset
+
+ (10) líneas.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+tail [-
+\begin_inset Formula $n$
+\end_inset
+
+]
+\family default
+.
+ Muestra solo las últimas
+\begin_inset Formula $n$
+\end_inset
+
+ (10) líneas.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+uniq
+\family default
+.
+ Elimina líneas repetidas.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+wc [-lcw]
+\family default
+.
+ Cuenta las líneas (
+\family typewriter
+-l
+\family default
+), caracteres (
+\family typewriter
+-c
+\family default
+) y/o palabras (
+\family typewriter
+-w
+\family default
+).
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+tr
+\family default
+.
+ Ejemplos:
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+
+\family typewriter
+tr "-z" "A-Z"
+\family default
+.
+ Convierte minúsculas a mayúsculas.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+tr -d "0-9"
+\family default
+.
+ Elimina caracteres numéricos.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+tr -d -c "0-9"
+\family default
+.
+ Elimina caracteres no numéricos o espacios.
+\end_layout
+
+\end_deeper
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsection
+Otros comandos
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+date
+\family default
+.
+ Devuelve la fecha y hora actuales.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+cal
+\family default
+.
+ Calendario del mes/año actual.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+clear
+\family default
+.
+
+\begin_inset Quotes cld
+\end_inset
+
+Limpia
+\begin_inset Quotes crd
+\end_inset
+
+ la pantalla del terminal.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+reset
+\family default
+.
+ Resetea el terminal (para cuando se queda con caracteres extraños, como
+ tras hacer
+\family typewriter
+cat
+\family default
+ de un fichero binario).
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+expr
+\family default
+.
+ Para cálculos aritméticos.
+ Ejemplo:
+\family typewriter
+expr 101 + 12
+\family default
+.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+xargs ...
+\family default
+.
+ Toma lo que se le pasa como parámetros (algún comando), le añade lo que
+ le llega por la entrada estándar, lo interpreta como comando + parámetros
+ y lo ejecuta.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+split [-d] -b
+\begin_inset Formula $n$
+\end_inset
+
+ [file [prefix]]
+\family default
+.
+ Divide el archivo
+\family typewriter
+file
+\family default
+ (o la entrada estándar) en trozos de tamaño
+\begin_inset Formula $n$
+\end_inset
+
+ (por defecto bytes salvo que le suceda una
+\family typewriter
+k
+\family default
+ (KB), etc.) cuyo nombre empieza por
+\family typewriter
+prefix
+\family default
+ (o
+\family typewriter
+x
+\family default
+).
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+
+\family typewriter
+-d
+\family default
+: Usa sufijos numéricos en vez de por letras.
+\end_layout
+
+\end_deeper
+\end_body
+\end_document
diff --git a/fc/n5.lyx b/fc/n5.lyx
new file mode 100644
index 0000000..66b2ee2
--- /dev/null
+++ b/fc/n5.lyx
@@ -0,0 +1,1515 @@
+#LyX 2.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 544
+\begin_document
+\begin_header
+\save_transient_properties true
+\origin unavailable
+\textclass book
+\use_default_options true
+\maintain_unincluded_children false
+\language spanish
+\language_package default
+\inputencoding auto
+\fontencoding global
+\font_roman "default" "default"
+\font_sans "default" "default"
+\font_typewriter "default" "default"
+\font_math "auto" "auto"
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc false
+\font_osf false
+\font_sf_scale 100 100
+\font_tt_scale 100 100
+\use_microtype false
+\use_dash_ligatures false
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize default
+\spacing single
+\use_hyperref false
+\papersize default
+\use_geometry false
+\use_package amsmath 1
+\use_package amssymb 1
+\use_package cancel 1
+\use_package esint 1
+\use_package mathdots 1
+\use_package mathtools 1
+\use_package mhchem 1
+\use_package stackrel 1
+\use_package stmaryrd 1
+\use_package undertilde 1
+\cite_engine basic
+\cite_engine_type default
+\biblio_style plain
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\justification true
+\use_refstyle 1
+\use_minted 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\paragraph_indentation default
+\is_math_indent 0
+\math_numbering_side default
+\quotes_style swiss
+\dynamic_quotes 0
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Standard
+Una
+\series bold
+instrucción
+\series default
+ es un conjunto de símbolos que representan una operación a realizar por
+ la CPU, y un
+\series bold
+programa
+\series default
+ es un conjunto ordenado de instrucciones que debe ejecutar el computador
+ sobre unos datos para procesarlos y obtener un resultado.
+ Las instrucciones se almacenan en memoria principal y se ejecutan en secuencia,
+ salvo por instrucciones de salto.
+ Tipos de instrucciones:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+De movimiento de datos
+\series default
+ entre registros de la CPU y direcciones de memoria.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Aritmético-lógicas:
+\series default
+ Suma, resta, multiplicación, división, AND, OR, desplazamientos, ...
+ y operaciones de punto flotante.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Instrucciones de salto:
+\series default
+ Condicionales, incondicionales y de manejo de subrutinas.
+\end_layout
+
+\begin_layout Standard
+Las instrucciones se organizan en campos de bits, que indican, en un determinado
+ formato, la operación a ejecutar, los operandos de entrada y el lugar donde
+ dejar el resultado.
+ Distintos tipos de instrucción utilizan distintos formatos, pues necesitan
+ codificar información distinta.
+\end_layout
+
+\begin_layout Standard
+La CPU está formada por un
+\series bold
+camino de datos
+\series default
+ (
+\series bold
+CD
+\series default
+), encargado del procesamiento, y una
+\series bold
+unidad de control
+\series default
+ (
+\series bold
+UC
+\series default
+), que decodifica las instrucciones y
+\begin_inset Quotes cld
+\end_inset
+
+controla
+\begin_inset Quotes crd
+\end_inset
+
+ al camino de datos.
+ En todo momento, la UC mantiene un
+\series bold
+contador de programa
+\series default
+ (
+\series bold
+PC
+\series default
+,
+\emph on
+program counter
+\emph default
+ o
+\series bold
+IP
+\series default
+,
+\emph on
+instruction pointer
+\emph default
+) que contiene la dirección de la siguiente instrucción a ejecutar, y un
+
+\series bold
+registro de instrucción
+\series default
+ (
+\series bold
+RI
+\series default
+), que contiene la instrucción a ejecutar.
+ A mayor número de instrucciones mayor complejidad de la UC y más número
+ de bits necesarios en el campo de código.
+ Dos tendencias:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+RISC
+\series default
+ (
+\series bold
+\emph on
+Reduced Instruction Set Computers
+\series default
+\emph default
+): pocas instrucciones, sencillas y que se ejecutan en pocos ciclos.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+CISC
+\series default
+ (
+\series bold
+\emph on
+Complex Instruction Set Computers
+\series default
+\emph default
+): muchas instrucciones, complejas y que requieren muchos ciclos de reloj.
+\end_layout
+
+\begin_layout Section
+Jerarquía de traducción
+\end_layout
+
+\begin_layout Standard
+Las instrucciones de la CPU, llamadas
+\series bold
+instrucciones máquina
+\series default
+, se almacenan en binario.
+ Programarlas directamente en
+\series bold
+lenguaje
+\series default
+ o
+\series bold
+código máquina
+\series default
+ es muy difícil y propenso a errores, por lo que los
+\series bold
+lenguajes de programación
+\series default
+ representan las instrucciones de forma simbólica.
+ Existen principalmente dos tipos:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Lenguaje ensamblador:
+\series default
+ Instrucciones representadas simbólicamente, en ASCII, que se corresponden
+ directamente con instrucciones máquina y datos binarios.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Lenguajes de alto nivel:
+\series default
+ Permiten expresar los programas de forma más cercana a la forma de pensar
+ del programador, con variables, tipos de datos, funciones/procedimientos,
+ condiciones, bucles, etc.
+ Existen multitud de paradigmas (imperativo, orientado a objetos, funcional...)
+ y de lenguajes (C, C++, Java, Haskell, ...).
+ El lenguaje C, aun siendo de alto nivel, es más cercano a la máquina, y
+ es el lenguaje nativo de UNIX/Linux.
+\end_layout
+
+\begin_layout Standard
+El programa
+\series bold
+compilador
+\series default
+ traduce el código en un lenguaje de alto nivel a ensamblador, y el
+\series bold
+ensamblador
+\series default
+ convierte este código a un
+\series bold
+fichero objeto
+\series default
+, que contiene:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Segmento de código (
+\family typewriter
+.text
+\family default
+),
+\series default
+ con instrucciones máquina.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Segmento de datos (
+\family typewriter
+.data
+\family default
+),
+\series default
+ con enteros, reales en punto flotante, cadenas de caracteres, etc.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Información de reubicación:
+\series default
+ Para accesos a memoria, saltos, etc.
+ Necesaria a la hora de unir los distintos ficheros objeto.
+\end_layout
+
+\begin_layout Standard
+Una
+\series bold
+biblioteca
+\series default
+ (en los apuntes pone
+\series bold
+librería
+\series default
+ pero es una mala traducción) es un conjunto de módulos de código relacionados
+ que pueden ser usados en distintos programas.
+ Por ejemplo, en C existe una biblioteca estándar con funciones de E/S,
+ funciones matemáticas, etc., pero también existen bibliotecas para cálculo
+ matricial, gráficos en 3D, acceso a redes, etc.
+ Hay dos tipos:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Estáticas:
+\series default
+ El código se incluye dentro del fichero ejecutable final.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Dinámicas:
+\series default
+ El código no se incluye en el ejecutable, sino que este almacena la información
+ necesaria para cargar dicho código cuando va a ejecutarse.
+ Estas pueden ser usadas por varios ejecutables al mismo tiempo usando el
+ mismo espacio en memoria, y tampoco se desperdicia espacio en disco al
+ no tener que copiarse en cada ejecutable que las use, pero al cambiar el
+ ejecutable de máquina, este puede no funcionar por no tener una biblioteca
+ necesaria.
+\end_layout
+
+\begin_layout Standard
+El
+\series bold
+enlazador
+\series default
+ o
+\series bold
+\emph on
+linker
+\series default
+\emph default
+ une los distintos ficheros objeto generados junto con las funciones de
+ bibliotecas estáticas utilizadas, para generar un
+\series bold
+fichero ejecutable
+\series default
+ final.
+ Entonces el
+\series bold
+cargador
+\series default
+ o
+\series bold
+\emph on
+loader
+\series default
+\emph default
+, una parte del SO, lee este fichero del disco, lo ubica en memoria, realiza
+ las transformaciones necesarias y le pasa el control.
+\end_layout
+
+\begin_layout Section
+Ensamblador de x86-64
+\end_layout
+
+\begin_layout Standard
+Los archivos de código ensamblador están formados por segmentos como el
+ segmento de datos, indicado por
+\family typewriter
+.data
+\family default
+, y el segmento de código, indicado por
+\family typewriter
+.text
+\family default
+.
+ En cualquier punto se puede usar una
+\series bold
+etiqueta
+\series default
+ (identificador seguido de
+\family typewriter
+:
+\family default
+) para representar una dirección de memoria y referirnos a ella en otra
+ parte del código.
+\end_layout
+
+\begin_layout Standard
+El segmento de datos contiene directivas como
+\family typewriter
+.long
+\begin_inset Formula $n$
+\end_inset
+
+
+\family default
+, que indica un número de 32 bits, o
+\family typewriter
+.string "
+\begin_inset Formula $\dots$
+\end_inset
+
+"
+\family default
+ que genera una secuencia de caracteres acabada en un byte 0.
+ El segmento de código contiene instrucciones en ensamblador.
+ Sus operandos pueden ser:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Registros:
+\series default
+ Son de acceso muy rápido, al estar en la propia CPU, y contienen valores
+ intermedios de los cálculos.
+ En x86-64, son de 64 bits, y son los siguientes:
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+De uso general:
+\family typewriter
+RAX
+\family default
+,
+\family typewriter
+RBX
+\family default
+,
+\family typewriter
+RCX
+\family default
+,
+\family typewriter
+RDX
+\family default
+,
+\family typewriter
+R8
+\family default
+–
+\family typewriter
+R15
+\family default
+.
+\end_layout
+
+\begin_layout Itemize
+Índices:
+\family typewriter
+RSI
+\family default
+,
+\family typewriter
+RDI
+\family default
+, para acceder a posiciones de una tabla.
+\end_layout
+
+\begin_layout Itemize
+Para la pila:
+\family typewriter
+RSP
+\family default
+ (puntero de pila),
+\family typewriter
+RBP
+\family default
+ (puntero base de pila).
+\end_layout
+
+\begin_layout Itemize
+Puntero de instrucción:
+\family typewriter
+RIP
+\family default
+.
+\end_layout
+
+\begin_layout Itemize
+Registro de estado:
+\family typewriter
+RFLAGS
+\family default
+, contiene información sobre el estado del procesador y el resultado de
+ la ejecución de instrucciones, y afecta a los saltos condicionales.
+\end_layout
+
+\begin_layout Itemize
+También se puede trabajar con menos de 64 bits.
+ Así,
+\family typewriter
+EAX
+\family default
+ son los 32 bits inferiores de
+\family typewriter
+RAX
+\family default
+,
+\family typewriter
+AX
+\family default
+ los 16 bits inferiores de
+\family typewriter
+EAX
+\family default
+,
+\family typewriter
+AL
+\family default
+ los 8 bits inferiores y
+\family typewriter
+AH
+\family default
+ los 8 bits superiores de
+\family typewriter
+AX
+\family default
+.
+\end_layout
+
+\begin_layout Itemize
+En ensamblador, se representan con
+\family typewriter
+%
+\emph on
+nombre_en_minúsculas
+\family default
+\emph default
+.
+\end_layout
+
+\end_deeper
+\begin_layout Itemize
+
+\series bold
+Memoria:
+\series default
+ Hay hasta
+\begin_inset Formula $2^{64}$
+\end_inset
+
+ celdas de memoria direccionables de 1 byte.
+ Realmente los programas se mueven en un espacio virtual de direcciones
+ que el hardware transforma a direcciones físicas.
+ En x86-64 se puede trabajar muchas veces directamente en memoria, sin pasar
+ por registros, aunque el acceso es más lento.
+ En ensamblador, para hacer re
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+fe
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+ren
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+cia a una dirección de memoria, se usa
+\family typewriter
+\emph on
+dirección
+\emph default
+(
+\emph on
+%reg1
+\emph default
+,
+\emph on
+%reg2
+\emph default
+,
+\emph on
+potencia_de_2
+\emph default
+)
+\family default
+ para acceder a la celda
+\begin_inset Formula $dirección+\%reg1+\%reg2\cdot potencia\_de\_2$
+\end_inset
+
+, donde la potencia de 2 debe ser pequeña y todos los campos son opcionales.
+ Abreviaturas:
+\family typewriter
+(
+\emph on
+%reg1
+\emph default
+)
+\family default
+,
+\family typewriter
+\emph on
+dirección
+\family default
+\emph default
+\SpecialChar endofsentence
+
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Constantes:
+\series default
+ Números enteros directamente en el código, que en ensamblador se escriben
+
+\family typewriter
+$
+\begin_inset Formula $n$
+\end_inset
+
+
+\family default
+.
+ Se les suele llamar
+\series bold
+inmediatos
+\series default
+.
+\end_layout
+
+\begin_layout Standard
+A continuación vemos el
+\series bold
+repertorio de instrucciones
+\series default
+ o ISA (
+\emph on
+Instruction Set Architecture
+\emph default
+) de la arquitectura Intel x86-64, CISC, presente en los procesadores de
+ los PCs de 64 bits.
+ Los objetivos de un ISA son permitir que el diseño del procesador y del
+ compilador sean sencillos, maximizar el rendimiento y minimizar el coste.
+ En el caso de Intel, otro objetivo fue mantener la compatibilidad con procesado
+res anteriores, lo que llevó a soluciones menos elegantes y eficientes pero
+ ayudó a mantener la cuota de mercado.
+\end_layout
+
+\begin_layout Standard
+Algunos tipos de instrucciones:
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Aritmético-lógicas:
+\series default
+
+\family typewriter
+add
+\family default
+,
+\family typewriter
+sub
+\family default
+,
+\family typewriter
+imul
+\family default
+,
+\family typewriter
+and
+\family default
+,
+\family typewriter
+or
+\family default
+,
+\family typewriter
+xor
+\family default
+, ...
+
+\family typewriter
+\emph on
+(instr.)
+\emph default
+
+\emph on
+src
+\emph default
+,
+\emph on
+dst
+\family default
+\emph default
+.
+
+\begin_inset Formula $dst=dst\circ src$
+\end_inset
+
+.
+
+\end_layout
+
+\begin_deeper
+\begin_layout Enumerate
+
+\series bold
+Incrementos y decrementos:
+\series default
+
+\family typewriter
+inc
+\family default
+,
+\family typewriter
+dec
+\family default
+.
+
+\family typewriter
+\emph on
+(instr.)
+\emph default
+
+\emph on
+dst
+\family default
+\emph default
+.
+
+\begin_inset Formula $dst=dst\pm1$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Desplazamiento de bits:
+\series default
+
+\family typewriter
+shr
+\family default
+ (despl.
+ lógico a la der.),
+\family typewriter
+shl
+\family default
+ (despl.
+ lógico a la izq.),
+\family typewriter
+sar
+\family default
+ (despl.
+ aritmético a la der.),
+\family typewriter
+sal
+\family default
+ (despl.
+ aritmético a la izq.) ...
+
+\family typewriter
+\emph on
+(instr.)
+\emph default
+
+\emph on
+n
+\emph default
+,
+\emph on
+dst
+\family default
+\emph default
+.
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+
+\series bold
+De movimiento de datos:
+\series default
+
+\family typewriter
+mov
+\emph on
+src
+\emph default
+,
+\emph on
+dst
+\family default
+\emph default
+.
+
+\begin_inset Formula $dst\leftarrow src$
+\end_inset
+
+.
+
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Saltos incondicionales:
+\series default
+
+\family typewriter
+jmp
+\emph on
+pos
+\family default
+\emph default
+.
+
+\begin_inset Formula $\text{\texttt{RIP}}\leftarrow pos$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Saltos condicionales:
+\series default
+
+\family typewriter
+je
+\family default
+ (
+\begin_inset Formula $=$
+\end_inset
+
+),
+\family typewriter
+jne
+\family default
+ (
+\begin_inset Formula $\neq$
+\end_inset
+
+),
+\family typewriter
+jg
+\family default
+ (
+\begin_inset Formula $>$
+\end_inset
+
+),
+\family typewriter
+jge
+\family default
+ (
+\begin_inset Formula $\geq$
+\end_inset
+
+),
+\family typewriter
+jl
+\family default
+ (
+\begin_inset Formula $<$
+\end_inset
+
+),
+\family typewriter
+jle
+\family default
+ (
+\begin_inset Formula $\leq$
+\end_inset
+
+),
+\family typewriter
+ja
+\family default
+ (
+\begin_inset Formula $u>$
+\end_inset
+
+),
+\family typewriter
+jae
+\family default
+ (
+\begin_inset Formula $u\geq$
+\end_inset
+
+),
+\family typewriter
+jb
+\family default
+ (
+\begin_inset Formula $u<$
+\end_inset
+
+),
+\family typewriter
+jbe
+\family default
+ (
+\begin_inset Formula $u\leq$
+\end_inset
+
+)...
+ donde
+\begin_inset Formula $u$
+\end_inset
+
+ en la notación signfica
+\begin_inset Quotes cld
+\end_inset
+
+sin signo
+\begin_inset Quotes crd
+\end_inset
+
+.
+
+\family typewriter
+\emph on
+(instr.)
+\emph default
+
+\emph on
+pos
+\family default
+\emph default
+.
+ Si la instrucción anterior es
+\family typewriter
+cmp
+\emph on
+a
+\emph default
+,
+\emph on
+b
+\family default
+\emph default
+, entonces esta hace
+\begin_inset Formula $\text{\texttt{RIP}}\leftarrow pos$
+\end_inset
+
+ si y sólo si
+\begin_inset Formula $bRa$
+\end_inset
+
+ (al revés de lo lógico).
+\end_layout
+
+\begin_layout Standard
+La
+\series bold
+pila
+\series default
+ es una zona de memoria RAM gestionada como una estructura LIFO (
+\emph on
+Last In First Out
+\emph default
+) con dos operaciones posibles:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Apilar:
+\series default
+
+\family typewriter
+push
+\emph on
+src
+\family default
+\emph default
+, guarda el contenido de un registro sobre la cima de la pila.
+ Equivale a
+\family typewriter
+sub $8,%rsp
+\family default
+ +
+\family typewriter
+mov
+\emph on
+src
+\emph default
+,(%rsp)
+\family default
+.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Desapilar:
+\series default
+
+\family typewriter
+pop
+\emph on
+dst
+\family default
+\emph default
+, extrae lo que hay en la cima de la pila a un registro.
+ Equivale a
+\family typewriter
+mov (%rsp),
+\emph on
+dst
+\family default
+\emph default
+ +
+\family typewriter
+add $8,%rsp
+\family default
+.
+\end_layout
+
+\begin_layout Standard
+Una
+\series bold
+subrutina
+\series default
+ es una secuencia de instrucciones que recibe (o no) unos parámetros, realiza
+ alguna acción y devuelve (o no) un resultado al código que
+\begin_inset Quotes cld
+\end_inset
+
+llamó
+\begin_inset Quotes crd
+\end_inset
+
+ a la subrutina.
+ Para dar soporte a subrutinas se utiliza la pila, que se divide en
+\series bold
+marcos de pila
+\series default
+ o
+\series bold
+\emph on
+stack frames
+\series default
+\emph default
+, formados por:
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+8(%rbp)
+\family default
+: Dirección de retorno.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+(%rbp)
+\family default
+:
+\family typewriter
+%rbp
+\family default
+ del marco de pila anterior.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+-
+\begin_inset Formula $\dots$
+\end_inset
+
+(%rbp)
+\family default
+: Variables locales, valores de registros guardados (usados por la subrutina
+ anterior).
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
++
+\begin_inset Formula $\dots$
+\end_inset
+
+(%rsp)
+\family default
+: Argumentos de salida para otras subrutinas (hasta 6 se pasan por registros).
+\end_layout
+
+\begin_layout Standard
+Manejo implícito:
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+call
+\emph on
+sub
+\family default
+\emph default
+: Llama a una subrutina.
+ Equivale a
+\family typewriter
+push %rip
+\family default
+ +
+\family typewriter
+jmp
+\emph on
+sub
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+ret
+\family default
+: Vuelve de una subrutina.
+ Equivale a
+\family typewriter
+pop %rip
+\family default
+.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+leave
+\family default
+: Desapila todo el marco de pila salvo la dirección de retorno y restablece
+
+\family typewriter
+%rbp
+\family default
+.
+ Equivale a
+\family typewriter
+mov %rbp, %rsp
+\family default
+ +
+\family typewriter
+pop %rbp
+\family default
+.
+\end_layout
+
+\begin_layout Standard
+Los mnemónicos vistos de instrucciones que admiten parámetros de distintos
+ tamaños (todos salvo saltos y manejo implícito de subrutinas) realmente
+ son versiones generales de otros que son iguales pero se le añade una letra
+ detrás al nombre de la instrucción:
+\family typewriter
+b
+\family default
+ (byte) 8 bits,
+\family typewriter
+w
+\family default
+ (word) 16 bits,
+\family typewriter
+l
+\family default
+ (long) 32 bits y
+\family typewriter
+q
+\family default
+ (quad) 64 bits.
+ Otros caso es el de, por ejemplo,
+\family typewriter
+movslq
+\family default
+ (
+\emph on
+Move Signed Long to Quad
+\emph default
+, mover entero con signo de 32 bits a 64).
+\end_layout
+
+\begin_layout Section
+Codificación de las instrucciones
+\end_layout
+
+\begin_layout Standard
+Las instrucciones de x86-64 (CISC) son de longitud variable, mientras que
+ las de MIPS 32 (RISC) son todas de 32 bits.
+ En x86-64, el código de operación es el primer byte, en el que a veces
+ se codifica el registro involucrado.
+\end_layout
+
+\begin_layout Standard
+En un fichero objeto, el código se encuentra sin reubicar, de forma que
+ los campos de las instrucciones correspondientes a las direcciones de memoria
+ están vacíos o contienen direcciones relativas.
+ Tras el enlazado y la carga, el programa se dice que se
+\series bold
+reubica
+\series default
+, es decir, los campos de direcciones de memoria son modificados de acuerdo
+ a la posición de la memoria (virtual) en la que se carga el programa.
+ La memoria virtual es administrada por la
+\series bold
+unidad de manejo de memoria
+\series default
+ (
+\series bold
+MMU
+\series default
+).
+\end_layout
+
+\begin_layout Section
+Herramientas de GNU
+\end_layout
+
+\begin_layout Standard
+El comando
+\family typewriter
+gcc
+\family default
+ es el compilador GNU de C, el más utilizado en Linux.
+ El comando
+\family typewriter
+gcc main.c -o main
+\family default
+ compila el archivo
+\family typewriter
+main.c
+\family default
+ y genera el ejecutable
+\family typewriter
+main
+\family default
+.
+ Para generar sólo el código en ensamblador, usamos
+\family typewriter
+gcc main.c -fno-asynchronous-unwind-tables -S -o main.s
+\family default
+, que genera el archivo
+\family typewriter
+main.s
+\family default
+ en ensamblador, donde
+\family typewriter
+-S
+\family default
+ indica salida en ensamblador y
+\family typewriter
+-fno-asynchronous-unwind-tables
+\family default
+ sirve para generar un código bastante más limpio que es más útil para su
+ estudio.
+\end_layout
+
+\begin_layout Standard
+La opción
+\family typewriter
+-c
+\family default
+ indica salida como fichero objeto (sin enlazarlo).
+ Si hacemos
+\family typewriter
+gcc main.c -c -o main.o
+\family default
+ y luego
+\family typewriter
+objdump -d main.o
+\family default
+, nos aparece una versión desensamblada del fichero objeto en el que podemos
+ ver cómo este se organiza.
+ A continuación podemos enlazar el fichero objeto con
+\family typewriter
+gcc main.o -o main
+\family default
+.
+ Entonces podemos usar
+\family typewriter
+ldd main
+\family default
+ para ver la lista de bibliotecas dinámicas que necesita el programa y la
+ dirección virtual del programa a la que estas son mapeadas.
+ En particular, un programa sencillo necesita
+\family typewriter
+libc
+\family default
+, la biblioteca estándar de C, y
+\family typewriter
+linux-vdso
+\family default
+ y
+\family typewriter
+linux-x86-64
+\family default
+, que se corresponden con las llamadas al sistema de Linux.
+ La opción
+\family typewriter
+-static
+\family default
+ de
+\family typewriter
+gcc
+\family default
+ (
+\family typewriter
+gcc -static main.o -o main
+\family default
+) enlaza solo con bibliotecas estáticas (lo que aumenta considerablemente
+ el tamaño).
+\end_layout
+
+\begin_layout Standard
+La opción
+\family typewriter
+-g
+\family default
+ añade al ejecutable la información necesaria para depurar el programa (es
+ decir, cargarlo en memoria, reubicado, y ejecutarlo de manera controlada).
+ Entonces podemos usar
+\family typewriter
+gdb
+\family default
+, el depurador de GNU, llamándolo con
+\family typewriter
+gdb main
+\family default
+.
+ Este tiene su propio intérprete, en el cual:
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+l
+\family default
+ lista el código original.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+disassemble
+\emph on
+
+\begin_inset Formula $sub$
+\end_inset
+
+
+\family default
+\emph default
+ lista el desensamblado de la subrutina
+\begin_inset Formula $sub$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+x/
+\begin_inset Formula $n$
+\end_inset
+
+bx
+\begin_inset Formula $tag$
+\end_inset
+
+
+\family default
+ muestra los
+\begin_inset Formula $n$
+\end_inset
+
+ primeros bytes a partir de la etiqueta
+\begin_inset Formula $tag$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+x/
+\begin_inset Formula $n$
+\end_inset
+
+w
+\begin_inset Formula $tag$
+\end_inset
+
+
+\family default
+ hace lo mismo pero con los
+\begin_inset Formula $n$
+\end_inset
+
+ primeros
+\emph on
+words
+\emph default
+ (grupos de 4 bytes).
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+b
+\begin_inset Formula $n$
+\end_inset
+
+
+\family default
+ introduce un punto de interrupción (
+\emph on
+breakpoint
+\emph default
+) en la línea
+\begin_inset Formula $n$
+\end_inset
+
+ del programa.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+r
+\family default
+ ejecuta el programa.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+p
+\begin_inset Formula $var$
+\end_inset
+
+
+\family default
+ muestra el valor de una variable.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+c
+\family default
+ continúa la ejecución del programa por donde se dejó.
+\end_layout
+
+\end_body
+\end_document
diff --git a/fc/n6.lyx b/fc/n6.lyx
new file mode 100644
index 0000000..0d8903c
--- /dev/null
+++ b/fc/n6.lyx
@@ -0,0 +1,1436 @@
+#LyX 2.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 544
+\begin_document
+\begin_header
+\save_transient_properties true
+\origin unavailable
+\textclass book
+\use_default_options true
+\maintain_unincluded_children false
+\language spanish
+\language_package default
+\inputencoding auto
+\fontencoding global
+\font_roman "default" "default"
+\font_sans "default" "default"
+\font_typewriter "default" "default"
+\font_math "auto" "auto"
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc false
+\font_osf false
+\font_sf_scale 100 100
+\font_tt_scale 100 100
+\use_microtype false
+\use_dash_ligatures false
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize default
+\spacing single
+\use_hyperref false
+\papersize default
+\use_geometry false
+\use_package amsmath 1
+\use_package amssymb 1
+\use_package cancel 1
+\use_package esint 1
+\use_package mathdots 1
+\use_package mathtools 1
+\use_package mhchem 1
+\use_package stackrel 1
+\use_package stmaryrd 1
+\use_package undertilde 1
+\cite_engine basic
+\cite_engine_type default
+\biblio_style plain
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\justification true
+\use_refstyle 1
+\use_minted 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\paragraph_indentation default
+\is_math_indent 0
+\math_numbering_side default
+\quotes_style swiss
+\dynamic_quotes 0
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Standard
+
+\series bold
+Internet
+\series default
+ es una red compuesta de millones de dispositivos, conocidos como
+\series bold
+hosts
+\series default
+ o sistemas finales, que se conectan mediante distintos tipos de enlaces
+ con equipos de interconexión.
+ Un ejemplo de red es la RedIris, que conecta universidades y centros de
+ investigación y de
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+sa
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+rro
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+llo españoles.
+ Los
+\series bold
+hosts
+\series default
+ están en el extremo de la red, y pueden ser ordenadores, PDAs, teléfonos
+ móviles, sensores, etc.
+\end_layout
+
+\begin_layout Standard
+La red se organiza por
+\series bold
+protocolos
+\series default
+, que definen el formato y orden de mensajes enviados y recibidos entre
+ entidades y las acciones realizadas al enviar o recibir dichos mensajes.
+ Estos se organizan en una arquitectura por
+\series bold
+capas
+\series default
+, en las que cada capa realiza un conjunto de tareas relacionadas, proporcionand
+o servicios a la capa superior y usando los de la capa inferior.
+ Las entidades en la misma capa pero distintos hosts se llaman
+\series bold
+procesos pares
+\series default
+, y pueden comunicarse mediante unos protocolos.
+ Llamamos
+\series bold
+arquitectura de red
+\series default
+ al conjunto de capas y de protocolos usados en cada una.
+ Las capas más importantes, de abajo a arriba, son:
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Física:
+\series default
+ Transmisión de bits sobre el medio.
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Enlace:
+\series default
+ Transferencia de datos entre elementos conectados directamente.
+ Protocolos como
+\series bold
+PPP
+\series default
+ (
+\emph on
+Point to Point Protocol
+\emph default
+),
+\series bold
+Ethernet
+\series default
+ (IEEE 802.3),
+\series bold
+WiFi
+\series default
+ (IEEE 802.11) o
+\series bold
+HLDC
+\series default
+ (
+\emph on
+High-Level Data link Control
+\emph default
+).
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Red:
+\series default
+ Encaminamiento de paquetes del origen al destino.
+ Protocolo
+\series bold
+IP
+\series default
+ (
+\emph on
+Internet Protocol
+\emph default
+).
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Transporte:
+\series default
+ Transferencia de información entre procesos.
+ Proporciona una forma de distinguir aplicaciones dentro de una misma máquina.
+ Protocolos
+\series bold
+TCP
+\series default
+ (
+\emph on
+Transmission Control Protocol
+\emph default
+) y
+\series bold
+UDP
+\series default
+ (
+\emph on
+User Datagram Protocol
+\emph default
+).
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Aplicación:
+\series default
+ Transferencia de archivos, e-mail, web...
+ Protocolos como
+\series bold
+FTP
+\series default
+ (
+\emph on
+File Transfer Protocol
+\emph default
+),
+\series bold
+HTTP
+\series default
+ (
+\emph on
+HyperText Transfer Protocol
+\emph default
+),
+\series bold
+SMTP
+\series default
+ (
+\emph on
+Simple Mail Transfer Protocol
+\emph default
+),
+\series bold
+POP3
+\series default
+ (
+\emph on
+Post Office Protocol
+\emph default
+),
+\series bold
+BitTorrent
+\series default
+...
+\end_layout
+
+\begin_layout Section
+Medios de transmisión
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Par trenzado:
+\series default
+ Dos hilos de cobre dispuestos de forma helicoidal y cubiertos por un aislante
+ de plástico.
+ Permite frecuencias de hasta
+\begin_inset Formula $\unit[250]{MHz}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Cable coaxial:
+\series default
+ Núcleo de cobre recubierto por un aislante envuelto a su vez en un conductor
+ externo.
+ Permite mayor distancia de transmisión e inmunidad al ruido, con frecuencias
+ de hasta
+\begin_inset Formula $\unit[900]{MHz}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Fibra óptica:
+\series default
+ Núcleo de fibra de vidrio (mayor densidad) recubierto de cristal o plástico
+ (menor densidad).
+ La presencia o ausencia de luz codifica un bit.
+ Permite una mayor velocidad de transmisión (varios GHz y por tanto varios
+ Gbps), distancia e inmunidad al ruido, además de tener menor coste.
+\end_layout
+
+\begin_layout Section
+Redes de acceso
+\end_layout
+
+\begin_layout Standard
+Para acceso residencial:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Acceso vía módem:
+\series default
+ Hasta
+\begin_inset Formula $\unit[56]{kbps}$
+\end_inset
+
+ de ancho de banda, y no se puede hablar por teléfono mientras se usa.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+DSL
+\series default
+ (
+\emph on
+Digital Suscriber Line
+\emph default
+): Se basa en una línea dedicada hasta la central telefónica, permitiendo
+ combinar datos y voz.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+ADSL
+\series default
+ (
+\emph on
+Asymmetric DSL
+\emph default
+): Modalidad donde la velocidad de bajada y la de subida son distintas,
+ con hasta
+\begin_inset Formula $\unit[3,5]{Mbps}$
+\end_inset
+
+ en la línea ascendente (hacia Internet) y
+\begin_inset Formula $\unit[24]{Mbps}$
+\end_inset
+
+ en la descendente (hacia el host).
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+DOCSIS
+\series default
+ (
+\emph on
+Data Over Cable Service Interface Specification
+\emph default
+) sobre
+\series bold
+HFC
+\series default
+ (
+\emph on
+Hybrid Fibre Coaxial
+\emph default
+).
+ Une el hogar al router del ISP mediante cable y fibra, y al igual que ADSL,
+ es asimétrico.
+ El enlace hacia el router es compartido entre hogares, y estas redes son
+ desplegadas por compañías de cable y TV.
+\end_layout
+
+\begin_layout Standard
+Suele haber un módem ADSL o de cable, un router (normalmente con cortafuegos
+ y NAT), una red Ethernet y un punto de acceso WiFi, si bien varios de estos
+ elementos suelen agruparse.
+ Para acceso institucional, suele haber una red de área local conocida como
+
+\series bold
+intranet
+\series default
+, conectada a un router que conecta a Internet.
+ En ella se usa:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Ethernet:
+\series default
+ De 10 o
+\begin_inset Formula $\unit[100]{Mbps}$
+\end_inset
+
+ o 1 o
+\begin_inset Formula $\unit[10]{Gbps}$
+\end_inset
+
+.
+ Suele usarse sobre par trenzado, y los hosts suelen conectarse con conmutadores.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+WiFi:
+\series default
+ 802.11g (
+\begin_inset Formula $\unit[54]{Mbps}$
+\end_inset
+
+), 802.11n (
+\begin_inset Formula $\unit[600]{Mbps}$
+\end_inset
+
+) u 802.11ac (
+\begin_inset Formula $\unit[1]{Gbps}$
+\end_inset
+
+).
+\end_layout
+
+\begin_layout Standard
+Un ejemplo de red es la RedIris (red académica española), que comunica las
+ universidades y centros de I+D españoles.
+\end_layout
+
+\begin_layout Section
+Direccionamiento IP
+\end_layout
+
+\begin_layout Standard
+En IPv4 (versión 4), cada interfaz de red tiene asignada una dirección IP
+ de 32 bits, que se expresa como 4 números entre 0 y 255 separados por puntos.
+\end_layout
+
+\begin_layout Standard
+Internet lo forma una serie de subredes interconectadas, y cuando un host
+ desea enviar información a otro, lo que hace mediante
+\series bold
+paquetes
+\series default
+ IP, esta pasa normalmente a través de una serie de routers interconectados,
+ que deben decidir el siguiente router por el que enviarlo.
+ Hay dos formas de trabajar:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Conmutación de circuitos:
+\series default
+ Se establece un circuito por cada conexión, permitiendo la entrega en orden
+ y con calidad e servicio.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Conmutación de paquetes:
+\series default
+ Cada paquete se encamina por separado, por lo que la entrega puede ser
+ fuera de orden y no garantiza la calidad.
+\end_layout
+
+\begin_layout Standard
+Cualquier modalidad requiere
+\series bold
+algoritmos de encaminamiento
+\series default
+.
+\end_layout
+
+\begin_layout Standard
+En
+\series bold
+IPv4
+\series default
+ (versión 4), cada interfaz de red tiene asignada una dirección IP de 32
+ bits, que suele expresarse como 4 números de 0–255 separados por puntos.
+ Así, los routers suelen tener varias interfaces de red, mientras que los
+ hosts solo suelen tener una.
+ Una dirección IP se compone de dos partes:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Dirección de red
+\series default
+ (
+\begin_inset Quotes cld
+\end_inset
+
+netid
+\begin_inset Quotes crd
+\end_inset
+
+): Los
+\begin_inset Formula $n$
+\end_inset
+
+ bits más significativos.
+ El tamaño es variable, y una dirección IP de la forma
+\begin_inset Formula $xxx.xxx.xxx.xxx/nn$
+\end_inset
+
+ indica que la dirección de red ocupa
+\begin_inset Formula $nn$
+\end_inset
+
+ bits.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Dirección de host
+\series default
+ (
+\begin_inset Quotes cld
+\end_inset
+
+hostid
+\begin_inset Quotes crd
+\end_inset
+
+): El resto de bits.
+\end_layout
+
+\begin_layout Standard
+Anteriormente existían 4 tipos de redes (A, B, C y D) dependiendo del tamaño
+ de la dirección de red, pero actualmente existe el
+\series bold
+CIDR
+\series default
+ (
+\emph on
+Classless InterDomain Routing
+\emph default
+) que permite que el tamaño de la dirección de red sea arbitrario.
+ La
+\series bold
+máscara de red
+\series default
+ es un número (con forma de dirección IP) que se forma tomando un netid
+ formado solo por 1's y un hostid formado solo por 0's.
+\end_layout
+
+\begin_layout Standard
+El organismo encargado de asignar direcciones de red es el
+\series bold
+ICANN
+\series default
+ (
+\emph on
+Internet Corporation for Assigned Names and Numbers
+\emph default
+).
+ Cuando dos hosts están en la misma red, pueden comunicarse directamente.
+ En otro caso, el host origen envía el paquete al
+\series bold
+router
+\series default
+ por defecto (cuya dirección IP debe saber), que actúa como nexo de unión,
+ y la dirección IP del paquete es la del host destino.
+ Direcciones especiales:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Dirección de red:
+\series default
+ El hostid está formado solo por 0's.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Dirección de
+\emph on
+broadcast
+\series default
+\emph default
+ (difusión): El hostid está formado solo por 1's, y el paquete llega a todos
+ los miembros de la red.
+\end_layout
+
+\begin_layout Standard
+
+\series bold
+DHCP
+\series default
+ (
+\emph on
+Dynamic Host Configuration Protocol
+\emph default
+) permite configurar hosts de forma dinámica, de forma que el router asigna
+ al host una dirección IP, máscara de subred y dirección del router por
+ defecto.
+ Además, la mayoría de routers pueden reenviar las solicitudes de configuración
+ DHCP, por lo que no es necesario tener servidores DHCP en cada subred.
+ Esquema general:
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Descubrimiento:
+\series default
+ El host envía una solicitud de descubrimiento DHCP por su interfaz.
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Oferta:
+\series default
+ El router responde informando de su IP y ofreciendo otra, con fecha de
+ caducidad pero renovable.
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Solicitud:
+\series default
+ El host solicita usar dicha IP.
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+Confirmación:
+\series default
+ El router confirma que el host pueda usarla.
+\end_layout
+
+\begin_layout Standard
+La limitación en el rango de direcciones IP ha llevado a la creación del
+ protocolo
+\series bold
+IPv6
+\series default
+ (IP versión 6), que permite asignar
+\begin_inset Formula $2^{128}$
+\end_inset
+
+ direcciones, reduce el tamaño de las tablas de enrutamiento, simplifica
+ el protocolo para permitir el procesamiento más rápido de paquetes, proporciona
+ seguridad al incluir cabeceras de autenticación y confidencialidad, presta
+ más atención al tipo de servicio (especialmente al tiempo real), posibilita
+ que un host sea móvil sin cambiar su dirección y elimina la sobrecarga
+ del NAT al haber direcciones suficientes.
+\end_layout
+
+\begin_layout Section
+TCP y UDP
+\end_layout
+
+\begin_layout Standard
+Las distintas capas de una arquitectura pueden ofrecer distintos tipos de
+ servicio:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Servicio orientado a conexión:
+\series default
+ Hay un establecimiento de conexión, una fase de transmisión de datos y
+ una liberación de la conexión, de forma que los datos se entregan en orden.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Servicio no orientado a conexión:
+\series default
+ Cada mensaje se procesa de forma independiente, incluyendo en cada uno
+ la información de direccionamiento, y no se garantiza la entrega en orden.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Servicio confirmado:
+\series default
+ El emisor tiene constancia de la recepción correcta de los datos.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Servicio no confirmado:
+\series default
+ No hay tal confirmación.
+\end_layout
+
+\begin_layout Standard
+El término
+\series bold
+QoS
+\series default
+ (
+\emph on
+Quality of Service
+\emph default
+) se refiere a las tecnologías que garantizan la transmisión de datos en
+ un tiempo dado, y es importante para vídeo y voz.
+ En la capa de transporte se tienen dos protocolos:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+TCP:
+\series default
+ Orientado a conexión.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+UDP:
+\series default
+ No orientado a conexión, para cuando prima el tiempo de llegada de los
+ datos sobre la posible existencia de fallos en la transmisión.
+\end_layout
+
+\begin_layout Standard
+Estos servicios permiten además definir un
+\series bold
+puerto
+\series default
+ de origen y uno de destino, que identifican a los distintos procesos existentes
+ en los hosts que se comunican.
+\end_layout
+
+\begin_layout Standard
+Por otro lado, dada la limitación en el rango de direcciones IP, y que normalmen
+te en entornos domésticos solo se asigna una IP pública, en estos se suele
+ usar
+\series bold
+NAT
+\series default
+ (Network Address Translation).
+ Los hosts usan direcciones IP en una serie de
+\series bold
+rangos de direcciones privadas
+\series default
+ definidos, que para el exterior se traducen en una única IP pública, pues
+ el router se encarga de la conversión.
+\end_layout
+
+\begin_layout Standard
+Cuando un host envía información (por TCP o UDP) a una dirección IP pública,
+ lo hace con un puerto de origen y uno de destino.
+ El router entonces hace corresponder un puerto de su IP pública al conjunto
+ de la IP privada y el puerto de origen, y envía entonces la información
+ a la IP y el puerto de destino desde su propia IP pública y el puerto que
+ ha asignado.
+ Cuando recibe la respuesta, le llega con el puerto asignado como puerto
+ de destino, de forma que puede redirigir la información a la IP privada
+ y puerto correspondientes.
+\end_layout
+
+\begin_layout Section
+Capa de aplicación
+\end_layout
+
+\begin_layout Standard
+Existen dos modelos mediante los cuales los hosts pueden conectarse en la
+ capa de aplicación:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Modelo cliente-servidor:
+\series default
+ Un servidor, siempre conectado, posiblemente replicado y con dirección
+ IP fija, atiende solicitudes de los clientes, que no se comunican entre
+ sí directamente y que posiblemente tengan direcciones IP dinámicas.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+\emph on
+Peer to peer
+\emph default
+ (P2P):
+\series default
+ Los
+\emph on
+peers
+\emph default
+ se comunican entre sí directamente.
+ Pueden estar conectados intermitentemente y tener direcciones IP dinámicas.
+ Este es un esquema muy escalable, pero difícil de gestionar.
+\end_layout
+
+\begin_layout Standard
+
+\series bold
+BitTorrent
+\series default
+ es un sistema de distribución de ficheros P2P.
+ Está formado por una serie de
+\series bold
+\emph on
+trackers
+\series default
+\emph default
+, que registran a los
+\emph on
+peers
+\emph default
+ que participan en un
+\emph on
+torrent
+\emph default
+, y
+\series bold
+\emph on
+torrents
+\series default
+\emph default
+, grupos de
+\emph on
+peers
+\emph default
+ que intercambian partes de un fichero.
+\end_layout
+
+\begin_layout Standard
+El protocolo
+\series bold
+DNS
+\series default
+ (
+\emph on
+Domain Name System
+\emph default
+) es un servicio de traducción de nombres de host a direcciones IP, implementada
+ como una base de datos distribuida mediante una jerarquía de servidores
+ DNS y un protocolo de consulta a nivel de aplicación sobre UDP en el puerto
+ 53.
+ Los hosts tienen configurado un servidor DNS primario, al que realizan
+ las consultas, y si no obtienen respuesta consultan al servidor DNS secundario.
+ Este servicio también permite realizar traducciones inversas, gestionar
+ alias (distintos nombres para la misma máquina) y otras acciones relacionadas
+ con el correo electrónico o balanceo de carga.
+\end_layout
+
+\begin_layout Standard
+
+\series bold
+FTP
+\series default
+ (
+\emph on
+File Transfer Protocol
+\emph default
+) es un protocolo cliente-servidor utilizado para transferencia de archivos.
+\end_layout
+
+\begin_layout Standard
+La
+\series bold
+\emph on
+World Wide Web
+\series default
+\emph default
+ es el conjunto de servidores web de todo el mundo.
+ Una página web está formada por objetos como páginas HTML, imágenes,
+\emph on
+applets
+\emph default
+ Java, archivos de audio...
+ en la cual una página HTML base incluye referencias a otros objetos.
+ Cada objeto está identificado por una
+\series bold
+URL
+\series default
+ (
+\emph on
+Uniform Resource Locator
+\emph default
+), cuya sintaxis básica es:
+\family typewriter
+\emph on
+protocolo
+\emph default
+://
+\emph on
+nombre_de_host
+\emph default
+/
+\emph on
+ruta_de_objeto
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Standard
+Se usa el protocolo
+\series bold
+HTTP
+\series default
+ (
+\emph on
+HyperText Transfer Protocol
+\emph default
+), en el que el cliente solicita al servidor objetos web, los recibe y los
+ muestra.
+ Se basa en TCP, y habitualmente el servidor escucha en el puerto 80.
+ Existen dos tipos de mensajes HTTP:
+\emph on
+request
+\emph default
+ y
+\emph on
+response
+\emph default
+, basados principalmente en ASCII.
+ Ejemplo:
+\end_layout
+
+\begin_layout Standard
+\begin_inset Tabular
+<lyxtabular version="3" rows="2" columns="2">
+<features tabularvalignment="middle">
+<column alignment="left" valignment="top" width="35col%">
+<column alignment="left" valignment="top" width="60col%">
+<row>
+<cell alignment="left" valignment="top" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\series bold
+HTTP
+\emph on
+request
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="left" valignment="top" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\series bold
+HTTP
+\emph on
+response
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="left" valignment="top" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family typewriter
+GET /somedir/page.html HTTP/1.1
+\family default
+ (línea de solicitud: GET, POST...)
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+Host: www.someschool.edu
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+User-agent: Mozilla/4.0
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+Connection: close
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+Accept-language: fr
+\end_layout
+
+\begin_layout Plain Layout
+(cabecera)
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="left" valignment="top" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family typewriter
+HTTP/1.1 200 OK
+\family default
+ (línea de estado)
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+Connection close
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+Date: Thu, 06 Aug 2008 12:00:15 GMT
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+Server: Apache/1.3.0 (Unix)
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+Last-Modified: Mon, 22 Jun 2008
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+ETag: "7ec0a8-141-4912c4c727280"
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+Accept-Ranges: bytes
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+Content-Length: 321
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+Content-Type: text/html; charset=es_ES.UTF-8
+\end_layout
+
+\begin_layout Plain Layout
+(cabecera)
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Phantom VPhantom
+status open
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+
+\family typewriter
+...
+
+\family default
+ (datos solicitados)
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+El
+\series bold
+correo electrónico
+\series default
+ funciona mediante los siguientes componentes:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Agentes de usuario:
+\series default
+ Lectores de correo, usados por los clientes para editar, enviar y recibir
+ mensajes.
+ Eudora, Outlook, elm, Mozilla Thunderbird...
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Servidores de correo:
+\series default
+ Mantienen los mensajes que llegan a los usuarios (anteriormente solo los
+ que no se habían enviado ya a estos), y también se encargan del envío.
+\end_layout
+
+\begin_layout Itemize
+Protocolos:
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+
+\series bold
+SMTP
+\series default
+ (
+\emph on
+Simple Mail Transfer Protocol
+\emph default
+): Para el envío de mensajes, tanto desde los agentes como entre servidores.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+POP
+\series default
+ (
+\emph on
+Post Office Protocol
+\emph default
+): El agente se conecta con el servidor, se autentica y descarga los mensajes.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+IMAP
+\series default
+ (
+\emph on
+Internet Message Access Protocol
+\emph default
+): Más complejo que POP, permite manipular mensajes sobre el servidor.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+HTTP:
+\series default
+ La mayoría de servidores de correo tienen una interfaz web.
+\end_layout
+
+\end_deeper
+\begin_layout Standard
+Así, si Alicia quiere mandar un mensaje a Bob, su agente envía un mensaje
+ a su servidor de correo con SMTP, y este queda a la cola para ser enviado.
+ Entonces el servidor de Alicia manda el mensaje por SMTP al de Bob, que
+ lo coloca en su buzón, de forma que Bob puede acceder mediante su agente
+ con POP o IMAP.
+\end_layout
+
+\begin_layout Section
+Comandos de Linux
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+ifconfig
+\family default
+:
+\begin_inset Quotes cld
+\end_inset
+
+Interface configure
+\begin_inset Quotes crd
+\end_inset
+
+.
+ Para configurar la interfaz
+\family typewriter
+eth0
+\family default
+ de un host con dirección
+\family typewriter
+192.168.0.21/24
+\family default
+,
+\family typewriter
+sudo ifconfig eth0 192.168.0.21 netmask 255.255.255.0 up
+\family default
+ o
+\family typewriter
+sudo ifconfig eth0 192.168.0.21/24 up
+\family default
+ (realmente no hace falta el
+\family typewriter
+up
+\family default
+ porque es la opción por defecto).
+ Para apagarla,
+\family typewriter
+sudo ifconfig eth0 down
+\family default
+.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+route
+\family default
+: Para establecer el router por defecto,
+\family typewriter
+sudo route add default gw 192.168.0.1 eth0
+\family default
+.
+ Para visualizar las tablas de enrutamiento de nuestro sistema,
+\family typewriter
+route -n
+\family default
+.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+dhclient
+\emph on
+interfaz
+\family default
+\emph default
+: Configura una interfaz de red con DHCP.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+ping
+\emph on
+servidor
+\family default
+\emph default
+: Envía paquetes a un servidor esperando a que responda, como herramienta
+ de diagnóstico.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+host
+\family default
+: Para obtener la IP correspondiente a un nombre de host, junto con posible
+ información como alias,
+\family typewriter
+host
+\emph on
+nombre_host
+\family default
+\emph default
+.
+ Para realizar una consulta inversa,
+\family typewriter
+host
+\emph on
+dir_IP
+\family default
+\emph default
+.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+nm-tool
+\family default
+: Muestra la lista de servidores DNS configurados.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+telnet
+\emph on
+servidor
+\emph default
+ [
+\emph on
+puerto
+\emph default
+]
+\family default
+: Abre conexiones TCP.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+netstat
+\family default
+:
+\family typewriter
+-net
+\family default
+ muestra todas las conexiones TCP abiertas;
+\family typewriter
+-a
+\family default
+ muestra todas las co
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+ne
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+xio
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+nes y puertos TCP y UDP incluyendo las que están
+\begin_inset Quotes cld
+\end_inset
+
+en escucha
+\begin_inset Quotes crd
+\end_inset
+
+, y
+\family typewriter
+-n
+\family default
+ muestra los puertos con su identificación numérica y no de texto.
+\end_layout
+
+\end_body
+\end_document