Derek Girardi Spring 2012 Opus
Potato
Hi i'm Derek. I am a big enthusiast in music, I play drums and several other instruments. Not only do i like playing music i enjoy listening to it as well. I'm also big on video games. I mainly play on xbox but i have recently decided to finally start building my own desktop so soon i'll be a PC gamer as well. Well its obvious i am interested in computers and programming because that is what i'm going for. This is my 4th semester of corning and i wish it was my last but i might be stuck here for one more semester. But after these semesters i plan to transfer to RIT or Binghamton. Hopefully i will get my masters in programming but i still have a long ways to go.
This week for computer organization we really just talked about what was going to happen. We explained how logic gates work and how we were to use them. We counted 0 to 64 in binary to show how we would count through with these gates. With the gates we are going to create a computer simulator, slowly creating flip-flops, registers and programs to run through it for us to see if it works. So with the logic gates, we first made up truth tables to show how they would operate. Then we began creating the codes for the in linux.
In HPC, i started looking at a script that is for the mac labs up in corning. The script is flawed and does not work. It is made to add, change and delete usernames for the students that use them. So for one of my projects in this class, im going to understand how this works and hope that i can fix it so they are able to use it.
This week of class we went more into the computer simulation. We talked a little on logic gates and the logic of using them. We have header files and programs that will run these gates. But soon we learned to combine them to create more gates and to start the creation of flip flops. Its a combination of logic gates that will create certain outputs that we could use for bigger parts of the computer. It would either give out a value or an undefined, and these two outputs could be used for our advantage when creating this computer simulation. In HPC, I am still looking over the script. Its a little more confusing then originally thought of so it might take longer then usual. I am beginning to have more of an idea of how this script works but not enough to actually start manipulating it in any way.
In this week of computer organization, we talked more on flip flops and latches. We talked a little on how they worked and how they will be implemented into registers, the place where most of our memory runs through and gets stored. I actually taught the class this week of how a register should work. I didnt have a complete concept of it but i knew enough to actually talk to the class about it. The register can output and input data many different ways, like serial to parallel or parallel to parallel. With these different ways, we can manipulate on how we want our data to be outputted. So we can store information how we want and output the information the way we want. So we talked about this and how it can be used in our simulation. In HPC i believe i know how this scripts work. Once you see it, its pretty segregated in its steps and you can see where it can be broken up into functions, i just need to know how to use functions in bash scrpting, i havent delved into that yet. I will perform a experiment on it i believe to get a better understanding of it. But all together, i got good headway on this script.
This week we talked a little more on the use of registers and flip flop logic. It was kind of confusing but i think it is understood now. But the main topic of the week was learning the turing theory. he was the father of computers, in a way. he had made a theory of a basic computer. Infinite tape ran while a head would move left, right, or place a value on the tape. It was a simple programing computer (in a way) that read input and wrote output onto tape. So we did an excercise with this to get thinking on different concepts of simple logic and programming since we will be dealing with a low level language when finishing this computer simulation. In HPC, i am having a hard time with this script. I wish i wasnt taking so long but when i feel like i am making head way, it somehow gets ruined and i have to start from sqaure one. I feel i should look this over some more and see what can be done for me to get a better grasp.
Areas in the computer like registers or buffers. or other simple things like USB's or RAM, they are places that store digital data for us to use.Data storage is a core function and fundamental component of computers. There is no one kind of storage you have anywhere from permanent to volatile.
A data bus is a group of electrical wires used to send information (data) back and forth between two or more components. The width is one of the most important aspects. The width shows how many bits are made up of the bus. It can be from 8 up to 64 bits. When people refer to what size processor the computer they are using, they refer to the front side data bus that connects the processor to the main memory. There are others such as one that goes from processor to dedicated cache memory.
I am not sure how exactly to demonstrate this. But here is an example of what a computer uses “The Intel processor in the current line of Macs uses a 64-bit data bus to connect the processor to its memory.” Its just the wires so the computer can transfer its information to other components.
An address bus is a computer bus, a series of lines connecting two or more devices, that is used to specify a physical address. When a processor or a device needs to read or write to a memory location, it specifies that memory location on the address bus, the value to be read or written is sent on the data bus.
For example, a system with a 32-bit address bus can address 232 (4,294,967,296) memory locations. If each memory address holds one byte, the addressable memory space is 4 GB.
Machine word is a specific characteristic in a computer architecture. It represents each bit which are a fixed sized and are handled by the instruction set or the hardware of the processor. The bits represent the length, width and height of each word and this is important.
Some examples of what words are used for are integers, floating point numbers, addresses, registers, memory process transfer, instructions and unit of address resolution. A word in each of these areas of hardware or instruction are important because they help a long the data go through smoothly and easily.
An interrupt is an asynchronous signal indicating the need for attention or a synchronous event in software indicating the need for a change in execution. You have 2 different kinds as well a hardware interrupt and a software interrupt. A hardware interrupt cause the processor to stop and save its current state and begin execution of an interrupt handler. A software interrupt is usually found within an instruction set and it will have a context switch. Interrupts are a commonly used technique for computer multitasking, especially in real-time computing.
This code is a simple code that just shows when a car driving continues or gets interrupted. First, we start rolling forward. We have an integer used as a flag, that is either 0 when we have not hit an object, or 1 when we hit something. An interrupt occurs when we hit something, it will stop the robot to avoid any damage, and also set our flag. and so on so forth.
// Interrupt-Driver Bumper Example // A bumper switch on the front of the robot should be tied to digital pin 2 and ground #include <avr/interrupt.h> volatile int bumper; // have we hit something void setup(){ pinMode(2, INPUT); // Make digital 2 an input digitalWrite(2, HIGH); // Enable pull up resistor // attach our interrupt pin to it's ISR attachInterrupt(0, bumperISR, FALLING); // we need to call this to enable interrupts interrupts(); // start moving bumper = 0; DriveForward(); } // The interrupt hardware calls this when we hit our left bumper void bumperISR(){ Stop(); bumper = 1; } void loop(){ // if bumper triggered if(bumper > 0){ DriveBackward(); // set motors to reverse delay(1000); // back up for 1 second TurnRight(); // turn right (away from obstacle) bumper = 0; DriveForward(); // drive off again... } // we could do lots of other stuff here. }
Input and output is what the core of the computer is. It is how data is sent from one place to another. You have some form of hardware that can process information such as a computer and you have a thing to input or give data such as a human or some sort of outside force. Input are data that are received by the system and output is data sent from it. Input devices would be like a keyboard or a mouse. and output would be the screen of your monitor.
This code below is a simple direct address code for the computer. It just says where to read from and where to write from. Or in current terms, input and output.
MOV register, [address] ; to read MOV [address], register ; to write ; similarly IN register, [address] ; to read as input OUT [address], register ; to write as output
The two operations that form the majority of the functionality of the stack are the operation of adding to the stack, and the operation of removing items from the stack. First off, a stack is a device that operates in a last in, first out basis. Its like plates in a spring loader of a restaurant. They can only be added to the top, removed from the top and no other plates can be accessed. They move up one at a time while the lower one is moved up as the top is removed. In computer terms we have a an area of data that can be added to, remove some data, check to see if there is any data or check to see if it is full.
This is a simple code to show stack being filled and or emptied depending on what you want to be done or what the situation is.
int main() { stack<int> S; S.push(8); S.push(7); S.push(4); assert(S.size() == 3); assert(S.top() == 4); S.pop(); assert(S.top() == 7); S.pop(); assert(S.top() == 8); S.pop(); assert(S.empty()); }
There are some distinct differences between data flow and control flow. Data flow can do streaming, unlink control flow which can run multiple components that can process data at the same time, smallest unit in data flow is an component, just data within the control flow but can affect the outcome of your control flow, data flow is made up of source(s), transformations, and destinations. Control flow uses process, it is the key for control flow, the first task needs to be completed before it can continue. Smallest unit is a task, control flow does not move data and package control flow is made up of containers and tasks connected with precedence constraints to control package flow
familiarity with the organization of a computer system
This objective entails that i must explain how a computer is setup, such as from the very bottom of how it works all the up to what appears to the user.
To show i know how a computer is organized, i will state and explain some of the basic things that are found within the computer system.
To begin, the computer's most important task is storing and managing information within the computer. Simply put, you have unit input then processor then memory then finally unit output. That is a basic setup of what is going on. Obviously there is much more to what is going on within. You have the hardware that is needed such as the CPU, the peripherals, main and secondary memory. The CPU is the major component of a computer; the electronic brain of the machine. It consists of the electronic circuits needed to perform operations on the data. Main Memory is where programs that are currently being executed as well as their data are stored. The CPU fetches program instructions in sequence, together with the required data, from Main Memory and then performs the operation specified by the instruction. Main memory is like Random Access Memory or RAM, and this is tons of data can and will be stored. The secondary memory storage creates a long stable place for the memory to be at. The most commonly known place known as secondary storage would be known as the disk storage. Then you have your peripherals which is used for the users. It makes it easy for us to input some form of data and see and outputted data. But the hardware cant be used unless it has instructions from a program. Thats when the OS comes in or the Operating system. It is a set of instructions for the hardware to run the computer effectively. There is more programming that deals with this but the OS is the biggest part of running the computer.
Reflect upon your results of the measurement to ascertain your achievement of the particular course objective.
whiptail is a program that will let you present a variety of questions or display messages using dialog boxes from a shell script. Currently, these types of dialog boxes are implemented: yes/no box, menu box, input box, message box, text box, info box, checklist box, radiolist box gauge box, and password box.
Demonstration of the chosen keyword.
If you wish to aid your definition with a code sample, you can do so by using a wiki code block, an example follows:
#! /bin/bash if (whiptail --title "PPP Configuration" --backtitle "Welcome to my example" --yesno " Do you want to configure your PPP connection?" 10 40 ) then echo -e "\nWell, you better get busy!\n" elif (whiptail --title "PPP Configuration" --backtitle "Welcome to my example" --yesno " Are you sure?" 7 40) then echo -e "\nGood, because I can't do that yet!\n" else echo -e "\nToo bad, I can't do that yet\n" fi
The code you see above should produce a nice display of yes and no choices.
This is where you do step by step processes to solve an issue. If you have some sort of error with in a program or with the computer itself, you go through common fixes that will hopefully come to a solution. You are basically ruling out any simple error that can be fixed and determine if there is a major issue that you can not just simply solve.
There is not much to demonstrate other then stating some simple troubleshooting methods like doing a hard reset of the computer, defragmentation, disk cleanup, re install OS, and there are many other methods.
This is obviously a mode to test out a program in and/or a script. When it says standalone it is stating that no other programs/hardware are needed to test this program. It may only need the OS and nothing else to aid in its run time. It is nothing but verifying the input given from front end is correctly stored in data base are not.
I honestly have no idea how to properly stand alone test other than to just run the program that is currently being worked on in one area to make sure everything runs correctly.
Reference to a record that remains in the database, but is not included in comparisons or retrieved in searches. So a user is able to delete some form of data but it was always be there stashed away in the database, it most likely can be brought back easily.
There is really no demonstration that can be done other then it gets deleted, however you delete it. It can be found though going through your sub version repository.
The source command can be used to load any functions file into the current shell script or a command prompt. It can read and execute commands read from a file and will return. The pathnames in $PATH are used to find the directory containing a file. If any arguments are supplied, they become the positional parameters when a file is executed.
Demonstration of the chosen keyword.
If you wish to aid your definition with a code sample, you can do so by using a wiki code block, an example follows:
#!/bin/bash # load myfunctions.sh function file source /home/vivek/lsst2/myfunctions.sh # local variable quote="He WHO Sees me in all things, and ALL things in me, is never far from me, and I am never far from him." # invoke is_root() is_root && echo "You are a superuser." || echo "You are not a superuser." # call to_lower() with ${quote} to_lower ${quote}
The practice of using the same segment of code in multiple applications. This can be accomplished in many different ways, such as distributing source code, using an operating system's compiled libraries, etc.
No real demonstration other then to state like a windows OS or linux. If you look at earlier versions it is the same just update with new programs and features.
This term is generally used in reference to a “test environment”. The production environment is the set of resources and controls directing them to provide a “live” service - such as a web site, a transaction processing system or a running operating system which users can log into and get work done.
There is no real demonstration to show, its just a place for the user to get work done without any issues.
a unix command that helps a user get entries in a number of important text files called databases. This includes the passwd and group databases which store user information – hence getent is a common way to look up user details on Unix. Since getent uses the same name service as the system, getent will show all information, including that gained from network information sources such as LDAP.
lab46:~$ getent group dmckinn2:*:5751:dmckinn2 dsherbur:*:5752:dsherbur,wedge jbamper:*:5753:jbamper,wedge jcavalu3:*:5754:jcavalu3 jpettie:*:5755:jpettie,wedge mfaucet2:*:5756:mfaucet2,wedge mpage9:*:5757:mpage9 rhensen:*:5758:rhensen,wedge rmatsch:*:5759:rmatsch,wedge rsantia4:*:5760:rsantia4,wedge skinney1:*:5761:skinney1,wedge smalik2:*:5762:smalik2 tedmist1:*:5763:tedmist1,wedge thakes3:*:5764:thakes3,wedge zmccann:*:5765:zmccann,wedge eryan3:*:5766:eryan3,wedge jferrito:*:5767:jferrito ta018998:*:5768:ta018998 mcantin3:*:5769:mcantin3 ahazen:*:5770:ahazen csit2310:*:5771:csit2310 ...
There was a huge list of groups but this is the output that would show.
demonstrate scripting skills to automate tasks
I believe this is saying just being able to write a working program in shell that can do some sort of task.
I'll just show an example of a shell script and describe it for you.
1 #!/bin/bash 2 # 3 # This script will output information regarding user login and information 4 # 5 echo "Hello this script will show the last utility in action" 6 sleep 5; 7 echo "This is going to show successful logins, most bad logins, who contacte d lab46 the most and who contacted lab46 the least amount in the month of de cember" 8 sleep 5; 9 echo "Successful logins: `last -f /var/log/wtmp | grep "Dec" | wc -l`" 10 sleep 5; 11 echo "All bad logins: `lastb -f /var/log/wtmp | grep "Dec" | wc -l`" 12 sleep 5; 13 14 exit 0
In this code it will be taking the task of last and implementing so i actually have power to manipulate text that appears when i run the ps command.
Reflect upon your results of the measurement to ascertain your achievement of the particular course objective.
How Does Whiptail work in the linux enviroment?
Collect information and resources (such as URLs of web resources), and comment on knowledge obtained that you think will provide useful background information to aid in performing the experiment.
Based on what you've read with respect to your original posed question, what do you think will be the result of your experiment (ie an educated guess based on the facts known). This is done before actually performing the experiment.
State your rationale.
How are you going to test your hypothesis? What is the structure of your experiment?
Perform your experiment, and collect/document the results here.
Based on the data collected:
What can you ascertain based on the experiment performed and data collected? Document your findings here; make a statement as to any discoveries you've made.
Is there a way to read and connect data from different files of scripts into one script?
Collect information and resources (such as URLs of web resources), and comment on knowledge obtained that you think will provide useful background information to aid in performing the experiment.
Based on what you've read with respect to your original posed question, what do you think will be the result of your experiment (ie an educated guess based on the facts known). This is done before actually performing the experiment.
State your rationale.
How are you going to test your hypothesis? What is the structure of your experiment?
Perform your experiment, and collect/document the results here.
Based on the data collected:
What can you ascertain based on the experiment performed and data collected? Document your findings here; make a statement as to any discoveries you've made.
What is the question you'd like to pose for experimentation? State it here.
Collect information and resources (such as URLs of web resources), and comment on knowledge obtained that you think will provide useful background information to aid in performing the experiment.
Based on what you've read with respect to your original posed question, what do you think will be the result of your experiment (ie an educated guess based on the facts known). This is done before actually performing the experiment.
State your rationale.
How are you going to test your hypothesis? What is the structure of your experiment?
Perform your experiment, and collect/document the results here.
Based on the data collected:
What can you ascertain based on the experiment performed and data collected? Document your findings here; make a statement as to any discoveries you've made.
This time around we are still talking about the logic behind registers and how we will use them in our code. however that is the issue: what kind of register will we use? I prefer to use the 4 bit but i believe we are going with the 8 bit so it can store one full numerical value. Im just more comfortable using 4 bit but thats ok. We are also getting all our code together and i feel i havent helped that much. I have asked if i could help with coding in anyway but it seems they already finished the code we need or just dont need me, so i just go in the back and try to learn about the processor i was assigned.
This week of class we continued more on registers and flip flops and also more about our processors. My processor was a AMD processor and it was actually quite difficult to find any information on it. But other then trying to find info, we just talked more about the implementation of registers will work for our simulation. And we have come to the conclusion that all we need for the emulation is a few logic operations (AND, OR, NOT) and a few others like flag or stop. In HPC i have started a project of just simply booting up linux onto my computer via USB. It can be easily done, just havent been able to write it up yet (or im too lazy lol)
This we week we havent done much but discuss on how we would run the instruction set. Basically we have a 4 bit byte that will hold an instruction each. The first 2 bits will hold a memory for inout and the last 2 will be for the output. With this, it will be able to use an instruction such as AND. This is all that really remember us doing this week, we kind of stopped doing any actual work. In HPC I feel like this class is pointless at times for the lack of anything it has, however i have been trying to work on that script but i dont think i know shell scripting well enough to even touch this.
ASM has become a more independent study more then anything. We now just come into class, talk about a concept for a little then we just work on any project or opus work that we have. I dont mind having time to work on anything, its just i would like to actually work on something worthwhile. I feel like i am not learning what i should be, but thats just me. But with recent hours at work, i am having a horrible time trying to keep up with any work, i work ungodly hours and i am exhausted. I wil get work done, just might take some time.
The sequence of actions that a central processing unit performs to execute each machine code instruction in a program. It goes through all the components of the computer such as the CPU, then the processor, instruction register, etc.
Binary representation is taking a decimal number, a number such as 6 and changing it into a binary number which would be 110. Now in binary it only uses 1 and 0, a computer can only read these values so thats why it is necessary for this. But if we were to get more intricate, we would get into hexadecimal. Hexadecimal is 0 to the letter f. In a computer we start getting bigger with our numbers so it compacts the binary down so we dont have huge lines of code.
This is a table of showing how to do simple conversions of smaller decimal numbers. it shows how binary and hex represents its numbers.
Boolean Arithmetic is the logic behind our logic gates such as AND, NOR, OR, NOT and so on. The operations behind it is what makes the magic happen. Addition and multiplication is all you really need because subtraction and division are just variances of the others. But like with addition you have 1 plus 1 equals 1 or 1 plus 0 equals 1.
General purpose registers can store both data and addresses, i.e., they are combined Data/Address registers. They can be known as GPR's. Floating point registers store floating points in many computers today. Accumulator which intermediate arithmetic and logic results are stored. Without a register like an accumulator, it would be necessary to write the result of each calculation (addition, multiplication, shift, etc.) to main memory. Data register can hold numeric values such as int, floating and even char.
The number of registers in a processor unit may vary from just one processor register to as many as 64 registers or more. One part you will have is the accumulator AC or 'A' register. It is the main operand register of the ALU. Then you will have the data register (DR) acts as a buffer between the CPU and main memory. It is used as an input operand register with the accumulator. Then the instruction register (IR) holds the opcode of the current instruction. Next is the address register (AR) holds the address of the memory in which the operand resides. Lastly, the program counter (PC) holds the address of the next instruction to be fetched for execution. There can always be additional registers within the processor but these are the main ones you will find. There are actually more then one way to organize memory but it will general be connected to cache or RAM to store most of the data that is ran through the processor.
The most obvious characteristic of the Harvard Architecture is that it separates signals and storage for code and data memory. Typically, code (or program) memory is read-only and data memory is read-write. Therefore, it is impossible for program contents to be modified by the program itself. In the Von neumann architecture all signals and storage was shared, so it was easily changeable in a read-write memory.
These logic operations are the simple operations of the logic gates. AND is where bot statement 1 AND statement 2 must be true for it to pass. OR is saying that statement 1 OR statement 2 need to be true in order for it to pass. XOR is saying that one of the 2 statements must be true and the other must be false, if anything else its not true.
AND
1 // nick sano 2 #include "and.h" 3 4 bool AND::getX() 5 { 6 bool tmp = false; 7 8 if((A == true) && (B == true)) 9 { 10 tmp = true; 11 } 12 13 return tmp; 14 }
OR
1 #include "or.h" 2 3 bool OR :: getX() 4 { 5 bool tmp = false; 6 if((A == true) || (B == true)) 7 { 8 tmp = true; 9 } 10 return(tmp); 11 }
XOR
1 2 #include "xor.h" 3 4 XOR::XOR() 5 { 6 myorgate = new OR(); 7 mynotgate = new NOT(); 8 myandgate = new AND(); 9 } 10 11 bool XOR::getX() 12 { 13 bool tmp = true; 14 15 myandgate -> setA(A); 16 mynotgate -> setA(B); 17 tmp = mynotgate -> getX(); 18 myandgate -> setB(tmp); 19 myorgate -> setA(myandgate -> getX()); 20 21 myandgate -> setB(B); 22 mynotgate -> setA(A); 23 tmp = mynotgate -> getX(); 24 myandgate -> setA(tmp); 25 myorgate -> setB(myandgate -> getX()); 26 tmp = myorgate -> getX(); 27 28 return(tmp); 29 }
These are the negative operators of the logic table. NOT just takes what you currently have and negates it. NAND AND NOR take what they normally do (AND=1 and 2 both must be true, OR= 1 or 2 can be true) and just takes the opposite of what they do. So if it was true when AND was run, now that result will be untrue. and XNOR will run to see if both statements are true or both are false.
NOT
1 #include "not.h" 2 3 bool NOT::getX() 4 { 5 bool tmp; 6 tmp = ! A; 7 return(tmp); 8 }
NAND
1 #include "nand.h" 2 3 NAND::NAND() 4 { 5 myandgate = new AND(); 6 mynotgate = new NOT(); 7 } 8 9 bool NAND::getX() 10 { 11 bool tmp = true; 12 13 myandgate -> setA(A); 14 myandgate -> setB(B); 15 16 tmp = myandgate -> getX(); 17 18 mynotgate -> setA(tmp); 19 20 tmp = mynotgate -> getX(); 21 22 return(tmp); 23 } 24
NOR
1 #include "nor.h" 2 3 NOR::NOR() 4 { 5 myorgate = new OR(); 6 mynotgate = new NOT(); 7 } 8 9 bool NOR::getX() 10 { 11 bool tmp = false; 12 13 myorgate -> setA(A); 14 myorgate -> setB(B); 15 16 tmp = myorgate -> getX(); 17 18 mynotgate -> setA(tmp); 19 20 tmp = mynotgate -> getX(); 21 return(tmp); 22 }
XNOR
1 #include "xnor.h" 2 3 XNOR::XNOR() 4 { 5 myxorgate = new XOR(); 6 mynotgate = new NOT(); 7 } 8 9 bool XNOR::getX() 10 { 11 bool tmp; 12 13 myxorgate -> setA(A); 14 myxorgate -> setB(B); 15 tmp = myxorgate -> getX(); 16 mynotgate -> setA(tmp); 17 tmp = mynotgate -> getX(); 18 19 return(tmp); 20 }
An understanding of the concepts of assembly
Do you know what assembly is? How does it work? etc.
I will discuss this and just state what i know of this language.
Assembly language is the lowest level language that we have. It is used for microprocessors, processors, single instruction mechanical computers and a computer. Assembly Language uses 'mnemonic codes' or 'symbols'. Instead of remembering the exact memory locations where data and instructions are stored, symbolic memory addresses are used for data. In the language there is assemble that converts the assembly into object code. There is a single assembler and a multi one. both do similar things, just obviously one runs more then one.
MOV AL, 1h ; Load AL with immediate value 1 MOV CL, 2h ; Load CL with immediate value 2 MOV DL, 3h ; Load DL with immediate value 3
this is an example of what assembly looks like. You have to move data line by line to get it where you want it. There are no shortcuts. Assembly is the basis of pretty much everything and without it, we would not have gotten as far as we did, today.
Reflect upon your results of the measurement to ascertain your achievement of the particular course objective. I think i did pretty well. We didnt touch assembly much but i think i have gained a little knowledge towards it and i believe i have conveyed the concept quite nicely.
Documentation is very necessary when creating a program or even doing anything within the field of computing. If you type out a 3,000 line code and dont document, theres a chance of the person who wrote it forgetting everything that is going in this code. If a computer is being built or say, you are trying to fix a computer. You want to document your trial and errors so you dont make the same mistakes twice. Documentation just tells what you did in the past so if you do forget, its right there to remind you.
This is a sample of documentation inside code
// This right here is what documentation would look like //inside your code
A back up is where you back up your entire system. Its a simple as that. You want to do this on a regular basis because computers are not fault proof. And if something happened and you were to lose something critical like, your OS or something, you would be really glad to have created that back up. Then you just pop it in, load it all up and boom whatever you backed up last is right in front of you.
Log analysis is where a software, it tech guy will go through records created through data logging and try to make sense out of them. Sometimes they just are not easily read by regular people, so we must debug the record to make it readable to others. Some common reasons we want to do this is for system troubleshooting, security incident response, and other stuff like that.
No demonstration :P
This is when you control your computer from a remote location. Pretty much, a person can be at work and may want to use his computer. So he finds another computer with internet access and and will bring up a client that allows a person to see the GUI. Then as long as they know the IP of their computer, they can type that in and it will give them full access to their computer in a different place.
On-site administration is basically the user at the current computer having full access to the computer. So it would be your own personal home computer and you will be able to mess with all the root files or you just can control what others can access. You are the ruler of your kingdom when your the sudo user.
The act of installing multiple operating systems on a computer, and being able to choose which one to boot when starting the computer. So lets say for example the current computer i am usuing now. I had windows 7 on and still do, but with recent projects i went and installed a new OS called Ubuntu. Now with 2 OS on one computer, space needed to be partition and create a menu so you can choose between the 2 but other then that, that is what dual booting is.
Debian is a computer operating system composed of software packages released as free and open source software primarily under the GNU General Public License along with other free software licenses. It is closely similar to Linux, Ubuntu and the other free software you will find under this category. Debian is really good with keeping with the UNIX interface and having free software only, no pay. Debian can be installed on pretty much all computers, so go download it and try it out for yourself :D.
Internal security is very important on your computer. Your computer is subject to viruses, worms, malware or anything that is set to get your information. To practice good security, you want to get some anti virus software, make sure you only use trusted sites, nothing that seems “off”. You want to keep people from seeing information they shouldnt or you dont want them to see. And its always a good idea to put some restrictions on your folders if they have personal/important information within them.
Demonstrate knowledge of Linux & Open Source
Talk about the use linux or other open source programs.
I will discuss some concepts and provide some examples.
Linux is a free and open source to the public. Anyone can download it and can be easily partitioned right onto your computer. However using it can be difficult. In order to use linux you have to have some knowledge of it. You should know simple commands like cd or ls and be able to navigate easily through the file system tree. It has a command line and a GUI so we can what is happening. Others sources like debian, ubunutu act similar to linux as they are branches off of linux and also open source. Open source are all free and may be difficult to read because its not as pretty as windows or apple. However it provides great software that works just as great as windows or apple. As well as those designed for general purpose use on desktops and servers, distributions may be specialized for different purposes including: computer architecture support, embedded systems, stability, security, localization to a specific region or language, targeting of specific user groups, support for real-time applications, or commitment to a given desktop environment. Furthermore, some distributions deliberately include only free software.
lab46:~$ ls Cexetension.tgz RandomStuff contact.info.save lab1a.text pss Desktop Templates courses lastscript.sh public_html Documents Videos cpuEOCE motd puzzlebox Downloads a.out data networkcmds puzzlepaper FilelistforOPTAR badname dl newdirectory scripts Maildir badname.tgz hiopus out src Music bin in outfile tmp Nyan Cat.wav candy invaderzim output unixprog Public classlog12 irc pgm2ps lab46:~$ vi lastscript.sh lab46:~$ cd lab46:~$ ls Cexetension.tgz RandomStuff contact.info.save lab1a.text pss Desktop Templates courses lastscript.sh public_html Documents Videos cpuEOCE motd puzzlebox Downloads a.out data networkcmds puzzlepaper FilelistforOPTAR badname dl newdirectory scripts Maildir badname.tgz hiopus out src Music bin in outfile tmp Nyan Cat.wav candy invaderzim output unixprog Public classlog12 irc pgm2ps lab46:~$ cd src lab46:~/src$ ls Makefile cprog cpu discrete hpc submit unix lab46:~/src$ cd cpu lab46:~/src/cpu$ ls BF.txt Makefile Registers example gates lib turing.pdf LOGIC.TABLE README circuits flipflop include menu lab46:~/src/cpu$ cd gates
Being able to navigate lets you search through the depths of what is linux and it will give you great knowledge of the world.
Reflect upon your results of the measurement to ascertain your achievement of the particular course objective.
I feel i could have done better. I mean i talked about linux and what its about but now i question how much i actually know and if i should learn more. either way i think i got it down.
What is the question you'd like to pose for experimentation? State it here.
Collect information and resources (such as URLs of web resources), and comment on knowledge obtained that you think will provide useful background information to aid in performing the experiment.
Based on what you've read with respect to your original posed question, what do you think will be the result of your experiment (ie an educated guess based on the facts known). This is done before actually performing the experiment.
State your rationale.
How are you going to test your hypothesis? What is the structure of your experiment?
Perform your experiment, and collect/document the results here.
Based on the data collected:
What can you ascertain based on the experiment performed and data collected? Document your findings here; make a statement as to any discoveries you've made.
What is the question you'd like to pose for experimentation? State it here.
Collect information and resources (such as URLs of web resources), and comment on knowledge obtained that you think will provide useful background information to aid in performing the experiment.
Based on what you've read with respect to your original posed question, what do you think will be the result of your experiment (ie an educated guess based on the facts known). This is done before actually performing the experiment.
State your rationale.
How are you going to test your hypothesis? What is the structure of your experiment?
Perform your experiment, and collect/document the results here.
Based on the data collected:
What can you ascertain based on the experiment performed and data collected? Document your findings here; make a statement as to any discoveries you've made.
Perform the following steps:
Whose existing experiment are you going to retest? Provide the URL, note the author, and restate their question.
Evaluate their resources and commentary. Answer the following questions:
State their experiment's hypothesis. Answer the following questions:
Follow the steps given to recreate the original experiment. Answer the following questions:
Publish the data you have gained from your performing of the experiment here.
Answer the following:
Answer the following:
We are now starting to get more into the hardware part of the computer. However, this is all suppose to be abstract thinking, we are trying to think how a computer is built so we can put all of this code together to run in the simulator. Other then talking about processors and registers, this class is once just a work on stuff kind of day. So i tried to help with some of the code in class but we didnt get to far because we made paper airplanes. In HPC i cant seem to make the shell script use the source command properly. I dont know what im doing wrong and i feel like it should work. If i cant get this soon, im just going to stop and do some simple program for a project.
This week is spring break so yea obviously no classes. I will not lie, no work is being done on any of my classes because mainly its break and the fact im covering shifts for people because they took off of work. However i have tried messing with a shell script for awhile and i think i have an idea on how to fix some of my logic issues but i do not know if it will work because of reasons. But yea other then that, woo spring break.
Its a pretty easy week of class. Still doing independent study type deal. Everyone is working on their own thing. I should really be working on this opus because i procrastinated horribly on it and i feel if i dont get work done on it i will end up paying for it. I dont know i guess we will find out when the time comes huh? Either way, i have pretty much gave up on the script because i suck. I need to mess with some easier shell code before i tackle a monster like that, i just need practice is all.
EOCE has been announced for the classes, woo! I know what i will be working on. I know i need to get this opus done but its hard to focus on getting work done in this class without any sort of structure. Like i want to learn, i want to do work and stuff but with the lack of structure and the whole do it yourself attitude does not work for me. I will put everything off till the last minute and i know i will for a fact. But the EOCE's dont look too bad, it shouldnt take me long to do but we will see once the time comes wont we :)
Back to the registers we have different special registers that can be used. Data stored in the stack frame may sometimes be accessed directly via the stack pointer register (which indicates the current top of the stack). However, as the stack pointer is variable during the activation of the routine, memory locations within the stack frame are more typically accessed via a separate register which makes relative addressing simpler and also enables dynamic allocation mechanisms.
The next thing is a program counter. It is also called a instruction pointer and it basically points to where the program is currently at. A flag.status can be used to stop an instruction or the program or something. The flag gives the option of other paths within the data.
An index register in a computer's CPU is a processor register used for modifying operand addresses during the run of a program, typically for doing vector/array operations. This register is there to keep the process flowing by telling where to go next and keeping all the programs running smoothly.
Clear_accumulator Load_index 400,index2 //load 4*array size into index register 2 (index2) loop_start : Add_word_to_accumulator array_start,index2 //Add to AC the word at the address (array_start + index2) Branch_and_decrement_if_index_not_zero loop_start,4,index2 //loop decrementing by 4 until index resister is zero
RISC: Reduced instruction set computing is a CPU design strategy based on the insight that simplified instructions can provide higher performance if this simplicity enables much faster execution of each instruction.
CISC: A complex instruction set computer is a computer where single instructions can execute several low-level operations (such as a load from memory, an arithmetic operation, and a memory store) and/or are capable of multi-step operations or addressing modes within single instructions.
Data Movement: This is an instruction that moves data from one location to another location. It could be in memory or register.
Address Movement: This is an instruction that moves a given address from one location to another. Same as before the locations here can also be a memory location or registers.
Data Conversion: This is an instruction that changes the data type of the data being dealt with.
Bit Manipulation: This is an instruction that changes individual bits. Setting a bit sets the value to 1and opposite where clearing a bit sets it to 0.
A subroutine is a smaller piece of code inside a bigger code, usually remaining independent to itself. It performs a specific task that is been given and the main program needs it, it will call it to use its functionality. Its essentially a function that performs some task outside the main, does what it needs, returns a certain variable with a particular datatype that is needed and go to where it has been called to the main can use it effectively.
here is what a subroutine looks like:
char function3(int number) { char selection[] = {'S','M','T','W','T','F','S'}; return selection[number]; }
Data is represented in a number of ways. Big endian is used to show how bits are stored and with this particularly it loads in big end value first. Little endian is very similar its just loads the little value first. so BE (0x1234) and LE is (0x4321). Size is the size of data. Like a bit is the smallest size we have, byte is the size of 8 bits. Integer is easy, its 1 2 3. A floating point is a data type to give to some data. ASCII is the table to show ASCII values in binary, Hex, octal and decimal to the letters and symbols we see.
Sign representation just encodes negative numbers in to the binary system. One's Complement just flips the bit value in the binary number. Its like a NOT logic being used. Twos complement however does do the same thing but adds a 1 to the numbers after they have been flip. This allows negative numbers to reside with positive numbers.
Linking is the act of bringing together all the different objects brought about the compile process. Object code is what is given when we compile the source code that we give to the compiler. Machine code is the lowest level language and is what is read at the pre processing stage, the 1's and 0's
State the course objective
In your own words, define what that objective entails.
State the method you will use for measuring successful academic/intellectual achievement of this objective.
Follow your method and obtain a measurement. Document the results here.
Reflect upon your results of the measurement to ascertain your achievement of the particular course objective.
Lab operations is where you are the manager of operations at hand. It can be seen in many setting, in a factory or in a office watching over a program. The operations at hand are there to make everything more efficient and you want it to run smooth. They are there to make projects smaller and flow easier, develop faster, and just improve overall.
This is basically the person of the computer fixing up their system. If a piece of hardware breaks, you have to install a new piece or fix the current one. Then if everything is running well, you want to do a routine of cleaning and check ups to make sure all hardware is running tip top shape.
Computer data logging is the process of recording events, with an automated computer program, in order to provide an audit trail that can be used to understand the activity of the system and to diagnose problems. These are very helpful in the aid of certain systems that rarely get touched by a user, like a server program.
This picture kind of shows how it works. Its taking the data from each point to see if everything is running the way it should:
This refers to the accessibility of a computer system to all people, regardless of disability or severity of impairment. It is largely a software concern; when software, hardware, or a combination of hardware and software, is used to enable use of a computer by a person with a disability or impairment, this is known as Assistive Technology.
When upgrading its quite obvious you are going from one state, to a state that is clearly a more improved state. A computer is built so it can upgrade to a certain point and improved its performance. Like RAM, we all start off at a set amount but it can always be upgraded to get the max amount the computer itself can hold.
The intelligence of machines and the branch of computer science that aims to create it. An intelligent agent is a system that perceives its environment and takes actions that maximize its chances of success. In a nutshell it is basically a humanoid, half robot, half person. It should be able to “think” and do what we do, but that is still kind of far out of reach for us.
There are many types of different hackers. You have the ones who simply who like to make the most out of what they have, customize and innovate their current product. Or someone who is really into free software and knows how to get it. However most come to know that it is a person who can break through security.It means finding out weaknesses in a computer or computer network and exploiting them, though the term can also refer to someone with an advanced understanding of computers and computer networks. They are in a way technically a cracker, they dont break through anything, just simply find a way to jump over security. Hacking is not really a correct term however it is generally used to describe people who even just know how to program.
Just like internal security, it is ways to protect your system but this time its from the outside. Here you dont need to worry so much about viruses but more of people on the outside. You have to watch for your “hackers” that may know your password and get in. Or maybe they would use a keylogger and break into your account through that. Either way, you must keep strong passwords and change it often to prevent people. Another to be done is to not give out any info at all. Not even your best friend, keep your info to yourself. Just keep things a secret and never let someone get the upper hand. And if you want to get crazy, start setting up cameras, motion sensors, automatic lights. Maybe not for your computer but for an external security sense, maybe you will use it for your room or house in general. Either way, security is both important outside and in.
State the course objective
In your own words, define what that objective entails.
State the method you will use for measuring successful academic/intellectual achievement of this objective.
Follow your method and obtain a measurement. Document the results here.
Reflect upon your results of the measurement to ascertain your achievement of the particular course objective.
Perform the following steps:
Whose existing experiment are you going to retest? Provide the URL, note the author, and restate their question.
Evaluate their resources and commentary. Answer the following questions:
State their experiment's hypothesis. Answer the following questions:
Follow the steps given to recreate the original experiment. Answer the following questions:
Publish the data you have gained from your performing of the experiment here.
Answer the following:
Answer the following:
Perform the following steps:
Whose existing experiment are you going to retest? Provide the URL, note the author, and restate their question.
Evaluate their resources and commentary. Answer the following questions:
State their experiment's hypothesis. Answer the following questions:
Follow the steps given to recreate the original experiment. Answer the following questions:
Publish the data you have gained from your performing of the experiment here.
Answer the following:
Answer the following:
Perform the following steps:
Whose existing experiment are you going to retest? Provide the URL, note the author, and restate their question.
Evaluate their resources and commentary. Answer the following questions:
State their experiment's hypothesis. Answer the following questions:
Follow the steps given to recreate the original experiment. Answer the following questions:
Publish the data you have gained from your performing of the experiment here.
Answer the following:
Answer the following:
What is the question you'd like to pose for experimentation? State it here.
Collect information and resources (such as URLs of web resources), and comment on knowledge obtained that you think will provide useful background information to aid in performing the experiment.
Based on what you've read with respect to your original posed question, what do you think will be the result of your experiment (ie an educated guess based on the facts known). This is done before actually performing the experiment.
State your rationale.
How are you going to test your hypothesis? What is the structure of your experiment?
Perform your experiment, and collect/document the results here.
Based on the data collected:
What can you ascertain based on the experiment performed and data collected? Document your findings here; make a statement as to any discoveries you've made.
What is the question you'd like to pose for experimentation? State it here.
Collect information and resources (such as URLs of web resources), and comment on knowledge obtained that you think will provide useful background information to aid in performing the experiment.
Based on what you've read with respect to your original posed question, what do you think will be the result of your experiment (ie an educated guess based on the facts known). This is done before actually performing the experiment.
State your rationale.
How are you going to test your hypothesis? What is the structure of your experiment?
Perform your experiment, and collect/document the results here.
Based on the data collected:
What can you ascertain based on the experiment performed and data collected? Document your findings here; make a statement as to any discoveries you've made.
Perform the following steps:
Whose existing experiment are you going to retest? Provide the URL, note the author, and restate their question.
Evaluate their resources and commentary. Answer the following questions:
State their experiment's hypothesis. Answer the following questions:
Follow the steps given to recreate the original experiment. Answer the following questions:
Publish the data you have gained from your performing of the experiment here.
Answer the following:
Answer the following: