This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
haas:spring2015:unix:projects [2015/01/26 22:46] – [Week 2] wedge | haas:spring2015:unix:projects [2015/04/19 14:01] (current) – [Projects] wedge | ||
---|---|---|---|
Line 8: | Line 8: | ||
* [[/ | * [[/ | ||
* [[/ | * [[/ | ||
+ | * [[/ | ||
+ | * [[/ | ||
+ | * [[/ | ||
+ | * [[/ | ||
+ | * [[/ | ||
+ | * EoCE - bottom of Opus (due 20150514 by 4:30pm) | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ======Week 12====== | ||
+ | * EoCE(s) have been deployed to your Opus. Check there (be sure you are signed in to the wiki, otherwise it will not show up). The link and project page here will not longer be active. | ||
+ | * Reminder: no class this Tuesday (April 21st, 2015) as I will be away at a conference. | ||
+ | * Please do keep e-mailing me questions. | ||
+ | |||
+ | ======Week 11====== | ||
+ | * I have put together the End of Course Experience (EoCE) for the class. This is your final assigned project for the class (and is assigned in lieu of a final exam). When I finish all the other EoCEs for my other classes, the project link above will disappear, and your pertinent EoCE(s) will appear at the bottom of your Opus (so when it disappears from here look there). | ||
+ | * It is open resource, but closed person. | ||
+ | * You are expected to work on this by yourself (you may ask me for clarification). | ||
+ | * It, along with anything else outstanding that you'd like to receive credit for (even if just for consideration), | ||
+ | ======Week 10====== | ||
+ | * A couple people have experienced problems updating their Opus (a failure " | ||
+ | * Covered signals and process management, looking at: | ||
+ | * ps | ||
+ | * jobs | ||
+ | * top | ||
+ | * whowatch | ||
+ | * kill | ||
+ | * jobs/ | ||
+ | * you can attempt to launch a job in the background by suffixing an '&' | ||
+ | |||
+ | ======Week 9====== | ||
+ | * **udr2** has been extended over break. It has been positively confirmed that asking questions and spending time playing with these concepts leads to success: at least one person has completed **udr2**. | ||
+ | * I made a tweak to **bgrep** to allow for better start of address reporting on displayed results. Let me know if anything seems out of whack. | ||
+ | |||
+ | ======Week 8====== | ||
+ | * **udr2** is out.. continuing our data recovery and exploration theme, we enter the realm of data acquisition and analysis. | ||
+ | * As I've said all along, the sooner you start on this, the better. | ||
+ | * So far, nobody who hasn't asked me questions has gotten through udr1 on their own... not that it is hard, we just make it hard (mental blocks). I've been e-mailing back and forth with the successful project performers since before the weekend. Just saying... | ||
+ | * The big stumbling block is conceptual: not understanding the difference between text and binary data (not understanding that all text is binary data, but not all binary data is text). Not realizing that one cannot effectively use text processing tools on non-textual binary data (I cringe everytime I see someone straight catting or nanoing/ | ||
+ | * Reading through the project (heck, reading in general) is important. | ||
+ | |||
+ | ======Week 7====== | ||
+ | * **udr1** is out! It continues our UNIX file innards explorations, | ||
+ | * Once again, the intent is to get people to ask more questions. | ||
+ | ======Week 6====== | ||
+ | * Class was canceled? Yeah, campus closed, apparently- although you wouldn' | ||
+ | * The big problem with **udr0** was that people didn't know where to start. Very few (ie 2) actually took my advice and asked questions: I designed this assignment to force you to ask questions. Instead, all I got was a lot of panic that people didn't know where to start. So if you hadn't asked me questions, you were effectively making the project far more difficult. | ||
+ | * I identified 2 typos (they actually didn't seem to stop a fair number of people), and have issued corrections and a memdump file update. Check the assignments page for details. | ||
+ | * I have extended the deadline for **udr0** by a week, to enable everyone the chance to successfully tackle this project. PLEASE, don't let other people tell you how to do it. | ||
+ | * It was brought to my attention that the manual pages for **gcc** and related commands had NOT been installed on lab46! This grievous error has now been rectified. You may now peruse the seemingly endless pages of gcc options to your heart' | ||
+ | |||
+ | C code to display " | ||
+ | |||
+ | <code c 1> | ||
+ | /* hello.c - a UNIX-style " | ||
+ | * | ||
+ | * To compile: gcc -o hello hello.c | ||
+ | * To execute: ./hello | ||
+ | */ | ||
+ | #include < | ||
+ | |||
+ | int main() // everything needs a starting point, in C, that is a function called main() | ||
+ | { // when you have a group of statements, wrap them in a code block using the curly braces | ||
+ | int | ||
+ | char *msg = " | ||
+ | |||
+ | while (*(msg+i) != ' | ||
+ | fputc(*(msg+i++), | ||
+ | |||
+ | return (0); // all done, notify the system all went according to plan | ||
+ | } // close code block | ||
+ | </ | ||
+ | |||
+ | Memory variables are merely variables whose purpose is to contain a memory address. If we want to see what is inside the memory address contained within our memory variable, we have to dereference it, with the < | ||
+ | |||
+ | The key takeaway here is that, even if you don't know C enough to write a program on your own, you should be able to identify organizational structures, and even tweak minor things to enable the program to perform in a more optimal way. There are manual pages that can be referenced for many STDIO C functions (including **fputc**), and I would highly recommend perusing some of them to get a better handle on what is going on. | ||
+ | ======Week 5====== | ||
+ | * Between the most excellent puzzle boxes and your ongoing explorations in general, you're likely chomping at the bit for increased excitement. I am not one to let you down! Fresh off the project assembly line, I give you **udr0**, which has us solving problems under a UNIX Data Recovery theme. | ||
+ | |||
+ | ======Week 4====== | ||
+ | * Because you had so much fun and life-redefining discovery on the puzzlebox, I have polished off the next exciting entry in the series: **pbx1** | ||
+ | * A little more abstract, yet still a little bit familiar. Promising hours of mind-expanding fun. | ||
+ | |||
+ | ======Week 3====== | ||
+ | * Our third week of the semester started with a snow day! YES!!! After spending some time playing out in the snow, we can relax with some extra UNIX time playing around on lab46 and working on the project. | ||
+ | * As we gear up for week 3 activities, I have released the next project, the famous **PuzzleBox** (**pbx0**). This project tends to be either really, really easy (in an obvious sort of way), or really, really challenging (due to not paying attention). | ||
+ | * You'll want to have finished the **arc0** project before starting to tackle the puzzle box, as it applies some of the skills you'll be picking up. | ||
+ | * Don't forget to participate in the class mailing list! And update your Opus with all your exciting UNIX adventures and breakthroughs! | ||
======Week 2====== | ======Week 2====== | ||
Line 16: | Line 108: | ||
* If you're holding off to increase your chances of reception (good catch!) please be sure to do the deed before Thursday. Those who miss out, miss out. Their loss. | * If you're holding off to increase your chances of reception (good catch!) please be sure to do the deed before Thursday. Those who miss out, miss out. Their loss. | ||
* The next project, **arc0**, has been released, putting many of your newfound skills to the test. | * The next project, **arc0**, has been released, putting many of your newfound skills to the test. | ||
- | * [[/ | + | |
+ | | ||
+ | * [[/ | ||
+ | * you may want to specifically look at the **I/O redirection** section of this lab to help with your **arc0** project. | ||
======Week 1====== | ======Week 1====== |